diff --git a/packages/bcf/src/LoadBCFViewpointParams.ts b/packages/bcf/src/LoadBCFViewpointParams.ts
index 9f8f67839..63510a072 100644
--- a/packages/bcf/src/LoadBCFViewpointParams.ts
+++ b/packages/bcf/src/LoadBCFViewpointParams.ts
@@ -3,7 +3,7 @@ import type {BCFViewpoint} from "./BCFViewpoint";
import {Data} from "@xeokit/data";
/**
- * Options for {@link @xeokit/bcf!loadBCFViewpoint}.
+ * Options for {@link @xeokit/bcf!loadBCFViewpoint | loadBCFViewpoint}.
*
* See {@link "@xeokit/bcf" | @xeokit/bcf} for usage.
*/
@@ -30,7 +30,7 @@ export interface LoadBCFViewpointParams {
* {@link @xeokit/viewer!ViewObject | ViewObjects} within the given target View, ignoring any
* {@link @xeokit/viewer!ViewLayer | ViewLayers} that those ViewObjects may have been partitioned into.
*
- * The {@link @xeokit/bcf!loadBCFViewpoint} function will silently ignore each component state that has no corresponding
+ * The {@link @xeokit/bcf!loadBCFViewpoint | loadBCFViewpoint} function will silently ignore each component state that has no corresponding
* ViewObject in the target View.
*/
view: View;
@@ -44,7 +44,7 @@ export interface LoadBCFViewpointParams {
* Only load BCF viewpoint components if their corresponding {@link @xeokit/viewer!ViewObject | ViewObjects}
* are in {@link @xeokit/viewer!ViewLayer |ViewLayers} that have the given IDs.
*
- * The {@link @xeokit/bcf!loadBCFViewpoint} function will silently ignore each component state that has no corresponding
+ * The {@link @xeokit/bcf!loadBCFViewpoint | loadBCFViewpoint} function will silently ignore each component state that has no corresponding
* ViewObject in any of these ViewLayers.
*
* Each ViewLayer's occurrence in {@link @xeokit/bcf!LoadBCFViewpointParams.excludeLayerIds | LoadBCFViewpointParams.excludeLayerIds} will override
@@ -56,7 +56,7 @@ export interface LoadBCFViewpointParams {
* Never load BCF viewpoint components if their corresponding {@link @xeokit/viewer!ViewObject | ViewObjects}
* are in {@link @xeokit/viewer!ViewLayer | ViewLayers} that have the given IDs.
*
- * The {@link @xeokit/bcf!loadBCFViewpoint} function will silently ignore each component state that has a corresponding
+ * The {@link @xeokit/bcf!loadBCFViewpoint | loadBCFViewpoint} function will silently ignore each component state that has a corresponding
* ViewObject in any of these ViewLayers.
*
* Each ViewLayer's occurrence in this list will override its occurrance
diff --git a/packages/bcf/src/SaveBCFViewpointParams.ts b/packages/bcf/src/SaveBCFViewpointParams.ts
index 11c6743ba..30145df72 100644
--- a/packages/bcf/src/SaveBCFViewpointParams.ts
+++ b/packages/bcf/src/SaveBCFViewpointParams.ts
@@ -1,7 +1,7 @@
import type {View} from "@xeokit/viewer";
/**
- * Options for {@link @xeokit/bcf!saveBCFViewpoint}.
+ * Options for {@link @xeokit/bcf!saveBCFViewpoint | saveBCFViewpoint}.
*
* See {@link "@xeokit/bcf" | @xeokit/bcf} for usage.
*/
@@ -68,7 +68,7 @@ export interface SaveBCFViewpointParams {
* Only save BCF viewpoint components if their corresponding {@link @xeokit/viewer!ViewObject | ViewObjects}
* are in {@link @xeokit/viewer!ViewLayer | ViewLayers} that match these IDs.
*
- * The {@link @xeokit/bcf!saveBCFViewpoint} function will silently ignore each component state that has no corresponding
+ * The {@link @xeokit/bcf!saveBCFViewpoint | saveBCFViewpoint} function will silently ignore each component state that has no corresponding
* ViewObject in any of these ViewLayers.
*
* Each ViewLayer's occurrence in {@link @xeokit/bcf!SaveBCFViewpointParams.excludeLayerIds | SaveBCFViewpointParams.excludeLayerIds} will override
@@ -80,7 +80,7 @@ export interface SaveBCFViewpointParams {
* Never save BCF viewpoint components if their corresponding {@link @xeokit/viewer!ViewObject | ViewObjects}
* are in {@link @xeokit/viewer!ViewLayer |ViewLayers} that have the given IDs.
*
- * The {@link @xeokit/bcf!saveBCFViewpoint} function will silently ignore each component state that has a corresponding
+ * The {@link @xeokit/bcf!saveBCFViewpoint | saveBCFViewpoint} function will silently ignore each component state that has a corresponding
* ViewObject in any of these ViewLayers.
*
* Each ViewLayer's occurrence in this list will override its occurrance
diff --git a/packages/bcf/src/index.ts b/packages/bcf/src/index.ts
index 3b21f73cb..cbffb5f8f 100644
--- a/packages/bcf/src/index.ts
+++ b/packages/bcf/src/index.ts
@@ -19,10 +19,10 @@
* project stakeholders in BIM workflows.
*
* To import a JSON-encoded BCF viewpoint into a {@link @xeokit/viewer!View | View} belonging to a {@link @xeokit/viewer!Viewer | Viewer}, use the
- * {@link @xeokit/bcf!loadBCFViewpoint} function. Similarly, to export the state of a View as a JSON-encoded BCF viewpoint, use
- * the {@link @xeokit/bcf!saveBCFViewpoint} function.
+ * {@link @xeokit/bcf!loadBCFViewpoint | loadBCFViewpoint} function. Similarly, to export the state of a View as a JSON-encoded BCF viewpoint, use
+ * the {@link @xeokit/bcf!saveBCFViewpoint | saveBCFViewpoint} function.
*
- * Refer to {@link @xeokit/bcf!BCFViewpoint} for information on the BCF viewpoint format.
+ * Refer to {@link @xeokit/bcf!BCFViewpoint | BCFViewpoint} for information on the BCF viewpoint format.
*
*
*
@@ -99,7 +99,7 @@
* {@link @xeokit/data!DataModel.onBuilt | DataModel.onBuilt} events.
*
* On the SceneModel.onBuilt event, we'll customize the View by arranging the {@link @xeokit/viewer!Camera} and applying
- * an X-ray effect tp a couple of objects, then we'll use {@link @xeokit/bcf!saveBCFViewpoint} to save the state of the View to
+ * an X-ray effect tp a couple of objects, then we'll use {@link @xeokit/bcf!saveBCFViewpoint | saveBCFViewpoint} to save the state of the View to
* a BCF viewpoint.
*
* Once the SceneModel and DataModel have been built, we can no longer add anything to them.
@@ -123,8 +123,8 @@
* });
* ````
*
- * Now that we've saved the {@link @xeokit/bcf!BCFViewpoint}, we could now use {@link @xeokit/bcf!loadBCFViewpoint} to load
- * the {@link @xeokit/bcf!BCFViewpoint} back into the {@link @xeokit/viewer!View | View}:
+ * Now that we've saved the {@link @xeokit/bcf!BCFViewpoint | BCFViewpoint}, we could now use {@link @xeokit/bcf!loadBCFViewpoint | loadBCFViewpoint} to load
+ * the {@link @xeokit/bcf!BCFViewpoint | BCFViewpoint} back into the {@link @xeokit/viewer!View | View}:
*
* ````javascript
* loadBCFViewpoint({
@@ -188,8 +188,8 @@
* myOtherSceneModel.build();
* ````
*
- * Now we can use {@link @xeokit/bcf!saveBCFViewpoint} to save the states of only the {@link @xeokit/viewer!ViewObject | ViewObjects} in the
- * {@link @xeokit/viewer!ViewLayer | ViewLayer} that contains our SceneModel to a {@link @xeokit/bcf!BCFViewpoint}, while ignoring the
+ * Now we can use {@link @xeokit/bcf!saveBCFViewpoint | saveBCFViewpoint} to save the states of only the {@link @xeokit/viewer!ViewObject | ViewObjects} in the
+ * {@link @xeokit/viewer!ViewLayer | ViewLayer} that contains our SceneModel to a {@link @xeokit/bcf!BCFViewpoint | BCFViewpoint}, while ignoring the
* other ViewLayer:
*
* ````javascript
@@ -200,7 +200,7 @@
* });
* ````
*
- * Use {@link @xeokit/bcf!loadBCFViewpoint} to load the {@link @xeokit/bcf!BCFViewpoint} back into the {@link @xeokit/viewer!ViewLayer | ViewLayer}:
+ * Use {@link @xeokit/bcf!loadBCFViewpoint | loadBCFViewpoint} to load the {@link @xeokit/bcf!BCFViewpoint | BCFViewpoint} back into the {@link @xeokit/viewer!ViewLayer | ViewLayer}:
*
* ````javascript
* loadBCFViewpoint({
diff --git a/packages/bcf/src/loadBCFViewpoint.ts b/packages/bcf/src/loadBCFViewpoint.ts
index 0ed498be0..08d905974 100644
--- a/packages/bcf/src/loadBCFViewpoint.ts
+++ b/packages/bcf/src/loadBCFViewpoint.ts
@@ -14,7 +14,7 @@ const tempVec3b = createVec3();
const tempVec3c = createVec3();
/**
- * Loads a {@link @xeokit/bcf!BCFViewpoint} into a {@link @xeokit/viewer!View | View}.
+ * Loads a {@link @xeokit/bcf!BCFViewpoint | BCFViewpoint} into a {@link @xeokit/viewer!View | View}.
*
* See {@link "@xeokit/bcf" | @xeokit/bcf} for usage.
*
diff --git a/packages/bcf/src/saveBCFViewpoint.ts b/packages/bcf/src/saveBCFViewpoint.ts
index 49631f5c8..444ed9ac4 100644
--- a/packages/bcf/src/saveBCFViewpoint.ts
+++ b/packages/bcf/src/saveBCFViewpoint.ts
@@ -6,7 +6,7 @@ import {OrthoProjectionType} from "@xeokit/constants";
import {ViewObject} from "@xeokit/viewer";
/**
- * Saves a {@link @xeokit/viewer!View | View} to a {@link @xeokit/bcf!BCFViewpoint}.
+ * Saves a {@link @xeokit/viewer!View | View} to a {@link @xeokit/bcf!BCFViewpoint | BCFViewpoint}.
*
* See {@link "@xeokit/bcf" | @xeokit/bcf} for usage.
*
diff --git a/packages/compression/src/index.ts b/packages/compression/src/index.ts
index c7749ba92..2befb38dc 100644
--- a/packages/compression/src/index.ts
+++ b/packages/compression/src/index.ts
@@ -22,8 +22,8 @@
* indices for triangle meshes, ignoring normals (as shaders auto-generate them), converting positions to relative-to-center (RTC)
* coordinates, and quantizing positions and UVs as 16-bit unsigned integers.
*
- * An example usage includes compressing a SceneGeometryParams into a {@link @xeokit/scene!SceneGeometryCompressedParams} using the
- * {@link @xeokit/scene!compressGeometryParams} function.
+ * An example usage includes compressing a SceneGeometryParams into a {@link @xeokit/scene!SceneGeometryCompressedParams | SceneGeometryCompressedParams} using the
+ * {@link @xeokit/scene!compressGeometryParams | compressGeometryParams} function.
*
* The resulting SceneGeometryCompressedParams object shows vertex positions relative to the origin
* and quantized to 16-bit integers, duplicate positions removed, and adjusted indices. Additionally, edge indices are
@@ -52,7 +52,7 @@
*
* ## Usage
*
- * In the example below, we'll use {@link @xeokit/scene!compressGeometryParams} to compress
+ * In the example below, we'll use {@link @xeokit/scene!compressGeometryParams | compressGeometryParams} to compress
* a {@link @xeokit/scene!SceneGeometryParams | SceneGeometryParams} into a
* {@link @xeokit/scene!SceneGeometryCompressedParams | SceneGeometryCompressedParams}.
*
@@ -120,7 +120,7 @@
* }
* ````
*
- * In the next example, we'll again use {@link @xeokit/scene!compressGeometryParams} to compress
+ * In the next example, we'll again use {@link @xeokit/scene!compressGeometryParams | compressGeometryParams} to compress
* a {@link @xeokit/scene!SceneGeometryParams | SceneGeometryParams} into a
* {@link @xeokit/scene!SceneGeometryCompressedParams | SceneGeometryCompressedParams}, which we'll then use to
* create a compressed geometry within a {@link @xeokit/scene!SceneModel | SceneModel}.
diff --git a/packages/core/src/Component.ts b/packages/core/src/Component.ts
index 8ad712767..26f46d144 100755
--- a/packages/core/src/Component.ts
+++ b/packages/core/src/Component.ts
@@ -45,7 +45,7 @@ export class Component {
#ownedComponents: null | { [key: string]: Component };
/**
- * Emits an event when the {@link @xeokit/core!Component} has been destroyed.
+ * Emits an event when the {@link @xeokit/core!Component | Component} has been destroyed.
*
* @event
*/
diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts
index c1e8aea05..52dd07e87 100644
--- a/packages/core/src/index.ts
+++ b/packages/core/src/index.ts
@@ -6,7 +6,7 @@
*
* ## xeokit SDK Core Components
*
- * * {@link @xeokit/core!Component} base class
+ * * {@link @xeokit/core!Component | Component} base class
* * Various interfaces that are implemented throughout the SDK.
*
* ## Installation
diff --git a/packages/demos/js/xeokit-demo-bundle.js b/packages/demos/js/xeokit-demo-bundle.js
index b5c27c929..67692bb7c 100644
--- a/packages/demos/js/xeokit-demo-bundle.js
+++ b/packages/demos/js/xeokit-demo-bundle.js
@@ -1888,7 +1888,7 @@ var Component = class {
#owner;
#ownedComponents;
/**
- * Emits an event when the {@link @xeokit/core!Component} has been destroyed.
+ * Emits an event when the {@link @xeokit/core!Component | Component} has been destroyed.
*
* @event
*/
@@ -1933,7 +1933,7 @@ var Component = class {
* Logs an error for this component to the JavaScript console.
*
* The console message will have this format: *````[ERROR] [ =: ````*
-
+
@param message The error message to log
@protected
*/
@@ -11151,7 +11151,7 @@ var SceneModel = class extends Component {
* Creates a new {@link @xeokit/scene!SceneGeometry} within this SceneModel, from pre-compressed geometry parameters.
*
* * Stores the new {@link @xeokit/scene!SceneGeometry} in {@link @xeokit/scene!SceneModel.geometries | SceneModel.geometries}.
- * * Use {@link @xeokit/scene!compressGeometryParams} to pre-compress {@link @xeokit/scene!SceneGeometryParams | SceneGeometryParams}
+ * * Use {@link @xeokit/scene!compressGeometryParams | compressGeometryParams} to pre-compress {@link @xeokit/scene!SceneGeometryParams | SceneGeometryParams}
* into {@link @xeokit/scene!SceneGeometryCompressedParams | SceneGeometryCompressedParams}.
*
* ### Usage
@@ -11314,8 +11314,15 @@ var SceneModel = class extends Component {
} else {
matrix = matrix.slice();
}
- const origin2 = createVec3();
- const rtcMatrix = createRTCModelMat(matrix, origin2);
+ let origin2;
+ let rtcMatrix = matrix;
+ if (meshParams.origin) {
+ origin2 = meshParams.origin;
+ rtcMatrix = matrix;
+ } else {
+ origin2 = createVec3();
+ rtcMatrix = createRTCModelMat(matrix, origin2);
+ }
const tile = this.scene.getTile(origin2);
if (!this.tiles[tile.id]) {
this.tiles[tile.id] = tile;
@@ -107459,7 +107466,7 @@ var LASLoader3 = {
// ../las/dist/loadLAS.js
var MAX_VERTICES = 5e5;
-function loadLAS(params2) {
+function loadLAS(params2, options = {}) {
return new Promise(function(resolve2, reject) {
const dataModel = params2.dataModel;
const sceneModel = params2.sceneModel;
@@ -107475,7 +107482,7 @@ function loadLAS(params2) {
if (dataModel?.built) {
throw new SDKError("DataModel already built");
}
- const skip = params2.skip || 1;
+ const skip = options.skip || 1;
const log2 = (msg) => {
if (params2.log) {
params2.log(msg);
@@ -107483,8 +107490,8 @@ function loadLAS(params2) {
};
parse(params2.fileData, LASLoader3, {
las: {
- colorDepth: params2.colorDepth || "auto",
- fp64: params2.fp64 !== void 0 ? params2.fp64 : false
+ colorDepth: options.colorDepth || "auto",
+ fp64: options.fp64 !== void 0 ? options.fp64 : false
}
}).then((parsedData) => {
const attributes = parsedData.attributes;
@@ -107579,7 +107586,7 @@ function loadLAS(params2) {
});
function readPositions(positionsValue) {
if (positionsValue) {
- if (params2.center) {
+ if (options.center) {
const centerPos = createVec3();
const numPoints = positionsValue.length;
for (let i2 = 0, len = positionsValue.length; i2 < len; i2 += 3) {
@@ -107596,8 +107603,8 @@ function loadLAS(params2) {
positionsValue[i2 + 2] -= centerPos[2];
}
}
- if (params2.transform) {
- const mat = createMat4(params2.transform);
+ if (options.transform) {
+ const mat = createMat4(options.transform);
const pos = createVec3();
for (let i2 = 0, len = positionsValue.length; i2 < len; i2 += 3) {
pos[0] = positionsValue[i2 + 0];
@@ -114327,10 +114334,8 @@ function xktToModel(params2) {
id: meshId,
geometryId,
textureSetId,
- // origin: tileCenter,
+ origin: tileCenter,
color: meshColor,
- metallic: meshMetallic,
- roughness: meshRoughness,
opacity: meshOpacity
});
meshIds.push(meshId);
@@ -118364,7 +118369,7 @@ var Camera = class extends Component {
}
/**
* Rotates {@link @xeokit/viewer!Camera.look | Camera.look} about {@link @xeokit/viewer!Camera.eye | Camera.eye}, around the right axis (orthogonal to {@link @xeokit/viewer!Camera.up | Camera.up} and "look").
-
+
* @param angleInc Angle of rotation in degrees
*/
pitch(angleInc) {
@@ -118711,7 +118716,7 @@ var CameraFlightAnimation = class _CameraFlightAnimation extends Component {
* * When the target is a boundary, the {@link @xeokit/viewer!Camera} will fly towards the target and stop when the target fills most of the canvas.
* * When the target is an explicit {@link @xeokit/viewer!Camera} position, given as ````eye````, ````look```` and ````up````, then CameraFlightAnimation will interpolate the {@link @xeokit/viewer!Camera} to that target and stop there.
*
- * @param {Object|Component} [params=Scene] Either a parameters object or a {@link @xeokit/core!Component} subtype that has
+ * @param {Object|Component} [params=Scene] Either a parameters object or a {@link @xeokit/core!Component | Component} subtype that has
* an AABB. Defaults to the {@link @xeokit/scene!Scene | Scene}, which causes the {@link @xeokit/viewer!Camera} to fit the Scene in view.
* @param [params.arc=0] Factor in range ````[0..1]```` indicating how much the {@link @xeokit/viewer!Camera.eye | Camera.eye} position
* will swing away from its {@link @xeokit/viewer!Camera.look | Camera.look} position as it flies to the target.
@@ -118842,7 +118847,7 @@ var CameraFlightAnimation = class _CameraFlightAnimation extends Component {
* * When the target is a boundary, this CameraFlightAnimation will position the {@link @xeokit/viewer!Camera} at where the target fills most of the canvas.
* * When the target is an explicit {@link @xeokit/viewer!Camera} position, given as ````eye````, ````look```` and ````up```` vectors, then this CameraFlightAnimation will jump the {@link @xeokit/viewer!Camera} to that target.
*
- * @param {*|Component} params Either a parameters object or a {@link @xeokit/core!Component} subtype that has a World-space AABB.
+ * @param {*|Component} params Either a parameters object or a {@link @xeokit/core!Component | Component} subtype that has a World-space AABB.
* @param [params.arc=0] Factor in range [0..1] indicating how much the {@link @xeokit/viewer!Camera.eye | Camera.eye} will swing away from its {@link @xeokit/viewer!Camera.look | Camera.look} as it flies to the target.
* @param {Number|String|Component} [params.component] ID or instance of a component to fly to.
* @param [params.aabb] World-space axis-aligned bounding box (AABB) target to fly to.
diff --git a/packages/demos/js/xeokit-demo-bundle.js.map b/packages/demos/js/xeokit-demo-bundle.js.map
index 93a09d75f..854524586 100644
--- a/packages/demos/js/xeokit-demo-bundle.js.map
+++ b/packages/demos/js/xeokit-demo-bundle.js.map
@@ -1,7 +1,7 @@
{
"version": 3,
"sources": ["../../../node_modules/.pnpm/ste-core@3.0.11/node_modules/ste-core/dist/dispatching/DispatcherWrapper.js", "../../../node_modules/.pnpm/ste-core@3.0.11/node_modules/ste-core/dist/events/Subscription.js", "../../../node_modules/.pnpm/ste-core@3.0.11/node_modules/ste-core/dist/management/EventManagement.js", "../../../node_modules/.pnpm/ste-core@3.0.11/node_modules/ste-core/dist/dispatching/DispatcherBase.js", "../../../node_modules/.pnpm/ste-core@3.0.11/node_modules/ste-core/dist/dispatching/DispatchError.js", "../../../node_modules/.pnpm/ste-core@3.0.11/node_modules/ste-core/dist/dispatching/EventListBase.js", "../../../node_modules/.pnpm/ste-core@3.0.11/node_modules/ste-core/dist/handling/HandlingBase.js", "../../../node_modules/.pnpm/ste-core@3.0.11/node_modules/ste-core/dist/events/PromiseSubscription.js", "../../../node_modules/.pnpm/ste-core@3.0.11/node_modules/ste-core/dist/dispatching/PromiseDispatcherBase.js", "../../../node_modules/.pnpm/ste-core@3.0.11/node_modules/ste-core/dist/index.js", "../../../node_modules/.pnpm/ste-events@3.0.11/node_modules/ste-events/dist/EventDispatcher.js", "../../../node_modules/.pnpm/ste-events@3.0.11/node_modules/ste-events/dist/EventList.js", "../../../node_modules/.pnpm/ste-events@3.0.11/node_modules/ste-events/dist/EventHandlingBase.js", "../../../node_modules/.pnpm/ste-events@3.0.11/node_modules/ste-events/dist/NonUniformEventList.js", "../../../node_modules/.pnpm/ste-events@3.0.11/node_modules/ste-events/dist/index.js", "../../../node_modules/.pnpm/ste-simple-events@3.0.11/node_modules/ste-simple-events/dist/SimpleEventDispatcher.js", "../../../node_modules/.pnpm/ste-simple-events@3.0.11/node_modules/ste-simple-events/dist/SimpleEventList.js", "../../../node_modules/.pnpm/ste-simple-events@3.0.11/node_modules/ste-simple-events/dist/SimpleEventHandlingBase.js", "../../../node_modules/.pnpm/ste-simple-events@3.0.11/node_modules/ste-simple-events/dist/NonUniformSimpleEventList.js", "../../../node_modules/.pnpm/ste-simple-events@3.0.11/node_modules/ste-simple-events/dist/index.js", "../../../node_modules/.pnpm/ste-signals@3.0.11/node_modules/ste-signals/dist/SignalDispatcher.js", "../../../node_modules/.pnpm/ste-signals@3.0.11/node_modules/ste-signals/dist/SignalList.js", "../../../node_modules/.pnpm/ste-signals@3.0.11/node_modules/ste-signals/dist/SignalHandlingBase.js", "../../../node_modules/.pnpm/ste-signals@3.0.11/node_modules/ste-signals/dist/index.js", "../../../node_modules/.pnpm/ste-promise-events@3.0.11/node_modules/ste-promise-events/dist/PromiseEventDispatcher.js", "../../../node_modules/.pnpm/ste-promise-events@3.0.11/node_modules/ste-promise-events/dist/PromiseEventList.js", "../../../node_modules/.pnpm/ste-promise-events@3.0.11/node_modules/ste-promise-events/dist/PromiseEventHandlingBase.js", "../../../node_modules/.pnpm/ste-promise-events@3.0.11/node_modules/ste-promise-events/dist/NonUniformPromiseEventList.js", "../../../node_modules/.pnpm/ste-promise-events@3.0.11/node_modules/ste-promise-events/dist/index.js", "../../../node_modules/.pnpm/ste-promise-signals@3.0.11/node_modules/ste-promise-signals/dist/PromiseSignalDispatcher.js", "../../../node_modules/.pnpm/ste-promise-signals@3.0.11/node_modules/ste-promise-signals/dist/PromiseSignalList.js", "../../../node_modules/.pnpm/ste-promise-signals@3.0.11/node_modules/ste-promise-signals/dist/PromiseSignalHandlingBase.js", "../../../node_modules/.pnpm/ste-promise-signals@3.0.11/node_modules/ste-promise-signals/dist/index.js", "../../../node_modules/.pnpm/ste-promise-simple-events@3.0.11/node_modules/ste-promise-simple-events/dist/PromiseSimpleEventDispatcher.js", "../../../node_modules/.pnpm/ste-promise-simple-events@3.0.11/node_modules/ste-promise-simple-events/dist/NonUniformPromiseSimpleEventList.js", "../../../node_modules/.pnpm/ste-promise-simple-events@3.0.11/node_modules/ste-promise-simple-events/dist/PromiseSimpleEventList.js", "../../../node_modules/.pnpm/ste-promise-simple-events@3.0.11/node_modules/ste-promise-simple-events/dist/PromiseSimpleEventHandlingBase.js", "../../../node_modules/.pnpm/ste-promise-simple-events@3.0.11/node_modules/ste-promise-simple-events/dist/index.js", "../../../node_modules/.pnpm/strongly-typed-events@3.0.7/node_modules/strongly-typed-events/dist/index.js", "../../core/src/index.ts", "../../core/src/EventEmitter.ts", "../../core/src/Component.ts", "../../core/src/SDKError.ts", "../../constants/src/index.ts", "../../math/src/index.ts", "../../matrix/src/index.ts", "../../utils/src/index.ts", "../../utils/src/Map.ts", "../../utils/src/Queue.ts", "../../utils/src/LoadingManager.ts", "../../utils/src/Loader.ts", "../../utils/src/WorkerPool.ts", "../../utils/src/Cache.ts", "../../utils/src/FileLoader.ts", "../../rtc/src/index.ts", "../../boundaries/src/index.ts", "../../compression/src/index.ts", "../../curves/src/index.ts", "../../procgen/src/index.ts", "../../procgen/src/buildBoxGeometry.ts", "../../procgen/src/buildGridGeometry.ts", "../../procgen/src/buildBoxLinesGeometry.ts", "../../procgen/src/buildCylinderGeometry.ts", "../../procgen/src/buildSphereGeometry.ts", "../../procgen/src/buildTorusGeometry.ts", "../../procgen/src/buildVectorTextGeometry.ts", "../../procgen/src/buildPlaneGeometry.ts", "../../locale/src/index.ts", "../../locale/src/LocaleService.ts", "../../data/src/index.ts", "../../data/src/Property.ts", "../../data/src/PropertySet.ts", "../../data/src/DataObject.ts", "../../data/src/Relationship.ts", "../../data/src/DataModel.ts", "../../data/src/Data.ts", "../../scene/src/index.ts", "../../scene/src/Scene.ts", "../../scene/src/SceneModel.ts", "../../scene/src/SceneGeometry.ts", "../../scene/src/SceneObject.ts", "../../scene/src/SceneTextureSet.ts", "../../scene/src/SceneTexture.ts", "../../scene/src/SceneMesh.ts", "../../scene/src/buildEdgeIndices.ts", "../../scene/src/compressGeometryParams.ts", "../../scene/src/SceneQuantizationRange.ts", "../../scene/src/SceneTile.ts", "../../scene/src/getSceneObjectGeometry.ts", "../../scene/src/buildMat4.ts", "../../kdtree2/src/index.ts", "../../kdtree2/src/KdTree2.ts", "../../kdtree2/src/createKdTree2FromSceneObjectVerts.ts", "../../kdtree2/src/searchKdTree2ForNearestNeighbor.ts", "../../kdtree2/src/KdVertex2.ts", "../../kdtree3/src/index.ts", "../../kdtree3/src/KdTree3.ts", "../../kdtree3/src/sceneObjectsKdTree3.ts", "../../kdtree3/src/createSceneObjectsKdTree3.ts", "../../kdtree3/src/createSceneObjectPrimsKdTree3.ts", "../../kdtree3/src/PrimsKdTree3.ts", "../../kdtree3/src/createPrimsKdTree3.ts", "../../kdtree3/src/searchKdTree3WithAABB.ts", "../../kdtree3/src/searchKdTree3WithFrustum.ts", "../../kdtree3/src/searchKdTree3WithRay.ts", "../../pick/src/index.ts", "../../pick/src/PickPrimsCache.ts", "../../pick/src/Picker.ts", "../../basictypes/src/index.ts", "../../cityjsontypes_1_1_3/src/index.ts", "../../ifctypes/src/index.ts", "../../cityjson/src/index.ts", "../../cityjson/src/earcut.ts", "../../cityjson/src/loadCityJSON.ts", "../../dotbim/src/index.ts", "../../dotbim/src/loadDotBIM.ts", "../../dotbim/src/saveDotBIM.ts", "../../webifc/src/index.ts", "../../../node_modules/.pnpm/web-ifc@0.0.50/node_modules/web-ifc/web-ifc-api.js", "../../webifc/src/loadWebIFC.ts", "../../dtx/src/index.ts", "../../../node_modules/.pnpm/pako@2.1.0/node_modules/pako/dist/pako.esm.mjs", "../../dtx/src/versions/v1/inflateDTX.ts", "../../dtx/src/versions/v1/unpackDTX.ts", "../../dtx/src/versions/v1/dtxToModel.ts", "../../dtx/src/versions/v1/readDTX.ts", "../../dtx/src/loadDTX.ts", "../../dtx/src/versions/v1/deflateDTX.ts", "../../dtx/src/versions/v1/DTX_INFO.ts", "../../dtx/src/versions/v1/modelToDTX.ts", "../../dtx/src/versions/v1/packDTX.ts", "../../dtx/src/versions/v1/writeDTX.ts", "../../dtx/src/saveDTX.ts", "../../las/src/index.ts", "../../../node_modules/.pnpm/@loaders.gl+loader-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/loader-utils/dist/loader-types.js", "../../../node_modules/.pnpm/@loaders.gl+loader-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/loader-utils/dist/lib/env-utils/assert.js", "../../../node_modules/.pnpm/@loaders.gl+loader-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/loader-utils/dist/lib/env-utils/globals.js", "../../../node_modules/.pnpm/@probe.gl+env@4.0.9/node_modules/@probe.gl/env/dist/lib/globals.js", "../../../node_modules/.pnpm/@probe.gl+env@4.0.9/node_modules/@probe.gl/env/dist/lib/is-electron.js", "../../../node_modules/.pnpm/@probe.gl+env@4.0.9/node_modules/@probe.gl/env/dist/lib/is-browser.js", "../../../node_modules/.pnpm/@probe.gl+env@4.0.9/node_modules/@probe.gl/env/dist/index.js", "../../../node_modules/.pnpm/@probe.gl+log@4.0.9/node_modules/@probe.gl/log/dist/utils/local-storage.js", "../../../node_modules/.pnpm/@probe.gl+log@4.0.9/node_modules/@probe.gl/log/dist/utils/formatters.js", "../../../node_modules/.pnpm/@probe.gl+log@4.0.9/node_modules/@probe.gl/log/dist/utils/color.js", "../../../node_modules/.pnpm/@probe.gl+log@4.0.9/node_modules/@probe.gl/log/dist/utils/autobind.js", "../../../node_modules/.pnpm/@probe.gl+log@4.0.9/node_modules/@probe.gl/log/dist/utils/assert.js", "../../../node_modules/.pnpm/@probe.gl+log@4.0.9/node_modules/@probe.gl/log/dist/utils/hi-res-timestamp.js", "../../../node_modules/.pnpm/@probe.gl+log@4.0.9/node_modules/@probe.gl/log/dist/log.js", "../../../node_modules/.pnpm/@probe.gl+log@4.0.9/node_modules/@probe.gl/log/dist/init.js", "../../../node_modules/.pnpm/@probe.gl+log@4.0.9/node_modules/@probe.gl/log/dist/index.js", "../../../node_modules/.pnpm/@loaders.gl+loader-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/loader-utils/dist/lib/option-utils/merge-loader-options.js", "../../../node_modules/.pnpm/@loaders.gl+loader-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/loader-utils/dist/lib/module-utils/js-module-utils.js", "../../../node_modules/.pnpm/@loaders.gl+worker-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/worker-utils/dist/lib/env-utils/version.js", "../../../node_modules/.pnpm/@loaders.gl+worker-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/worker-utils/dist/lib/env-utils/assert.js", "../../../node_modules/.pnpm/@loaders.gl+worker-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/worker-utils/dist/lib/env-utils/globals.js", "../../../node_modules/.pnpm/@loaders.gl+worker-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/worker-utils/dist/lib/worker-farm/worker-job.js", "../../../node_modules/.pnpm/@loaders.gl+worker-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/worker-utils/dist/lib/node/worker_threads-browser.js", "../../../node_modules/.pnpm/@loaders.gl+worker-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/worker-utils/dist/lib/worker-utils/get-loadable-worker-url.js", "../../../node_modules/.pnpm/@loaders.gl+worker-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/worker-utils/dist/lib/worker-utils/get-transfer-list.js", "../../../node_modules/.pnpm/@loaders.gl+worker-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/worker-utils/dist/lib/worker-farm/worker-thread.js", "../../../node_modules/.pnpm/@loaders.gl+worker-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/worker-utils/dist/lib/worker-farm/worker-pool.js", "../../../node_modules/.pnpm/@loaders.gl+worker-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/worker-utils/dist/lib/worker-farm/worker-farm.js", "../../../node_modules/.pnpm/@loaders.gl+worker-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/worker-utils/dist/lib/worker-api/get-worker-url.js", "../../../node_modules/.pnpm/@loaders.gl+worker-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/worker-utils/dist/lib/worker-api/validate-worker-version.js", "../../../node_modules/.pnpm/@loaders.gl+worker-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/worker-utils/dist/lib/library-utils/library-utils.js", "../../../node_modules/.pnpm/@loaders.gl+loader-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/loader-utils/dist/lib/worker-loader-utils/parse-with-worker.js", "../../../node_modules/.pnpm/@loaders.gl+loader-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/loader-utils/dist/lib/binary-utils/get-first-characters.js", "../../../node_modules/.pnpm/@loaders.gl+loader-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/loader-utils/dist/lib/parser-utils/parse-json.js", "../../../node_modules/.pnpm/@loaders.gl+loader-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/loader-utils/dist/lib/binary-utils/array-buffer-utils.js", "../../../node_modules/.pnpm/@loaders.gl+loader-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/loader-utils/dist/lib/binary-utils/memory-copy-utils.js", "../../../node_modules/.pnpm/@loaders.gl+loader-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/loader-utils/dist/lib/iterators/async-iteration.js", "../../../node_modules/.pnpm/@loaders.gl+loader-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/loader-utils/dist/lib/path-utils/file-aliases.js", "../../../node_modules/.pnpm/@loaders.gl+loader-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/loader-utils/dist/lib/node/buffer.browser.js", "../../../node_modules/.pnpm/@loaders.gl+loader-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/loader-utils/dist/lib/binary-utils/memory-conversion-utils.js", "../../../node_modules/.pnpm/@loaders.gl+loader-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/loader-utils/dist/lib/path-utils/path.js", "../../../node_modules/.pnpm/@loaders.gl+loader-utils@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/loader-utils/dist/lib/path-utils/get-cwd.js", "../../../node_modules/.pnpm/@loaders.gl+core@4.2.2/node_modules/@loaders.gl/core/dist/javascript-utils/is-type.js", "../../../node_modules/.pnpm/@loaders.gl+core@4.2.2/node_modules/@loaders.gl/core/dist/lib/fetch/fetch-error.js", "../../../node_modules/.pnpm/@loaders.gl+core@4.2.2/node_modules/@loaders.gl/core/dist/lib/utils/mime-type-utils.js", "../../../node_modules/.pnpm/@loaders.gl+core@4.2.2/node_modules/@loaders.gl/core/dist/lib/utils/url-utils.js", "../../../node_modules/.pnpm/@loaders.gl+core@4.2.2/node_modules/@loaders.gl/core/dist/lib/utils/resource-utils.js", "../../../node_modules/.pnpm/@loaders.gl+core@4.2.2/node_modules/@loaders.gl/core/dist/lib/utils/response-utils.js", "../../../node_modules/.pnpm/@loaders.gl+core@4.2.2/node_modules/@loaders.gl/core/dist/lib/fetch/fetch-file.js", "../../../node_modules/.pnpm/@loaders.gl+core@4.2.2/node_modules/@loaders.gl/core/dist/lib/loader-utils/loggers.js", "../../../node_modules/.pnpm/@loaders.gl+core@4.2.2/node_modules/@loaders.gl/core/dist/lib/loader-utils/option-defaults.js", "../../../node_modules/.pnpm/@loaders.gl+core@4.2.2/node_modules/@loaders.gl/core/dist/lib/loader-utils/option-utils.js", "../../../node_modules/.pnpm/@loaders.gl+core@4.2.2/node_modules/@loaders.gl/core/dist/lib/loader-utils/normalize-loader.js", "../../../node_modules/.pnpm/@loaders.gl+core@4.2.2/node_modules/@loaders.gl/core/dist/lib/api/register-loaders.js", "../../../node_modules/.pnpm/@loaders.gl+core@4.2.2/node_modules/@loaders.gl/core/dist/lib/utils/log.js", "../../../node_modules/.pnpm/@loaders.gl+core@4.2.2/node_modules/@loaders.gl/core/dist/lib/api/select-loader.js", "../../../node_modules/.pnpm/@loaders.gl+core@4.2.2/node_modules/@loaders.gl/core/dist/iterators/make-iterator/make-string-iterator.js", "../../../node_modules/.pnpm/@loaders.gl+core@4.2.2/node_modules/@loaders.gl/core/dist/iterators/make-iterator/make-array-buffer-iterator.js", "../../../node_modules/.pnpm/@loaders.gl+core@4.2.2/node_modules/@loaders.gl/core/dist/iterators/make-iterator/make-blob-iterator.js", "../../../node_modules/.pnpm/@loaders.gl+core@4.2.2/node_modules/@loaders.gl/core/dist/iterators/make-iterator/make-stream-iterator.js", "../../../node_modules/.pnpm/@loaders.gl+core@4.2.2/node_modules/@loaders.gl/core/dist/iterators/make-iterator/make-iterator.js", "../../../node_modules/.pnpm/@loaders.gl+core@4.2.2/node_modules/@loaders.gl/core/dist/lib/loader-utils/get-data.js", "../../../node_modules/.pnpm/@loaders.gl+core@4.2.2/node_modules/@loaders.gl/core/dist/lib/loader-utils/get-fetch-function.js", "../../../node_modules/.pnpm/@loaders.gl+core@4.2.2/node_modules/@loaders.gl/core/dist/lib/loader-utils/loader-context.js", "../../../node_modules/.pnpm/@loaders.gl+core@4.2.2/node_modules/@loaders.gl/core/dist/lib/api/parse.js", "../../../node_modules/.pnpm/@loaders.gl+schema@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/schema/dist/lib/table/simple-table/data-type.js", "../../../node_modules/.pnpm/@loaders.gl+schema@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/schema/dist/lib/mesh/mesh-utils.js", "../../../node_modules/.pnpm/@loaders.gl+schema@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/schema/dist/lib/mesh/deduce-mesh-schema.js", "../../../node_modules/.pnpm/@loaders.gl+las@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/las/dist/las-loader.js", "../../../node_modules/.pnpm/@loaders.gl+las@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/las/dist/lib/libs/laz-perf.js", "../../../node_modules/.pnpm/@loaders.gl+las@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/las/dist/lib/laslaz-decoder.js", "../../../node_modules/.pnpm/@loaders.gl+las@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/las/dist/lib/get-las-schema.js", "../../../node_modules/.pnpm/@loaders.gl+las@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/las/dist/lib/parse-las.js", "../../../node_modules/.pnpm/@loaders.gl+las@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/las/dist/index.js", "../../las/src/loadLAS.ts", "../../gltf/src/index.ts", "../../../node_modules/.pnpm/@loaders.gl+gltf@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/gltf/dist/lib/extensions/EXT_mesh_features.js", "../../../node_modules/.pnpm/@loaders.gl+images@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/images/dist/lib/utils/version.js", "../../../node_modules/.pnpm/@loaders.gl+images@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/images/dist/lib/category-api/image-type.js", "../../../node_modules/.pnpm/@loaders.gl+images@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/images/dist/lib/category-api/parsed-image-api.js", "../../../node_modules/.pnpm/@loaders.gl+images@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/images/dist/lib/parsers/svg-utils.js", "../../../node_modules/.pnpm/@loaders.gl+images@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/images/dist/lib/parsers/parse-to-image.js", "../../../node_modules/.pnpm/@loaders.gl+images@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/images/dist/lib/parsers/parse-to-image-bitmap.js", "../../../node_modules/.pnpm/@loaders.gl+images@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/images/dist/lib/category-api/parse-isobmff-binary.js", "../../../node_modules/.pnpm/@loaders.gl+images@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/images/dist/lib/category-api/binary-image-api.js", "../../../node_modules/.pnpm/@loaders.gl+images@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/images/dist/lib/parsers/parse-to-node-image.js", "../../../node_modules/.pnpm/@loaders.gl+images@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/images/dist/lib/parsers/parse-image.js", "../../../node_modules/.pnpm/@loaders.gl+images@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/images/dist/image-loader.js", "../../../node_modules/.pnpm/@loaders.gl+images@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/images/dist/lib/category-api/image-format.js", "../../../node_modules/.pnpm/@loaders.gl+gltf@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/gltf/dist/lib/utils/assert.js", "../../../node_modules/.pnpm/@loaders.gl+gltf@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/gltf/dist/lib/gltf-utils/gltf-constants.js", "../../../node_modules/.pnpm/@loaders.gl+gltf@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/gltf/dist/lib/gltf-utils/gltf-utils.js", "../../../node_modules/.pnpm/@loaders.gl+gltf@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/gltf/dist/lib/gltf-utils/get-typed-array.js", "../../../node_modules/.pnpm/@loaders.gl+gltf@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/gltf/dist/lib/api/gltf-scenegraph.js", "../../../node_modules/.pnpm/@loaders.gl+gltf@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/gltf/dist/lib/extensions/utils/3d-tiles-utils.js", "../../../node_modules/.pnpm/@loaders.gl+gltf@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/gltf/dist/lib/extensions/EXT_structural_metadata.js", "../../../node_modules/.pnpm/@loaders.gl+gltf@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/gltf/dist/lib/extensions/deprecated/EXT_feature_metadata.js", "../../../node_modules/.pnpm/@loaders.gl+gltf@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/gltf/dist/lib/utils/version.js", "../../../node_modules/.pnpm/@loaders.gl+textures@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/textures/dist/lib/utils/version.js", "../../../node_modules/.pnpm/@loaders.gl+textures@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/textures/dist/lib/parsers/basis-module-loader.js", "../../../node_modules/.pnpm/@loaders.gl+textures@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/textures/dist/lib/gl-extensions.js", "../../../node_modules/.pnpm/@loaders.gl+textures@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/textures/dist/lib/utils/texture-formats.js", "../../../node_modules/.pnpm/ktx-parse@0.0.4/node_modules/ktx-parse/src/constants.ts", "../../../node_modules/.pnpm/ktx-parse@0.0.4/node_modules/ktx-parse/src/container.ts", "../../../node_modules/.pnpm/ktx-parse@0.0.4/node_modules/ktx-parse/src/buffer-reader.ts", "../../../node_modules/.pnpm/ktx-parse@0.0.4/node_modules/ktx-parse/src/util.ts", "../../../node_modules/.pnpm/ktx-parse@0.0.4/node_modules/ktx-parse/src/read.ts", "../../../node_modules/.pnpm/ktx-parse@0.0.4/node_modules/ktx-parse/src/write.ts", "../../../node_modules/.pnpm/@loaders.gl+textures@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/textures/dist/lib/parsers/parse-ktx.js", "../../../node_modules/.pnpm/@loaders.gl+textures@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/textures/dist/lib/parsers/parse-basis.js", "../../../node_modules/.pnpm/@loaders.gl+textures@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/textures/dist/basis-loader.js", "../../../node_modules/.pnpm/@loaders.gl+gltf@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/gltf/dist/lib/parsers/parse-glb.js", "../../../node_modules/.pnpm/@loaders.gl+gltf@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/gltf/dist/lib/gltf-utils/resolve-url.js", "../../../node_modules/.pnpm/@loaders.gl+gltf@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/gltf/dist/lib/extensions/EXT_meshopt_compression.js", "../../../node_modules/.pnpm/@loaders.gl+gltf@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/gltf/dist/meshopt/meshopt-decoder.js", "../../../node_modules/.pnpm/@loaders.gl+gltf@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/gltf/dist/lib/extensions/EXT_texture_webp.js", "../../../node_modules/.pnpm/@loaders.gl+gltf@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/gltf/dist/lib/extensions/KHR_texture_basisu.js", "../../../node_modules/.pnpm/@loaders.gl+gltf@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/gltf/dist/lib/extensions/KHR_draco_mesh_compression.js", "../../../node_modules/.pnpm/@loaders.gl+draco@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/draco/dist/lib/utils/version.js", "../../../node_modules/.pnpm/@loaders.gl+draco@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/draco/dist/draco-loader.js", "../../../node_modules/.pnpm/@loaders.gl+draco@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/draco/dist/lib/utils/get-draco-schema.js", "../../../node_modules/.pnpm/@loaders.gl+draco@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/draco/dist/lib/draco-parser.js", "../../../node_modules/.pnpm/@loaders.gl+draco@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/draco/dist/lib/draco-module-loader.js", "../../../node_modules/.pnpm/@loaders.gl+draco@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/draco/dist/index.js", "../../../node_modules/.pnpm/@loaders.gl+gltf@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/gltf/dist/lib/gltf-utils/gltf-attribute-utils.js", "../../../node_modules/.pnpm/@loaders.gl+gltf@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/gltf/dist/lib/extensions/KHR_texture_transform.js", "../../../node_modules/.pnpm/@math.gl+core@4.0.1/node_modules/@math.gl/core/dist/lib/common.js", "../../../node_modules/.pnpm/@math.gl+core@4.0.1/node_modules/@math.gl/core/dist/classes/base/math-array.js", "../../../node_modules/.pnpm/@math.gl+core@4.0.1/node_modules/@math.gl/core/dist/lib/validators.js", "../../../node_modules/.pnpm/@math.gl+core@4.0.1/node_modules/@math.gl/core/dist/lib/assert.js", "../../../node_modules/.pnpm/@math.gl+core@4.0.1/node_modules/@math.gl/core/dist/classes/base/vector.js", "../../../node_modules/.pnpm/@math.gl+core@4.0.1/node_modules/@math.gl/core/dist/gl-matrix/common.js", "../../../node_modules/.pnpm/@math.gl+core@4.0.1/node_modules/@math.gl/core/dist/gl-matrix/vec2.js", "../../../node_modules/.pnpm/@math.gl+core@4.0.1/node_modules/@math.gl/core/dist/lib/gl-matrix-extras.js", "../../../node_modules/.pnpm/@math.gl+core@4.0.1/node_modules/@math.gl/core/dist/gl-matrix/vec3.js", "../../../node_modules/.pnpm/@math.gl+core@4.0.1/node_modules/@math.gl/core/dist/classes/vector3.js", "../../../node_modules/.pnpm/@math.gl+core@4.0.1/node_modules/@math.gl/core/dist/classes/base/matrix.js", "../../../node_modules/.pnpm/@math.gl+core@4.0.1/node_modules/@math.gl/core/dist/gl-matrix/mat3.js", "../../../node_modules/.pnpm/@math.gl+core@4.0.1/node_modules/@math.gl/core/dist/classes/matrix3.js", "../../../node_modules/.pnpm/@loaders.gl+gltf@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/gltf/dist/lib/extensions/deprecated/KHR_lights_punctual.js", "../../../node_modules/.pnpm/@loaders.gl+gltf@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/gltf/dist/lib/extensions/deprecated/KHR_materials_unlit.js", "../../../node_modules/.pnpm/@loaders.gl+gltf@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/gltf/dist/lib/extensions/deprecated/KHR_techniques_webgl.js", "../../../node_modules/.pnpm/@loaders.gl+gltf@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/gltf/dist/lib/api/gltf-extensions.js", "../../../node_modules/.pnpm/@loaders.gl+gltf@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/gltf/dist/lib/extensions/KHR_binary_gltf.js", "../../../node_modules/.pnpm/@loaders.gl+gltf@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/gltf/dist/lib/api/normalize-gltf-v1.js", "../../../node_modules/.pnpm/@loaders.gl+gltf@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/gltf/dist/lib/parsers/parse-gltf.js", "../../../node_modules/.pnpm/@loaders.gl+gltf@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/gltf/dist/gltf-loader.js", "../../../node_modules/.pnpm/@loaders.gl+gltf@4.2.2_@loaders.gl+core@4.2.2/node_modules/@loaders.gl/gltf/dist/lib/api/post-process-gltf.js", "../../gltf/src/loadGLTF.ts", "../../xkt/src/index.ts", "../../xkt/src/versions/v10/inflateXKT.ts", "../../xkt/src/versions/v10/unpackXKT.ts", "../../xkt/src/versions/v10/xktToModel.ts", "../../xkt/src/versions/v10/parseXKT.ts", "../../xkt/src/loadXKT.ts", "../../metamodel/src/loadMetamodel.ts", "../../xkt/src/loadXKTManifest.ts", "../../viewer/src/index.ts", "../../viewer/src/Viewer.ts", "../../viewer/src/View.ts", "../../viewer/src/ViewObject.ts", "../../viewer/src/SectionPlane.ts", "../../viewer/src/Metriqs.ts", "../../viewer/src/SAO.ts", "../../viewer/src/Texturing.ts", "../../viewer/src/LinesMaterial.ts", "../../viewer/src/ViewLayer.ts", "../../viewer/src/EmphasisMaterial.ts", "../../viewer/src/Edges.ts", "../../viewer/src/PointsMaterial.ts", "../../viewer/src/Camera.ts", "../../viewer/src/PerspectiveProjection.ts", "../../viewer/src/OrthoProjection.ts", "../../viewer/src/FrustumProjection.ts", "../../viewer/src/CustomProjection.ts", "../../viewer/src/CameraFlightAnimation.ts", "../../viewer/src/stats.ts", "../../viewer/src/scheduler.ts", "../../viewer/src/AmbientLight.ts", "../../viewer/src/DirLight.ts", "../../viewer/src/SnapshotResult.ts", "../../viewer/src/ResolutionScale.ts", "../../viewer/src/PointLight.ts", "../../viewer/src/PickResult.ts", "../../webglrenderer/src/index.ts", "../../ktx2/src/index.ts", "../../ktx2/src/KTX2TextureTranscoder.ts", "../../webglutils/src/WebGLArrayBuf.ts", "../../webglutils/src/WebGLAttribute.ts", "../../webglutils/src/WebGLShader.ts", "../../webglutils/src/WebGLSampler.ts", "../../webglutils/src/WebGLProgram.ts", "../../webglutils/src/WebGLRenderBuffer.ts", "../../webglutils/src/getWebGLExtension.ts", "../../webglutils/src/convertWebGLConstant.ts", "../../webglutils/src/WebGLTexture.ts", "../../webglutils/src/canvas2image.ts", "../../webglutils/src/WEBGL_INFO.ts", "../../webglrenderer/src/RenderContext.ts", "../../webglrenderer/src/WebGLRendererGeometry.ts", "../../webglrenderer/src/WebGLRendererTexture.ts", "../../webglrenderer/src/SCENE_OBJECT_FLAGS.ts", "../../webglrenderer/src/WebGLRendererObject.ts", "../../webglrenderer/src/WebGLRendererMesh.ts", "../../webglrenderer/src/WebGLRendererTextureSet.ts", "../../webglrenderer/src/MeshCounts.ts", "../../webglrenderer/src/RenderFlags.ts", "../../webglrenderer/src/vbo/batching/VBOBatchingBuffer.ts", "../../webglrenderer/src/RENDER_PASSES.ts", "../../webglrenderer/src/vbo/ScratchMemory.ts", "../../webglrenderer/src/vbo/batching/VBOBatchingLayer.ts", "../../webglrenderer/src/vbo/VBORenderer.ts", "../../webglrenderer/src/vbo/batching/VBOBatchingRenderer.ts", "../../webglrenderer/src/vbo/batching/points/renderers/VBOPointsBatchingDrawRenderer.ts", "../../webglrenderer/src/vbo/batching/points/renderers/VBOPointsBatchingPickMeshRenderer.ts", "../../webglrenderer/src/vbo/batching/points/renderers/VBOPointsBatchingSilhouetteRenderer.ts", "../../webglrenderer/src/vbo/VBORendererSet.ts", "../../webglrenderer/src/vbo/batching/points/renderers/rendererFactory.ts", "../../webglrenderer/src/vbo/batching/points/VBOPointsBatchingLayer.ts", "../../webglrenderer/src/vbo/batching/triangles/renderers/VBOTrianglesBatchingDrawRenderer.ts", "../../webglrenderer/src/vbo/batching/triangles/renderers/VBOTrianglesBatchingPickMeshRenderer.ts", "../../webglrenderer/src/vbo/batching/triangles/renderers/VBOTrianglesBatchingSilhouetteRenderer.ts", "../../webglrenderer/src/vbo/batching/triangles/renderers/VBOTrianglesBatchingEdgesDrawRenderer.ts", "../../webglrenderer/src/vbo/batching/triangles/renderers/VBOTrianglesBatchingEdgesSilhouetteRenderer.ts", "../../webglrenderer/src/vbo/batching/triangles/renderers/rendererFactory.ts", "../../webglrenderer/src/vbo/batching/triangles/VBOTrianglesBatchingLayer.ts", "../../webglrenderer/src/vbo/instancing/VBOInstancingBuffer.ts", "../../webglrenderer/src/vbo/instancing/VBOInstancingLayer.ts", "../../webglrenderer/src/vbo/instancing/VBOInstancingRenderer.ts", "../../webglrenderer/src/vbo/instancing/triangles/renderers/VBOTrianglesInstancingDrawRenderer.ts", "../../webglrenderer/src/vbo/instancing/triangles/renderers/VBOTrianglesInstancingSilhouetteRenderer.ts", "../../webglrenderer/src/vbo/instancing/triangles/renderers/VBOTrianglesInstancingPickMeshRenderer.ts", "../../webglrenderer/src/vbo/instancing/triangles/renderers/VBOTrianglesInstancingEdgesDrawRenderer.ts", "../../webglrenderer/src/vbo/instancing/triangles/renderers/VBOTrianglesInstancingEdgesSilhouetteRenderer.ts", "../../webglrenderer/src/vbo/instancing/triangles/renderers/rendererFactory.ts", "../../webglrenderer/src/vbo/instancing/triangles/VBOTrianglesInstancingLayer.ts", "../../webglrenderer/src/vbo/instancing/lines/renderers/VBOLinesInstancingDrawRenderer.ts", "../../webglrenderer/src/vbo/instancing/lines/renderers/VBOLinesInstancingPickMeshRenderer.ts", "../../webglrenderer/src/vbo/instancing/lines/renderers/VBOLinesInstancingSilhouetteRenderer.ts", "../../webglrenderer/src/vbo/instancing/lines/renderers/rendererFactory.ts", "../../webglrenderer/src/vbo/instancing/lines/VBOLinesInstancingLayer.ts", "../../webglrenderer/src/vbo/batching/lines/renderers/VBOLinesBatchingDrawRenderer.ts", "../../webglrenderer/src/vbo/batching/lines/renderers/VBOLinesBatchingPickMeshRenderer.ts", "../../webglrenderer/src/vbo/batching/lines/renderers/VBOLinesBatchingSilhouetteRenderer.ts", "../../webglrenderer/src/vbo/batching/lines/renderers/rendererFactory.ts", "../../webglrenderer/src/vbo/batching/lines/VBOLinesBatchingLayer.ts", "../../webglrenderer/src/WebGLRendererModel.ts", "../../webglrenderer/src/RenderStats.ts", "../../webglrenderer/src/WebGLRenderer.ts", "../../webglrenderer/src/WebGLRenderBufferManager.ts", "../../webglrenderer/src/createSceneModelStreamParams.ts", "../../cameracontrol/src/index.ts", "../../cameracontrol/src/PickController.ts", "../../cameracontrol/src/PivotController.ts", "../../cameracontrol/src/PanController.ts", "../../cameracontrol/src/MouseMiscHandler.ts", "../../cameracontrol/src/TouchPanRotateAndDollyHandler.ts", "../../cameracontrol/src/keycodes.ts", "../../cameracontrol/src/MousePanRotateDollyHandler.ts", "../../cameracontrol/src/KeyboardAxisViewHandler.ts", "../../cameracontrol/src/MousePickHandler.ts", "../../cameracontrol/src/TouchPickHandler.ts", "../../cameracontrol/src/KeyboardPanRotateDollyHandler.ts", "../../cameracontrol/src/CameraUpdater.ts", "../../cameracontrol/src/CameraControl.ts", "../../bcf/src/index.ts", "../../bcf/src/loadBCFViewpoint.ts", "../../bcf/src/saveBCFViewpoint.ts", "../../treeview/src/index.ts", "../../treeview/src/TreeView.ts"],
- "sourcesContent": ["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DispatcherWrapper = void 0;\n/**\n * Hides the implementation of the event dispatcher. Will expose methods that\n * are relevent to the event.\n *\n * @export\n * @class DispatcherWrapper\n * @implements {ISubscribable}\n * @template TEventHandler The type of event handler.\n */\nclass DispatcherWrapper {\n /**\n * Creates an instance of DispatcherWrapper.\n * @param {ISubscribable} dispatcher\n *\n * @memberOf DispatcherWrapper\n */\n constructor(dispatcher) {\n this._subscribe = (fn) => dispatcher.subscribe(fn);\n this._unsubscribe = (fn) => dispatcher.unsubscribe(fn);\n this._one = (fn) => dispatcher.one(fn);\n this._has = (fn) => dispatcher.has(fn);\n this._clear = () => dispatcher.clear();\n this._count = () => dispatcher.count;\n this._onSubscriptionChange = () => dispatcher.onSubscriptionChange;\n }\n /**\n * Triggered when subscriptions are changed (added or removed).\n *\n * @readonly\n * @type {ISubscribable}\n * @memberOf DispatcherWrapper\n */\n get onSubscriptionChange() {\n return this._onSubscriptionChange();\n }\n /**\n * Returns the number of subscriptions.\n *\n * @readonly\n * @type {number}\n * @memberOf DispatcherWrapper\n */\n get count() {\n return this._count();\n }\n /**\n * Subscribe to the event dispatcher.\n *\n * @param {TEventHandler} fn The event handler that is called when the event is dispatched.\n * @returns {() => void} A function that unsubscribes the event handler from the event.\n *\n * @memberOf DispatcherWrapper\n */\n subscribe(fn) {\n return this._subscribe(fn);\n }\n /**\n * Subscribe to the event dispatcher.\n *\n * @param {TEventHandler} fn The event handler that is called when the event is dispatched.\n * @returns {() => void} A function that unsubscribes the event handler from the event.\n *\n * @memberOf DispatcherWrapper\n */\n sub(fn) {\n return this.subscribe(fn);\n }\n /**\n * Unsubscribe from the event dispatcher.\n *\n * @param {TEventHandler} fn The event handler that is called when the event is dispatched.\n *\n * @memberOf DispatcherWrapper\n */\n unsubscribe(fn) {\n this._unsubscribe(fn);\n }\n /**\n * Unsubscribe from the event dispatcher.\n *\n * @param {TEventHandler} fn The event handler that is called when the event is dispatched.\n *\n * @memberOf DispatcherWrapper\n */\n unsub(fn) {\n this.unsubscribe(fn);\n }\n /**\n * Subscribe once to the event with the specified name.\n *\n * @returns {() => void} A function that unsubscribes the event handler from the event.\n *\n * @memberOf DispatcherWrapper\n */\n one(fn) {\n return this._one(fn);\n }\n /**\n * Checks it the event has a subscription for the specified handler.\n *\n * @param {TEventHandler} fn The event handler that is called when the event is dispatched.\n *\n * @memberOf DispatcherWrapper\n */\n has(fn) {\n return this._has(fn);\n }\n /**\n * Clears all the subscriptions.\n *\n * @memberOf DispatcherWrapper\n */\n clear() {\n this._clear();\n }\n}\nexports.DispatcherWrapper = DispatcherWrapper;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Subscription = void 0;\n/**\n * Stores a handler. Manages execution meta data.\n * @class Subscription\n * @template TEventHandler\n */\nclass Subscription {\n /**\n * Creates an instance of Subscription.\n *\n * @param {TEventHandler} handler The handler for the subscription.\n * @param {boolean} isOnce Indicates if the handler should only be executed once.\n */\n constructor(handler, isOnce) {\n this.handler = handler;\n this.isOnce = isOnce;\n /**\n * Indicates if the subscription has been executed before.\n */\n this.isExecuted = false;\n }\n /**\n * Executes the handler.\n *\n * @param {boolean} executeAsync True if the even should be executed async.\n * @param {*} scope The scope the scope of the event.\n * @param {IArguments} args The arguments for the event.\n */\n execute(executeAsync, scope, args) {\n if (!this.isOnce || !this.isExecuted) {\n this.isExecuted = true;\n var fn = this.handler;\n if (executeAsync) {\n setTimeout(() => {\n fn.apply(scope, args);\n }, 1);\n }\n else {\n fn.apply(scope, args);\n }\n }\n }\n}\nexports.Subscription = Subscription;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventManagement = void 0;\n/**\n * Allows the user to interact with the event.\n *\n * @export\n * @class EventManagement\n * @implements {IEventManagement}\n */\nclass EventManagement {\n /**\n * Creates an instance of EventManagement.\n * @param {() => void} unsub An unsubscribe handler.\n *\n * @memberOf EventManagement\n */\n constructor(unsub) {\n this.unsub = unsub;\n this.propagationStopped = false;\n }\n /**\n * Stops the propagation of the event.\n * Cannot be used when async dispatch is done.\n *\n * @memberOf EventManagement\n */\n stopPropagation() {\n this.propagationStopped = true;\n }\n}\nexports.EventManagement = EventManagement;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SubscriptionChangeEventDispatcher = exports.DispatcherBase = void 0;\nconst DispatcherWrapper_1 = require(\"./DispatcherWrapper\");\nconst Subscription_1 = require(\"../events/Subscription\");\nconst EventManagement_1 = require(\"../management/EventManagement\");\n/**\n * Base class for implementation of the dispatcher. It facilitates the subscribe\n * and unsubscribe methods based on generic handlers. The TEventType specifies\n * the type of event that should be exposed. Use the asEvent to expose the\n * dispatcher as event.\n *\n * @export\n * @abstract\n * @class DispatcherBase\n * @implements {ISubscribable}\n * @template TEventHandler The type of event handler.\n */\nclass DispatcherBase {\n constructor() {\n /**\n * The subscriptions.\n *\n * @protected\n *\n * @memberOf DispatcherBase\n */\n this._subscriptions = new Array();\n }\n /**\n * Returns the number of subscriptions.\n *\n * @readonly\n * @type {number}\n * @memberOf DispatcherBase\n */\n get count() {\n return this._subscriptions.length;\n }\n /**\n * Triggered when subscriptions are changed (added or removed).\n *\n * @readonly\n * @type {ISubscribable}\n * @memberOf DispatcherBase\n */\n get onSubscriptionChange() {\n if (this._onSubscriptionChange == null) {\n this._onSubscriptionChange = new SubscriptionChangeEventDispatcher();\n }\n return this._onSubscriptionChange.asEvent();\n }\n /**\n * Subscribe to the event dispatcher.\n *\n * @param {TEventHandler} fn The event handler that is called when the event is dispatched.\n * @returns A function that unsubscribes the event handler from the event.\n *\n * @memberOf DispatcherBase\n */\n subscribe(fn) {\n if (fn) {\n this._subscriptions.push(this.createSubscription(fn, false));\n this.triggerSubscriptionChange();\n }\n return () => {\n this.unsubscribe(fn);\n };\n }\n /**\n * Subscribe to the event dispatcher.\n *\n * @param {TEventHandler} fn The event handler that is called when the event is dispatched.\n * @returns A function that unsubscribes the event handler from the event.\n *\n * @memberOf DispatcherBase\n */\n sub(fn) {\n return this.subscribe(fn);\n }\n /**\n * Subscribe once to the event with the specified name.\n *\n * @param {TEventHandler} fn The event handler that is called when the event is dispatched.\n * @returns A function that unsubscribes the event handler from the event.\n *\n * @memberOf DispatcherBase\n */\n one(fn) {\n if (fn) {\n this._subscriptions.push(this.createSubscription(fn, true));\n this.triggerSubscriptionChange();\n }\n return () => {\n this.unsubscribe(fn);\n };\n }\n /**\n * Checks it the event has a subscription for the specified handler.\n *\n * @param {TEventHandler} fn The event handler.\n *\n * @memberOf DispatcherBase\n */\n has(fn) {\n if (!fn)\n return false;\n return this._subscriptions.some((sub) => sub.handler == fn);\n }\n /**\n * Unsubscribes the handler from the dispatcher.\n *\n * @param {TEventHandler} fn The event handler.\n *\n * @memberOf DispatcherBase\n */\n unsubscribe(fn) {\n if (!fn)\n return;\n let changes = false;\n for (let i = 0; i < this._subscriptions.length; i++) {\n if (this._subscriptions[i].handler == fn) {\n this._subscriptions.splice(i, 1);\n changes = true;\n break;\n }\n }\n if (changes) {\n this.triggerSubscriptionChange();\n }\n }\n /**\n * Unsubscribes the handler from the dispatcher.\n *\n * @param {TEventHandler} fn The event handler.\n *\n * @memberOf DispatcherBase\n */\n unsub(fn) {\n this.unsubscribe(fn);\n }\n /**\n * Generic dispatch will dispatch the handlers with the given arguments.\n *\n * @protected\n * @param {boolean} executeAsync `True` if the even should be executed async.\n * @param {*} scope The scope of the event. The scope becomes the `this` for handler.\n * @param {IArguments} args The arguments for the event.\n * @returns {(IPropagationStatus | null)} The propagation status, or if an `executeAsync` is used `null`.\n *\n * @memberOf DispatcherBase\n */\n _dispatch(executeAsync, scope, args) {\n //execute on a copy because of bug #9\n for (let sub of [...this._subscriptions]) {\n let ev = new EventManagement_1.EventManagement(() => this.unsub(sub.handler));\n let nargs = Array.prototype.slice.call(args);\n nargs.push(ev);\n let s = sub;\n s.execute(executeAsync, scope, nargs);\n //cleanup subs that are no longer needed\n this.cleanup(sub);\n if (!executeAsync && ev.propagationStopped) {\n return { propagationStopped: true };\n }\n }\n if (executeAsync) {\n return null;\n }\n return { propagationStopped: false };\n }\n /**\n * Creates a subscription.\n *\n * @protected\n * @param {TEventHandler} handler The handler.\n * @param {boolean} isOnce True if the handler should run only one.\n * @returns {ISubscription} The subscription.\n *\n * @memberOf DispatcherBase\n */\n createSubscription(handler, isOnce) {\n return new Subscription_1.Subscription(handler, isOnce);\n }\n /**\n * Cleans up subs that ran and should run only once.\n *\n * @protected\n * @param {ISubscription} sub The subscription.\n *\n * @memberOf DispatcherBase\n */\n cleanup(sub) {\n let changes = false;\n if (sub.isOnce && sub.isExecuted) {\n let i = this._subscriptions.indexOf(sub);\n if (i > -1) {\n this._subscriptions.splice(i, 1);\n changes = true;\n }\n }\n if (changes) {\n this.triggerSubscriptionChange();\n }\n }\n /**\n * Creates an event from the dispatcher. Will return the dispatcher\n * in a wrapper. This will prevent exposure of any dispatcher methods.\n *\n * @returns {ISubscribable}\n *\n * @memberOf DispatcherBase\n */\n asEvent() {\n if (this._wrap == null) {\n this._wrap = new DispatcherWrapper_1.DispatcherWrapper(this);\n }\n return this._wrap;\n }\n /**\n * Clears the subscriptions.\n *\n * @memberOf DispatcherBase\n */\n clear() {\n if (this._subscriptions.length != 0) {\n this._subscriptions.splice(0, this._subscriptions.length);\n this.triggerSubscriptionChange();\n }\n }\n /**\n * Triggers the subscription change event.\n *\n * @private\n *\n * @memberOf DispatcherBase\n */\n triggerSubscriptionChange() {\n if (this._onSubscriptionChange != null) {\n this._onSubscriptionChange.dispatch(this.count);\n }\n }\n}\nexports.DispatcherBase = DispatcherBase;\n/**\n * Dispatcher for subscription changes.\n *\n * @export\n * @class SubscriptionChangeEventDispatcher\n * @extends {DispatcherBase}\n */\nclass SubscriptionChangeEventDispatcher extends DispatcherBase {\n /**\n * Dispatches the event.\n *\n * @param {number} count The currrent number of subscriptions.\n *\n * @memberOf SubscriptionChangeEventDispatcher\n */\n dispatch(count) {\n this._dispatch(false, this, arguments);\n }\n}\nexports.SubscriptionChangeEventDispatcher = SubscriptionChangeEventDispatcher;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DispatchError = void 0;\n/**\n * Indicates an error with dispatching.\n *\n * @export\n * @class DispatchError\n * @extends {Error}\n */\nclass DispatchError extends Error {\n /**\n * Creates an instance of DispatchError.\n * @param {string} message The message.\n *\n * @memberOf DispatchError\n */\n constructor(message) {\n super(message);\n }\n}\nexports.DispatchError = DispatchError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventListBase = void 0;\n/**\n * Base class for event lists classes. Implements the get and remove.\n *\n * @export\n * @abstract\n * @class EventListBaset\n * @template TEventDispatcher The type of event dispatcher.\n */\nclass EventListBase {\n constructor() {\n this._events = {};\n }\n /**\n * Gets the dispatcher associated with the name.\n *\n * @param {string} name The name of the event.\n * @returns {TEventDispatcher} The disptacher.\n *\n * @memberOf EventListBase\n */\n get(name) {\n let event = this._events[name];\n if (event) {\n return event;\n }\n event = this.createDispatcher();\n this._events[name] = event;\n return event;\n }\n /**\n * Removes the dispatcher associated with the name.\n *\n * @param {string} name\n *\n * @memberOf EventListBase\n */\n remove(name) {\n delete this._events[name];\n }\n}\nexports.EventListBase = EventListBase;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HandlingBase = void 0;\n/**\n * Base class that implements event handling. With a an\n * event list this base class will expose events that can be\n * subscribed to. This will give your class generic events.\n *\n * @export\n * @abstract\n * @class HandlingBase\n * @template TEventHandler The type of event handler.\n * @template TDispatcher The type of dispatcher.\n * @template TList The type of event list.\n */\nclass HandlingBase {\n /**\n * Creates an instance of HandlingBase.\n * @param {TList} events The event list. Used for event management.\n *\n * @memberOf HandlingBase\n */\n constructor(events) {\n this.events = events;\n }\n /**\n * Subscribes once to the event with the specified name.\n * @param {string} name The name of the event.\n * @param {TEventHandler} fn The event handler.\n *\n * @memberOf HandlingBase\n */\n one(name, fn) {\n this.events.get(name).one(fn);\n }\n /**\n * Checks it the event has a subscription for the specified handler.\n * @param {string} name The name of the event.\n * @param {TEventHandler} fn The event handler.\n *\n * @memberOf HandlingBase\n */\n has(name, fn) {\n return this.events.get(name).has(fn);\n }\n /**\n * Subscribes to the event with the specified name.\n * @param {string} name The name of the event.\n * @param {TEventHandler} fn The event handler.\n *\n * @memberOf HandlingBase\n */\n subscribe(name, fn) {\n this.events.get(name).subscribe(fn);\n }\n /**\n * Subscribes to the event with the specified name.\n * @param {string} name The name of the event.\n * @param {TEventHandler} fn The event handler.\n *\n * @memberOf HandlingBase\n */\n sub(name, fn) {\n this.subscribe(name, fn);\n }\n /**\n * Unsubscribes from the event with the specified name.\n * @param {string} name The name of the event.\n * @param {TEventHandler} fn The event handler.\n *\n * @memberOf HandlingBase\n */\n unsubscribe(name, fn) {\n this.events.get(name).unsubscribe(fn);\n }\n /**\n * Unsubscribes from the event with the specified name.\n * @param {string} name The name of the event.\n * @param {TEventHandler} fn The event handler.\n *\n * @memberOf HandlingBase\n */\n unsub(name, fn) {\n this.unsubscribe(name, fn);\n }\n}\nexports.HandlingBase = HandlingBase;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PromiseSubscription = void 0;\n/**\n * Subscription implementation for events with promises.\n *\n * @export\n * @class PromiseSubscription\n * @implements {ISubscription}\n * @template TEventHandler The type of event handler.\n */\nclass PromiseSubscription {\n /**\n * Creates an instance of PromiseSubscription.\n * @param {TEventHandler} handler The handler for the subscription.\n * @param {boolean} isOnce Indicates if the handler should only be executed once.\n *\n * @memberOf PromiseSubscription\n */\n constructor(handler, isOnce) {\n this.handler = handler;\n this.isOnce = isOnce;\n /**\n * Indicates if the subscription has been executed before.\n *\n * @memberOf PromiseSubscription\n */\n this.isExecuted = false;\n }\n /**\n * Executes the handler.\n *\n * @param {boolean} executeAsync True if the even should be executed async.\n * @param {*} scope The scope the scope of the event.\n * @param {IArguments} args The arguments for the event.\n *\n * @memberOf PromiseSubscription\n */\n async execute(executeAsync, scope, args) {\n if (!this.isOnce || !this.isExecuted) {\n this.isExecuted = true;\n //TODO: do we need to cast to any -- seems yuck\n var fn = this.handler;\n if (executeAsync) {\n setTimeout(() => {\n fn.apply(scope, args);\n }, 1);\n return;\n }\n let result = fn.apply(scope, args);\n await result;\n }\n }\n}\nexports.PromiseSubscription = PromiseSubscription;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PromiseDispatcherBase = void 0;\nconst PromiseSubscription_1 = require(\"../events/PromiseSubscription\");\nconst EventManagement_1 = require(\"../management/EventManagement\");\nconst DispatcherBase_1 = require(\"./DispatcherBase\");\nconst DispatchError_1 = require(\"./DispatchError\");\n/**\n * Dispatcher base for dispatchers that use promises. Each promise\n * is awaited before the next is dispatched, unless the event is\n * dispatched with the executeAsync flag.\n *\n * @export\n * @abstract\n * @class PromiseDispatcherBase\n * @extends {DispatcherBase}\n * @template TEventHandler The type of event handler.\n */\nclass PromiseDispatcherBase extends DispatcherBase_1.DispatcherBase {\n /**\n * The normal dispatch cannot be used in this class.\n *\n * @protected\n * @param {boolean} executeAsync `True` if the even should be executed async.\n * @param {*} scope The scope of the event. The scope becomes the `this` for handler.\n * @param {IArguments} args The arguments for the event.\n * @returns {(IPropagationStatus | null)} The propagation status, or if an `executeAsync` is used `null`.\n *\n * @memberOf DispatcherBase\n */\n _dispatch(executeAsync, scope, args) {\n throw new DispatchError_1.DispatchError(\"_dispatch not supported. Use _dispatchAsPromise.\");\n }\n /**\n * Crates a new subscription.\n *\n * @protected\n * @param {TEventHandler} handler The handler.\n * @param {boolean} isOnce Indicates if the handler should only run once.\n * @returns {ISubscription} The subscription.\n *\n * @memberOf PromiseDispatcherBase\n */\n createSubscription(handler, isOnce) {\n return new PromiseSubscription_1.PromiseSubscription(handler, isOnce);\n }\n /**\n * Generic dispatch will dispatch the handlers with the given arguments.\n *\n * @protected\n * @param {boolean} executeAsync `True` if the even should be executed async.\n * @param {*} scope The scope of the event. The scope becomes the `this` for handler.\n * @param {IArguments} args The arguments for the event.\n * @returns {(IPropagationStatus | null)} The propagation status, or if an `executeAsync` is used `null`.\n *\n * @memberOf DispatcherBase\n */\n async _dispatchAsPromise(executeAsync, scope, args) {\n //execute on a copy because of bug #9\n for (let sub of [...this._subscriptions]) {\n let ev = new EventManagement_1.EventManagement(() => this.unsub(sub.handler));\n let nargs = Array.prototype.slice.call(args);\n nargs.push(ev);\n let ps = sub;\n await ps.execute(executeAsync, scope, nargs);\n //cleanup subs that are no longer needed\n this.cleanup(sub);\n if (!executeAsync && ev.propagationStopped) {\n return { propagationStopped: true };\n }\n }\n if (executeAsync) {\n return null;\n }\n return { propagationStopped: false };\n }\n}\nexports.PromiseDispatcherBase = PromiseDispatcherBase;\n", "\"use strict\";\n/*!\n * Strongly Typed Events for TypeScript - Core\n * https://github.com/KeesCBakker/StronlyTypedEvents/\n * http://keestalkstech.com\n *\n * Copyright Kees C. Bakker / KeesTalksTech\n * Released under the MIT license\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SubscriptionChangeEventDispatcher = exports.HandlingBase = exports.PromiseDispatcherBase = exports.PromiseSubscription = exports.DispatchError = exports.EventManagement = exports.EventListBase = exports.DispatcherWrapper = exports.DispatcherBase = exports.Subscription = void 0;\nconst DispatcherBase_1 = require(\"./dispatching/DispatcherBase\");\nObject.defineProperty(exports, \"DispatcherBase\", { enumerable: true, get: function () { return DispatcherBase_1.DispatcherBase; } });\nObject.defineProperty(exports, \"SubscriptionChangeEventDispatcher\", { enumerable: true, get: function () { return DispatcherBase_1.SubscriptionChangeEventDispatcher; } });\nconst DispatchError_1 = require(\"./dispatching/DispatchError\");\nObject.defineProperty(exports, \"DispatchError\", { enumerable: true, get: function () { return DispatchError_1.DispatchError; } });\nconst DispatcherWrapper_1 = require(\"./dispatching/DispatcherWrapper\");\nObject.defineProperty(exports, \"DispatcherWrapper\", { enumerable: true, get: function () { return DispatcherWrapper_1.DispatcherWrapper; } });\nconst EventListBase_1 = require(\"./dispatching/EventListBase\");\nObject.defineProperty(exports, \"EventListBase\", { enumerable: true, get: function () { return EventListBase_1.EventListBase; } });\nconst EventManagement_1 = require(\"./management/EventManagement\");\nObject.defineProperty(exports, \"EventManagement\", { enumerable: true, get: function () { return EventManagement_1.EventManagement; } });\nconst HandlingBase_1 = require(\"./handling/HandlingBase\");\nObject.defineProperty(exports, \"HandlingBase\", { enumerable: true, get: function () { return HandlingBase_1.HandlingBase; } });\nconst PromiseDispatcherBase_1 = require(\"./dispatching/PromiseDispatcherBase\");\nObject.defineProperty(exports, \"PromiseDispatcherBase\", { enumerable: true, get: function () { return PromiseDispatcherBase_1.PromiseDispatcherBase; } });\nconst PromiseSubscription_1 = require(\"./events/PromiseSubscription\");\nObject.defineProperty(exports, \"PromiseSubscription\", { enumerable: true, get: function () { return PromiseSubscription_1.PromiseSubscription; } });\nconst Subscription_1 = require(\"./events/Subscription\");\nObject.defineProperty(exports, \"Subscription\", { enumerable: true, get: function () { return Subscription_1.Subscription; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventDispatcher = void 0;\nconst ste_core_1 = require(\"ste-core\");\n/**\n * Dispatcher implementation for events. Can be used to subscribe, unsubscribe\n * or dispatch events. Use the ToEvent() method to expose the event.\n *\n * @export\n * @class EventDispatcher\n * @extends {DispatcherBase>}\n * @implements {IEvent}\n * @template TSender The sender type.\n * @template TArgs The event arguments type.\n */\nclass EventDispatcher extends ste_core_1.DispatcherBase {\n /**\n * Creates an instance of EventDispatcher.\n *\n * @memberOf EventDispatcher\n */\n constructor() {\n super();\n }\n /**\n * Dispatches the event.\n *\n * @param {TSender} sender The sender.\n * @param {TArgs} args The arguments.\n * @returns {IPropagationStatus} The propagation status to interact with the event\n *\n * @memberOf EventDispatcher\n */\n dispatch(sender, args) {\n const result = this._dispatch(false, this, arguments);\n if (result == null) {\n throw new ste_core_1.DispatchError(\"Got `null` back from dispatch.\");\n }\n return result;\n }\n /**\n * Dispatches the event in an async way. Does not support event interaction.\n *\n * @param {TSender} sender The sender.\n * @param {TArgs} args The arguments.\n *\n * @memberOf EventDispatcher\n */\n dispatchAsync(sender, args) {\n this._dispatch(true, this, arguments);\n }\n /**\n * Creates an event from the dispatcher. Will return the dispatcher\n * in a wrapper. This will prevent exposure of any dispatcher methods.\n *\n * @returns {IEvent} The event.\n *\n * @memberOf EventDispatcher\n */\n asEvent() {\n return super.asEvent();\n }\n}\nexports.EventDispatcher = EventDispatcher;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventList = void 0;\nconst ste_core_1 = require(\"ste-core\");\nconst EventDispatcher_1 = require(\"./EventDispatcher\");\n/**\n * Storage class for multiple events that are accessible by name.\n * Events dispatchers are automatically created.\n */\nclass EventList extends ste_core_1.EventListBase {\n /**\n * Creates a new EventList instance.\n */\n constructor() {\n super();\n }\n /**\n * Creates a new dispatcher instance.\n */\n createDispatcher() {\n return new EventDispatcher_1.EventDispatcher();\n }\n}\nexports.EventList = EventList;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventHandlingBase = void 0;\nconst ste_core_1 = require(\"ste-core\");\nconst EventList_1 = require(\"./EventList\");\n/**\n * Extends objects with signal event handling capabilities.\n */\nclass EventHandlingBase extends ste_core_1.HandlingBase {\n constructor() {\n super(new EventList_1.EventList());\n }\n}\nexports.EventHandlingBase = EventHandlingBase;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NonUniformEventList = void 0;\nconst EventDispatcher_1 = require(\"./EventDispatcher\");\n/**\n * Similar to EventList, but instead of TArgs, a map of event names ang argument types is provided with TArgsMap.\n */\nclass NonUniformEventList {\n constructor() {\n this._events = {};\n }\n /**\n * Gets the dispatcher associated with the name.\n * @param name The name of the event.\n */\n get(name) {\n if (this._events[name]) {\n // @TODO avoid typecasting. Not sure why TS thinks this._events[name] could still be undefined.\n return this._events[name];\n }\n const event = this.createDispatcher();\n this._events[name] = event;\n return event;\n }\n /**\n * Removes the dispatcher associated with the name.\n * @param name The name of the event.\n */\n remove(name) {\n delete this._events[name];\n }\n /**\n * Creates a new dispatcher instance.\n */\n createDispatcher() {\n return new EventDispatcher_1.EventDispatcher();\n }\n}\nexports.NonUniformEventList = NonUniformEventList;\n", "\"use strict\";\n/*!\n * Strongly Typed Events for TypeScript - Core\n * https://github.com/KeesCBakker/StronlyTypedEvents/\n * http://keestalkstech.com\n *\n * Copyright Kees C. Bakker / KeesTalksTech\n * Released under the MIT license\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NonUniformEventList = exports.EventList = exports.EventHandlingBase = exports.EventDispatcher = void 0;\nconst EventDispatcher_1 = require(\"./EventDispatcher\");\nObject.defineProperty(exports, \"EventDispatcher\", { enumerable: true, get: function () { return EventDispatcher_1.EventDispatcher; } });\nconst EventHandlingBase_1 = require(\"./EventHandlingBase\");\nObject.defineProperty(exports, \"EventHandlingBase\", { enumerable: true, get: function () { return EventHandlingBase_1.EventHandlingBase; } });\nconst EventList_1 = require(\"./EventList\");\nObject.defineProperty(exports, \"EventList\", { enumerable: true, get: function () { return EventList_1.EventList; } });\nconst NonUniformEventList_1 = require(\"./NonUniformEventList\");\nObject.defineProperty(exports, \"NonUniformEventList\", { enumerable: true, get: function () { return NonUniformEventList_1.NonUniformEventList; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SimpleEventDispatcher = void 0;\nconst ste_core_1 = require(\"ste-core\");\n/**\n * The dispatcher handles the storage of subsciptions and facilitates\n * subscription, unsubscription and dispatching of a simple event\n *\n * @export\n * @class SimpleEventDispatcher\n * @extends {DispatcherBase>}\n * @implements {ISimpleEvent}\n * @template TArgs\n */\nclass SimpleEventDispatcher extends ste_core_1.DispatcherBase {\n /**\n * Creates an instance of SimpleEventDispatcher.\n *\n * @memberOf SimpleEventDispatcher\n */\n constructor() {\n super();\n }\n /**\n * Dispatches the event.\n *\n * @param {TArgs} args The arguments object.\n * @returns {IPropagationStatus} The status of the event.\n *\n * @memberOf SimpleEventDispatcher\n */\n dispatch(args) {\n const result = this._dispatch(false, this, arguments);\n if (result == null) {\n throw new ste_core_1.DispatchError(\"Got `null` back from dispatch.\");\n }\n return result;\n }\n /**\n * Dispatches the event without waiting for the result.\n *\n * @param {TArgs} args The arguments object.\n *\n * @memberOf SimpleEventDispatcher\n */\n dispatchAsync(args) {\n this._dispatch(true, this, arguments);\n }\n /**\n * Creates an event from the dispatcher. Will return the dispatcher\n * in a wrapper. This will prevent exposure of any dispatcher methods.\n *\n * @returns {ISimpleEvent} The event.\n *\n * @memberOf SimpleEventDispatcher\n */\n asEvent() {\n return super.asEvent();\n }\n}\nexports.SimpleEventDispatcher = SimpleEventDispatcher;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SimpleEventList = void 0;\nconst ste_core_1 = require(\"ste-core\");\nconst SimpleEventDispatcher_1 = require(\"./SimpleEventDispatcher\");\n/**\n * Storage class for multiple simple events that are accessible by name.\n * Events dispatchers are automatically created.\n */\nclass SimpleEventList extends ste_core_1.EventListBase {\n /**\n * Creates a new SimpleEventList instance.\n */\n constructor() {\n super();\n }\n /**\n * Creates a new dispatcher instance.\n */\n createDispatcher() {\n return new SimpleEventDispatcher_1.SimpleEventDispatcher();\n }\n}\nexports.SimpleEventList = SimpleEventList;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SimpleEventHandlingBase = void 0;\nconst ste_core_1 = require(\"ste-core\");\nconst SimpleEventList_1 = require(\"./SimpleEventList\");\n/**\n * Extends objects with signal event handling capabilities.\n */\nclass SimpleEventHandlingBase extends ste_core_1.HandlingBase {\n constructor() {\n super(new SimpleEventList_1.SimpleEventList());\n }\n}\nexports.SimpleEventHandlingBase = SimpleEventHandlingBase;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NonUniformSimpleEventList = void 0;\nconst SimpleEventDispatcher_1 = require(\"./SimpleEventDispatcher\");\n/**\n * Similar to EventList, but instead of TArgs, a map of event names ang argument types is provided with TArgsMap.\n */\nclass NonUniformSimpleEventList {\n constructor() {\n this._events = {};\n }\n /**\n * Gets the dispatcher associated with the name.\n * @param name The name of the event.\n */\n get(name) {\n if (this._events[name]) {\n // @TODO avoid typecasting. Not sure why TS thinks this._events[name] could still be undefined.\n return this._events[name];\n }\n const event = this.createDispatcher();\n this._events[name] = event;\n return event;\n }\n /**\n * Removes the dispatcher associated with the name.\n * @param name The name of the event.\n */\n remove(name) {\n delete this._events[name];\n }\n /**\n * Creates a new dispatcher instance.\n */\n createDispatcher() {\n return new SimpleEventDispatcher_1.SimpleEventDispatcher();\n }\n}\nexports.NonUniformSimpleEventList = NonUniformSimpleEventList;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NonUniformSimpleEventList = exports.SimpleEventList = exports.SimpleEventHandlingBase = exports.SimpleEventDispatcher = void 0;\nconst SimpleEventDispatcher_1 = require(\"./SimpleEventDispatcher\");\nObject.defineProperty(exports, \"SimpleEventDispatcher\", { enumerable: true, get: function () { return SimpleEventDispatcher_1.SimpleEventDispatcher; } });\nconst SimpleEventHandlingBase_1 = require(\"./SimpleEventHandlingBase\");\nObject.defineProperty(exports, \"SimpleEventHandlingBase\", { enumerable: true, get: function () { return SimpleEventHandlingBase_1.SimpleEventHandlingBase; } });\nconst NonUniformSimpleEventList_1 = require(\"./NonUniformSimpleEventList\");\nObject.defineProperty(exports, \"NonUniformSimpleEventList\", { enumerable: true, get: function () { return NonUniformSimpleEventList_1.NonUniformSimpleEventList; } });\nconst SimpleEventList_1 = require(\"./SimpleEventList\");\nObject.defineProperty(exports, \"SimpleEventList\", { enumerable: true, get: function () { return SimpleEventList_1.SimpleEventList; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SignalDispatcher = void 0;\nconst ste_core_1 = require(\"ste-core\");\n/**\n * The dispatcher handles the storage of subsciptions and facilitates\n * subscription, unsubscription and dispatching of a signal event.\n *\n * @export\n * @class SignalDispatcher\n * @extends {DispatcherBase}\n * @implements {ISignal}\n */\nclass SignalDispatcher extends ste_core_1.DispatcherBase {\n /**\n * Dispatches the signal.\n *\n * @returns {IPropagationStatus} The status of the signal.\n *\n * @memberOf SignalDispatcher\n */\n dispatch() {\n const result = this._dispatch(false, this, arguments);\n if (result == null) {\n throw new ste_core_1.DispatchError(\"Got `null` back from dispatch.\");\n }\n return result;\n }\n /**\n * Dispatches the signal without waiting for the result.\n *\n * @memberOf SignalDispatcher\n */\n dispatchAsync() {\n this._dispatch(true, this, arguments);\n }\n /**\n * Creates an event from the dispatcher. Will return the dispatcher\n * in a wrapper. This will prevent exposure of any dispatcher methods.\n *\n * @returns {ISignal} The signal.\n *\n * @memberOf SignalDispatcher\n */\n asEvent() {\n return super.asEvent();\n }\n}\nexports.SignalDispatcher = SignalDispatcher;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SignalList = void 0;\nconst ste_core_1 = require(\"ste-core\");\nconst SignalDispatcher_1 = require(\"./SignalDispatcher\");\n/**\n * Storage class for multiple signal events that are accessible by name.\n * Events dispatchers are automatically created.\n *\n * @export\n * @class SignalList\n * @extends {EventListBase}\n */\nclass SignalList extends ste_core_1.EventListBase {\n /**\n * Creates an instance of SignalList.\n *\n * @memberOf SignalList\n */\n constructor() {\n super();\n }\n /**\n * Creates a new dispatcher instance.\n *\n * @protected\n * @returns {SignalDispatcher}\n *\n * @memberOf SignalList\n */\n createDispatcher() {\n return new SignalDispatcher_1.SignalDispatcher();\n }\n}\nexports.SignalList = SignalList;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SignalHandlingBase = void 0;\nconst ste_core_1 = require(\"ste-core\");\nconst SignalList_1 = require(\"./SignalList\");\n/**\n * Extends objects with signal event handling capabilities.\n *\n * @export\n * @abstract\n * @class SignalHandlingBase\n * @extends {HandlingBase}\n * @implements {ISignalHandling}\n */\nclass SignalHandlingBase extends ste_core_1.HandlingBase {\n /**\n * Creates an instance of SignalHandlingBase.\n *\n * @memberOf SignalHandlingBase\n */\n constructor() {\n super(new SignalList_1.SignalList());\n }\n}\nexports.SignalHandlingBase = SignalHandlingBase;\n", "\"use strict\";\n/*!\n * Strongly Typed Events for TypeScript - Promise Signals\n * https://github.com/KeesCBakker/StronlyTypedEvents/\n * http://keestalkstech.com\n *\n * Copyright Kees C. Bakker / KeesTalksTech\n * Released under the MIT license\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SignalList = exports.SignalHandlingBase = exports.SignalDispatcher = void 0;\nconst SignalDispatcher_1 = require(\"./SignalDispatcher\");\nObject.defineProperty(exports, \"SignalDispatcher\", { enumerable: true, get: function () { return SignalDispatcher_1.SignalDispatcher; } });\nconst SignalHandlingBase_1 = require(\"./SignalHandlingBase\");\nObject.defineProperty(exports, \"SignalHandlingBase\", { enumerable: true, get: function () { return SignalHandlingBase_1.SignalHandlingBase; } });\nconst SignalList_1 = require(\"./SignalList\");\nObject.defineProperty(exports, \"SignalList\", { enumerable: true, get: function () { return SignalList_1.SignalList; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PromiseEventDispatcher = void 0;\nconst ste_core_1 = require(\"ste-core\");\n/**\n * Dispatcher implementation for events. Can be used to subscribe, unsubscribe\n * or dispatch events. Use the ToEvent() method to expose the event.\n *\n * @export\n * @class PromiseEventDispatcher\n * @extends {PromiseDispatcherBase>}\n * @implements {IPromiseEvent}\n * @template TSender\n * @template TArgs\n */\nclass PromiseEventDispatcher extends ste_core_1.PromiseDispatcherBase {\n /**\n * Creates a new EventDispatcher instance.\n */\n constructor() {\n super();\n }\n /**\n * Dispatches the event.\n *\n * @param {TSender} sender The sender object.\n * @param {TArgs} args The argument object.\n * @returns {Promise} The status.\n *\n * @memberOf PromiseEventDispatcher\n */\n async dispatch(sender, args) {\n const result = await this._dispatchAsPromise(false, this, arguments);\n if (result == null) {\n throw new ste_core_1.DispatchError(\"Got `null` back from dispatch.\");\n }\n return result;\n }\n /**\n * Dispatches the event without waiting for the result.\n *\n * @param {TSender} sender The sender object.\n * @param {TArgs} args The argument object.\n *\n * @memberOf PromiseEventDispatcher\n */\n dispatchAsync(sender, args) {\n this._dispatchAsPromise(true, this, arguments);\n }\n /**\n * Creates an event from the dispatcher. Will return the dispatcher\n * in a wrapper. This will prevent exposure of any dispatcher methods.\n */\n asEvent() {\n return super.asEvent();\n }\n}\nexports.PromiseEventDispatcher = PromiseEventDispatcher;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PromiseEventList = void 0;\nconst ste_core_1 = require(\"ste-core\");\nconst PromiseEventDispatcher_1 = require(\"./PromiseEventDispatcher\");\n/**\n * Storage class for multiple events that are accessible by name.\n * Events dispatchers are automatically created.\n */\nclass PromiseEventList extends ste_core_1.EventListBase {\n /**\n * Creates a new EventList instance.\n */\n constructor() {\n super();\n }\n /**\n * Creates a new dispatcher instance.\n */\n createDispatcher() {\n return new PromiseEventDispatcher_1.PromiseEventDispatcher();\n }\n}\nexports.PromiseEventList = PromiseEventList;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PromiseEventHandlingBase = void 0;\nconst ste_core_1 = require(\"ste-core\");\nconst PromiseEventList_1 = require(\"./PromiseEventList\");\n/**\n * Extends objects with signal event handling capabilities.\n */\nclass PromiseEventHandlingBase extends ste_core_1.HandlingBase {\n constructor() {\n super(new PromiseEventList_1.PromiseEventList());\n }\n}\nexports.PromiseEventHandlingBase = PromiseEventHandlingBase;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NonUniformPromiseEventList = void 0;\nconst PromiseEventDispatcher_1 = require(\"./PromiseEventDispatcher\");\n/**\n * Similar to EventList, but instead of TArgs, a map of event names ang argument types is provided with TArgsMap.\n */\nclass NonUniformPromiseEventList {\n constructor() {\n this._events = {};\n }\n /**\n * Gets the dispatcher associated with the name.\n * @param name The name of the event.\n */\n get(name) {\n if (this._events[name]) {\n // @TODO avoid typecasting. Not sure why TS thinks this._events[name] could still be undefined.\n return this._events[name];\n }\n const event = this.createDispatcher();\n this._events[name] = event;\n return event;\n }\n /**\n * Removes the dispatcher associated with the name.\n * @param name The name of the event.\n */\n remove(name) {\n delete this._events[name];\n }\n /**\n * Creates a new dispatcher instance.\n */\n createDispatcher() {\n return new PromiseEventDispatcher_1.PromiseEventDispatcher();\n }\n}\nexports.NonUniformPromiseEventList = NonUniformPromiseEventList;\n", "\"use strict\";\n/*!\n * Strongly Typed Events for TypeScript - Core\n * https://github.com/KeesCBakker/StronlyTypedEvents/\n * http://keestalkstech.com\n *\n * Copyright Kees C. Bakker / KeesTalksTech\n * Released under the MIT license\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NonUniformPromiseEventList = exports.PromiseEventList = exports.PromiseEventHandlingBase = exports.PromiseEventDispatcher = void 0;\nconst PromiseEventDispatcher_1 = require(\"./PromiseEventDispatcher\");\nObject.defineProperty(exports, \"PromiseEventDispatcher\", { enumerable: true, get: function () { return PromiseEventDispatcher_1.PromiseEventDispatcher; } });\nconst PromiseEventHandlingBase_1 = require(\"./PromiseEventHandlingBase\");\nObject.defineProperty(exports, \"PromiseEventHandlingBase\", { enumerable: true, get: function () { return PromiseEventHandlingBase_1.PromiseEventHandlingBase; } });\nconst PromiseEventList_1 = require(\"./PromiseEventList\");\nObject.defineProperty(exports, \"PromiseEventList\", { enumerable: true, get: function () { return PromiseEventList_1.PromiseEventList; } });\nconst NonUniformPromiseEventList_1 = require(\"./NonUniformPromiseEventList\");\nObject.defineProperty(exports, \"NonUniformPromiseEventList\", { enumerable: true, get: function () { return NonUniformPromiseEventList_1.NonUniformPromiseEventList; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PromiseSignalDispatcher = void 0;\nconst ste_core_1 = require(\"ste-core\");\n/**\n * The dispatcher handles the storage of subsciptions and facilitates\n * subscription, unsubscription and dispatching of a signal event.\n */\nclass PromiseSignalDispatcher extends ste_core_1.PromiseDispatcherBase {\n /**\n * Creates a new SignalDispatcher instance.\n */\n constructor() {\n super();\n }\n /**\n * Dispatches the signal.\n *\n * @returns {IPropagationStatus} The status of the dispatch.\n *\n * @memberOf SignalDispatcher\n */\n async dispatch() {\n const result = await this._dispatchAsPromise(false, this, arguments);\n if (result == null) {\n throw new ste_core_1.DispatchError(\"Got `null` back from dispatch.\");\n }\n return result;\n }\n /**\n * Dispatches the signal threaded.\n */\n dispatchAsync() {\n this._dispatchAsPromise(true, this, arguments);\n }\n /**\n * Creates an event from the dispatcher. Will return the dispatcher\n * in a wrapper. This will prevent exposure of any dispatcher methods.\n */\n asEvent() {\n return super.asEvent();\n }\n}\nexports.PromiseSignalDispatcher = PromiseSignalDispatcher;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PromiseSignalList = void 0;\nconst ste_core_1 = require(\"ste-core\");\nconst PromiseSignalDispatcher_1 = require(\"./PromiseSignalDispatcher\");\n/**\n * Storage class for multiple signal events that are accessible by name.\n * Events dispatchers are automatically created.\n */\nclass PromiseSignalList extends ste_core_1.EventListBase {\n /**\n * Creates a new SignalList instance.\n */\n constructor() {\n super();\n }\n /**\n * Creates a new dispatcher instance.\n */\n createDispatcher() {\n return new PromiseSignalDispatcher_1.PromiseSignalDispatcher();\n }\n}\nexports.PromiseSignalList = PromiseSignalList;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PromiseSignalHandlingBase = void 0;\nconst ste_core_1 = require(\"ste-core\");\nconst PromiseSignalList_1 = require(\"./PromiseSignalList\");\n/**\n * Extends objects with signal event handling capabilities.\n */\nclass PromiseSignalHandlingBase extends ste_core_1.HandlingBase {\n constructor() {\n super(new PromiseSignalList_1.PromiseSignalList());\n }\n}\nexports.PromiseSignalHandlingBase = PromiseSignalHandlingBase;\n", "\"use strict\";\n/*!\n * Strongly Typed Events for TypeScript - Promise Signals\n * https://github.com/KeesCBakker/StronlyTypedEvents/\n * http://keestalkstech.com\n *\n * Copyright Kees C. Bakker / KeesTalksTech\n * Released under the MIT license\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PromiseSignalList = exports.PromiseSignalHandlingBase = exports.PromiseSignalDispatcher = void 0;\nconst PromiseSignalDispatcher_1 = require(\"./PromiseSignalDispatcher\");\nObject.defineProperty(exports, \"PromiseSignalDispatcher\", { enumerable: true, get: function () { return PromiseSignalDispatcher_1.PromiseSignalDispatcher; } });\nconst PromiseSignalHandlingBase_1 = require(\"./PromiseSignalHandlingBase\");\nObject.defineProperty(exports, \"PromiseSignalHandlingBase\", { enumerable: true, get: function () { return PromiseSignalHandlingBase_1.PromiseSignalHandlingBase; } });\nconst PromiseSignalList_1 = require(\"./PromiseSignalList\");\nObject.defineProperty(exports, \"PromiseSignalList\", { enumerable: true, get: function () { return PromiseSignalList_1.PromiseSignalList; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PromiseSimpleEventDispatcher = void 0;\nconst ste_core_1 = require(\"ste-core\");\n/**\n * The dispatcher handles the storage of subsciptions and facilitates\n * subscription, unsubscription and dispatching of a simple event\n *\n * @export\n * @class PromiseSimpleEventDispatcher\n * @extends {PromiseDispatcherBase>}\n * @implements {IPromiseSimpleEvent}\n * @template TArgs\n */\nclass PromiseSimpleEventDispatcher extends ste_core_1.PromiseDispatcherBase {\n /**\n * Creates a new SimpleEventDispatcher instance.\n */\n constructor() {\n super();\n }\n /**\n * Dispatches the event.\n * @param args The arguments object.\n * @returns {IPropagationStatus} The status of the dispatch.\n * @memberOf PromiseSimpleEventDispatcher\n */\n async dispatch(args) {\n const result = await this._dispatchAsPromise(false, this, arguments);\n if (result == null) {\n throw new ste_core_1.DispatchError(\"Got `null` back from dispatch.\");\n }\n return result;\n }\n /**\n * Dispatches the event without waiting for it to complete.\n * @param args The argument object.\n * @memberOf PromiseSimpleEventDispatcher\n */\n dispatchAsync(args) {\n this._dispatchAsPromise(true, this, arguments);\n }\n /**\n * Creates an event from the dispatcher. Will return the dispatcher\n * in a wrapper. This will prevent exposure of any dispatcher methods.\n */\n asEvent() {\n return super.asEvent();\n }\n}\nexports.PromiseSimpleEventDispatcher = PromiseSimpleEventDispatcher;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NonUniformPromiseSimpleEventList = void 0;\nconst PromiseSimpleEventDispatcher_1 = require(\"./PromiseSimpleEventDispatcher\");\n/**\n * Similar to EventList, but instead of TArgs, a map of event names ang argument types is provided with TArgsMap.\n */\nclass NonUniformPromiseSimpleEventList {\n constructor() {\n this._events = {};\n }\n /**\n * Gets the dispatcher associated with the name.\n * @param name The name of the event.\n */\n get(name) {\n if (this._events[name]) {\n // @TODO avoid typecasting. Not sure why TS thinks this._events[name] could still be undefined.\n return this._events[name];\n }\n const event = this.createDispatcher();\n this._events[name] = event;\n return event;\n }\n /**\n * Removes the dispatcher associated with the name.\n * @param name The name of the event.\n */\n remove(name) {\n delete this._events[name];\n }\n /**\n * Creates a new dispatcher instance.\n */\n createDispatcher() {\n return new PromiseSimpleEventDispatcher_1.PromiseSimpleEventDispatcher();\n }\n}\nexports.NonUniformPromiseSimpleEventList = NonUniformPromiseSimpleEventList;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PromiseSimpleEventList = void 0;\nconst ste_core_1 = require(\"ste-core\");\nconst PromiseSimpleEventDispatcher_1 = require(\"./PromiseSimpleEventDispatcher\");\n/**\n * Storage class for multiple simple events that are accessible by name.\n * Events dispatchers are automatically created.\n */\nclass PromiseSimpleEventList extends ste_core_1.EventListBase {\n /**\n * Creates a new SimpleEventList instance.\n */\n constructor() {\n super();\n }\n /**\n * Creates a new dispatcher instance.\n */\n createDispatcher() {\n return new PromiseSimpleEventDispatcher_1.PromiseSimpleEventDispatcher();\n }\n}\nexports.PromiseSimpleEventList = PromiseSimpleEventList;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PromiseSimpleEventHandlingBase = void 0;\nconst ste_core_1 = require(\"ste-core\");\nconst PromiseSimpleEventList_1 = require(\"./PromiseSimpleEventList\");\n/**\n * Extends objects with signal event handling capabilities.\n */\nclass PromiseSimpleEventHandlingBase extends ste_core_1.HandlingBase {\n constructor() {\n super(new PromiseSimpleEventList_1.PromiseSimpleEventList());\n }\n}\nexports.PromiseSimpleEventHandlingBase = PromiseSimpleEventHandlingBase;\n", "\"use strict\";\n/*!\n * Strongly Typed Events for TypeScript - Core\n * https://github.com/KeesCBakker/StronlyTypedEvents/\n * http://keestalkstech.com\n *\n * Copyright Kees C. Bakker / KeesTalksTech\n * Released under the MIT license\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NonUniformPromiseSimpleEventList = exports.PromiseSimpleEventList = exports.PromiseSimpleEventHandlingBase = exports.PromiseSimpleEventDispatcher = void 0;\nconst NonUniformPromiseSimpleEventList_1 = require(\"./NonUniformPromiseSimpleEventList\");\nObject.defineProperty(exports, \"NonUniformPromiseSimpleEventList\", { enumerable: true, get: function () { return NonUniformPromiseSimpleEventList_1.NonUniformPromiseSimpleEventList; } });\nconst PromiseSimpleEventDispatcher_1 = require(\"./PromiseSimpleEventDispatcher\");\nObject.defineProperty(exports, \"PromiseSimpleEventDispatcher\", { enumerable: true, get: function () { return PromiseSimpleEventDispatcher_1.PromiseSimpleEventDispatcher; } });\nconst PromiseSimpleEventHandlingBase_1 = require(\"./PromiseSimpleEventHandlingBase\");\nObject.defineProperty(exports, \"PromiseSimpleEventHandlingBase\", { enumerable: true, get: function () { return PromiseSimpleEventHandlingBase_1.PromiseSimpleEventHandlingBase; } });\nconst PromiseSimpleEventList_1 = require(\"./PromiseSimpleEventList\");\nObject.defineProperty(exports, \"PromiseSimpleEventList\", { enumerable: true, get: function () { return PromiseSimpleEventList_1.PromiseSimpleEventList; } });\n", "\"use strict\";\r\n/*!\r\n * Strongly Typed Events for TypeScript\r\n * https://github.com/KeesCBakker/StronlyTypedEvents/\r\n * http://keestalkstech.com\r\n *\r\n * Copyright Kees C. Bakker / KeesTalksTech\r\n * Released under the MIT license\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NonUniformPromiseSimpleEventList = exports.PromiseSimpleEventList = exports.PromiseSimpleEventHandlingBase = exports.PromiseSimpleEventDispatcher = exports.PromiseSignalList = exports.PromiseSignalHandlingBase = exports.PromiseSignalDispatcher = exports.NonUniformPromiseEventList = exports.PromiseEventList = exports.PromiseEventHandlingBase = exports.PromiseEventDispatcher = exports.SignalList = exports.SignalHandlingBase = exports.SignalDispatcher = exports.NonUniformSimpleEventList = exports.SimpleEventList = exports.SimpleEventHandlingBase = exports.SimpleEventDispatcher = exports.NonUniformEventList = exports.EventList = exports.EventHandlingBase = exports.EventDispatcher = exports.HandlingBase = exports.PromiseDispatcherBase = exports.PromiseSubscription = exports.DispatchError = exports.EventManagement = exports.EventListBase = exports.DispatcherWrapper = exports.DispatcherBase = exports.Subscription = void 0;\r\nvar ste_core_1 = require(\"ste-core\");\r\nObject.defineProperty(exports, \"Subscription\", { enumerable: true, get: function () { return ste_core_1.Subscription; } });\r\nObject.defineProperty(exports, \"DispatcherBase\", { enumerable: true, get: function () { return ste_core_1.DispatcherBase; } });\r\nObject.defineProperty(exports, \"DispatcherWrapper\", { enumerable: true, get: function () { return ste_core_1.DispatcherWrapper; } });\r\nObject.defineProperty(exports, \"EventListBase\", { enumerable: true, get: function () { return ste_core_1.EventListBase; } });\r\nObject.defineProperty(exports, \"EventManagement\", { enumerable: true, get: function () { return ste_core_1.EventManagement; } });\r\nObject.defineProperty(exports, \"DispatchError\", { enumerable: true, get: function () { return ste_core_1.DispatchError; } });\r\nObject.defineProperty(exports, \"PromiseSubscription\", { enumerable: true, get: function () { return ste_core_1.PromiseSubscription; } });\r\nObject.defineProperty(exports, \"PromiseDispatcherBase\", { enumerable: true, get: function () { return ste_core_1.PromiseDispatcherBase; } });\r\nObject.defineProperty(exports, \"HandlingBase\", { enumerable: true, get: function () { return ste_core_1.HandlingBase; } });\r\nvar ste_events_1 = require(\"ste-events\");\r\nObject.defineProperty(exports, \"EventDispatcher\", { enumerable: true, get: function () { return ste_events_1.EventDispatcher; } });\r\nObject.defineProperty(exports, \"EventHandlingBase\", { enumerable: true, get: function () { return ste_events_1.EventHandlingBase; } });\r\nObject.defineProperty(exports, \"EventList\", { enumerable: true, get: function () { return ste_events_1.EventList; } });\r\nObject.defineProperty(exports, \"NonUniformEventList\", { enumerable: true, get: function () { return ste_events_1.NonUniformEventList; } });\r\nvar ste_simple_events_1 = require(\"ste-simple-events\");\r\nObject.defineProperty(exports, \"SimpleEventDispatcher\", { enumerable: true, get: function () { return ste_simple_events_1.SimpleEventDispatcher; } });\r\nObject.defineProperty(exports, \"SimpleEventHandlingBase\", { enumerable: true, get: function () { return ste_simple_events_1.SimpleEventHandlingBase; } });\r\nObject.defineProperty(exports, \"SimpleEventList\", { enumerable: true, get: function () { return ste_simple_events_1.SimpleEventList; } });\r\nObject.defineProperty(exports, \"NonUniformSimpleEventList\", { enumerable: true, get: function () { return ste_simple_events_1.NonUniformSimpleEventList; } });\r\nvar ste_signals_1 = require(\"ste-signals\");\r\nObject.defineProperty(exports, \"SignalDispatcher\", { enumerable: true, get: function () { return ste_signals_1.SignalDispatcher; } });\r\nObject.defineProperty(exports, \"SignalHandlingBase\", { enumerable: true, get: function () { return ste_signals_1.SignalHandlingBase; } });\r\nObject.defineProperty(exports, \"SignalList\", { enumerable: true, get: function () { return ste_signals_1.SignalList; } });\r\nvar ste_promise_events_1 = require(\"ste-promise-events\");\r\nObject.defineProperty(exports, \"PromiseEventDispatcher\", { enumerable: true, get: function () { return ste_promise_events_1.PromiseEventDispatcher; } });\r\nObject.defineProperty(exports, \"PromiseEventHandlingBase\", { enumerable: true, get: function () { return ste_promise_events_1.PromiseEventHandlingBase; } });\r\nObject.defineProperty(exports, \"PromiseEventList\", { enumerable: true, get: function () { return ste_promise_events_1.PromiseEventList; } });\r\nObject.defineProperty(exports, \"NonUniformPromiseEventList\", { enumerable: true, get: function () { return ste_promise_events_1.NonUniformPromiseEventList; } });\r\nvar ste_promise_signals_1 = require(\"ste-promise-signals\");\r\nObject.defineProperty(exports, \"PromiseSignalDispatcher\", { enumerable: true, get: function () { return ste_promise_signals_1.PromiseSignalDispatcher; } });\r\nObject.defineProperty(exports, \"PromiseSignalHandlingBase\", { enumerable: true, get: function () { return ste_promise_signals_1.PromiseSignalHandlingBase; } });\r\nObject.defineProperty(exports, \"PromiseSignalList\", { enumerable: true, get: function () { return ste_promise_signals_1.PromiseSignalList; } });\r\nvar ste_promise_simple_events_1 = require(\"ste-promise-simple-events\");\r\nObject.defineProperty(exports, \"PromiseSimpleEventDispatcher\", { enumerable: true, get: function () { return ste_promise_simple_events_1.PromiseSimpleEventDispatcher; } });\r\nObject.defineProperty(exports, \"PromiseSimpleEventHandlingBase\", { enumerable: true, get: function () { return ste_promise_simple_events_1.PromiseSimpleEventHandlingBase; } });\r\nObject.defineProperty(exports, \"PromiseSimpleEventList\", { enumerable: true, get: function () { return ste_promise_simple_events_1.PromiseSimpleEventList; } });\r\nObject.defineProperty(exports, \"NonUniformPromiseSimpleEventList\", { enumerable: true, get: function () { return ste_promise_simple_events_1.NonUniformPromiseSimpleEventList; } });\r\n", "/**\n * [![npm version](https://badge.fury.io/js/%40xeokit%2Fcore.svg)](https://badge.fury.io/js/%40xeokit%2Fcore)\n * [![](https://data.jsdelivr.com/v1/package/npm/@xeokit/core/badge)](https://www.jsdelivr.com/package/npm/@xeokit/core)\n *\n * \n *\n * ## xeokit SDK Core Components\n *\n * * {@link @xeokit/core!Component} base class\n * * Various interfaces that are implemented throughout the SDK.\n *\n * ## Installation\n *\n * ````bash\n * npm install @xeokit/core\n * ````\n *\n * @module @xeokit/core\n */\n\nexport * from \"./Component\";\nexport * from \"./SDKError\";\nexport * from \"./EventEmitter\";\nexport * from \"./Capabilities\";\nexport * from \"./TextureTranscoder\";\nexport * from \"./TextureCompressedParams\";\n", "import type {IEvent} from \"strongly-typed-events\";\n\n/**\n * Event emitter.\n *\n * @typeParam TSender - Type of the event sender\n * @typeParam TArgs - Type of the event argument\n */\nexport class EventEmitter {\n\n #ievent: any;\n\n constructor(ievent: IEvent) {\n this.#ievent = ievent;\n }\n\n /**\n * Returns the number of subscriptions.\n */\n get count() : number {\n return this.#ievent.count;\n }\n /**\n * Subscribe to the event.\n *\n * @param func The event handler that is called when the event is dispatched.\n * @returns Function that unsubscribes the event handler from the event.\n */\n subscribe(func: (a: TSender, b: TArgs) => void): () => void {\n return this.#ievent.asEvent().subscribe(func);\n }\n\n /**\n * @private\n * @param sender\n * @param args\n */\n dispatch(sender: TSender, args: TArgs): void {\n this.#ievent.dispatch(sender, args);\n }\n\n /**\n * Subscribe to the event.\n * @param func The event handler that is called when the event is dispatched.\n * @returns A function that unsubscribes the event handler from the event.\n */\n sub(func: (a: TSender, b: TArgs) => void): () => void {\n return this.#ievent.asEvent().sub(func);\n }\n /**\n * Unsubscribe from the event.\n * @param func The event handler that will be unsubsribed from the event.\n */\n unsubscribe(func: (a: TSender, b: TArgs) => void): void {\n this.#ievent.asEvent().unsubscribe(func);\n }\n\n /**\n * Unsubscribe from the event.\n * @param func The event handler that will be unsubsribed from the event.\n */\n unsub(func: (a: TSender, b: TArgs) => void): void {\n this.#ievent.asEvent().unsub(func);\n }\n\n /**\n * Subscribes to the event only once.\n * @param func The event handler that is called when the event is dispatched.\n * @returns A function that unsubscribes the event handler from the event.\n */\n one(func: (a: TSender, b: TArgs) => void): () => void {\n return this.#ievent.asEvent().one(func);\n }\n\n /**\n * Checks if the event has a subscription for the specified handler.\n * @param func The event handler.\n */\n has(func: (a: TSender, b: TArgs) => void): boolean {\n return this.#ievent.asEvent().has(func);\n }\n\n /**\n * Clears all the subscriptions.\n */\n clear(): void {\n this.#ievent.asEvent().clear();\n }\n}", "import {EventEmitter} from \"./EventEmitter\";\nimport {EventDispatcher} from \"strongly-typed-events\";\n\nconst createUUID = ((() => {\n const lut: any[] = [];\n for (let i = 0; i < 256; i++) {\n lut[i] = (i < 16 ? '0' : '') + (i).toString(16);\n }\n return () => {\n const d0 = Math.random() * 0xffffffff | 0;\n const d1 = Math.random() * 0xffffffff | 0;\n const d2 = Math.random() * 0xffffffff | 0;\n const d3 = Math.random() * 0xffffffff | 0;\n return `${lut[d0 & 0xff] + lut[d0 >> 8 & 0xff] + lut[d0 >> 16 & 0xff] + lut[d0 >> 24 & 0xff]}-${lut[d1 & 0xff]}${lut[d1 >> 8 & 0xff]}-${lut[d1 >> 16 & 0x0f | 0x40]}${lut[d1 >> 24 & 0xff]}-${lut[d2 & 0x3f | 0x80]}${lut[d2 >> 8 & 0xff]}-${lut[d2 >> 16 & 0xff]}${lut[d2 >> 24 & 0xff]}${lut[d3 & 0xff]}${lut[d3 >> 8 & 0xff]}${lut[d3 >> 16 & 0xff]}${lut[d3 >> 24 & 0xff]}`;\n };\n}))();\n\n/**\n * Common base class for xeokit SDK components.\n *\n * ## Summary\n *\n * * Unique ID\n * * Logging methods\n * * Manages lifecycle of child Components\n */\nexport class Component {\n\n /**\n * Unique ID of this Component.\n */\n public id: string;\n\n /**\n * True once this Component has been destroyed.\n *\n * Don't use this Component if this is ````true````.\n */\n public destroyed: boolean;\n\n protected dirty: boolean;\n\n readonly #owner?: Component | null;\n\n #ownedComponents: null | { [key: string]: Component };\n\n /**\n * Emits an event when the {@link @xeokit/core!Component} has been destroyed.\n *\n * @event\n */\n onDestroyed: EventEmitter;\n\n /**\n * Creates a new component.\n */\n constructor(owner: null | Component, cfg: { id?: string, [key: string]: any } = {}) {\n this.#owner = owner;\n this.id = cfg.id || createUUID();\n this.destroyed = false;\n this.#ownedComponents = null;\n this.dirty = false;\n this.onDestroyed = new EventEmitter(new EventDispatcher());\n if (owner) {\n owner.#own(this);\n }\n }\n\n /**\n * Logs a message for this component.\n *\n * The message will have this format: *````[LOG] [ : ````*\n *\n * @param message - The message to log\n * @protected\n */\n log(message: string): void {\n console.log(`[LOG] ${this.#prefixMessageWithID(message)}`);\n }\n\n /**\n * Logs a warning for this component to the JavaScript console.\n *\n * The console message will have this format: *````[WARN] [ =: ````*\n *\n * @param message - The warning message to log\n * @protected\n */\n warn(message: string): void {\n console.warn(`[WARN] ${this.#prefixMessageWithID(message)}`);\n }\n\n /**\n * Logs an error for this component to the JavaScript console.\n *\n * The console message will have this format: *````[ERROR] [ =: ````*\n\n @param message The error message to log\n @protected\n */\n error(message: string): void {\n console.error(`[ERROR] ${this.#prefixMessageWithID(message)}`);\n }\n\n /**\n * Flags this component as having a defered state updates it needs to perform.\n */\n protected setDirty(): void {\n this.dirty = true;\n }\n\n /**\n * Gives this component an opportunity to action any defered state updates.\n */\n protected cleanIfDirty(): void {\n if (this.dirty) {\n this.dirty = false;\n this.clean();\n }\n }\n\n /**\n * Forces this component to action any deferred state updates.\n */\n protected clean(): void {\n }\n\n /**\n * Destroys this component.\n *\n * Also destroys any components owned by this one.\n *\n * Sets {@link Component.destroyed} ````true````.\n *\n * Cancels any deferred state updates.\n */\n destroy(): void {\n if (this.destroyed) {\n return;\n }\n this.destroyed = true;\n if (this.#ownedComponents) {\n for (let id in this.#ownedComponents) {\n if (this.#ownedComponents.hasOwnProperty(id)) {\n const component = this.#ownedComponents[id];\n component.destroy();\n delete this.#ownedComponents[id];\n }\n }\n }\n this.#ownedComponents = null;\n this.dirty = false;\n this.onDestroyed.dispatch(this, null);\n this.onDestroyed.clear();\n }\n\n #prefixMessageWithID(message: string): string {\n return ` [${this.constructor.name} \"${this.id}\"]: ${message}`;\n }\n\n #own(component: Component) {\n if (!this.#ownedComponents) {\n this.#ownedComponents = {};\n }\n if (!this.#ownedComponents[component.id]) {\n this.#ownedComponents[component.id] = component;\n }\n component.onDestroyed.one(() => {\n // @ts-ignore\n delete this.#ownedComponents[component.id];\n });\n }\n}\n\n", "/**\n * Basic xeokit SDK error type.\n */\nexport class SDKError extends Error {\n\n}", "/**\n * ## xeokit SDK Constant Definitions\n *\n * ## Installation\n *\n * ````bash\n * npm install @xeokit/constants\n * ````\n *\n * @module @xeokit/constants\n */\n\n/**\n * SceneTexture wrapping mode in which the texture repeats to infinity.\n */\nexport const RepeatWrapping = 1000;\n\n/**\n * SceneTexture wrapping mode in which the last pixel of the texture stretches to the edge of the mesh.\n */\nexport const ClampToEdgeWrapping = 1001;\n\n/**\n * SceneTexture wrapping mode in which the texture repeats to infinity, mirroring on each repeat.\n */\nexport const MirroredRepeatWrapping = 1002;\n\n/**\n * SceneTexture magnification and minification filter that returns the nearest texel to the given sample coordinates.\n */\nexport const NearestFilter = 1003;\n\n/**\n * SceneTexture minification filter that chooses the mipmap that most closely matches the size of the pixel being textured and returns the nearest texel to the given sample coordinates.\n */\nexport const NearestMipMapNearestFilter = 1004;\n\n/**\n * SceneTexture minification filter that chooses the mipmap that most closely matches the size of the pixel being textured\n * and returns the nearest texel to the given sample coordinates.\n */\nexport const NearestMipmapNearestFilter = 1004;\n\n/**\n * SceneTexture minification filter that chooses two mipmaps that most closely match the size of the pixel being textured\n * and returns the nearest texel to the center of the pixel at the given sample coordinates.\n */\nexport const NearestMipmapLinearFilter = 1005;\n\n/**\n * SceneTexture minification filter that chooses two mipmaps that most closely match the size of the pixel being textured\n * and returns the nearest texel to the center of the pixel at the given sample coordinates.\n */\nexport const NearestMipMapLinearFilter = 1005;\n\n/**\n * SceneTexture magnification and minification filter that returns the weighted average of the four nearest texels to the given sample coordinates.\n */\nexport const LinearFilter = 1006;\n\n/**\n * SceneTexture minification filter that chooses the mipmap that most closely matches the size of the pixel being textured and\n * returns the weighted average of the four nearest texels to the given sample coordinates.\n */\nexport const LinearMipmapNearestFilter = 1007;\n\n/**\n * SceneTexture minification filter that chooses the mipmap that most closely matches the size of the pixel being textured and\n * returns the weighted average of the four nearest texels to the given sample coordinates.\n */\nexport const LinearMipMapNearestFilter = 1007;\n\n/**\n * SceneTexture minification filter that chooses two mipmaps that most closely match the size of the pixel being textured,\n * finds within each mipmap the weighted average of the nearest texel to the center of the pixel, then returns the\n * weighted average of those two values.\n */\nexport const LinearMipmapLinearFilter = 1008;\n\n/**\n * SceneTexture minification filter that chooses two mipmaps that most closely match the size of the pixel being textured,\n * finds within each mipmap the weighted average of the nearest texel to the center of the pixel, then returns the\n * weighted average of those two values.\n */\nexport const LinearMipMapLinearFilter = 1008;\n\n/**\n * Unsigned 8-bit integer type.\n */\nexport const UnsignedByteType = 1009;\n\n/**\n * Signed 8-bit integer type.\n */\nexport const ByteType = 1010;\n\n/**\n * Signed 16-bit integer type.\n */\nexport const ShortType = 1011;\n\n/**\n * Unsigned 16-bit integer type.\n */\nexport const UnsignedShortType = 1012;\n\n/**\n * Signed 32-bit integer type.\n */\nexport const IntType = 1013;\n\n/**\n * Unsigned 32-bit integer type.\n */\nexport const UnsignedIntType = 1014;\n\n/**\n * Signed 32-bit floating-point type.\n */\nexport const FloatType = 1015;\n\n/**\n * Signed 16-bit half-precision floating-point type.\n */\nexport const HalfFloatType = 1016;\n\n/**\n * SceneTexture packing mode in which each ````RGBA```` channel is packed into 4 bits, for a combined total of 16 bits.\n */\nexport const UnsignedShort4444Type = 1017;\n\n/**\n * SceneTexture packing mode in which the ````RGB```` channels are each packed into 5 bits, and the ````A```` channel is packed into 1 bit, for a combined total of 16 bits.\n */\nexport const UnsignedShort5551Type = 1018;\n\n/**\n * Unsigned integer type for 24-bit depth texture data.\n */\nexport const UnsignedInt248Type = 1020;\n\n/**\n * SceneTexture sampling mode that discards the ````RGBA```` components and just reads the ````A```` component.\n */\nexport const AlphaFormat = 1021;\n\n/**\n * SceneTexture sampling mode that discards the ````A```` component and reads the ````RGB```` components.\n */\nexport const RGBFormat = 1022;\n\n/**\n * SceneTexture sampling mode that reads the ````RGBA```` components.\n */\nexport const RGBAFormat = 1023;\n\n/**\n * SceneTexture sampling mode that reads each ````RGB```` texture component as a luminance value, converted to a float and clamped\n * to ````[0,1]````, while always reading the ````A```` channel as ````1.0````.\n */\nexport const LuminanceFormat = 1024;\n\n/**\n * SceneTexture sampling mode that reads each of the ````RGBA```` texture components as a luminance/alpha value, converted to a float and clamped to ````[0,1]````.\n */\nexport const LuminanceAlphaFormat = 1025;\n\n/**\n * SceneTexture sampling mode that reads each element as a single depth value, converts it to a float and clamps to ````[0,1]````.\n */\nexport const DepthFormat = 1026;\n\n/**\n * SceneTexture sampling mode that\n */\nexport const DepthStencilFormat = 1027;\n\n/**\n * SceneTexture sampling mode that discards the ````GBA```` components and just reads the ````R```` component.\n */\nexport const RedFormat = 1028;\n\n/**\n * SceneTexture sampling mode that discards the ````GBA```` components and just reads the ````R```` component, as an integer instead of as a float.\n */\nexport const RedIntegerFormat = 1029;\n\n/**\n * SceneTexture sampling mode that discards the ````A```` and ````B```` components and just reads the ````R```` and ````G```` components.\n */\nexport const RGFormat = 1030;\n\n/**\n * SceneTexture sampling mode that discards the ````A```` and ````B```` components and just reads the ````R```` and ````G```` components, as integers instead of floats.\n */\nexport const RGIntegerFormat = 1031;\n\n/**\n * SceneTexture sampling mode that reads the ````RGBA```` components as integers instead of floats.\n */\nexport const RGBAIntegerFormat = 1033;\n\n/**\n * SceneTexture format mode in which the texture is formatted as a DXT1 compressed ````RGB```` image.\n */\nexport const RGB_S3TC_DXT1_Format = 33776;\n\n/**\n * SceneTexture format mode in which the texture is formatted as a DXT1 compressed ````RGBA```` image.\n */\nexport const RGBA_S3TC_DXT1_Format = 33777;\n\n/**\n * SceneTexture format mode in which the texture is formatted as a DXT3 compressed ````RGBA```` image.\n */\nexport const RGBA_S3TC_DXT3_Format = 33778;\n\n/**\n * SceneTexture format mode in which the texture is formatted as a DXT5 compressed ````RGBA```` image.\n */\nexport const RGBA_S3TC_DXT5_Format = 33779;\n\n/**\n * SceneTexture format mode in which the texture is formatted as a PVRTC compressed\n * image, with ````RGB```` compression in 4-bit mode and one block for each 4\u00D74 pixels.\n */\nexport const RGB_PVRTC_4BPPV1_Format = 35840;\n\n/**\n * SceneTexture format mode in which the texture is formatted as a PVRTC compressed\n * image, with ````RGB```` compression in 2-bit mode and one block for each 8\u00D74 pixels.\n */\nexport const RGB_PVRTC_2BPPV1_Format = 35841;\n\n/**\n * SceneTexture format mode in which the texture is formatted as a PVRTC compressed\n * image, with ````RGBA```` compression in 4-bit mode and one block for each 4\u00D74 pixels.\n */\nexport const RGBA_PVRTC_4BPPV1_Format = 35842;\n\n/**\n * SceneTexture format mode in which the texture is formatted as a PVRTC compressed\n * image, with ````RGBA```` compression in 2-bit mode and one block for each 8\u00D74 pixels.\n */\nexport const RGBA_PVRTC_2BPPV1_Format = 35843;\n\n/**\n * SceneTexture format mode in which the texture is formatted as an ETC1 compressed\n * ````RGB```` image.\n */\nexport const RGB_ETC1_Format = 36196;\n\n/**\n * SceneTexture format mode in which the texture is formatted as an ETC2 compressed\n * ````RGB```` image.\n */\nexport const RGB_ETC2_Format = 37492;\n\n/**\n * SceneTexture format mode in which the texture is formatted as an ETC2 compressed\n * ````RGBA```` image.\n */\nexport const RGBA_ETC2_EAC_Format = 37496;\n\n/**\n * SceneTexture format mode in which the texture is formatted as an ATSC compressed\n * ````RGBA```` image.\n */\nexport const RGBA_ASTC_4x4_Format = 37808;\n\n/**\n * SceneTexture format mode in which the texture is formatted as an ATSC compressed\n * ````RGBA```` image.\n */\nexport const RGBA_ASTC_5x4_Format = 37809;\n\n/**\n * SceneTexture format mode in which the texture is formatted as an ATSC compressed\n * ````RGBA```` image.\n */\nexport const RGBA_ASTC_5x5_Format = 37810;\n\n/**\n * SceneTexture format mode in which the texture is formatted as an ATSC compressed\n * ````RGBA```` image.\n */\nexport const RGBA_ASTC_6x5_Format = 37811;\n\n/**\n * SceneTexture format mode in which the texture is formatted as an ATSC compressed\n * ````RGBA```` image.\n */\nexport const RGBA_ASTC_6x6_Format = 37812;\n\n/**\n * SceneTexture format mode in which the texture is formatted as an ATSC compressed\n * ````RGBA```` image.\n */\nexport const RGBA_ASTC_8x5_Format = 37813;\n\n/**\n * SceneTexture format mode in which the texture is formatted as an ATSC compressed\n * ````RGBA```` image.\n */\nexport const RGBA_ASTC_8x6_Format = 37814;\n\n/**\n * SceneTexture format mode in which the texture is formatted as an ATSC compressed\n * ````RGBA```` image.\n */\nexport const RGBA_ASTC_8x8_Format = 37815;\n\n/**\n * SceneTexture format mode in which the texture is formatted as an ATSC compressed\n * ````RGBA```` image.\n */\nexport const RGBA_ASTC_10x5_Format = 37816;\n\n/**\n * SceneTexture format mode in which the texture is formatted as an ATSC compressed\n * ````RGBA```` image.\n */\nexport const RGBA_ASTC_10x6_Format = 37817;\n\n/**\n * SceneTexture format mode in which the texture is formatted as an ATSC compressed\n * ````RGBA```` image.\n */\nexport const RGBA_ASTC_10x8_Format = 37818;\n\n/**\n * SceneTexture format mode in which the texture is formatted as an ATSC compressed\n * ````RGBA```` image.\n */\nexport const RGBA_ASTC_10x10_Format = 37819;\n\n/**\n * SceneTexture format mode in which the texture is formatted as an ATSC compressed\n * ````RGBA```` image.\n */\nexport const RGBA_ASTC_12x10_Format = 37820;\n\n/**\n * SceneTexture format mode in which the texture is formatted as an ATSC compressed\n * ````RGBA```` image.\n */\nexport const RGBA_ASTC_12x12_Format = 37821;\n\n/**\n * SceneTexture format mode in which the texture is formatted as an BPTC compressed\n * ````RGBA```` image.\n */\nexport const RGBA_BPTC_Format = 36492;\n\n/**\n * SceneTexture encoding mode in which the texture image is in linear color space.\n */\nexport const LinearEncoding = 3000;\n\n/**\n * SceneTexture encoding mode in which the texture image is in sRGB color space.\n */\nexport const sRGBEncoding = 3001;\n\n/**\n * Media type for GIF images.\n */\nexport const GIFMediaType = 10000;\n\n/**\n * Media type for JPEG images.\n */\nexport const JPEGMediaType = 10001;\n\n/**\n * Media type for PNG images.\n */\nexport const PNGMediaType = 10002;\n\n/**\n * Points primitive type.\n */\nexport const PointsPrimitive = 20000;\n\n/**\n * Line segments primitive type.\n */\nexport const LinesPrimitive = 20001;\n\n/**\n * Non-closed triangle mesh primitive type.\n *\n * > Since we are able to look inside non-closed surfaces and see their backfaces, these primitive types are always\n * rendered with backfaces enabled.\n */\nexport const TrianglesPrimitive = 20002;\n\n/**\n * Closed triangle mesh primitive type.\n *\n * Since we normally can't see the backfaces inside closed surfaces, these primitive types are normally rendered\n * with backfaces disabled, for extra performance.\n */\nexport const SolidPrimitive = 20003;\n\n/**\n * Non-closed triangle mesh primitive type.\n *\n * Since we are able to look inside non-closed surfaces and see their backfaces, these primitive types are always\n * rendered with backfaces enabled.\n */\nexport const SurfacePrimitive = 20004;\n\n/**\n * Fast rendering mode.\n */\nexport const FastRender = 300001;\n\n/**\n * Quality rendering mode.\n */\nexport const QualityRender = 30000;\n\n/**\n * Meters unit of measurement.\n */\nexport const MetersUnit = 400000;\n\n/**\n * Centimeters unit of measurement.\n */\nexport const CentimetersUnit = 400001;\n\n/**\n * Millimeters unit of measurement.\n */\nexport const MillimetersUnit = 400002;\n\n/**\n * Yards unit of measurement.\n */\nexport const YardsUnit = 400003;\n\n/**\n * Feet unit of measurement.\n */\nexport const FeetUnit = 400004;\n\n/**\n * Inches unit of measurement.\n */\nexport const InchesUnit = 400005;\n\n/**\n * Perspective projection type.\n */\nexport const PerspectiveProjectionType = 500000;\n\n/**\n * Orthographic projection type.\n */\nexport const OrthoProjectionType = 500001;\n\n/**\n * Frustum3 projection type.\n */\nexport const FrustumProjectionType = 500002;\n\n/**\n * Custom projection type.\n */\nexport const CustomProjectionType = 500003;\n\n/**\n * Orbit navigation mode.\n */\nexport const OrbitNavigationMode = 600001;\n\n/**\n * First-person navigation mode.\n */\nexport const FirstPersonNavigationMode = 600002;\n\n/**\n * Plan view navigation mode.\n */\nexport const PlanViewNavigationMode = 600003;\n", "/**\n * [![npm version](https://badge.fury.io/js/%40xeokit%2Fmath.svg)](https://badge.fury.io/js/%40xeokit%2Fmath)\n * [![](https://data.jsdelivr.com/v1/package/npm/@xeokit/badge)](https://www.jsdelivr.com/package/npm/@xeokit/math)\n *\n * \n *\n * # xeokit Core Math Utilities\n *\n * ---\n *\n * ### *Basic math types and constants*\n *\n * ---\n *\n * ## Installation\n *\n * ````bash\n * npm install @xeokit/math\n * ````\n *\n * ## Usage\n *\n * ````javascript\n * import * as math from \"@xeokit/math\";\n *\n * //..\n * ````\n *\n * @module @xeokit/math\n */\n\n/**\n * An array of floating-point numbers.\n */\nexport type FloatArrayParam = (Uint8Array | Int8Array | Uint16Array | Uint32Array | Int16Array | Float32Array | Float64Array | number[]);\n\n/**\n * An array of integer numbers.\n */\nexport type IntArrayParam = (Uint32Array | Uint8Array | Int8Array | Uint16Array | Int16Array | number[]);\n\n/**\n * Minimum safe double-precision value.\n */\nexport const MIN_DOUBLE: number = -Number.MAX_SAFE_INTEGER;\n\n/**\n * Maximum safe double-precision value.\n */\nexport const MAX_DOUBLE: number = Number.MAX_SAFE_INTEGER;\n\n/**\n * The number of radiians in a degree (0.0174532925).\n */\nexport const DEGTORAD: number = 0.0174532925;\n\n/**\n * The number of degrees in a radian.\n */\nexport const RADTODEG: number = 57.295779513;\n\n/**\n * Clamps a value to the given range.\n * @param value Value to clamp.\n * @param min Lower bound.\n * @param max Upper bound.\n * @returns Clamped result.\n */\nexport function clamp(value: number, min: number, max: number): number {\n return Math.max(min, Math.min(max, value));\n}\n\n/**\n * Creates a new {@link FloatArrayParam}.\n */\nexport function newFloatArray(values?: number | FloatArrayParam): FloatArrayParam {\n // @ts-ignore\n return new Float64Array(values);\n}\n\n\nexport const MAX_INT= 10000000;\n\n/**\n * Maximum safe inverse.\n *\n * Returns:\n * - x != 0 => 1/x,\n * - x == 1 => 1\n *\n * @param {number} x\n */\nexport function safeInv(x:number) {\n const retVal = 1 / x;\n if (isNaN(retVal) || !isFinite(retVal)) {\n return 1;\n }\n return retVal;\n}\n", "/**\n * [![npm version](https://badge.fury.io/js/%40xeokit%2Fmath.svg)](https://badge.fury.io/js/%40xeokit%2Fmath)\n * [![](https://data.jsdelivr.com/v1/package/npm/@xeokit/badge)](https://www.jsdelivr.com/package/npm/@xeokit/math)\n *\n * \n *\n * # xeokit Matrix and Vector Math Library\n *\n * ---\n *\n * ### *Math functions for 3D/2D matrices, quaternions and vectors*\n *\n * ---\n *\n * ## Installation\n *\n * ````bash\n * npm install @xeokit/matrix\n * ````\n *\n * ## Usage\n *\n * ````javascript\n * import * as matrix from \"@xeokit/matrix\";\n *\n * //..\n * ````\n *\n * @module @xeokit/matrix\n */\nimport {clamp, DEGTORAD, type FloatArrayParam, newFloatArray} from \"@xeokit/math\";\n\n\nconst tempVec4a: FloatArrayParam = createVec4();\nconst tempVec3 = createVec3();\nconst tempVec3b = createVec3();\nconst tempVec3c = createVec3();\nconst tempVec3d = createVec3();\nconst tempVec3e = createVec3();\nconst tempVec4b = createVec4();\n\n/**\n * Returns the dot product of two three-element vectors.\n */\nexport function dotVec3(u: FloatArrayParam, v: FloatArrayParam): number {\n return (u[0] * v[0] + u[1] * v[1] + u[2] * v[2]);\n}\n\n/**\n * Returns a new, uninitialized two-element vector.\n */\nexport function createVec2(values?: FloatArrayParam): FloatArrayParam {\n // @ts-ignore\n return new Float64Array(values || 2);\n}\n\n/**\n * Returns a new, uninitialized three-element vector.\n */\nexport function createVec3(values?: FloatArrayParam): Float64Array {\n // @ts-ignore\n return new Float64Array(values || 3);\n}\n\n/**\n * Returns a new, uninitialized four-element vector.\n */\nexport function createVec4(values?: FloatArrayParam): FloatArrayParam {\n // @ts-ignore\n return new Float64Array(values || 4);\n}\n\n/**\n * Negates a three-element vector.\n */\nexport function negateVec3(v: FloatArrayParam, dest?: FloatArrayParam): FloatArrayParam {\n if (!dest) {\n dest = v;\n }\n dest[0] = -v[0];\n dest[1] = -v[1];\n dest[2] = -v[2];\n return dest;\n}\n\n/**\n * Negates a four-element vector.\n */\nexport function negateVec4(v: FloatArrayParam, dest?: FloatArrayParam): FloatArrayParam {\n if (!dest) {\n dest = v;\n }\n dest[0] = -v[0];\n dest[1] = -v[1];\n dest[2] = -v[2];\n dest[3] = -v[3];\n return dest;\n}\n\n/**\n * Adds one four-element vector to another.\n */\nexport function addVec4(u: FloatArrayParam, v: FloatArrayParam, dest?: FloatArrayParam): FloatArrayParam {\n if (!dest) {\n dest = u;\n }\n dest[0] = u[0] + v[0];\n dest[1] = u[1] + v[1];\n dest[2] = u[2] + v[2];\n dest[3] = u[3] + v[3];\n return dest;\n}\n\n/**\n * Adds a scalar value to each element of a four-element vector.\n */\nexport function addVec4Scalar(v: FloatArrayParam, s: number, dest?: FloatArrayParam) {\n if (!dest) {\n dest = v;\n }\n dest[0] = v[0] + s;\n dest[1] = v[1] + s;\n dest[2] = v[2] + s;\n dest[3] = v[3] + s;\n return dest;\n}\n\n/**\n * Multiplies each element of a four-element vector by a scalar.\n */\nexport function mulVec4Scalar(v: FloatArrayParam, s: number, dest?: FloatArrayParam) {\n if (!dest) {\n dest = v;\n }\n dest[0] = v[0] * s;\n dest[1] = v[1] * s;\n dest[2] = v[2] * s;\n dest[3] = v[3] * s;\n return dest;\n}\n\n/**\n * Multiplies each element of a three-element vector by a scalar.\n */\nexport function mulVec3Scalar(v: FloatArrayParam, s: number, dest?: FloatArrayParam): FloatArrayParam {\n if (!dest) {\n dest = v;\n }\n dest[0] = v[0] * s;\n dest[1] = v[1] * s;\n dest[2] = v[2] * s;\n return dest;\n}\n\n/**\n * Multiplies each element of a two-element vector by a scalar.\n */\nexport function mulVec2Scalar(v: FloatArrayParam, s: number, dest?: FloatArrayParam): FloatArrayParam {\n if (!dest) {\n dest = v;\n }\n dest[0] = v[0] * s;\n dest[1] = v[1] * s;\n return dest;\n}\n\n/**\n * Adds one three-element vector to another.\n */\nexport function addVec3(u: FloatArrayParam, v: FloatArrayParam, dest?: FloatArrayParam): FloatArrayParam {\n if (!dest) {\n dest = u;\n }\n dest[0] = u[0] + v[0];\n dest[1] = u[1] + v[1];\n dest[2] = u[2] + v[2];\n return dest;\n}\n\n/**\n */\nexport function addVec3Scalar(v: FloatArrayParam, s: number, dest?: FloatArrayParam) {\n if (!dest) {\n dest = v;\n }\n dest[0] = v[0] + s;\n dest[1] = v[1] + s;\n dest[2] = v[2] + s;\n return dest;\n}\n\n/**\n * Subtracts one four-element vector from another.\n */\nexport function subVec4(u: FloatArrayParam, v: FloatArrayParam, dest?: FloatArrayParam) {\n if (!dest) {\n dest = u;\n }\n dest[0] = u[0] - v[0];\n dest[1] = u[1] - v[1];\n dest[2] = u[2] - v[2];\n dest[3] = u[3] - v[3];\n return dest;\n}\n\n/**\n * Returns true if the two 3-element vectors are the same.\n */\nexport function compareVec3(v1: FloatArrayParam, v2: FloatArrayParam): boolean {\n return (v1[0] === v2[0] && v1[1] === v2[1] && v1[2] === v2[2]);\n}\n\n/**\n * Subtracts one three-element vector from another.\n */\nexport function subVec3(u: FloatArrayParam, v: FloatArrayParam, dest?: FloatArrayParam) {\n if (!dest) {\n dest = u;\n }\n dest[0] = u[0] - v[0];\n dest[1] = u[1] - v[1];\n dest[2] = u[2] - v[2];\n return dest;\n}\n\n/**\n * Subtracts one two-element vector from another.\n */\nexport function subVec2(u: FloatArrayParam, v: FloatArrayParam, dest?: FloatArrayParam) {\n if (!dest) {\n dest = u;\n }\n dest[0] = u[0] - v[0];\n dest[1] = u[1] - v[1];\n return dest;\n}\n\n/**\n * Get the geometric mean of the vectors.\n */\nexport function geometricMeanVec2(...vectors: any) {\n const geometricMean = new Float32Array(vectors[0]);\n for (let i = 1; i < vectors.length; i++) {\n geometricMean[0] += vectors[i][0];\n geometricMean[1] += vectors[i][1];\n }\n geometricMean[0] /= vectors.length;\n geometricMean[1] /= vectors.length;\n return geometricMean;\n}\n\n/**\n * Subtracts a scalar value from each element of a four-element vector.\n */\nexport function subVec4Scalar(v: FloatArrayParam, s: number, dest?: FloatArrayParam) {\n if (!dest) {\n dest = v;\n }\n dest[0] = v[0] - s;\n dest[1] = v[1] - s;\n dest[2] = v[2] - s;\n dest[3] = v[3] - s;\n return dest;\n}\n\n/**\n * Sets each element of a 4-element vector to a scalar value minus the value of that element.\n * @method subScalarVec4\n * @static\n * @param {Array(Number)} v The vector\n * @param s The scalar\n * @param {Array(Number)} [dest] Destination vector\n * @return {Array(Number)} dest if specified, v otherwise\n */\nexport function subScalarVec4(v: FloatArrayParam, s: number, dest?: FloatArrayParam) {\n if (!dest) {\n dest = v;\n }\n dest[0] = s - v[0];\n dest[1] = s - v[1];\n dest[2] = s - v[2];\n dest[3] = s - v[3];\n return dest;\n}\n\n/**\n * Multiplies one three-element vector by another.\n */\nexport function mulVec4(u: FloatArrayParam, v: FloatArrayParam, dest?: FloatArrayParam) {\n if (!dest) {\n dest = u;\n }\n dest[0] = u[0] * v[0];\n dest[1] = u[1] * v[1];\n dest[2] = u[2] * v[2];\n dest[3] = u[3] * v[3];\n return dest;\n}\n\n\n/**\n * Divides one three-element vector by another.\n */\nexport function divVec3(u: FloatArrayParam, v: FloatArrayParam, dest?: FloatArrayParam) {\n if (!dest) {\n dest = u;\n }\n dest[0] = u[0] / v[0];\n dest[1] = u[1] / v[1];\n dest[2] = u[2] / v[2];\n return dest;\n}\n\n/**\n * Divides one four-element vector by another.\n */\nexport function divVec4(u: FloatArrayParam, v: FloatArrayParam, dest?: FloatArrayParam) {\n if (!dest) {\n dest = u;\n }\n dest[0] = u[0] / v[0];\n dest[1] = u[1] / v[1];\n dest[2] = u[2] / v[2];\n dest[3] = u[3] / v[3];\n return dest;\n}\n\n/**\n * Divides a scalar by a three-element vector, returning a new vector.\n */\nexport function divScalarVec3(s: number, v: FloatArrayParam, dest?: FloatArrayParam) {\n if (!dest) {\n dest = v;\n }\n dest[0] = s / v[0];\n dest[1] = s / v[1];\n dest[2] = s / v[2];\n return dest;\n}\n\n/**\n * Divides a three-element vector by a scalar.\n */\nexport function divVec3Scalar(v: FloatArrayParam, s: number, dest?: FloatArrayParam) {\n if (!dest) {\n dest = v;\n }\n dest[0] = v[0] / s;\n dest[1] = v[1] / s;\n dest[2] = v[2] / s;\n return dest;\n}\n\n/**\n * Divides a four-element vector by a scalar.\n */\nexport function divVec4Scalar(v: FloatArrayParam, s: number, dest?: FloatArrayParam) {\n if (!dest) {\n dest = v;\n }\n dest[0] = v[0] / s;\n dest[1] = v[1] / s;\n dest[2] = v[2] / s;\n dest[3] = v[3] / s;\n return dest;\n}\n\n/**\n * Divides a scalar by a four-element vector, returning a new vector.\n */\nexport function divScalarVec4(s: number, v: FloatArrayParam, dest?: FloatArrayParam) {\n if (!dest) {\n dest = v;\n }\n dest[0] = s / v[0];\n dest[1] = s / v[1];\n dest[2] = s / v[2];\n dest[3] = s / v[3];\n return dest;\n}\n\n/**\n * Returns the dot product of two four-element vectors.\n */\nexport function dotVec4(u: FloatArrayParam, v: FloatArrayParam) {\n return (u[0] * v[0] + u[1] * v[1] + u[2] * v[2] + u[3] * v[3]);\n}\n\n/**\n * Returns the cross product of two four-element vectors.\n */\nexport function cross3Vec4(u: FloatArrayParam, v: FloatArrayParam) {\n const u0 = u[0];\n const u1 = u[1];\n const u2 = u[2];\n const v0 = v[0];\n const v1 = v[1];\n const v2 = v[2];\n return [\n u1 * v2 - u2 * v1,\n u2 * v0 - u0 * v2,\n u0 * v1 - u1 * v0,\n 0.0];\n}\n\n/**\n * Returns the cross product of two three-element vectors.\n */\nexport function cross3Vec3(u: FloatArrayParam, v: FloatArrayParam, dest?: FloatArrayParam) {\n if (!dest) {\n dest = u;\n }\n const x = u[0];\n const y = u[1];\n const z = u[2];\n const x2 = v[0];\n const y2 = v[1];\n const z2 = v[2];\n dest[0] = y * z2 - z * y2;\n dest[1] = z * x2 - x * z2;\n dest[2] = x * y2 - y * x2;\n return dest;\n}\n\nexport function sqLenVec4(v: FloatArrayParam) { // TODO\n return dotVec4(v, v);\n}\n\n/**\n * Returns the length of a four-element vector.\n * @method lenVec4\n * @static\n * @param {Array(Number)} v The vector\n * @return The length\n */\nexport function lenVec4(v: FloatArrayParam) {\n return Math.sqrt(sqLenVec4(v));\n}\n\n\n/**\n * Returns the dot product of two two-element vectors.\n */\nexport function dotVec2(u: FloatArrayParam, v: FloatArrayParam) {\n return (u[0] * v[0] + u[1] * v[1]);\n}\n\n\nexport function sqLenVec3(v: FloatArrayParam) {\n return dotVec3(v, v);\n}\n\n\nexport function sqLenVec2(v: FloatArrayParam) {\n return dotVec2(v, v);\n}\n\n/**\n * Returns the length of a three-element vector.\n */\nexport function lenVec3(v: FloatArrayParam): number {\n return Math.sqrt(sqLenVec3(v));\n}\n\nexport const distVec3 = ((() => {\n const vec = createVec3();\n return (v: FloatArrayParam, w: FloatArrayParam) => lenVec3(subVec3(v, w, vec));\n}))()\n\n/**\n * Returns the length of a two-element vector.\n */\nexport function lenVec2(v: FloatArrayParam): number {\n return Math.sqrt(sqLenVec2(v));\n}\n\n/**\n * Linearly interpolates between two 3D vectors.\n */\nexport function lerpVec3(t: number, t1: number, t2: number, p1: FloatArrayParam, p2: FloatArrayParam, dest: any) {\n const result = dest || createVec3();\n const f = (t - t1) / (t2 - t1);\n result[0] = p1[0] + (f * (p2[0] - p1[0]));\n result[1] = p1[1] + (f * (p2[1] - p1[1]));\n result[2] = p1[2] + (f * (p2[2] - p1[2]));\n return result;\n}\n\nexport const distVec2 = ((() => {\n const vec = createVec2();\n return (v: FloatArrayParam, w: FloatArrayParam) => lenVec2(subVec2(v, w, vec));\n}))();\n\n/**\n * @method rcpVec3\n * @static\n * @param v createVec3\n * @param dest createVec3 - optional destination\n * @return [] dest if specified, v otherwise\n *\n */\nexport function rcpVec3(v: FloatArrayParam, dest: FloatArrayParam) {\n return divScalarVec3(1.0, v, dest);\n}\n\n/**\n * Normalizes a four-element vector\n *\n */\nexport function normalizeVec4(v: FloatArrayParam, dest: FloatArrayParam) {\n const f = 1.0 / lenVec4(v);\n return mulVec4Scalar(v, f, dest);\n}\n\n/**\n * Normalizes a three-element vector\n * @method normalizeVec4\n * @static\n */\nexport function normalizeVec3(v: FloatArrayParam, dest?: FloatArrayParam) {\n const f = 1.0 / lenVec3(v);\n return mulVec3Scalar(v, f, dest);\n}\n\n/**\n * Normalizes a two-element vector\n */\nexport function normalizeVec2(v: FloatArrayParam, dest: FloatArrayParam) {\n const f = 1.0 / lenVec2(v);\n return mulVec2Scalar(v, f, dest);\n}\n\n/**\n * Gets the angle between two vectors\n */\nexport function angleVec3(v: FloatArrayParam, w: FloatArrayParam) {\n let theta = dotVec3(v, w) / (Math.sqrt(sqLenVec3(v) * sqLenVec3(w)));\n theta = theta < -1 ? -1 : (theta > 1 ? 1 : theta); // Clamp to handle numerical problems\n return Math.acos(theta);\n}\n\n/**\n * Creates a three-element vector from the rotation part of a sixteen-element matrix.\n */\nexport const vec3FromMat4Scale: Function = ((() => {\n\n const tempVec3 = createVec3();\n\n return function (m: FloatArrayParam, dest: FloatArrayParam) {\n\n tempVec3[0] = m[0];\n tempVec3[1] = m[1];\n tempVec3[2] = m[2];\n\n dest[0] = lenVec3(tempVec3);\n\n tempVec3[0] = m[4];\n tempVec3[1] = m[5];\n tempVec3[2] = m[6];\n\n dest[1] = lenVec3(tempVec3);\n\n tempVec3[0] = m[8];\n tempVec3[1] = m[9];\n tempVec3[2] = m[10];\n\n dest[2] = lenVec3(tempVec3);\n\n return dest;\n };\n}))();\n\n/**\n * Converts an n-element vector to a JSON-serializable\n * array with values rounded to two decimal places.\n */\nexport function vecToArray(v: FloatArrayParam): FloatArrayParam {\n v = Array.prototype.slice.call(v);\n for (let i = 0, len = v.length; i < len; i++) {\n v[i] = trunc(v[i]);\n }\n return v;\n}\n\nfunction trunc(v: number) {\n return Math.round(v * 100000) / 100000\n}\n\n\n/**\n * Calculates the normal vector of a triangle.\n */\nexport function triangleNormal(a: FloatArrayParam, b: FloatArrayParam, c: FloatArrayParam, normal: FloatArrayParam = createVec3()): FloatArrayParam {\n const p1x = b[0] - a[0];\n const p1y = b[1] - a[1];\n const p1z = b[2] - a[2];\n\n const p2x = c[0] - a[0];\n const p2y = c[1] - a[1];\n const p2z = c[2] - a[2];\n\n const p3x = p1y * p2z - p1z * p2y;\n const p3y = p1z * p2x - p1x * p2z;\n const p3z = p1x * p2y - p1y * p2x;\n\n const mag = Math.sqrt(p3x * p3x + p3y * p3y + p3z * p3z);\n if (mag === 0) {\n normal[0] = 0;\n normal[1] = 0;\n normal[2] = 0;\n } else {\n normal[0] = p3x / mag;\n normal[1] = p3y / mag;\n normal[2] = p3z / mag;\n }\n\n return normal\n}\n\n\n/**\n * Returns a new, uninitialized 3x3 matrix.\n */\nexport function createMat3(values?: FloatArrayParam): FloatArrayParam {\n // @ts-ignore\n return new newFloatArray(values || 9);\n}\n\n/**\n * Converts a 3x3 matrix to 4x4.\n */\nexport function mat3ToMat4(mat3: FloatArrayParam, mat4?: FloatArrayParam): FloatArrayParam {\n if (!mat4) {\n mat4 = createMat4();\n }\n mat4[0] = mat3[0];\n mat4[1] = mat3[1];\n mat4[2] = mat3[2];\n mat4[3] = 0;\n mat4[4] = mat3[3];\n mat4[5] = mat3[4];\n mat4[6] = mat3[5];\n mat4[7] = 0;\n mat4[8] = mat3[6];\n mat4[9] = mat3[7];\n mat4[10] = mat3[8];\n mat4[11] = 0;\n mat4[12] = 0;\n mat4[13] = 0;\n mat4[14] = 0;\n mat4[15] = 1;\n return mat4;\n}\n\n/**\n * Returns a new, uninitialized 4x4 matrix.\n */\nexport function createMat4(values?: FloatArrayParam): FloatArrayParam {\n // @ts-ignore\n return new Float64Array(values || 16);\n}\n\nconst tempMat4a = createMat4();\nconst tempMat4b = createMat4();\n\n/**\n * Returns true if the two 4x4 matrices are the same.\n * @param m1\n * @param m2\n * @returns {boolean}\n */\nexport function compareMat4(m1: FloatArrayParam, m2: FloatArrayParam): boolean {\n return m1[0] === m2[0] &&\n m1[1] === m2[1] &&\n m1[2] === m2[2] &&\n m1[3] === m2[3] &&\n m1[4] === m2[4] &&\n m1[5] === m2[5] &&\n m1[6] === m2[6] &&\n m1[7] === m2[7] &&\n m1[8] === m2[8] &&\n m1[9] === m2[9] &&\n m1[10] === m2[10] &&\n m1[11] === m2[11] &&\n m1[12] === m2[12] &&\n m1[13] === m2[13] &&\n m1[14] === m2[14] &&\n m1[15] === m2[15];\n}\n\n/**\n * Returns a 4x4 perspective projection matrix.\n */\nexport function perspectiveMat4(fovyrad: number, aspectratio: number, znear: number, zfar: number, m?: FloatArrayParam): FloatArrayParam {\n const pmin = [];\n const pmax = [];\n pmin[2] = znear;\n pmax[2] = zfar;\n pmax[1] = pmin[2] * Math.tan(fovyrad / 2.0);\n pmin[1] = -pmax[1];\n pmax[0] = pmax[1] * aspectratio;\n pmin[0] = -pmax[0];\n return frustumMat4v(pmin, pmax, m);\n}\n\n/**\n * Returns a 4x4 perspective frustum projection matrix.\n */\nexport function frustumMat4v(fmin: FloatArrayParam, fmax: FloatArrayParam, m?: FloatArrayParam): FloatArrayParam {\n if (!m) {\n m = createMat4();\n }\n const fmin4 = [fmin[0], fmin[1], fmin[2], 0.0];\n const fmax4 = [fmax[0], fmax[1], fmax[2], 0.0];\n addVec4(fmax4, fmin4, tempMat4a);\n subVec4(fmax4, fmin4, tempMat4b);\n const t = 2.0 * fmin4[2];\n const tempMat4b0 = tempMat4b[0];\n const tempMat4b1 = tempMat4b[1];\n const tempMat4b2 = tempMat4b[2];\n m[0] = t / tempMat4b0;\n m[1] = 0.0;\n m[2] = 0.0;\n m[3] = 0.0;\n m[4] = 0.0;\n m[5] = t / tempMat4b1;\n m[6] = 0.0;\n m[7] = 0.0;\n m[8] = tempMat4a[0] / tempMat4b0;\n m[9] = tempMat4a[1] / tempMat4b1;\n m[10] = -tempMat4a[2] / tempMat4b2;\n m[11] = -1.0;\n m[12] = 0.0;\n m[13] = 0.0;\n m[14] = -t * fmax4[2] / tempMat4b2;\n m[15] = 0.0;\n return m;\n}\n\n/**\n * Returns a 4x4 orthographic projection matrix.\n */\nexport function orthoMat4c(\n left: number,\n right: number,\n bottom: number,\n top: number,\n near: number,\n far: number,\n dest?: FloatArrayParam): FloatArrayParam {\n if (!dest) {\n dest = createMat4();\n }\n const rl = (right - left);\n const tb = (top - bottom);\n const fn = (far - near);\n dest[0] = 2.0 / rl;\n dest[1] = 0.0;\n dest[2] = 0.0;\n dest[3] = 0.0;\n dest[4] = 0.0;\n dest[5] = 2.0 / tb;\n dest[6] = 0.0;\n dest[7] = 0.0;\n dest[8] = 0.0;\n dest[9] = 0.0;\n dest[10] = -2.0 / fn;\n dest[11] = 0.0;\n dest[12] = -(left + right) / rl;\n dest[13] = -(top + bottom) / tb;\n dest[14] = -(far + near) / fn;\n dest[15] = 1.0;\n return dest;\n}\n\n/**\n * Returns a 4x4 perspective projection matrix.\n */\nexport function frustumMat4(\n left: number,\n right: number,\n bottom: number,\n top: number,\n near: number,\n far: number,\n dest?: FloatArrayParam): FloatArrayParam {\n if (!dest) {\n dest = createMat4();\n }\n const rl = (right - left);\n const tb = (top - bottom);\n const fn = (far - near);\n dest[0] = (near * 2) / rl;\n dest[1] = 0;\n dest[2] = 0;\n dest[3] = 0;\n dest[4] = 0;\n dest[5] = (near * 2) / tb;\n dest[6] = 0;\n dest[7] = 0;\n dest[8] = (right + left) / rl;\n dest[9] = (top + bottom) / tb;\n dest[10] = -(far + near) / fn;\n dest[11] = -1;\n dest[12] = 0;\n dest[13] = 0;\n dest[14] = -(far * near * 2) / fn;\n dest[15] = 0;\n return dest;\n}\n\n\n/**\n * Returns a 4x4 identity matrix.\n */\nexport function identityMat4(dest?: FloatArrayParam): FloatArrayParam {\n if (!dest) {\n dest = createMat4();\n }\n dest[0] = 1.0;\n dest[1] = 0.0;\n dest[2] = 0.0;\n dest[3] = 0.0;\n dest[4] = 0.0;\n dest[5] = 1.0;\n dest[6] = 0.0;\n dest[7] = 0.0;\n dest[8] = 0.0;\n dest[9] = 0.0;\n dest[10] = 1.0;\n dest[11] = 0.0;\n dest[12] = 0.0;\n dest[13] = 0.0;\n dest[14] = 0.0;\n dest[15] = 1.0;\n return dest;\n}\n\n/**\n * Returns a 3x3 identity matrix.\n */\nexport function identityMat3(dest?: FloatArrayParam): FloatArrayParam {\n if (!dest) {\n dest = createMat4();\n }\n dest[0] = 1.0;\n dest[1] = 0.0;\n dest[2] = 0.0;\n dest[3] = 0.0;\n dest[4] = 1.0;\n dest[5] = 0.0;\n dest[6] = 0.0;\n dest[7] = 0.0;\n dest[8] = 1.0;\n return dest;\n}\n\n/**\n * Tests if the given 4x4 matrix is the identity matrix.\n */\nexport function isIdentityMat4(m: FloatArrayParam): boolean {\n if (m[0] !== 1.0 || m[1] !== 0.0 || m[2] !== 0.0 || m[3] !== 0.0 ||\n m[4] !== 0.0 || m[5] !== 1.0 || m[6] !== 0.0 || m[7] !== 0.0 ||\n m[8] !== 0.0 || m[9] !== 0.0 || m[10] !== 1.0 || m[11] !== 0.0 ||\n m[12] !== 0.0 || m[13] !== 0.0 || m[14] !== 0.0 || m[15] !== 1.0) {\n return false;\n }\n return true;\n}\n\n/**\n * Creates a 4x4 rotation matrix.\n */\nexport function rotationMat4v(anglerad: number, axis: FloatArrayParam, m?: FloatArrayParam): FloatArrayParam {\n if (!m) {\n m = createMat4();\n }\n const ax = normalizeVec4([axis[0], axis[1], axis[2], 0.0], []);\n const s = Math.sin(anglerad);\n const c = Math.cos(anglerad);\n const q = 1.0 - c;\n const x = ax[0];\n const y = ax[1];\n const z = ax[2];\n let xy;\n let yz;\n let zx;\n let xs;\n let ys;\n let zs;\n xy = x * y;\n yz = y * z;\n zx = z * x;\n xs = x * s;\n ys = y * s;\n zs = z * s;\n m[0] = (q * x * x) + c;\n m[1] = (q * xy) + zs;\n m[2] = (q * zx) - ys;\n m[3] = 0.0;\n m[4] = (q * xy) - zs;\n m[5] = (q * y * y) + c;\n m[6] = (q * yz) + xs;\n m[7] = 0.0;\n m[8] = (q * zx) + ys;\n m[9] = (q * yz) - xs;\n m[10] = (q * z * z) + c;\n m[11] = 0.0;\n m[12] = 0.0;\n m[13] = 0.0;\n m[14] = 0.0;\n m[15] = 1.0;\n return m;\n}\n\n/**\n * Creates a 4x4 'lookat' viewing transform matrix.\n */\nexport function lookAtMat4v(pos: FloatArrayParam, target: FloatArrayParam, up: FloatArrayParam, dest?: FloatArrayParam): FloatArrayParam {\n if (!dest) {\n dest = createMat4();\n }\n const posx = pos[0];\n const posy = pos[1];\n const posz = pos[2];\n const upx = up[0];\n const upy = up[1];\n const upz = up[2];\n const targetx = target[0];\n const targety = target[1];\n const targetz = target[2];\n if (posx === targetx && posy === targety && posz === targetz) {\n return identityMat4();\n }\n let z0;\n let z1;\n let z2;\n let x0;\n let x1;\n let x2;\n let y0;\n let y1;\n let y2;\n let len;\n //createVec3.direction(eye, center, z);\n z0 = posx - targetx;\n z1 = posy - targety;\n z2 = posz - targetz;\n // normalize (no check needed for 0 because of early return)\n len = 1 / Math.sqrt(z0 * z0 + z1 * z1 + z2 * z2);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n //createVec3.normalize(createVec3.cross(up, z, x));\n x0 = upy * z2 - upz * z1;\n x1 = upz * z0 - upx * z2;\n x2 = upx * z1 - upy * z0;\n len = Math.sqrt(x0 * x0 + x1 * x1 + x2 * x2);\n if (!len) {\n x0 = 0;\n x1 = 0;\n x2 = 0;\n } else {\n len = 1 / len;\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n //createVec3.normalize(createVec3.cross(z, x, y));\n y0 = z1 * x2 - z2 * x1;\n y1 = z2 * x0 - z0 * x2;\n y2 = z0 * x1 - z1 * x0;\n len = Math.sqrt(y0 * y0 + y1 * y1 + y2 * y2);\n if (!len) {\n y0 = 0;\n y1 = 0;\n y2 = 0;\n } else {\n len = 1 / len;\n y0 *= len;\n y1 *= len;\n y2 *= len;\n }\n dest[0] = x0;\n dest[1] = y0;\n dest[2] = z0;\n dest[3] = 0;\n dest[4] = x1;\n dest[5] = y1;\n dest[6] = z1;\n dest[7] = 0;\n dest[8] = x2;\n dest[9] = y2;\n dest[10] = z2;\n dest[11] = 0;\n dest[12] = -(x0 * posx + x1 * posy + x2 * posz);\n dest[13] = -(y0 * posx + y1 * posy + y2 * posz);\n dest[14] = -(z0 * posx + z1 * posy + z2 * posz);\n dest[15] = 1;\n return dest;\n}\n\n/**\n * Returns the inverse of the given 4x4 matrix.\n */\nexport function inverseMat4(mat: FloatArrayParam, dest?: FloatArrayParam): FloatArrayParam {\n if (!dest) {\n dest = mat;\n }\n const a00 = mat[0];\n const a01 = mat[1];\n const a02 = mat[2];\n const a03 = mat[3];\n const a10 = mat[4];\n const a11 = mat[5];\n const a12 = mat[6];\n const a13 = mat[7];\n const a20 = mat[8];\n const a21 = mat[9];\n const a22 = mat[10];\n const a23 = mat[11];\n const a30 = mat[12];\n const a31 = mat[13];\n const a32 = mat[14];\n const a33 = mat[15];\n const b00 = a00 * a11 - a01 * a10;\n const b01 = a00 * a12 - a02 * a10;\n const b02 = a00 * a13 - a03 * a10;\n const b03 = a01 * a12 - a02 * a11;\n const b04 = a01 * a13 - a03 * a11;\n const b05 = a02 * a13 - a03 * a12;\n const b06 = a20 * a31 - a21 * a30;\n const b07 = a20 * a32 - a22 * a30;\n const b08 = a20 * a33 - a23 * a30;\n const b09 = a21 * a32 - a22 * a31;\n const b10 = a21 * a33 - a23 * a31;\n const b11 = a22 * a33 - a23 * a32;\n const invDet = 1 / (b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06);\n dest[0] = (a11 * b11 - a12 * b10 + a13 * b09) * invDet;\n dest[1] = (-a01 * b11 + a02 * b10 - a03 * b09) * invDet;\n dest[2] = (a31 * b05 - a32 * b04 + a33 * b03) * invDet;\n dest[3] = (-a21 * b05 + a22 * b04 - a23 * b03) * invDet;\n dest[4] = (-a10 * b11 + a12 * b08 - a13 * b07) * invDet;\n dest[5] = (a00 * b11 - a02 * b08 + a03 * b07) * invDet;\n dest[6] = (-a30 * b05 + a32 * b02 - a33 * b01) * invDet;\n dest[7] = (a20 * b05 - a22 * b02 + a23 * b01) * invDet;\n dest[8] = (a10 * b10 - a11 * b08 + a13 * b06) * invDet;\n dest[9] = (-a00 * b10 + a01 * b08 - a03 * b06) * invDet;\n dest[10] = (a30 * b04 - a31 * b02 + a33 * b00) * invDet;\n dest[11] = (-a20 * b04 + a21 * b02 - a23 * b00) * invDet;\n dest[12] = (-a10 * b09 + a11 * b07 - a12 * b06) * invDet;\n dest[13] = (a00 * b09 - a01 * b07 + a02 * b06) * invDet;\n dest[14] = (-a30 * b03 + a31 * b01 - a32 * b00) * invDet;\n dest[15] = (a20 * b03 - a21 * b01 + a22 * b00) * invDet;\n return dest;\n}\n\n/**\n * Transposes the given 4x4 matrix.\n */\nexport function transposeMat4(mat: FloatArrayParam, dest?: FloatArrayParam): FloatArrayParam {\n const m4 = mat[4];\n const m14 = mat[14];\n const m8 = mat[8];\n const m13 = mat[13];\n const m12 = mat[12];\n const m9 = mat[9];\n if (!dest || mat === dest) {\n const a01 = mat[1];\n const a02 = mat[2];\n const a03 = mat[3];\n const a12 = mat[6];\n const a13 = mat[7];\n const a23 = mat[11];\n mat[1] = m4;\n mat[2] = m8;\n mat[3] = m12;\n mat[4] = a01;\n mat[6] = m9;\n mat[7] = m13;\n mat[8] = a02;\n mat[9] = a12;\n mat[11] = m14;\n mat[12] = a03;\n mat[13] = a13;\n mat[14] = a23;\n return mat;\n }\n dest[0] = mat[0];\n dest[1] = m4;\n dest[2] = m8;\n dest[3] = m12;\n dest[4] = mat[1];\n dest[5] = mat[5];\n dest[6] = m9;\n dest[7] = m13;\n dest[8] = mat[2];\n dest[9] = mat[6];\n dest[10] = mat[10];\n dest[11] = m14;\n dest[12] = mat[3];\n dest[13] = mat[7];\n dest[14] = mat[11];\n dest[15] = mat[15];\n return dest;\n}\n\n/**\n * Multiplies the given 4x4 matrix by the given four-element vector.\n */\nexport function mulMat4v4(m: FloatArrayParam, v: FloatArrayParam, dest?: FloatArrayParam): FloatArrayParam {\n if (!dest) {\n dest = m;\n }\n const v0 = v[0];\n const v1 = v[1];\n const v2 = v[2];\n const v3 = v[3];\n dest[0] = m[0] * v0 + m[4] * v1 + m[8] * v2 + m[12] * v3;\n dest[1] = m[1] * v0 + m[5] * v1 + m[9] * v2 + m[13] * v3;\n dest[2] = m[2] * v0 + m[6] * v1 + m[10] * v2 + m[14] * v3;\n dest[3] = m[3] * v0 + m[7] * v1 + m[11] * v2 + m[15] * v3;\n return dest;\n}\n\n/**\n * Multiplies the two given 4x4 matrix by each other.\n * @method mulMat4\n * @static\n */\nexport function mulMat4(a: FloatArrayParam, b: FloatArrayParam, dest?: FloatArrayParam): FloatArrayParam {\n if (!dest) {\n dest = a;\n }\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a03 = a[3];\n const a10 = a[4];\n const a11 = a[5];\n const a12 = a[6];\n const a13 = a[7];\n const a20 = a[8];\n const a21 = a[9];\n const a22 = a[10];\n const a23 = a[11];\n const a30 = a[12];\n const a31 = a[13];\n const a32 = a[14];\n const a33 = a[15];\n const b00 = b[0];\n const b01 = b[1];\n const b02 = b[2];\n const b03 = b[3];\n const b10 = b[4];\n const b11 = b[5];\n const b12 = b[6];\n const b13 = b[7];\n const b20 = b[8];\n const b21 = b[9];\n const b22 = b[10];\n const b23 = b[11];\n const b30 = b[12];\n const b31 = b[13];\n const b32 = b[14];\n const b33 = b[15];\n dest[0] = b00 * a00 + b01 * a10 + b02 * a20 + b03 * a30;\n dest[1] = b00 * a01 + b01 * a11 + b02 * a21 + b03 * a31;\n dest[2] = b00 * a02 + b01 * a12 + b02 * a22 + b03 * a32;\n dest[3] = b00 * a03 + b01 * a13 + b02 * a23 + b03 * a33;\n dest[4] = b10 * a00 + b11 * a10 + b12 * a20 + b13 * a30;\n dest[5] = b10 * a01 + b11 * a11 + b12 * a21 + b13 * a31;\n dest[6] = b10 * a02 + b11 * a12 + b12 * a22 + b13 * a32;\n dest[7] = b10 * a03 + b11 * a13 + b12 * a23 + b13 * a33;\n dest[8] = b20 * a00 + b21 * a10 + b22 * a20 + b23 * a30;\n dest[9] = b20 * a01 + b21 * a11 + b22 * a21 + b23 * a31;\n dest[10] = b20 * a02 + b21 * a12 + b22 * a22 + b23 * a32;\n dest[11] = b20 * a03 + b21 * a13 + b22 * a23 + b23 * a33;\n dest[12] = b30 * a00 + b31 * a10 + b32 * a20 + b33 * a30;\n dest[13] = b30 * a01 + b31 * a11 + b32 * a21 + b33 * a31;\n dest[14] = b30 * a02 + b31 * a12 + b32 * a22 + b33 * a32;\n dest[15] = b30 * a03 + b31 * a13 + b32 * a23 + b33 * a33;\n return dest;\n}\n\n/**\n * Multiplies the two given 3x3 matrices by each other.\n */\nexport function mulMat3(a: FloatArrayParam, b: FloatArrayParam, dest: FloatArrayParam = newFloatArray(9)) {\n\n const a11 = a[0];\n const a12 = a[3];\n const a13 = a[6];\n const a21 = a[1];\n const a22 = a[4];\n const a23 = a[7];\n const a31 = a[2];\n const a32 = a[5];\n const a33 = a[8];\n const b11 = b[0];\n const b12 = b[3];\n const b13 = b[6];\n const b21 = b[1];\n const b22 = b[4];\n const b23 = b[7];\n const b31 = b[2];\n const b32 = b[5];\n const b33 = b[8];\n\n dest[0] = a11 * b11 + a12 * b21 + a13 * b31;\n dest[3] = a11 * b12 + a12 * b22 + a13 * b32;\n dest[6] = a11 * b13 + a12 * b23 + a13 * b33;\n\n dest[1] = a21 * b11 + a22 * b21 + a23 * b31;\n dest[4] = a21 * b12 + a22 * b22 + a23 * b32;\n dest[7] = a21 * b13 + a22 * b23 + a23 * b33;\n\n dest[2] = a31 * b11 + a32 * b21 + a33 * b31;\n dest[5] = a31 * b12 + a32 * b22 + a33 * b32;\n dest[8] = a31 * b13 + a32 * b23 + a33 * b33;\n\n return dest;\n}\n\n/**\n * Transforms a three-element position by a 4x4 matrix.\n * @method transformPoint3\n * @static\n */\nexport function transformPoint3(m: FloatArrayParam, p: FloatArrayParam, dest?: FloatArrayParam) {\n if (!dest) {\n dest = p;\n }\n const x = p[0];\n const y = p[1];\n const z = p[2];\n dest[0] = (m[0] * x) + (m[4] * y) + (m[8] * z) + m[12];\n dest[1] = (m[1] * x) + (m[5] * y) + (m[9] * z) + m[13];\n dest[2] = (m[2] * x) + (m[6] * y) + (m[10] * z) + m[14];\n return dest;\n}\n\n/**\n * Transforms a homogeneous coordinate by a 4x4 matrix.\n * @method transformPoint3\n * @static\n */\nexport function transformPoint4(m: FloatArrayParam, v: FloatArrayParam, dest: FloatArrayParam) {\n dest[0] = m[0] * v[0] + m[4] * v[1] + m[8] * v[2] + m[12] * v[3];\n dest[1] = m[1] * v[0] + m[5] * v[1] + m[9] * v[2] + m[13] * v[3];\n dest[2] = m[2] * v[0] + m[6] * v[1] + m[10] * v[2] + m[14] * v[3];\n dest[3] = m[3] * v[0] + m[7] * v[1] + m[11] * v[2] + m[15] * v[3];\n return dest;\n}\n\n\n/**\n * Transforms an array of three-element positions by a 4x4 matrix.\n * @method transformPoints3\n * @static\n */\nexport function transformPoints3(m: FloatArrayParam, points: number[][], points2: number[][]) {\n const result = points2 || [];\n const len = points.length;\n let p0;\n let p1;\n let p2;\n let pi;\n\n // cache values\n const m0 = m[0];\n\n const m1 = m[1];\n const m2 = m[2];\n const m3 = m[3];\n const m4 = m[4];\n const m5 = m[5];\n const m6 = m[6];\n const m7 = m[7];\n const m8 = m[8];\n const m9 = m[9];\n const m10 = m[10];\n const m11 = m[11];\n const m12 = m[12];\n const m13 = m[13];\n const m14 = m[14];\n const m15 = m[15];\n\n let r;\n\n for (let i = 0; i < len; ++i) {\n\n // cache values\n pi = points[i];\n\n p0 = pi[0];\n p1 = pi[1];\n p2 = pi[2];\n\n r = result[i] || (result[i] = [0, 0, 0]);\n\n r[0] = (m0 * p0) + (m4 * p1) + (m8 * p2) + m12;\n r[1] = (m1 * p0) + (m5 * p1) + (m9 * p2) + m13;\n r[2] = (m2 * p0) + (m6 * p1) + (m10 * p2) + m14;\n r[3] = (m3 * p0) + (m7 * p1) + (m11 * p2) + m15;\n }\n\n result.length = len;\n\n return result;\n}\n\n/**\n * Transforms an array of positions by a 4x4 matrix.\n */\nexport function transformPositions3(m: FloatArrayParam, p: FloatArrayParam, p2?: FloatArrayParam) {\n if (!p2) {\n p2 = p;\n }\n let i;\n const len = p.length;\n\n let x;\n let y;\n let z;\n\n const m0 = m[0];\n const m1 = m[1];\n const m2 = m[2];\n const m3 = m[3];\n const m4 = m[4];\n const m5 = m[5];\n const m6 = m[6];\n const m7 = m[7];\n const m8 = m[8];\n const m9 = m[9];\n const m10 = m[10];\n const m11 = m[11];\n const m12 = m[12];\n const m13 = m[13];\n const m14 = m[14];\n const m15 = m[15];\n\n for (i = 0; i < len; i += 3) {\n\n x = p[i + 0];\n y = p[i + 1];\n z = p[i + 2];\n\n p2[i + 0] = (m0 * x) + (m4 * y) + (m8 * z) + m12;\n p2[i + 1] = (m1 * x) + (m5 * y) + (m9 * z) + m13;\n p2[i + 2] = (m2 * x) + (m6 * y) + (m10 * z) + m14;\n p2[i + 3] = (m3 * x) + (m7 * y) + (m11 * z) + m15;\n }\n\n return p2;\n}\n\n/**\n * Transforms an array of positions by a 4x4 matrix.\n */\nexport function transformPositions4(m: FloatArrayParam, p: FloatArrayParam, p2?: FloatArrayParam) {\n if (!p2) {\n p2 = p;\n }\n let i;\n const len = p.length;\n let x;\n let y;\n let z;\n const m0 = m[0];\n const m1 = m[1];\n const m2 = m[2];\n const m3 = m[3];\n const m4 = m[4];\n const m5 = m[5];\n const m6 = m[6];\n const m7 = m[7];\n const m8 = m[8];\n const m9 = m[9];\n const m10 = m[10];\n const m11 = m[11];\n const m12 = m[12];\n const m13 = m[13];\n const m14 = m[14];\n const m15 = m[15];\n for (i = 0; i < len; i += 4) {\n x = p[i + 0];\n y = p[i + 1];\n z = p[i + 2];\n p2[i + 0] = (m0 * x) + (m4 * y) + (m8 * z) + m12;\n p2[i + 1] = (m1 * x) + (m5 * y) + (m9 * z) + m13;\n p2[i + 2] = (m2 * x) + (m6 * y) + (m10 * z) + m14;\n p2[i + 3] = (m3 * x) + (m7 * y) + (m11 * z) + m15;\n }\n return p2;\n}\n\n/**\n * Transforms a three-element vector by a 4x4 matrix.\n */\nexport function transformVec3(m: FloatArrayParam, v: FloatArrayParam, dest?: FloatArrayParam) {\n const v0 = v[0];\n const v1 = v[1];\n const v2 = v[2];\n dest = dest || createVec3();\n dest[0] = (m[0] * v0) + (m[4] * v1) + (m[8] * v2);\n dest[1] = (m[1] * v0) + (m[5] * v1) + (m[9] * v2);\n dest[2] = (m[2] * v0) + (m[6] * v1) + (m[10] * v2);\n return dest;\n}\n\n/**\n * Transforms a four-element vector by a 4x4 matrix.\n * @method transformVec4\n * @static\n */\nexport function transformVec4(m: FloatArrayParam, v: FloatArrayParam, dest?: FloatArrayParam) {\n const v0 = v[0];\n const v1 = v[1];\n const v2 = v[2];\n const v3 = v[3];\n dest = dest || createVec4();\n dest[0] = m[0] * v0 + m[4] * v1 + m[8] * v2 + m[12] * v3;\n dest[1] = m[1] * v0 + m[5] * v1 + m[9] * v2 + m[13] * v3;\n dest[2] = m[2] * v0 + m[6] * v1 + m[10] * v2 + m[14] * v3;\n dest[3] = m[3] * v0 + m[7] * v1 + m[11] * v2 + m[15] * v3;\n return dest;\n}\n\n\n/**\n * Efficiently post-concatenates a scaling to the given matrix.\n */\nexport function scaleMat4v(xyz: FloatArrayParam, m: FloatArrayParam = identityMat4()) {\n const x = xyz[0];\n const y = xyz[1];\n const z = xyz[2];\n m[0] *= x;\n m[4] *= y;\n m[8] *= z;\n m[1] *= x;\n m[5] *= y;\n m[9] *= z;\n m[2] *= x;\n m[6] *= y;\n m[10] *= z;\n m[3] *= x;\n m[7] *= y;\n m[11] *= z;\n return m;\n}\n\n/**\n */\nexport function scalingMat4v(v: FloatArrayParam, m: FloatArrayParam = identityMat4()): FloatArrayParam {\n m[0] = v[0];\n m[5] = v[1];\n m[10] = v[2];\n return m;\n}\n\n/**\n * Returns a 3x3 scale matrix.\n */\nexport function scalingMat3v(v: FloatArrayParam, m: FloatArrayParam = identityMat3()): FloatArrayParam {\n m[0] = v[0];\n m[4] = v[1];\n return m;\n}\n\n/**\n * Returns a 4x4 scale matrix.\n */\nexport const scalingMat4c = ((() => {\n const xyz: FloatArrayParam = newFloatArray(3);\n return (x: number, y: number, z: number, dest?: FloatArrayParam) => {\n xyz[0] = x;\n xyz[1] = y;\n xyz[2] = z;\n return scalingMat4v(xyz, dest);\n };\n}))()\n\n/**\n * Efficiently post-concatenates a scaling to the given matrix.\n * @method scaleMat4c\n * @param x\n * @param y\n * @param z\n * @param m\n */\nexport function scaleMat4c(x: number, y: number, z: number, m: FloatArrayParam): FloatArrayParam {\n\n m[0] *= x;\n m[4] *= y;\n m[8] *= z;\n\n m[1] *= x;\n m[5] *= y;\n m[9] *= z;\n\n m[2] *= x;\n m[6] *= y;\n m[10] *= z;\n\n m[3] *= x;\n m[7] *= y;\n m[11] *= z;\n return m;\n}\n\n/**\n * Returns 4x4 scale matrix.\n */\nexport function scalingMat4s(s: number): FloatArrayParam {\n return scalingMat4c(s, s, s);\n}\n\n/**\n * Composes a 4x4 matrix from the given position, quaternion and scale.\n * @param position\n * @param quaternion\n * @param scale\n * @param mat\n */\nexport function composeMat4(\n position: FloatArrayParam,\n quaternion: FloatArrayParam,\n scale: FloatArrayParam,\n mat: FloatArrayParam = createMat4()): FloatArrayParam {\n quatToRotationMat4(quaternion, mat);\n scaleMat4v(scale, mat);\n translateMat4v(position, mat);\n return mat;\n}\n\n/**\n * Composes a 4x4 matrix from the given position, euler rotation angles and scale.\n * @param position\n * @param rotation\n * @param scale\n * @param mat\n */\nexport function composeMat4Euler(\n position: FloatArrayParam,\n rotation: FloatArrayParam,\n scale: FloatArrayParam,\n mat: FloatArrayParam = createMat4()): FloatArrayParam {\n quatToRotationMat4(eulerToQuat(rotation, \"XYZ\", identityQuat()), mat);\n scaleMat4v(scale, mat);\n translateMat4v(position, mat);\n return mat;\n}\n\n/**\n * Decomposes a 4x4 matrix into position, quaternion and scale.\n */\nexport const decomposeMat4 = (() => {\n const vec = createVec3();\n const matrix = createMat4();\n return function decompose(mat: FloatArrayParam, position: FloatArrayParam, quaternion: FloatArrayParam, scale: FloatArrayParam) {\n vec[0] = mat[0];\n vec[1] = mat[1];\n vec[2] = mat[2];\n let sx = lenVec3(vec);\n vec[0] = mat[4];\n vec[1] = mat[5];\n vec[2] = mat[6];\n const sy = lenVec3(vec);\n vec[8] = mat[8];\n vec[9] = mat[9];\n vec[10] = mat[10];\n const sz = lenVec3(vec);\n const det = determinantMat4(mat);\n if (det < 0) {\n sx = -sx;\n }\n position[0] = mat[12];\n position[1] = mat[13];\n position[2] = mat[14];\n // scale the rotation part\n // @ts-ignore\n matrix.set(mat);\n const invSX = 1 / sx;\n const invSY = 1 / sy;\n const invSZ = 1 / sz;\n matrix[0] *= invSX;\n matrix[1] *= invSX;\n matrix[2] *= invSX;\n matrix[4] *= invSY;\n matrix[5] *= invSY;\n matrix[6] *= invSY;\n matrix[8] *= invSZ;\n matrix[9] *= invSZ;\n matrix[10] *= invSZ;\n mat4ToQuat(matrix, quaternion);\n scale[0] = sx;\n scale[1] = sy;\n scale[2] = sz;\n\n };\n})();\n\n/**\n * Efficiently post-concatenates a translation to the given matrix.\n */\nexport function translateMat4v(xyz: FloatArrayParam, m: FloatArrayParam = identityMat4()) {\n return translateMat4c(xyz[0], xyz[1], xyz[2], m);\n}\n\n/**\n * Efficiently post-concatenates a translation, given as separate components, to the given matrix.\n */\nexport function translateMat4c(x: number, y: number, z: number, m: FloatArrayParam = identityMat4()) {\n const m3 = m[3];\n m[0] += m3 * x;\n m[1] += m3 * y;\n m[2] += m3 * z;\n const m7 = m[7];\n m[4] += m7 * x;\n m[5] += m7 * y;\n m[6] += m7 * z;\n const m11 = m[11];\n m[8] += m11 * x;\n m[9] += m11 * y;\n m[10] += m11 * z;\n const m15 = m[15];\n m[12] += m15 * x;\n m[13] += m15 * y;\n m[14] += m15 * z;\n return m;\n}\n\n/**\n * Creates a new matrix that replaces the translation in the rightmost column of the given\n * affine matrix with the given translation.\n */\nexport function setMat4Translation(m: FloatArrayParam, translation: FloatArrayParam, dest: FloatArrayParam): FloatArrayParam {\n\n dest[0] = m[0];\n dest[1] = m[1];\n dest[2] = m[2];\n dest[3] = m[3];\n\n dest[4] = m[4];\n dest[5] = m[5];\n dest[6] = m[6];\n dest[7] = m[7];\n\n dest[8] = m[8];\n dest[9] = m[9];\n dest[10] = m[10];\n dest[11] = m[11];\n\n dest[12] = translation[0];\n dest[13] = translation[1];\n dest[14] = translation[2];\n dest[15] = m[15];\n\n return dest;\n}\n\n/**\n * Returns 4x4 translation matrix.\n */\nexport function translationMat4v(v: FloatArrayParam, dest?: FloatArrayParam): FloatArrayParam {\n const m = dest || identityMat4();\n m[12] = v[0];\n m[13] = v[1];\n m[14] = v[2];\n return m;\n}\n\n/**\n * Returns 3x3 translation matrix.\n */\nexport function translationMat3v(v: FloatArrayParam, dest?: FloatArrayParam): FloatArrayParam {\n const m = dest || identityMat3();\n m[6] = v[0];\n m[7] = v[1];\n return m;\n}\n\n/**\n * Returns 4x4 translation matrix.\n */\nexport const translationMat4c = ((() => {\n const xyz = newFloatArray(3);\n return (x: number, y: number, z: number, dest: FloatArrayParam): FloatArrayParam => {\n xyz[0] = x;\n xyz[1] = y;\n xyz[2] = z;\n return translationMat4v(xyz, dest);\n };\n}))();\n\n/**\n * Returns 4x4 translation matrix.\n */\nexport function translationMat4s(s: number, dest: FloatArrayParam) {\n return translationMat4c(s, s, s, dest);\n}\n\n\n/**\n * Returns the determinant of the given 4x4 matrix.\n */\nexport function determinantMat4(mat: FloatArrayParam): number {\n const a00 = mat[0];\n const a01 = mat[1];\n const a02 = mat[2];\n const a03 = mat[3];\n const a10 = mat[4];\n const a11 = mat[5];\n const a12 = mat[6];\n const a13 = mat[7];\n const a20 = mat[8];\n const a21 = mat[9];\n const a22 = mat[10];\n const a23 = mat[11];\n const a30 = mat[12];\n const a31 = mat[13];\n const a32 = mat[14];\n const a33 = mat[15];\n return a30 * a21 * a12 * a03 - a20 * a31 * a12 * a03 - a30 * a11 * a22 * a03 + a10 * a31 * a22 * a03 +\n a20 * a11 * a32 * a03 - a10 * a21 * a32 * a03 - a30 * a21 * a02 * a13 + a20 * a31 * a02 * a13 +\n a30 * a01 * a22 * a13 - a00 * a31 * a22 * a13 - a20 * a01 * a32 * a13 + a00 * a21 * a32 * a13 +\n a30 * a11 * a02 * a23 - a10 * a31 * a02 * a23 - a30 * a01 * a12 * a23 + a00 * a31 * a12 * a23 +\n a10 * a01 * a32 * a23 - a00 * a11 * a32 * a23 - a20 * a11 * a02 * a33 + a10 * a21 * a02 * a33 +\n a20 * a01 * a12 * a33 - a00 * a21 * a12 * a33 - a10 * a01 * a22 * a33 + a00 * a11 * a22 * a33;\n}\n\n/**\n * Gets Euler angles from a 4x4 matrix.\n *\n * @param {mat The 4x4 matrix.\n * @param order Desired Euler angle order: \"XYZ\", \"YXZ\", \"ZXY\" etc.\n * @param [dest] Destination Euler angles, created by default.\n * @returns The Euler angles.\n */\nexport function mat4ToEuler(mat: FloatArrayParam, order: string, dest: FloatArrayParam = createVec3()) {\n // Assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n const m11 = mat[0];\n const m12 = mat[4];\n const m13 = mat[8];\n const m21 = mat[1];\n const m22 = mat[5];\n const m23 = mat[9];\n const m31 = mat[2];\n const m32 = mat[6];\n const m33 = mat[10];\n if (order === 'XYZ') {\n dest[1] = Math.asin(clamp(m13, -1, 1));\n if (Math.abs(m13) < 0.99999) {\n dest[0] = Math.atan2(-m23, m33);\n dest[2] = Math.atan2(-m12, m11);\n } else {\n dest[0] = Math.atan2(m32, m22);\n dest[2] = 0;\n }\n } else if (order === 'YXZ') {\n dest[0] = Math.asin(-clamp(m23, -1, 1));\n if (Math.abs(m23) < 0.99999) {\n dest[1] = Math.atan2(m13, m33);\n dest[2] = Math.atan2(m21, m22);\n } else {\n dest[1] = Math.atan2(-m31, m11);\n dest[2] = 0;\n }\n } else if (order === 'ZXY') {\n dest[0] = Math.asin(clamp(m32, -1, 1));\n if (Math.abs(m32) < 0.99999) {\n dest[1] = Math.atan2(-m31, m33);\n dest[2] = Math.atan2(-m12, m22);\n } else {\n dest[1] = 0;\n dest[2] = Math.atan2(m21, m11);\n }\n } else if (order === 'ZYX') {\n dest[1] = Math.asin(-clamp(m31, -1, 1));\n if (Math.abs(m31) < 0.99999) {\n dest[0] = Math.atan2(m32, m33);\n dest[2] = Math.atan2(m21, m11);\n } else {\n dest[0] = 0;\n dest[2] = Math.atan2(-m12, m22);\n }\n } else if (order === 'YZX') {\n dest[2] = Math.asin(clamp(m21, -1, 1));\n if (Math.abs(m21) < 0.99999) {\n dest[0] = Math.atan2(-m23, m22);\n dest[1] = Math.atan2(-m31, m11);\n } else {\n dest[0] = 0;\n dest[1] = Math.atan2(m13, m33);\n }\n } else if (order === 'XZY') {\n dest[2] = Math.asin(-clamp(m12, -1, 1));\n if (Math.abs(m12) < 0.99999) {\n dest[0] = Math.atan2(m32, m22);\n dest[1] = Math.atan2(m13, m11);\n } else {\n dest[0] = Math.atan2(-m23, m33);\n dest[1] = 0;\n }\n }\n return dest;\n}\n\n/**\n * Linearly interpolates between two 4x4 matrices.\n */\nexport function lerpMat4(t: number, t1: number, t2: number, m1: FloatArrayParam, m2: FloatArrayParam, dest?: FloatArrayParam) {\n const result = dest || createMat4();\n const f = (t - t1) / (t2 - t1);\n result[0] = m1[0] + (f * (m2[0] - m1[0]));\n result[1] = m1[1] + (f * (m2[1] - m1[1]));\n result[2] = m1[2] + (f * (m2[2] - m1[2]));\n result[3] = m1[3] + (f * (m2[3] - m1[3]));\n result[4] = m1[4] + (f * (m2[4] - m1[4]));\n result[5] = m1[5] + (f * (m2[5] - m1[5]));\n result[6] = m1[6] + (f * (m2[6] - m1[6]));\n result[7] = m1[7] + (f * (m2[7] - m1[7]));\n result[8] = m1[8] + (f * (m2[8] - m1[8]));\n result[9] = m1[9] + (f * (m2[9] - m1[9]));\n result[10] = m1[10] + (f * (m2[10] - m1[10]));\n result[11] = m1[11] + (f * (m2[11] - m1[11]));\n result[12] = m1[12] + (f * (m2[12] - m1[12]));\n result[13] = m1[13] + (f * (m2[13] - m1[13]));\n result[14] = m1[14] + (f * (m2[14] - m1[14]));\n result[15] = m1[15] + (f * (m2[15] - m1[15]));\n return result;\n}\n\n\n/**\n * Craetes an identity quaternion.\n * @param dest Optional quaternion to initialize\n * @returns New quaternion\n */\nexport function identityQuat(\n dest: FloatArrayParam = createVec4()\n): FloatArrayParam {\n dest[0] = 0.0;\n dest[1] = 0.0;\n dest[2] = 0.0;\n dest[3] = 1.0;\n return dest;\n}\n\n/**\n * Initializes a quaternion from Euler angles.\n *\n * @param euler The Euler angles.\n * @param order Euler angle order: \"XYZ\", \"YXZ\", \"ZXY\" etc.\n * @param [dest] Destination quaternion, created by default.\n * @returns The quaternion.\n */\nexport function eulerToQuat(\n euler: FloatArrayParam,\n order: string,\n dest: FloatArrayParam = createVec4()\n): FloatArrayParam {\n // http://www.mathworks.com/matlabcentral/fileexchange/20696-function-to-convert-between-dcm-euler-angles-quaternions-and-euler-vectors/content/SpinCalc.m\n\n const a = (euler[0] * DEGTORAD) / 2;\n const b = (euler[1] * DEGTORAD) / 2;\n const c = (euler[2] * DEGTORAD) / 2;\n\n const c1 = Math.cos(a);\n const c2 = Math.cos(b);\n const c3 = Math.cos(c);\n const s1 = Math.sin(a);\n const s2 = Math.sin(b);\n const s3 = Math.sin(c);\n\n if (order === \"XYZ\") {\n dest[0] = s1 * c2 * c3 + c1 * s2 * s3;\n dest[1] = c1 * s2 * c3 - s1 * c2 * s3;\n dest[2] = c1 * c2 * s3 + s1 * s2 * c3;\n dest[3] = c1 * c2 * c3 - s1 * s2 * s3;\n } else if (order === \"YXZ\") {\n dest[0] = s1 * c2 * c3 + c1 * s2 * s3;\n dest[1] = c1 * s2 * c3 - s1 * c2 * s3;\n dest[2] = c1 * c2 * s3 - s1 * s2 * c3;\n dest[3] = c1 * c2 * c3 + s1 * s2 * s3;\n } else if (order === \"ZXY\") {\n dest[0] = s1 * c2 * c3 - c1 * s2 * s3;\n dest[1] = c1 * s2 * c3 + s1 * c2 * s3;\n dest[2] = c1 * c2 * s3 + s1 * s2 * c3;\n dest[3] = c1 * c2 * c3 - s1 * s2 * s3;\n } else if (order === \"ZYX\") {\n dest[0] = s1 * c2 * c3 - c1 * s2 * s3;\n dest[1] = c1 * s2 * c3 + s1 * c2 * s3;\n dest[2] = c1 * c2 * s3 - s1 * s2 * c3;\n dest[3] = c1 * c2 * c3 + s1 * s2 * s3;\n } else if (order === \"YZX\") {\n dest[0] = s1 * c2 * c3 + c1 * s2 * s3;\n dest[1] = c1 * s2 * c3 + s1 * c2 * s3;\n dest[2] = c1 * c2 * s3 - s1 * s2 * c3;\n dest[3] = c1 * c2 * c3 - s1 * s2 * s3;\n } else if (order === \"XZY\") {\n dest[0] = s1 * c2 * c3 - c1 * s2 * s3;\n dest[1] = c1 * s2 * c3 - s1 * c2 * s3;\n dest[2] = c1 * c2 * s3 + s1 * s2 * c3;\n dest[3] = c1 * c2 * c3 + s1 * s2 * s3;\n }\n\n return dest;\n}\n\n/**\n * Encodes rotation from a matrix into a quaternion.\n * @param m The matrix\n * @param dest The quaternion\n */\nexport function mat4ToQuat(\n m: FloatArrayParam,\n dest: FloatArrayParam = createVec4()\n): FloatArrayParam {\n // http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm\n\n // Assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n const m11 = m[0];\n const m12 = m[4];\n const m13 = m[8];\n const m21 = m[1];\n const m22 = m[5];\n const m23 = m[9];\n const m31 = m[2];\n const m32 = m[6];\n const m33 = m[10];\n let s;\n\n const trace = m11 + m22 + m33;\n\n if (trace > 0) {\n s = 0.5 / Math.sqrt(trace + 1.0);\n\n dest[3] = 0.25 / s;\n dest[0] = (m32 - m23) * s;\n dest[1] = (m13 - m31) * s;\n dest[2] = (m21 - m12) * s;\n } else if (m11 > m22 && m11 > m33) {\n s = 2.0 * Math.sqrt(1.0 + m11 - m22 - m33);\n\n dest[3] = (m32 - m23) / s;\n dest[0] = 0.25 * s;\n dest[1] = (m12 + m21) / s;\n dest[2] = (m13 + m31) / s;\n } else if (m22 > m33) {\n s = 2.0 * Math.sqrt(1.0 + m22 - m11 - m33);\n\n dest[3] = (m13 - m31) / s;\n dest[0] = (m12 + m21) / s;\n dest[1] = 0.25 * s;\n dest[2] = (m23 + m32) / s;\n } else {\n s = 2.0 * Math.sqrt(1.0 + m33 - m11 - m22);\n\n dest[3] = (m21 - m12) / s;\n dest[0] = (m13 + m31) / s;\n dest[1] = (m23 + m32) / s;\n dest[2] = 0.25 * s;\n }\n\n return dest;\n}\n\n/**\n *\n * @param u\n * @param v\n * @param dest\n */\nexport function vec3PairToQuat(\n u: FloatArrayParam,\n v: FloatArrayParam,\n dest: FloatArrayParam = createVec4()\n): FloatArrayParam {\n const norm_u_norm_v = Math.sqrt(dotVec3(u, u) * dotVec3(v, v));\n let real_part = norm_u_norm_v + dotVec3(u, v);\n\n if (real_part < 0.00000001 * norm_u_norm_v) {\n // If u and v are exactly opposite, rotate 180 degrees\n // around an arbitrary orthogonal axis. Axis normalisation\n // can happen later, when we normalise the quaternion.\n\n real_part = 0.0;\n\n if (Math.abs(u[0]) > Math.abs(u[2])) {\n dest[0] = -u[1];\n dest[1] = u[0];\n dest[2] = 0;\n } else {\n dest[0] = 0;\n dest[1] = -u[2];\n dest[2] = u[1];\n }\n } else {\n // Otherwise, build quaternion the standard way.\n cross3Vec3(u, v, dest);\n }\n\n dest[3] = real_part;\n\n return normalizeQuat(dest);\n}\n\n/**\n * Converts an angle-axis rotation representation into a quaternion\n * @param angleAxis\n * @param dest\n */\nexport function angleAxisToQuaternion(\n angleAxis: FloatArrayParam,\n dest: FloatArrayParam = createVec4()\n): FloatArrayParam {\n const halfAngle = angleAxis[3] / 2.0;\n const fsin = Math.sin(halfAngle);\n dest[0] = fsin * angleAxis[0];\n dest[1] = fsin * angleAxis[1];\n dest[2] = fsin * angleAxis[2];\n dest[3] = Math.cos(halfAngle);\n return dest;\n}\n\n/**\n * Converts a quaternion to Euler angles\n * @param q\n * @param order\n * @param dest\n */\nexport function quatToEuler(\n q: FloatArrayParam,\n order: string,\n dest: FloatArrayParam = createVec3()\n) {\n quatToRotationMat4(q, tempMat4a);\n mat4ToEuler(tempMat4a, order, dest);\n return dest;\n}\n\n/**\n * Multiples a pair of quaternions\n * @param p\n * @param q\n * @param dest\n */\nexport function mulQuats(\n p: FloatArrayParam,\n q: FloatArrayParam,\n dest: FloatArrayParam = createVec4()\n): FloatArrayParam {\n const p0 = p[0];\n const p1 = p[1];\n const p2 = p[2];\n const p3 = p[3];\n const q0 = q[0];\n const q1 = q[1];\n const q2 = q[2];\n const q3 = q[3];\n dest[0] = p3 * q0 + p0 * q3 + p1 * q2 - p2 * q1;\n dest[1] = p3 * q1 + p1 * q3 + p2 * q0 - p0 * q2;\n dest[2] = p3 * q2 + p2 * q3 + p0 * q1 - p1 * q0;\n dest[3] = p3 * q3 - p0 * q0 - p1 * q1 - p2 * q2;\n return dest;\n}\n\n/**\n *\n * @param q\n * @param vec\n * @param dest\n */\nexport function vec3ApplyQuat(\n q: FloatArrayParam,\n vec: FloatArrayParam,\n dest: FloatArrayParam = createVec3()\n): FloatArrayParam {\n const x = vec[0];\n const y = vec[1];\n const z = vec[2];\n\n const qx = q[0];\n const qy = q[1];\n const qz = q[2];\n const qw = q[3];\n\n // calculate quat * vector\n\n const ix = qw * x + qy * z - qz * y;\n const iy = qw * y + qz * x - qx * z;\n const iz = qw * z + qx * y - qy * x;\n const iw = -qx * x - qy * y - qz * z;\n\n // calculate result * inverse quat\n\n dest[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy;\n dest[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz;\n dest[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx;\n\n return dest;\n}\n\n/**\n * Converts a quaternion into a matrix.\n * @param q\n * @param dest\n */\nexport function quatToMat4(\n q: FloatArrayParam,\n dest?: FloatArrayParam\n): FloatArrayParam {\n dest = identityMat4(dest);\n\n const q0 = q[0]; //x\n const q1 = q[1]; //y\n const q2 = q[2]; //z\n const q3 = q[3]; //w\n\n const tx = 2.0 * q0;\n const ty = 2.0 * q1;\n const tz = 2.0 * q2;\n\n const twx = tx * q3;\n const twy = ty * q3;\n const twz = tz * q3;\n\n const txx = tx * q0;\n const txy = ty * q0;\n const txz = tz * q0;\n\n const tyy = ty * q1;\n const tyz = tz * q1;\n const tzz = tz * q2;\n\n dest[0] = 1.0 - (tyy + tzz);\n dest[1] = txy + twz;\n dest[2] = txz - twy;\n\n dest[4] = txy - twz;\n dest[5] = 1.0 - (txx + tzz);\n dest[6] = tyz + twx;\n\n dest[8] = txz + twy;\n dest[9] = tyz - twx;\n\n dest[10] = 1.0 - (txx + tyy);\n\n return dest;\n}\n\n/**\n * Converts a quaternion into a rotation matrix.\n * @param q\n * @param m\n */\nexport function quatToRotationMat4(\n q: FloatArrayParam,\n m: FloatArrayParam\n): FloatArrayParam {\n const x = q[0];\n const y = q[1];\n const z = q[2];\n const w = q[3];\n\n const x2 = x + x;\n const y2 = y + y;\n const z2 = z + z;\n const xx = x * x2;\n const xy = x * y2;\n const xz = x * z2;\n const yy = y * y2;\n const yz = y * z2;\n const zz = z * z2;\n const wx = w * x2;\n const wy = w * y2;\n const wz = w * z2;\n\n m[0] = 1 - (yy + zz);\n m[4] = xy - wz;\n m[8] = xz + wy;\n\n m[1] = xy + wz;\n m[5] = 1 - (xx + zz);\n m[9] = yz - wx;\n\n m[2] = xz - wy;\n m[6] = yz + wx;\n m[10] = 1 - (xx + yy);\n\n // last column\n m[3] = 0;\n m[7] = 0;\n m[11] = 0;\n\n // bottom row\n m[12] = 0;\n m[13] = 0;\n m[14] = 0;\n m[15] = 1;\n\n return m;\n}\n\n/**\n * Normalizes a quaternion\n * @param q\n * @param dest\n * @returns The normalized quaternion\n */\nexport function normalizeQuat(\n q: FloatArrayParam,\n dest: FloatArrayParam = q\n): FloatArrayParam {\n const len = lenVec4([q[0], q[1], q[2], q[3]]);\n dest[0] = q[0] / len;\n dest[1] = q[1] / len;\n dest[2] = q[2] / len;\n dest[3] = q[3] / len;\n return dest;\n}\n\n/**\n * Gets the conjugate of a quaternion.\n * @param q\n * @param dest\n * @returns The conjugate of the quaternion\n */\nexport function conjugateQuat(\n q: FloatArrayParam,\n dest: FloatArrayParam = q\n) {\n dest[0] = -q[0];\n dest[1] = -q[1];\n dest[2] = -q[2];\n dest[3] = q[3];\n return dest;\n}\n\n/**\n * Gets the inverse of a quaternion.\n * @param q\n * @param dest\n * @returns The inverse quaternion\n */\nexport function inverseQuat(q: FloatArrayParam, dest: FloatArrayParam) {\n return normalizeQuat(conjugateQuat(q, dest));\n}\n\n/**\n * Converts a quaternion to angle-axis representation.\n * @param q\n * @param angleAxis\n * @returns The angle-axis rotation\n */\nexport function quatToAngleAxis(\n q: FloatArrayParam,\n angleAxis: FloatArrayParam = createVec4()\n) {\n q = normalizeQuat(q, tempVec4a);\n const q3 = q[3];\n const angle = 2 * Math.acos(q3);\n const s = Math.sqrt(1 - q3 * q3);\n if (s < 0.001) {\n // test to avoid divide by zero, s is always positive due to sqrt\n angleAxis[0] = q[0];\n angleAxis[1] = q[1];\n angleAxis[2] = q[2];\n } else {\n angleAxis[0] = q[0] / s;\n angleAxis[1] = q[1] / s;\n angleAxis[2] = q[2] / s;\n }\n angleAxis[3] = angle; // * 57.295779579;\n return angleAxis;\n}\n\n\n/**\n * Finds the intersection of a 3D ray with a 3D triangle.\n */\nexport function rayTriangleIntersect(origin: FloatArrayParam, dir: FloatArrayParam, a: FloatArrayParam, b: FloatArrayParam, c: FloatArrayParam, isect: FloatArrayParam): FloatArrayParam | null {\n isect = isect || createVec3();\n const EPSILON = 0.000001;\n const edge1 = subVec3(b, a, tempVec3);\n const edge2 = subVec3(c, a, tempVec3b);\n const pvec = cross3Vec3(dir, edge2, tempVec3c);\n const det = dotVec3(edge1, pvec);\n if (det < EPSILON) {\n return null;\n }\n const tvec = subVec3(origin, a, tempVec3d);\n const u = dotVec3(tvec, pvec);\n if (u < 0 || u > det) {\n return null;\n }\n const qvec = cross3Vec3(tvec, edge1, tempVec3e);\n const v = dotVec3(dir, qvec);\n if (v < 0 || u + v > det) {\n return null;\n }\n const t = dotVec3(edge2, qvec) / det;\n isect[0] = origin[0] + t * dir[0];\n isect[1] = origin[1] + t * dir[1];\n isect[2] = origin[2] + t * dir[2];\n return isect;\n}\n\n/**\n Transforms a ray by a matrix.\n @param matrix 4x4 matrix\n @param rayOrigin The ray origin\n @param rayDir The ray direction\n @param rayOriginDest The transformed ray origin\n @param rayDirDest The transformed ray direction\n */\nexport function transformRay(matrix: FloatArrayParam, rayOrigin: FloatArrayParam, rayDir: FloatArrayParam, rayOriginDest: FloatArrayParam, rayDirDest: FloatArrayParam) {\n tempVec4a[0] = rayOrigin[0];\n tempVec4a[1] = rayOrigin[1];\n tempVec4a[2] = rayOrigin[2];\n tempVec4a[3] = 1;\n transformVec4(matrix, tempVec4a, tempVec4b);\n rayOriginDest[0] = tempVec4b[0];\n rayOriginDest[1] = tempVec4b[1];\n rayOriginDest[2] = tempVec4b[2];\n tempVec4a[0] = rayDir[0];\n tempVec4a[1] = rayDir[1];\n tempVec4a[2] = rayDir[2];\n transformVec3(matrix, tempVec4a, tempVec4b);\n normalizeVec3(tempVec4b);\n rayDirDest[0] = tempVec4b[0];\n rayDirDest[1] = tempVec4b[1];\n rayDirDest[2] = tempVec4b[2];\n}\n\n/**\n Transforms a Canvas-space position into a World-space ray, in the context of a Camera.\n @method canvasPosToWorldRay\n @static\n @param {Number[]} viewMatrix View matrix\n @param {Number[]} projMatrix Projection matrix\n @param {String} projection Projection type (e.g. \"ortho\")\n @param {Number[]} canvasPos The Canvas-space position.\n @param {Number[]} worldRayOrigin The World-space ray origin.\n @param {Number[]} worldRayDir The World-space ray direction.\n */\nexport const canvasPosToWorldRay = ((() => {\n\n const pvMatInv = new Float64Array(16);\n const vec4Near = new Float64Array(4);\n const vec4Far = new Float64Array(4);\n\n const clipToWorld = (clipX, clipY, clipZ, isOrtho, outVec4) => {\n outVec4[0] = clipX;\n outVec4[1] = clipY;\n outVec4[2] = clipZ;\n outVec4[3] = 1;\n\n transformVec4(pvMatInv, outVec4, outVec4);\n if (!isOrtho)\n mulVec4Scalar(outVec4, 1 / outVec4[3]);\n };\n\n return (canvas, viewMatrix, projMatrix, projection, canvasPos, worldRayOrigin, worldRayDir) => {\n const isOrtho = projection === \"ortho\";\n\n mulMat4(projMatrix, viewMatrix, pvMatInv);\n inverseMat4(pvMatInv, pvMatInv);\n\n // Calculate clip space coordinates, which will be in range\n // of x=[-1..1] and y=[-1..1], with y=(+1) at top\n\n const clipX = 2 * canvasPos[0] / canvas.width - 1; // Calculate clip space coordinates\n const clipY = 1 - 2 * canvasPos[1] / canvas.height;\n\n clipToWorld(clipX, clipY, -1, isOrtho, vec4Near);\n\n clipToWorld(clipX, clipY, 1, isOrtho, vec4Far);\n\n worldRayOrigin[0] = vec4Near[0];\n worldRayOrigin[1] = vec4Near[1];\n worldRayOrigin[2] = vec4Near[2];\n\n subVec3(vec4Far, vec4Near, worldRayDir);\n\n normalizeVec3(worldRayDir);\n };\n}))();\n", "/**\n * ## xeokit SDK Core Utilities Library\n *\n * ## Installation\n *\n * ````bash\n * npm install @xeokit/utils\n * ````\n *\n * @module @xeokit/utils\n */\n\nexport * from \"./Map\";\nexport * from \"./Queue\";\nexport * from \"./Loader\";\nexport * from \"./LoadingManager\";\nexport * from \"./WorkerPool\";\nexport * from \"./Cache\";\nexport * from \"./FileLoader\";\n\n/**\n *\n * @param ob\n */\nexport function clone(ob: any) {\n return JSON.parse(JSON.stringify(ob));\n}\n\nconst guidChars = [[\"0\", 10], [\"A\", 26], [\"a\", 26], [\"_\", 1], [\"$\", 1]].map(function (a) {\n const li :any[]= [];\n // @ts-ignore\n const st = a[0].charCodeAt(0);\n const en = st + a[1];\n for (let i = st; i < en; ++i) {\n li.push(i);\n }\n return String.fromCharCode.apply(null, li);\n}).join(\"\");\n\n/**\n *\n * @param v\n * @param len\n */\nexport function b64(v: number, len: number) {\n const r = (!len || len === 4) ? [0, 6, 12, 18] : [0, 6];\n return r.map(function (i) {\n return guidChars.substr(parseInt(String(v / (1 << i))) % 64, 1)\n }\n ).reverse().join(\"\");\n}\n\n/**\n *\n * @param g\n */\nexport function compressGuid(g: string) {\n const bs = [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30].map(function (i) {\n return parseInt(g.substr(i, 2), 16);\n });\n return b64(bs[0], 2) + [1, 4, 7, 10, 13].map(function (i) {\n return b64((bs[i] << 16) + (bs[i + 1] << 8) + bs[i + 2], 4);\n }).join(\"\");\n}\n\n/**\n *\n * @param m\n * @param t\n */\nexport function findNodeOfType(m: any, t: any) {\n const li: any[] = [];\n const _ = function (n: { type: any; children: any; }) {\n if (n.type === t) li.push(n);\n (n.children || []).forEach(function (c: { type: any; children: any; }) {\n _(c);\n });\n };\n _(m);\n return li;\n}\n\n/**\n */\nexport function timeout(dt: number) {\n return new Promise(function (resolve, reject) {\n setTimeout(resolve, dt);\n });\n}\n\nexport function httpRequest(args: { method: string; url: string; }) {\n return new Promise(function (resolve, reject) {\n const xhr = new XMLHttpRequest();\n xhr.open(args.method || \"GET\", args.url, true);\n xhr.onload = function (e) {\n console.log(args.url, xhr.readyState, xhr.status);\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n resolve(xhr.responseXML);\n } else {\n reject(xhr.statusText);\n }\n }\n };\n xhr.send(null);\n });\n}\n//\n// export const queryString = function () {\n// // This function is anonymous, is executed immediately and\n// // the return value is assigned to QueryString!\n// const query_string = {};\n// const query = window.location.search.substring(1);\n// const vars = query.split(\"&\");\n// for (let i = 0; i < vars.length; i++) {\n// const pair = vars[i].split(\"=\");\n// // If first entry with this name\n// // @ts-ignore\n// if (typeof query_string[pair[0]] === \"undefined\") {\n// // @ts-ignore\n// query_string[pair[0]] = decodeURIComponent(pair[1]);\n// // If second entry with this name\n// } else { // @ts-ignore\n// if (typeof query_string[pair[0]] === \"string\") {\n// // @ts-ignore\n// query_string[pair[0]] = [query_string[pair[0]], decodeURIComponent(pair[1])];\n// // If third or later entry with this name\n// } else {\n// // @ts-ignore\n// query_string[pair[0]].push(decodeURIComponent(pair[1]));\n// }\n// }\n// }\n// return query_string;\n// }();\n\nexport function loadJSON(url: string,\n ok: {\n (arg0: any): void;\n (_value: any): any;\n },\n err: {\n (arg0: string | ProgressEvent): void;\n (_value: any): any;\n }) {\n // Avoid checking ok and err on each use.\n // @ts-ignore\n const defaultCallback = (_value) => undefined;\n ok = ok || defaultCallback;\n err = err || defaultCallback;\n\n const request = new XMLHttpRequest();\n request.overrideMimeType(\"application/json\");\n request.open('GET', url, true);\n request.addEventListener('load', function (event) {\n // @ts-ignore\n const response = event.target.response;\n if (this.status === 200) {\n let json;\n try {\n json = JSON.parse(response);\n } catch (e) {\n err(`utils.loadJSON(): Failed to parse JSON response - ${e}`);\n }\n ok(json);\n } else if (this.status === 0) {\n // Some browsers return HTTP Status 0 when using non-http protocol\n // e.g. 'file://' or 'data://'. Handle as success.\n console.warn('loadFile: HTTP Status 0 received.');\n try {\n ok(JSON.parse(response));\n } catch (e) {\n err(`utils.loadJSON(): Failed to parse JSON response - ${e}`);\n }\n } else {\n err(event);\n }\n }, false);\n\n request.addEventListener('error', function (event) {\n err(event);\n }, false);\n request.send(null);\n}\n\nexport function loadArraybuffer(url: string, ok: { (arg0: ArrayBuffer): void; (_value: any): any; }, err: { (arg0: string): void; (_value: any): any; }) {\n // Check for data: URI\n // @ts-ignore\n const defaultCallback = (_value) => undefined;\n ok = ok || defaultCallback;\n err = err || defaultCallback;\n const dataUriRegex = /^data:(.*?)(;base64)?,(.*)$/;\n const dataUriRegexResult = url.match(dataUriRegex);\n if (dataUriRegexResult) { // Safari can't handle data URIs through XMLHttpRequest\n const isBase64 = !!dataUriRegexResult[2];\n let data = dataUriRegexResult[3];\n data = window.decodeURIComponent(data);\n if (isBase64) {\n data = window.atob(data);\n }\n try {\n const buffer = new ArrayBuffer(data.length);\n const view = new Uint8Array(buffer);\n for (let i = 0; i < data.length; i++) {\n view[i] = data.charCodeAt(i);\n }\n window.setTimeout(function () {\n ok(buffer);\n }, 0);\n } catch (error) {\n window.setTimeout(function () {\n err(error);\n }, 0);\n }\n } else {\n const request = new XMLHttpRequest();\n request.open('GET', url, true);\n request.responseType = 'arraybuffer';\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n ok(request.response);\n } else {\n err('loadArrayBuffer error : ' + request.response);\n }\n }\n };\n request.send(null);\n }\n}\n\n/** Downloads an ArrayBuffer to a file.\n *\n * @param arrayBuffer\n * @param filename\n */\nexport function saveArrayBuffer(arrayBuffer: ArrayBuffer, filename: string) {\n const blob = new Blob([arrayBuffer], {type: \"application/octet-stream\"});\n const link = document.createElement('a');\n link.download = filename;\n link.href = window.URL.createObjectURL(blob);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n}\n\n/** Downloads JSON to a file.\n *\n * @param arrayBuffer\n * @param filename\n */\nexport function saveJSON(data:any, filename: string) {\n const blob = new Blob([JSON.stringify(data, null, 2)], { type: 'application/json' });\n const link = document.createElement('a');\n link.download = filename;\n link.href = window.URL.createObjectURL(blob);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n}\n\n/**\n Tests if the given object is an array\n */\nexport function isArray(value: any) {\n return value && !(value.propertyIsEnumerable('length')) && typeof value === 'object' && typeof value.length === 'number';\n}\n\n/**\n Tests if the given value is a string\n */\nexport function isString(value: any) {\n return (typeof value === 'string' || value instanceof String);\n}\n\n/**\n Tests if the given value is a number\n */\nexport function isNumeric(value: any) {\n return !isNaN(parseFloat(value)) && isFinite(value);\n}\n\n/**\n Tests if the given value is an ID\n */\nexport function isID(value: any) {\n return isString(value) || isNumeric(value);\n}\n\n/**\n Tests if the given value is a function\n */\nexport function isFunction(value: any) {\n return (typeof value === \"function\");\n}\n\n/**\n Tests if the given value is a JavaScript JSON object, eg, ````{ foo: \"bar\" }````.\n */\nexport function isObject(value: { constructor: Function; }) {\n const objectConstructor = {}.constructor;\n return (!!value && value.constructor === objectConstructor);\n}\n\n/** Returns a shallow copy\n */\nexport function copy(o: any) {\n return apply(o, {});\n}\n\n/** Add properties of o to o2, overwriting them on o2 if already there\n */\nexport function apply(o: any, o2: any) {\n for (const name in o) {\n if (o.hasOwnProperty(name)) {\n o2[name] = o[name];\n }\n }\n return o2;\n}\n\n/**\n Add non-null/defined properties of o to o2\n */\nexport function apply2(o: any, o2: any) {\n for (const name in o) {\n if (o.hasOwnProperty(name)) {\n if (o[name] !== undefined && o[name] !== null) {\n o2[name] = o[name];\n }\n }\n }\n return o2;\n}\n\n/**\n Add properties of o to o2 where undefined or null on o2\n */\nexport function applyIf(o: any, o2: any) {\n for (const name in o) {\n if (o.hasOwnProperty(name)) {\n if (o2[name] === undefined || o2[name] === null) {\n o2[name] = o[name];\n }\n }\n }\n return o2;\n}\n\n/**\n Returns true if the given map is empty.\n */\nexport function isEmptyObject(obj: any) {\n for (const name in obj) {\n if (obj.hasOwnProperty(name)) {\n return false;\n }\n }\n return true;\n}\n\n/**\n Returns the given ID as a string, in quotes if the ID was a string to begin with.\n This is useful for logging IDs.\n */\nexport function inQuotes(id: any) {\n return isNumeric(id) ? (`${id}`) : (`'${id}'`);\n}\n\n/**\n Returns the concatenation of two typed arrays.\n */\nexport function concat(a: any, b: any) {\n const c = new a.constructor(a.length + b.length);\n c.set(a);\n c.set(b, a.length);\n return c;\n}\n\n/**\n * Returns a new UUID.\n */\nexport const createUUID = ((() => {\n const lut: any[] = [];\n for (let i = 0; i < 256; i++) {\n lut[i] = (i < 16 ? '0' : '') + (i).toString(16);\n }\n return () => {\n const d0 = Math.random() * 0xffffffff | 0;\n const d1 = Math.random() * 0xffffffff | 0;\n const d2 = Math.random() * 0xffffffff | 0;\n const d3 = Math.random() * 0xffffffff | 0;\n return `${lut[d0 & 0xff] + lut[d0 >> 8 & 0xff] + lut[d0 >> 16 & 0xff] + lut[d0 >> 24 & 0xff]}-${lut[d1 & 0xff]}${lut[d1 >> 8 & 0xff]}-${lut[d1 >> 16 & 0x0f | 0x40]}${lut[d1 >> 24 & 0xff]}-${lut[d2 & 0x3f | 0x80]}${lut[d2 >> 8 & 0xff]}-${lut[d2 >> 16 & 0xff]}${lut[d2 >> 24 & 0xff]}${lut[d3 & 0xff]}${lut[d3 >> 8 & 0xff]}${lut[d3 >> 16 & 0xff]}${lut[d3 >> 24 & 0xff]}`;\n };\n}))();\n", "/** @private */\nexport class Map {\n readonly items: any[];\n #lastUniqueId: number;\n\n constructor(items: any, baseId?: any) {\n this.items = items || [];\n this.#lastUniqueId = (baseId || 0) + 1;\n }\n\n /**\n * Usage:\n *\n * id = myMap.addItem(\"foo\") // ID internally generated\n * id = myMap.addItem(\"foo\", \"bar\") // ID is \"foo\"\n */\n addItem() {\n let item;\n if (arguments.length === 2) {\n const id = arguments[0];\n item = arguments[1];\n if (this.items[id]) { // Won't happen if given ID is string\n throw \"ID clash: '\" + id + \"'\";\n }\n this.items[id] = item;\n return id;\n\n } else {\n item = arguments[0] || {};\n while (true) {\n const findId = this.#lastUniqueId++;\n if (!this.items[findId]) {\n this.items[findId] = item;\n return findId;\n }\n }\n }\n }\n\n removeItem(id: any) {\n const item = this.items[id];\n delete this.items[id];\n return item;\n }\n}\n", "export class Queue {\n private _head: any[];\n private _headLength: number;\n private _tail: any[];\n private _index: number;\n private _length: number;\n\n constructor() {\n\n this._head = [];\n this._headLength = 0;\n this._tail = [];\n this._index = 0;\n this._length = 0;\n }\n\n get length() {\n return this._length;\n }\n\n shift() {\n if (this._index >= this._headLength) {\n const t = this._head;\n t.length = 0;\n this._head = this._tail;\n this._tail = t;\n this._index = 0;\n this._headLength = this._head.length;\n if (!this._headLength) {\n return;\n }\n }\n const value = this._head[this._index];\n if (this._index < 0) {\n delete this._head[this._index++];\n }\n else {\n this._head[this._index++] = undefined;\n }\n this._length--;\n return value;\n }\n\n push(item: any) {\n this._length++;\n this._tail.push(item);\n return this;\n };\n\n unshift(item: any) {\n this._head[--this._index] = item;\n this._length++;\n return this;\n }\n\n clear() {\n this._head = [];\n this._headLength = 0;\n this._tail = [];\n this._index = 0;\n this._length = 0;\n }\n}\n", "class LoadingManager {\n private isLoading: boolean;\n private itemsLoaded: number;\n private itemsTotal: number;\n private urlModifier: undefined;\n private handlers: any[];\n private onStart: Function|undefined;\n private onLoad: Function;\n private onProgress: Function;\n private onError: Function;\n\n constructor(onLoad: Function, onProgress: Function, onError: Function) {\n\n this.isLoading = false;\n this.itemsLoaded = 0;\n this.itemsTotal = 0;\n this.urlModifier = undefined;\n this.handlers = [];\n\n this.onStart = undefined;\n this.onLoad = onLoad;\n this.onProgress = onProgress;\n this.onError = onError;\n }\n\n itemStart(url: any) {\n this.itemsTotal++;\n if (!this.isLoading) {\n if (this.onStart !== undefined) {\n this.onStart(url, this.itemsLoaded, this.itemsTotal);\n }\n }\n this.isLoading = true;\n }\n\n itemEnd(url: any) {\n this.itemsLoaded++;\n if (this.onProgress !== undefined) {\n this.onProgress(url, this.itemsLoaded, this.itemsTotal);\n }\n if (this.itemsLoaded === this.itemsTotal) {\n this.isLoading = false;\n if (this.onLoad !== undefined) {\n this.onLoad();\n }\n }\n }\n\n itemError(url: any) {\n if (this.onError !== undefined) {\n this.onError(url);\n }\n }\n\n resolveURL(url: any) {\n if (this.urlModifier) {\n // @ts-ignore\n return this.urlModifier(url);\n }\n return url;\n }\n\n setURLModifier(transform: any) {\n this.urlModifier = transform;\n return this;\n }\n\n addHandler(regex: any, loader: any) {\n this.handlers.push(regex, loader);\n return this;\n }\n\n removeHandler(regex: any) {\n const index = this.handlers.indexOf(regex);\n if (index !== -1) {\n this.handlers.splice(index, 2);\n }\n return this;\n }\n\n getHandler(file: any) {\n for (let i = 0, l = this.handlers.length; i < l; i += 2) {\n const regex = this.handlers[i];\n const loader = this.handlers[i + 1];\n if (regex.global) regex.lastIndex = 0; // see #17920\n if (regex.test(file)) {\n return loader;\n }\n }\n return null;\n }\n}\n\n// @ts-ignore\nconst DefaultLoadingManager = new LoadingManager();\n\nexport {DefaultLoadingManager, LoadingManager};\n", "import {DefaultLoadingManager, LoadingManager} from './LoadingManager';\n\nclass Loader {\n manager: LoadingManager;\n crossOrigin: string;\n withCredentials: boolean;\n path: string;\n resourcePath: string;\n requestHeader: {};\n\n constructor(manager: LoadingManager | undefined) {\n\n this.manager = (manager !== undefined) ? manager : DefaultLoadingManager;\n\n this.crossOrigin = 'anonymous';\n this.withCredentials = false;\n this.path = '';\n this.resourcePath = '';\n this.requestHeader = {};\n }\n\n load(url: string, onLoad: Function, onProgress: Function, onError: Function) {\n }\n\n loadAsync(url: string, onProgress: Function) {\n const scope = this;\n return new Promise(function (resolve, reject) {\n // @ts-ignore\n scope.load(url, resolve, onProgress, reject);\n });\n }\n\n parse( /* data */) {\n }\n\n setCrossOrigin(crossOrigin: string) {\n this.crossOrigin = crossOrigin;\n return this;\n }\n\n setWithCredentials(value: boolean) {\n this.withCredentials = value;\n return this;\n }\n\n setPath(path: string) {\n this.path = path;\n return this;\n }\n\n setResourcePath(resourcePath: string) {\n this.resourcePath = resourcePath;\n return this;\n }\n\n setRequestHeader(requestHeader: {}) {\n this.requestHeader = requestHeader;\n return this;\n }\n}\n\nexport {Loader};\n", "/**\n * @author Deepkolos / https://github.com/deepkolos\n */\nexport class WorkerPool {\n private pool: number;\n private queue: any[];\n private workers: any[];\n private workersResolve: any[];\n private workerStatus: number;\n private workerCreator: any;\n\n constructor(pool = 4) {\n this.pool = pool;\n this.queue = [];\n this.workers = [];\n this.workersResolve = [];\n this.workerStatus = 0;\n }\n\n _initWorker(workerId: number) {\n if (!this.workers[workerId]) {\n const worker = this.workerCreator();\n worker.addEventListener('message', this._onMessage.bind(this, workerId));\n this.workers[workerId] = worker;\n }\n }\n\n _getIdleWorker() {\n for (let i = 0; i < this.pool; i++)\n if (!(this.workerStatus & (1 << i))) return i;\n return -1;\n }\n\n _onMessage(workerId: number, msg: string) {\n const resolve = this.workersResolve[workerId];\n resolve && resolve(msg);\n if (this.queue.length) {\n const {resolve, msg, transfer} = this.queue.shift();\n this.workersResolve[workerId] = resolve;\n this.workers[workerId].postMessage(msg, transfer);\n } else {\n this.workerStatus ^= 1 << workerId;\n }\n }\n\n setWorkerCreator(workerCreator: any) {\n this.workerCreator = workerCreator;\n }\n\n setWorkerLimit(pool: number) {\n this.pool = pool;\n }\n\n postMessage(msg: any, transfer: any) {\n return new Promise((resolve) => {\n const workerId = this._getIdleWorker();\n if (workerId !== -1) {\n this._initWorker(workerId);\n this.workerStatus |= 1 << workerId;\n this.workersResolve[workerId] = resolve;\n this.workers[workerId].postMessage(msg, transfer);\n } else {\n this.queue.push({resolve, msg, transfer});\n }\n });\n }\n\n destroy() {\n\n this.workers.forEach((worker) => worker.terminate());\n this.workersResolve.length = 0;\n this.workers.length = 0;\n this.queue.length = 0;\n this.workerStatus = 0;\n\n }\n\n}\n", "const files: any = {};\nlet enabled = false;\n\nconst Cache = {\n\n enabled: false,\n files: {},\n\n add: function (key: string | number, file: any) {\n if (!enabled) {\n return;\n }\n files[key] = file;\n },\n\n get: function (key: string | number) {\n if (!enabled) {\n return;\n }\n return files[key];\n },\n\n remove: function (key: string | number) {\n delete files[key];\n },\n\n clear: function () {\n this.files = {};\n }\n};\n\nexport {Cache};\n", "import {Cache} from './Cache';\nimport {Loader} from './Loader';\nimport type {LoadingManager} from \"./LoadingManager\";\n\nconst loading : {[key:string]:any} = {};\n\nclass FileLoader extends Loader {\n\n mimeType: string;\n responseType: string;\n\n constructor(manager?: LoadingManager) {\n super(manager);\n }\n\n load(url:string, onLoad:Function, onProgress:Function, onError:Function) {\n if (url === undefined) {\n url = '';\n }\n if (this.path !== undefined) {\n url = this.path + url;\n }\n url = this.manager.resolveURL(url);\n const cached = Cache.get(url);\n if (cached !== undefined) {\n this.manager.itemStart(url);\n setTimeout(() => {\n if (onLoad) {\n onLoad(cached);\n }\n this.manager.itemEnd(url);\n }, 0);\n return cached;\n }\n if (loading[url] !== undefined) {\n loading[url].push({onLoad, onProgress, onError});\n return;\n }\n loading[url] = [];\n loading[url].push({onLoad, onProgress, onError});\n const req = new Request(url, {\n headers: new Headers(this.requestHeader),\n credentials: this.withCredentials ? 'include' : 'same-origin'\n });\n const mimeType = this.mimeType;\n const responseType = this.responseType;\n fetch(req).then(response => {\n if (response.status === 200 || response.status === 0) {\n // Some browsers return HTTP Status 0 when using non-http protocol\n // e.g. 'file://' or 'data://'. Handle as success.\n if (response.status === 0) {\n console.warn('FileLoader: HTTP Status 0 received.');\n }\n // @ts-ignore\n if (typeof ReadableStream === 'undefined' || response.body.getReader === undefined) {\n return response;\n }\n const callbacks = loading[url];\n // @ts-ignore\n const reader = response.body.getReader();\n const contentLength = response.headers.get('Content-Length');\n const total = contentLength ? parseInt(contentLength) : 0;\n const lengthComputable = total !== 0;\n let loaded = 0;\n const stream = new ReadableStream({\n start(controller) {\n readData();\n\n function readData() {\n reader.read().then(({done, value}) => {\n if (done) {\n controller.close();\n } else {\n // @ts-ignore\n loaded += value.byteLength;\n const event = new ProgressEvent('progress', {lengthComputable, loaded, total});\n for (let i = 0, il = callbacks.length; i < il; i++) {\n const callback = callbacks[i];\n if (callback.onProgress) {\n callback.onProgress(event);\n }\n }\n controller.enqueue(value);\n readData();\n }\n });\n }\n }\n });\n return new Response(stream);\n } else {\n throw new Error(`fetch for \"${response.url}\" responded with ${response.status}: ${response.statusText}`);\n }\n }).then(response => {\n switch (responseType) {\n case 'arraybuffer':\n return response.arrayBuffer();\n case 'blob':\n return response.blob();\n case 'document':\n return response.text()\n .then(text => {\n const parser = new DOMParser();\n // @ts-ignore\n return parser.parseFromString(text, mimeType);\n });\n case 'json':\n return response.json();\n default:\n if (mimeType === undefined) {\n return response.text();\n } else {\n // sniff encoding\n const re = /charset=\"?([^;\"\\s]*)\"?/i;\n const exec = re.exec(mimeType);\n const label = exec && exec[1] ? exec[1].toLowerCase() : undefined;\n const decoder = new TextDecoder(label);\n return response.arrayBuffer().then(ab => decoder.decode(ab));\n }\n }\n }).then(data => {\n // Add to cache only on HTTP success, so that we do not cache\n // error response bodies as proper responses to requests.\n Cache.add(url, data);\n const callbacks = loading[url];\n delete loading[url];\n for (let i = 0, il = callbacks.length; i < il; i++) {\n const callback = callbacks[i];\n if (callback.onLoad) {\n callback.onLoad(data);\n }\n }\n }).catch(err => {\n // Abort errors and other errors are handled the same\n const callbacks = loading[url];\n if (callbacks === undefined) {\n // When onLoad was called and url was deleted in `loading`\n this.manager.itemError(url);\n throw err;\n\n }\n delete loading[url];\n for (let i = 0, il = callbacks.length; i < il; i++) {\n const callback = callbacks[i];\n if (callback.onError) {\n callback.onError(err);\n }\n }\n this.manager.itemError(url);\n }).finally(() => {\n this.manager.itemEnd(url);\n });\n this.manager.itemStart(url);\n }\n\n setResponseType(value: string) {\n this.responseType = value;\n return this;\n }\n\n setMimeType(value: string) {\n this.mimeType = value;\n return this;\n }\n}\n\n\nexport {FileLoader};\n", "/**\n * [![npm version](https://badge.fury.io/js/%40xeokit%2Fsvg)](https://badge.fury.io/js/%40xeokit%2Fmath)\n * [![](https://data.jsdelivr.com/v1/package/npm/@xeokit/badge)](https://www.jsdelivr.com/package/npm/@xeokit/math)\n *\n * \n *\n * # xeokit RTC Coordinate Utilities\n *\n * ---\n *\n * ### *Math functions for working with RTC cartesian coordinates*\n *\n * ---\n *\n * * Math functions for working with relative-to-center (RTC) coordinate systems\n * * Used internally within {@link @xeokit/viewer!Viewer | Viewer}\n *\n * ## Installation\n *\n * ````bash\n * npm install @xeokit/rtc\n * ````\n *\n * ## Usage\n *\n * ````javascript\n * import * as rtc from \"@xeokit/rtc\";\n *\n * const worldPos = [100000000000.0, 1000000000.0, 1000000000000.0];\n * const rtcCenter = [0,0,0];\n * const rtcPos = [0,0,0];\n *\n * rtc.worldToRTCPos(worldPos, rtcCenter, rtcPos);\n *\n * //..\n * ````\n *\n * @module @xeokit/rtc\n */\nimport type {FloatArrayParam} from \"@xeokit/math\";\nimport {\n createVec3, createVec4,\n dotVec3,\n mulVec3Scalar,\n normalizeVec3,\n setMat4Translation,\n transformVec4,\n translateMat4v\n} from \"@xeokit/matrix\";\nimport {getPositions3Center} from \"@xeokit/boundaries\";\n\n\nconst tempVec3a = createVec3();\nconst tempMat = new Float32Array(16);\nconst rtcCenterWorld = new Float64Array(4);\nconst rtcCenterView = new Float64Array(4);\n\n/**\n * The size of tiles within xeokit's relative-to-center (RTC) World coordinate system.\n */\nexport const RTC_CELL_SIZE = 200;\n\n/**\n * Given a view matrix and a relative-to-center (RTC) coordinate origin, returns a view matrix\n * to transform RTC coordinates to View-space.\n */\nexport function createRTCViewMat(viewMat: FloatArrayParam, rtcCenter: FloatArrayParam, rtcViewMat: FloatArrayParam = tempMat): FloatArrayParam {\n rtcCenterWorld[0] = rtcCenter[0];\n rtcCenterWorld[1] = rtcCenter[1];\n rtcCenterWorld[2] = rtcCenter[2];\n rtcCenterWorld[3] = 1;\n transformVec4(viewMat, rtcCenterWorld, rtcCenterView);\n setMat4Translation(viewMat, rtcCenterView, rtcViewMat);\n return rtcViewMat;\n}\n\n/**\n * Given a modeling matrix and a relative-to-center (RTC) coordinate origin, returns an RTC modeling matrix.\n *\n * @param matrix Full-precision absolute modeling matrix, possibly with huge translations.\n * @param rtcCenter Returns the RTC origin.\n * @returns A new RTC modeling matrix, with transforms relative to the RTC origin.\n */\nexport const createRTCModelMat = (() => {\n\n const zeroVec4 = createVec4([0,0,0,1]);\n const tempVec4a = createVec4();\n\n return (matrix: FloatArrayParam, rtcCenter: FloatArrayParam): FloatArrayParam => {\n const tempVec4 = transformVec4(matrix, zeroVec4, tempVec4a);\n rtcCenter[0] = Math.round(tempVec4[0] / RTC_CELL_SIZE) * RTC_CELL_SIZE;\n rtcCenter[1] = Math.round(tempVec4[1] / RTC_CELL_SIZE) * RTC_CELL_SIZE;\n rtcCenter[2] = Math.round(tempVec4[2] / RTC_CELL_SIZE) * RTC_CELL_SIZE;\n const rtcModelMatrix = matrix.slice();\n translateMat4v(mulVec3Scalar(rtcCenter, -1, tempVec3a), rtcModelMatrix);\n return rtcModelMatrix;\n };\n})();\n\n/**\n * Converts a World-space 3D position to RTC.\n *\n * Given a double-precision World-space position, returns a double-precision relative-to-center (RTC) center pos\n * and a single-precision offset fom that center.\n *\n * @param worldPos The World-space position.\n * @param rtcCenter Double-precision relative-to-center (RTC) center pos.\n * @param rtcPos Single-precision offset fom that center.\n */\nexport function worldToRTCPos(worldPos: FloatArrayParam, rtcCenter: FloatArrayParam, rtcPos: FloatArrayParam) {\n\n const xHigh = Float32Array.from([worldPos[0]])[0];\n const xLow = worldPos[0] - xHigh;\n\n const yHigh = Float32Array.from([worldPos[1]])[0];\n const yLow = worldPos[1] - yHigh;\n\n const zHigh = Float32Array.from([worldPos[2]])[0];\n const zLow = worldPos[2] - zHigh;\n\n rtcCenter[0] = xHigh;\n rtcCenter[1] = yHigh;\n rtcCenter[2] = zHigh;\n\n rtcPos[0] = xLow;\n rtcPos[1] = yLow;\n rtcPos[2] = zLow;\n}\n\n/**\n * Converts a World-space 3D position to RTC.\n *\n * Given a double-precision World-space position, returns a double-precision relative-to-center (RTC) center.\n *\n * @param worldCenter The World-space position.\n * @param rtcCenter Double-precision relative-to-center (RTC) center pos.\n * @param [cellSize=200] The size of each coordinate cell within the RTC coordinate system.\n */\nexport function worldToRTCCenter(worldCenter: FloatArrayParam, rtcCenter: FloatArrayParam, cellSize = RTC_CELL_SIZE) {\n rtcCenter[0] = Math.round(worldCenter[0] / cellSize) * cellSize;\n rtcCenter[1] = Math.round(worldCenter[1] / cellSize) * cellSize;\n rtcCenter[2] = Math.round(worldCenter[2] / cellSize) * cellSize;\n return rtcCenter;\n}\n\n/**\n * Converts a flat array of double-precision positions to RTC positions.\n *\n * Returns the RTC positions, along with a computed RTC center for those positions.\n *\n * When computing the RTC position, this function uses a modulus operation to ensure that, whenever possible,\n * identical RTC positions are reused for different positions arrays.\n *\n * @param worldPositions Flat array of World-space 3D positions.\n * @param rtcPositions Outputs the computed flat array of 3D RTC positions.\n * @param rtcCenter Outputs the computed double-precision relative-to-center (RTC) center pos.\n * @param [cellSize=200] The size of each coordinate cell within the RTC coordinate system.\n * @returns ````True```` if the positions actually needed conversion to RTC, else ````false````. When\n * ````false````, we can safely ignore the data returned in ````rtcPositions```` and ````rtcCenter````,\n * since ````rtcCenter```` will equal ````[0,0,0]````, and ````rtcPositions```` will contain identical values to ````positions````.\n */\nexport function worldToRTCPositions(worldPositions: FloatArrayParam, rtcPositions: FloatArrayParam, rtcCenter: FloatArrayParam, cellSize = RTC_CELL_SIZE): boolean {\n\n const center = getPositions3Center(worldPositions, tempVec3a);\n\n const rtcCenterX = Math.round(center[0] / cellSize) * cellSize;\n const rtcCenterY = Math.round(center[1] / cellSize) * cellSize;\n const rtcCenterZ = Math.round(center[2] / cellSize) * cellSize;\n\n for (let i = 0, len = worldPositions.length; i < len; i += 3) {\n rtcPositions[i + 0] = worldPositions[i + 0] - rtcCenterX;\n rtcPositions[i + 1] = worldPositions[i + 1] - rtcCenterY;\n rtcPositions[i + 2] = worldPositions[i + 2] - rtcCenterZ;\n }\n\n rtcCenter[0] = rtcCenterX;\n rtcCenter[1] = rtcCenterY;\n rtcCenter[2] = rtcCenterZ;\n\n const rtcNeeded = (rtcCenter[0] !== 0 || rtcCenter[1] !== 0 || rtcCenter[2] !== 0);\n\n return rtcNeeded;\n}\n\n/**\n * Converts an RTC 3D position to World-space.\n *\n * @param rtcCenter Double-precision relative-to-center (RTC) center pos.\n * @param rtcPos Single-precision offset fom that center.\n * @param worldPos The World-space position.\n */\nexport function rtcToWorldPos(rtcCenter: FloatArrayParam, rtcPos: FloatArrayParam, worldPos: FloatArrayParam): FloatArrayParam {\n worldPos[0] = rtcCenter[0] + rtcPos[0];\n worldPos[1] = rtcCenter[1] + rtcPos[1];\n worldPos[2] = rtcCenter[2] + rtcPos[2];\n return worldPos;\n}\n\n/**\n * Given a 3D plane defined by distance from origin and direction, and an RTC center position,\n * return a plane position that is relative to the RTC center.\n *\n * @param dist\n * @param dir\n * @param rtcCenter\n * @param rtcPlanePos\n * @returns {*}\n */\nexport function getPlaneRTCPos(dist: number, dir: FloatArrayParam, rtcCenter: FloatArrayParam, rtcPlanePos: FloatArrayParam) : FloatArrayParam{\n const rtcCenterToPlaneDist = dotVec3(dir, rtcCenter) + dist;\n const dirNormalized = normalizeVec3(dir, tempVec3a);\n mulVec3Scalar(dirNormalized, -rtcCenterToPlaneDist, rtcPlanePos);\n return rtcPlanePos;\n}\n", "/**\n * [![npm version](https://badge.fury.io/js/%40xeokit%2Fsvg)](https://badge.fury.io/js/%40xeokit%2Fmath)\n * [![](https://data.jsdelivr.com/v1/package/npm/@xeokit/badge)](https://www.jsdelivr.com/package/npm/@xeokit/math)\n *\n * \n *\n * # xeokit Boundaries Math Library\n *\n * ---\n *\n * ### *Tools for 2D and 3D boundary analysis, boundary transformation, and collision detection*\n *\n * ---\n *\n * * Axis-aligned boundaries (AABB2 and AABB3)\n * * Object-aligned boundaries (OBB)\n * * Transformable OOBs\n * * Create boundaries from positions\n * * Find center of positions\n * * FrustumProjection-boundary intersection tests\n *\n * ## Installation\n *\n * ````bash\n * npm install @xeokit/boundaries\n * ````\n *\n * ## Usage\n *\n * ````javascript\n * import * as boundaries from \"@xeokit/boundaries\";\n *\n * //..TODO\n * ````\n *\n * @module @xeokit/boundaries\n */\nimport {FloatArrayParam, IntArrayParam, MAX_DOUBLE, MIN_DOUBLE, newFloatArray} from \"@xeokit/math\";\nimport {createMat4, createVec2, createVec3, lenVec3, mulMat4, subVec3} from \"@xeokit/matrix\";\nimport {decompressPoint3WithMat4} from \"@xeokit/compression\";\n\nconst tempVec3a = createVec3();\nconst tempVec3b = createVec3();\nconst tempMat4a = createMat4();\n\n\n/**\n * Returns a new, uninitialized 3D axis-aligned bounding box.\n */\nexport function createAABB3(values?: FloatArrayParam): Float64Array {\n // @ts-ignore\n return new Float64Array(values || 6);\n}\n\n/**\n * Returns a new, uninitialized 3D axis-aligned bounding box.\n */\nexport function createAABB3Int16(values?: IntArrayParam): Int16Array {\n // @ts-ignore\n return new Int16Array(values || 6);\n}\n\n/**\n * Returns a new, uninitialized 2D axis-aligned bounding box.\n */\nexport function createAABB2(values?: FloatArrayParam): FloatArrayParam {\n // @ts-ignore\n return newFloatArray(values || 4);\n}\n\n/**\n * Returns a new, uninitialized 3D oriented bounding box (OBB).\n */\nexport function createOBB3(values?: FloatArrayParam): FloatArrayParam {\n // @ts-ignore\n return newFloatArray(values || 32);\n}\n\n/**\n * Returns a new, uninitialized 2D oriented bounding box (OBB).\n */\nexport function createOBB2(values?: FloatArrayParam): FloatArrayParam {\n // @ts-ignore\n return newFloatArray(values || 16);\n}\n\n/** Returns a new 3D bounding sphere */\nexport function createSphere3(\n x: number,\n y: number,\n z: number,\n r: number\n): FloatArrayParam {\n return newFloatArray([x, y, z, r]);\n}\n\n/**\n * Transforms an createOBB3 by a 4x4\n */\nexport function transformOBB3(\n m: FloatArrayParam,\n p: FloatArrayParam,\n p2: FloatArrayParam = p\n): FloatArrayParam {\n let i;\n const len = p.length;\n\n let x;\n let y;\n let z;\n\n const m0 = m[0];\n const m1 = m[1];\n const m2 = m[2];\n const m3 = m[3];\n const m4 = m[4];\n const m5 = m[5];\n const m6 = m[6];\n const m7 = m[7];\n const m8 = m[8];\n const m9 = m[9];\n const m10 = m[10];\n const m11 = m[11];\n const m12 = m[12];\n const m13 = m[13];\n const m14 = m[14];\n const m15 = m[15];\n\n for (i = 0; i < len; i += 4) {\n x = p[i + 0];\n y = p[i + 1];\n z = p[i + 2];\n\n p2[i + 0] = m0 * x + m4 * y + m8 * z + m12;\n p2[i + 1] = m1 * x + m5 * y + m9 * z + m13;\n p2[i + 2] = m2 * x + m6 * y + m10 * z + m14;\n p2[i + 3] = m3 * x + m7 * y + m11 * z + m15;\n }\n\n return p2;\n}\n\n\n/** Returns true if the first AABB2 contains the second AABB2.\n */\nexport function containsAABB2(\n aabb1: FloatArrayParam,\n aabb2: FloatArrayParam\n): boolean {\n return aabb1[0] <= aabb2[0] &&\n aabb2[3] <= aabb1[3] &&\n aabb1[1] <= aabb2[1] &&\n aabb1[2] <= aabb2[2];\n}\n\n/** Returns true if the first AABB3 contains the second AABB3.\n */\nexport function containsAABB3(\n aabb1: FloatArrayParam,\n aabb2: FloatArrayParam\n): boolean {\n const result =\n aabb1[0] <= aabb2[0] &&\n aabb2[3] <= aabb1[3] &&\n aabb1[1] <= aabb2[1] &&\n aabb2[4] <= aabb1[4] &&\n aabb1[2] <= aabb2[2] &&\n aabb2[5] <= aabb1[5];\n return result;\n}\n\n/**\n * Gets the diagonal size of an createAABB3 given as minima and maxima.\n */\nexport const getAABB3Diag: Function = (() => {\n const min = newFloatArray(3);\n const max = newFloatArray(3);\n const tempVec3 = newFloatArray(3);\n return (aabb: FloatArrayParam): number => {\n min[0] = aabb[0];\n min[1] = aabb[1];\n min[2] = aabb[2];\n max[0] = aabb[3];\n max[1] = aabb[4];\n max[2] = aabb[5];\n subVec3(max, min, tempVec3);\n return Math.abs(lenVec3(tempVec3));\n };\n})();\n\n/**\n * Get a diagonal boundary size that is symmetrical about the given point.\n */\nexport const getAABB3DiagPoint = (() => {\n const min = newFloatArray(3);\n const max = newFloatArray(3);\n const tempVec3 = newFloatArray(3);\n\n return (aabb: FloatArrayParam, p: FloatArrayParam): number => {\n min[0] = aabb[0];\n min[1] = aabb[1];\n min[2] = aabb[2];\n\n max[0] = aabb[3];\n max[1] = aabb[4];\n max[2] = aabb[5];\n\n const diagVec = subVec3(max, min, tempVec3);\n\n const xneg = p[0] - aabb[0];\n const xpos = aabb[3] - p[0];\n const yneg = p[1] - aabb[1];\n const ypos = aabb[4] - p[1];\n const zneg = p[2] - aabb[2];\n const zpos = aabb[5] - p[2];\n\n diagVec[0] += xneg > xpos ? xneg : xpos;\n diagVec[1] += yneg > ypos ? yneg : ypos;\n diagVec[2] += zneg > zpos ? zneg : zpos;\n\n return Math.abs(lenVec3(diagVec));\n };\n})();\n\n/**\n * Gets the area of an AABB.\n */\nexport function getAABB3Area(aabb: FloatArrayParam): number {\n const width = aabb[3] - aabb[0];\n const height = aabb[4] - aabb[1];\n const depth = aabb[5] - aabb[2];\n return width * height * depth;\n}\n\n/**\n * Gets the center of an AABB.\n */\nexport function getAABB3Center(\n aabb: FloatArrayParam,\n dest: FloatArrayParam = createVec3()\n): FloatArrayParam {\n dest[0] = (aabb[0] + aabb[3]) / 2;\n dest[1] = (aabb[1] + aabb[4]) / 2;\n dest[2] = (aabb[2] + aabb[5]) / 2;\n return dest;\n}\n\n/**\n * Gets the center of a 2D AABB.\n */\nexport function getAABB2Center(\n aabb: FloatArrayParam,\n dest: FloatArrayParam = createVec2()\n): FloatArrayParam {\n dest[0] = (aabb[2] + aabb[0]) / 2;\n dest[1] = (aabb[3] + aabb[1]) / 2;\n return dest;\n}\n\n/**\n * Collapses a 3D axis-aligned boundary, ready to expand to fit 3D points.\n * Creates new AABB if none supplied.\n */\nexport function collapseAABB3(aabb: FloatArrayParam = createAABB3()): FloatArrayParam {\n aabb[0] = MAX_DOUBLE;\n aabb[1] = MAX_DOUBLE;\n aabb[2] = MAX_DOUBLE;\n aabb[3] = MIN_DOUBLE;\n aabb[4] = MIN_DOUBLE;\n aabb[5] = MIN_DOUBLE;\n return aabb;\n}\n\n/**\n * Collapses a 3D axis-aligned boundary, ready to expand to fit 3D points.\n * Creates new AABB if none supplied.\n */\nexport function collapseAABB3Int16(aabb: IntArrayParam = createAABB3Int16()): IntArrayParam {\n aabb[0] = 65535;\n aabb[1] = 65535;\n aabb[2] = 65535;\n aabb[3] = -65535;\n aabb[4] = -65535;\n aabb[5] = -65535;\n return aabb;\n}\n\n/**\n * Converts an axis-aligned 3D boundary into an oriented boundary consisting of\n * an array of eight 3D positions, one for each corner of the boundary.\n *\n * @private\n */\nexport function AABB3ToOBB3(aabb: FloatArrayParam = createAABB3(), obb = createOBB3()): FloatArrayParam {\n obb[0] = aabb[0];\n obb[1] = aabb[1];\n obb[2] = aabb[2];\n obb[3] = 1;\n\n obb[4] = aabb[3];\n obb[5] = aabb[1];\n obb[6] = aabb[2];\n obb[7] = 1;\n\n obb[8] = aabb[3];\n obb[9] = aabb[4];\n obb[10] = aabb[2];\n obb[11] = 1;\n\n obb[12] = aabb[0];\n obb[13] = aabb[4];\n obb[14] = aabb[2];\n obb[15] = 1;\n\n obb[16] = aabb[0];\n obb[17] = aabb[1];\n obb[18] = aabb[5];\n obb[19] = 1;\n\n obb[20] = aabb[3];\n obb[21] = aabb[1];\n obb[22] = aabb[5];\n obb[23] = 1;\n\n obb[24] = aabb[3];\n obb[25] = aabb[4];\n obb[26] = aabb[5];\n obb[27] = 1;\n\n obb[28] = aabb[0];\n obb[29] = aabb[4];\n obb[30] = aabb[5];\n obb[31] = 1;\n\n return obb;\n}\n\n/**\n * Expands the first axis-aligned 3D boundary to enclose the second, if required.\n */\nexport function expandAABB3(aabb1: FloatArrayParam, aabb2: FloatArrayParam) {\n if (aabb1[0] > aabb2[0]) {\n aabb1[0] = aabb2[0];\n }\n if (aabb1[1] > aabb2[1]) {\n aabb1[1] = aabb2[1];\n }\n if (aabb1[2] > aabb2[2]) {\n aabb1[2] = aabb2[2];\n }\n if (aabb1[3] < aabb2[3]) {\n aabb1[3] = aabb2[3];\n }\n if (aabb1[4] < aabb2[4]) {\n aabb1[4] = aabb2[4];\n }\n if (aabb1[5] < aabb2[5]) {\n aabb1[5] = aabb2[5];\n }\n return aabb1;\n}\n\n/**\n * Expands the first axis-aligned 2D boundary to enclose the second, if required.\n */\nexport function expandAABB2(aabb1: FloatArrayParam, aabb2: FloatArrayParam) {\n if (aabb1[0] > aabb2[0]) {\n aabb1[0] = aabb2[0];\n }\n if (aabb1[1] > aabb2[1]) {\n aabb1[1] = aabb2[1];\n }\n if (aabb1[3] < aabb2[3]) {\n aabb1[3] = aabb2[3];\n }\n if (aabb1[4] < aabb2[4]) {\n aabb1[4] = aabb2[4];\n }\n return aabb1;\n}\n\n/**\n * Expands an axis-aligned 3D boundary to enclose the given point, if needed.\n */\nexport function expandAABB3Point3(aabb: FloatArrayParam, p: FloatArrayParam) {\n\n if (aabb[0] > p[0]) {\n aabb[0] = p[0];\n }\n\n if (aabb[1] > p[1]) {\n aabb[1] = p[1];\n }\n\n if (aabb[2] > p[2]) {\n aabb[2] = p[2];\n }\n\n if (aabb[3] < p[0]) {\n aabb[3] = p[0];\n }\n\n if (aabb[4] < p[1]) {\n aabb[4] = p[1];\n }\n\n if (aabb[5] < p[2]) {\n aabb[5] = p[2];\n }\n\n return aabb;\n}\n\n/**\n * Expands an axis-aligned 2D boundary to enclose the given point, if needed.\n */\nexport function expandAABB2Point2(aabb: FloatArrayParam, p: FloatArrayParam) {\n\n if (aabb[0] > p[0]) {\n aabb[0] = p[0];\n }\n\n if (aabb[1] > p[1]) {\n aabb[1] = p[1];\n }\n\n if (aabb[3] < p[0]) {\n aabb[3] = p[0];\n }\n\n if (aabb[4] < p[1]) {\n aabb[4] = p[1];\n }\n\n return aabb;\n}\n\n/**\n * Expands an axis-aligned 3D boundary to enclose the given points, if needed.\n */\nexport function expandAABB3Points3(aabb: FloatArrayParam, positions: FloatArrayParam): FloatArrayParam {\n var x;\n var y;\n var z;\n for (var i = 0, len = positions.length; i < len; i += 3) {\n x = positions[i];\n y = positions[i + 1];\n z = positions[i + 2];\n if (aabb[0] > x) {\n aabb[0] = x;\n }\n if (aabb[1] > y) {\n aabb[1] = y;\n }\n if (aabb[2] > z) {\n aabb[2] = z;\n }\n if (aabb[3] < x) {\n aabb[3] = x;\n }\n if (aabb[4] < y) {\n aabb[4] = y;\n }\n if (aabb[5] < z) {\n aabb[5] = z;\n }\n }\n return aabb;\n}\n\n/**\n * Converts an axis-aligned 3D boundary into an oriented boundary consisting of\n * an array of eight 3D positions, one for each corner of the boundary.\n */\nexport function ABB3ToOBB3(\n aabb: FloatArrayParam,\n obb: FloatArrayParam = createOBB3()\n): FloatArrayParam {\n obb[0] = aabb[0];\n obb[1] = aabb[1];\n obb[2] = aabb[2];\n obb[3] = 1;\n\n obb[4] = aabb[3];\n obb[5] = aabb[1];\n obb[6] = aabb[2];\n obb[7] = 1;\n\n obb[8] = aabb[3];\n obb[9] = aabb[4];\n obb[10] = aabb[2];\n obb[11] = 1;\n\n obb[12] = aabb[0];\n obb[13] = aabb[4];\n obb[14] = aabb[2];\n obb[15] = 1;\n\n obb[16] = aabb[0];\n obb[17] = aabb[1];\n obb[18] = aabb[5];\n obb[19] = 1;\n\n obb[20] = aabb[3];\n obb[21] = aabb[1];\n obb[22] = aabb[5];\n obb[23] = 1;\n\n obb[24] = aabb[3];\n obb[25] = aabb[4];\n obb[26] = aabb[5];\n obb[27] = 1;\n\n obb[28] = aabb[0];\n obb[29] = aabb[4];\n obb[30] = aabb[5];\n obb[31] = 1;\n\n return obb;\n}\n\n/**\n * Finds the minimum axis-aligned 3D boundary enclosing the homogeneous 3D points (x,y,z,w) given in a flattened array.\n */\nexport const positions3ToAABB3 = (() => {\n const p = newFloatArray(3);\n\n return (\n positions: FloatArrayParam,\n aabb: FloatArrayParam,\n positionsDecompressMatrix: FloatArrayParam\n ): FloatArrayParam => {\n aabb = aabb || createAABB3();\n\n let xmin = MAX_DOUBLE;\n let ymin = MAX_DOUBLE;\n let zmin = MAX_DOUBLE;\n let xmax = MIN_DOUBLE;\n let ymax = MIN_DOUBLE;\n let zmax = MIN_DOUBLE;\n\n let x;\n let y;\n let z;\n\n for (let i = 0, len = positions.length; i < len; i += 3) {\n if (positionsDecompressMatrix) {\n p[0] = positions[i + 0];\n p[1] = positions[i + 1];\n p[2] = positions[i + 2];\n\n decompressPoint3WithMat4(p, positionsDecompressMatrix, p);\n\n x = p[0];\n y = p[1];\n z = p[2];\n } else {\n x = positions[i + 0];\n y = positions[i + 1];\n z = positions[i + 2];\n }\n\n if (x < xmin) {\n xmin = x;\n }\n\n if (y < ymin) {\n ymin = y;\n }\n\n if (z < zmin) {\n zmin = z;\n }\n\n if (x > xmax) {\n xmax = x;\n }\n\n if (y > ymax) {\n ymax = y;\n }\n\n if (z > zmax) {\n zmax = z;\n }\n }\n\n aabb[0] = xmin;\n aabb[1] = ymin;\n aabb[2] = zmin;\n aabb[3] = xmax;\n aabb[4] = ymax;\n aabb[5] = zmax;\n\n return aabb;\n };\n})();\n\n/**\n * Finds the minimum axis-aligned 3D boundary enclosing the homogeneous 3D points (x,y,z,w) given in a flattened array.\n */\nexport function OBB3ToAABB3(\n obb: FloatArrayParam,\n aabb: FloatArrayParam = createAABB3()\n): FloatArrayParam {\n let xmin = MAX_DOUBLE;\n let ymin = MAX_DOUBLE;\n let zmin = MAX_DOUBLE;\n let xmax = MIN_DOUBLE;\n let ymax = MIN_DOUBLE;\n let zmax = MIN_DOUBLE;\n\n let x;\n let y;\n let z;\n\n for (let i = 0, len = obb.length; i < len; i += 4) {\n x = obb[i + 0];\n y = obb[i + 1];\n z = obb[i + 2];\n\n if (x < xmin) {\n xmin = x;\n }\n\n if (y < ymin) {\n ymin = y;\n }\n\n if (z < zmin) {\n zmin = z;\n }\n\n if (x > xmax) {\n xmax = x;\n }\n\n if (y > ymax) {\n ymax = y;\n }\n\n if (z > zmax) {\n zmax = z;\n }\n }\n\n aabb[0] = xmin;\n aabb[1] = ymin;\n aabb[2] = zmin;\n aabb[3] = xmax;\n aabb[4] = ymax;\n aabb[5] = zmax;\n\n return aabb;\n}\n\n/**\n * Finds the minimum axis-aligned 3D boundary enclosing the given 3D points.\n */\nexport function points3ToAABB3(\n points: number[][],\n aabb: FloatArrayParam = createAABB3()\n): FloatArrayParam {\n let xmin = MAX_DOUBLE;\n let ymin = MAX_DOUBLE;\n let zmin = MAX_DOUBLE;\n let xmax = MIN_DOUBLE;\n let ymax = MIN_DOUBLE;\n let zmax = MIN_DOUBLE;\n\n let x;\n let y;\n let z;\n\n for (let i = 0, len = points.length; i < len; i++) {\n x = points[i][0];\n y = points[i][1];\n z = points[i][2];\n\n if (x < xmin) {\n xmin = x;\n }\n\n if (y < ymin) {\n ymin = y;\n }\n\n if (z < zmin) {\n zmin = z;\n }\n\n if (x > xmax) {\n xmax = x;\n }\n\n if (y > ymax) {\n ymax = y;\n }\n\n if (z > zmax) {\n zmax = z;\n }\n }\n\n aabb[0] = xmin;\n aabb[1] = ymin;\n aabb[2] = zmin;\n aabb[3] = xmax;\n aabb[4] = ymax;\n aabb[5] = zmax;\n\n return aabb;\n}\n\n/**\n * Gets the 3D center of the given flat array of 3D positions.\n */\nexport function getPositions3Center(\n positions: FloatArrayParam,\n center: FloatArrayParam = createVec3()\n): FloatArrayParam {\n let xCenter = 0;\n let yCenter = 0;\n let zCenter = 0;\n for (let i = 0, len = positions.length; i < len; i += 3) {\n xCenter += positions[i + 0];\n yCenter += positions[i + 1];\n zCenter += positions[i + 2];\n }\n const numPositions = positions.length / 3;\n center[0] = xCenter / numPositions;\n center[1] = yCenter / numPositions;\n center[2] = zCenter / numPositions;\n return center;\n}\n\n\n/**\n * A plane within a {@link Frustum3}.\n */\nexport class FrustumPlane3 {\n\n public testVertex: FloatArrayParam;\n public offset: number;\n public normal: FloatArrayParam;\n\n /**\n * Creates a new frustum plane.\n */\n constructor() {\n this.normal = createVec3();\n this.offset = 0;\n this.testVertex = createVec3();\n }\n\n /**\n * Sets the position and direction of the frustum plane.\n * @param nx\n * @param ny\n * @param nz\n * @param offset\n */\n set(nx: number, ny: number, nz: number, offset: number) {\n const s = 1.0 / Math.sqrt(nx * nx + ny * ny + nz * nz);\n this.normal[0] = nx * s;\n this.normal[1] = ny * s;\n this.normal[2] = nz * s;\n this.offset = offset * s;\n this.testVertex[0] = (this.normal[0] >= 0.0) ? 1 : 0;\n this.testVertex[1] = (this.normal[1] >= 0.0) ? 1 : 0;\n this.testVertex[2] = (this.normal[2] >= 0.0) ? 1 : 0;\n }\n}\n\n/**\n * Intersection state in which first boundary is completely inside the second.\n */\nexport const INSIDE: number = 1;\n\n/**\n * Intersection state in which two boundaries partially intersect.\n */\nexport const INTERSECT: number = 2;\n\n/**\n * Intersection state in which two boundaries do not intersect.\n */\nexport const OUTSIDE: number = 3;\n\n/**\n * A 3D frustum defined as six planes.\n */\nexport class Frustum3 {\n\n /**\n * The six planes that comprise the frustum boundary.\n */\n public planes: FrustumPlane3[];\n\n /**\n * Creates a new FrustumProjection\n */\n constructor() {\n this.planes = [\n new FrustumPlane3(), new FrustumPlane3(), new FrustumPlane3(),\n new FrustumPlane3(), new FrustumPlane3(), new FrustumPlane3()\n ];\n }\n}\n\n/**\n * Sets the extents of a frustum to the World-space volume defined by view and projection matrices.\n * Creates the frustum first if not given.\n */\nexport function setFrustum3(viewMat: FloatArrayParam, projMat: FloatArrayParam, frustum?: Frustum3) {\n const m = mulMat4(projMat, viewMat, tempMat4a);\n const m0 = m[0];\n const m1 = m[1];\n const m2 = m[2];\n const m3 = m[3];\n const m4 = m[4];\n const m5 = m[5];\n const m6 = m[6];\n const m7 = m[7];\n const m8 = m[8];\n const m9 = m[9];\n const m10 = m[10];\n const m11 = m[11];\n const m12 = m[12];\n const m13 = m[13];\n const m14 = m[14];\n const m15 = m[15];\n frustum = frustum || new Frustum3();\n frustum.planes[0].set(m3 - m0, m7 - m4, m11 - m8, m15 - m12);\n frustum.planes[1].set(m3 + m0, m7 + m4, m11 + m8, m15 + m12);\n frustum.planes[2].set(m3 - m1, m7 - m5, m11 - m9, m15 - m13);\n frustum.planes[3].set(m3 + m1, m7 + m5, m11 + m9, m15 + m13);\n frustum.planes[4].set(m3 - m2, m7 - m6, m11 - m10, m15 - m14);\n frustum.planes[5].set(m3 + m2, m7 + m6, m11 + m10, m15 + m14);\n return frustum;\n}\n\n/**\n * Tests for intersection between a frustum and an axis-aligned 3D boundary.\n * @param frustum\n * @param aabb\n */\nexport function intersectFrustum3AABB3(frustum: Frustum3, aabb: FloatArrayParam): number {\n let ret = INSIDE;\n const min = tempVec3a;\n const max = tempVec3b;\n min[0] = aabb[0];\n min[1] = aabb[1];\n min[2] = aabb[2];\n max[0] = aabb[3];\n max[1] = aabb[4];\n max[2] = aabb[5];\n const bminmax = [min, max];\n for (let i = 0; i < 6; ++i) {\n const plane = frustum.planes[i];\n if (((plane.normal[0] * bminmax[plane.testVertex[0]][0]) +\n (plane.normal[1] * bminmax[plane.testVertex[1]][1]) +\n (plane.normal[2] * bminmax[plane.testVertex[2]][2]) +\n (plane.offset)) < 0.0) {\n return OUTSIDE;\n }\n if (((plane.normal[0] * bminmax[1 - plane.testVertex[0]][0]) +\n (plane.normal[1] * bminmax[1 - plane.testVertex[1]][1]) +\n (plane.normal[2] * bminmax[1 - plane.testVertex[2]][2]) +\n (plane.offset)) < 0.0) {\n ret = INTERSECT;\n }\n }\n return ret;\n}\n\n/**\n * Tests for intersection between two axis-aligned 3D boundaries.\n * @param aabb1\n * @param aabb2\n */\nexport function intersectAABB3s(aabb1: FloatArrayParam, aabb2: FloatArrayParam): number {\n\n return INTERSECT;\n // let ret = INSIDE;\n // const min = tempVec3a;\n // const max = tempVec3b;\n // min[0] = aabb[0];\n // min[1] = aabb[1];\n // min[2] = aabb[2];\n // max[0] = aabb[3];\n // max[1] = aabb[4];\n // max[2] = aabb[5];\n // const bminmax = [min, max];\n // for (let i = 0; i < 6; ++i) {\n // const plane = frustum.planes[i];\n // if (((plane.normal[0] * bminmax[plane.testVertex[0]][0]) +\n // (plane.normal[1] * bminmax[plane.testVertex[1]][1]) +\n // (plane.normal[2] * bminmax[plane.testVertex[2]][2]) +\n // (plane.offset)) < 0.0) {\n // return OUTSIDE;\n // }\n // if (((plane.normal[0] * bminmax[1 - plane.testVertex[0]][0]) +\n // (plane.normal[1] * bminmax[1 - plane.testVertex[1]][1]) +\n // (plane.normal[2] * bminmax[1 - plane.testVertex[2]][2]) +\n // (plane.offset)) < 0.0) {\n // ret = INTERSECT;\n // }\n // }\n // return ret;\n}\n\n\n/**\n * Tests if the given {@link @xeokit/boundaries!Frustum3 | Frustum3} intersects the given {@link @xeokit/constants!TrianglesPrimitive | TrianglesPrimitive} geometry.\n *\n * Returns ```` true```` if intersection else ````false````.\n *\n * @param frustum\n * @param positions\n * @param indices\n */\nexport function intersectFrustum3Triangles3(frustum: Frustum3, positions: FloatArrayParam, indices: IntArrayParam): boolean {\n return true;\n}\n\n/**\n * Tests if the given {@link @xeokit/boundaries!Frustum3 | Frustum3} intersects the given triangle primitive.\n *\n * Returns ```` true```` if intersection else ````false````.\n *\n * @param frustum\n * @param a\n * @param b\n * @param c\n */\nexport function intersectFrustum3Triangle3(frustum: Frustum3, a: FloatArrayParam, b: FloatArrayParam, c: FloatArrayParam): boolean {\n return true;\n}\n\n/**\n * Tests if the given {@link @xeokit/boundaries!Frustum3 | Frustum3} intersects the given\n * {@link @xeokit/constants!LinesPrimitive | LinesPrimitive} geometry.\n *\n * Returns ```` true```` if intersection else ````false````.\n *\n * @param frustum\n * @param positions\n * @param indices\n */\nexport function intersectFrustum3Lines3(frustum: Frustum3, positions: FloatArrayParam, indices: IntArrayParam): boolean {\n return true;\n}\n\n/**\n * Tests if the given {@link @xeokit/boundaries!Frustum3 | Frustum3} intersects the\n * given {@link @xeokit/constants!PointsPrimitive | PointsPrimitive} geometry.\n *\n * Returns ```` true```` if intersection else ````false````.\n *\n * @param frustum\n * @param positions\n */\nexport function intersectFrustum3Positions3(frustum: Frustum3, positions: FloatArrayParam): boolean {\n return true;\n}\n\n/**\n * Tests if the given {@link @xeokit/boundaries!Frustum3 | Frustum3} intersects the given position.\n *\n * Returns ```` true```` if intersection else ````false````.\n *\n * @param frustum\n * @param position\n */\nexport function intersectFrustum3Point3(frustum: Frustum3, position: FloatArrayParam): boolean {\n return true;\n}\n\n/**\n * Tests if the given AABB intersects the given {@link @xeokit/constants!TrianglesPrimitive | TrianglesPrimitive} geometry.\n *\n * Returns ```` true```` if intersection else ````false````.\n *\n * @param aabb\n * @param positions\n * @param indices\n */\nexport function intersectAABB3Triangles3(aabb: FloatArrayParam, positions: FloatArrayParam, indices: IntArrayParam): boolean {\n for (let i = 0, len = indices.length; i < len; i += 3) {\n // if (aabbIntersectsTriangle(positions, indices[i], indices[i + 1], indices[i + 2], aabb)) {\n // return true;\n // }\n }\n return false;\n}\n\n\n/**\n * Tests if the given AABB intersects the given {@link @xeokit/constants!LinesPrimitive | LinesPrimitive} geometry.\n *\n * Returns ```` true```` if intersection else ````false````.\n *\n * @param aabb\n * @param positions\n * @param indices\n */\nexport function intersectAABB3Lines3(aabb: FloatArrayParam, positions: FloatArrayParam, indices: IntArrayParam) {\n return false;\n}\n\n/**\n * Tests if the given AABB intersects the given {@link @xeokit/constants!PointsPrimitive | PointsPrimitive} vertex positions.\n *\n * Returns ```` true```` if intersection else ````false````.\n *\n * @param aabb\n * @param positions\n */\nexport function intersectAABB3Positions3(aabb: FloatArrayParam, positions: FloatArrayParam) {\n const xmin = aabb[0];\n const ymin = aabb[1];\n const zmin = aabb[2];\n const xmax = aabb[3];\n const ymax = aabb[4];\n const zmax = aabb[5];\n for (let i = 0, len = positions.length; i < len; i += 3) {\n const x = positions[i];\n if (xmin <= x && x <= xmax) {\n const y = positions[i + 1];\n if (ymin <= y && y <= ymax) {\n const z = positions[i + 2];\n if (zmin <= z && z <= zmax) {\n return true;\n }\n }\n }\n }\n return false;\n}\n\n/**\n * Tets if the given 3D AABB contains the given 3D position.\n * @param aabb\n * @param p\n */\nexport function containsAABB3Point3(aabb: FloatArrayParam, p: FloatArrayParam) {\n return (\n aabb[0] <= p[0] && p[0] <= aabb[3] &&\n aabb[1] <= p[1] && p[1] <= aabb[4] &&\n aabb[2] <= p[2] && p[2] <= aabb[5]);\n}\n\n/**\n * Tets if the given 2D AABB contains the given 2D position.\n * @param aabb\n * @param p\n */\nexport function containsAABB2Point2(aabb: FloatArrayParam, p: FloatArrayParam) {\n return (\n aabb[0] <= p[0] && p[0] <= aabb[3] &&\n aabb[1] <= p[1] && p[1] <= aabb[4]);\n}\n", "/**\n * [![npm version](https://badge.fury.io/js/%40xeokit%2Fcompression.svg)](https://badge.fury.io/js/%40xeokit%2Fcompression)\n * [![](https://data.jsdelivr.com/v1/package/npm/@xeokit/compression/badge)](https://www.jsdelivr.com/package/npm/@xeokit/compression)\n *\n * \n *\n * # xeokit SceneGeometry Compression / Decompression Utilities\n *\n * ---\n *\n * ### *Tools for geometry compression and decompression*\n *\n * ---\n *\n * The xeokit SceneGeometry Compression/Decompression Utilities library provides functions used internally within\n * {@link @xeokit/scene!SceneModel.createGeometry | SceneModel.createGeometry} implementations to compress geometry. These functions are also\n * provided for users who want to pre-compress their geometry \"offline\" and then\n * use {@link @xeokit/scene!SceneModel.createGeometryCompressed | SceneModel.createGeometryCompressed}\n * to create compressed geometry directly.\n *\n * The compression techniques used include simplifying geometry by combining duplicate positions and adjusting indices, generating edge\n * indices for triangle meshes, ignoring normals (as shaders auto-generate them), converting positions to relative-to-center (RTC)\n * coordinates, and quantizing positions and UVs as 16-bit unsigned integers.\n *\n * An example usage includes compressing a SceneGeometryParams into a {@link @xeokit/scene!SceneGeometryCompressedParams} using the\n * {@link @xeokit/scene!compressGeometryParams} function.\n *\n * The resulting SceneGeometryCompressedParams object shows vertex positions relative to the origin\n * and quantized to 16-bit integers, duplicate positions removed, and adjusted indices. Additionally, edge indices are\n * generated for the {@link @xeokit/constants!TrianglesPrimitive}, and a positionsDecompressMatrix is included to de-quantize\n * the positions within the Viewer.\n *\n * This library provides a set of functions that are used internally within\n * {@link @xeokit/scene!SceneModel.createGeometry | SceneModel.createGeometry} implementations to\n * compress geometry. The functions are provided here in case users instead want to pre-compress their geometry \"offline\",\n * and then use {@link @xeokit/scene!SceneModel.createGeometryCompressed | SceneModel.createGeometryCompressed}\n * to create the compressed geometry directly.\n *\n * ### Compression Techniques Used\n *\n * * Simplifies geometry by combining duplicate positions and adjusting indices\n * * Generates edge indices for triangle meshes\n * * Ignores normals (our shaders auto-generate them)\n * * Converts positions to relative-to-center (RTC) coordinates\n * * Quantizes positions and UVs as 16-bit unsigned integers\n *\n * ## Installation\n *\n * ````bash\n * npm install @xeokit/compression\n * ````\n *\n * ## Usage\n *\n * In the example below, we'll use {@link @xeokit/scene!compressGeometryParams} to compress\n * a {@link @xeokit/scene!SceneGeometryParams | SceneGeometryParams} into a\n * {@link @xeokit/scene!SceneGeometryCompressedParams | SceneGeometryCompressedParams}.\n *\n * ````javascript\n * import {compressGeometryParams} from \"@xeokit/compression\";\n * import {TrianglesPrimitive} from \"@xeokit/constants\";\n *\n * const geometryCompressedParams = compressGeometryParams({\n * id: \"myBoxGeometry\",\n * primitive: TrianglesPrimitive,\n * positions: [\n * 202, 202, 202, 200, 202, 202,\n * 200, 200, 202, 202, 200, 202,\n * 202, 202, 202, 202, 200, 202,\n * 202, 200, 200, 202, 202, 200,\n * 202, 202, 202, 202, 202, 200,\n * 200, 202, 200, 200, 202, 202,\n * 200, 202, 202, 200, 202, 200,\n * 200, 200, 200, 200, 200, 202,\n * 200, 200, 200, 202, 200, 200,\n * 202, 200, 202, 200, 200, 202,\n * 202, 200, 200, 200, 200, 200,\n * 200, 202, 200, 202, 202, 200\n * ],\n * indices: [\n * 0, 1, 2, 0, 2, 3, 4, 5, 6, 4,\n * 6, 7, 8, 9, 10, 8, 10, 11, 12,\n * 13, 14, 12, 14, 15, 16, 17, 18,\n * 16, 18, 19, 20, 21, 22, 20, 22, 23\n * ]\n * });\n * ````\n *\n * The value of our new {@link @xeokit/scene!SceneGeometryCompressedParams | SceneGeometryCompressedParams} is shown below.\n *\n * We can see that:\n *\n * * Vertex positions are now relative to ````origin```` and quantized to 16-bit integers\n * * Duplicate positions are removed and indices adjusted\n * * Edge indices generated for our TrianglesPrimitive\n * * A positions 3D boundary ````aabb````, to de-quantize the positions within the Viewer\n *\n * ````javascript\n * {\n * id: \"myBoxGeometry\",\n * primitive: TrianglesPrimitive,\n * aabb: [200, 200, 200, 202, 202, 202],\n * positionsCompressed: [\n * 65525, 65525, 65525, 0, 65525, 65525,\n * 0, 0, 65525, 65525, 0, 65525, 65525,\n * 0, 0, 65525, 65525, 0, 0, 65525, 0, 0,\n * 0, 0\n * ],\n * origin: [0,0,0],\n * indices: [\n * 0, 1, 2, 0, 2, 3, 0, 3, 4, 0, 4, 5, 0, 5, 6,\n * 0, 6, 1, 1, 6, 7, 1, 7, 2, 7, 4, 3, 7, 3, 2,\n * 4, 7, 6, 4, 6, 5\n * ],\n * edgeIndices: [\n * 3, 4, 0, 4, 5, 0, 5, 6,\n * 0, 6, 1, 1, 6, 7, 1, 7,\n * 3, 2, 4, 7, 6, 4, 6\n * ]\n * }\n * ````\n *\n * In the next example, we'll again use {@link @xeokit/scene!compressGeometryParams} to compress\n * a {@link @xeokit/scene!SceneGeometryParams | SceneGeometryParams} into a\n * {@link @xeokit/scene!SceneGeometryCompressedParams | SceneGeometryCompressedParams}, which we'll then use to\n * create a compressed geometry within a {@link @xeokit/scene!SceneModel | SceneModel}.\n *\n * ````javascript\n * import {Scene} from \"@xeokit/scene\";\n * import {TrianglesPrimitive} from \"@xeokit/constants\";\n * import {compressGeometryParams} from \"@xeokit/compression\";\n *\n * const scene = new Scene();\n *\n * const sceneModel = scene.createModel({\n * id: \"myModel\"\n * });\n *\n * const geometryCompressedParams = compressGeometryParams({\n * id: \"myBoxGeometry\",\n * primitive: TrianglesPrimitive,\n * positions: [202, 202, 202, 200, 202, 202, ...],\n * indices: [0, 1, 2, 0, 2, 3, 4, 5, 6, 4, ...]\n * });\n *\n * sceneModel.createGeometryCompressed(geometryCompressedParams);\n *\n * sceneModel.createLayerMesh({ id: \"myMesh\", geometryId: \"myGeometry\" });\n *\n * sceneModel.createObject({ id: \"myObject1\", meshIds: [\"myMesh\"] });\n * sceneModel.createObject({ id: \"myObject2\", meshIds: [\"myMesh\"] });\n *\n * sceneModel.build();\n * ````\n *\n * @module @xeokit/compression\n */\n\nimport {\n createMat3,\n createMat4,\n createVec3,\n identityMat3,\n identityMat4,\n mulMat3,\n mulMat4,\n normalizeVec3,\n scalingMat3v,\n scalingMat4v,\n transformVec3,\n translationMat3v,\n translationMat4v\n} from \"@xeokit/matrix\";\n\nimport type {FloatArrayParam} from \"@xeokit/math\";\n\nconst translate = createMat4();\nconst scale = createMat4();\n\n/**\n * Gets the boundary of a flat positions array.\n *\n * @param array\n * @param min\n * @param max\n */\nexport function getPositions3MinMax(array: FloatArrayParam, min?: FloatArrayParam, max?: FloatArrayParam) {\n let i, j;\n min = min || new Float64Array(3);\n max = max || new Float64Array(3);\n for (i = 0; i < 3; i++) {\n min[i] = Number.MAX_VALUE;\n max[i] = -Number.MAX_VALUE;\n }\n for (i = 0; i < array.length; i += 3) {\n for (j = 0; j < 3; j++) {\n min[j] = Math.min(min[j], array[i + j]);\n max[j] = Math.max(max[j], array[i + j]);\n }\n }\n return {\n min,\n max\n };\n}\n\n/**\n * Creates a de-quantization matrix from a boundary.\n */\nexport function createPositions3DecompressMat4(aabb: FloatArrayParam, positionsDecompressMatrix?: FloatArrayParam): FloatArrayParam {\n positionsDecompressMatrix = positionsDecompressMatrix || createMat4();\n const xmin = aabb[0];\n const ymin = aabb[1];\n const zmin = aabb[2];\n const xwid = aabb[3] - xmin;\n const ywid = aabb[4] - ymin;\n const zwid = aabb[5] - zmin;\n const maxInt = 65535;\n identityMat4(translate);\n translationMat4v(aabb, translate);\n identityMat4(scale);\n scalingMat4v([xwid / maxInt, ywid / maxInt, zwid / maxInt], scale);\n mulMat4(translate, scale, positionsDecompressMatrix);\n return positionsDecompressMatrix;\n}\n\n/**\n * Compresses a flat positions array\n */\nexport function compressPositions3(array: FloatArrayParam, min: FloatArrayParam, max: FloatArrayParam) {\n const quantized = new Uint16Array(array.length);\n var multiplier = new Float32Array([\n max[0] !== min[0] ? 65535 / (max[0] - min[0]) : 0,\n max[1] !== min[1] ? 65535 / (max[1] - min[1]) : 0,\n max[2] !== min[2] ? 65535 / (max[2] - min[2]) : 0\n ]);\n let i;\n for (i = 0; i < array.length; i += 3) {\n quantized[i + 0] = Math.floor((array[i + 0] - min[0]) * multiplier[0]);\n quantized[i + 1] = Math.floor((array[i + 1] - min[1]) * multiplier[1]);\n quantized[i + 2] = Math.floor((array[i + 2] - min[2]) * multiplier[2]);\n }\n identityMat4(translate);\n translationMat4v(min, translate);\n identityMat4(scale);\n scalingMat4v([\n (max[0] - min[0]) / 65535,\n (max[1] - min[1]) / 65535,\n (max[2] - min[2]) / 65535\n ], scale);\n const decompressMatrix = mulMat4(translate, scale, identityMat4());\n return {\n quantized: quantized,\n decompressMatrix: decompressMatrix\n };\n}\n\n/**\n * Compresses a 3D position\n * @param p\n * @param aabb\n * @param dest\n */\nexport function compressPoint3WithAABB3(p: FloatArrayParam, aabb: FloatArrayParam, dest: FloatArrayParam = p) {\n const multiplier = new Float32Array([\n aabb[3] !== aabb[0] ? 65535 / (aabb[3] - aabb[0]) : 0,\n aabb[4] !== aabb[1] ? 65535 / (aabb[4] - aabb[1]) : 0,\n aabb[5] !== aabb[2] ? 65535 / (aabb[5] - aabb[2]) : 0\n ]);\n dest[0] = Math.max(0, Math.min(65535, Math.floor((p[0] - aabb[0]) * multiplier[0])));\n dest[1] = Math.max(0, Math.min(65535, Math.floor((p[1] - aabb[1]) * multiplier[1])));\n dest[2] = Math.max(0, Math.min(65535, Math.floor((p[2] - aabb[2]) * multiplier[2])));\n return dest;\n}\n\n/**\n * Decompresses a 3D position\n * @param position\n * @param decompressMatrix\n * @param dest\n */\nexport function decompressPoint3WithMat4(position: FloatArrayParam, decompressMatrix: FloatArrayParam, dest: FloatArrayParam = position): FloatArrayParam {\n dest[0] = position[0] * decompressMatrix[0] + decompressMatrix[12];\n dest[1] = position[1] * decompressMatrix[5] + decompressMatrix[13];\n dest[2] = position[2] * decompressMatrix[10] + decompressMatrix[14];\n return dest;\n}\n\n/**\n * Decompresses a 3D position\n * @param position\n * @param aabb\n * @param dest\n */\nexport function decompressPoint3WithAABB3(position: FloatArrayParam, aabb: FloatArrayParam, dest: FloatArrayParam = position): FloatArrayParam {\n const xScale = (aabb[3] - aabb[0]) / 65535;\n const xOffset = aabb[0];\n const yScale = (aabb[4] - aabb[1]) / 65535;\n const yOffset = aabb[1];\n const zScale = (aabb[5] - aabb[2]) / 65535;\n const zOffset = aabb[2];\n\n dest[0] = position[0] * xScale + xOffset;\n dest[1] = position[1] * yScale + yOffset;\n dest[2] = position[2] * zScale + zOffset;\n return dest;\n}\n\n/**\n * Decompresses an axis-aligned 3D boundary\n * @param aabb\n * @param decompressMatrix\n * @param dest\n */\nexport function decompressAABB3WithMat4(aabb: FloatArrayParam, decompressMatrix: FloatArrayParam, dest: FloatArrayParam = aabb): FloatArrayParam {\n dest[0] = aabb[0] * decompressMatrix[0] + decompressMatrix[12];\n dest[1] = aabb[1] * decompressMatrix[5] + decompressMatrix[13];\n dest[2] = aabb[2] * decompressMatrix[10] + decompressMatrix[14];\n dest[3] = aabb[3] * decompressMatrix[0] + decompressMatrix[12];\n dest[4] = aabb[4] * decompressMatrix[5] + decompressMatrix[13];\n dest[5] = aabb[5] * decompressMatrix[10] + decompressMatrix[14];\n return dest;\n}\n\n/**\n * Decompresses an axis-aligned 3D boundary\n * @param aabb\n * @param aabb2\n * @param dest\n */\nexport function decompressAABB3WithAABB3(aabb: FloatArrayParam, aabb2: FloatArrayParam, dest: FloatArrayParam = aabb): FloatArrayParam {\n const xScale = (aabb2[3] - aabb2[0]) / 65535;\n const xOffset = aabb2[0];\n const yScale = (aabb2[4] - aabb2[1]) / 65535;\n const yOffset = aabb2[1];\n const zScale = (aabb2[5] - aabb2[2]) / 65535;\n const zOffset = aabb2[2];\n dest[0] = aabb[0] * xScale + xOffset;\n dest[1] = aabb[1] * yScale + yOffset;\n dest[2] = aabb[2] * zScale + zOffset;\n dest[3] = aabb[3] * xScale + xOffset;\n dest[4] = aabb[4] * yScale + yOffset;\n dest[5] = aabb[5] * zScale + zOffset;\n return dest;\n}\n\n/**\n * Decompresses a flat array of positions\n * @param positions\n * @param decompressMatrix\n * @param dest\n */\nexport function decompressPositions3WithMat4(positions: FloatArrayParam, decompressMatrix: FloatArrayParam, dest: Float32Array = new Float32Array(positions.length)): Float32Array {\n for (let i = 0, len = positions.length; i < len; i += 3) {\n dest[i + 0] = positions[i + 0] * decompressMatrix[0] + decompressMatrix[12];\n dest[i + 1] = positions[i + 1] * decompressMatrix[5] + decompressMatrix[13];\n dest[i + 2] = positions[i + 2] * decompressMatrix[10] + decompressMatrix[14];\n }\n return dest;\n}\n\n/**\n * Decompresses a flat array of positions\n * @param positions\n * @param decompressMatrix\n * @param dest\n */\nexport function decompressPositions3WithAABB3(positions: FloatArrayParam, aabb: FloatArrayParam, dest: Float32Array = new Float32Array(positions.length)): Float32Array {\n const xScale = (aabb[3] - aabb[0]);\n const xOffset = aabb[0];\n const yScale = (aabb[4] - aabb[1]);\n const yOffset = aabb[1];\n const zScale = (aabb[5] - aabb[2]);\n const zOffset = aabb[2];\n for (let i = 0, len = positions.length; i < len; i += 3) {\n dest[i + 0] = positions[i + 0] * xScale + xOffset;\n dest[i + 1] = positions[i + 1] * yScale + yOffset;\n dest[i + 2] = positions[i + 2] * zScale + zOffset;\n }\n return dest;\n}\n\n/**\n * Gets the 2D min/max boundary of a flat array of UV coordinate\n * @param array\n */\nexport function getUVBounds(array: FloatArrayParam): { min: FloatArrayParam, max: FloatArrayParam } {\n const min = new Float32Array(2);\n const max = new Float32Array(2);\n let i, j;\n for (i = 0; i < 2; i++) {\n min[i] = Number.MAX_VALUE;\n max[i] = -Number.MAX_VALUE;\n }\n for (i = 0; i < array.length; i += 2) {\n for (j = 0; j < 2; j++) {\n min[j] = Math.min(min[j], array[i + j]);\n max[j] = Math.max(max[j], array[i + j]);\n }\n }\n return {\n min: min,\n max: max\n };\n}\n\n/**\n * Compresses a flat array of UV coordinates\n */\nexport var compressUVs = (function () {\n const translate = createMat3();\n const scale = createMat3();\n return function (array: FloatArrayParam, min: FloatArrayParam, max: FloatArrayParam): {\n quantized: Uint16Array,\n decompressMatrix: FloatArrayParam | Float64Array\n } {\n const quantized = new Uint16Array(array.length);\n const multiplier = new Float32Array([\n 65535 / (max[0] - min[0]),\n 65535 / (max[1] - min[1])\n ]);\n let i;\n for (i = 0; i < array.length; i += 2) {\n quantized[i + 0] = Math.floor((array[i + 0] - min[0]) * multiplier[0]);\n quantized[i + 1] = Math.floor((array[i + 1] - min[1]) * multiplier[1]);\n }\n identityMat3(translate);\n translationMat3v(min, translate);\n identityMat3(scale);\n scalingMat3v([\n (max[0] - min[0]) / 65535,\n (max[1] - min[1]) / 65535\n ], scale);\n const decompressMatrix = mulMat3(translate, scale, identityMat3());\n return {\n quantized: quantized,\n decompressMatrix: decompressMatrix\n };\n };\n})();\n\n/**\n * Oct-encodes a flat array of normal vectors\n * @param array\n */\nexport function compressNormals(array: FloatArrayParam): Int8Array { // http://jcgt.org/published/0003/02/01/\n\n // Note: three elements for each encoded normal, in which the last element in each triplet is redundant.\n // This is to work around a mysterious WebGL issue where 2-element normals just wouldn't work in the shader :/\n\n const encoded = new Int8Array(array.length);\n let oct, dec, best, currentCos, bestCos;\n for (let i = 0; i < array.length; i += 3) {\n // Test various combinations of ceil and floor\n // to minimize rounding errors\n best = oct = octEncodeNormalFromArray(array, i, \"floor\", \"floor\");\n dec = octDecodeVec2(oct);\n currentCos = bestCos = dot(array, i, dec);\n oct = octEncodeNormalFromArray(array, i, \"ceil\", \"floor\");\n dec = octDecodeVec2(oct);\n currentCos = dot(array, i, dec);\n if (currentCos > bestCos) {\n best = oct;\n bestCos = currentCos;\n }\n oct = octEncodeNormalFromArray(array, i, \"floor\", \"ceil\");\n dec = octDecodeVec2(oct);\n currentCos = dot(array, i, dec);\n if (currentCos > bestCos) {\n best = oct;\n bestCos = currentCos;\n }\n oct = octEncodeNormalFromArray(array, i, \"ceil\", \"ceil\");\n dec = octDecodeVec2(oct);\n currentCos = dot(array, i, dec);\n if (currentCos > bestCos) {\n best = oct;\n bestCos = currentCos;\n }\n encoded[i] = best[0];\n encoded[i + 1] = best[1];\n }\n return encoded;\n}\n\n/**\n */\nfunction octEncodeNormalFromArray(array: FloatArrayParam, i: number, xfunc: any, yfunc: any): Int8Array { // Oct-encode single normal vector in 2 bytes\n let x = array[i] / (Math.abs(array[i]) + Math.abs(array[i + 1]) + Math.abs(array[i + 2]));\n let y = array[i + 1] / (Math.abs(array[i]) + Math.abs(array[i + 1]) + Math.abs(array[i + 2]));\n if (array[i + 2] < 0) {\n let tempx = (1 - Math.abs(y)) * (x >= 0 ? 1 : -1);\n let tempy = (1 - Math.abs(x)) * (y >= 0 ? 1 : -1);\n x = tempx;\n y = tempy;\n }\n // @ts-ignore\n return new Int8Array([Math[xfunc](x * 127.5 + (x < 0 ? -1 : 0)), Math[yfunc](y * 127.5 + (y < 0 ? -1 : 0))]);\n}\n\n\n/**\n * Dot product of a normal in an array against a candidate decoding\n */\nfunction dot(array: FloatArrayParam, i: number, createVec3: FloatArrayParam): number {\n return array[i] * createVec3[0] + array[i + 1] * createVec3[1] + array[i + 2] * createVec3[2];\n}\n\n/**\n */\nexport function decompressUV(uv: FloatArrayParam, decompressMatrix: FloatArrayParam, dest = new Float32Array(2)) {\n dest[0] = uv[0] * decompressMatrix[0] + decompressMatrix[6];\n dest[1] = uv[1] * decompressMatrix[4] + decompressMatrix[7];\n}\n\n/**\n *\n */\nexport function decompressUVs(uvs: FloatArrayParam, decompressMatrix: FloatArrayParam, dest = new Float32Array(uvs.length)) {\n for (let i = 0, len = uvs.length; i < len; i += 3) {\n dest[i + 0] = uvs[i + 0] * decompressMatrix[0] + decompressMatrix[6];\n dest[i + 1] = uvs[i + 1] * decompressMatrix[4] + decompressMatrix[7];\n }\n return dest;\n}\n\n/**\n *\n */\nexport function decompressNormal(oct: FloatArrayParam, result: FloatArrayParam): FloatArrayParam {\n let x = oct[0];\n let y = oct[1];\n x = (2 * x + 1) / 255;\n y = (2 * y + 1) / 255;\n const z = 1 - Math.abs(x) - Math.abs(y);\n if (z < 0) {\n x = (1 - Math.abs(y)) * (x >= 0 ? 1 : -1);\n y = (1 - Math.abs(x)) * (y >= 0 ? 1 : -1);\n }\n const length = Math.sqrt(x * x + y * y + z * z);\n result[0] = x / length;\n result[1] = y / length;\n result[2] = z / length;\n return result;\n}\n\n/**\n *\n */\nexport function decompressNormals(octs: string | any[], result: FloatArrayParam): FloatArrayParam {\n for (let i = 0, j = 0, len = octs.length; i < len; i += 2) {\n let x = octs[i + 0];\n let y = octs[i + 1];\n x = (2 * x + 1) / 255;\n y = (2 * y + 1) / 255;\n const z = 1 - Math.abs(x) - Math.abs(y);\n if (z < 0) {\n x = (1 - Math.abs(y)) * (x >= 0 ? 1 : -1);\n y = (1 - Math.abs(x)) * (y >= 0 ? 1 : -1);\n }\n const length = Math.sqrt(x * x + y * y + z * z);\n result[j + 0] = x / length;\n result[j + 1] = y / length;\n result[j + 2] = z / length;\n j += 3;\n }\n return result;\n}\n\n/**\n *\n * @param oct\n * @param result\n */\nfunction octDecodeVec2(oct: Int8Array, result: FloatArrayParam = createVec3()): FloatArrayParam {\n let x = oct[0];\n let y = oct[1];\n x = (2 * x + 1) / 255;\n y = (2 * y + 1) / 255;\n const z = 1 - Math.abs(x) - Math.abs(y);\n if (z < 0) {\n x = (1 - Math.abs(y)) * (x >= 0 ? 1 : -1);\n y = (1 - Math.abs(x)) * (y >= 0 ? 1 : -1);\n }\n const length = Math.sqrt(x * x + y * y + z * z);\n result[0] = x / length;\n result[1] = y / length;\n result[2] = z / length;\n return result;\n}\n\n/**\n *\n */\nfunction octDecodeVec2s(octs: Int8Array, result: FloatArrayParam): FloatArrayParam {\n for (let i = 0, j = 0, len = octs.length; i < len; i += 2) {\n let x = octs[i + 0];\n let y = octs[i + 1];\n x = (2 * x + 1) / 255;\n y = (2 * y + 1) / 255;\n const z = 1 - Math.abs(x) - Math.abs(y);\n if (z < 0) {\n x = (1 - Math.abs(y)) * (x >= 0 ? 1 : -1);\n y = (1 - Math.abs(x)) * (y >= 0 ? 1 : -1);\n }\n const length = Math.sqrt(x * x + y * y + z * z);\n result[j + 0] = x / length;\n result[j + 1] = y / length;\n result[j + 2] = z / length;\n j += 3;\n }\n return result;\n}\n\n/**\n * @private\n */\nexport function quantizePositions3AndCreateMat4(positions: FloatArrayParam, aabb: FloatArrayParam, positionsDecompressMatrix: FloatArrayParam) { // http://cg.postech.ac.kr/research/mesh_comp_mobile/mesh_comp_mobile_conference.pdf\n const lenPositions = positions.length;\n const positionsCompressed = new Uint16Array(lenPositions);\n const xmin = aabb[0];\n const ymin = aabb[1];\n const zmin = aabb[2];\n const xwid = aabb[3] - xmin;\n const ywid = aabb[4] - ymin;\n const zwid = aabb[5] - zmin;\n const maxInt = 65525;\n const xMultiplier = maxInt / xwid;\n const yMultiplier = maxInt / ywid;\n const zMultiplier = maxInt / zwid;\n const verify = (num: number) => num >= 0 ? num : 0;\n for (let i = 0; i < lenPositions; i += 3) {\n positionsCompressed[i + 0] = Math.floor(verify(positions[i + 0] - xmin) * xMultiplier);\n positionsCompressed[i + 1] = Math.floor(verify(positions[i + 1] - ymin) * yMultiplier);\n positionsCompressed[i + 2] = Math.floor(verify(positions[i + 2] - zmin) * zMultiplier);\n }\n identityMat4(translate);\n translationMat4v(aabb, translate);\n identityMat4(scale);\n scalingMat4v([xwid / maxInt, ywid / maxInt, zwid / maxInt], scale);\n mulMat4(translate, scale, positionsDecompressMatrix);\n return positionsCompressed;\n}\n\n/**\n * @private\n */\nexport function quantizePositions3(positions: FloatArrayParam, aabb: FloatArrayParam) { // http://cg.postech.ac.kr/research/mesh_comp_mobile/mesh_comp_mobile_conference.pdf\n const lenPositions = positions.length;\n const positionsCompressed = new Uint16Array(lenPositions);\n const xmin = aabb[0];\n const ymin = aabb[1];\n const zmin = aabb[2];\n const xwid = aabb[3] - xmin;\n const ywid = aabb[4] - ymin;\n const zwid = aabb[5] - zmin;\n const maxInt = 65525;\n const xMultiplier = maxInt / xwid;\n const yMultiplier = maxInt / ywid;\n const zMultiplier = maxInt / zwid;\n const verify = (num: number) => num >= 0 ? num : 0;\n for (let i = 0; i < lenPositions; i += 3) {\n positionsCompressed[i + 0] = Math.floor(verify(positions[i + 0] - xmin) * xMultiplier);\n positionsCompressed[i + 1] = Math.floor(verify(positions[i + 1] - ymin) * yMultiplier);\n positionsCompressed[i + 2] = Math.floor(verify(positions[i + 2] - zmin) * zMultiplier);\n }\n return positionsCompressed;\n}\n\n/**\n * @private\n */\nexport function transformAndOctEncodeNormals(worldNormalMatrix: FloatArrayParam, normals: FloatArrayParam, lenNormals: number, compressedNormals: FloatArrayParam, lenCompressedNormals: number) {\n\n function dot(p: FloatArrayParam, createVec3: FloatArrayParam) { // Dot product of a normal in an array against a candidate decoding\n return p[0] * createVec3[0] + p[1] * createVec3[1] + p[2] * createVec3[2];\n }\n\n // http://jcgt.org/published/0003/02/01/\n let oct, dec, best, currentCos, bestCos;\n let i, ei;\n let localNormal = new Float32Array([0, 0, 0, 0]);\n let worldNormal = new Float32Array([0, 0, 0, 0]);\n for (i = 0; i < lenNormals; i += 3) {\n localNormal[0] = normals[i];\n localNormal[1] = normals[i + 1];\n localNormal[2] = normals[i + 2];\n\n transformVec3(worldNormalMatrix, localNormal, worldNormal);\n normalizeVec3(worldNormal, worldNormal);\n\n // Test various combinations of ceil and floor to minimize rounding errors\n best = oct = octEncodeVec3(worldNormal, \"floor\", \"floor\");\n dec = octDecodeVec2(oct);\n currentCos = bestCos = dot(worldNormal, dec);\n oct = octEncodeVec3(worldNormal, \"ceil\", \"floor\");\n dec = octDecodeVec2(oct);\n currentCos = dot(worldNormal, dec);\n if (currentCos > bestCos) {\n best = oct;\n bestCos = currentCos;\n }\n oct = octEncodeVec3(worldNormal, \"floor\", \"ceil\");\n dec = octDecodeVec2(oct);\n currentCos = dot(worldNormal, dec);\n if (currentCos > bestCos) {\n best = oct;\n bestCos = currentCos;\n }\n oct = octEncodeVec3(worldNormal, \"ceil\", \"ceil\");\n dec = octDecodeVec2(oct);\n currentCos = dot(worldNormal, dec);\n if (currentCos > bestCos) {\n best = oct;\n bestCos = currentCos;\n }\n compressedNormals[lenCompressedNormals + i + 0] = best[0];\n compressedNormals[lenCompressedNormals + i + 1] = best[1];\n compressedNormals[lenCompressedNormals + i + 2] = 0.0; // Unused\n }\n lenCompressedNormals += lenNormals;\n return lenCompressedNormals;\n}\n\n/**\n * @private\n */\nexport function octEncodeNormals(normals: FloatArrayParam) { // http://jcgt.org/published/0003/02/01/\n const lenNormals = normals.length;\n const compressedNormals = new Int8Array(lenNormals)\n let oct, dec, best, currentCos, bestCos;\n for (let i = 0; i < lenNormals; i += 3) {\n // Test various combinations of ceil and floor to minimize rounding errors\n best = oct = octEncodeNormal(normals, i, \"floor\", \"floor\");\n dec = octDecodeVec2(oct);\n currentCos = bestCos = dot(normals, i, dec);\n oct = octEncodeNormal(normals, i, \"ceil\", \"floor\");\n dec = octDecodeVec2(oct);\n currentCos = dot(normals, i, dec);\n if (currentCos > bestCos) {\n best = oct;\n bestCos = currentCos;\n }\n oct = octEncodeNormal(normals, i, \"floor\", \"ceil\");\n dec = octDecodeVec2(oct);\n currentCos = dot(normals, i, dec);\n if (currentCos > bestCos) {\n best = oct;\n bestCos = currentCos;\n }\n oct = octEncodeNormal(normals, i, \"ceil\", \"ceil\");\n dec = octDecodeVec2(oct);\n currentCos = dot(normals, i, dec);\n if (currentCos > bestCos) {\n best = oct;\n bestCos = currentCos;\n }\n compressedNormals[i + 0] = best[0];\n compressedNormals[i + 1] = best[1];\n compressedNormals[i + 2] = 0.0; // Unused\n }\n return compressedNormals;\n}\n\n/**\n * @private\n */\nexport function octEncodeVec3(p: FloatArrayParam, xfunc: string, yfunc: string): Int8Array { // Oct-encode single normal vector in 2 bytes\n let x = p[0] / (Math.abs(p[0]) + Math.abs(p[1]) + Math.abs(p[2]));\n let y = p[1] / (Math.abs(p[0]) + Math.abs(p[1]) + Math.abs(p[2]));\n if (p[2] < 0) {\n let tempx = x;\n let tempy = y;\n tempx = (1 - Math.abs(y)) * (x >= 0 ? 1 : -1);\n tempy = (1 - Math.abs(x)) * (y >= 0 ? 1 : -1);\n x = tempx;\n y = tempy;\n }\n // @ts-ignore\n return new Int8Array([Math[xfunc](x * 127.5 + (x < 0 ? -1 : 0)), Math[yfunc](y * 127.5 + (y < 0 ? -1 : 0))]);\n}\n\n/**\n * @private\n */\nexport function octEncodeNormal(array: FloatArrayParam, i: number, xfunc: string, yfunc: string): Int8Array { // Oct-encode single normal vector in 2 bytes\n let x = array[i] / (Math.abs(array[i]) + Math.abs(array[i + 1]) + Math.abs(array[i + 2]));\n let y = array[i + 1] / (Math.abs(array[i]) + Math.abs(array[i + 1]) + Math.abs(array[i + 2]));\n if (array[i + 2] < 0) {\n let tempx = (1 - Math.abs(y)) * (x >= 0 ? 1 : -1);\n let tempy = (1 - Math.abs(x)) * (y >= 0 ? 1 : -1);\n x = tempx;\n y = tempy;\n }\n // @ts-ignore\n return new Int8Array([Math[xfunc](x * 127.5 + (x < 0 ? -1 : 0)), Math[yfunc](y * 127.5 + (y < 0 ? -1 : 0))]);\n}\n\n/**\n * Compresses a flat array of floatinging point RGB/RGBA colors.\n */\nexport function compressRGBColors(colors: FloatArrayParam) { // http://cg.postech.ac.kr/research/mesh_comp_mobile/mesh_comp_mobile_conference.pdf\n const lenColors = colors.length;\n const colorsCompressed = new Uint16Array(lenColors);\n for (let i = 0; i < lenColors; i++) {\n colorsCompressed[i + 0] = Math.floor(colors[i] * 255);\n }\n return colorsCompressed;\n}\n\n", "/**\n * [![npm version](https://badge.fury.io/js/%40xeokit%2Fmath.svg)](https://badge.fury.io/js/%40xeokit%2Fmath)\n * [![](https://data.jsdelivr.com/v1/package/npm/@xeokit/badge)](https://www.jsdelivr.com/package/npm/@xeokit/math)\n *\n * # xeokit Curves Math Library\n *\n * ---\n *\n * ### *Spline curve math functions*\n *\n * ---\n *\n * ## Installation\n *\n * ````bash\n * npm install @xeokit/curves\n * ````\n *\n * ````javascript\n * import * as curves from \"@xeokit/curves\";\n *\n * //..\n * ````\n *\n * @module @xeokit/curves\n */\n\n/**\n * Finds a tangent to a quadratic B\u00E9zier curve.\n *\n * @param t\n * @param p0\n * @param p1\n * @param p2\n */\nexport function tangentQuadraticB\u00E9zier(t: number, p0: number, p1: number, p2: number): number {\n return 2 * (1 - t) * (p1 - p0) + 2 * t * (p2 - p1);\n}\n\n/**\n * Finds a tangent to a quadratic B\u00E9zier curve.\n *\n * @param t\n * @param p0\n * @param p1\n * @param p2\n */\nexport function tangentQuadraticB\u00E9zier3(t: number, p0: number, p1: number, p2: number, p3: number): number {\n return -3 * p0 * (1 - t) * (1 - t) +\n 3 * p1 * (1 - t) * (1 - t) - 6 * t * p1 * (1 - t) +\n 6 * t * p2 * (1 - t) - 3 * t * t * p2 +\n 3 * t * t * p3;\n}\n\n/**\n * Finds a tangent to a spline.\n * @param t\n */\nexport function tangentSpline(t: number) {\n const h00 = 6 * t * t - 6 * t;\n const h10 = 3 * t * t - 4 * t + 1;\n const h01 = -6 * t * t + 6 * t;\n const h11 = 3 * t * t - 2 * t;\n return h00 + h10 + h01 + h11;\n}\n\n/**\n * Catmull-Rom interpolation on a curve.\n * @param p0\n * @param p1\n * @param p2\n * @param p3\n * @param t\n */\nexport function catmullRomInterpolate(p0: number, p1: number, p2: number, p3: number, t: number): number {\n const v0 = (p2 - p0) * 0.5;\n const v1 = (p3 - p1) * 0.5;\n const t2 = t * t;\n const t3 = t * t2;\n return (2 * p1 - 2 * p2 + v0 + v1) * t3 + (-3 * p1 + 3 * p2 - 2 * v0 - v1) * t2 + v0 * t + p1;\n}\n\n// B\u00E9zier Curve formulii from http://en.wikipedia.org/wiki/B%C3%A9zier_curve\n\n// Quad B\u00E9zier Functions\n\n/**\n * Quad B\u00E9zier curve function b2p0\n *\n * @param t\n * @param p\n */\nexport function b2p0(t: number, p: number): number {\n const k = 1 - t;\n return k * k * p;\n\n}\n\n/**\n * Quad B\u00E9zier curve function b2p1\n * @param t\n * @param p\n */\nexport function b2p1(t: number, p: number): number {\n return 2 * (1 - t) * t * p;\n}\n\n/**\n * Quad B\u00E9zier curve function b2p2\n * @param t\n * @param p\n */\nexport function b2p2(t: number, p: number): number {\n return t * t * p;\n}\n\n/**\n * Quad B\u00E9zier curve function b2\n * @param t\n * @param p0\n * @param p1\n * @param p2\n */\nexport function b2(this: any, t: number, p0: number, p1: number, p2: number): number {\n return this.b2p0(t, p0) + this.b2p1(t, p1) + this.b2p2(t, p2);\n}\n\n// Cubic B\u00E9zier Functions\n\n/**\n * Cubic B\u00E9zier curve function b3p0\n * @param t\n * @param p\n */\nexport function b3p0(t: number, p: number): number {\n const k = 1 - t;\n return k * k * k * p;\n}\n\n/**\n * Cubic B\u00E9zier curve function b3p1\n * @param t\n * @param p\n */\nexport function b3p1(t: number, p: number): number {\n const k = 1 - t;\n return 3 * k * k * t * p;\n}\n\n/**\n * Cubic B\u00E9zier curve function b3p2\n * @param t\n * @param p\n */\nexport function b3p2(t: number, p: number): number {\n const k = 1 - t;\n return 3 * k * t * t * p;\n}\n\n/**\n * Cubic B\u00E9zier curve function b3p3\n * @param t\n * @param p\n */\nexport function b3p3(t: number, p: number) {\n return t * t * t * p;\n}\n\n/**\n * Cubic B\u00E9zier curve function b3\n * @param t\n * @param p0\n * @param p1\n * @param p2\n * @param p3\n */\nexport function b3(this: any, t: number, p0: number, p1: number, p2: number, p3: number) {\n return this.b3p0(t, p0) + this.b3p1(t, p1) + this.b3p2(t, p2) + this.b3p3(t, p3);\n}\n", "/**\n * [![npm version](https://badge.fury.io/js/%40xeokit%2Fprocgen.svg)](https://badge.fury.io/js/%40xeokit%2Fprocgen)\n * [![](https://data.jsdelivr.com/v1/package/npm/@xeokit/procgen/badge)](https://www.jsdelivr.com/package/npm/@xeokit/procgen)\n *\n * \n *\n * # xeokit SceneGeometry Builder Functions\n *\n * ---\n *\n * ### *Functions to generate various 3D geometric primitives*\n *\n * ---\n *\n * ## Installation\n *\n * ````bash\n * npm install @xeokit/procgen\n * ````\n *\n * ## Usage\n *\n * ````javascript\n * import {buildBoxGeometry} from \"@xeokit/procgen\";\n *\n * const geometryArrays = buildBoxGeometry({\n * center: [0,0,0],\n * xSize: 1, // Half-size on each axis\n * ySize: 1,\n * zSize: 1\n * });\n * ````\n *\n * @module @xeokit/procgen\n */\nexport * from \"./buildBoxGeometry\";\nexport * from \"./buildGridGeometry\"\nexport * from \"./buildBoxLinesGeometry\";\nexport * from \"./buildCylinderGeometry\";\nexport * from \"./buildSphereGeometry\";\nexport * from \"./buildTorusGeometry\";\nexport * from \"./buildVectorTextGeometry\";\nexport * from \"./buildPlaneGeometry\";\nexport * from \"./GeometryArrays\";\n", "import * as utils from \"@xeokit/utils\";\nimport type {GeometryArrays} from \"./GeometryArrays\";\nimport {TrianglesPrimitive} from \"@xeokit/constants\";\nimport {SDKError} from \"@xeokit/core\";\n\n/**\n * Creates box-shaped geometry arrays.\n *\n * ## Usage\n *\n * Creating a {@link @xeokit/scene!SceneMesh} with a box-shaped {@link @xeokit/scene!SceneGeometry}:\n *\n * ````javascript\n * TODO\n * ````\n *\n * @function buildBoxGeometry\n * @param cfg Configs\n * @param [cfg.id] Optional ID, unique among all components in the parent {@link @xeokit/scene!Scene | Scene}, generated automatically when omitted.\n * @param [cfg.center] 3D point indicating the center position.\n * @param [cfg.xSize=1.0] Half-size on the X-axis.\n * @param [cfg.ySize=1.0] Half-size on the Y-axis.\n * @param [cfg.zSize=1.0] Half-size on the Z-axis.\n * @returns {Object} GeometryArrays arrays.\n */\nexport function buildBoxGeometry(cfg: {\n center?: number[],\n ySize?: number,\n xSize?: number,\n zSize?: number\n} = {\n center: [0, 0, 0],\n xSize: 1,\n ySize: 1,\n zSize: 1\n}): GeometryArrays | SDKError {\n\n let xSize = cfg.xSize || 1;\n if (xSize < 0) {\n return new SDKError(\"Negative xSize not allowed\");\n }\n\n let ySize = cfg.ySize || 1;\n if (ySize < 0) {\n return new SDKError(\"Negative ySize not allowed\");\n }\n\n let zSize = cfg.zSize || 1;\n if (zSize < 0) {\n return new SDKError(\"Negative zSize not allowed\");\n }\n\n const center = cfg.center;\n const centerX = center ? center[0] : 0;\n const centerY = center ? center[1] : 0;\n const centerZ = center ? center[2] : 0;\n\n const xmin = -xSize + centerX;\n const ymin = -ySize + centerY;\n const zmin = -zSize + centerZ;\n const xmax = xSize + centerX;\n const ymax = ySize + centerY;\n const zmax = zSize + centerZ;\n\n return utils.apply(cfg, {\n\n primitive: TrianglesPrimitive,\n\n // The vertices - eight for our cube, each\n // one spanning three array elements for X,Y and Z\n positions: [\n\n // v0-v1-v2-v3 front\n xmax, ymax, zmax,\n xmin, ymax, zmax,\n xmin, ymin, zmax,\n xmax, ymin, zmax,\n\n // v0-v3-v4-v1 right\n xmax, ymax, zmax,\n xmax, ymin, zmax,\n xmax, ymin, zmin,\n xmax, ymax, zmin,\n\n // v0-v1-v6-v1 top\n xmax, ymax, zmax,\n xmax, ymax, zmin,\n xmin, ymax, zmin,\n xmin, ymax, zmax,\n\n // v1-v6-v7-v2 left\n xmin, ymax, zmax,\n xmin, ymax, zmin,\n xmin, ymin, zmin,\n xmin, ymin, zmax,\n\n // v7-v4-v3-v2 bottom\n xmin, ymin, zmin,\n xmax, ymin, zmin,\n xmax, ymin, zmax,\n xmin, ymin, zmax,\n\n // v4-v7-v6-v1 back\n xmax, ymin, zmin,\n xmin, ymin, zmin,\n xmin, ymax, zmin,\n xmax, ymax, zmin\n ],\n\n // UV coords\n uv: [\n\n // v0-v1-v2-v3 front\n 1, 0,\n 0, 0,\n 0, 1,\n 1, 1,\n\n // v0-v3-v4-v1 right\n 0, 0,\n 0, 1,\n 1, 1,\n 1, 0,\n\n // v0-v1-v6-v1 top\n 1, 1,\n 1, 0,\n 0, 0,\n 0, 1,\n\n // v1-v6-v7-v2 left\n 1, 0,\n 0, 0,\n 0, 1,\n 1, 1,\n\n // v7-v4-v3-v2 bottom\n 0, 1,\n 1, 1,\n 1, 0,\n 0, 0,\n\n // v4-v7-v6-v1 back\n 0, 1,\n 1, 1,\n 1, 0,\n 0, 0\n ],\n\n // Indices - these organise the\n // positions and uv texture coordinates\n // into geometric primitives in accordance\n // with the \"primitive\" parameter,\n // in this case a set of three indices\n // for each triangle.\n //\n // Note that each triangle is specified\n // in counter-clockwise winding order.\n //\n // You can specify them in clockwise\n // order if you configure the Modes\n // node's frontFace flag as \"cw\", instead of\n // the default \"ccw\".\n indices: [\n 0, 1, 2,\n 0, 2, 3,\n // front\n 4, 5, 6,\n 4, 6, 7,\n // right\n 8, 9, 10,\n 8, 10, 11,\n // top\n 12, 13, 14,\n 12, 14, 15,\n // left\n 16, 17, 18,\n 16, 18, 19,\n // bottom\n 20, 21, 22,\n 20, 22, 23\n ]\n });\n}\n", "import * as utils from \"@xeokit/utils\";\nimport type {GeometryArrays} from \"./GeometryArrays\";\n\n/**\n * Creates a grid-shaped {@link @xeokit/scene!SceneGeometry}.\n *\n * ## Usage\n *\n * Creating a {@link @xeokit/scene!SceneMesh} with a grid-shaped {@link @xeokit/scene!SceneGeometry}:\n *\n * ````javascript\n\n * ````\n *\n * @function buildGridGeometry\n * @param cfg Configs\n * @param [cfg.id] Optional ID for the {@link @xeokit/scene!SceneGeometry}, unique among all components in the parent {@link @xeokit/scene!Scene | Scene}, generated automatically when omitted.\n * @param [cfg.size=1] Dimension on the X and Z-axis.\n * @param [cfg.divisions=1] Number of divisions on X and Z axis..\n * @returns {Object} Configuration for a {@link @xeokit/scene!SceneGeometry} subtype.\n */\nexport function buildGridGeometry(cfg = {\n size: 1,\n divisions: 1\n}): GeometryArrays {\n\n let size = cfg.size || 1;\n if (size < 0) {\n console.error(\"negative size not allowed - will invert\");\n size *= -1;\n }\n\n let divisions = cfg.divisions || 1;\n if (divisions < 0) {\n console.error(\"negative divisions not allowed - will invert\");\n divisions *= -1;\n }\n if (divisions < 1) {\n divisions = 1;\n }\n\n size = size || 10;\n divisions = divisions || 10;\n\n const step = size / divisions;\n const halfSize = size / 2;\n\n const positions = [];\n const indices = [];\n let l = 0;\n\n for (let i = 0, j = 0, k = -halfSize; i <= divisions; i++, k += step) {\n\n positions.push(-halfSize);\n positions.push(0);\n positions.push(k);\n\n positions.push(halfSize);\n positions.push(0);\n positions.push(k);\n\n positions.push(k);\n positions.push(0);\n positions.push(-halfSize);\n\n positions.push(k);\n positions.push(0);\n positions.push(halfSize);\n\n indices.push(l++);\n indices.push(l++);\n indices.push(l++);\n indices.push(l++);\n }\n\n return utils.apply(cfg, {\n primitive: \"lines\",\n positions: positions,\n indices: indices\n });\n}\n\n", "import * as utils from \"@xeokit/utils\";\nimport * as constants from \"@xeokit/constants\";\nimport type {GeometryArrays} from \"./GeometryArrays\";\n\n\n\n/**\n * Creates a box-shaped wireframe geometry.\n *\n * ## Usage\n *\n * Creating a {@link @xeokit/scene!SceneMesh} with a box-shaped wireframe {@link @xeokit/scene!SceneGeometry}:\n *\n * ````javascript\n * TODO\n * ````\n *\n * @function buildBoxLinesGeometry\n * @param cfg Configs\n * @param [cfg.id] Optional ID, unique among all components in the parent {@link @xeokit/scene!Scene | Scene}, generated automatically when omitted.\n * @param [cfg.center] 3D point indicating the center position.\n * @param [cfg.xSize=1.0] Half-size on the X-axis.\n * @param [cfg.ySize=1.0] Half-size on the Y-axis.\n * @param [cfg.zSize=1.0] Half-size on the Z-axis.\n * @returns {Object} Configuration for a {@link @xeokit/scene!SceneGeometry} subtype.\n */\nexport function buildBoxLinesGeometry(cfg: {\n center?: (number[] | Float32Array | Float64Array),\n ySize?: number,\n xSize?: number,\n zSize?: number\n} = {\n center: [0, 0, 0],\n xSize: 1,\n ySize: 1,\n zSize: 1\n}): GeometryArrays {\n\n let xSize = cfg.xSize || 1;\n if (xSize < 0) {\n console.error(\"negative xSize not allowed - will invert\");\n xSize *= -1;\n }\n\n let ySize = cfg.ySize || 1;\n if (ySize < 0) {\n console.error(\"negative ySize not allowed - will invert\");\n ySize *= -1;\n }\n\n let zSize = cfg.zSize || 1;\n if (zSize < 0) {\n console.error(\"negative zSize not allowed - will invert\");\n zSize *= -1;\n }\n\n const center = cfg.center;\n const centerX = center ? center[0] : 0;\n const centerY = center ? center[1] : 0;\n const centerZ = center ? center[2] : 0;\n\n const xmin = -xSize + centerX;\n const ymin = -ySize + centerY;\n const zmin = -zSize + centerZ;\n const xmax = xSize + centerX;\n const ymax = ySize + centerY;\n const zmax = zSize + centerZ;\n\n return utils.apply(cfg, {\n primitive: constants.LinesPrimitive,\n positions: [\n xmin, ymin, zmin,\n xmin, ymin, zmax,\n xmin, ymax, zmin,\n xmin, ymax, zmax,\n xmax, ymin, zmin,\n xmax, ymin, zmax,\n xmax, ymax, zmin,\n xmax, ymax, zmax\n ],\n indices: [\n 0, 1,\n 1, 3,\n 3, 2,\n 2, 0,\n 4, 5,\n 5, 7,\n 7, 6,\n 6, 4,\n 0, 4,\n 1, 5,\n 2, 6,\n 3, 7\n ]\n });\n}\n\n\n", "import * as utils from \"@xeokit/utils\";\nimport type {GeometryArrays} from \"./GeometryArrays\";\nimport {TrianglesPrimitive} from \"@xeokit/constants\";\n\n/**\n * Creates a cylinder-shaped geometry.\n *\n * ## Usage\n *\n * Creating a {@link @xeokit/scene!SceneMesh} with a cylinder-shaped {@link @xeokit/scene!SceneGeometry}:\n *\n * ````javascript\n *\n * ````\n *\n * @function buildCylinderGeometry\n * @param cfg Configs\n * @param [cfg.id] Optional ID for the {@link @xeokit/scene!SceneGeometry}, unique among all components in the parent {@link @xeokit/scene!Scene | Scene}, generated automatically when omitted.\n * @param [cfg.center] 3D point indicating the center position.\n * @param [cfg.radiusTop=1] Radius of top.\n * @param [cfg.radiusBottom=1] Radius of bottom.\n * @param [cfg.height=1] Height.\n * @param [cfg.radialSegments=60] Number of horizontal segments.\n * @param [cfg.heightSegments=1] Number of vertical segments.\n * @param [cfg.openEnded=false] Whether or not the cylinder has solid caps on the ends.\n * @returns {Object} Configuration for a {@link @xeokit/scene!SceneGeometry} subtype.\n */\nexport function buildCylinderGeometry(cfg: {\n radiusBottom: number;\n center: (number[] | Float32Array | Float64Array);\n radialSegments: number;\n heightSegments: number;\n openEnded: boolean;\n radiusTop: number;\n height: number\n} = {\n radiusTop: 1,\n radiusBottom: 1,\n height: 1,\n radialSegments: 60,\n heightSegments: 1,\n openEnded: false,\n center: [0, 0, 0]\n}): GeometryArrays {\n\n let radiusTop = cfg.radiusTop || 1;\n if (radiusTop < 0) {\n console.error(\"negative radiusTop not allowed - will invert\");\n radiusTop *= -1;\n }\n\n let radiusBottom = cfg.radiusBottom || 1;\n if (radiusBottom < 0) {\n console.error(\"negative radiusBottom not allowed - will invert\");\n radiusBottom *= -1;\n }\n\n let height = cfg.height || 1;\n if (height < 0) {\n console.error(\"negative height not allowed - will invert\");\n height *= -1;\n }\n\n let radialSegments = cfg.radialSegments || 32;\n if (radialSegments < 0) {\n console.error(\"negative radialSegments not allowed - will invert\");\n radialSegments *= -1;\n }\n if (radialSegments < 3) {\n radialSegments = 3;\n }\n\n let heightSegments = cfg.heightSegments || 1;\n if (heightSegments < 0) {\n console.error(\"negative heightSegments not allowed - will invert\");\n heightSegments *= -1;\n }\n if (heightSegments < 1) {\n heightSegments = 1;\n }\n\n const openEnded = cfg.openEnded;\n\n let center = cfg.center;\n const centerX = center ? center[0] : 0;\n const centerY = center ? center[1] : 0;\n const centerZ = center ? center[2] : 0;\n\n const heightHalf = height / 2;\n const heightLength = height / heightSegments;\n const radialAngle = (2.0 * Math.PI / radialSegments);\n const radialLength = 1.0 / radialSegments;\n //var nextRadius = this._radiusBottom;\n const radiusChange = (radiusTop - radiusBottom) / heightSegments;\n\n const positions = [];\n const normals = [];\n const uvs = [];\n const indices = [];\n\n let h;\n let i;\n\n let x;\n let z;\n\n let currentRadius;\n let currentHeight;\n\n let first;\n let second;\n\n let startIndex;\n let tu;\n let tv;\n\n // create vertices\n const normalY = (90.0 - (Math.atan(height / (radiusBottom - radiusTop))) * 180 / Math.PI) / 90.0;\n\n for (h = 0; h <= heightSegments; h++) {\n currentRadius = radiusTop - h * radiusChange;\n currentHeight = heightHalf - h * heightLength;\n\n for (i = 0; i <= radialSegments; i++) {\n x = Math.sin(i * radialAngle);\n z = Math.cos(i * radialAngle);\n\n normals.push(currentRadius * x);\n normals.push(normalY); //todo\n normals.push(currentRadius * z);\n\n uvs.push((i * radialLength));\n uvs.push(h * 1 / heightSegments);\n\n positions.push((currentRadius * x) + centerX);\n positions.push((currentHeight) + centerY);\n positions.push((currentRadius * z) + centerZ);\n }\n }\n\n // create faces\n for (h = 0; h < heightSegments; h++) {\n for (i = 0; i <= radialSegments; i++) {\n\n first = h * (radialSegments + 1) + i;\n second = first + radialSegments;\n\n indices.push(first);\n indices.push(second);\n indices.push(second + 1);\n\n indices.push(first);\n indices.push(second + 1);\n indices.push(first + 1);\n }\n }\n\n // create top cap\n if (!openEnded && radiusTop > 0) {\n startIndex = (positions.length / 3);\n\n // top center\n normals.push(0.0);\n normals.push(1.0);\n normals.push(0.0);\n\n uvs.push(0.5);\n uvs.push(0.5);\n\n positions.push(0 + centerX);\n positions.push(heightHalf + centerY);\n positions.push(0 + centerZ);\n\n // top triangle fan\n for (i = 0; i <= radialSegments; i++) {\n x = Math.sin(i * radialAngle);\n z = Math.cos(i * radialAngle);\n tu = (0.5 * Math.sin(i * radialAngle)) + 0.5;\n tv = (0.5 * Math.cos(i * radialAngle)) + 0.5;\n\n normals.push(radiusTop * x);\n normals.push(1.0);\n normals.push(radiusTop * z);\n\n uvs.push(tu);\n uvs.push(tv);\n\n positions.push((radiusTop * x) + centerX);\n positions.push((heightHalf) + centerY);\n positions.push((radiusTop * z) + centerZ);\n }\n\n for (i = 0; i < radialSegments; i++) {\n first = startIndex + 1 + i;\n\n indices.push(first);\n indices.push(first + 1);\n indices.push(startIndex);\n }\n }\n\n // create bottom cap\n if (!openEnded && radiusBottom > 0) {\n\n startIndex = (positions.length / 3);\n\n // top center\n normals.push(0.0);\n normals.push(-1.0);\n normals.push(0.0);\n\n uvs.push(0.5);\n uvs.push(0.5);\n\n positions.push(0 + centerX);\n positions.push(0 - heightHalf + centerY);\n positions.push(0 + centerZ);\n\n // top triangle fan\n for (i = 0; i <= radialSegments; i++) {\n\n x = Math.sin(i * radialAngle);\n z = Math.cos(i * radialAngle);\n\n tu = (0.5 * Math.sin(i * radialAngle)) + 0.5;\n tv = (0.5 * Math.cos(i * radialAngle)) + 0.5;\n\n normals.push(radiusBottom * x);\n normals.push(-1.0);\n normals.push(radiusBottom * z);\n\n uvs.push(tu);\n uvs.push(tv);\n\n positions.push((radiusBottom * x) + centerX);\n positions.push((0 - heightHalf) + centerY);\n positions.push((radiusBottom * z) + centerZ);\n }\n\n for (i = 0; i < radialSegments; i++) {\n first = startIndex + 1 + i;\n indices.push(startIndex);\n indices.push(first + 1);\n indices.push(first);\n }\n }\n\n return utils.apply(cfg, {\n primitive: TrianglesPrimitive,\n positions: positions,\n normals: normals,\n uv: uvs,\n indices: indices\n });\n}\n", "import * as utils from \"@xeokit/utils\";\nimport type {GeometryArrays} from \"./GeometryArrays\";\nimport {TrianglesPrimitive} from \"@xeokit/constants\";\n\n/**\n * Creates a sphere-shaped {@link @xeokit/scene!SceneGeometry}.\n *\n * ## Usage\n *\n * ````javascript\n\n * ````\n *\n * @function buildSphereGeometry\n * @param cfg Configs\n * @param [cfg.id] Optional ID for the {@link @xeokit/scene!SceneGeometry}, unique among all components in the parent {@link @xeokit/scene!Scene | Scene}, generated automatically when omitted.\n * @param [cfg.center] 3D point indicating the center position.\n * @param [cfg.radius=1] Radius.\n * @param [cfg.heightSegments=24] Number of latitudinal bands.\n * @param {Number} [cfg.widthSegments=18] Number of longitudinal bands.\n * @returns {Object} Configuration for a {@link @xeokit/scene!SceneGeometry} subtype.\n */\nexport function buildSphereGeometry(cfg: {\n center: number[];\n heightSegments: number;\n radius: number;\n widthSegments: number\n} = {\n heightSegments: 18,\n widthSegments: 18,\n radius: 1,\n center: [0, 0, 0]\n}) : GeometryArrays {\n\n const centerX = cfg.center ? cfg.center[0] : 0;\n const centerY = cfg.center ? cfg.center[1] : 0;\n const centerZ = cfg.center ? cfg.center[2] : 0;\n\n let radius = cfg.radius || 1;\n if (radius < 0) {\n console.error(\"negative radius not allowed - will invert\");\n radius *= -1;\n }\n\n let heightSegments = cfg.heightSegments || 18;\n if (heightSegments < 0) {\n console.error(\"negative heightSegments not allowed - will invert\");\n heightSegments *= -1;\n }\n heightSegments = Math.floor(heightSegments);\n if (heightSegments < 18) {\n heightSegments = 18;\n }\n\n let widthSegments = cfg.widthSegments || 18;\n if (widthSegments < 0) {\n console.error(\"negative widthSegments not allowed - will invert\");\n widthSegments *= -1;\n }\n widthSegments = Math.floor(widthSegments);\n if (widthSegments < 18) {\n widthSegments = 18;\n }\n\n const positions = [];\n const normals = [];\n const uvs = [];\n const indices = [];\n\n let i;\n let j;\n\n let theta;\n let sinTheta;\n let cosTheta;\n\n let phi;\n let sinPhi;\n let cosPhi;\n\n let x;\n let y;\n let z;\n\n let u;\n let v;\n\n let first;\n let second;\n\n for (i = 0; i <= heightSegments; i++) {\n\n theta = i * Math.PI / heightSegments;\n sinTheta = Math.sin(theta);\n cosTheta = Math.cos(theta);\n\n for (j = 0; j <= widthSegments; j++) {\n\n phi = j * 2 * Math.PI / widthSegments;\n sinPhi = Math.sin(phi);\n cosPhi = Math.cos(phi);\n\n x = cosPhi * sinTheta;\n y = cosTheta;\n z = sinPhi * sinTheta;\n u = 1.0 - j / widthSegments;\n v = i / heightSegments;\n\n normals.push(x);\n normals.push(y);\n normals.push(z);\n\n uvs.push(u);\n uvs.push(v);\n\n positions.push(centerX + radius * x);\n positions.push(centerY + radius * y);\n positions.push(centerZ + radius * z);\n }\n }\n\n for (i = 0; i < heightSegments; i++) {\n for (j = 0; j < widthSegments; j++) {\n\n first = (i * (widthSegments + 1)) + j;\n second = first + widthSegments + 1;\n\n indices.push(first + 1);\n indices.push(second + 1);\n indices.push(second);\n indices.push(first + 1);\n indices.push(second);\n indices.push(first);\n }\n }\n\n return utils.apply(cfg, {\n primitive: TrianglesPrimitive,\n positions: positions,\n normals: normals,\n uv: uvs,\n indices: indices\n });\n}\n", "import type {GeometryArrays} from \"./GeometryArrays\";\nimport {apply} from \"@xeokit/utils\";\nimport {normalizeVec3, subVec3} from \"@xeokit/matrix\";\nimport {TrianglesPrimitive} from \"@xeokit/constants\";\n\n\n/**\n * Creates a torus-shaped {@link @xeokit/scene!SceneGeometry}.\n *\n * ## Usage\n *\n * ````javascript\n\n * ````\n *\n * @function buildTorusGeometry\n * @param cfg Configs\n * @param [cfg.id] Optional ID for the {@link @xeokit/scene!SceneGeometry}, unique among all components in the parent {@link @xeokit/scene!Scene | Scene}, generated automatically when omitted.\n * @param [cfg.center] 3D point indicating the center position.\n * @param [cfg.radius=1] The overall radius.\n * @param [cfg.tube=0.3] The tube radius.\n * @param [cfg.radialSegments=32] The number of radial segments.\n * @param [cfg.tubeSegments=24] The number of tubular segments.\n * @param [cfg.arc=Math.PI*0.5] The length of the arc in radians, where Math.PI*2 is a closed torus.\n * @returns {Object} Configuration for a {@link @xeokit/scene!SceneGeometry} subtype.\n */\nexport function buildTorusGeometry(cfg: {\n tube?: number;\n arc?: number;\n center?: number[];\n radialSegments?: number;\n radius?: number;\n tubeSegments?: number\n} = {\n radius: 0,\n tube: 0,\n radialSegments: 0,\n tubeSegments: 0,\n arc: 0,\n center: [0, 0, 0]\n}): GeometryArrays {\n\n let radius = cfg.radius || 1;\n if (radius < 0) {\n console.error(\"negative radius not allowed - will invert\");\n radius *= -1;\n }\n radius *= 0.5;\n\n let tube = cfg.tube || 0.3;\n if (tube < 0) {\n console.error(\"negative tube not allowed - will invert\");\n tube *= -1;\n }\n\n let radialSegments = cfg.radialSegments || 32;\n if (radialSegments < 0) {\n console.error(\"negative radialSegments not allowed - will invert\");\n radialSegments *= -1;\n }\n if (radialSegments < 4) {\n radialSegments = 4;\n }\n\n let tubeSegments = cfg.tubeSegments || 24;\n if (tubeSegments < 0) {\n console.error(\"negative tubeSegments not allowed - will invert\");\n tubeSegments *= -1;\n }\n if (tubeSegments < 4) {\n tubeSegments = 4;\n }\n\n let arc = cfg.arc || Math.PI * 2;\n if (arc < 0) {\n console.warn(\"negative arc not allowed - will invert\");\n arc *= -1;\n }\n if (arc > 360) {\n arc = 360;\n }\n\n const center = cfg.center;\n let centerX = center ? center[0] : 0;\n let centerY = center ? center[1] : 0;\n const centerZ = center ? center[2] : 0;\n\n const positions = [];\n const normals = [];\n const uvs = [];\n const indices = [];\n\n let u;\n let v;\n let x;\n let y;\n let z;\n let vec;\n\n let i;\n let j;\n\n for (j = 0; j <= tubeSegments; j++) {\n for (i = 0; i <= radialSegments; i++) {\n\n u = i / radialSegments * arc;\n v = 0.785398 + (j / tubeSegments * Math.PI * 2);\n\n centerX = radius * Math.cos(u);\n centerY = radius * Math.sin(u);\n\n x = (radius + tube * Math.cos(v)) * Math.cos(u);\n y = (radius + tube * Math.cos(v)) * Math.sin(u);\n z = tube * Math.sin(v);\n\n positions.push(x + centerX);\n positions.push(y + centerY);\n positions.push(z + centerZ);\n\n uvs.push(1 - (i / radialSegments));\n uvs.push((j / tubeSegments));\n\n vec = normalizeVec3(subVec3([x, y, z], [centerX, centerY, centerZ], []), []);\n\n normals.push(vec[0]);\n normals.push(vec[1]);\n normals.push(vec[2]);\n }\n }\n\n let a;\n let b;\n let c;\n let d;\n\n for (j = 1; j <= tubeSegments; j++) {\n for (i = 1; i <= radialSegments; i++) {\n\n a = (radialSegments + 1) * j + i - 1;\n b = (radialSegments + 1) * (j - 1) + i - 1;\n c = (radialSegments + 1) * (j - 1) + i;\n d = (radialSegments + 1) * j + i;\n\n indices.push(a);\n indices.push(b);\n indices.push(c);\n\n indices.push(c);\n indices.push(d);\n indices.push(a);\n }\n }\n\n return apply(cfg, {\n primitive: TrianglesPrimitive,\n positions: positions,\n // normals: normals,\n // uv: uvs,\n indices: indices\n });\n}\n", "import * as utils from \"@xeokit/utils\";\nimport type {GeometryArrays} from \"./GeometryArrays\";\nimport {LinesPrimitive} from \"@xeokit/constants\";\n\n\nconst letters = {\n // @ts-ignore\n ' ': {width: 16, points: []},\n '!': {\n width: 10, points: [\n [5, 21],\n [5, 7],\n [-1, -1],\n [5, 2],\n [4, 1],\n [5, 0],\n [6, 1],\n [5, 2]\n ]\n },\n '\"': {\n width: 16, points: [\n [4, 21],\n [4, 14],\n [-1, -1],\n [12, 21],\n [12, 14]\n ]\n },\n '#': {\n width: 21, points: [\n [11, 25],\n [4, -7],\n [-1, -1],\n [17, 25],\n [10, -7],\n [-1, -1],\n [4, 12],\n [18, 12],\n [-1, -1],\n [3, 6],\n [17, 6]\n ]\n },\n '$': {\n width: 20, points: [\n [8, 25],\n [8, -4],\n [-1, -1],\n [12, 25],\n [12, -4],\n [-1, -1],\n [17, 18],\n [15, 20],\n [12, 21],\n [8, 21],\n [5, 20],\n [3, 18],\n [3, 16],\n [4, 14],\n [5, 13],\n [7, 12],\n [13, 10],\n [15, 9],\n [16, 8],\n [17, 6],\n [17, 3],\n [15, 1],\n [12, 0],\n [8, 0],\n [5, 1],\n [3, 3]\n ]\n },\n '%': {\n width: 24, points: [\n [21, 21],\n [3, 0],\n [-1, -1],\n [8, 21],\n [10, 19],\n [10, 17],\n [9, 15],\n [7, 14],\n [5, 14],\n [3, 16],\n [3, 18],\n [4, 20],\n [6, 21],\n [8, 21],\n [10, 20],\n [13, 19],\n [16, 19],\n [19, 20],\n [21, 21],\n [-1, -1],\n [17, 7],\n [15, 6],\n [14, 4],\n [14, 2],\n [16, 0],\n [18, 0],\n [20, 1],\n [21, 3],\n [21, 5],\n [19, 7],\n [17, 7]\n ]\n },\n '&': {\n width: 26, points: [\n [23, 12],\n [23, 13],\n [22, 14],\n [21, 14],\n [20, 13],\n [19, 11],\n [17, 6],\n [15, 3],\n [13, 1],\n [11, 0],\n [7, 0],\n [5, 1],\n [4, 2],\n [3, 4],\n [3, 6],\n [4, 8],\n [5, 9],\n [12, 13],\n [13, 14],\n [14, 16],\n [14, 18],\n [13, 20],\n [11, 21],\n [9, 20],\n [8, 18],\n [8, 16],\n [9, 13],\n [11, 10],\n [16, 3],\n [18, 1],\n [20, 0],\n [22, 0],\n [23, 1],\n [23, 2]\n ]\n },\n '\\'': {\n width: 10, points: [\n [5, 19],\n [4, 20],\n [5, 21],\n [6, 20],\n [6, 18],\n [5, 16],\n [4, 15]\n ]\n },\n '(': {\n width: 14, points: [\n [11, 25],\n [9, 23],\n [7, 20],\n [5, 16],\n [4, 11],\n [4, 7],\n [5, 2],\n [7, -2],\n [9, -5],\n [11, -7]\n ]\n },\n ')': {\n width: 14, points: [\n [3, 25],\n [5, 23],\n [7, 20],\n [9, 16],\n [10, 11],\n [10, 7],\n [9, 2],\n [7, -2],\n [5, -5],\n [3, -7]\n ]\n },\n '*': {\n width: 16, points: [\n [8, 21],\n [8, 9],\n [-1, -1],\n [3, 18],\n [13, 12],\n [-1, -1],\n [13, 18],\n [3, 12]\n ]\n },\n '+': {\n width: 26, points: [\n [13, 18],\n [13, 0],\n [-1, -1],\n [4, 9],\n [22, 9]\n ]\n },\n ',': {\n width: 10, points: [\n [6, 1],\n [5, 0],\n [4, 1],\n [5, 2],\n [6, 1],\n [6, -1],\n [5, -3],\n [4, -4]\n ]\n },\n '-': {\n width: 26, points: [\n [4, 9],\n [22, 9]\n ]\n },\n '.': {\n width: 10, points: [\n [5, 2],\n [4, 1],\n [5, 0],\n [6, 1],\n [5, 2]\n ]\n },\n '/': {\n width: 22, points: [\n [20, 25],\n [2, -7]\n ]\n },\n '0': {\n width: 20, points: [\n [9, 21],\n [6, 20],\n [4, 17],\n [3, 12],\n [3, 9],\n [4, 4],\n [6, 1],\n [9, 0],\n [11, 0],\n [14, 1],\n [16, 4],\n [17, 9],\n [17, 12],\n [16, 17],\n [14, 20],\n [11, 21],\n [9, 21]\n ]\n },\n '1': {\n width: 20, points: [\n [6, 17],\n [8, 18],\n [11, 21],\n [11, 0]\n ]\n },\n '2': {\n width: 20, points: [\n [4, 16],\n [4, 17],\n [5, 19],\n [6, 20],\n [8, 21],\n [12, 21],\n [14, 20],\n [15, 19],\n [16, 17],\n [16, 15],\n [15, 13],\n [13, 10],\n [3, 0],\n [17, 0]\n ]\n },\n '3': {\n width: 20, points: [\n [5, 21],\n [16, 21],\n [10, 13],\n [13, 13],\n [15, 12],\n [16, 11],\n [17, 8],\n [17, 6],\n [16, 3],\n [14, 1],\n [11, 0],\n [8, 0],\n [5, 1],\n [4, 2],\n [3, 4]\n ]\n },\n '4': {\n width: 20, points: [\n [13, 21],\n [3, 7],\n [18, 7],\n [-1, -1],\n [13, 21],\n [13, 0]\n ]\n },\n '5': {\n width: 20, points: [\n [15, 21],\n [5, 21],\n [4, 12],\n [5, 13],\n [8, 14],\n [11, 14],\n [14, 13],\n [16, 11],\n [17, 8],\n [17, 6],\n [16, 3],\n [14, 1],\n [11, 0],\n [8, 0],\n [5, 1],\n [4, 2],\n [3, 4]\n ]\n },\n '6': {\n width: 20, points: [\n [16, 18],\n [15, 20],\n [12, 21],\n [10, 21],\n [7, 20],\n [5, 17],\n [4, 12],\n [4, 7],\n [5, 3],\n [7, 1],\n [10, 0],\n [11, 0],\n [14, 1],\n [16, 3],\n [17, 6],\n [17, 7],\n [16, 10],\n [14, 12],\n [11, 13],\n [10, 13],\n [7, 12],\n [5, 10],\n [4, 7]\n ]\n },\n '7': {\n width: 20, points: [\n [17, 21],\n [7, 0],\n [-1, -1],\n [3, 21],\n [17, 21]\n ]\n },\n '8': {\n width: 20, points: [\n [8, 21],\n [5, 20],\n [4, 18],\n [4, 16],\n [5, 14],\n [7, 13],\n [11, 12],\n [14, 11],\n [16, 9],\n [17, 7],\n [17, 4],\n [16, 2],\n [15, 1],\n [12, 0],\n [8, 0],\n [5, 1],\n [4, 2],\n [3, 4],\n [3, 7],\n [4, 9],\n [6, 11],\n [9, 12],\n [13, 13],\n [15, 14],\n [16, 16],\n [16, 18],\n [15, 20],\n [12, 21],\n [8, 21]\n ]\n },\n '9': {\n width: 20, points: [\n [16, 14],\n [15, 11],\n [13, 9],\n [10, 8],\n [9, 8],\n [6, 9],\n [4, 11],\n [3, 14],\n [3, 15],\n [4, 18],\n [6, 20],\n [9, 21],\n [10, 21],\n [13, 20],\n [15, 18],\n [16, 14],\n [16, 9],\n [15, 4],\n [13, 1],\n [10, 0],\n [8, 0],\n [5, 1],\n [4, 3]\n ]\n },\n ':': {\n width: 10, points: [\n [5, 14],\n [4, 13],\n [5, 12],\n [6, 13],\n [5, 14],\n [-1, -1],\n [5, 2],\n [4, 1],\n [5, 0],\n [6, 1],\n [5, 2]\n ]\n },\n ';': {\n width: 10, points: [\n [5, 14],\n [4, 13],\n [5, 12],\n [6, 13],\n [5, 14],\n [-1, -1],\n [6, 1],\n [5, 0],\n [4, 1],\n [5, 2],\n [6, 1],\n [6, -1],\n [5, -3],\n [4, -4]\n ]\n },\n '<': {\n width: 24, points: [\n [20, 18],\n [4, 9],\n [20, 0]\n ]\n },\n '=': {\n width: 26, points: [\n [4, 12],\n [22, 12],\n [-1, -1],\n [4, 6],\n [22, 6]\n ]\n },\n '>': {\n width: 24, points: [\n [4, 18],\n [20, 9],\n [4, 0]\n ]\n },\n '?': {\n width: 18, points: [\n [3, 16],\n [3, 17],\n [4, 19],\n [5, 20],\n [7, 21],\n [11, 21],\n [13, 20],\n [14, 19],\n [15, 17],\n [15, 15],\n [14, 13],\n [13, 12],\n [9, 10],\n [9, 7],\n [-1, -1],\n [9, 2],\n [8, 1],\n [9, 0],\n [10, 1],\n [9, 2]\n ]\n },\n '@': {\n width: 27, points: [\n [18, 13],\n [17, 15],\n [15, 16],\n [12, 16],\n [10, 15],\n [9, 14],\n [8, 11],\n [8, 8],\n [9, 6],\n [11, 5],\n [14, 5],\n [16, 6],\n [17, 8],\n [-1, -1],\n [12, 16],\n [10, 14],\n [9, 11],\n [9, 8],\n [10, 6],\n [11, 5],\n [-1, -1],\n [18, 16],\n [17, 8],\n [17, 6],\n [19, 5],\n [21, 5],\n [23, 7],\n [24, 10],\n [24, 12],\n [23, 15],\n [22, 17],\n [20, 19],\n [18, 20],\n [15, 21],\n [12, 21],\n [9, 20],\n [7, 19],\n [5, 17],\n [4, 15],\n [3, 12],\n [3, 9],\n [4, 6],\n [5, 4],\n [7, 2],\n [9, 1],\n [12, 0],\n [15, 0],\n [18, 1],\n [20, 2],\n [21, 3],\n [-1, -1],\n [19, 16],\n [18, 8],\n [18, 6],\n [19, 5]\n ]\n },\n 'A': {\n width: 18, points: [\n [9, 21],\n [1, 0],\n [-1, -1],\n [9, 21],\n [17, 0],\n [-1, -1],\n [4, 7],\n [14, 7]\n ]\n },\n 'B': {\n width: 21, points: [\n [4, 21],\n [4, 0],\n [-1, -1],\n [4, 21],\n [13, 21],\n [16, 20],\n [17, 19],\n [18, 17],\n [18, 15],\n [17, 13],\n [16, 12],\n [13, 11],\n [-1, -1],\n [4, 11],\n [13, 11],\n [16, 10],\n [17, 9],\n [18, 7],\n [18, 4],\n [17, 2],\n [16, 1],\n [13, 0],\n [4, 0]\n ]\n },\n 'C': {\n width: 21, points: [\n [18, 16],\n [17, 18],\n [15, 20],\n [13, 21],\n [9, 21],\n [7, 20],\n [5, 18],\n [4, 16],\n [3, 13],\n [3, 8],\n [4, 5],\n [5, 3],\n [7, 1],\n [9, 0],\n [13, 0],\n [15, 1],\n [17, 3],\n [18, 5]\n ]\n },\n 'D': {\n width: 21, points: [\n [4, 21],\n [4, 0],\n [-1, -1],\n [4, 21],\n [11, 21],\n [14, 20],\n [16, 18],\n [17, 16],\n [18, 13],\n [18, 8],\n [17, 5],\n [16, 3],\n [14, 1],\n [11, 0],\n [4, 0]\n ]\n },\n 'E': {\n width: 19, points: [\n [4, 21],\n [4, 0],\n [-1, -1],\n [4, 21],\n [17, 21],\n [-1, -1],\n [4, 11],\n [12, 11],\n [-1, -1],\n [4, 0],\n [17, 0]\n ]\n },\n 'F': {\n width: 18, points: [\n [4, 21],\n [4, 0],\n [-1, -1],\n [4, 21],\n [17, 21],\n [-1, -1],\n [4, 11],\n [12, 11]\n ]\n },\n 'G': {\n width: 21, points: [\n [18, 16],\n [17, 18],\n [15, 20],\n [13, 21],\n [9, 21],\n [7, 20],\n [5, 18],\n [4, 16],\n [3, 13],\n [3, 8],\n [4, 5],\n [5, 3],\n [7, 1],\n [9, 0],\n [13, 0],\n [15, 1],\n [17, 3],\n [18, 5],\n [18, 8],\n [-1, -1],\n [13, 8],\n [18, 8]\n ]\n },\n 'H': {\n width: 22, points: [\n [4, 21],\n [4, 0],\n [-1, -1],\n [18, 21],\n [18, 0],\n [-1, -1],\n [4, 11],\n [18, 11]\n ]\n },\n 'I': {\n width: 8, points: [\n [4, 21],\n [4, 0]\n ]\n },\n 'J': {\n width: 16, points: [\n [12, 21],\n [12, 5],\n [11, 2],\n [10, 1],\n [8, 0],\n [6, 0],\n [4, 1],\n [3, 2],\n [2, 5],\n [2, 7]\n ]\n },\n 'K': {\n width: 21, points: [\n [4, 21],\n [4, 0],\n [-1, -1],\n [18, 21],\n [4, 7],\n [-1, -1],\n [9, 12],\n [18, 0]\n ]\n },\n 'L': {\n width: 17, points: [\n [4, 21],\n [4, 0],\n [-1, -1],\n [4, 0],\n [16, 0]\n ]\n },\n 'M': {\n width: 24, points: [\n [4, 21],\n [4, 0],\n [-1, -1],\n [4, 21],\n [12, 0],\n [-1, -1],\n [20, 21],\n [12, 0],\n [-1, -1],\n [20, 21],\n [20, 0]\n ]\n },\n 'N': {\n width: 22, points: [\n [4, 21],\n [4, 0],\n [-1, -1],\n [4, 21],\n [18, 0],\n [-1, -1],\n [18, 21],\n [18, 0]\n ]\n },\n 'O': {\n width: 22, points: [\n [9, 21],\n [7, 20],\n [5, 18],\n [4, 16],\n [3, 13],\n [3, 8],\n [4, 5],\n [5, 3],\n [7, 1],\n [9, 0],\n [13, 0],\n [15, 1],\n [17, 3],\n [18, 5],\n [19, 8],\n [19, 13],\n [18, 16],\n [17, 18],\n [15, 20],\n [13, 21],\n [9, 21]\n ]\n },\n 'P': {\n width: 21, points: [\n [4, 21],\n [4, 0],\n [-1, -1],\n [4, 21],\n [13, 21],\n [16, 20],\n [17, 19],\n [18, 17],\n [18, 14],\n [17, 12],\n [16, 11],\n [13, 10],\n [4, 10]\n ]\n },\n 'Q': {\n width: 22, points: [\n [9, 21],\n [7, 20],\n [5, 18],\n [4, 16],\n [3, 13],\n [3, 8],\n [4, 5],\n [5, 3],\n [7, 1],\n [9, 0],\n [13, 0],\n [15, 1],\n [17, 3],\n [18, 5],\n [19, 8],\n [19, 13],\n [18, 16],\n [17, 18],\n [15, 20],\n [13, 21],\n [9, 21],\n [-1, -1],\n [12, 4],\n [18, -2]\n ]\n },\n 'R': {\n width: 21, points: [\n [4, 21],\n [4, 0],\n [-1, -1],\n [4, 21],\n [13, 21],\n [16, 20],\n [17, 19],\n [18, 17],\n [18, 15],\n [17, 13],\n [16, 12],\n [13, 11],\n [4, 11],\n [-1, -1],\n [11, 11],\n [18, 0]\n ]\n },\n 'S': {\n width: 20, points: [\n [17, 18],\n [15, 20],\n [12, 21],\n [8, 21],\n [5, 20],\n [3, 18],\n [3, 16],\n [4, 14],\n [5, 13],\n [7, 12],\n [13, 10],\n [15, 9],\n [16, 8],\n [17, 6],\n [17, 3],\n [15, 1],\n [12, 0],\n [8, 0],\n [5, 1],\n [3, 3]\n ]\n },\n 'T': {\n width: 16, points: [\n [8, 21],\n [8, 0],\n [-1, -1],\n [1, 21],\n [15, 21]\n ]\n },\n 'U': {\n width: 22, points: [\n [4, 21],\n [4, 6],\n [5, 3],\n [7, 1],\n [10, 0],\n [12, 0],\n [15, 1],\n [17, 3],\n [18, 6],\n [18, 21]\n ]\n },\n 'V': {\n width: 18, points: [\n [1, 21],\n [9, 0],\n [-1, -1],\n [17, 21],\n [9, 0]\n ]\n },\n 'W': {\n width: 24, points: [\n [2, 21],\n [7, 0],\n [-1, -1],\n [12, 21],\n [7, 0],\n [-1, -1],\n [12, 21],\n [17, 0],\n [-1, -1],\n [22, 21],\n [17, 0]\n ]\n },\n 'X': {\n width: 20, points: [\n [3, 21],\n [17, 0],\n [-1, -1],\n [17, 21],\n [3, 0]\n ]\n },\n 'Y': {\n width: 18, points: [\n [1, 21],\n [9, 11],\n [9, 0],\n [-1, -1],\n [17, 21],\n [9, 11]\n ]\n },\n 'Z': {\n width: 20, points: [\n [17, 21],\n [3, 0],\n [-1, -1],\n [3, 21],\n [17, 21],\n [-1, -1],\n [3, 0],\n [17, 0]\n ]\n },\n '[': {\n width: 14, points: [\n [4, 25],\n [4, -7],\n [-1, -1],\n [5, 25],\n [5, -7],\n [-1, -1],\n [4, 25],\n [11, 25],\n [-1, -1],\n [4, -7],\n [11, -7]\n ]\n },\n '\\\\': {\n width: 14, points: [\n [0, 21],\n [14, -3]\n ]\n },\n ']': {\n width: 14, points: [\n [9, 25],\n [9, -7],\n [-1, -1],\n [10, 25],\n [10, -7],\n [-1, -1],\n [3, 25],\n [10, 25],\n [-1, -1],\n [3, -7],\n [10, -7]\n ]\n },\n '^': {\n width: 16, points: [\n [6, 15],\n [8, 18],\n [10, 15],\n [-1, -1],\n [3, 12],\n [8, 17],\n [13, 12],\n [-1, -1],\n [8, 17],\n [8, 0]\n ]\n },\n '_': {\n width: 16, points: [\n [0, -2],\n [16, -2]\n ]\n },\n '`': {\n width: 10, points: [\n [6, 21],\n [5, 20],\n [4, 18],\n [4, 16],\n [5, 15],\n [6, 16],\n [5, 17]\n ]\n },\n 'a': {\n width: 19, points: [\n [15, 14],\n [15, 0],\n [-1, -1],\n [15, 11],\n [13, 13],\n [11, 14],\n [8, 14],\n [6, 13],\n [4, 11],\n [3, 8],\n [3, 6],\n [4, 3],\n [6, 1],\n [8, 0],\n [11, 0],\n [13, 1],\n [15, 3]\n ]\n },\n 'b': {\n width: 19, points: [\n [4, 21],\n [4, 0],\n [-1, -1],\n [4, 11],\n [6, 13],\n [8, 14],\n [11, 14],\n [13, 13],\n [15, 11],\n [16, 8],\n [16, 6],\n [15, 3],\n [13, 1],\n [11, 0],\n [8, 0],\n [6, 1],\n [4, 3]\n ]\n },\n 'c': {\n width: 18, points: [\n [15, 11],\n [13, 13],\n [11, 14],\n [8, 14],\n [6, 13],\n [4, 11],\n [3, 8],\n [3, 6],\n [4, 3],\n [6, 1],\n [8, 0],\n [11, 0],\n [13, 1],\n [15, 3]\n ]\n },\n 'd': {\n width: 19, points: [\n [15, 21],\n [15, 0],\n [-1, -1],\n [15, 11],\n [13, 13],\n [11, 14],\n [8, 14],\n [6, 13],\n [4, 11],\n [3, 8],\n [3, 6],\n [4, 3],\n [6, 1],\n [8, 0],\n [11, 0],\n [13, 1],\n [15, 3]\n ]\n },\n 'e': {\n width: 18, points: [\n [3, 8],\n [15, 8],\n [15, 10],\n [14, 12],\n [13, 13],\n [11, 14],\n [8, 14],\n [6, 13],\n [4, 11],\n [3, 8],\n [3, 6],\n [4, 3],\n [6, 1],\n [8, 0],\n [11, 0],\n [13, 1],\n [15, 3]\n ]\n },\n 'f': {\n width: 12, points: [\n [10, 21],\n [8, 21],\n [6, 20],\n [5, 17],\n [5, 0],\n [-1, -1],\n [2, 14],\n [9, 14]\n ]\n },\n 'g': {\n width: 19, points: [\n [15, 14],\n [15, -2],\n [14, -5],\n [13, -6],\n [11, -7],\n [8, -7],\n [6, -6],\n [-1, -1],\n [15, 11],\n [13, 13],\n [11, 14],\n [8, 14],\n [6, 13],\n [4, 11],\n [3, 8],\n [3, 6],\n [4, 3],\n [6, 1],\n [8, 0],\n [11, 0],\n [13, 1],\n [15, 3]\n ]\n },\n 'h': {\n width: 19, points: [\n [4, 21],\n [4, 0],\n [-1, -1],\n [4, 10],\n [7, 13],\n [9, 14],\n [12, 14],\n [14, 13],\n [15, 10],\n [15, 0]\n ]\n },\n 'i': {\n width: 8, points: [\n [3, 21],\n [4, 20],\n [5, 21],\n [4, 22],\n [3, 21],\n [-1, -1],\n [4, 14],\n [4, 0]\n ]\n },\n 'j': {\n width: 10, points: [\n [5, 21],\n [6, 20],\n [7, 21],\n [6, 22],\n [5, 21],\n [-1, -1],\n [6, 14],\n [6, -3],\n [5, -6],\n [3, -7],\n [1, -7]\n ]\n },\n 'k': {\n width: 17, points: [\n [4, 21],\n [4, 0],\n [-1, -1],\n [14, 14],\n [4, 4],\n [-1, -1],\n [8, 8],\n [15, 0]\n ]\n },\n 'l': {\n width: 8, points: [\n [4, 21],\n [4, 0]\n ]\n },\n 'm': {\n width: 30, points: [\n [4, 14],\n [4, 0],\n [-1, -1],\n [4, 10],\n [7, 13],\n [9, 14],\n [12, 14],\n [14, 13],\n [15, 10],\n [15, 0],\n [-1, -1],\n [15, 10],\n [18, 13],\n [20, 14],\n [23, 14],\n [25, 13],\n [26, 10],\n [26, 0]\n ]\n },\n 'n': {\n width: 19, points: [\n [4, 14],\n [4, 0],\n [-1, -1],\n [4, 10],\n [7, 13],\n [9, 14],\n [12, 14],\n [14, 13],\n [15, 10],\n [15, 0]\n ]\n },\n 'o': {\n width: 19, points: [\n [8, 14],\n [6, 13],\n [4, 11],\n [3, 8],\n [3, 6],\n [4, 3],\n [6, 1],\n [8, 0],\n [11, 0],\n [13, 1],\n [15, 3],\n [16, 6],\n [16, 8],\n [15, 11],\n [13, 13],\n [11, 14],\n [8, 14]\n ]\n },\n 'p': {\n width: 19, points: [\n [4, 14],\n [4, -7],\n [-1, -1],\n [4, 11],\n [6, 13],\n [8, 14],\n [11, 14],\n [13, 13],\n [15, 11],\n [16, 8],\n [16, 6],\n [15, 3],\n [13, 1],\n [11, 0],\n [8, 0],\n [6, 1],\n [4, 3]\n ]\n },\n 'q': {\n width: 19, points: [\n [15, 14],\n [15, -7],\n [-1, -1],\n [15, 11],\n [13, 13],\n [11, 14],\n [8, 14],\n [6, 13],\n [4, 11],\n [3, 8],\n [3, 6],\n [4, 3],\n [6, 1],\n [8, 0],\n [11, 0],\n [13, 1],\n [15, 3]\n ]\n },\n 'r': {\n width: 13, points: [\n [4, 14],\n [4, 0],\n [-1, -1],\n [4, 8],\n [5, 11],\n [7, 13],\n [9, 14],\n [12, 14]\n ]\n },\n 's': {\n width: 17, points: [\n [14, 11],\n [13, 13],\n [10, 14],\n [7, 14],\n [4, 13],\n [3, 11],\n [4, 9],\n [6, 8],\n [11, 7],\n [13, 6],\n [14, 4],\n [14, 3],\n [13, 1],\n [10, 0],\n [7, 0],\n [4, 1],\n [3, 3]\n ]\n },\n 't': {\n width: 12, points: [\n [5, 21],\n [5, 4],\n [6, 1],\n [8, 0],\n [10, 0],\n [-1, -1],\n [2, 14],\n [9, 14]\n ]\n },\n 'u': {\n width: 19, points: [\n [4, 14],\n [4, 4],\n [5, 1],\n [7, 0],\n [10, 0],\n [12, 1],\n [15, 4],\n [-1, -1],\n [15, 14],\n [15, 0]\n ]\n },\n 'v': {\n width: 16, points: [\n [2, 14],\n [8, 0],\n [-1, -1],\n [14, 14],\n [8, 0]\n ]\n },\n 'w': {\n width: 22, points: [\n [3, 14],\n [7, 0],\n [-1, -1],\n [11, 14],\n [7, 0],\n [-1, -1],\n [11, 14],\n [15, 0],\n [-1, -1],\n [19, 14],\n [15, 0]\n ]\n },\n 'x': {\n width: 17, points: [\n [3, 14],\n [14, 0],\n [-1, -1],\n [14, 14],\n [3, 0]\n ]\n },\n 'y': {\n width: 16, points: [\n [2, 14],\n [8, 0],\n [-1, -1],\n [14, 14],\n [8, 0],\n [6, -4],\n [4, -6],\n [2, -7],\n [1, -7]\n ]\n },\n 'z': {\n width: 17, points: [\n [14, 14],\n [3, 0],\n [-1, -1],\n [3, 14],\n [14, 14],\n [-1, -1],\n [3, 0],\n [14, 0]\n ]\n },\n '{': {\n width: 14, points: [\n [9, 25],\n [7, 24],\n [6, 23],\n [5, 21],\n [5, 19],\n [6, 17],\n [7, 16],\n [8, 14],\n [8, 12],\n [6, 10],\n [-1, -1],\n [7, 24],\n [6, 22],\n [6, 20],\n [7, 18],\n [8, 17],\n [9, 15],\n [9, 13],\n [8, 11],\n [4, 9],\n [8, 7],\n [9, 5],\n [9, 3],\n [8, 1],\n [7, 0],\n [6, -2],\n [6, -4],\n [7, -6],\n [-1, -1],\n [6, 8],\n [8, 6],\n [8, 4],\n [7, 2],\n [6, 1],\n [5, -1],\n [5, -3],\n [6, -5],\n [7, -6],\n [9, -7]\n ]\n },\n '|': {\n width: 8, points: [\n [4, 25],\n [4, -7]\n ]\n },\n '}': {\n width: 14, points: [\n [5, 25],\n [7, 24],\n [8, 23],\n [9, 21],\n [9, 19],\n [8, 17],\n [7, 16],\n [6, 14],\n [6, 12],\n [8, 10],\n [-1, -1],\n [7, 24],\n [8, 22],\n [8, 20],\n [7, 18],\n [6, 17],\n [5, 15],\n [5, 13],\n [6, 11],\n [10, 9],\n [6, 7],\n [5, 5],\n [5, 3],\n [6, 1],\n [7, 0],\n [8, -2],\n [8, -4],\n [7, -6],\n [-1, -1],\n [8, 8],\n [6, 6],\n [6, 4],\n [7, 2],\n [8, 1],\n [9, -1],\n [9, -3],\n [8, -5],\n [7, -6],\n [5, -7]\n ]\n },\n '~': {\n width: 24, points: [\n [3, 6],\n [3, 8],\n [4, 11],\n [6, 12],\n [8, 12],\n [10, 11],\n [14, 8],\n [16, 7],\n [18, 7],\n [20, 8],\n [21, 10],\n [-1, -1],\n [3, 8],\n [4, 10],\n [6, 11],\n [8, 11],\n [10, 10],\n [14, 7],\n [16, 6],\n [18, 6],\n [20, 7],\n [21, 10],\n [21, 12]\n ]\n }\n};\n\n/**\n * Creates wireframe vector text {@link @xeokit/scene!SceneGeometry}.\n *\n * ## Usage\n\n * ````javascript\n *\n * ````\n *\n * @function buildVectorTextGeometry\n * @param cfg Configs\n * @param [cfg.id] Optional ID, unique among all components in the parent {@link @xeokit/scene!Scene | Scene}, generated automatically when omitted.\n * @param [cfg.center] 3D point indicating the center position.\n * @param [cfg.origin] 3D point indicating the top left corner.\n * @param [cfg.size=1] Size of each character.\n * @param [cfg.text=\"\"] The text.\n * @returns {Object} Configuration for a {@link @xeokit/scene!SceneGeometry} subtype.\n */\nexport function buildVectorTextGeometry(cfg: {\n size: number;\n origin: number[];\n text: string\n} = {\n origin: [0, 0, 0],\n size: 1,\n text: \"\"\n}): GeometryArrays {\n\n var origin = cfg.origin || [0, 0, 0];\n var xOrigin = origin[0];\n var yOrigin = origin[1];\n var zOrigin = origin[2];\n var size = cfg.size || 1;\n\n var positions = [];\n var indices = [];\n var text = cfg.text;\n if (utils.isNumeric(text)) {\n text = \"\" + text;\n }\n var lines = (text || \"\").split(\"\\n\");\n var countVerts = 0;\n var y = 0;\n var x;\n var str;\n var len;\n var c;\n var mag = 1.0 / 25.0;\n var penUp;\n var p1;\n var p2;\n var needLine;\n var pointsLen;\n var a;\n\n for (var iLine = 0; iLine < lines.length; iLine++) {\n\n x = 0;\n str = lines[iLine];\n len = str.length;\n\n for (var i = 0; i < len; i++) {\n\n // @ts-ignore\n c = letters[str.charAt(i)];\n\n if (c === '\\n') {\n //alert(\"newline\");\n }\n\n if (!c) {\n continue;\n }\n\n penUp = 1;\n p1 = -1;\n p2 = -1;\n needLine = false;\n\n pointsLen = c.points.length;\n\n for (var j = 0; j < pointsLen; j++) {\n a = c.points[j];\n\n if (a[0] === -1 && a[1] === -1) {\n penUp = 1;\n needLine = false;\n continue;\n }\n\n positions.push((x + (a[0] * size) * mag) + xOrigin);\n positions.push((y + (a[1] * size) * mag) + yOrigin);\n positions.push(0 + zOrigin);\n\n if (p1 === -1) {\n p1 = countVerts;\n } else if (p2 === -1) {\n p2 = countVerts;\n } else {\n p1 = p2;\n p2 = countVerts;\n }\n countVerts++;\n\n if (penUp) {\n penUp = false;\n\n } else {\n indices.push(p1);\n indices.push(p2);\n }\n\n needLine = true;\n }\n x += c.width * mag * size;\n\n }\n y -= 35 * mag * size;\n }\n\n return utils.apply(cfg, {\n primitive: LinesPrimitive,\n positions: positions,\n indices: indices\n });\n}\n\n\n", "import * as utils from \"@xeokit/utils\";\nimport type {GeometryArrays} from \"./GeometryArrays\";\n\n/**\n * Creates a plane-shaped {@link @xeokit/scene!SceneGeometry}.\n *\n * ## Usage\n *\n * Creating a {@link @xeokit/scene!SceneMesh} with a plane-shaped {@link @xeokit/scene!SceneGeometry}:\n *\n * ````javascript\n* TODO\n * ````\n *\n * @function buildPlaneGeometry\n * @param cfg Configs\n * @param [cfg.center] 3D point indicating the center position.\n * @param [cfg.id] Optional ID for the {@link @xeokit/scene!SceneGeometry}, unique among all components in the parent {@link @xeokit/scene!Scene | Scene}, generated automatically when omitted.\n * @param [cfg.xSize=1] Dimension on the X-axis.\n * @param [cfg.zSize=1] Dimension on the Z-axis.\n * @param [cfg.xSegments=1] Number of segments on the X-axis.\n * @param [cfg.zSegments=1] Number of segments on the Z-axis.\n * @returns {Object} Configuration for a {@link @xeokit/scene!SceneGeometry} subtype.\n */\nexport function buildPlaneGeometry(cfg = {\n xSize: 0,\n zSize: 0,\n xSegments: 1,\n center: [0, 0, 0]\n\n}): GeometryArrays {\n\n let xSize = cfg.xSize || 1;\n if (xSize < 0) {\n console.error(\"negative xSize not allowed - will invert\");\n xSize *= -1;\n }\n\n let zSize = cfg.zSize || 1;\n if (zSize < 0) {\n console.error(\"negative zSize not allowed - will invert\");\n zSize *= -1;\n }\n\n let xSegments = cfg.xSegments || 1;\n if (xSegments < 0) {\n console.error(\"negative xSegments not allowed - will invert\");\n xSegments *= -1;\n }\n if (xSegments < 1) {\n xSegments = 1;\n }\n\n let zSegments = cfg.xSegments || 1;\n if (zSegments < 0) {\n console.error(\"negative zSegments not allowed - will invert\");\n zSegments *= -1;\n }\n if (zSegments < 1) {\n zSegments = 1;\n }\n\n const center = cfg.center;\n const centerX = center ? center[0] : 0;\n const centerY = center ? center[1] : 0;\n const centerZ = center ? center[2] : 0;\n\n const halfWidth = xSize / 2;\n const halfHeight = zSize / 2;\n\n const planeX = Math.floor(xSegments) || 1;\n const planeZ = Math.floor(zSegments) || 1;\n\n const planeX1 = planeX + 1;\n const planeZ1 = planeZ + 1;\n\n const segmentWidth = xSize / planeX;\n const segmentHeight = zSize / planeZ;\n\n const positions = new Float32Array(planeX1 * planeZ1 * 3);\n const normals = new Float32Array(planeX1 * planeZ1 * 3);\n const uvs = new Float32Array(planeX1 * planeZ1 * 2);\n\n let offset = 0;\n let offset2 = 0;\n\n let iz;\n let ix;\n let x;\n let a;\n let b;\n let c;\n let d;\n\n for (iz = 0; iz < planeZ1; iz++) {\n\n const z = iz * segmentHeight - halfHeight;\n\n for (ix = 0; ix < planeX1; ix++) {\n\n x = ix * segmentWidth - halfWidth;\n\n positions[offset] = x + centerX;\n positions[offset + 1] = centerY;\n positions[offset + 2] = -z + centerZ;\n\n normals[offset + 2] = -1;\n\n uvs[offset2] = (ix) / planeX;\n uvs[offset2 + 1] = ((planeZ - iz) / planeZ);\n\n offset += 3;\n offset2 += 2;\n }\n }\n\n offset = 0;\n\n const indices = new ((positions.length / 3) > 65535 ? Uint32Array : Uint16Array)(planeX * planeZ * 6);\n\n for (iz = 0; iz < planeZ; iz++) {\n\n for (ix = 0; ix < planeX; ix++) {\n\n a = ix + planeX1 * iz;\n b = ix + planeX1 * (iz + 1);\n c = (ix + 1) + planeX1 * (iz + 1);\n d = (ix + 1) + planeX1 * iz;\n\n indices[offset] = d;\n indices[offset + 1] = b;\n indices[offset + 2] = a;\n\n indices[offset + 3] = d;\n indices[offset + 4] = c;\n indices[offset + 5] = b;\n\n offset += 6;\n }\n }\n\n return utils.apply(cfg, {\n positions: positions,\n normals: normals,\n uv: uvs,\n indices: indices\n });\n}\n", "/**\n * [![npm version](https://badge.fury.io/js/%40xeokit%2Flocale.svg)](https://badge.fury.io/js/%40xeokit%2Flocale)\n * [![](https://data.jsdelivr.com/v1/package/npm/@xeokit/locale/badge)](https://www.jsdelivr.com/package/npm/@xeokit/locale)\n * \n * \n *\n * # xeokit Localization Service\n *\n * ---\n *\n * ### Repository of locale-specific translations for words and phrases\n *\n * ---\n *\n * A container of string translations (\"messages\") for various locales.\n *\n *
\n *\n * [![](https://mermaid.ink/img/pako:eNqNUsFuwjAM_ZXKp00CabtWqIeN0wQD0WsupnFHpjSpnORQIf59SUMHCImtl9TPznvPjo_QWElQQqPRuaXCL8ZOGGGkYmq8sqZY7VI85ou6IUPreEMXR2GK-CmZT7v_jvUuBw0TetqM0NNzxvZBaTkFkpxnO6TwlNgn_iV6HOkfsfdse2I_1PRIL2M70pi6cAfV32a2F5Z_WcwGVxblu_LDR7353GKclZsGsVj0KSZPXFUZQmYc3kLbEmfA_Y7vrDG1e6OhrzQu7G0w43sk8rH43oqAFwHzeSXgVUB9pfVH6fJi41p7St_fhhl0xB0qGTdndCjAH6gjAWX8ldRi0F5AdBpLMXhbD6aB0nOgGYQ-9k3nXYOyRe0iSlJ5y-vzNqbj9AOT7uJt?type=png)](https://mermaid.live/edit#pako:eNqNUsFuwjAM_ZXKp00CabtWqIeN0wQD0WsupnFHpjSpnORQIf59SUMHCImtl9TPznvPjo_QWElQQqPRuaXCL8ZOGGGkYmq8sqZY7VI85ou6IUPreEMXR2GK-CmZT7v_jvUuBw0TetqM0NNzxvZBaTkFkpxnO6TwlNgn_iV6HOkfsfdse2I_1PRIL2M70pi6cAfV32a2F5Z_WcwGVxblu_LDR7353GKclZsGsVj0KSZPXFUZQmYc3kLbEmfA_Y7vrDG1e6OhrzQu7G0w43sk8rH43oqAFwHzeSXgVUB9pfVH6fJi41p7St_fhhl0xB0qGTdndCjAH6gjAWX8ldRi0F5AdBpLMXhbD6aB0nOgGYQ-9k3nXYOyRe0iSlJ5y-vzNqbj9AOT7uJt)\n *\n *
\n *\n * ## Installation\n *\n * ````bash\n * npm install @xeokit/locale\n * ````\n * ## Usage\n *\n * In the example below, we'll create a {@link @xeokit/locale!LocaleService | LocaleService} instance, configured with some English, M\u0101ori and French\n * translations for a NavCube widget.\n *\n * Our LocaleServe will provide translations for the following terms:\n *\n * * \"NavCube.front\"\n * * \"NavCube.back\"\n * * \"NavCube.top\"\n * * \"NavCube.bottom\"\n * * \"NavCube.left\"\n * * \"NavCube.right\"\n *\n * These terms are effectively paths that map to translations for the currently active locale.\n *\n * For example, if the {@link @xeokit/locale!LocaleService | LocaleService}'s locale is set to \"fr\", then the path \"NavCube.back\" will drill down\n * into ````messages->fr->NavCube->front```` and fetch \"Arri\u00E8re\".\n *\n * ````javascript\n * import {LocaleService} from \"@xeokit/locale\";\n *\n * const localeService= new LocaleService({\n * messages: {\n * \"en\": { // English\n * \"NavCube\": {\n * \"front\": \"Front\",\n * \"back\": \"Back\",\n * \"top\": \"Top\",\n * \"bottom\": \"Bottom\",\n * \"left\": \"Left\",\n * \"right\": \"Right\"\n * }\n * },\n * \"mi\": { // M\u0101ori\n * \"NavCube\": {\n * \"front\": \"Mua\",\n * \"back\": \"Tuar\u0101\",\n * \"top\": \"Runga\",\n * \"bottom\": \"Raro\",\n * \"left\": \"Mau\u012B\",\n * \"right\": \"Tika\"\n * }\n * },\n * \"fr\": { // Francais\n * \"NavCube\": {\n * \"front\": \"Avant\",\n * \"back\": \"Arri\u00E8re\",\n * \"top\": \"Sup\u00E9rieur\",\n * \"bottom\": \"Inf\u00E9rieur\",\n * \"left\": \"Gauche\",\n * \"right\": \"Droit\"\n * }\n * }\n * },\n * locale: \"en\"\n * })\n * });\n * ````\n *\n * We can dynamically switch to a different locale at any time:\n *\n * ````javascript\n * localeService.locale = \"mi\"; // Switch to M\u0101ori\n * ````\n *\n * We can load new translations at any time:\n *\n * ````javascript\n * localeService.loadMessages({\n * \"jp\": { // Japanese\n * \"NavCube\": {\n * \"front\": \"\u524D\u90E8\",\n * \"back\": \"\u88CF\",\n * \"top\": \"\u4E0A\",\n * \"bottom\": \"\u5E95\",\n * \"left\": \"\u5DE6\",\n * \"right\": \"\u53F3\"\n * }\n * }\n * });\n * ````\n *\n * And we can clear the translations if needed:\n *\n * ````javascript\n * localeService.clearMessages();\n * ````\n *\n * We can also get an event from the {@link @xeokit/locale!LocaleService | LocaleService} whenever we switch locales or load messages, which is useful\n * for triggering UI elements to refresh themselves with updated translations:\n *\n * ````javascript\n * localeService.onUpdated.subscribe(() => {\n * console.log( viewer.localeService.translate(\"NavCube.left\") );\n * });\n * ````\n *\n * @module @xeokit/locale\n */\nexport * from \"./LocaleService\";", "import {EventDispatcher} from \"strongly-typed-events\";\nimport {EventEmitter} from \"@xeokit/core\";\n\n/**\n * The localization service for a {@link @xeokit/viewer!Viewer | Viewer}.\n *\n * See {@link \"@xeokit/locale\"} for usage.\n */\nclass LocaleService {\n\n /**\n * Emits an event each time the locale translations have updated.\n *\n * @event\n */\n readonly onUpdated: EventEmitter;\n #messages: { [key: string]: any };\n #locales: string[];\n #locale: string = \"en\";\n\n /**\n * Constructs a LocaleService.\n *\n * @param cfg LocaleService configuration\n * @param cfg.messages Set of locale translations\n * @param cfg.locale Initial locale\n */\n constructor(cfg: {\n messages?: any,\n locale?: string\n } = {\n messages: {},\n locale: \"\"\n }) {\n this.onUpdated = new EventEmitter(new EventDispatcher());\n this.messages = cfg.messages;\n this.locale = cfg.locale;\n }\n\n /**\n * Replaces the current set of locale translations.\n *\n * * Fires an \"updated\" event when done.\n * * Automatically refreshes any plugins that depend on the translations.\n * * Does not change the current locale.\n *\n * ## Usage\n *\n * ````javascript\n * viewer.localeService.setMessages({\n * messages: {\n * \"en\": { // English\n * \"NavCube\": {\n * \"front\": \"Front\",\n * \"back\": \"Back\",\n * \"top\": \"Top\",\n * \"bottom\": \"Bottom\",\n * \"left\": \"Left\",\n * \"right\": \"Right\"\n * }\n * },\n * \"mi\": { // M\u0101ori\n * \"NavCube\": {\n * \"front\": \"Mua\",\n * \"back\": \"Tuar\u0101\",\n * \"top\": \"Runga\",\n * \"bottom\": \"Raro\",\n * \"left\": \"Mau\u012B\",\n * \"right\": \"Tika\"\n * }\n * }\n * }\n * });\n * ````\n *\n * @param messages The new translations.\n */\n set messages(messages: { [key: string]: any }) {\n this.#messages = messages || {};\n this.#locales = Object.keys(this.#messages);\n this.onUpdated.dispatch(this, this.#locale);\n }\n\n /**\n * Gets the list of available locales.\n *\n * These are derived from the currently configured set of translations.\n *\n * @returns The list of available locales.\n */\n get locales(): string[] {\n return this.#locales;\n }\n\n /**\n * Gets the current locale.\n *\n * @returns {String} The current locale.\n */\n get locale(): string {\n return this.#locale;\n }\n\n /**\n * Sets the current locale.\n *\n * * Fires an \"updated\" event when done.\n * * The given locale does not need to be in the list of available locales returned by {@link LocaleService.locales}, since\n * this method assumes that you may want to load the locales at a later point.\n * * Automatically refreshes any plugins that depend on the translations.\n * * We can then get translations for the locale, if translations have been loaded for it, via {@link LocaleService.translate} and {@link LocaleService.translatePlurals}.\n *\n * @param locale The new current locale.\n */\n set locale(locale: string|undefined) {\n locale = locale || \"de\";\n if (this.#locale === locale) {\n return;\n }\n this.#locale = locale;\n this.onUpdated.dispatch(this, this.#locale);\n }\n\n /**\n * Loads a new set of locale translations, adding them to the existing translations.\n *\n * * Fires an \"updated\" event when done.\n * * Automatically refreshes any plugins that depend on the translations.\n * * Does not change the current locale.\n *\n * ## Usage\n *\n * ````javascript\n * viewer.localeService.loadMessages({\n * \"jp\": { // Japanese\n * \"NavCube\": {\n * \"front\": \"\u524D\u90E8\",\n * \"back\": \"\u88CF\",\n * \"top\": \"\u4E0A\",\n * \"bottom\": \"\u5E95\",\n * \"left\": \"\u5DE6\",\n * \"right\": \"\u53F3\"\n * }\n * }\n * });\n * ````\n *\n * @param messages The new translations.\n */\n loadMessages(messages: { [key: string]: any } = {}) {\n for (let locale in messages) {\n this.#messages[locale] = messages[locale];\n }\n this.messages = this.#messages;\n }\n\n /**\n * Clears all locale translations.\n *\n * * Fires an \"updated\" event when done.\n * * Does not change the current locale.\n * * Automatically refreshes any plugins that depend on the translations, which will cause those\n * plugins to fall back on their internal hard-coded text values, since this method removes all\n * our translations.\n */\n clearMessages() {\n this.messages = {};\n }\n\n /**\n * Translates the given string according to the current locale.\n *\n * Returns null if no translation can be found.\n *\n * @param msg String to translate.\n * @param args Extra parameters.\n * @returns Translated string if found, else null.\n */\n translate(msg: string, args?: any): string | null {\n const localeMessages = this.#messages[this.#locale];\n if (!localeMessages) {\n return null;\n }\n const localeMessage = resolvePath(msg, localeMessages);\n if (localeMessage) {\n if (args) {\n return vsprintf(localeMessage, args);\n }\n return localeMessage;\n }\n return null;\n }\n\n /**\n * Translates the given phrase according to the current locale.\n *\n * Returns null if no translation can be found.\n *\n * @param msg Phrase to translate.\n * @param count The plural number.\n * @param [args] Extra parameters.\n * @returns String|null Translated string if found, else null.\n */\n translatePlurals(msg: string, count: number, args: any): string | null {\n const localeMessages = this.#messages[this.#locale];\n if (!localeMessages) {\n return null;\n }\n let localeMessage = resolvePath(msg, localeMessages);\n count = parseInt(\"\" + count, 10);\n if (count === 0) {\n localeMessage = localeMessage.zero;\n } else {\n localeMessage = (count > 1) ? localeMessage.other : localeMessage.one;\n }\n if (!localeMessage) {\n return null;\n }\n localeMessage = vsprintf(localeMessage, [count]);\n if (args) {\n localeMessage = vsprintf(localeMessage, args);\n }\n return localeMessage;\n }\n}\n\nfunction resolvePath(key: string, json: any) {\n if (json[key]) {\n return json[key];\n }\n const parts = key.split(\".\");\n let obj = json;\n for (let i = 0, len = parts.length; obj && (i < len); i++) {\n const part = parts[i];\n obj = obj[part];\n }\n return obj;\n}\n\nfunction vsprintf(msg: string, args: any = []) {\n return msg.replace(/\\{\\{|\\}\\}|\\{(\\d+)\\}/g, function (m, n) {\n if (m === \"{{\") {\n return \"{\";\n }\n if (m === \"}}\") {\n return \"}\";\n }\n return args[n];\n });\n}\n\nexport {LocaleService};\n", "/**\n * [![npm version](https://badge.fury.io/js/%40xeokit%2Fdata.svg)](https://badge.fury.io/js/%40xeokit%2Fdata)\n * [![](https://data.jsdelivr.com/v1/package/npm/@xeokit/data/badge)](https://www.jsdelivr.com/package/npm/@xeokit/data)\n *\n * \n *\n * # xeokit Semantic Data Model\n *\n * ---\n *\n * ### *The SDK's buildable, queryable, importable and exportable semantic data model*\n *\n * ---\n *\n * The xeokit SDK uses a generic entity-relationship data graph to manage model semantics. This graph includes entities,\n * properties, and relationships and is compatible with both the browser and NodeJS. It serves as a versatile tool for generating\n * models, converting between model formats, and navigating content within the model viewer.\n *\n * In more detail, the xeokit SDK provides a {@link @xeokit/data!Data | Data} container class that holds\n * {@link @xeokit/data!DataModel | DataModels} consisting of {@link @xeokit/data!DataObject | DataObjects},\n * {@link @xeokit/data!PropertySet | PropertySets}, and\n * {@link @xeokit/data!Relationship | Relationships}, as shown in the diagram below.\n *\n *
\n *\n * [![](https://mermaid.ink/img/pako:eNqNVMFunDAU_BX0Tu1qgxaW9QLnHBOlSm4VFwc7WVeAkTFV6Wr_vcZmu89A0nIBzxvPmzdGPkMpGYccyop23b2g74rWRcOE4qUWsgkenosmsI9lBPdU0_MVcrjiVPNHI1N9-epVOk5VeXp6_WG0ulmtrExxhtWjRudB0m32sFbJlis9vHC_cP2-LB1bd9i2YGixbLLewk3q5sHWHf7MKzpG1p1Eu6x-uyni4msvKoYBxjut5HCDVqZxDrxT8OYJ9NByvF4bZ6aL_CFhLDuJCP4viQAJNLRGTn7SqkdLbHOmhcPEev5kyrKadxfIDOfMh_92GCMMCogK2NzdmXcYbgq4_SaYZoF1ri_-seaS5xDD3kzsnWOjI_hA9hPWwuk61cvVCl7JN2f5eqz_v3WePPKxzOhanMiwhZqrmgpmLiV78AXoEzd_EeTmk_E32le6gKK5GCrttXwZmhJyrXq-hb5lpv10jUH-RqvOoC1tID_DL8hjEoVRdDxEJE73GSHZYQuDgeMwyY7kkGTRMSbp_nDZwm8pjcIuTGOSJGS_yxKSpjvD50xoqR6na3N82Q7fLX-0cfkD0IeHkg?type=png)](https://mermaid.live/edit#pako:eNqNVMFunDAU_BX0Tu1qgxaW9QLnHBOlSm4VFwc7WVeAkTFV6Wr_vcZmu89A0nIBzxvPmzdGPkMpGYccyop23b2g74rWRcOE4qUWsgkenosmsI9lBPdU0_MVcrjiVPNHI1N9-epVOk5VeXp6_WG0ulmtrExxhtWjRudB0m32sFbJlis9vHC_cP2-LB1bd9i2YGixbLLewk3q5sHWHf7MKzpG1p1Eu6x-uyni4msvKoYBxjut5HCDVqZxDrxT8OYJ9NByvF4bZ6aL_CFhLDuJCP4viQAJNLRGTn7SqkdLbHOmhcPEev5kyrKadxfIDOfMh_92GCMMCogK2NzdmXcYbgq4_SaYZoF1ri_-seaS5xDD3kzsnWOjI_hA9hPWwuk61cvVCl7JN2f5eqz_v3WePPKxzOhanMiwhZqrmgpmLiV78AXoEzd_EeTmk_E32le6gKK5GCrttXwZmhJyrXq-hb5lpv10jUH-RqvOoC1tID_DL8hjEoVRdDxEJE73GSHZYQuDgeMwyY7kkGTRMSbp_nDZwm8pjcIuTGOSJGS_yxKSpjvD50xoqR6na3N82Q7fLX-0cfkD0IeHkg)\n *\n * Various model file formats can be imported into DataModels using methods such as {@link @xeokit/gltf!loadGLTF | loadGLTF}, {@link @xeokit/las!loadLAS | loadLAS},\n * {@link @xeokit/cityjson!loadCityJSON | loadCityJSON}, and {@link @xeokit/dtx!loadDTX | loadDTX},\n * while DataModels can be exported to the native [DTX](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#dtx) format using {@link @xeokit/dtx!saveDTX | saveDTX}.\n *\n * To programmatically build DataModels, builder methods\n * such as {@link @xeokit/data!Data.createModel | Data.createModel}, {@link @xeokit/data!DataModel.createObject | DataModel.createObject},\n * {@link @xeokit/data!DataModel.createPropertySet | DataModel.createPropertySet}, and\n * {@link @xeokit/data!DataModel.createRelationship | DataModel.createRelationship} can be employed.\n * DataObjects can be queried using the {@link @xeokit/data!Data.searchObjects | Data.searchObjects} method, and\n * semantic data can be attached to model representations by\n * using it alongside SceneModel.\n *\n * It's important to note that DataObjects and PropertySets are global, created on their DataModels but stored globally\n * on the Data. Additionally, DataModels automatically reuse DataObjects and PropertySets wherever they're already\n * created by other DataModels. Finally, DataObjects can have Relationships with other DataObjects in different DataModels.\n *\n * ## Installation\n *\n * ````bash\n * npm install @xeokit/data\n * ````\n *\n * ## Usage\n *\n * * [Creating a DataModel from JSON](#creating-a-scenemodel)\n * * [Creating a DataModel using Builder Methods](#creating-a-scenemodel)\n * * [Reading DataObjects](#reading-dataobjects)\n * * [Searching DataObjects](#searching-dataobjects)\n *\n * ### Creating a DataModel from JSON\n *\n * We will start with an example where we create a {@link @xeokit/data!DataModel | DataModel} using a single parameter object of type {@link @xeokit/data!DataModelParams | DataModelParams}.\n * The DataModel we create will define a simple piece of furniture - a table consisting of a tabletop and four legs.\n * We will then query the data model to retrieve all the {@link @xeokit/data!DataObject | DataObjects} within it.\n *\n * To achieve this, we will create a DataModel that contains six DataObjects: one for the\n * table, one for the tabletop, and one for each of the four legs. We will also define Relationships\n * to connect the DataObjects into an aggregation hierarchy, and we will assign {@link Property | Properties} to the\n * DataObjects to give them attributes such as height and weight.\n *\n * To give the DataObjects and {@link @xeokit/data!Relationship | Relationships} semantic meaning, we will assign\n * them types from one of the SDK's bundled data type sets, basicTypes. This set of types classifies each DataObject\n * as a {@link @xeokit/basictypes!BasicEntity | BasicEntity} and each Relationship as\n * a {@link @xeokit/basictypes!BasicAggregation | BasicAggregation}.\n *\n * It's worth noting that in a real-world scenario, we would likely use a more complex set of data types, such as\n * {@link @xeokit/ifctypes}. However, we cannot mix different sets of data types within our {@link @xeokit/data!Data | Data},\n * as traversals of the DataObjects with {@link @xeokit/data!Data.searchObjects | Data.searchObjects } must be\n * guided uniformly by the same set of types across all the DataObjects and Relationships in the graph.\n *\n * To create our DataModel, we will use the following code, which creates a new Data object and then\n * creates a DataModel from a set of objects, relationships, and property sets. The {@link @xeokit/core!SDKError | SDKError} class\n * is used to handle errors that may occur during the process:\n *\n * ````javascript\n * import { SDKError } from \"@xeokit/core\";\n * import { Data } from \"@xeokit/data\";\n * import * as basicTypes from \"@xeokit/basictypes/basicTypes\";\n *\n * const myData = new Data({});\n *\n * const myDataModel = myData.createModel({\n * id: \"myTableModel\",\n * objects: [\n * {\n * id: \"table\",\n * type: basicTypes.BasicEntity,\n * name: \"Table\",\n * propertySetIds: [\"tablePropertySet\"],\n * },\n * {\n * id: \"redLeg\",\n * name: \"Red table Leg\",\n * type: basicTypes.BasicEntity,\n * propertySetIds: [\"legPropertySet\"],\n * },\n * {\n * id: \"greenLeg\",\n * name: \"Green table leg\",\n * type: basicTypes.BasicEntity,\n * propertySetIds: [\"legPropertySet\"],\n * },\n * {\n * id: \"blueLeg\",\n * name: \"Blue table leg\",\n * type: basicTypes.BasicEntity,\n * propertySetIds: [\"legPropertySet\"],\n * },\n * {\n * id: \"yellowLeg\",\n * name: \"Yellow table leg\",\n * type: basicTypes.BasicEntity,\n * propertySetIds: [\"legPropertySet\"],\n * },\n * {\n * id: \"tableTop\",\n * name: \"Purple table top\",\n * type: basicTypes.BasicEntity,\n * propertySetIds: [\"tableTopPropertySet\"],\n * },\n * ],\n * relationships: [\n * {\n * type: basicTypes.BasicAggregation,\n * relatingObjectId: \"table\",\n * relatedObjectId: \"tableTop\",\n * },\n * {\n * type: basicTypes.BasicAggregation,\n * relatingObjectId: \"tableTop\",\n * relatedObjectId: \"redLeg\",\n * },\n * {\n * type: basicTypes.BasicAggregation,\n * relatingObjectId: \"tableTop\",\n * relatedObjectId: \"greenLeg\",\n * },\n * {\n * type: basicTypes.BasicAggregation,\n * relatingObjectId: \"tableTop\",\n * relatedObjectId: \"blueLeg\",\n * },\n * {\n * type: basicTypes.BasicAggregation,\n * relatingObjectId: \"tableTop\",\n * relatedObjectId: \"yellowLeg\",\n * },\n * ],\n * propertySets: [\n * {\n * id: \"tablePropertySet\",\n * originalSystemId: \"tablePropertySet\",\n * name: \"Table properties\",\n * type: \"\",\n * properties: [\n * {\n * name: \"Weight\",\n * value: 5,\n * type: \"\",\n * valueType: \"\",\n * description: \"Weight of the thing\",\n * },\n * {\n * name: \"Height\",\n * value: 12,\n * type: \"\",\n * valueType: \"\",\n * description: \"Height of the thing\",\n * },\n * ],\n * },\n * {\n * id: \"legPropertySet\",\n * originalSystemId: \"legPropertySet\",\n * name: \"Table leg properties\",\n * type: \"\",\n * properties: [\n * {\n * name: \"Weight\",\n * value: 5,\n * type: \"\",\n * valueType: \"\",\n * description: \"Weight of the thing\",\n * },\n * {\n * name: \"Height\",\n * value: 12,\n * type: \"\",\n * valueType: \"\",\n * description: \"Height of the thing\",\n * },\n * ],\n * },\n * ],\n * });\n *\n * if (myDataModel instanceof SDKError) {\n * console.log(myDataModel.message);\n * } else {\n * myDataModel.build();\n * }\n * ````\n *\n * ### Creating a DataModel using Builder Methods\n *\n * In our second example, we'll create our {@link @xeokit/data!DataModel | DataModel} again, this time instantiating\n * each {@link @xeokit/data!PropertySet | PropertySet}, {@link Property}, {@link @xeokit/data!DataObject | DataObject} and {@link @xeokit/data!Relationship | Relationship} individually, using the\n * {@link @xeokit/data!DataModel | DataModel's} builder methods.\n *\n * ````javascript\n * import {SDKError} from \"@xeokit/core\";\n * import {Data} from \"@xeokit/data\";\n * import * as basicTypes from \"@xeokit/basictypes/basicTypes\";\n *\n * const data = new Data();\n *\n * const dataModel = data.createModel({ // DataModel | SDKError\n * id: \"myTableModel\"\n * });\n *\n * if (dataModel instanceof SDKError) {\n * console.log(dataModel.message);\n *\n * } else {\n *\n * const tablePropertySet = dataModel.createPropertySet({ // PropertySet | SDKError\n * id: \"tablePropertySet\",\n * name: \"Table properties\",\n * type: \"\",\n * properties: [ // Property[]\n * {\n * name: \"Weight\",\n * value: 5,\n * type: \"\",\n * valueType: \"\",\n * description: \"Weight of the thing\"\n * },\n * {\n * name: \"Height\",\n * value: 12,\n * type: \"\",\n * valueType: \"\",\n * description: \"Height of the thing\"\n * }\n * ]\n * });\n *\n * if (tablePropertySet instanceof SDKError) {\n * console.log(tablePropertySet.message);\n * }\n *\n * const legPropertySet = dataModel.createPropertySet({\n * id: \"legPropertySet\",\n * name: \"Table leg properties\",\n * type: \"\",\n * properties: [\n * {\n * name: \"Weight\",\n * value: 5,\n * type: \"\",\n * valueType: \"\",\n * description: \"Weight of the thing\"\n * },\n * {\n * name: \"Height\",\n * value: 12,\n * type: \"\",\n * valueType: \"\",\n * description: \"Height of the thing\"\n * }\n * ]\n * });\n *\n * const myTableObject = dataModel.createObject({ // DataObject | SDKError\n * id: \"table\",\n * type: basicTypes.BasicEntity,\n * name: \"Table\",\n * propertySetIds: [\"tablePropertySet\"]\n * });\n *\n * if (myTableObject instanceof SDKError) {\n * console.log(myTableObject.message);\n * }\n *\n * dataModel.createObject({\n * id: \"redLeg\",\n * name: \"Red table Leg\",\n * type: basicTypes.BasicEntity,\n * propertySetIds: [\"tableLegPropertySet\"]\n * });\n *\n * dataModel.createObject({\n * id: \"greenLeg\",\n * name: \"Green table leg\",\n * type: basicTypes.BasicEntity,\n * propertySetIds: [\"tableLegPropertySet\"]\n * });\n *\n * dataModel.createObject({\n * id: \"blueLeg\",\n * name: \"Blue table leg\",\n * type: basicTypes.BasicEntity,\n * propertySetIds: [\"tableLegPropertySet\"]\n * });\n *\n * dataModel.createObject({\n * id: \"yellowLeg\",\n * name: \"Yellow table leg\",\n * type: \"leg\",\n * propertySetIds: [\"tableLegPropertySet\"]\n * });\n *\n * dataModel.createObject({\n * id: \"tableTop\",\n * name: \"Purple table top\",\n * type: basicTypes.BasicEntity,\n * propertySetIds: [\"tableTopPropertySet\"]\n * });\n *\n * const myRelationship = dataModel.createRelationship({\n * type: basicTypes.BasicAggregation,\n * relatingObjectId: \"table\",\n * relatedObjectId: \"tableTop\"\n * });\n *\n * if (myRelationship instanceof SDKError) {\n * console.log(myRelationship.message);\n * }\n *\n * dataModel.createRelationship({\n * type: basicTypes.BasicAggregation,\n * relatingObjectId: \"tableTop\",\n * relatedObjectId: \"redLeg\"\n * });\n *\n * dataModel.createRelationship({\n * type: basicTypes.BasicAggregation,\n * relatingObjectId: \"tableTop\",\n * relatedObjectId: \"greenLeg\"\n * });\n *\n * dataModel.createRelationship({\n * type: basicTypes.BasicAggregation,\n * relatingObjectId: \"tableTop\",\n * relatedObjectId: \"blueLeg\"\n * });\n *\n * dataModel.createRelationship({\n * type: basicTypes.BasicAggregation,\n * relatingObjectId: \"tableTop\",\n * relatedObjectId: \"yellowLeg\"\n * });\n *\n * dataModel.build()\n * .then(()=>{\n * // Ready for action\n * })\n * .catch((sdkError) => {\n * console.error(sdkError.message);\n * });\n * }\n * ````\n *\n * ### Reading DataObjects\n *\n * With our {@link @xeokit/scene!SceneModel | SceneModel} built, we'll now use the {@link @xeokit/data!Data.searchObjects | Data.searchObjects} method to\n * traverse it to fetch the IDs of the {@link @xeokit/data!DataObject | DataObjects} we find on that path.\n *\n * One example of where we use this method is to query the aggregation hierarchy of the DataObjects for building\n * a tree view of an IFC element hierarchy.\n *\n * ````javascript\n * const resultObjectIds = [];\n *\n * data.searchObjects({\n * startObjectId: \"table\",\n * includeObjects: [basicTypes.BasicEntity],\n * includeRelated: [basicTypes.BasicAggregation],\n * resultObjectIds\n * });\n *\n * // resultObjectIds == [\"table\", \"tableTop\", \"redLeg\", \"greenLeg\", \"blueLeg\", \"yellowLeg\"];\n * ````\n *\n * ### Searching DataObjects\n *\n * In our fourth example, we'll demonstrate how to traverse the {@link @xeokit/data!DataObject | DataObjects} along their\n * {@link @xeokit/data!Relationship | Relationships}. We'll start at the root DataObject and visit all the DataObjects\n * we encounter along the outgoing Relationships.\n *\n * ````javascript\n * const table = data.objects[\"table\"];\n *\n * const relations = table.related[basicTypes.BasicAggregation];\n *\n * for (let i = 0, len = relations.length; i < len; i++) {\n *\n * const relation = relations[i];\n * const dataObject = relation.related;\n *\n * //..\n * }\n * ````\n *\n * @module @xeokit/data\n */\nexport * from \"./Data\";\nexport * from \"./DataModel\";\nexport * from \"./DataObject\";\nexport * from \"./Relationship\";\nexport * from \"./RelationshipParams\";\nexport * from \"./Property\";\nexport * from \"./PropertySet\";\nexport * from \"./DataModelParams\";\nexport * from \"./DataModelContentParams\";\nexport * from \"./DataObjectParams\";\nexport * from \"./PropertyParams\";\nexport * from \"./PropertySetParams\";\nexport * from \"./SearchParams\";\n", "import type {PropertySet} from \"./PropertySet\";\nimport type {PropertyParams} from \"./PropertyParams\";\n\n/**\n * A property in a {@link @xeokit/data!PropertySet | PropertySet}.\n *\n * See {@link \"@xeokit/data\" | @xeokit/data} for usage.\n */\nexport class Property {\n\n /**\n * The PropertySet to which this Property belongs.\n */\n public readonly propertySet: PropertySet;\n\n /**\n * The name of this property.\n */\n public readonly name: string;\n\n /**\n * The value of this property.\n */\n public readonly value: any;\n\n /**\n * The type of this property.\n */\n public readonly type?: string | number;\n\n /**\n * The type of this property's value.\n */\n public readonly valueType?: string | number;\n\n /**\n * Informative text to explain the property.\n */\n public readonly description?: string;\n\n /**\n * @private\n * @ignore\n */\n constructor(\n propertySet: PropertySet,\n propertyCfg: PropertyParams) {\n this.propertySet = propertySet;\n this.name = propertyCfg.name;\n this.type = propertyCfg.type\n this.value = propertyCfg.value\n this.valueType = propertyCfg.valueType;\n this.description = propertyCfg.description;\n }\n}\n", "import {Property} from \"./Property\";\nimport type {DataModel} from \"./DataModel\";\nimport type {PropertySetParams} from \"./PropertySetParams\";\n\n/**\n * A set of {@link Property | Properties} in a {@link @xeokit/data!DataModel | DataModel}.\n *\n * * Created with {@link @xeokit/data!DataModel.createPropertySet | DataModel.createPropertySet}\n * * Stored in {@link @xeokit/data!Data.propertySets | Data.propertySets} and {@link @xeokit/data!DataModel.propertySets | Data.propertySets}\n *\n * See {@link \"@xeokit/data\" | @xeokit/data} for usage.\n */\nexport class PropertySet {\n\n /**\n * The DataModels to which this PropertySet belongs.\n */\n public readonly models: DataModel[];\n\n /**\n * Unique ID.\n *\n * PropertySet instances are registered by this ID in {@link @xeokit/data!Data.propertySets | Data.propertySets}\n * and {@link @xeokit/data!DataModel.propertySets | DataModel.propertySets}.\n */\n public readonly id: string;\n\n /**\n * ID of the corresponding object within the originating system, if any.\n */\n public readonly originalSystemId?: string;\n\n /**\n * Human-readable name of this PropertySet.\n */\n public readonly name: string;\n\n /**\n * Type of this PropertySet.\n */\n public readonly type: string;\n\n /**\n * Properties within this PropertySet.\n */\n public readonly properties: Property[];\n\n /**\n * @private\n */\n constructor(\n dataModel: DataModel,\n propertySetCfg: PropertySetParams) {\n this.models = [dataModel];\n this.id = propertySetCfg.id;\n this.name = propertySetCfg.name;\n this.type = propertySetCfg.type;\n this.properties = [];\n if (propertySetCfg.properties) {\n for (let i = 0, len = propertySetCfg.properties.length; i < len; i++) {\n const property = new Property(this, propertySetCfg.properties[i]);\n this.properties.push(property);\n }\n }\n }\n}\n", "import type {PropertySet} from \"./PropertySet\";\nimport type {DataModel} from \"./DataModel\";\nimport type {Relationship} from \"./Relationship\";\nimport type {Data} from \"./Data\";\n\n/**\n * An object in a {@link @xeokit/data!DataModel | DataModel}.\n *\n * * Created with {@link @xeokit/data!DataModel.createObject | DataModel.createObject}\n * * Stored in {@link @xeokit/data!Data.objects | Data.objects}, {@link @xeokit/data!Data.rootObjects | Data.rootObjects}, {@link @xeokit/data!Data.objectsByType | Data.objectsByType}, {@link @xeokit/data!DataModel.objects | Data.objects}, {@link @xeokit/data!DataModel.rootObjects | Data.rootObjects}\n *\n * See {@link \"@xeokit/data\" | @xeokit/data} for usage.\n */\nexport class DataObject {\n\n /**\n * {@link @xeokit/data!Data | Data} that contains this DataObject.\n */\n public data: Data;\n\n /**\n * {@link @xeokit/data!DataModel | DataModels} that share this DataObject.\n */\n public models: DataModel[];\n\n /**\n * Globally-unique ID.\n *\n * DataObjects are stored by ID in {@link @xeokit/data!Data.objects | Data.objects}, {@link @xeokit/data!Data.rootObjects | Data.rootObjects}, {@link @xeokit/data!Data.objectsByType | Data.objectsByType} and {@link @xeokit/data!DataModel.rootObjects | Data.rootObjects}.\n */\n public readonly id: string;\n\n /**\n * ID of this DataObject within the originating system, is any. Defaults to the value of\n * {@link @xeokit/data!DataObject.id | DataObject.id}.\n */\n originalSystemId?: string;\n\n /**\n * Human-readable name.\n */\n public readonly name?: string;\n\n /**\n * Human-readable description.\n */\n public readonly description?: string;\n\n /**\n * DataObject's type.\n */\n public readonly type: number;\n\n /**\n *{@link @xeokit/data!PropertySet | PropertySets} referenced by this DataObject.\n */\n public readonly propertySets?: PropertySet[];\n\n /**\n * The {@link @xeokit/data!Relationship | Relations} in which this DataObject is the {@link @xeokit/data!Relationship.relatingObject | Relationship.relatingObject} participant.\n *\n * Each DataObject is mapped here by {@link @xeokit/data!Relationship.type | Relationship.type} and sub-mapped by {@link @xeokit/data!Relationship.relatingObject | Relationship.relatingObject}.\n */\n public readonly relating: {\n [key: number]: Relationship[]\n };\n\n /**\n * The {@link @xeokit/data!Relationship | Relationships} in which this DataObject is the {@link @xeokit/data!Relationship.relatedObject | Relationship.relatedObject} participant.\n *\n * Each DataObject is mapped here by {@link @xeokit/data!Relationship.type | Relationship.type} and sub-mapped by {@link @xeokit/data!Relationship.relatedObject | Relationship.relatedObject}.\n */\n public readonly related: {\n [key: number]: Relationship[]\n };\n\n /**\n * @private\n */\n constructor(\n data: Data,\n model: DataModel,\n id: string,\n originalSystemId: string,\n name: string,\n description: string | undefined,\n type: number,\n propertySets?: PropertySet[]) {\n\n this.data = data;\n this.models = [model];\n this.id = id;\n this.originalSystemId = originalSystemId;\n this.name = name;\n this.description = description;\n this.type = type;\n this.propertySets = propertySets || [];\n this.related = {};\n this.relating = {};\n }\n}\n", "import type {DataObject} from \"./DataObject\";\n\n/**\n * A one-to-one relationship between two {@link @xeokit/data!DataObject | DataObjects}.\n *\n * See {@link \"@xeokit/data\" | @xeokit/data} for usage.\n */\nexport class Relationship {\n\n /**\n * The type of this Relationship.\n *\n * This can be any value that identifies the Relationship type within your DataModel.\n */\n readonly type: number;\n\n /**\n * The relating {@link @xeokit/data!DataObject | DataObject} in this Relationship.\n *\n * This Relationship will be stored by {@link @xeokit/data!DataObject.type | DataObject.type}\n * in the DataObject's {@link @xeokit/data!DataObject.related | DataObject.related} attribute.\n */\n readonly relatingObject: DataObject;\n\n /**\n * The related {@link @xeokit/data!DataObject | DataObject} in this Relationship.\n *\n * This Relationship will be stored by {@link @xeokit/data!DataObject.type | DataObject.type} in\n * the DataObject's {@link @xeokit/data!DataObject.relating | DataObject.relating} attribute.\n */\n readonly relatedObject: DataObject;\n\n /**\n * @private\n * @ignore\n */\n constructor(type: number, relatingObject: DataObject, relatedObject: DataObject) {\n this.type = type;\n this.relatingObject = relatingObject;\n this.relatedObject = relatedObject;\n }\n}\n", "import {Component, EventEmitter, SDKError} from \"@xeokit/core\";\nimport type {Data} from \"./Data\";\nimport {PropertySet} from \"./PropertySet\";\nimport {DataObject} from \"./DataObject\";\nimport type {DataModelParams} from \"./DataModelParams\";\nimport type {DataObjectParams} from \"./DataObjectParams\";\nimport type {PropertySetParams} from \"./PropertySetParams\";\nimport {Relationship} from \"./Relationship\";\nimport type {RelationshipParams} from \"./RelationshipParams\";\nimport {EventDispatcher} from \"strongly-typed-events\";\nimport type {PropertyParams} from \"./PropertyParams\";\nimport {DataModelContentParams} from \"./DataModelContentParams\";\n\n/**\n * xeokit Semantic Data Model.\n *\n * See {@link \"@xeokit/data\" | @xeokit/data} for usage.\n */\nexport class DataModel extends Component {\n\n /**\n * The Data that contains this DataModel.\n */\n public readonly data: Data;\n\n /**\n * Unique ID of this DataModel.\n *\n * DataModels are stored against this ID in {@link @xeokit/data!Data.models | Data.models}.\n */\n declare public readonly id: string;\n\n /**\n * The model name, if available.\n */\n public name?: string;\n\n /**\n * The project ID, if available.\n */\n public projectId?: string | number;\n\n /**\n * The revision ID, if available.\n */\n public revisionId?: string | number;\n\n /**\n * The model author, if available.\n */\n public author?: string;\n\n /**\n * The date the model was created, if available.\n */\n public createdAt?: string;\n\n /**\n * The application that created the model, if available.\n */\n public creatingApplication?: string;\n\n /**\n * The model schema version, if available.\n */\n public schema?: string;\n\n /**\n * The{@link @xeokit/data!PropertySet | PropertySets} in this DataModel, mapped to{@link @xeokit/data!PropertySet.id | PropertySet.id}.\n *\n * PropertySets have globally-unique IDs and will also be stored in {@link @xeokit/data!Data.propertySets | Data.propertySets}.\n */\n public readonly propertySets: { [key: string]: PropertySet };\n\n /**\n * The {@link @xeokit/data!DataObject | DataObjects} in this DataModel, mapped to {@link @xeokit/data!DataObject.id | DataObject.id}.\n *\n * DataObjects have globally-unique IDs and will also be stored in {@link @xeokit/data!Data.objects | Data.objects}.\n */\n public objects: { [key: string]: DataObject };\n\n /**\n * The root {@link @xeokit/data!DataObject | DataObjects} in this DataModel, mapped\n * to {@link @xeokit/data!DataObject.id | DataObject.id}.\n *\n * * This is the set of DataObjects in this DataModel that are not the *related* participant in\n * any {@link @xeokit/data!Relationship | Relationships}, where they have no incoming Relationships and\n * their {@link @xeokit/data!DataObject.relating} property is empty.\n */\n public rootObjects: { [key: string]: DataObject };\n\n /**\n * The {@link @xeokit/data!DataObject | DataObjects} in this DataModel, mapped to {@link @xeokit/data!DataObject.type | DataObject.type},\n * sub-mapped to {@link @xeokit/data!DataObject.id | DataObject.id}.\n */\n public objectsByType: { [key: string]: { [key: string]: DataObject } };\n\n /**\n * The {@link @xeokit/data!Relationship | Relationships} in this DataModel.\n *\n * * The Relationships can be between DataObjects in different DataModels, but always within the same Data.\n */\n public relationships: Relationship[];\n\n /**\n * The count of each type of {@link @xeokit/data!DataObject | DataObject} in this DataModel, mapped to {@link @xeokit/data!DataObject.type | DataObject.type}.\n */\n public readonly typeCounts: { [key: string]: number };\n\n /**\n * Emits an event when the {@link @xeokit/data!DataModel | DataModel} has been built.\n *\n * * The DataModel is built using {@link @xeokit/data!DataModel.build | DataModel.build}.\n * * {@link @xeokit/data!DataModel.built | DataModel.built} indicates if the DataModel is currently built.\n * * Don't create anything more in this DataModel once it's built.\n *\n * @event\n */\n public readonly onBuilt: EventEmitter;\n\n /**\n * Indicates if this DataModel has been built.\n *\n * * Set true by {@link @xeokit/data!DataModel.build | DataModel.build}.\n * * Subscribe to updates using {@link @xeokit/data!DataModel.onBuilt | DataModel.onBuilt} and {@link @xeokit/data!Data.onModelCreated | Data.onModelCreated}.\n */\n built: boolean;\n\n #destroyed: boolean;\n\n /**\n * @private\n */\n constructor(\n data: Data,\n id: string,\n dataModelParams: DataModelParams,\n options?: {\n includeTypes?: string[],\n excludeTypes?: string[],\n globalizeObjectIds?: boolean\n }) {\n\n super(data);\n\n this.onBuilt = new EventEmitter(new EventDispatcher());\n\n this.data = data;\n\n this.id = id;\n this.projectId = dataModelParams.projectId || \"\";\n this.revisionId = dataModelParams.revisionId || \"\";\n this.author = dataModelParams.author || \"\";\n this.createdAt = dataModelParams.createdAt || \"\";\n this.creatingApplication = dataModelParams.creatingApplication || \"\";\n this.schema = dataModelParams.schema || \"\";\n this.propertySets = {};\n this.objects = {};\n this.objectsByType = {};\n this.relationships = [];\n this.typeCounts = {};\n this.rootObjects = {};\n this.built = false;\n this.#destroyed = false;\n\n this.fromJSON(dataModelParams);\n }\n\n /**\n * Adds the given components to this DataModel.\n *\n * See {@link \"@xeokit/data\" | @xeokit/data} for usage.\n *\n * @param dataModelParams\n * @returns *void*\n * * On success.\n * @returns *{@link @xeokit/core!SDKError | SDKError}*\n * * If this DataModel has already been built.\n * * If this DataModel has already been destroyed.\n * * A duplicate PropertySet was already created for this DataModel.\n * * A duplicate DataObject was already created in this DataModel.\n * * DataObjects were not found for a Relationship.\n */\n fromJSON(dataModelParams: DataModelContentParams): void | SDKError {\n if (this.destroyed) {\n return new SDKError(\"Failed to add components to DataModel - DataModel already destroyed\");\n }\n if (this.built) {\n throw new SDKError(\"Failed to add components to DataModel - DataModel already built\");\n }\n if (dataModelParams.propertySets) {\n for (let i = 0, len = dataModelParams.propertySets.length; i < len; i++) {\n this.createPropertySet(dataModelParams.propertySets[i]);\n }\n }\n if (dataModelParams.objects) {\n for (let i = 0, len = dataModelParams.objects.length; i < len; i++) {\n this.createObject(dataModelParams.objects[i]);\n }\n }\n if (dataModelParams.relationships) {\n for (let i = 0, len = dataModelParams.relationships.length; i < len; i++) {\n this.createRelationship(dataModelParams.relationships[i]);\n }\n }\n }\n\n /**\n * Creates a new {@link @xeokit/data!PropertySet | PropertySet}.\n *\n * * Stores the new PropertySet in {@link @xeokit/data!DataModel.propertySets | DataModel.propertySets}\n * and {@link @xeokit/data!Data.propertySets | Data.propertySets}.\n * * Note that PropertySet IDs are globally unique. PropertySet instances are automatically reused and shared among DataModels\n * when IDs given to {@link @xeokit/data!DataModel.createPropertySet | DataModel.createPropertySet} match existing PropertySet\n * instances in the same Data.\n *\n * ### Usage\n *\n * ````javascript\n * const propertySet = dataModel.createPropertySet({\n * id: \"myPropertySet\",\n * name: \"My properties\",\n * properties: [{\n * name: \"Weight\",\n * value: 5,\n * type: \"\",\n * valueType: \"\",\n * description: \"Weight of a thing\"\n * }, {\n * name: \"Height\",\n * value: 12,\n * type: \"\",\n * valueType: \"\",\n * description: \"Height of a thing\"\n * }]\n * });\n *\n * if (propertySet instanceof SDKError) {\n * console.error(propertySet.message);\n * } else {\n * // Success\n * }\n * ````\n *\n * See {@link \"@xeokit/data\" | @xeokit/data} for more usage info.\n *\n * @param propertySetCfg - PropertySet creation parameters.\n * @returns *{@link PropertySet}*\n * * On success.\n * @returns *{@link @xeokit/core!SDKError | SDKError}*\n * * If this DataModel has already been built.\n * * If this DataModel has already been destroyed.\n * * A PropertySet of the given ID was already created for this DataModel. While it's OK\n * for multiple DataModels to *share* PropertySets with duplicate IDs between them, it's not permitted to\n * create duplicate PropertySets within the same DataModel.\n */\n createPropertySet(propertySetCfg: PropertySetParams): PropertySet | SDKError {\n if (this.destroyed) {\n return new SDKError(\"Failed to create PropertySet - DataModel already destroyed\");\n }\n if (this.built) {\n return new SDKError(\"DataModel already built\");\n }\n if (this.propertySets[propertySetCfg.id]) {\n return new SDKError(\"Failed to create PropertySet - PropertySet with same ID already created in this DataModel. It's OK to have duplicates shared between DataModels, but they must be unique within each DataModel.\")\n }\n let propertySet = this.data.propertySets[propertySetCfg.id];\n if (propertySet) {\n this.propertySets[propertySetCfg.id] = propertySet;\n propertySet.models.push(this);\n return propertySet;\n }\n propertySet = new PropertySet(this, propertySetCfg);\n this.propertySets[propertySetCfg.id] = propertySet;\n this.data.propertySets[propertySetCfg.id] = propertySet;\n return propertySet;\n }\n\n /**\n * Creates a new {@link @xeokit/data!DataObject | DataObject}.\n *\n * * Stores the new {@link @xeokit/data!DataObject | DataObject} in {@link DataModel.objects | DataModel.objects} and {@link Data.objects | Data.objects}.\n * * Fires an event via {@link Data.onObjectCreated | Data.onObjectCreated}.\n * * Note that DataObject IDs are globally unique. DataObject instances are automatically reused and shared among DataModels when\n * IDs given to {@link DataModel.createObject | DataModel.createObject} match existing DataObject instances in the same\n * Data. This feature is part of how xeokit supports [*federated data models*](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#federated-models).\n *\n * ### Usage\n *\n * ````javascript\n * const myDataObject = dataModel.createObject({\n * id: \"myDataObject\",\n * type: BasicEntity, // @xeokit/basictypes!basicTypes\n * name: \"My Object\",\n * propertySetIds: [\"myPropertySet\"]\n * });\n *\n * const myDataObject2 = dataModel.createObject({\n * id: \"myDataObject2\",\n * name: \"My Other Object\",\n * type: BasicEntity,\n * propertySetIds: [\"myPropertySet\"]\n * });\n *\n * if (myDataObject instanceof SDKError) {\n * console.error(myDataObject.message);\n *\n * } else if (myDataObject2 instanceof SDKError) {\n * console.error(myDataObject2.message);\n *\n * } else { // Success\n * const gotMyDataObject = dataModel.objects[\"myDataObject\"];\n * const gotMyDataObjectAgain = data.objects[\"myDataObject\"];\n * }\n * ````\n *\n * See {@link \"@xeokit/data\" | @xeokit/data} for more usage info.\n *\n * @param dataObjectParams - DataObject creation parameters.\n * @returns *{@link DataObject}*\n * * On success.\n * @returns *{@link @xeokit/core!SDKError | SDKError}*\n * * If this DataModel has already been built.\n * * If this DataModel has already been destroyed.\n * * A DataObject of the given ID was already created in this DataModel. While it's OK\n * for multiple DataModels to *share* DataObjects with duplicate IDs between them, we're not permitted to\n * create duplicate DataObjects within the same DataModel.\n * * A specified PropertySet could not be found.\n */\n createObject(dataObjectParams: DataObjectParams): DataObject | SDKError {\n if (this.destroyed) {\n return new SDKError(\"Failed to create DataObject - DataModel already destroyed\");\n }\n if (this.built) {\n return new SDKError(\"Failed to create DataObject - DataModel already built\");\n }\n const id = dataObjectParams.id;\n if (this.objects[id]) {\n return new SDKError(\"Failed to create DataObject - DataObject with same ID already created in this DataModel. It's OK to have duplicates shared between DataModels, but they must be unique within each DataModel.\")\n }\n const type = dataObjectParams.type;\n let dataObject = this.data.objects[id];\n if (!dataObject) {\n const propertySets = [];\n if (dataObjectParams.propertySetIds) {\n for (let i = 0, len = dataObjectParams.propertySetIds.length; i < len; i++) {\n const propertySetId = dataObjectParams.propertySetIds[i];\n const propertySet = this.propertySets[propertySetId];\n if (!propertySet) {\n return new SDKError(`Failed to create DataObject - PropertySet not found: \"${propertySetId}\"`);\n } else {\n propertySets.push(propertySet);\n }\n }\n }\n dataObject = new DataObject(this.data, this, id, dataObjectParams.originalSystemId, dataObjectParams.name, dataObjectParams.description, dataObjectParams.type, propertySets);\n this.objects[id] = dataObject;\n this.data.objects[id] = dataObject;\n if (!this.data.objectsByType[type]) {\n this.data.objectsByType[type] = {};\n }\n this.data.objectsByType[type][id] = dataObject;\n this.data.typeCounts[type] = (this.data.typeCounts[type] === undefined) ? 1 : this.data.typeCounts[type] + 1;\n dataObject.models.push(this);\n // if (dataObjectParams.relations) {\n // for (let relationType in dataObjectParams.relations) {\n // if (!dataObject.relating[relationType]) {\n // dataObject.relating[relationType] = [];\n // }\n // const relatedObjectIds = dataObjectParams.relations[relationType];\n // for (let j = 0, lenj = relatedObjectIds.length; j < lenj; j++) {\n // const relatedObjectId = relatedObjectIds[j];\n // const relatedObject = this.data.objects[relatedObjectId];\n // if (!relatedObject) {\n // this.error(`[createObject] Can't create Relationship - DataObject not found: ${relatedObjectId}`);\n // } else {\n // // @ts-ignore\n // const relation = new Relationship(relationType, this, relatedObject);\n // relatedObject.relating[relationType].push(relation);\n // dataObject.related[relationType].push(relation);\n // }\n // }\n // }\n // }\n this.data.onObjectCreated.dispatch(this.data, dataObject);\n } else {\n this.objects[id] = dataObject;\n this.data.objects[id] = dataObject;\n if (!this.objectsByType[type]) {\n this.objectsByType[type] = {};\n }\n this.objectsByType[type][id] = dataObject;\n this.typeCounts[type] = (this.typeCounts[type] === undefined) ? 1 : this.typeCounts[type] + 1;\n dataObject.models.push(this);\n }\n return dataObject;\n }\n\n /**\n * Creates a new {@link @xeokit/data!Relationship | Relationship} between two existing {@link DataObject | DataObjects}.\n *\n * * A Relationship involves a *relating* DataObject and a *related* DataObject.\n * * The *relating* and *related* DataObjects can exist within different DataModels,\n * as long as the DataModels both exist in the same {@link Data}. This feature is part of\n * how xeokit supports the viewing of [*federated models*](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#federated-models).\n * * The new Relationship will be stored in\n * - {@link DataModel.relationships | DataModel.relationships},\n * - {@link DataObject.related | DataObject.related} on the *relating* DataObject, and\n * - {@link DataObject.relating | DataObject.relating} on the *related* DataObject.\n *\n * ### Usage\n *\n * ````javascript\n * const myRelationship = dataModel.createRelationship({\n * type: BasicAggregation, // @xeokit/basictypes!basicTypes\n * relatingObjectId: \"myDataObject\",\n * relatedObjectId: \"myDataObject2\"\n * });\n *\n * if (myRelationship instanceof SDKError) {\n * console.error(myRelationship.message);\n *\n * } else { // Success\n * const myDataObject = dataModel.objects[\"myDataObject\"];\n * const myDataObject2 = dataModel.objects[\"myDataObject2\"];\n *\n * const gotMyRelationship = myDataObject.related[BasicAggregation][0];\n * const gotMyRelationshipAgain = myDataObject2.relating[BasicAggregation][0];\n * }\n * ````\n *\n * See {@link \"@xeokit/data\" | @xeokit/data} for more usage info.\n *\n * @param relationshipParams - Relationship creation parameters.\n * @returns *{@link @xeokit/data!Relationship | Relationship}*\n * * On success.\n * @returns *{@link @xeokit/core!SDKError | SDKError}*\n * * If this DataModel has already been built or destroyed.\n * * The *relating* DataObject was not found in the {@link Data} that contains this DataModel.\n * * The *related* DataObject was not found in the Data that contains this DataModel.\n */\n createRelationship(relationshipParams: RelationshipParams): Relationship | SDKError {\n if (this.destroyed) {\n return new SDKError(\"Failed to create Relationship - DataModel already destroyed\");\n }\n if (this.built) {\n return new SDKError(\"Failed to create Relationship - DataModel already built\");\n }\n const relatingObject = this.data.objects[relationshipParams.relatingObjectId];\n if (!relatingObject) {\n return new SDKError(`Failed to create Relationship - relating DataObject not found: ${relationshipParams.relatingObjectId}`);\n }\n const relatedObject = this.data.objects[relationshipParams.relatedObjectId];\n if (!relatedObject) {\n return new SDKError(`Failed to create Relationship - related DataObject not found: ${relationshipParams.relatedObjectId}`);\n }\n const relation = new Relationship(relationshipParams.type, relatingObject, relatedObject);\n if (!relatedObject.relating[relationshipParams.type]) {\n relatedObject.relating[relationshipParams.type] = [];\n }\n relatedObject.relating[relationshipParams.type].push(relation);\n if (!relatingObject.related[relationshipParams.type]) {\n relatingObject.related[relationshipParams.type] = [];\n }\n relatingObject.related[relationshipParams.type].push(relation);\n this.relationships.push(relation);\n return relation;\n }\n\n /**\n * Finalizes this DataModel, readying it for use.\n *\n * * Fires an event via {@link DataModel.onBuilt | DataModel.onBuilt} and {@link Data.onModelCreated | DataModel.onCreated}, to indicate to subscribers that\n * the DataModel is complete and ready to use.\n * * Sets {@link DataModel.built | DataModel.built} ````true````.\n * * You can only call this method once on a DataModel.\n * * Once built, no more components can be created in a DataModel.\n *\n * ````javascript\n * dataModel.onBuilt.subscribe(()=>{\n * // Our DataModel is built and ready to use\n * });\n *\n * data.onModelCreated.subscribe((dataModel)=>{\n * // Another way to subscribe to DataModel readiness\n * });\n *\n * const result = dataModel.build();\n *\n * if (result instanceof SDKError) {\n * console.error(result.message);\n * } else {\n * // Success\n * }\n * ````\n *\n * See {@link \"@xeokit/data\" | @xeokit/data} for usage.\n *\n * @throws *{@link @xeokit/core!SDKError | SDKError}*\n * * If DataModel has already been built or destroyed.\n */\n build(): Promise {\n return new Promise((resolve) => {\n if (this.destroyed) {\n throw new SDKError(\"Failed to build DataModel - DataModel already destroyed\");\n }\n if (this.built) {\n throw new SDKError(\"Failed to build DataModel - DataModel already built\");\n }\n this.built = true;\n this.onBuilt.dispatch(this, null);\n resolve(this);\n });\n }\n\n /**\n * Gets this DataModel as JSON.\n */\n getJSON(): DataModelParams | SDKError {\n if (this.destroyed) {\n return new SDKError(\"DataModel already destroyed\");\n }\n const dataModelParams = {\n id: this.id,\n propertySets: [],\n objects: [],\n relationships: []\n };\n for (let id in this.propertySets) {\n const propertySet = this.propertySets[id];\n const propertySetParams = {\n id,\n name: propertySet.name,\n properties: [],\n type: propertySet.type,\n originalSystemId: propertySet.originalSystemId\n };\n for (let i = 0, len = propertySet.properties.length; i < len; i++) {\n const property = propertySet.properties[i];\n const propertyParams = {\n name: property.name,\n value: property.value,\n type: property.type,\n valueType: property.valueType,\n description: property.description\n };\n propertySetParams.properties.push(propertyParams);\n }\n dataModelParams.propertySets?.push(propertySetParams);\n }\n for (let id in this.objects) {\n const dataObject = this.objects[id];\n const dataObjectParams = {\n id,\n originalSystemId: dataObject.originalSystemId,\n type: dataObject.type,\n name: dataObject.name,\n propertySetIds: []\n };\n if (dataObject.description !== undefined) {\n dataObjectParams.description = dataObject.description;\n }\n if (dataObject.propertySets) {\n for (let i = 0, len = dataObject.propertySets.length; i < len; i++) {\n const propertySet = dataObject.propertySets[i];\n dataObjectParams.propertySetIds?.push(propertySet.id);\n }\n }\n dataModelParams.objects?.push(dataObjectParams);\n }\n for (let i = 0, len = this.relationships.length; i < len; i++) {\n const relationship = this.relationships[i];\n const relationParams = {\n type: relationship.type,\n relatingObjectId: relationship.relatingObject.id,\n relatedObjectId: relationship.relatedObject.id\n };\n dataModelParams.relationships?.push(relationParams);\n }\n return dataModelParams;\n }\n\n /**\n * Destroys this DataModel.\n *\n * * Fires an event via {@link DataModel.onDestroyed | DataModel.onDestroyed} and {@link Data.onModelDestroyed | Data.onModelDestroyed}.\n * * You can only call this method once on a DataModel.\n * * Once destroyed, no more components can be created in a DataModel.\n * * Does not matter if the DataModel has not yet been built.\n *\n * See {@link \"@xeokit/data\" | @xeokit/data} for usage.\n *\n * @returns *void*\n * * On success.\n * @returns *{@link @xeokit/core!SDKError | SDKError}*\n * * If this DataModel has already been destroyed.\n */\n destroy(): void | SDKError {\n if (this.destroyed) {\n return new SDKError(\"Failed to destroy DataModel - DataModel already destroyed\");\n }\n for (let id in this.objects) {\n const dataObject = this.objects[id];\n if (dataObject.models.length > 1) {\n this.#removeObjectFromModels(dataObject);\n } else {\n delete this.data.objects[id];\n const type = dataObject.type;\n if ((--this.data.typeCounts[type]) === 0) {\n delete this.data.typeCounts[type];\n delete this.data.objectsByType[type];\n this.data.onObjectDestroyed.dispatch(this.data, dataObject);\n for (let type in dataObject.relating) {\n const relations = dataObject.relating[type];\n for (let i = 0, len = relations.length; i < len; i++) {\n const relation = relations[i];\n const related = relation.relatedObject;\n const list = related.relating[type];\n for (let j = 0, k = 0, lenj = list.length; j < lenj; j++) {\n if (list[k].relatingObject === dataObject) {\n // Splice j from related.relating[type]\n list[j] = list[j]\n }\n }\n }\n }\n }\n }\n\n // if (dataObject.parent) {\n // const objects = dataObject.parent.objects;\n // objects.length--;\n // let f = false;\n // for (let i = 0, len = objects.length; i < len; i++) {\n // if (f || (f = objects[i] === dataObject)) {\n // objects[i] = objects[i + 1];\n // }\n // }\n // }\n }\n this.#destroyed = true;\n this.onBuilt.clear();\n super.destroy();\n }\n\n // #removePropertySetFromModels(dataObject: DataObject) {\n // for (let i = 0, len = dataObject.models.length; i < len; i++) {\n // if (dataObject.models[i] === this) {\n // dataObject.models = dataObject.models.splice(i, 1);\n // break;\n // }\n // }\n // }\n\n #removeObjectFromModels(dataObject: DataObject) {\n for (let i = 0, len = dataObject.models.length; i < len; i++) {\n if (dataObject.models[i] === this) {\n dataObject.models = dataObject.models.splice(i, 1);\n break;\n }\n }\n }\n}\n\n", "import {Component, EventEmitter, SDKError} from \"@xeokit/core\";\n\nimport {DataModel} from \"./DataModel\";\nimport {DataObject} from \"./DataObject\";\nimport type {PropertySet} from \"./PropertySet\";\nimport type {DataModelParams} from \"./DataModelParams\";\nimport {EventDispatcher} from \"strongly-typed-events\";\nimport type {SearchParams} from \"./SearchParams\";\n\n/**\n * An entity-relationship semantic data model.\n *\n * See {@link \"@xeokit/data\" | @xeokit/data} for usage.\n */\nexport class Data extends Component {\n\n /**\n * The {@link @xeokit/data!DataModel | DataModels} belonging to this Data, each keyed to\n * its {@link @xeokit/data!DataModel.id | DataModel.id}.\n */\n public readonly models: { [key: string]: DataModel };\n\n /**\n * The{@link @xeokit/data!PropertySet | PropertySets} belonging to this Data, mapped to{@link @xeokit/data!PropertySet.id | PropertySet.id}.\n */\n public readonly propertySets: { [key: string]: PropertySet };\n\n /**\n * The {@link @xeokit/data!DataObject | DataObjects} in this Data, mapped to {@link @xeokit/data!DataObject.id | DataObject.id}.\n */\n public readonly objects: { [key: string]: DataObject };\n\n /**\n * The root {@link @xeokit/data!DataObject | DataObjects} belonging to this Data, each keyed to its {@link @xeokit/data!DataObject.id | DataObject.id}.\n *\n * * This is the set of DataObjects in the DataModels within this Data that are not the *related* participant in\n * any {@link @xeokit/data!Relationship | Relationships}, where they have no incoming Relationships and\n * their {@link @xeokit/data!DataObject.relating} property is empty.\n */\n public readonly rootObjects: { [key: string]: DataObject };\n\n /**\n * The {@link @xeokit/data!DataObject | DataObjects} belonging to this Data, each map keyed to {@link @xeokit/data!DataObject.type | DataObject.type},\n * containing {@link @xeokit/data!DataObject | DataObjects} keyed to {@link @xeokit/data!DataObject.id | DataObject.id}.\n */\n public readonly objectsByType: { [key: string]: { [key: string]: DataObject } };\n\n /**\n * Tracks number of {@link @xeokit/data!DataObject | DataObjects} of each type in this Data.\n */\n public readonly typeCounts: { [key: string]: number };\n\n /**\n * Emits an event each time a {@link @xeokit/data!DataModel | DataModel} has been created in this Data.\n *\n * @event\n */\n public readonly onModelCreated: EventEmitter;\n\n /**\n * Emits an event each time a {@link @xeokit/data!DataModel | DataModel} has been destroyed within this Data.\n *\n * @event\n */\n public readonly onModelDestroyed: EventEmitter;\n\n /**\n * Emits an event each time a {@link @xeokit/data!DataObject | DataObject} is created within this Data.\n *\n * @event\n */\n public readonly onObjectCreated: EventEmitter;\n\n /**\n * Emits an event each time a {@link @xeokit/data!DataObject | DataObject} is destroyed within this Data.\n *\n * @event\n */\n public readonly onObjectDestroyed: EventEmitter;\n\n /**\n * Creates a new Data.\n *\n * See {@link \"@xeokit/data\" | @xeokit/data} for usage.\n */\n constructor() {\n\n super(null, {});\n\n this.models = {};\n this.propertySets = {};\n this.objects = {};\n this.rootObjects = {};\n this.objectsByType = {};\n this.typeCounts = {};\n\n this.onModelCreated = new EventEmitter(new EventDispatcher());\n this.onModelDestroyed = new EventEmitter(new EventDispatcher());\n this.onObjectCreated = new EventEmitter(new EventDispatcher());\n this.onObjectDestroyed = new EventEmitter(new EventDispatcher());\n }\n\n /**\n * Creates a new {@link @xeokit/data!DataModel | DataModel} in this Data.\n *\n * Remember to call {@link @xeokit/data!DataModel.build | DataModel.build} when you've finished building or loading the DataModel. That will\n * fire events via {@link @xeokit/data!Data.onModelCreated | Data.onModelCreated} and {@link @xeokit/data!DataModel.onBuilt | DataModel.onBuilt}, to\n * indicate to any subscribers that the DataModel is built and ready for use.\n *\n * Note that while we're building/loading the SceneModel, each call that we make to {@link @xeokit/data!DataModel.createObject | DataModel.createObject}\n * will create a new {@link @xeokit/data!DataObject | DataObject}\n * in {@link @xeokit/data!Data.objects | Data.objects} and {@link @xeokit/data!DataModel.objects | DataModel.objects}, and will also fire an event\n * via {@link @xeokit/data!Data.onObjectCreated | Data.onObjectCreated}. However,\n * only when we've received the {@link @xeokit/data!Data.onModelCreated | Data.onModelCreated} and {@link @xeokit/data!DataModel.onBuilt | DataModel.onBuilt}\n * events can we actually consider the DataModel to be fully constructed.\n *\n * See {@link \"@xeokit/data\" | @xeokit/data} for more details on usage.\n *\n * @param dataModelParams Creation parameters for the new {@link @xeokit/data!DataModel | DataModel}.\n * @param [options] Options for creating the {@link @xeokit/data!DataModel | DataModel}.\n * @param [options.includeTypes] When provided, only create {@link @xeokit/data!DataObject | DataObjects} with types in this list.\n * @param [options.excludeRelating] When provided, never create {@link @xeokit/data!DataObject | DataObjects} with types in this list.\n * @returns {@link @xeokit/data!DataModel | DataModel}\n * * On success.\n * @returns *{@link @xeokit/core!SDKError | SDKError}*\n * * This Data has already been destroyed.\n * * A DataModel with the given ID already exists in this Data.\n */\n createModel(\n dataModelParams: DataModelParams,\n options?: {\n includeRelating?: string[],\n excludeRelating?: string[],\n }\n ): DataModel | SDKError {\n if (this.destroyed) {\n return new SDKError(\"Data already destroyed\");\n }\n let id = dataModelParams.id;\n if (this.models[id]) {\n return new SDKError(`DataModel already created in this Data: ${id}`);\n }\n // @ts-ignore\n const dataModel = new DataModel(this, id, dataModelParams, options);\n this.models[dataModel.id] = dataModel;\n dataModel.onDestroyed.one(() => { // DataModel#destroy() called\n delete this.models[dataModel.id];\n this.onModelDestroyed.dispatch(this, dataModel);\n });\n dataModel.onBuilt.one(() => { // DataModel#build() called\n this.onModelCreated.dispatch(this, dataModel);\n });\n return dataModel;\n }\n\n /**\n * Gets the {@link @xeokit/data!DataObject.id}s of the {@link DataObject | DataObjects} that have the given {@link DataObject.type}.\n *\n * See {@link \"@xeokit/data\" | @xeokit/data} for usage.\n *\n * @param type The type.\n * @returns {string[]}\n * * Array of {@link DataObject.id}s on success.\n * @returns *{@link @xeokit/core!SDKError | SDKError}*\n * * This Data has already been destroyed.\n */\n getObjectIdsByType(type: string): string[] | SDKError {\n if (this.destroyed) {\n return new SDKError(\"Data already destroyed\");\n }\n const objects = this.objectsByType[type];\n return objects ? Object.keys(objects) : [];\n }\n\n /**\n * Finds {@link DataObject | DataObjects} using a customized depth-first traversal.\n *\n * Usually we use this method to recursively find DataObjects of specific {@link DataObject.type | types} within\n * a hierarchy.\n *\n * See {@link \"@xeokit/data\" | @xeokit/data} for usage.\n *\n * @param searchParams Search parameters.\n * @returns *void*\n * * On success.\n * @returns *{@link @xeokit/core!SDKError | SDKError}*\n * * This Data has already been destroyed.\n * * The specified starting DataObject was not found in this Data.\n * * The specified starting DataObject is contained in a different Data than this one.\n */\n searchObjects(searchParams: SearchParams): void | SDKError {\n if (this.destroyed) {\n return new SDKError(\"Data already destroyed\");\n }\n const includeObjects = (searchParams.includeObjects && searchParams.includeObjects.length > 0) ? arrayToMap(searchParams.includeObjects) : null;\n const excludeObjects = (searchParams.excludeObjects && searchParams.excludeObjects.length > 0) ? arrayToMap(searchParams.excludeObjects) : null;\n const includeRelating = (searchParams.includeRelating && searchParams.includeRelating.length > 0) ? arrayToMap(searchParams.includeRelating) : null;\n const excludeRelating = (searchParams.excludeRelating && searchParams.excludeRelating.length > 0) ? arrayToMap(searchParams.excludeRelating) : null;\n\n function visit(dataObject: DataObject, depth: number) {\n if (!dataObject) {\n return;\n }\n let includeObject = true;\n if (excludeObjects && excludeObjects[dataObject.type]) {\n includeObject = false;\n } else { // @ts-ignore\n if (includeObjects && (!includeObjects[dataObject.type])) {\n includeObject = false;\n }\n }\n if (depth === 0 && searchParams.includeStart === false) {\n includeObject = false;\n }\n if (includeObject) {\n if (searchParams.resultObjectIds) {\n searchParams.resultObjectIds.push(dataObject.id);\n } else if (searchParams.resultObjects) {\n searchParams.resultObjects.push(dataObject);\n } else if (searchParams.resultCallback) {\n if (searchParams.resultCallback(dataObject)) {\n return; // Stop searching\n }\n }\n }\n const related = dataObject.related;\n for (let type in related) {\n const relations = related[type];\n if (relations) {\n for (let i = 0, len = relations.length; i < len; i++) {\n let includeRelation = true;\n if (excludeRelating && excludeRelating[dataObject.type]) {\n includeRelation = false;\n } else {\n if (includeRelating && (!includeRelating[dataObject.type])) {\n includeRelation = false;\n }\n }\n if (includeRelation) {\n visit(relations[i].relatedObject, depth + 1);\n }\n }\n }\n }\n }\n\n const depth = 0;\n if (searchParams.startObjectId) {\n const startObject = this.objects[searchParams.startObjectId];\n if (!startObject) {\n return new SDKError(`Failed to search DataObjects - starting DataObject not found in Data: \"${searchParams.startObjectId}\"`);\n }\n visit(startObject, depth);\n } else if (searchParams.startObject) {\n if (searchParams.startObject.data != this) {\n return new SDKError(`Failed to search DataObjects - starting DataObject not in same Data: \"${searchParams.startObjectId}\"`);\n }\n visit(searchParams.startObject, depth + 1);\n } else {\n for (let id in this.rootObjects) {\n visit(this.rootObjects[id], depth + 1);\n }\n }\n }\n\n /**\n * Destroys all contained {@link DataModel | DataModels}.\n *\n * * Fires {@link Data.onModelDestroyed | Data.onModelDestroyed} and {@link DataModel.onDestroyed | DataModel.onDestroyed}\n * for each existing DataModel in this Data.\n *\n * See {@link \"@xeokit/data\" | @xeokit/data} for usage.\n *\n * @returns *void*\n * * On success.\n * @returns *{@link @xeokit/core!SDKError | SDKError}*\n * * This Data has already been destroyed.\n */\n clear(): void | SDKError {\n if (this.destroyed) {\n return new SDKError(\"Data already destroyed\");\n }\n for (let id in this.models) {\n this.models[id].destroy();\n }\n }\n\n /**\n * Destroys this Data and all contained {@link DataModel | DataModels}.\n *\n * * Fires {@link Data.onModelDestroyed | Data.onModelDestroyed} and {@link DataModel.onDestroyed | DataModel.onDestroyed}\n * for each existing DataModels in this Data.\n * * Unsubscribes all subscribers to {@link Data.onModelCreated | Data.onModelCreated}, {@link Data.onModelDestroyed | Data.onModelDestroyed}, {@link DataModel.onDestroyed | DataModel.onDestroyed}\n *\n * See {@link \"@xeokit/data\" | @xeokit/data} for usage.\n *\n * @returns *void*\n * * On success.\n * @returns *{@link @xeokit/core!SDKError | SDKError}*\n * * This Data has already been destroyed.\n */\n destroy(): void | SDKError {\n if (this.destroyed) {\n return new SDKError(\"Data already destroyed\");\n }\n this.clear();\n this.onModelCreated.clear();\n this.onModelDestroyed.clear();\n super.destroy();\n }\n}\n\nfunction arrayToMap(array: any[]): { [key: string]: any } {\n const map: { [key: string]: any } = {};\n for (let i = 0, len = array.length; i < len; i++) {\n map[array[i]] = true;\n }\n return map;\n}\n\n", "/**\n * [![npm version](https://badge.fury.io/js/%40xeokit%2FscratchModel.svg)](https://badge.fury.io/js/%40xeokit%2FscratchModel)\n * [![](https://data.jsdelivr.com/v1/package/npm/@xeokit/scratchModel/badge)](https://www.jsdelivr.com/package/npm/@xeokit/scratchModel)\n *\n * \n *\n * # xeokit Scene Representation\n *\n * ---\n *\n * ### *The SDK's buildable, viewable, importable and exportable 3D scene representation*\n *\n * ---\n *\n * The xeokit SDK facilitates the management of model representations through a scene graph that incorporates the\n * model's objects, geometries, and materials. This scene graph functions seamlessly in both the browser and NodeJS\n * environments, enabling the generation of models, format conversion, and the provision of content for the SDK's\n * model viewer.\n *\n * To elaborate further:\n *\n * * The {@link @xeokit/scene!Scene | Scene} acts as a container for {@link @xeokit/scene!SceneModel | SceneModels}, which, in turn,\n * comprise {@link @xeokit/scene!SceneObject | SceneObjects}, {@link @xeokit/scene!SceneMesh | Meshes}, {@link @xeokit/scene!SceneGeometry | Geometries}, and {@link @xeokit/scene!SceneTexture | Textures}.\n * * Textures undergo compression to [KTX2](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#ktx2) via the Basis Universal codec.\n * * SceneGeometry undergoes compression through quantization.\n * * Use a {@link \"@xeokit/viewer\" | Viewer} to view SceneModels in the browser. A Viewer equipped with a {@link @xeokit/ktx2!KTX2TextureTranscoder | KTX2TextureTranscoder} can view a Scene that has KTX2-compressed textures.\n * * Import SceneModels from a variety of model file formats using importer functions like {@link \"@xeokit/gltf\" | loadGLTF}, {@link \"@xeokit/las\" | loadLAS}, {@link \"@xeokit/cityjson\" | loadCityJSON}, and {@link \"@xeokit/dtx\" | loadDTX}.\n * * Export SceneModels to the native [DTX](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#dtx) format through {@link \"@xeokit/dtx\" | saveDTX}.\n * * Create SceneModels programmatically using builder methods like {@link @xeokit/scene!Scene.createModel | Scene.createModel},\n * {@link @xeokit/scene!SceneModel.createObject | SceneModel.createObject}, {@link @xeokit/scene!SceneModel.createMesh | SceneModel.createMesh},\n * {@link @xeokit/scene!SceneModel.createGeometry | SceneModel.createGeometry}, and {@link @xeokit/scene!SceneModel.createTexture | SceneModel.createTexture}. Add geometry\n * primitives using mesh generator functions like {@link @xeokit/procgen!buildBoxGeometry | buildBoxGeometry}, {@link @xeokit/procgen!buildSphereGeometry | buildSphereGeometry}, {@link @xeokit/procgen!buildTorusGeometry | buildTorusGeometry}, {@link @xeokit/procgen!buildCylinderGeometry | buildCylinderGeometry}, {@link @xeokit/procgen!buildPlaneGeometry | buildPlaneGeometry} and {@link @xeokit/procgen!buildVectorTextGeometry | buildVectorTextGeometry}.\n *\n *
\n *\n * [![](https://mermaid.ink/img/pako:eNqNVU2PmzAQ_SvIp3aVjTaJk0AOPbQr7aVRpc2qlSoujplN3AJGttkmjfLfawwkNph0uQBvnufNh8c-IcoTQCtEUyLlIyM7QbI4T5gAqhjPg6_PcR6YxzCCDYUcTi1mcAFEwVq7ST98dAwpEOFCWcWSNsK3v7TSBTp71IxrS5Il1-_O8koC5B5sYAc8AyWYAyo4qFLABpQHtaA6uW9GxU6lSVpr9dGnWvDYt7zU_gcNOhzbti1ZmthAAlIJbjn2lasO1mmRXTFPhQJCttsBl1WKwUDxKU-5uP4KXu72OUjLta4DSV2IF4QydbQ4RDfncP1v-mUxrs0aCLIpnz9OP1c7u5lWQ-ukkjL63GbZY3BK01LqoelZIGNSsjfoGDqRtftmKK5CsIwp7caCuGTVmMpHoDwr9NaV6045y7cbxrbWn0v6Gwan8Mlh2eFd9L80ApA4yj6Y6dOFwv-0vjP44yi1yb8cC18BfnCR3hRxZXagrGHpV_4SVfs27CBGkxjd3d_r93h8FyPrgHKIBhlg15Lv8eth1lCfX41pS7xk02O5jWz5ZsQtrkVsKdbQOE6x5nY2tcfbizW_10YMtKBd-qle6ynE-xbaG6ldiUYoA5ERlugbz_Q6RmoPGcRopT8TeCVlqmIU52dNJaXim2NO0eqVpBJGqCwSfVY3l-QFhYQpLtbNNVq9RqggOVqd0AGtpouH8WSyxOFiOo9meDnDI3TU8GyMo-UixBGehOEyCqfnEfrLuXb7MA6nC4wX0wgvQzzH88j4-2mMSpRw_geACkF7?type=png)](https://mermaid.live/edit#pako:eNqNVU2PmzAQ_SvIp3aVjTaJk0AOPbQr7aVRpc2qlSoujplN3AJGttkmjfLfawwkNph0uQBvnufNh8c-IcoTQCtEUyLlIyM7QbI4T5gAqhjPg6_PcR6YxzCCDYUcTi1mcAFEwVq7ST98dAwpEOFCWcWSNsK3v7TSBTp71IxrS5Il1-_O8koC5B5sYAc8AyWYAyo4qFLABpQHtaA6uW9GxU6lSVpr9dGnWvDYt7zU_gcNOhzbti1ZmthAAlIJbjn2lasO1mmRXTFPhQJCttsBl1WKwUDxKU-5uP4KXu72OUjLta4DSV2IF4QydbQ4RDfncP1v-mUxrs0aCLIpnz9OP1c7u5lWQ-ukkjL63GbZY3BK01LqoelZIGNSsjfoGDqRtftmKK5CsIwp7caCuGTVmMpHoDwr9NaV6045y7cbxrbWn0v6Gwan8Mlh2eFd9L80ApA4yj6Y6dOFwv-0vjP44yi1yb8cC18BfnCR3hRxZXagrGHpV_4SVfs27CBGkxjd3d_r93h8FyPrgHKIBhlg15Lv8eth1lCfX41pS7xk02O5jWz5ZsQtrkVsKdbQOE6x5nY2tcfbizW_10YMtKBd-qle6ynE-xbaG6ldiUYoA5ERlugbz_Q6RmoPGcRopT8TeCVlqmIU52dNJaXim2NO0eqVpBJGqCwSfVY3l-QFhYQpLtbNNVq9RqggOVqd0AGtpouH8WSyxOFiOo9meDnDI3TU8GyMo-UixBGehOEyCqfnEfrLuXb7MA6nC4wX0wgvQzzH88j4-2mMSpRw_geACkF7)\n *\n *
\n *\n * ### Notes\n *\n * * TextureSets are collections of textures that are shared among Meshes and are organized into texture atlasses to optimize rendering efficiency on GPUs.\n * * Each SceneMesh can be assigned to only one SceneObject, whereas each SceneGeometry and SceneTextureSet can be allocated to an unlimited number of Meshes.\n * * The {@link getSceneObjectGeometry} function can be used to conveniently iterate the World-space geometry within each\n * {@link @xeokit/scene!SceneObject | SceneObject} - useful for building k-d trees, finding intersections etc.\n *\n * ## Installation\n *\n * ````bash\n * npm install @xeokit/scene\n * ````\n *\n * ## Usage\n *\n * * [Creating a SceneModel](#creating-a-scenemodel)\n * * [Reading the SceneModel](#reading-the-scenemodel)\n * * [SceneGeometry Compression](#geometry-compression)\n * * [SceneTexture Compression](#texture-compression)\n *\n * ### Creating a SceneModel\n *\n * In the example below, we'll create a {@link @xeokit/scene!SceneModel | SceneModel} that will model the simple table furniture model\n * shown in the image above. Our SceneModel will get five\n * {@link @xeokit/scene!SceneObject | SceneObjects}, five {@link @xeokit/scene!SceneMesh | Meshes},\n * a {@link @xeokit/scene!SceneGeometry | SceneGeometry} and a {@link @xeokit/scene!SceneTexture | SceneTexture}.\n *\n * When we've finished constructing our SceneModel, we'll call {@link @xeokit/scene!SceneModel.build | SceneModel.build}, which\n * (asynchronously) compresses our SceneTexture.\n *\n * At that point, we can use the SceneModel. For example, we could export it to xeokit's native [DTX](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#dtx)\n * file format using {@link \"@xeokit/dtx\" | saveDTX}, or view it in the Browser using a {@link \"@xeokit/viewer\" | Viewer}.\n *\n * ````javascript\n * import {Scene} from \"@xeokit/scene\";\n * import {TrianglesPrimitive, LinearEncoding, LinearFilter, ClampToEdgeWrapping} from \"@xeokit/constants\";\n *\n * // Scene is the container of SceneModels\n *\n * const theScene = new Scene();\n *\n * const sceneModel = theScene.createModel({\n * id: \"theModel\"\n * });\n *\n * if (sceneModel instanceof SDKError) {\n *\n * // Most SDK methods return an SDKError when\n * // something goes wrong.\n *\n * // We'll use some SDKErrors in this example\n * // to demonstrate where we can use them.\n *\n * console.log(sceneModel.message);\n *\n * } else {\n *\n * const geometry = sceneModel.createGeometry({\n * id: \"boxGeometry\",\n * primitive: TrianglesPrimitive,\n * positions: [ // Floats\n * 1, 1, 1, -1, 1, 1,\n * -1, -1, 1, 1, -1, 1, 1,\n * -1, -1, 1, 1, -1, -1, 1, -1, -1,\n * -1, -1\n * ],\n * indices: [\n * 0, 1, 2, 0, 2, 3, 4, 5, 6, 4,\n * 6, 7, 8, 9, 10, 8, 10, 11, 12,\n * 13, 14, 12, 14, 15, 16, 17, 18,\n * 16, 18, 19, 20, 21, 22, 20, 22, 23\n * ]\n * });\n *\n * if (geometry instanceof SDKError) {\n * console.log(geometry.message);\n * }\n *\n * const texture = sceneModel.createTexture({\n * id: \"colorTexture\",\n * src: \"./assets/sample_etc1s.ktx2\",\n * preloadColor: [1, 0, 0, 1],\n * flipY: false,\n * encoding: LinearEncoding,\n * magFilter: LinearFilter,\n * minFilter: LinearFilter,\n * wrapR: ClampToEdgeWrapping,\n * wrapS: ClampToEdgeWrapping,\n * wrapT: ClampToEdgeWrapping,\n * });\n *\n * if (texture instanceof SDKError) {\n * console.log(texture.message);\n * }\n *\n * const theTextureSet = sceneModel.createTextureSet({\n * id: \"theTextureSet\",\n * colorTextureId: \"colorTexture\"\n * });\n *\n * if (theTextureSet instanceof SDKError) {\n * console.log(theTextureSet.message);\n * }\n *\n * const redLegMesh = sceneModel.createLayerMesh({\n * id: \"redLegMesh\",\n * geometryId: \"boxGeometry\",\n * position: [-4, -6, -4],\n * scale: [1, 3, 1],\n * rotation: [0, 0, 0],\n * color: [1, 0.3, 0.3],\n * textureSetId: \"theTextureSet\"\n * });\n *\n * if (redLegMesh instanceof SDKError) {\n * console.log(redLegMesh.message);\n * }\n *\n * const greenLegMesh = sceneModel.createLayerMesh({\n * id: \"greenLegMesh\",\n * geometryId: \"boxGeometry\",\n * position: [4, -6, -4],\n * scale: [1, 3, 1],\n * rotation: [0, 0, 0],\n * color: [0.3, 1.0, 0.3],\n * textureSetId: \"theTextureSet\"\n * });\n *\n * const blueLegMesh = sceneModel.createLayerMesh({\n * id: \"blueLegMesh\",\n * geometryId: \"boxGeometry\",\n * position: [4, -6, 4],\n * scale: [1, 3, 1],\n * rotation: [0, 0, 0],\n * color: [0.3, 0.3, 1.0],\n * textureSetId: \"theTextureSet\"\n * });\n *\n * const yellowLegMesh = sceneModel.createLayerMesh({\n * id: \"yellowLegMesh\",\n * geometryId: \"boxGeometry\",\n * position: [-4, -6, 4],\n * scale: [1, 3, 1],\n * rotation: [0, 0, 0],\n * color: [1.0, 1.0, 0.0],\n * textureSetId: \"theTextureSet\"\n * });\n *\n * const tableTopMesh = sceneModel.createLayerMesh({\n * id: \"tableTopMesh\",\n * geometryId: \"boxGeometry\",\n * position: [0, -3, 0],\n * scale: [6, 0.5, 6],\n * rotation: [0, 0, 0],\n * color: [1.0, 0.3, 1.0],\n * textureSetId: \"theTextureSet\"\n * });\n *\n * // Create five SceneObjects, each using a SceneMesh.\n * // A SceneMesh belongs to exactly one SceneObject.\n *\n * const redLegSceneObject = sceneModel.createObject({\n * id: \"redLegObject\",\n * meshIds: [\"redLegMesh\"]\n * });\n *\n * if (redLegSceneObject instanceof SDKError) {\n * console.log(redLegSceneObject.message);\n * }\n *\n * const greenLegSceneObject = sceneModel.createObject({\n * id: \"greenLegObject\",\n * meshIds: [\"greenLegMesh\"]\n * });\n *\n * const blueLegSceneObject = sceneModel.createObject({\n * id: \"blueLegObject\",\n * meshIds: [\"blueLegMesh\"]\n * });\n *\n * const yellowLegSceneObject = sceneModel.createObject({\n * id: \"yellowLegObject\",\n * meshIds: [\"yellowLegMesh\"]\n * });\n *\n * const tableTopSceneObject = sceneModel.createObject({\n * id: \"tableTopObject\",\n * meshIds: [\"tableTopMesh\"]\n * });\n *\n * // Expect an event when we build the SceneModel\n *\n * sceneModel.onBuilt.subscribe((theSceneModel)=>{ });\n *\n * // Expect an event when we destroy the SceneModel\n *\n * sceneModel.onDestroyed.subscribe((theSceneModel)=>{ });\n *\n * // Now build the SceneModel\n *\n * sceneModel.build().then(()=> {\n * // SceneModel is ready for use\n *\n * }).catch((sdkError) => {\n * console.log(sdkError.message);\n * });\n * }\n * ````\n *\n * ### Reading the SceneModel\n *\n * Now that we've built our SceneModel, we can read all of its components. Note that the {@link @xeokit/scene!SceneTexture} and {@link @xeokit/scene!SceneGeometry}\n * we just created will now be compressed.\n *\n * ````javascript\n * const theSceneModel = theScene.models[\"theModel\"];\n * const theTexture = theSceneModel.textures[\"theColorTexture\"];\n * const theTextureSet = theSceneModel.textureSets[\"theTextureSet\"];\n * const boxGeometry = theSceneModel.geometries[\"boxGeometry\"];\n * const theTableTopMesh = theSceneModel.meshes[\"tableTopMesh\"];\n * const theTableTopObject = theSceneModel.objects[\"tableTopObject\"];\n * const theTableTopObjectAgain = theScene.objects[\"tableTopObject\"];\n * ````\n *\n * ### SceneGeometry Compression\n *\n * The geometry from our query example requires a closer look. Internally, the {@link @xeokit/scene!SceneModel.createGeometry}\n * method uses the {@link @xeokit/scene!compressGeometryParams} function to compress the geometry and generate edge indices for\n * rendering it as a wireframe.\n *\n * We provide that function as part of the API in case users want to pre-compress the geometry themselves\n * and then use {@link @xeokit/scene!SceneModel.createGeometryCompressed | SceneModel.createGeometryCompressed}\n * to create the compressed geometry directly.\n *\n * The {@link @xeokit/scene!compressGeometryParams} function performs these steps to compress the geometry:\n *\n * * Simplifies geometry by combining duplicate positions and adjusting indices\n * * Generates edge indices for triangle meshes\n * * Ignores normals (our shaders auto-generate them)\n * * Quantizes positions and UVs as 16-bit unsigned integers\n *\n * Our compressed geometry then looks like this:\n *\n * ````javascript\n * const positions = boxGeometry.positions;\n * const indices = boxGeometry.indices;\n * const edgeIndices = boxGeometry.edgeIndices;\n * // ...\n * ````\n *\n * In the example below, we'll now use {@link @xeokit/scene!compressGeometryParams} to compress\n * a {@link @xeokit/scene!SceneGeometryParams | SceneGeometryParams} into a\n * {@link @xeokit/scene!SceneGeometryCompressedParams | SceneGeometryCompressedParams}.\n *\n * ````javascript\n * import {compressGeometryParams} from \"@xeokit/compression\";\n * import {TrianglesPrimitive} from \"@xeokit/constants\";\n *\n * const geometryCompressedParams = compressGeometryParams({\n * id: \"boxGeometry\",\n * primitive: TrianglesPrimitive,\n * positions: [ // Floats\n * 1, 1, 1, -1, 1, 1,\n * -1, -1, 1, 1, -1, 1, 1,\n * -1, -1, 1, 1, -1, -1, 1, -1, -1,\n * -1, -1\n * ],\n * indices: [\n * 0, 1, 2, 0, 2, 3, 4, 5, 6, 4,\n * 6, 7, 8, 9, 10, 8, 10, 11, 12,\n * 13, 14, 12, 14, 15, 16, 17, 18,\n * 16, 18, 19, 20, 21, 22, 20, 22, 23\n * ]\n * });\n * ````\n *\n * The value of our new {@link @xeokit/scene!SceneGeometryCompressedParams | SceneGeometryCompressedParams} is shown below.\n *\n * We can see that:\n *\n * * Vertex positions are now quantized to 16-bit integers\n * * Edge indices generated for our TrianglesPrimitive\n * * Quantization range given in axis-sligned bounding box ````aabb````, to de-quantize the positions within the Viewer\n *\n * ````javascript\n * {\n * id: \"boxGeometry\",\n * primitive: TrianglesPrimitive,\n * aabb: [\n * -1, -,1 -,1, 1, 1, 1\n * ],\n * positionsCompressed: [\n * 65525, 65525, 65525, 0, 65525, 65525,\n * 0, 0, 65525, 65525, 0, 65525, 65525,\n * 0, 0, 65525, 65525, 0, 0, 65525, 0, 0,\n * 0, 0\n * ],\n * indices: [\n * 0, 1, 2, 0, 2, 3, 0, 3, 4, 0, 4, 5, 0, 5, 6,\n * 0, 6, 1, 1, 6, 7, 1, 7, 2, 7, 4, 3, 7, 3, 2,\n * 4, 7, 6, 4, 6, 5\n * ],\n * edgeIndices: [\n * 3, 4, 0, 4, 5, 0, 5, 6,\n * 0, 6, 1, 1, 6, 7, 1, 7,\n * 3, 2, 4, 7, 6, 4, 6\n * ]\n * }\n * ````\n *\n * ### SceneTexture Compression\n *\n * The {@link @xeokit/scene!SceneTexture} from our query example also requires a closer look. Internally, the {@link @xeokit/scene!SceneModel.build}\n * method uses [Basis](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#basis) to compress the SceneTexture to [KTX2](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#ktx2). We can now read that transcoded data\n * back from {@link @xeokit/scene!SceneTexture.buffers | SceneTexture.buffers}:\n *\n * ````javascript\n * const theTexture = theSceneModel.textures[\"theColorTexture\"];\n *\n * const buffers = thetexture.buffers; // ArrayBuffer[]\n * ````\n *\n * ### Preparing a SceneModel for Progressive Loading\n *\n * TODO: Create in separate tutorial - too complex for here\n *\n * @module @xeokit/scene\n */\n\nexport * from \"./Scene\";\nexport * from \"./SceneModel\";\nexport * from \"./SceneModelStats\";\nexport * from \"./SceneObject\";\nexport * from \"./SceneTexture\";\nexport * from \"./SceneTextureSet\";\nexport * from \"./SceneGeometry\";\nexport * from \"./SceneMesh\";\n\nexport * from \"./RendererGeometry\";\nexport * from \"./RendererMesh\";\nexport * from \"./RendererObject\";\nexport * from \"./RendererModel\";\nexport * from \"./RendererTexture\";\nexport * from \"./RendererTextureSet\";\n\nexport * from \"./SceneMeshParams\";\nexport * from \"./SceneObjectParams\";\nexport * from \"./SceneTextureParams\";\nexport * from \"./SceneTextureSetParams\";\nexport * from \"./SceneGeometryCompressedParams\";\nexport * from \"./SceneGeometryParams\";\nexport * from \"./SceneModelParams\";\nexport * from \"./compressGeometryParams\";\n\nexport * from \"./getSceneObjectGeometry\";\n\nexport * from \"./SceneModelStreamParams\";\nexport * from \"./SceneModelStreamLayerParams\";\n\nexport * from \"./buildMat4\"\n", "import {Component, EventEmitter, SDKError} from \"@xeokit/core\";\nimport {type FloatArrayParam, MAX_DOUBLE, MIN_DOUBLE} from \"@xeokit/math\";\nimport {EventDispatcher} from \"strongly-typed-events\";\nimport {SceneModel} from \"./SceneModel\";\nimport type {SceneObject} from \"./SceneObject\";\nimport type {SceneModelParams} from \"./SceneModelParams\";\nimport {createAABB3} from \"@xeokit/boundaries\";\nimport {SceneTile} from \"./SceneTile\";\n\n/**\n * A scene representation.\n *\n * A Scene is a container of {@link @xeokit/scene!SceneModel | SceneModels} and {@link @xeokit/scene!SceneObject | SceneObjects}.\n */\nexport class Scene extends Component {\n\n /**\n * The {@link @xeokit/scene!SceneModel | SceneModels} belonging to this Scene, each keyed to\n * its {@link @xeokit/scene!SceneModel.id | SceneModel.id}.\n */\n public readonly models: { [key: string]: SceneModel };\n\n /**\n * The {@link @xeokit/scene!SceneObject | SceneObjects} in this Scene, mapped to {@link @xeokit/scene!SceneObject.id | SceneObject.id}.\n */\n public readonly objects: { [key: string]: SceneObject };\n\n /**\n * The {@link @xeokit/scene!SceneTile | Tiles} in this Scene\n */\n public readonly tiles: { [key: string]: SceneTile };\n\n /**\n * Emits an event each time a {@link @xeokit/scene!SceneModel | SceneModel} is created in this Scene.\n *\n * @event\n */\n public readonly onModelCreated: EventEmitter;\n\n /**\n * Emits an event each time a {@link @xeokit/scene!SceneModel | SceneModel} is destroyed in this Scene.\n *\n * @event\n */\n public readonly onModelDestroyed: EventEmitter;\n\n /**\n * Emits an event each time a {@link @xeokit/scene!SceneTile} is created in this Scene.\n *\n * @event\n */\n public readonly onTileCreated: EventEmitter;\n\n /**\n * Emits an event each time a {@link @xeokit/scene!SceneTile} is destroyed in this Scene.\n *\n * @event\n */\n public readonly onTileDestroyed: EventEmitter;\n\n #onModelBuilts: { [key: string]: any };\n #onModelDestroys: { [key: string]: any };\n #center: Float64Array;\n #aabbDirty: boolean;\n #aabb: Float64Array;\n\n /**\n * Creates a new Scene.\n *\n * See {@link \"@xeokit/scene\" | @xeokit/scene} for usage.\n */\n constructor() {\n\n super(null, {});\n\n this.#aabb = createAABB3();\n this.#aabbDirty = true;\n\n this.models = {};\n this.objects = {};\n this.tiles = {};\n\n this.#onModelBuilts = {};\n this.#onModelDestroys = {};\n this.onModelCreated = new EventEmitter(new EventDispatcher());\n this.onModelDestroyed = new EventEmitter(new EventDispatcher());\n this.onTileCreated = new EventEmitter(new EventDispatcher());\n this.onTileDestroyed = new EventEmitter(new EventDispatcher());\n }\n\n /**\n * Gets the collective World-space 3D center of all the {@link @xeokit/scene!SceneModel | SceneModels} in this Scene.\n */\n get center(): Float64Array {\n if (this.#aabbDirty) {\n const aabb = this.aabb; // Lazy-build\n this.#center[0] = (aabb[0] + aabb[3]) / 2;\n this.#center[1] = (aabb[1] + aabb[4]) / 2;\n this.#center[2] = (aabb[2] + aabb[5]) / 2;\n }\n return this.#center;\n }\n\n /**\n * Gets the collective World-space 3D [axis-aligned boundary](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#aabb) of all the {@link @xeokit/scene!SceneModel | SceneModels} in this Scene.\n *\n * The boundary will be of the form ````[xMin, yMin, zMin, xMax, yMax, zMax]````.\n */\n get aabb(): FloatArrayParam {\n if (this.#aabbDirty) {\n let xmin = MAX_DOUBLE;\n let ymin = MAX_DOUBLE;\n let zmin = MAX_DOUBLE;\n let xmax = MIN_DOUBLE;\n let ymax = MIN_DOUBLE;\n let zmax = MIN_DOUBLE;\n let aabb;\n const objects = this.objects;\n let valid = false;\n for (const objectId in objects) {\n if (objects.hasOwnProperty(objectId)) {\n const object = objects[objectId];\n // if (object.collidable === false) {\n // continue;\n // }\n aabb = object.aabb;\n if (aabb[0] < xmin) {\n xmin = aabb[0];\n }\n if (aabb[1] < ymin) {\n ymin = aabb[1];\n }\n if (aabb[2] < zmin) {\n zmin = aabb[2];\n }\n if (aabb[3] > xmax) {\n xmax = aabb[3];\n }\n if (aabb[4] > ymax) {\n ymax = aabb[4];\n }\n if (aabb[5] > zmax) {\n zmax = aabb[5];\n }\n valid = true;\n }\n }\n if (!valid) {\n xmin = -100;\n ymin = -100;\n zmin = -100;\n xmax = 100;\n ymax = 100;\n zmax = 100;\n }\n this.#aabb[0] = xmin;\n this.#aabb[1] = ymin;\n this.#aabb[2] = zmin;\n this.#aabb[3] = xmax;\n this.#aabb[4] = ymax;\n this.#aabb[5] = zmax;\n this.#aabbDirty = false;\n }\n return this.#aabb;\n }\n\n /**\n * Creates a new {@link @xeokit/scene!SceneModel | SceneModel} in this Scene.\n *\n * Remember to call {@link @xeokit/scene!SceneModel.build | SceneModel.build} when you've finished building or\n * loading the SceneModel. That will\n * fire events via {@link @xeokit/scene!Scene.onModelCreated | Scene.onModelCreated} and {@link @xeokit/scene!SceneModel.onBuilt | SceneModel.onBuilt}, to\n * indicate to any subscribers that the SceneModel is built and ready for use.\n *\n * See {@link \"@xeokit/scene\" | @xeokit/scene} for more details on usage.\n *\n * @param sceneModelParams Creation parameters for the new {@link @xeokit/scene!SceneModel | SceneModel}.\n * @returns *{@link @xeokit/scene!SceneModel | SceneModel}*\n * * On success.\n * @returns *{@link @xeokit/core!SDKError | SDKError}*\n * * This Scene has already been destroyed.\n * * A SceneModel with the given ID already exists in this Scene.\n */\n createModel(sceneModelParams: SceneModelParams): SceneModel | SDKError {\n if (this.destroyed) {\n return new SDKError(\"Scene already destroyed\");\n }\n const id = sceneModelParams.id;\n if (this.models[id]) {\n return new SDKError(`SceneModel already created in this Scene: ${id}`);\n }\n const sceneModel = new SceneModel(this, sceneModelParams);\n this.models[id] = sceneModel;\n sceneModel.onDestroyed.one(() => { // SceneModel#destroy() called\n delete this.models[sceneModel.id];\n this.#deregisterObjects(sceneModel);\n this.onModelDestroyed.dispatch(this, sceneModel);\n });\n sceneModel.onBuilt.one(() => { // SceneModel#build() called\n this.#registerObjects(sceneModel);\n this.onModelCreated.dispatch(this, sceneModel);\n });\n return sceneModel;\n }\n\n /**\n * @private\n */\n setAABBDirty() {\n if (!this.#aabbDirty) {\n this.#aabbDirty = true;\n //this.events.fire(\"aabb\", true);\n }\n }\n\n /**\n * Destroys all contained {@link @xeokit/scene!SceneModel | SceneModels}.\n *\n * * Fires {@link @xeokit/scene!Scene.onModelDestroyed | Scene.onModelDestroyed} and\n * {@link @xeokit/scene!SceneModel.onDestroyed | SceneModel.onDestroyed} for each existing SceneModel in this Scene.\n *\n * See {@link \"@xeokit/scene\" | @xeokit/scene} for usage.\n * @returns *void*\n * * On success.\n * @returns *{@link @xeokit/core!SDKError | SDKError}*\n * * This Scene has already been destroyed.\n */\n clear(): void | SDKError {\n if (this.destroyed) {\n return new SDKError(\"Scene already destroyed\");\n }\n for (let id in this.models) {\n this.models[id].destroy();\n }\n }\n\n /**\n * Destroys this Scene and all contained {@link @xeokit/scene!SceneModel | SceneModels}.\n *\n * * Fires {@link @xeokit/scene!Scene.onModelDestroyed | Scene.onModelDestroyed} and {@link @xeokit/scene!SceneModel.onDestroyed | SceneModel.onDestroyed}\n * for each existing SceneModels in this Data.\n * * Unsubscribes all subscribers to {@link @xeokit/scene!Scene.onModelCreated | Scene.onModelCreated}, {@link @xeokit/scene!Scene.onModelDestroyed | Scene.onModelDestroyed}, {@link @xeokit/scene!SceneModel.onDestroyed | SceneModel.onDestroyed}\n *\n * See {@link \"@xeokit/scene\" | @xeokit/scene} for usage.\n *\n * @returns *void*\n * * On success.\n * @returns *{@link @xeokit/core!SDKError | SDKError}*\n * * This Scene has already been destroyed.\n */\n destroy(): void | SDKError {\n this.clear();\n this.onModelCreated.clear();\n this.onModelDestroyed.clear();\n this.onTileCreated.clear();\n this.onTileDestroyed.clear();\n super.destroy();\n }\n\n #registerObjects(model: SceneModel) {\n const objects = model.objects;\n for (let id in objects) {\n const object = objects[id];\n this.objects[object.id] = object;\n }\n this.#aabbDirty = true;\n }\n\n #deregisterObjects(model: SceneModel) {\n const objects = model.objects;\n for (let id in objects) {\n const object = objects[id];\n delete this.objects[object.id];\n }\n this.#aabbDirty = true;\n }\n\n getTile(origin: FloatArrayParam):SceneTile {\n const tileId = `${origin[0]}-${origin[1]}-${origin[2]}`;\n let tile = this.tiles[tileId];\n if (tile) {\n tile.numObjects++;\n } else {\n tile = new SceneTile(this, tileId, origin);\n tile.numObjects = 1;\n this.tiles[tileId] = tile;\n this.onTileCreated.dispatch(this, tile);\n }\n return tile;\n }\n\n putTile(tile: SceneTile): void {\n if (this.tiles[tile.id] === undefined) {\n return;\n }\n if (--tile.numObjects <= 0) {\n delete this.tiles[tile.id];\n this.onTileDestroyed.dispatch(this, tile);\n }\n }\n\n\n}\n", "// import {KTX2BasisWriter} from \"@loaders.gl/textures\";\n// import {ImageLoader} from '@loaders.gl/images';\nimport {EventDispatcher} from \"strongly-typed-events\";\nimport {Component, EventEmitter, SDKError} from \"@xeokit/core\";\nimport {LinesPrimitive, PointsPrimitive, SolidPrimitive, SurfacePrimitive, TrianglesPrimitive} from \"@xeokit/constants\";\nimport {createAABB3} from \"@xeokit/boundaries\";\nimport {SceneGeometry} from \"./SceneGeometry\";\nimport {SceneObject} from \"./SceneObject\";\nimport {SceneTextureSet} from \"./SceneTextureSet\";\nimport {SceneTexture} from \"./SceneTexture\";\nimport {SceneMesh} from \"./SceneMesh\";\nimport type {RendererModel} from \"./RendererModel\";\nimport type {SceneTextureSetParams} from \"./SceneTextureSetParams\";\nimport type {SceneGeometryParams} from \"./SceneGeometryParams\";\nimport type {SceneGeometryCompressedParams} from \"./SceneGeometryCompressedParams\";\nimport type {SceneMeshParams} from \"./SceneMeshParams\";\nimport type {SceneObjectParams} from \"./SceneObjectParams\";\nimport type {SceneTextureParams} from \"./SceneTextureParams\";\nimport {compressGeometryParams} from \"./compressGeometryParams\";\nimport type {SceneModelParams} from \"./SceneModelParams\";\nimport type {Scene} from \"./Scene\";\nimport type {SceneModelStats} from \"./SceneModelStats\";\nimport {\n composeMat4, createMat4,\n createVec3,\n eulerToQuat,\n identityMat4,\n identityQuat,\n mulVec3Scalar,\n translateMat4v\n} from \"@xeokit/matrix\";\nimport {SceneModelStreamParams} from \"./SceneModelStreamParams\";\nimport {SceneQuantizationRange} from \"./SceneQuantizationRange\";\nimport {SceneQuantizationRangeParams} from \"./SceneQuantizationRangeParams\";\nimport {SceneTile} from \"./SceneTile\";\nimport {createRTCModelMat} from \"@xeokit/rtc\";\n\n\n// DTX texture types\n\nconst COLOR_TEXTURE = 0;\nconst METALLIC_ROUGHNESS_TEXTURE = 1;\nconst NORMALS_TEXTURE = 2;\nconst EMISSIVE_TEXTURE = 3;\nconst OCCLUSION_TEXTURE = 4;\n\n// KTX2 encoding options for each texture type\n\nconst TEXTURE_ENCODING_OPTIONS: {\n [key: string]: any\n} = {}\n\nTEXTURE_ENCODING_OPTIONS[COLOR_TEXTURE] = {\n useSRGB: true,\n qualityLevel: 50,\n encodeUASTC: true,\n mipmaps: true\n};\n\nTEXTURE_ENCODING_OPTIONS[EMISSIVE_TEXTURE] = {\n useSRGB: true,\n encodeUASTC: true,\n qualityLevel: 10,\n mipmaps: false\n};\n\nTEXTURE_ENCODING_OPTIONS[METALLIC_ROUGHNESS_TEXTURE] = {\n useSRGB: false,\n encodeUASTC: true,\n qualityLevel: 50,\n mipmaps: true // Needed for GGX roughness shading\n};\n\nTEXTURE_ENCODING_OPTIONS[NORMALS_TEXTURE] = {\n useSRGB: false,\n encodeUASTC: true,\n qualityLevel: 10,\n mipmaps: false\n};\n\nTEXTURE_ENCODING_OPTIONS[OCCLUSION_TEXTURE] = {\n useSRGB: false,\n encodeUASTC: true,\n qualityLevel: 10,\n mipmaps: false\n};\n\n/**\n * xeokit SceneGeometry and Materials Model.\n *\n * * A representation of a model's geometry and materials within a {@link @xeokit/scene!Scene | Scene}.\n * * Contains {@link @xeokit/scene!SceneObject | SceneObjects}, {@link @xeokit/scene!SceneMesh | SceneMeshes}, {@link @xeokit/scene!SceneGeometry | Geometries} and {@link @xeokit/scene!SceneTexture | Textures}.\n * * Compresses textures using [Basis](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#basis)\n * * Viewable in the Browser with {@link @xeokit/viewer!Viewer | Viewer}\n * * Importable from various model file formats, using {@link @xeokit/gltf!loadGLTF | loadGLTF}, {@link @xeokit/dotbim!loadDotBIM | loadDotBIM}, {@link @xeokit/las!loadLAS | loadLAS}, {@link @xeokit/cityjson!loadCityJSON | loadCityJSON}, {@link @xeokit/dtx!loadDTX | loadDTX}, {@link @xeokit/xkt!loadXKT | loadXKT} (etc)\n * * Exportable to [DTX](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#dtx) format using {@link @xeokit/dtx!saveDTX | saveDTX}\n * * Programmatically buildable using builder methods\n *\n * See {@link \"@xeokit/scene\" | @xeokit/scene} for usage.\n */\nexport class SceneModel extends Component {\n\n /**\n * Indicates what renderer resources will need to be allocated in a {@link @xeokit/viewer!Viewer | Viewer's}\n * {@link @xeokit/viewer!Renderer | Renderer} to support progressive loading for the {@link @xeokit/scene!SceneModel | SceneModel}.\n *\n * See {@link \"@xeokit/scene\" | @xeokit/scene} for usage.\n */\n public streamParams?: SceneModelStreamParams;\n\n /**\n * The {@link @xeokit/scene!Scene | Scene} that contains this SceneModel.\n */\n public readonly scene: Scene;\n\n /**\n * Whether IDs of {@link @xeokit/scene!SceneObject | SceneObjects} are globalized.\n *\n * When globalized, the IDs are prefixed with the value of {@link @xeokit/scene!SceneModel.id | SceneModel.id}\n *\n * This is ````false```` by default.\n */\n declare public readonly globalizedIds: boolean;\n\n /**\n * Unique ID of this SceneModel.\n *\n * SceneModel are stored against this ID in {@link @xeokit/scene!Scene.models | Scene.models}.\n */\n declare public readonly id: string;\n\n /**\n * If we want to view this SceneModel with a {@link @xeokit/viewer!Viewer | Viewer}, an\n * optional ID of a {@link @xeokit/viewer!ViewLayer | ViewLayer} to view it in.\n */\n public readonly layerId?: string;\n\n /**\n * Indicates if this SceneModel has already been built.\n *\n * * Set ````true```` by {@link @xeokit/scene!SceneModel.build | SceneModel.build}.\n * * Subscribe to updates using {@link @xeokit/scene!SceneModel.onBuilt | SceneModel.onBuilt}\n * and {@link @xeokit/scene!Scene.onModelCreated | Scene.onModelCreated}.\n * * Don't create anything more in this SceneModel once it's built.\n */\n public built: boolean;\n\n /**\n * Indicates if this SceneModel has been destroyed.\n *\n * * Set ````true```` by {@link @xeokit/scene!SceneModel.destroy | SceneModel.destroy}.\n * * Don't create anything more in this SceneModel once it's destroyed.\n */\n declare readonly destroyed: boolean;\n\n /**\n * The edge threshold for automatic [edge primitive generation](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#geometry-edge-generation).\n */\n public readonly edgeThreshold: number;\n\n /**\n * {@link @xeokit/scene!SceneGeometry | Geometries} within this SceneModel, each mapped to {@link @xeokit/scene!SceneGeometry.id | SceneGeometry.id}.\n *\n * * Created by {@link @xeokit/scene!SceneModel.createGeometry | SceneModel.createGeometry}.\n */\n public readonly geometries: { [key: string]: SceneGeometry };\n\n /**\n * {@link @xeokit/scene!SceneQuantizationRange | SceneQuantizationRanges} within this SceneModel, each mapped to {@link @xeokit/scene!SceneQuantizationRange.id | SceneQuantizationRange.id}.\n *\n * * Created by {@link @xeokit/scene!SceneModel.createGeometry | SceneModel.createGeometry}.\n */\n public readonly quantizationRanges: { [key: string]: SceneQuantizationRange };\n\n /**\n * {@link @xeokit/scene!SceneTexture | Textures} within this SceneModel, each mapped to {@link @xeokit/scene!SceneTexture.id | SceneTexture.id}.\n *\n * * Created by {@link @xeokit/scene!SceneModel.createTexture | SceneModel.createTexture}.\n * * Compressed asynchronously in {@link @xeokit/scene!SceneModel.build | SceneModel.build}.\n */\n public readonly textures: { [key: string]: SceneTexture };\n\n /**\n * {@link @xeokit/scene!SceneTextureSet | TextureSets} within this SceneModel, each mapped to {@link @xeokit/scene!SceneTextureSet.id | SceneTextureSet.id}.\n *\n * * Created by {@link @xeokit/scene!SceneModel.createTextureSet | SceneModel.createTextureSet}.\n */\n public readonly textureSets: { [key: string]: SceneTextureSet };\n\n /**\n * The {@link @xeokit/scene!SceneTile | Tiles} used by this SceneModel, each mapped to {@link @xeokit/scene!SceneTile.id | SceneTile.id}.\n */\n public readonly tiles: { [key: string]: SceneTile };\n\n /**\n * The {@link @xeokit/scene!SceneTile | Tiles} used by this SceneModel.\n */\n public readonly tilesList: SceneTile [];\n\n /**\n * {@link @xeokit/scene!SceneMesh | SceneMeshes} within this SceneModel, each mapped to {@link @xeokit/scene!SceneMesh.id | SceneMesh.id}.\n *\n * * Created by {@link @xeokit/scene!SceneModel.createMesh | SceneModel.createMesh}.\n */\n public readonly meshes: { [key: string]: SceneMesh };\n\n /**\n * {@link @xeokit/scene!SceneObject | SceneObjects} within this SceneModel, each mapped to {@link @xeokit/scene!SceneObject.id | SceneObject.id}.\n *\n * * Created by {@link @xeokit/scene!SceneModel.createObject | SceneModel.createObject}.\n */\n readonly objects: { [key: string]: SceneObject };\n\n /**\n * The axis-aligned 3D World-space boundary of this SceneModel.\n *\n * * Created by {@link @xeokit/scene!SceneModel.build | SceneModel.build}.\n */\n public readonly aabb: Float64Array;\n\n /**\n * Emits an event when this {@link @xeokit/scene!SceneModel | SceneModel} has been built.\n *\n * * Triggered by {@link @xeokit/scene!SceneModel.build | SceneModel.build}.\n *\n * @event onBuilt\n */\n public readonly onBuilt: EventEmitter;\n\n /**\n * Emits an event when this {@link @xeokit/scene!SceneModel | SceneModel} has been destroyed.\n *\n * * Triggered by {@link @xeokit/scene!SceneModel.destroy | SceneModel.destroy}.\n *\n * @event onDestroyed\n */\n declare public readonly onDestroyed: EventEmitter;\n\n /**\n * Internal interface through which a SceneModel can load updated content into a renderers.\n *\n * @internal\n */\n public rendererModel: RendererModel | null;\n\n /**\n * Statistics on this SceneModel.\n */\n public readonly stats: SceneModelStats;\n\n /**\n * TODO\n *\n * @see {@link @xeokit/scene!SceneModelParams | SceneModelParams}.\n */\n public readonly retained: boolean;\n\n #texturesList: SceneTexture[];\n #numObjects: number;\n #meshUsedByObject: { [key: string]: boolean };\n\n\n /**\n * @private\n */\n constructor(scene: Scene, sceneModelParams: SceneModelParams) {\n super(scene, {\n id: sceneModelParams.id\n });\n\n this.scene = scene;\n\n this.tiles = {};\n this.tilesList = [];\n\n this.onBuilt = new EventEmitter(new EventDispatcher());\n this.onDestroyed = new EventEmitter(new EventDispatcher());\n\n this.#numObjects = 0;\n this.#meshUsedByObject = {};\n\n this.streamParams = sceneModelParams.streamParams;\n this.globalizedIds = (!!sceneModelParams.globalizedIds);\n this.id = sceneModelParams.id || \"default\";\n this.layerId = sceneModelParams.layerId;\n this.edgeThreshold = 10;\n this.geometries = {};\n this.quantizationRanges = {};\n this.textures = {};\n this.#texturesList = [];\n this.textureSets = {};\n this.meshes = {};\n this.objects = {};\n this.aabb = createAABB3();\n this.built = false;\n this.rendererModel = null;\n\n this.stats = {\n numGeometries: 0,\n numLines: 0,\n numMeshes: 0,\n numObjects: 0,\n numPoints: 0,\n numTextureSets: 0,\n numTextures: 0,\n numTriangles: 0,\n numVertices: 0,\n textureBytes: 0\n };\n\n this.fromJSON(sceneModelParams);\n\n this.retained = (sceneModelParams.retained !== false);\n }\n\n /**\n * Adds components to this SceneModel.\n *\n * See {@link \"@xeokit/scene\" | @xeokit/scene} for usage.\n *\n * @param sceneModelParams\n * @returns *void*\n * * On success.\n * @returns *{@link @xeokit/core!SDKError | SDKError}*\n * * If this SceneModel has already been built.\n * * If this SceneModel has already been destroyed.\n * * A duplicate component ({@link @xeokit/scene!SceneObject}, {@link @xeokit/scene!SceneMesh},\n * {@link @xeokit/scene!SceneGeometry}, {@link @xeokit/scene!SceneTexture} etc.) was already created within this SceneModel.\n */\n fromJSON(sceneModelParams: SceneModelParams): void | SDKError {\n if (this.destroyed) {\n return new SDKError(\"Failed to add components to SceneModel - SceneModel already destroyed\");\n }\n if (this.built) {\n return new SDKError(\"Failed to add components to SceneModel - SceneModel already built\");\n }\n if (sceneModelParams.geometries) {\n for (let i = 0, len = sceneModelParams.geometries.length; i < len; i++) {\n this.createGeometry(sceneModelParams.geometries[i]);\n }\n }\n if (sceneModelParams.geometriesCompressed) {\n for (let i = 0, len = sceneModelParams.geometriesCompressed.length; i < len; i++) {\n this.createGeometryCompressed(sceneModelParams.geometriesCompressed[i]);\n }\n }\n if (sceneModelParams.textures) {\n for (let i = 0, len = sceneModelParams.textures.length; i < len; i++) {\n this.createTexture(sceneModelParams.textures[i]);\n }\n }\n if (sceneModelParams.textureSets) {\n for (let i = 0, len = sceneModelParams.textureSets.length; i < len; i++) {\n this.createTextureSet(sceneModelParams.textureSets[i]);\n }\n }\n if (sceneModelParams.meshes) {\n for (let i = 0, len = sceneModelParams.meshes.length; i < len; i++) {\n this.createMesh(sceneModelParams.meshes[i]);\n }\n }\n if (sceneModelParams.objects) {\n for (let i = 0, len = sceneModelParams.objects.length; i < len; i++) {\n this.createObject(sceneModelParams.objects[i]);\n }\n }\n }\n\n /**\n * Creates a new {@link @xeokit/scene!SceneTexture} within this SceneModel.\n *\n * * Stores the new {@link @xeokit/scene!SceneTexture} in {@link @xeokit/scene!SceneModel.textures | SceneModel.textures}.\n * * Textures are compressed asynchronously by {@link @xeokit/scene!SceneModel.build | SceneModel.build}.\n *\n * ### Usage\n *\n * ````javascript\n * const texture = sceneModel.createTexture({\n * id: \"myColorTexture\",\n * src: // Path to JPEG, PNG, KTX2,\n * image: // HTMLImageElement,\n * buffers: // ArrayBuffer[] containing KTX2 MIP levels\n * preloadColor: [1,0,0,1],\n * flipY: false,\n * encoding: LinearEncoding, // @xeokit/constants\n * magFilter: LinearFilter,\n * minFilter: LinearFilter,\n * wrapR: ClampToEdgeWrapping,\n * wrapS: ClampToEdgeWrapping,\n * wrapT: ClampToEdgeWrapping,\n * });\n *\n * const textureAgain = sceneModel.textures[\"myColorTexture\"];\n * ````\n *\n * See {@link \"@xeokit/scene\" | @xeokit/scene} for more usage info.\n *\n * @param textureParams - SceneTexture creation parameters.\n * @returns *{@link @xeokit/scene!SceneTexture}*\n * * On success.\n * @returns *{@link @xeokit/core!SDKError | SDKError}*\n * * If SceneModel has already been built or destroyed.\n * * Invalid SceneTextureParams were given.\n * * SceneTexture with given ID already exists in this Scene.\n */\n createTexture(textureParams: SceneTextureParams): SceneTexture | SDKError {\n if (this.destroyed) {\n return new SDKError(\"Failed to create SceneTexture in SceneModel - SceneModel already destroyed\");\n }\n if (this.built) {\n return new SDKError(\"Failed to create SceneTexture in SceneModel - SceneModel already built\");\n }\n if (!textureParams.imageData && !textureParams.src && !textureParams.buffers) {\n return new SDKError(\"Failed to create SceneTexture in SceneModel - Parameter expected: textureParams.imageData, textureParams.src or textureParams.buffers\");\n }\n if (this.textures[textureParams.id]) {\n return new SDKError(`Failed to create Texture in SceneModel - Texture already exists with this ID: ${textureParams.id}`);\n }\n if (textureParams.src) {\n const fileExt = textureParams.src.split('.').pop();\n // if (fileExt !== \"jpg\" && fileExt !== \"jpeg\" && fileExt !== \"png\") {\n // console.error(`Model does not support image files with extension '${fileExt}' - won't create texture '${textureParams.id}`);\n // return;\n // }\n }\n if (textureParams.imageData) {\n this.stats.textureBytes += (textureParams.imageData.width * textureParams.imageData.height * 4); // Guessing\n }\n const texture = new SceneTexture(textureParams);\n this.textures[textureParams.id] = texture;\n this.#texturesList.push(texture);\n this.stats.numTextures++;\n return texture;\n }\n\n /**\n * Creates a new {@link @xeokit/scene!SceneTextureSet} within this SceneModel.\n *\n * * Stores the new {@link @xeokit/scene!SceneTextureSet} in {@link @xeokit/scene!SceneModel.textureSets | SceneModel.textureSets}.\n *\n * ### Usage\n *\n * ````javascript\n * const textureSet = sceneModel.createTextureSet({\n * id: \"myTextureSet\",\n * colorTextureId: \"myColorTexture\"\n * });\n *\n * const textureSetAgain = sceneModel.textureSets[\"myTextureSet\"];\n * ````\n *\n * See {@link \"@xeokit/scene\" | @xeokit/scene} for more usage info.\n *\n * @param textureSetParams SceneTextureSet creation parameters.\n *\n * @returns *{@link @xeokit/scene!SceneTextureSet}*\n * * On success.\n * @returns *{@link @xeokit/core!SDKError | SDKError}*\n * * If SceneModel has already been built or destroyed.\n * * Invalid SceneTextureSetParams were given.\n * * SceneTextureSet with given ID already exists in this SceneModel.\n * * One or more of the given Textures could not be found in this SceneModel.\n */\n createTextureSet(textureSetParams: SceneTextureSetParams): SceneTextureSet | SDKError {\n if (this.destroyed) {\n return new SDKError(\"Failed to create SceneTextureSet in SceneModel - SceneModel already destroyed\");\n }\n if (this.built) {\n return new SDKError(\"Failed to create SceneTextureSet in SceneModel - SceneModel already built\");\n }\n if (this.textureSets[textureSetParams.id]) {\n return new SDKError(`Failed to create TextureSet in SceneModel - TextureSet already exists with this ID: ${textureSetParams.id}`);\n }\n let colorTexture;\n if (textureSetParams.colorTextureId !== undefined && textureSetParams.colorTextureId !== null) {\n colorTexture = this.textures[textureSetParams.colorTextureId];\n if (!colorTexture) {\n return new SDKError(`Failed to create TextureSet in SceneModel - Texture not found: ${textureSetParams.colorTextureId} - ensure that you create it first with createTexture()`);\n }\n colorTexture.channel = COLOR_TEXTURE;\n }\n let metallicRoughnessTexture;\n if (textureSetParams.metallicRoughnessTextureId !== undefined && textureSetParams.metallicRoughnessTextureId !== null) {\n metallicRoughnessTexture = this.textures[textureSetParams.metallicRoughnessTextureId];\n if (!metallicRoughnessTexture) {\n return new SDKError(`Failed to create TextureSet in SceneModel - Texture not found: ${textureSetParams.metallicRoughnessTextureId} - ensure that you create it first with createTexture()`);\n }\n metallicRoughnessTexture.channel = METALLIC_ROUGHNESS_TEXTURE;\n }\n let normalsTexture;\n if (textureSetParams.normalsTextureId !== undefined && textureSetParams.normalsTextureId !== null) {\n normalsTexture = this.textures[textureSetParams.normalsTextureId];\n if (!normalsTexture) {\n return new SDKError(`Failed to create TextureSet in SceneModel - Texture not found: ${textureSetParams.normalsTextureId} - ensure that you create it first with createTexture()`);\n }\n normalsTexture.channel = NORMALS_TEXTURE;\n }\n let emissiveTexture;\n if (textureSetParams.emissiveTextureId !== undefined && textureSetParams.emissiveTextureId !== null) {\n emissiveTexture = this.textures[textureSetParams.emissiveTextureId];\n if (!emissiveTexture) {\n return new SDKError(`Failed to create TextureSet in SceneModel - Texture not found: ${textureSetParams.emissiveTextureId} - ensure that you create it first with createTexture()`);\n }\n emissiveTexture.channel = EMISSIVE_TEXTURE;\n }\n let occlusionTexture;\n if (textureSetParams.occlusionTextureId !== undefined && textureSetParams.occlusionTextureId !== null) {\n occlusionTexture = this.textures[textureSetParams.occlusionTextureId];\n if (!occlusionTexture) {\n return new SDKError(`Failed to create TextureSet in SceneModel - Texture not found: ${textureSetParams.occlusionTextureId} - ensure that you create it first with createTexture()`);\n }\n occlusionTexture.channel = OCCLUSION_TEXTURE;\n }\n const textureSet = new SceneTextureSet(textureSetParams, {\n emissiveTexture,\n occlusionTexture,\n metallicRoughnessTexture,\n colorTexture\n });\n this.textureSets[textureSetParams.id] = textureSet;\n this.stats.numTextureSets++;\n return textureSet;\n }\n\n /**\n * Creates a new {@link @xeokit/scene!SceneGeometry} within this SceneModel, from non-compressed geometry parameters.\n *\n * * Stores the new {@link @xeokit/scene!SceneGeometry} in {@link @xeokit/scene!SceneModel.geometries | SceneModel.geometries}.\n *\n * ### Usage\n *\n * ````javascript\n * const boxGeometry = sceneModel.createGeometry({\n * id: \"boxGeometry\",\n * primitive: TrianglesPrimitive, // @xeokit/constants\n * positions: [\n * 1, 1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, // v0-v1-v2-v3 front\n * 1, 1, 1, 1, -1, 1, 1, -1, -1, 1, 1, -1, // v0-v3-v4-v1 right\n * 1, 1, 1, 1, 1, -1, -1, 1, -1, -1, 1, 1, // v0-v1-v6-v1 top\n * -1, 1, 1, -1, 1, -1, -1, -1, -1, -1, -1, 1, // v1-v6-v7-v2 left\n * -1, -1, -1, 1, -1, -1, 1, -1, 1, -1, -1, 1,// v7-v4-v3-v2 bottom\n * 1, -1, -1, -1, -1, -1, -1, 1, -1, 1, 1, -1 // v4-v7-v6-v1 back\n * ],\n * indices: [\n * 0, 1, 2, 0, 2, 3, 4, 5, 6, 4, 6, 7, 8, 9, 10, 8, 10, 11, 12, 13, 14, 12, 14, 15,\n * 16, 17, 18, 16, 18, 19, 20, 21, 22, 20, 22, 23\n * ]\n * });\n *\n * if (boxGeometry instanceof SDKError) {\n * console.log(boxGeometry.message);\n * } else {\n * const boxGeometryAgain = sceneModel.geometries[\"boxGeometry\"];\n * }\n * ````\n *\n * See {@link \"@xeokit/scene\" | @xeokit/scene} for more usage info.\n *\n * @param geometryParams Non-compressed geometry parameters.\n * @returns *{@link @xeokit/scene!SceneGeometry}*\n * * On success.\n * @returns *{@link @xeokit/core!SDKError | SDKError}*\n * * If this SceneModel has already been destroyed.\n * * If this SceneModel has already been built.\n * * Invalid SceneGeometryParams were given.\n * * SceneGeometry of given ID already exists in this SceneModel.\n * * Unsupported primitive type given.\n * * Mandatory vertex positions were not given. Vertex positions are mandatory for all primitive types.\n * * Mandatory indices were not given for primitive type that is not {@link @xeokit/constants!PointsPrimitive}. Indices are mandatory for all primitive types except PointsPrimitive.\n * * Indices out of range of vertex positions.\n * * Indices out of range of vertex UVs.\n * * Mismatch between given quantities of vertex positions and UVs.\n */\n createGeometry(geometryParams: SceneGeometryParams): SceneGeometry | SDKError {\n if (this.destroyed) {\n return new SDKError(\"Failed to create SceneGeometry in SceneModel - SceneModel already destroyed\");\n }\n if (this.built) {\n return new SDKError(\"Failed to create SceneGeometry in SceneModel - SceneModel already built\");\n }\n if (!geometryParams) {\n return new SDKError(\"Failed to create SceneGeometry in SceneModel - Parameters expected: geometryParams\");\n }\n if (geometryParams.id === null || geometryParams.id === undefined) {\n return new SDKError(\"Failed to create SceneGeometry in SceneModel - Parameter expected: geometryParams.id\");\n }\n const geometryId = geometryParams.id;\n if (this.geometries[geometryId]) {\n return new SDKError(`Failed to create Geometry in SceneModel - Geometry with this ID already created: ${geometryId}`);\n }\n const primitive = geometryParams.primitive;\n if (primitive !== PointsPrimitive && primitive !== LinesPrimitive && primitive !== TrianglesPrimitive && primitive !== SolidPrimitive && primitive !== SurfacePrimitive) {\n return new SDKError(`Failed to create Geometry in SceneModel - Unsupported value for geometryParams.primitive: '${primitive}' - supported values are PointsPrimitive, LinesPrimitive, TrianglesPrimitive, SolidPrimitive and SurfacePrimitive`);\n }\n if (!geometryParams.positions) {\n return new SDKError(\"Failed to create SceneGeometry in SceneModel - Param expected: geometryParams.positions\");\n }\n if (!geometryParams.indices && primitive !== PointsPrimitive) {\n return new SDKError(`Failed to create Geometry in SceneModel - Param expected: geometryParams.indices (required for primitive type)`);\n }\n if (geometryParams.uvs) {\n if (geometryParams.uvs.length / 2 !== geometryParams.positions.length / 3) {\n return new SDKError(\"Failed to create SceneGeometry in SceneModel - mismatch between given quantities of vertex positions and UVs\");\n }\n }\n if (geometryParams.indices) {\n const lastPositionsIdx = geometryParams.positions.length / 3;\n for (let i = 0, len = geometryParams.indices.length; i < len; i++) {\n const idx = geometryParams.indices[i];\n if (idx < 0 || idx >= lastPositionsIdx) {\n return new SDKError(\"Failed to create SceneGeometry in SceneModel - indices out of range of vertex positions\");\n }\n if (geometryParams.uvs) {\n const lastUVsIdx = geometryParams.uvs.length / 2;\n if (idx < 0 || idx >= lastUVsIdx) {\n return new SDKError(\"Failed to create SceneGeometry in SceneModel - indices out of range of vertex UVs\");\n }\n }\n }\n }\n const geometry = new SceneGeometry(compressGeometryParams(geometryParams));\n this.geometries[geometryId] = geometry;\n this.stats.numGeometries++;\n if (geometryParams.indices) {\n if (geometry.primitive === TrianglesPrimitive) {\n this.stats.numTriangles += geometryParams.indices.length / 3;\n } else if (geometry.primitive === LinesPrimitive) {\n this.stats.numLines += geometryParams.indices.length / 2;\n }\n } else if (geometry.primitive === PointsPrimitive) {\n this.stats.numPoints += geometryParams.positions.length / 3;\n }\n this.stats.numVertices += geometryParams.positions.length / 3;\n return geometry;\n }\n\n /**\n * Creates a new {@link @xeokit/scene!SceneGeometry} within this SceneModel, from pre-compressed geometry parameters.\n *\n * * Stores the new {@link @xeokit/scene!SceneGeometry} in {@link @xeokit/scene!SceneModel.geometries | SceneModel.geometries}.\n * * Use {@link @xeokit/scene!compressGeometryParams} to pre-compress {@link @xeokit/scene!SceneGeometryParams | SceneGeometryParams}\n * into {@link @xeokit/scene!SceneGeometryCompressedParams | SceneGeometryCompressedParams}.\n *\n * ### Usage\n *\n * ````javascript\n * const boxGeometry = sceneModel.createGeometryCompressed({\n * id: \"boxGeometry\",\n * primitive: TrianglesPrimitive, // @xeokit/constants\n * aabb: [-1,-1,-1, 1,1,1],\n * positionsCompressed: [\n * 65525, 65525, 65525, 0, 65525, 65525, 0, 0,\n * 65525, 65525, 0, 65525, 65525, 0, 0, 65525,\n * 65525, 0, 0, 65525, 0, 0, 0, 0\n * ],\n * indices: [\n * 0, 1, 2, 0, 2, 3, 0, 3, 4, 0, 4, 5, 0, 5, 6,\n * 0, 6, 1, 1, 6, 7, 1, 7, 2, 7, 4, 3, 7, 3, 2,\n * 4, 7, 6, 4, 6, 5\n * ]\n * });\n *\n * if (boxGeometry instanceof SDKError) {\n * console.log(boxGeometry.message);\n * } else {\n * const boxGeometryAgain = sceneModel.geometries[\"boxGeometry\"];\n * }\n * ````\n *\n * See {@link \"@xeokit/scene\" | @xeokit/scene} for more usage info.\n *\n * @param geometryCompressedParams Pre-compressed geometry parameters.\n * @returns *{@link @xeokit/scene!SceneGeometry}*\n * * On success.\n * @returns *{@link @xeokit/core!SDKError | SDKError}*\n * * If this SceneModel has already been destroyed.\n * * If this SceneModel has already been built.\n * * Invalid SceneGeometryParams were given.\n * * SceneGeometry of given ID already exists in this SceneModel.\n * * Unsupported primitive type given.\n * * Mandatory vertex positions were not given. Vertex positions are mandatory for all primitive types.\n * * Mandatory indices were not given for primitive type that is not {@link @xeokit/constants!PointsPrimitive}. Indices are mandatory for all primitive types except PointsPrimitive.\n * * Indices out of range of vertex positions.\n * * Indices out of range of vertex UVs.\n * * Mismatch between given quantities of vertex positions and UVs.\n */\n createGeometryCompressed(geometryCompressedParams: SceneGeometryCompressedParams): SceneGeometry | SDKError {\n if (this.destroyed) {\n return new SDKError(\"Failed to add compressed SceneGeometry to SceneModel - SceneModel already destroyed\");\n }\n if (this.built) {\n return new SDKError(\"Failed to add compressed SceneGeometry to SceneModel - SceneModel already built\");\n }\n if (!geometryCompressedParams) {\n return new SDKError(\"Failed to add compressed SceneGeometry to SceneModel - Parameters expected: geometryCompressedParams\");\n }\n const geometryId = geometryCompressedParams.id;\n if (this.geometries[geometryId]) {\n return new SDKError(`Failed to add compressed Geometry to SceneModel - Geometry with this ID already created: ${geometryId}`);\n }\n const primitive = geometryCompressedParams.primitive;\n if (primitive !== PointsPrimitive && primitive !== LinesPrimitive && primitive !== TrianglesPrimitive && primitive !== SolidPrimitive && primitive !== SurfacePrimitive) {\n return new SDKError(`Failed to add compressed Geometry to SceneModel - Unsupported value for geometryCompressedParams.primitive: '${primitive}' - supported values are PointsPrimitive, LinesPrimitive, TrianglesPrimitive, SolidPrimitive and SurfacePrimitive`);\n }\n const geometry = new SceneGeometry(geometryCompressedParams);\n this.geometries[geometryId] = geometry;\n this.stats.numGeometries++;\n return geometry;\n }\n\n /**\n *\n * @param quantizationRangeParams\n */\n createQuantizationRange(quantizationRangeParams: SceneQuantizationRangeParams): SceneQuantizationRange | SDKError {\n if (this.destroyed) {\n return new SDKError(\"Failed to add SceneQuantizationRange to SceneModel - SceneModel already destroyed\");\n }\n if (this.built) {\n return new SDKError(\"Failed to add SceneQuantizationRange to SceneModel - SceneModel already built\");\n }\n if (!quantizationRangeParams) {\n return new SDKError(\"Failed to add SceneQuantizationRange to SceneModel - Parameters expected: geometryCompressedParams\");\n }\n const quantizationRangeId = quantizationRangeParams.id;\n if (this.quantizationRanges[quantizationRangeId]) {\n return new SDKError(`Failed to add SceneQuantizationRange to SceneModel - SceneQuantizationRange with this ID already created: ${quantizationRangeId}`);\n }\n const quantizationRange = new SceneQuantizationRange(quantizationRangeParams);\n this.quantizationRanges[quantizationRangeId] = quantizationRange;\n return quantizationRange;\n }\n\n /**\n * Creates a new {@link @xeokit/scene!SceneMesh} within this SceneModel.\n *\n * * Stores the new {@link @xeokit/scene!SceneMesh} in {@link @xeokit/scene!SceneModel.meshes | SceneModel.meshes}.\n * * A {@link @xeokit/scene!SceneMesh} can be owned by one {@link @xeokit/scene!SceneObject}, which can own multiple {@link @xeokit/scene!SceneMesh}es.\n *\n * ### Usage\n *\n * ````javascript\n * const redBoxMesh = sceneModel.createLayerMesh({\n * id: \"redBoxMesh\",\n * geometryId: \"boxGeometry\",\n * textureSetId: \"myTextureSet\",\n * position: [-4, -6, -4],\n * scale: [1, 3, 1],\n * rotation: [0, 0, 0],\n * color: [1, 0.3, 0.3]\n * });\n *\n * if (redBoxMesh instanceof SDKError) {\n * console.log(redBoxMesh.message);\n * } else {\n * const redBoxMeshAgain = sceneModel.meshes[\"redBoxMesh\"];\n * }\n * ````\n *\n * See {@link \"@xeokit/scene\" | @xeokit/scene} for more usage info.\n *\n * @param meshParams Pre-compressed mesh parameters.\n * @returns *{@link @xeokit/scene!SceneMesh}*\n * * On success.\n * @returns *{@link @xeokit/core!SDKError | SDKError}*\n * * If this SceneModel has already been destroyed.\n * * If this SceneModel has already been built.\n * * Invalid SceneMeshParams were given.\n * * SceneMesh of given ID already exists in this SceneModel.\n * * Specified SceneGeometry could not be found in this SceneModel.\n * * Specified SceneTextureSet could not be found in this SceneModel.\n */\n createMesh(meshParams: SceneMeshParams): SceneMesh | SDKError {\n if (this.destroyed) {\n return new SDKError(\"Failed to create SceneMesh in SceneModel - SceneModel already destroyed\");\n }\n if (this.built) {\n return new SDKError(\"Failed to create SceneMesh in SceneModel - SceneModel already built\");\n }\n if (this.meshes[meshParams.id]) {\n return new SDKError(`Failed to create SceneMesh in SceneModel - SceneMesh already exists with this ID: ${meshParams.id}`);\n }\n const geometry = this.geometries[meshParams.geometryId];\n if (!geometry) {\n return new SDKError(`Failed to create SceneMesh in SceneModel - Geometry not found: ${meshParams.geometryId}`);\n }\n const textureSet = meshParams.textureSetId ? this.textureSets[meshParams.textureSetId] : undefined;\n if (meshParams.textureSetId && !textureSet) {\n return new SDKError(`Failed to create SceneMesh in SceneModel - TextureSet not found: ${meshParams.textureSetId}`);\n }\n let matrix = meshParams.matrix;\n if (!matrix) {\n const position = meshParams.position;\n const scale = meshParams.scale;\n const rotation = meshParams.rotation;\n const quaternion = meshParams.quaternion;\n if (position || scale || rotation || quaternion) {\n matrix = identityMat4();\n composeMat4(position || [0, 0, 0], quaternion || eulerToQuat(rotation || [0, 0, 0], \"XYZ\", identityQuat()), scale || [1, 1, 1], matrix)\n } else {\n matrix = identityMat4();\n }\n } else {\n matrix = matrix.slice();\n }\n const origin = createVec3();\n const rtcMatrix = createRTCModelMat(matrix, origin);\n const tile = this.scene.getTile(origin);\n if (!this.tiles[tile.id]) {\n this.tiles[tile.id] = tile;\n this.tilesList.push(tile);\n }\n const mesh = new SceneMesh({\n id: meshParams.id,\n geometry,\n textureSet,\n matrix,\n rtcMatrix,\n color: meshParams.color,\n opacity: meshParams.opacity,\n tile\n });\n geometry.numMeshes++;\n this.meshes[meshParams.id] = mesh;\n this.stats.numMeshes++;\n return mesh;\n }\n\n /**\n * Creates a new {@link @xeokit/scene!SceneObject}.\n *\n * * Stores the new {@link @xeokit/scene!SceneObject} in {@link @xeokit/scene!SceneModel.objects | SceneModel.objects} and {@link @xeokit/scene!Scene.objects | Scene.objects}.\n * * Fires an event via {@link @xeokit/scene!Scene.onObjectCreated | Scene.onObjectCreated}.\n * * Each {@link @xeokit/scene!SceneMesh} is allowed to belong to one SceneObject.\n * * SceneObject IDs must be unique within the SceneModel's {@link @xeokit/scene!Scene | Scene}.\n *\n * ### Usage\n *\n * ````javascript\n * const redBoxObject = sceneModel.createObject({\n * id: \"redBoxObject\",\n * meshIds: [\"redBoxMesh\"]\n * });\n *\n * if (redBoxObject instanceof SDKError) {\n * console.log(redBoxObject.message);\n * } else {\n * const redBoxObjectAgain = sceneModel.objects[\"redBoxObject\"];\n * const redBoxObjectOnceMore = scene.objects[\"redBoxObject\"];\n * }\n * ````\n *\n * See {@link \"@xeokit/scene\" | @xeokit/scene} for more usage info.\n *\n * @param objectParams SceneObject parameters.\n * @returns *{@link @xeokit/scene!SceneObject}*\n * * On success.\n * @returns *{@link @xeokit/core!SDKError | SDKError}*\n * * If this SceneModel has already been destroyed.\n * * If this SceneModel has already been built.\n * * Invalid ObjectParams were given.\n * * SceneObject of given ID already exists in this SceneModel's Scene. Note that SceneObject IDs must be unique within the Scene.\n * * No Meshes were specified.\n * * One or more of the specified Meshes already belong to another SceneObject in this SceneModel.\n * * Specified Meshes could not be found in this SceneModel.\n */\n createObject(objectParams: SceneObjectParams): SceneObject | SDKError {\n if (this.destroyed) {\n return new SDKError(\"Failed to create SceneObject - SceneModel already destroyed\");\n }\n if (this.built) {\n return new SDKError(\"Failed to create SceneObject SceneModel already built\");\n }\n if (objectParams.meshIds.length === 0) {\n return new SDKError(\"Failed to create SceneObject - no meshes specified\");\n }\n const objectId = this.globalizedIds ? `${this.id}.${objectParams.id}` : objectParams.id;\n if (this.scene.objects[objectId]) {\n return new SDKError(`Failed to create SceneObject - SceneObject already exists in Scene: ${objectId}`);\n }\n const meshIds = objectParams.meshIds;\n const meshes = [];\n for (let meshIdIdx = 0, meshIdLen = meshIds.length; meshIdIdx < meshIdLen; meshIdIdx++) {\n const meshId = meshIds[meshIdIdx];\n const mesh = this.meshes[meshId];\n if (!mesh) {\n return new SDKError(`Failed to create SceneObject - SceneMesh not found: ${meshId}`);\n }\n if (this.#meshUsedByObject[meshId]) {\n return new SDKError(`Failed to create SceneObject - SceneMesh ${meshId} already belongs to another SceneObject`);\n }\n meshes.push(mesh);\n this.#meshUsedByObject[mesh.id] = true;\n }\n const sceneObject = new SceneObject({\n id: objectId,\n originallSystemId: objectParams.originalSystemId,\n layerId: this.layerId || objectParams.layerId,\n model: this,\n meshes\n });\n for (let i = 0, len = meshes.length; i < len; i++) {\n const mesh = meshes[i];\n mesh.object = sceneObject;\n }\n this.#numObjects++;\n this.objects[objectId] = sceneObject;\n this.stats.numObjects++;\n return sceneObject;\n }\n\n /**\n * Finalizes this SceneModel, readying it for use.\n *\n * * Fires an event via {@link @xeokit/scene!SceneModel.onBuilt | SceneModel.onBuilt} and {@link @xeokit/scene!Scene.onModelCreated | SceneModel.onCreated}, to indicate to subscribers that\n * the SceneModel is complete and ready to use.\n * * Sets {@link @xeokit/scene!SceneModel.built | SceneModel.built} ````true````.\n * * You can only call this method once on a SceneModel.\n * * The SceneModel must have at least one {@link @xeokit/scene!SceneObject}.\n * * Once built, no more components can be created in a SceneModel.\n *\n * ### Usage\n *\n * ````javascript\n * sceneMode.onBuilt.subscribe(()=>{\n * // Our SceneModel is built and ready to use\n * });\n *\n * myScene.onModelCreated.subscribe((sceneModel)=>{\n * // Another way to subscribe to SceneModel readiness\n * });\n *\n * mySceneModel.build().then((result) => { // Asynchronous (texture compression etc).\n * if (result instanceof SDKError) {\n * console.log(result.message);\n * } else {\n * // Now we can do things with our SceneModel\n * }\n * }).catch(sdkError) {// SDKError\n * console.log(sdkError.message);\n * };\n * ````\n *\n * See {@link \"@xeokit/scene\" | @xeokit/scene} for more usage info.\n *\n * @throws *{@link @xeokit/core!SDKError | SDKError}*\n * * If SceneModel has already been built or destroyed.\n * * If no SceneObjects were created in this SceneModel.\n */\n build(): Promise {\n return new Promise((resolve) => {\n if (this.destroyed) {\n throw new SDKError(\"Failed to build SceneModel - SceneModel already destroyed\");\n }\n if (this.built) {\n throw new SDKError(\"Failed to build SceneModel - SceneModel already built\");\n }\n this.#removeUnusedComponents()\n // this.#compressTextures().then(() => {\n this.built = true;\n this.onBuilt.dispatch(this, null);\n resolve(this);\n // }).catch((e) => {\n // throw e;\n // });\n });\n }\n\n #removeUnusedComponents() {\n for (let id in this.meshes) {\n const mesh = this.meshes[id];\n if (!mesh.object) {\n mesh.geometry.numMeshes--;\n delete this.meshes[id];\n }\n }\n for (let id in this.geometries) {\n if (this.geometries[id].numMeshes === 0) {\n delete this.geometries[id];\n }\n }\n // let texturesList = [];\n // const textures = {};\n // for (let i = 0, leni = this.texturesList.length; i < leni; i++) {\n // const texture = this.texturesList[i];\n // if (texture.channel !== null) {\n // texture.textureIndex = texturesList.length;\n // texturesList.push(texture);\n // textures[texture.id] = texture;\n // }\n // }\n // this.texturesList = texturesList;\n // this.textures = textures;\n }\n\n /**\n * Gets this SceneModel as JSON.\n */\n getJSON(): SceneModelParams {\n const sceneModelParams = {\n id: this.id,\n geometriesCompressed: [],\n textures: [],\n textureSets: [],\n transforms: [],\n meshes: [],\n objects: []\n };\n if (this.streamParams) {\n sceneModelParams.streamParams = this.streamParams;\n }\n Object.entries(this.geometries).forEach(([key, sceneGeometry]) => {\n sceneModelParams.geometriesCompressed.push((sceneGeometry).getJSON());\n });\n // Object.entries(this.textures).forEach(([key, value]) => {\n // sceneModelParams.textures[key] = (value).getJSON();\n // });\n // Object.entries(this.textureSets).forEach(([key, value]) => {\n // sceneModelParams.textureSets[key] = (value).getJSON();\n // });\n Object.entries(this.meshes).forEach(([key, sceneMesh]) => {\n sceneModelParams.meshes.push((sceneMesh).getJSON());\n });\n Object.entries(this.objects).forEach(([key, sceneObject]) => {\n sceneModelParams.objects.push((sceneObject).getJSON());\n });\n return sceneModelParams;\n }\n\n /**\n * Destroys this SceneModel.\n *\n * Sets {@link Component.destroyed} ````true````.\n */\n destroy() {\n for (let i = 0, len = this.tilesList.length; i < len; i++) {\n this.scene.putTile(this.tilesList[i]);\n }\n super.destroy();\n }\n\n // #compressTextures(): Promise {\n // let countTextures = this.#texturesList.length;\n // return new Promise((resolve) => {\n // if (countTextures === 0) {\n // resolve();\n // return;\n // }\n // for (let i = 0, leni = this.#texturesList.length; i < leni; i++) {\n // const texture = this.#texturesList[i];\n // const encodingOptions = TEXTURE_ENCODING_OPTIONS[texture.channel] || {};\n // if (texture.src) { // SceneTexture created with SceneModel#createTexture({ src: ... })\n // const src = texture.src;\n // const fileExt = src.split('.').pop();\n // switch (fileExt) {\n // case \"jpeg\":\n // case \"jpg\":\n // case \"png\":\n //\n // load(src, ImageLoader, {\n // image: {\n // type: \"data\"\n // }\n // }).then((imageData) => {\n // if (texture.compressed) {\n // encode(imageData, KTX2BasisWriter, encodingOptions).then((encodedData) => {\n // const encodedImageData = new Uint8Array(encodedData);\n // this.stats.textureBytes += encodedImageData.byteLength;\n // texture.imageData = encodedImageData;\n // if (--countTextures <= 0) {\n // resolve();\n // }\n // }).catch((err) => {\n // return new SDKError(`Failed to compress texture: ${err}`);\n // });\n // } else {\n // texture.imageData = new Uint8Array(1);\n // if (--countTextures <= 0) {\n // resolve();\n // }\n // }\n // }).catch((err) => {\n // return new SDKError(`Failed to load texture image: ${err}`);\n // });\n // break;\n // default:\n // if (--countTextures <= 0) {\n // resolve();\n // }\n // break;\n // }\n // }\n // if (texture.imageData) {// SceneTexture created with SceneModel#createTexture({ imageData: ... })\n // if (texture.compressed) {\n // encode(texture.imageData, KTX2BasisWriter, encodingOptions)\n // .then((encodedImageData) => {\n // texture.imageData = new Uint8Array(encodedImageData);\n // this.stats.textureBytes += texture.imageData.byteLength;\n // if (--countTextures <= 0) {\n // resolve();\n // }\n // }).catch((err) => {\n // return new SDKError(`Failed to compress texture: ${err}`);\n // });\n // } else {\n // texture.imageData = new Uint8Array(1);\n // if (--countTextures <= 0) {\n // resolve();\n // }\n // }\n // }\n // }\n // });\n // }\n}\n", "import type {FloatArrayParam} from \"@xeokit/math\";\nimport {Scene} from \"./Scene\";\nimport type {SceneGeometryCompressedParams} from \"./SceneGeometryCompressedParams\";\nimport type {RendererGeometry} from \"./RendererGeometry\";\nimport {createAABB3} from \"@xeokit/boundaries\";\nimport {IntArrayParam} from \"@xeokit/math\";\n\n/**\n * A geometry in a {@link @xeokit/scene!SceneModel | SceneModel}.\n *\n * * Stored in {@link @xeokit/scene!SceneModel.geometries | SceneModel.geometries}\n * * Created with {@link @xeokit/scene!SceneModel.createGeometry | SceneModel.createGeometry}\n * and {@link @xeokit/scene!SceneModel.createGeometryCompressed | SceneModel.createGeometryCompressed}\n * * Referenced by {@link @xeokit/scene!SceneMesh.geometry | SceneMesh.geometry}\n *\n * See {@link \"@xeokit/scene\" | @xeokit/scene} for usage.\n */\nexport class SceneGeometry {\n\n /**\n * ID for the geometry.\n */\n id: string;\n\n /**\n * Primitive type.\n *\n * Possible values are {@link @xeokit/constants!SolidPrimitive}, {@link @xeokit/constants!SurfacePrimitive},\n * {@link @xeokit/constants!LinesPrimitive}, {@link @xeokit/constants!PointsPrimitive}\n * and {@link @xeokit/constants!TrianglesPrimitive}.\n */\n primitive: number;\n\n /**\n * Axis-aligned, non-quantized 3D boundary of the geometry's vertex positions.\n */\n aabb?: FloatArrayParam;\n\n /**\n * 4x4 matrix to de-quantize the geometry's UV coordinates, when UVs are provided.\n */\n uvsDecompressMatrix?: FloatArrayParam;\n\n /**\n * 3D vertex positions, quantized as 16-bit integers.\n *\n * Internally, the Viewer dequantizes these with {@link @xeokit/scene!SceneGeometry.positionsDecompressMatrix | SceneGeometry.positionsDecompressMatrix}.\n *\n * Vertex positions are required for all primitive types.\n */\n positionsCompressed: IntArrayParam;\n\n /**\n * UV coordinates, quantized as 16-bit integers.\n *\n * Internally, the Viewer de-quantizes these with {@link @xeokit/scene!SceneGeometry.uvsDecompressMatrix | SceneGeometry.uvsDecompressMatrix}.\n */\n uvsCompressed?: IntArrayParam;\n\n /**\n * Vertex RGB colors, quantized as 8-bit integers.\n */\n colorsCompressed?: IntArrayParam;\n\n /**\n * primitive indices.\n *\n * This is either an array of 8-bit, 16-bit or 32-bit values.\n */\n indices?: IntArrayParam;\n\n /**\n * Edge indices.\n *\n * This is either an array of 8-bit, 16-bit or 32-bit values.\n */\n edgeIndices?: IntArrayParam;\n\n /**\n * Interface through which this SceneGeometry can load any user-updated geometry arrays into the renderers.\n *\n * @internal\n */\n rendererGeometry: RendererGeometry | null;\n\n /**\n * TODO\n */\n origin?:FloatArrayParam;\n\n /**\n * The count of {@link @xeokit/scene!SceneMesh | SceneMeshes} that reference this SceneGeometry.\n */\n numMeshes: number;\n\n constructor(params: SceneGeometryCompressedParams) {\n this.id = params.id;\n this.primitive = params.primitive;\n this.positionsCompressed = params.positionsCompressed;\n this.uvsCompressed = params.uvsCompressed;\n this.colorsCompressed = params.colorsCompressed;\n this.indices = params.indices;\n this.edgeIndices = params.edgeIndices;\n this.origin = params.origin;\n this.aabb = params.aabb ? params.aabb.slice() : createAABB3();\n this.numMeshes = 0;\n }\n\n /**\n * Gets this SceneGeometry as JSON.\n */\n getJSON(): SceneGeometryCompressedParams {\n const params = {\n id: this.id,\n primitive: this.primitive,\n aabb: Array.from(this.aabb),\n positionsCompressed: Array.from(this.positionsCompressed)\n };\n if (this.positionsCompressed) {\n params.positionsCompressed = Array.from(this.positionsCompressed);\n }\n if (this.uvsCompressed) {\n params.uvsCompressed = Array.from(this.uvsCompressed);\n }\n if (this.colorsCompressed) {\n params.colorsCompressed = Array.from(this.colorsCompressed);\n }\n if (this.indices) {\n params.indices = Array.from(this.indices);\n }\n if (this.edgeIndices) {\n params.edgeIndices = Array.from(this.edgeIndices);\n }\n return params;\n }\n}\n", "import type {SceneMesh} from \"./SceneMesh\";\nimport type {FloatArrayParam} from \"@xeokit/math\";\nimport type {RendererObject} from \"./RendererObject\";\nimport type {SceneModel} from \"./SceneModel\";\nimport {collapseAABB3, createAABB3, expandAABB3Points3} from \"@xeokit/boundaries\";\nimport {SceneObjectParams} from \"./SceneObjectParams\";\n\n/**\n * An object in a {@link @xeokit/scene!SceneModel | SceneModel}.\n *\n * * Stored in {@link @xeokit/scene!SceneModel.objects | SceneModel.objects} and {@link @xeokit/scene!Scene.objects | Scene.objects}\n * * Created with {@link @xeokit/scene!SceneModel.createObject | SceneModel.createObject}\n *\n * See {@link \"@xeokit/scene\" | @xeokit/scene} for usage.\n */\nexport class SceneObject {\n\n /**\n * Unique ID of this SceneObject.\n *\n * SceneObjects are stored by ID in {@link @xeokit/scene!Scene.objects | Scene.objects}\n * and {@link @xeokit/scene!SceneModel.objects | SceneModel.objects}.\n */\n public readonly id: string;\n\n /**\n * The {@link @xeokit/scene!SceneModel | SceneModel} that contains this SceneObject.\n */\n public readonly model: SceneModel;\n\n /**\n * ID of this SceneObject within the originating system.\n */\n public readonly originalSystemId: string;\n\n /**\n * The {@link @xeokit/scene!SceneMesh | Meshes} belonging to this SceneObject.\n */\n public readonly meshes: SceneMesh[];\n\n /**\n * Optional layer ID for this SceneObject.\n */\n public readonly layerId?: string;\n\n /**\n * Internal interface through which a {@link @xeokit/viewer!ViewObject | ViewObject} can load property updates\n * into a {@link @xeokit/viewer!Renderer | Renderer} for this SceneObject.\n *\n * This is defined when the owner {@link @xeokit/scene!SceneModel | SceneModel} has been added to a {@link @xeokit/viewer!Viewer | Viewer}.\n *\n * @internal\n */\n rendererObject: RendererObject | null;\n\n #aabb: FloatArrayParam;\n #aabbDirty: boolean;\n\n /**\n * @private\n */\n constructor(cfg: {\n model: SceneModel;\n meshes: SceneMesh[];\n id: string;\n originallSystemId?:string;\n layerId?: string;\n }) {\n this.id = cfg.id;\n this.originalSystemId = cfg.originallSystemId || this.id;\n this.layerId = cfg.layerId;\n this.meshes = cfg.meshes;\n this.#aabb = createAABB3();\n this.#aabbDirty = true;\n this.rendererObject = null;\n }\n\n /**\n * Gets the axis-aligned 3D World-space boundary of this SceneObject.\n */\n get aabb(): FloatArrayParam {\n if (this.#aabbDirty) {\n collapseAABB3(this.#aabb);\n // getSceneObjectGeometry(this, (geometryView) => {\n // expandAABB3Points3(this.#aabb, geometryView.positionsWorld);\n // return false;\n // });\n this.#aabbDirty = false;\n }\n return this.#aabb;\n }\n\n /**\n * @private\n */\n setAABBDirty() {\n this.#aabbDirty = true;\n }\n\n /**\n * Gets this SceneObject as JSON.\n */\n getJSON(): SceneObjectParams {\n const sceneObjectParams = {\n id: this.id,\n meshIds: []\n };\n if (this.layerId != undefined) {\n sceneObjectParams.layerId = this.layerId;\n }\n if (this.meshes != undefined) {\n for (let i = 0, len = this.meshes.length; i < len; i++) {\n sceneObjectParams.meshIds.push(this.meshes[i].id);\n }\n }\n return sceneObjectParams;\n }\n}\n", "import type {SceneTexture} from \"./SceneTexture\";\nimport type {SceneTextureSetParams} from \"./SceneTextureSetParams\";\nimport type {RendererTextureSet} from \"./RendererTextureSet\";\n\n/**\n * A set of {@link @xeokit/scene!SceneTexture | Textures} in a {@link @xeokit/scene!SceneModel | SceneModel}.\n *\n * * Stored in {@link @xeokit/scene!SceneModel.textureSets | SceneModel.textureSets}\n * * Created with {@link @xeokit/scene!SceneModel.createTextureSet | SceneModel.createTextureSet}\n * * Referenced by {@link @xeokit/scene!SceneMesh.textureSet | SceneMesh.textureSet}\n *\n * See {@link \"@xeokit/scene\" | @xeokit/scene} for usage.\n */\nexport class SceneTextureSet {\n\n /**\n * The ID of this SceneTextureSet.\n */\n id: string;\n\n /**\n * The color {@link @xeokit/scene!SceneTexture} in this set.\n */\n colorTexture?: SceneTexture;\n\n /**\n * The metallic-roughness {@link @xeokit/scene!SceneTexture} in this set.\n */\n metallicRoughnessTexture?: SceneTexture;\n\n /**\n * The occlusion {@link @xeokit/scene!SceneTexture} in this set.\n */\n occlusionTexture?: SceneTexture;\n\n /**\n * The emissive {@link @xeokit/scene!SceneTexture} in this set.\n */\n emissiveTexture?: SceneTexture;\n\n /**\n * Internal interface through which a SceneTextureSet can load property updates into a renderers.\n *\n * This is defined while the owner {@link @xeokit/scene!SceneModel | SceneModel} has been added to a {@link @xeokit/viewer!Viewer | Viewer}.\n *\n * @internal\n */\n rendererTextureSet: RendererTextureSet | null;\n\n /**\n * @private\n */\n constructor(textureSetParams: SceneTextureSetParams,\n textures: {\n emissiveTexture?: SceneTexture;\n occlusionTexture?: SceneTexture;\n metallicRoughnessTexture?: SceneTexture;\n colorTexture?: SceneTexture;\n }) {\n\n this.id = textureSetParams.id;\n this.colorTexture = textures.colorTexture;\n this.metallicRoughnessTexture = textures.metallicRoughnessTexture;\n this.occlusionTexture = textures.occlusionTexture;\n this.emissiveTexture = textures.emissiveTexture;\n this.rendererTextureSet = null;\n }\n}\n", "import {\n ClampToEdgeWrapping,\n GIFMediaType,\n JPEGMediaType,\n LinearEncoding,\n LinearFilter,\n LinearMipmapLinearFilter,\n LinearMipMapLinearFilter,\n LinearMipMapNearestFilter,\n MirroredRepeatWrapping,\n NearestFilter,\n NearestMipMapLinearFilter,\n NearestMipMapNearestFilter,\n PNGMediaType,\n RepeatWrapping,\n sRGBEncoding\n} from \"@xeokit/constants\";\nimport type {FloatArrayParam} from \"@xeokit/math\";\nimport type {RendererTexture} from \"./RendererTexture\";\nimport type {SceneTextureParams} from \"./SceneTextureParams\";\nimport {createVec4} from \"@xeokit/matrix\";\n\n/**\n * A texture in a {@link @xeokit/scene!SceneModel | SceneModel}.\n *\n * * Stored in {@link @xeokit/scene!SceneModel.textures | SceneModel.textures}\n * * Created with {@link @xeokit/scene!SceneModel.createTexture | SceneModel.createTexture}\n * * Referenced by {@link @xeokit/scene!SceneTextureSet.colorTexture | SceneTextureSet.colorTexture},\n * {@link @xeokit/scene!SceneTextureSet.metallicRoughnessTexture | SceneTextureSet.metallicRoughnessTexture},\n * {@link @xeokit/scene!SceneTextureSet.occlusionTexture | SceneTextureSet.occlusionTexture} and {@link @xeokit/scene!SceneTextureSet.emissiveTexture | SceneTextureSet.emissiveTexture}\n *\n * See {@link \"@xeokit/scene\" | @xeokit/scene} for usage.\n */\nexport class SceneTexture {\n\n /**\n * Internal interface through which this {@link @xeokit/scene!SceneTexture} can load property updates into a renderers.\n *\n * This is defined when the owner {@link @xeokit/scene!SceneModel | SceneModel} has been added to a {@link @xeokit/viewer!Viewer | Viewer}.\n *\n * @internal\n */\n rendererTexture: RendererTexture | null;\n\n /**\n * ID for the texture.\n */\n id: string;\n\n /**\n * Path to an image file.\n */\n src?: string;\n\n /**\n * Image file data.\n */\n imageData?: any;\n\n /**\n * Transcoded texture data.\n */\n buffers?: ArrayBuffer[];\n\n /**\n * HTMLImage containing the texture image.\n */\n image?: HTMLImageElement;\n\n /**\n * Pixel height of the texture.\n */\n height: number;\n\n /**\n * Pixel width of the texture.\n */\n width: number;\n\n /**\n * True if the texture is compressed.\n */\n compressed: boolean;\n\n /**\n * Media type of this SceneTexture.\n *\n * Supported values are {@link @xeokit/constants!GIFMediaType}, {@link @xeokit/constants!PNGMediaType} and {@link @xeokit/constants!JPEGMediaType}.\n *\n * Ignored for compressed textures.\n */\n mediaType?: number;\n\n /**\n * How the texture is sampled when a texel covers more than one pixel.\n *\n * Supported values are {@link @xeokit/constants!LinearFilter} and {@link @xeokit/constants!NearestFilter}.\n */\n magFilter: number;\n\n /**\n * How the texture is sampled when a texel covers less than one pixel. Supported values\n * are {@link @xeokit/constants!LinearMipmapLinearFilter}, {@link @xeokit/constants!LinearMipMapNearestFilter},\n * {@link @xeokit/constants!NearestMipMapNearestFilter}, {@link @xeokit/constants!NearestMipMapLinearFilter}\n * and {@link @xeokit/constants!LinearMipMapLinearFilter}.\n *\n * Ignored for compressed textures.\n */\n minFilter: number;\n\n /**\n * S wrapping mode.\n *\n * Supported values are {@link @xeokit/constants!ClampToEdgeWrapping}, {@link @xeokit/constants!MirroredRepeatWrapping} and {@link @xeokit/constants!RepeatWrapping}.\n *\n * Ignored for compressed textures.\n */\n wrapS: number;\n\n /**\n * T wrapping mode.\n *\n * Supported values are {@link @xeokit/constants!ClampToEdgeWrapping}, {@link @xeokit/constants!MirroredRepeatWrapping} and {@link @xeokit/constants!RepeatWrapping}.\n *\n * Ignored for compressed textures.\n */\n wrapT: number;\n\n /**\n * R wrapping mode.\n *\n * Supported values are {@link @xeokit/constants!ClampToEdgeWrapping}, {@link @xeokit/constants!MirroredRepeatWrapping} and {@link @xeokit/constants!RepeatWrapping}.\n *\n * Ignored for compressed textures.\n */\n wrapR: number;\n\n /**\n * Flips this SceneTexture's source data along its vertical axis when ````true````.\n */\n flipY: boolean;\n\n /**\n * SceneTexture encoding format.\n *\n * Supported values are {@link @xeokit/constants!LinearEncoding} and {@link @xeokit/constants!sRGBEncoding}.\n */\n encoding: number;\n\n /**\n * RGBA color to preload the texture with.\n */\n preloadColor: FloatArrayParam;\n\n /**\n * @private\n */\n channel: number;\n\n /**\n * @private\n */\n constructor(params: SceneTextureParams) {\n this.id = params.id;\n this.imageData = params.imageData;\n this.src = params.src;\n this.mediaType = params.mediaType;\n this.minFilter = params.minFilter || LinearMipMapNearestFilter;\n this.magFilter = params.magFilter || LinearMipMapNearestFilter;\n this.wrapS = params.wrapS || RepeatWrapping;\n this.wrapT = params.wrapT || RepeatWrapping;\n this.wrapR = params.wrapR || RepeatWrapping\n this.encoding = params.encoding || LinearEncoding;\n this.preloadColor = createVec4(params.preloadColor || [1, 1, 1, 1]);\n this.channel = 0;\n this.rendererTexture = null;\n }\n}\n\n", "import type {FloatArrayParam} from \"@xeokit/math\";\nimport {createMat4, identityMat4, isIdentityMat4} from \"@xeokit/matrix\";\nimport type {RendererMesh} from \"./RendererMesh\";\nimport type {SceneGeometry} from \"./SceneGeometry\";\nimport type {SceneTextureSet} from \"./SceneTextureSet\";\nimport type {SceneObject} from \"./SceneObject\";\nimport type {SceneMeshParams} from \"./SceneMeshParams\";\nimport {SceneTile} from \"./SceneTile\";\n\n/**\n * A mesh in a {@link @xeokit/scene!SceneModel | SceneModel}.\n *\n * * Stored in {@link @xeokit/scene!SceneModel.meshes | SceneModel.meshes}\n * * Created with {@link @xeokit/scene!SceneModel.createMesh | SceneModel.createMesh}\n * * Referenced by {@link @xeokit/scene!SceneObject.meshes | SceneObject.meshes}\n *\n * See {@link \"@xeokit/scene\" | @xeokit/scene} for usage.\n */\nexport class SceneMesh {\n\n /**\n * Unique ID of this SceneMesh.\n *\n * SceneMesh is stored by this ID in {@link @xeokit/scene!SceneModel.meshes}.\n */\n readonly id: string;\n\n /**\n * {@link @xeokit/scene!SceneTile} this SceneMesh belongs to.\n */\n readonly tile: SceneTile;\n\n /**\n * {@link @xeokit/scene!SceneGeometry} used by this SceneMesh.\n */\n readonly geometry: SceneGeometry;\n\n /**\n * {@link @xeokit/scene!SceneTextureSet} used by this SceneMesh.\n */\n readonly textureSet?: SceneTextureSet;\n\n /**\n * Internal interface through which a {@link @xeokit/scene!SceneMesh} can load property updates into a renderers.\n *\n * This is defined when the owner {@link @xeokit/scene!SceneModel | SceneModel} has been added to\n * a {@link @xeokit/viewer!Viewer | Viewer}.\n *\n * @internal\n */\n rendererMesh: RendererMesh | null;\n\n /**\n * The {@link @xeokit/scene!SceneObject} that uses this SceneMesh.\n */\n object: SceneObject | null;\n\n /**\n * TODO\n */\n streamLayerIndex: number;\n\n #color: FloatArrayParam;\n #matrix: FloatArrayParam;\n #rtcMatrix: FloatArrayParam;\n #opacity: number;\n\n readonly origin: FloatArrayParam;\n\n /**\n * @private\n */\n constructor(meshParams: {\n id: string;\n geometry: SceneGeometry;\n textureSet?: SceneTextureSet;\n matrix?: FloatArrayParam;\n rtcMatrix?: FloatArrayParam;\n color?: FloatArrayParam;\n opacity?: number;\n tile: SceneTile;\n streamLayerIndex?: number;\n }) {\n this.id = meshParams.id;\n this.#matrix = meshParams.matrix ? createMat4(meshParams.matrix) : identityMat4();\n this.#rtcMatrix = meshParams.rtcMatrix ? createMat4(meshParams.rtcMatrix) : identityMat4();\n this.geometry = meshParams.geometry;\n this.textureSet = meshParams.textureSet;\n this.rendererMesh = null;\n this.color = meshParams.color || new Float32Array([1, 1, 1]);\n this.opacity = (meshParams.opacity !== undefined && meshParams.opacity !== null) ? meshParams.opacity : 1.0;\n this.tile = meshParams.tile;\n this.streamLayerIndex = meshParams.streamLayerIndex !== undefined ? meshParams.streamLayerIndex : 0;\n }\n\n /**\n * Gets the RGB color for this SceneMesh.\n *\n * Each element of the color is in range ````[0..1]````.\n */\n get color(): FloatArrayParam {\n return this.#color;\n }\n\n /**\n * Sets the RGB color for this SceneMesh.\n *\n * Each element of the color is in range ````[0..1]````.\n */\n set color(value: FloatArrayParam) {\n let color = this.#color;\n if (!color) {\n color = this.#color = new Float32Array(4);\n color[3] = 1;\n }\n if (value) {\n color[0] = value[0];\n color[1] = value[1];\n color[2] = value[2];\n } else {\n color[0] = 1;\n color[1] = 1;\n color[2] = 1;\n }\n if (this.rendererMesh) {\n this.rendererMesh.setColor(this.#color);\n }\n }\n\n /**\n * Gets this SceneMesh's local modeling transform matrix.\n *\n * Default value is ````[1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]````.\n *\n * @type {FloatArrayParam}\n */\n get matrix(): FloatArrayParam {\n return this.#matrix;\n }\n\n /**\n * Gets this SceneMesh's RTC modeling transform matrix.\n *\n * Default value is ````[1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]````.\n *\n * @internal\n * @type {FloatArrayParam}\n */\n get rtcMatrix(): FloatArrayParam {\n return this.#rtcMatrix;\n }\n\n /**\n * Updates this SceneMesh's local modeling transform matrix.\n *\n * Default value is ````[1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]````.\n *\n * @type {FloatArrayParam}\n */\n set matrix(matrix: FloatArrayParam) {\n if (matrix) {\n // @ts-ignore\n this.#matrix.set(matrix);\n } else {\n identityMat4(this.#matrix);\n }\n if (this.rendererMesh) {\n this.rendererMesh.setMatrix(this.#matrix);\n }\n if (this.object) {\n this.object.setAABBDirty();\n }\n }\n\n /**\n * Gets the opacity factor for this SceneMesh.\n *\n * This is a factor in range ````[0..1]````.\n */\n get opacity(): number {\n return this.#opacity;\n }\n\n /**\n * Sets the opacity factor for this SceneMesh.\n *\n * This is a factor in range ````[0..1]````.\n */\n set opacity(opacity: number) {\n opacity = (opacity !== undefined && opacity !== null) ? opacity : 1.0;\n if (this.#opacity === opacity) {\n return;\n }\n this.#opacity = opacity;\n if (this.rendererMesh) {\n // this.rendererMesh.setOpacity(this.#opacity);\n }\n }\n\n /**\n * Gets this SceneMesh as JSON.\n */\n getJSON(): SceneMeshParams {\n const meshParams = {\n streamLayerIndex: this.streamLayerIndex || 0,\n id: this.id,\n geometryId: this.geometry.id,\n color: Array.from(this.#color),\n opacity: this.#opacity\n };\n if (!isIdentityMat4(this.#matrix)) {\n meshParams.matrix = Array.from(this.#matrix);\n }\n if (this.textureSet !== undefined) {\n meshParams.textureSetId = this.textureSet.id;\n }\n return meshParams;\n }\n}\n", "import {DEGTORAD, type FloatArrayParam, type IntArrayParam} from \"@xeokit/math\";\nimport {createVec3, cross3Vec3, dotVec3, normalizeVec3, subVec3} from \"@xeokit/matrix\";\nimport {decompressPoint3WithAABB3, decompressPoint3WithMat4} from \"@xeokit/compression\";\n\nconst uniquePositions: number[] = [];\nconst indicesLookup: number[] = [];\nconst indicesReverseLookup: number[] = [];\nconst weldedIndices: number[] = [];\n\n// TODO: Optimize with caching, but need to cater to both compressed and uncompressed positions\n\nconst faces: { normal: number[]; }[] = [];\nlet numFaces = 0;\nconst compa = new Uint16Array(3);\nconst compb = new Uint16Array(3);\nconst compc = new Uint16Array(3);\nconst a = createVec3();\nconst b = createVec3();\nconst c = createVec3();\nconst cb = createVec3();\nconst ab = createVec3();\nconst cross = createVec3();\nconst normal = createVec3();\n\nfunction weldVertices(positions: FloatArrayParam, indices: IntArrayParam) {\n const positionsMap = {}; // Hashmap for looking up vertices by position coordinates (and making sure they are unique)\n let vx;\n let vy;\n let vz;\n let key;\n const precisionPoints = 4; // number of decimal points, e.g. 4 for epsilon of 0.0001\n const precision = Math.pow(10, precisionPoints);\n let i;\n let len;\n let lenUniquePositions = 0;\n for (i = 0, len = positions.length; i < len; i += 3) {\n vx = positions[i];\n vy = positions[i + 1];\n vz = positions[i + 2];\n key = Math.round(vx * precision) + '_' + Math.round(vy * precision) + '_' + Math.round(vz * precision);\n // @ts-ignore\n if (positionsMap[key] === undefined) {\n // @ts-ignore\n positionsMap[key] = lenUniquePositions / 3;\n uniquePositions[lenUniquePositions++] = vx;\n uniquePositions[lenUniquePositions++] = vy;\n uniquePositions[lenUniquePositions++] = vz;\n }\n // @ts-ignore\n indicesLookup[i / 3] = positionsMap[key];\n }\n for (i = 0, len = indices.length; i < len; i++) {\n weldedIndices[i] = indicesLookup[indices[i]];\n indicesReverseLookup[weldedIndices[i]] = indices[i];\n }\n}\n\nfunction buildFaces(numIndices: number, aabb: FloatArrayParam) {\n numFaces = 0;\n for (let i = 0, len = numIndices; i < len; i += 3) {\n const ia = ((weldedIndices[i]) * 3);\n const ib = ((weldedIndices[i + 1]) * 3);\n const ic = ((weldedIndices[i + 2]) * 3);\n if (aabb) {\n compa[0] = uniquePositions[ia];\n compa[1] = uniquePositions[ia + 1];\n compa[2] = uniquePositions[ia + 2];\n compb[0] = uniquePositions[ib];\n compb[1] = uniquePositions[ib + 1];\n compb[2] = uniquePositions[ib + 2];\n compc[0] = uniquePositions[ic];\n compc[1] = uniquePositions[ic + 1];\n compc[2] = uniquePositions[ic + 2];\n // Decode\n decompressPoint3WithAABB3(compa, aabb, a);\n decompressPoint3WithAABB3(compb, aabb, b);\n decompressPoint3WithAABB3(compc, aabb, c);\n } else {\n a[0] = uniquePositions[ia];\n a[1] = uniquePositions[ia + 1];\n a[2] = uniquePositions[ia + 2];\n b[0] = uniquePositions[ib];\n b[1] = uniquePositions[ib + 1];\n b[2] = uniquePositions[ib + 2];\n c[0] = uniquePositions[ic];\n c[1] = uniquePositions[ic + 1];\n c[2] = uniquePositions[ic + 2];\n }\n subVec3(c, b, cb);\n subVec3(a, b, ab);\n cross3Vec3(cb, ab, cross);\n normalizeVec3(cross, normal);\n // @ts-ignore\n const face = faces[numFaces] || (faces[numFaces] = {normal: createVec3()});\n face.normal[0] = normal[0];\n face.normal[1] = normal[1];\n face.normal[2] = normal[2];\n numFaces++;\n }\n}\n\n\n/**\n * Builds edge connectivity indices from a 3D triangle mesh given as vertex positions and triangle indices\n * @private\n */\nexport function buildEdgeIndices(\n positions: FloatArrayParam,\n indices: IntArrayParam,\n aabb: FloatArrayParam,\n edgeThreshold: number): IntArrayParam {\n\n weldVertices(positions, indices);\n buildFaces(indices.length, aabb);\n\n const edgeIndices = [];\n const thresholdDot = Math.cos(DEGTORAD * edgeThreshold);\n const edges = {};\n\n let edge1;\n let edge2;\n let index1;\n let index2;\n let key;\n let largeIndex = false;\n let edge;\n let normal1;\n let normal2;\n let dot;\n let ia;\n let ib;\n\n for (let i = 0, len = indices.length; i < len; i += 3) {\n const faceIndex = i / 3;\n for (let j = 0; j < 3; j++) {\n edge1 = weldedIndices[i + j];\n edge2 = weldedIndices[i + ((j + 1) % 3)];\n index1 = Math.min(edge1, edge2);\n index2 = Math.max(edge1, edge2);\n key = index1 + \",\" + index2;\n // @ts-ignore\n if (edges[key] === undefined) {\n // @ts-ignore\n edges[key] = {\n index1: index1,\n index2: index2,\n face1: faceIndex,\n face2: undefined\n };\n } else {\n // @ts-ignore\n edges[key].face2 = faceIndex;\n }\n }\n }\n\n for (key in edges) {\n // @ts-ignore\n edge = edges[key];\n // an edge is only rendered if the angle (in degrees) between the face normals of the adjoining faces exceeds this value. default = 1 degree.\n if (edge.face2 !== undefined) {\n normal1 = faces[edge.face1].normal;\n normal2 = faces[edge.face2].normal;\n dot = dotVec3(normal1, normal2);\n if (dot > thresholdDot) {\n continue;\n }\n }\n ia = indicesReverseLookup[edge.index1];\n ib = indicesReverseLookup[edge.index2];\n if (!largeIndex && ia > 65535 || ib > 65535) {\n largeIndex = true;\n }\n edgeIndices.push(ia);\n edgeIndices.push(ib);\n }\n\n return (largeIndex) ? new Uint32Array(edgeIndices) : new Uint16Array(edgeIndices);\n}\n", "import {createMat4, createVec3} from \"@xeokit/matrix\";\nimport {collapseAABB3, expandAABB3Points3} from \"@xeokit/boundaries\";\nimport {LinesPrimitive, PointsPrimitive, SolidPrimitive, SurfacePrimitive, TrianglesPrimitive} from \"@xeokit/constants\";\nimport {compressRGBColors, quantizePositions3} from \"@xeokit/compression\";\nimport {buildEdgeIndices} from \"./buildEdgeIndices\";\nimport type {SceneGeometryParams} from \"./SceneGeometryParams\";\nimport type {SceneGeometryCompressedParams} from \"./SceneGeometryCompressedParams\";\nimport {worldToRTCPositions} from \"@xeokit/rtc\";\n\nconst rtcCenter = createVec3();\n\n/**\n * Compresses a {@link @xeokit/scene!SceneGeometryParams | SceneGeometryParams} into a {@link @xeokit/scene!SceneGeometryCompressedParams | SceneGeometryCompressedParams}.\n *\n * See {@link @xeokit/scene} for usage examples.\n *\n * @param geometryParams Uncompressed geometry params.\n * @returns Compressed geometry params.\n */\nexport function compressGeometryParams(geometryParams: SceneGeometryParams): SceneGeometryCompressedParams {\n const rtcNeeded = worldToRTCPositions(geometryParams.positions, geometryParams.positions, rtcCenter);\n const aabb = collapseAABB3();\n expandAABB3Points3(aabb, geometryParams.positions);\n const positionsCompressed = quantizePositions3(geometryParams.positions, aabb);\n if (geometryParams.primitive === PointsPrimitive) {\n return {\n id: geometryParams.id,\n primitive: PointsPrimitive,\n aabb,\n uvsDecompressMatrix: undefined,\n positionsCompressed,\n colorsCompressed: geometryParams.colors ? compressRGBColors(geometryParams.colors) : null,\n origin: rtcNeeded ? rtcCenter : null\n };\n }\n if (geometryParams.primitive === LinesPrimitive) {\n return {\n id: geometryParams.id,\n primitive: LinesPrimitive,\n aabb,\n positionsCompressed,\n indices: geometryParams.indices,\n origin: rtcNeeded ? rtcCenter : null\n };\n } else {\n const edgeIndices = (geometryParams.primitive === SolidPrimitive\n || geometryParams.primitive === SurfacePrimitive\n || geometryParams.primitive === TrianglesPrimitive) && geometryParams.indices\n ? buildEdgeIndices(positionsCompressed, geometryParams.indices, aabb, 10)\n : null;\n return { // Assume that closed triangle mesh is decomposed into open surfaces\n id: geometryParams.id,\n primitive: geometryParams.primitive,\n aabb,\n positionsCompressed,\n indices: geometryParams.indices,\n edgeIndices,\n origin: rtcNeeded ? rtcCenter : null\n };\n }\n}\n", "import type {FloatArrayParam} from \"@xeokit/math\";\nimport {createAABB3} from \"@xeokit/boundaries\";\nimport {SceneQuantizationRangeParams} from \"./SceneQuantizationRangeParams\";\n\n\n/**\n * A geometry in a {@link @xeokit/scene!SceneModel | SceneModel}.\n *\n * * Stored in {@link @xeokit/scene!SceneModel.quantizationRanges | SceneModel.quantizationRanges}\n * * Created with {@link @xeokit/scene!SceneModel.createQuantizationRange | SceneModel.createQuantizationRange}\n * * Referenced by {@link @xeokit/scene!SceneGeometry.geometry | SceneGeometry.geometry}\n *\n * See {@link \"@xeokit/scene\" | @xeokit/scene} for usage.\n */\nexport class SceneQuantizationRange {\n\n /**\n * ID for the geometry.\n */\n id: string;\n\n /**\n * Axis-aligned 3D boundary to dequantize the positions.\n */\n aabb: FloatArrayParam;\n\n constructor(params: SceneQuantizationRangeParams) {\n this.aabb = params.aabb ? params.aabb.slice() : createAABB3();\n }\n\n /**\n * Gets this SceneQuantizationRange as JSON.\n */\n getJSON(): SceneQuantizationRangeParams {\n const quantizationRangeParams = {\n id: this.id,\n aabb: [\n this.aabb[0],\n this.aabb[1],\n this.aabb[2],\n this.aabb[3],\n this.aabb[4],\n this.aabb[5]\n ]\n };\n\n return quantizationRangeParams;\n }\n}\n", "import {Scene} from \"./Scene\";\nimport {FloatArrayParam} from \"@xeokit/math\";\nimport {SceneModel} from \"./SceneModel\";\nimport {SceneObject} from \"./SceneObject\";\n\n/**\n * A tile in a {@link @xeokit/scene!SceneModel | SceneModel}.\n *\n *\n * * {@link @xeokit/scene!SceneMeshParams.origin | SceneMeshParams.origin}\n * * Stored in {@link @xeokit/scene!SceneModel.tiles | SceneModel.tiles}\n * * Created automatically for each distinct value of {@link @xeokit/scene!SceneMeshParams.origin | SceneMeshParams.origin} given to {@link @xeokit/scene!SceneMeshParams.createMesh | SceneMeshParams.createMesh}\n * * Each SceneTile is destroyed as soon all {@link @xeokit/scene!SceneTile | SceneTiles} with that origin heve been destroyed\n *\n * See {@link \"@xeokit/scene\" | @xeokit/scene} for usage.\n */\nexport class SceneTile {\n\n /**\n * Unique ID of this SceneTile.\n */\n public readonly id: string;\n\n /**\n * The Scene that owns this SceneTile.\n */\n public readonly scene: Scene;\n\n /**\n * The 3D World-space origin of this SceneTile.\n */\n public readonly origin: FloatArrayParam;\n\n /**\n * The number of {@link @xeokit/scene!SceneMesh | SceneMeshes} associated with this SceneTile.\n */\n public numObjects: number;\n\n /**\n * The {@link @xeokit/scene!SceneModel | SceneModels} belonging to this SceneTile, each keyed to\n * its {@link @xeokit/scene!SceneModel.id | SceneModel.id}.\n *\n * A SceneModel can belong to more than one SceneTile.\n */\n public readonly models: { [key: string]: SceneModel };\n\n /**\n * The {@link @xeokit/scene!SceneObject | SceneObjects} in this SceneTile,\n * mapped to {@link @xeokit/scene!SceneObject.id | SceneObject.id}.\n *\n * A SceneObject can belong to more than one SceneTile.\n */\n public readonly objects: { [key: string]: SceneObject };\n\n /**\n * @private\n * @param scene\n * @param id\n * @param origin\n */\n constructor(scene: Scene, id: string, origin: FloatArrayParam) {\n this.scene = scene;\n this.id = id;\n this.origin = origin;\n this.numObjects = 0;\n this.models = {};\n this.objects = {};\n }\n}\n", "import type {SceneObject} from \"./SceneObject\";\nimport type {SceneMesh} from \"./SceneMesh\";\nimport {decompressPositions3WithAABB3} from \"@xeokit/compression\";\nimport {transformPositions3} from \"@xeokit/matrix\";\nimport type {FloatArrayParam} from \"@xeokit/math\";\nimport type {SceneGeometry} from \"./SceneGeometry\";\nimport {LinesPrimitive, TrianglesPrimitive} from \"@xeokit/constants\";\n\n/**\n * The {@link getSceneObjectGeometry} passes an instance of GeometryView to its callback\n * for each {@link @xeokit/scene!SceneGeometry} it visits.\n *\n * The GeometryView provides the SceneObject, SceneMesh and SceneGeometry at the current state\n * of iteration, along with accessors through which the caller can\n * get various resources that the GeometryView lazy-computes on-demand, such as decompressed vertex positions, World-space\n * vertex positons, and decompressed vertex UV coordinates.\n */\nexport interface GeometryView {\n\n /**\n * The current {@link @xeokit/scene!SceneObject}.\n */\n object: SceneObject;\n\n /**\n * The current {@link @xeokit/scene!SceneMesh}.\n */\n mesh: SceneMesh;\n\n /**\n * The current {@link @xeokit/scene!SceneMesh | SceneMesh's} position in {@link @xeokit/scene!SceneModel.meshes | SceneObject.meshes}.\n */\n meshIndex: number;\n\n /**\n * The current {@link @xeokit/scene!SceneGeometry}.\n */\n geometry: SceneGeometry;\n\n /**\n * The number of primitives in the current {@link @xeokit/scene!SceneGeometry}.\n */\n readonly numPrimitives: number;\n\n /**\n * The current 3D vertex positions, dequantized, as 32-bit floats.\n */\n readonly positionsDecompressed: FloatArrayParam;\n\n /**\n * The current 3D World-space vertex positions, dequantized and world-transformed, as 64-bit floats.\n */\n readonly positionsWorld: FloatArrayParam;\n\n /**\n * The current vertex UV coordinates, if any, dequantized to 32-bit floats.\n */\n readonly uvsDecompressed: FloatArrayParam;\n}\n\nclass GeometryViewImpl {\n\n object: SceneObject | null;\n mesh: SceneMesh | null;\n meshIndex: number;\n geometry: SceneGeometry | null;\n\n #positionsDecompressed: Float32Array | null;\n #positionsWorld: Float64Array | null;\n\n constructor() {\n this.object = null;\n this.mesh = null;\n this.meshIndex = 0;\n this.geometry = null;\n this.#positionsDecompressed = null;\n this.#positionsWorld = null;\n }\n\n get numPrimitives() {\n const primitiveType = (this.geometry).primitive;\n const elementsPerPrimitiveType = (primitiveType === TrianglesPrimitive ? 3 : (primitiveType === LinesPrimitive ? 2 : 1));\n return this.geometry.indices.length / elementsPerPrimitiveType;\n }\n\n get positionsDecompressed(): FloatArrayParam {\n if (!this.#positionsDecompressed) {\n this.#positionsDecompressed = new Float32Array((this.geometry).positionsCompressed.length);\n decompressPositions3WithAABB3((this.geometry).positionsCompressed, (this.geometry).aabb, this.#positionsDecompressed);\n }\n return this.#positionsDecompressed;\n }\n\n get positionsWorld(): FloatArrayParam {\n if (!this.#positionsWorld) {\n const positionsDecompressed = this.positionsDecompressed;\n this.#positionsWorld = new Float64Array(positionsDecompressed.length);\n transformPositions3(positionsDecompressed, (this.mesh).matrix, this.#positionsWorld);\n }\n return this.#positionsWorld;\n }\n\n get uvsDecompressed(): FloatArrayParam | null{\n return null;\n }\n\n reset() {\n this.#positionsDecompressed = null;\n this.#positionsWorld = null;\n }\n}\n\nconst geometryView = new GeometryViewImpl();\n\n/**\n * Gets the uncompressed, World-space geometry of each {@link @xeokit/scene!SceneGeometryBucket} in each\n * {@link @xeokit/scene!SceneGeometry} in each {@link @xeokit/scene!SceneMesh} in a {@link @xeokit/scene!SceneObject}.\n *\n * If the callback returns ````true````, then this method immediately stops iterating and also returns ````true````.\n *\n * @param sceneObject\n * @param withEachGeometry\n */\nexport function getSceneObjectGeometry(sceneObject: SceneObject, withEachGeometry: (geometryView: GeometryView) => boolean): boolean {\n // geometryView.reset();\n // geometryView.object = sceneObject;\n // for (let i = 0, len = sceneObject.meshes.length; i < len; i++) {\n // const mesh = sceneObject.meshes[i];\n // geometryView.mesh = mesh;\n // geometryView.meshIndex = i;\n // const geometry = mesh.geometry;\n // geometryView.geometry = geometry;\n // for (let j = 0, lenj = geometry.geometryBuckets.length; j < lenj; j++) {\n // geometryView.geometryBucket = geometry.geometryBuckets[j];\n // geometryView.geometryBucketIndex = j;\n // if (withEachGeometry(geometryView)) {\n // return true;\n // }\n // }\n // }\n return false;\n}\n", "import {composeMat4, eulerToQuat, identityMat4, identityQuat} from \"@xeokit/matrix\";\nimport {FloatArrayParam} from \"@xeokit/math\";\n\nconst identityQuaternion = identityQuat();\n\n/**\n * Helper function to build 4x4 transform matrices.\n *\n * @param params\n */\nexport function buildMat4(params: {\n quaternion?: FloatArrayParam;\n rotation?: FloatArrayParam;\n scale?: FloatArrayParam;\n position?: FloatArrayParam;\n\n}) {\n const matrix = identityMat4();\n const position = params.position;\n const scale = params.scale;\n const rotation = params.rotation;\n const quaternion = params.quaternion;\n if (position || scale || rotation || quaternion) {\n composeMat4(\n position || [0, 0, 0],\n quaternion || (rotation\n ? eulerToQuat(rotation, \"XYZ\", identityQuat())\n : identityQuaternion),\n scale || [1, 1, 1],\n matrix);\n }\n return matrix;\n}\n", "/**\n * [![npm version](https://badge.fury.io/js/%40xeokit%2Fcompression.svg)](https://badge.fury.io/js/%40xeokit%2Fcompression)\n * [![](https://data.jsdelivr.com/v1/package/npm/@xeokit/kdtree/badge)](https://www.jsdelivr.com/package/npm/@xeokit/kdtree)\n *\n * \n *\n * # xeokit 2D Collision Utilities\n *\n * ---\n *\n * ### *Tools for spatial searches and collision tests with 2D k-d trees and boundaries*\n *\n * ---\n *\n * ## Installation\n *\n * ````bash\n * npm install @xeokit/kdtree2\n * ````\n *\n * ## Dependencies\n *\n * * {@link \"@xeokit/scene\" | @xeokit/scene}\n * * {@link \"@xeokit/core\" | @xeokit/core}\n * * {@link \"@xeokit/math\" | @xeokit/math}\n * * {@link \"@xeokit/boundaries\" | @xeokit/boundaries}\n *\n * ## Usage\n *\n * ````javascript\n *\n * ````\n *\n * @module @xeokit/kdtree2\n */\nexport * from \"./KdTree2\";\nexport * from \"./createKdTree2FromSceneObjectVerts\";\nexport * from \"./searchKdTree2ForNearestNeighbor\";\nexport {KdVertex2} from \"./KdVertex2\";\n", "import type {FloatArrayParam, IntArrayParam} from \"@xeokit/math\";\nimport {containsAABB2} from \"@xeokit/boundaries\";\n\nconst MAX_KD_TREE_DEPTH = 10; // Increase if greater precision needed\nconst kdTreeDimLength = new Float32Array(2);\n\n/**\n * An item stored in a 2D k-d tree.\n *\n * See {@link \"@xeokit/kdtree2\"} for usage.\n */\nexport interface KdItem2D {\n\n /**\n * The item stored in this KdItem2D.\n */\n item: any;\n}\n\n/**\n * A 2D k-d tree node.\n *\n * See {@link \"@xeokit/kdtree2\"} for usage.\n */\nexport interface KdNode2D {\n\n /**\n * The axis-aligned 2D boundary of this kd-tree node.\n */\n aabb: FloatArrayParam;\n\n /**\n * The left KD2Node.\n */\n left?: KdNode2D;\n\n /**\n * The right KD2Node.\n */\n right?: KdNode2D;\n\n /**\n * The {@link KdItem2D | KdItem2Ds} stored in this KD2Node.\n */\n items?: KdItem2D[];\n}\n\n/**\n * Parameters for creating a 2D k-d tree.\n *\n * See {@link \"@xeokit/kdtree2\"} for usage.\n */\nexport interface KdTree2DParams {\n\n /**\n * The 2D boundary of all the nodes we'll add to this k-d tree.\n */\n aabb: FloatArrayParam;\n\n /**\n * Maximum depth of the 2D kd-tree.\n */\n maxDepth?: number;\n}\n\n/**\n * A static 2D k-d tree.\n *\n * See {@link \"@xeokit/kdtree2\"} for usage.\n */\nexport class KdTree2 {\n\n /**\n * The root node in this k-d tree.\n */\n readonly root: KdNode2D;\n\n /**\n * The maximum allowed depth of this 2D k-d tree.\n */\n readonly maxDepth: number;\n\n /**\n * Creates a new 2D k-d tree.\n *\n * @param params\n */\n constructor(params?: KdTree2DParams) {\n this.maxDepth = params?.maxDepth || MAX_KD_TREE_DEPTH;\n\n this.root = {\n // @ts-ignore\n aabb: params.aabb.slice()\n };\n }\n\n /**\n * Inserts a bounded item into this 2D k-d tree.\n *\n * @param item\n * @param aabb\n */\n insertItem(item: any, aabb: IntArrayParam) {\n this.#insertItem(this.root, {item}, aabb, 1)\n }\n\n #insertItem(node: KdNode2D, item: KdItem2D, aabb: IntArrayParam, depth: number) {\n if (depth >= this.maxDepth) {\n node.items = node.items || [];\n node.items.push(item);\n return;\n }\n if (node.left) {\n if (containsAABB2(node.left.aabb, aabb)) {\n this.#insertItem(node.left, item, aabb, depth + 1);\n return;\n }\n }\n if (node.right) {\n if (containsAABB2(node.right.aabb, aabb)) {\n this.#insertItem(node.right, item, aabb, depth + 1);\n return;\n }\n }\n const nodeAABB = node.aabb;\n kdTreeDimLength[0] = nodeAABB[2] - nodeAABB[0];\n kdTreeDimLength[1] = nodeAABB[3] - nodeAABB[1];\n let dim = 0;\n if (kdTreeDimLength[1] > kdTreeDimLength[dim]) {\n dim = 1;\n }\n if (!node.left) {\n const aabbLeft = nodeAABB.slice();\n aabbLeft[dim + 2] = ((nodeAABB[dim] + nodeAABB[dim + 2]) / 2.0);\n node.left = {\n aabb: aabbLeft\n };\n if (containsAABB2(aabbLeft, aabb)) {\n this.#insertItem(node.left, item, aabb, depth + 1);\n return;\n }\n }\n if (!node.right) {\n const aabbRight = nodeAABB.slice();\n aabbRight[dim] = ((nodeAABB[dim] + nodeAABB[dim + 2]) / 2.0);\n node.right = {\n aabb: aabbRight\n };\n if (containsAABB2(aabbRight, aabb)) {\n this.#insertItem(node.right, item, aabb, depth + 1);\n return;\n }\n }\n node.items = node.items || [];\n node.items.push(item);\n }\n}\n", "import {type GeometryView, getSceneObjectGeometry, SceneObject} from \"@xeokit/scene\";\nimport {\n INSIDE,\n INTERSECT,\n OUTSIDE,\n setFrustum3,\n intersectFrustum3AABB3,\n intersectFrustum3Point3\n} from \"@xeokit/boundaries\";\nimport type {FloatArrayParam} from \"@xeokit/math\";\nimport {createMat4, createVec4, transformPoint4} from \"@xeokit/matrix\";\nimport {KdTree2} from \"./KdTree2\";\nimport type {KdVertex2} from \"./KdVertex2\";\n\n/**\n * A k-d tree to accelerate intersection and nearest-neighbour tests on the projected\n * 2D canvas positions of {@link @xeokit/scene!SceneObject} geometry vertices.\n *\n * See {@link \"@xeokit/kd-canvas-verts\"} for usage.\n */\nexport function createKdTree2FromSceneObjectVerts(params: {\n viewMatrix: FloatArrayParam,\n projMatrix: FloatArrayParam,\n canvasBoundary: FloatArrayParam,\n sceneObjects: SceneObject[]\n}): KdTree2 {\n\n const kdTree2D = new KdTree2({\n aabb: params.canvasBoundary\n });\n\n const viewMatrix = createMat4(params.viewMatrix);\n const projMatrix = createMat4(params.projMatrix);\n const frustum = setFrustum3(viewMatrix, projMatrix);\n const canvasBoundary = params.canvasBoundary;\n const sceneObjects = params.sceneObjects;\n\n if (sceneObjects) {\n for (let i = 0, len = sceneObjects.length; i < len; i++) {\n insertSceneObject(sceneObjects[i]);\n }\n }\n\n function insertSceneObject(sceneObject: SceneObject, intersects: number = INTERSECT) {\n if (intersects !== INSIDE) {\n intersects = intersectFrustum3AABB3(frustum, sceneObject.aabb);\n }\n if (intersects === OUTSIDE) {\n return;\n }\n // @ts-ignore\n getSceneObjectGeometry(sceneObject, (geometryView: GeometryView): boolean | undefined => {\n const positionsWorld = geometryView.positionsWorld;\n for (let i = 0, len = positionsWorld.length; i < len; i += 3) {\n const worldPos = createVec4();\n worldPos[0] = positionsWorld[i];\n worldPos[1] = positionsWorld[i + 1];\n worldPos[2] = positionsWorld[i + 2];\n worldPos[3] = 1.0;\n if (intersects === INSIDE || intersectFrustum3Point3(frustum, worldPos)) {\n insertVertex(sceneObject, worldPos);\n }\n }\n return false;\n });\n }\n\n function insertVertex(sceneObject: SceneObject, worldPos: FloatArrayParam) {\n const viewPos = createVec4();\n const projPos = createVec4();\n const canvasPos = new Uint16Array(2);\n transformPoint4(viewMatrix, worldPos, viewPos);\n transformPoint4(projMatrix, viewPos, projPos);\n canvasPos[0] = Math.floor((1 + projPos[0] / projPos[3]) * canvasBoundary[2] / 2);\n canvasPos[1] = Math.floor((1 - projPos[1] / projPos[3]) * canvasBoundary[3] / 2);\n kdTree2D.insertItem({sceneObject, worldPos, canvasPos}, [canvasPos[0], canvasPos[1], canvasPos[0], canvasPos[1]]);\n }\n\n return kdTree2D;\n}\n", "import type {FloatArrayParam} from \"@xeokit/math\";\nimport type {SceneObject} from \"@xeokit/scene\";\nimport type {KdTree2} from \"./KdTree2\";\n\n/**\n *\n */\nexport function searchKdTree2ForNearestNeighbor(params: {\n kdTree: KdTree2,\n canvasPos: FloatArrayParam\n}): SceneObject[] {\n const kdTree = params.kdTree;\n const canvasPos = params.canvasPos;\n // @ts-ignore\n const sceneObjects = [];\n\n//...\n\n // @ts-ignore\n return sceneObjects;\n}\n", "import type {SceneObject} from \"@xeokit/scene\";\nimport type {FloatArrayParam, IntArrayParam} from \"@xeokit/math\";\n\n/**\n * TODO\n */\nexport class KdVertex2 {\n sceneObject: SceneObject;\n worldPos: FloatArrayParam;\n canvasPos: IntArrayParam;\n}", "/**\n * [![npm version](https://badge.fury.io/js/%40xeokit%2Fcompression.svg)](https://badge.fury.io/js/%40xeokit%2Fcompression)\n * [![](https://data.jsdelivr.com/v1/package/npm/@xeokit/kdtree/badge)](https://www.jsdelivr.com/package/npm/@xeokit/kdtree)\n *\n * \n *\n * # xeokit 3D Collision Utilities\n *\n * ---\n *\n * ### *Spatial searches and collision testing with 3D k-d trees, rays and boundaries*\n *\n * ---\n *\n * A {@link KdTree3} organizes items with 3D axis-aligned boundaries into a fast spatial search index that\n * allows us efficiently search it for items whose boundaries intersect given boundaries and volumes.\n *\n * This module provides the following functions to build KdTree3s:\n *\n * * {@link createPrimsKdTree3}: Creates a KdTree3 containing primitives from the given set of geometry arrays, organized by their coordinate 3D boundaries.\n * * {@link createSceneObjectPrimsKdTree3}: Creates a KdTree3 containing primitives belonging to the given SceneObjects, organized by their World-space 3D boundaries.\n * * {@link createSceneObjectsKdTree3}: Create a KdTree3 containing the given SceneObjects, organized by their World-space 3D boundaries.\n *\n * This module provides the following functions to search KdTree3s:\n *\n * * {@link searchKdTree3WithAABB}: Finds the items that collide with a given 3D axis-aligned boundary (AABB).\n * * {@link searchKdTree3WithFrustum}: Finds the items that collide with a given 3D frustum volume.\n * * {@link searchKdTree3WithRay}: Finds the items that collide with a given 3D ray.\n *\n * With these components, applications can implement (at least):\n *\n * * Frustum3 culling for {@link @xeokit/scene!SceneObject | SceneObjects}\n * * Ray-picking SceneObjects\n * * Marquee selection of SceneObjects\n *\n * ## Installation\n *\n * ````bash\n * npm install @xeokit/kdtree3\n * ````\n *\n * ## Dependencies\n *\n * * {@link \"@xeokit/scene\" | @xeokit/scene}\n * * {@link \"@xeokit/core\" | @xeokit/core}\n * * {@link \"@xeokit/math\" | @xeokit/math}\n * * {@link \"@xeokit/boundaries\" | @xeokit/boundaries}\n *\n * ## Usage\n *\n * Querying for {@link @xeokit/scene!SceneObject | SceneObjects} that intersect a 3D World-space boundary:\n *\n * ````javascript\n * import {Scene} from \"@xeokit/scene\";\n * import {SDKError} from \"@xeokit/core\";\n * import {TrianglesPrimitive} from \"@xeokit/constants\";\n * import {KdTree3, searchKdTree3WithAABB} from \"@xeokit/kdtree3\";\n *\n * const scene = new Scene();\n *\n * const sceneModel = scene.createModel({\n * id: \"myModel\"\n * });\n *\n * if (sceneModel instanceof SDKError) {\n * console.log(sceneModel.message);\n *\n * } else {\n *\n * sceneModel.createGeometry({\n * id: \"theGeometry\", primitive: TrianglesPrimitive,\n * positions: [10.07, 0, 11.07, 9.58, 3.11, 11.07, 8.15, ..],\n * indices: [21, 0, 1, 1, 22, 21, 22, 1, 2, 2, 23, 22, 23, ..]\n * });\n *\n * sceneModel.createLayerMesh({\n * id: \"redLegMesh\", geometryId: \"theGeometry\",\n * position: [-4, -6, -4], scale: [1, 3, 1], rotation: [0, 0, 0], color: [1, 0.3, 0.3]\n * });\n *\n * sceneModel.createLayerMesh({\n * id: \"greenLegMesh\", geometryId: \"theGeometry\", position: [4, -6, -4], scale: [1, 3, 1],\n * rotation: [0, 0, 0], color: [0.3, 1.0, 0.3]\n * });\n *\n * sceneModel.createLayerMesh({\n * id: \"blueLegMesh\", geometryId: \"theGeometry\", position: [4, -6, 4], scale: [1, 3, 1],\n * rotation: [0, 0, 0], color: [0.3, 0.3, 1.0]\n * });\n *\n * sceneModel.createLayerMesh({\n * id: \"yellowLegMesh\", geometryId: \"theGeometry\", position: [-4, -6, 4], scale: [1, 3, 1],\n * rotation: [0, 0, 0], color: [1.0, 1.0, 0.0]\n * });\n *\n * sceneModel.createLayerMesh({\n * id: \"tableTopMesh\", geometryId: \"theGeometry\", position: [0, -3, 0], scale: [6, 0.5, 6],\n * rotation: [0, 0, 0], color: [1.0, 0.3, 1.0]\n * });\n *\n * sceneModel.createObject({ id: \"redLegSceneObject\", meshIds: [\"redLegMesh\"] });\n * sceneModel.createObject({ id: \"greenLegSceneObject\", meshIds: [\"greenLegMesh\"] });\n * sceneModel.createObject({ id: \"blueLegSceneObject\", meshIds: [\"blueLegMesh\"] });\n * sceneModel.createObject({ id: \"yellowLegSceneObject\", meshIds: [\"yellowLegMesh\"] });\n * sceneModel.createObject({ id: \"tableTopSceneObject\", meshIds: [\"tableTopMesh\"] });\n *\n * sceneModel.build()\n *\n * .then(() => {\n *\n * const kdTree = createSceneObjectsKdTree3(Object.values(scene.objects));\n *\n * const sceneObjects = searchKdTree3WithAABB({\n * kdTree,\n * aabb : [0, 0, 0, 10, 10, 10]\n * });\n *\n * const sceneObjects2 = searchKdTree3WithFrustum({\n * kdTree,\n * frustum: new Frustum3( .. )\n * });\n *\n * const objectMap = {};\n *\n * for (let i = 0, len = sceneObjects.length; i < len; i++) {\n * const sceneObject = sceneObjects[i];\n * }\n *\n * const redLegSceneObject = objectMap[\"redLegSceneObject\"];\n * const greenLegSceneObject = objectMap[\"greenLegSceneObject\"];\n * const tableTopSceneObject = objectMap[\"tableTopSceneObject\"];\n * });\n * }\n * ````\n *\n * @module @xeokit/kdtree3\n */\nexport * from \"./KdTree3\";\nexport * from \"./createSceneObjectsKdTree3\";\nexport * from \"./createSceneObjectPrimsKdTree3\";\nexport * from \"./createPrimsKdTree3\";\nexport * from \"./searchKdTree3WithAABB\";\nexport * from \"./searchKdTree3WithFrustum\";\nexport * from \"./searchKdTree3WithRay\";\nexport * from \"./KdSceneObjectPrim\";\nexport * from \"./KdTrianglePrim\";\nexport * from \"./KdLinePrim\";\nexport * from \"./KdPointPrim\";\nexport * from \"./PrimsKdTree3\";\nexport * from \"./sceneObjectsKdTree3\";\nexport * from \"./KdNode3\";\nexport * from \"./KdItem3\";\nexport * from \"./KdTree3Params\";\n\n\n", "import {containsAABB3, expandAABB3} from \"@xeokit/boundaries\";\nimport type {FloatArrayParam} from \"@xeokit/math\";\nimport type {KdNode3} from \"./KdNode3\";\nimport type {KdItem3D} from \"./KdItem3\";\nimport type {KdTree3Params} from \"./KdTree3Params\";\n\n\nconst MAX_KD_TREE_DEPTH = 10; // Increase if greater precision needed\nconst kdTreeDimLength = new Float32Array(3);\n\n/**\n * A static k-d tree that organizes anything that has a boundary for\n * efficient 3D World-space boundary and frustm searches.\n *\n * See {@link \"@xeokit/kdtree3\"} for usage.\n */\nexport class KdTree3 {\n\n #root: KdNode3;\n #maxDepth: any;\n #numNodes: number;\n #numObjects: number;\n\n /**\n * Creates a new KdTree3.\n *\n * @param params\n */\n constructor(params: KdTree3Params) {\n this.#maxDepth = params?.maxDepth || MAX_KD_TREE_DEPTH;\n this.#root = {\n index: 0,\n aabb: params.aabb.slice()\n };\n this.#numNodes = 0;\n }\n\n get root(): KdNode3 {\n return this.#root;\n }\n\n insertItem(item: any, aabb: FloatArrayParam) {\n this.#insertItem(this.#root, {index: this.#numObjects++, item}, aabb, 1)\n }\n\n #insertItem(node: KdNode3, item: KdItem3D, aabb: FloatArrayParam, depth: number) {\n if (depth >= this.#maxDepth) {\n node.items = node.items || [];\n node.items.push(item);\n expandAABB3(node.aabb, aabb);\n return;\n }\n if (node.left) {\n if (containsAABB3(node.left.aabb, aabb)) {\n this.#insertItem(node.left, item, aabb, depth + 1);\n return;\n }\n }\n if (node.right) {\n if (containsAABB3(node.right.aabb, aabb)) {\n this.#insertItem(node.right, item, aabb, depth + 1);\n return;\n }\n }\n const nodeAABB = node.aabb;\n kdTreeDimLength[0] = nodeAABB[3] - nodeAABB[0];\n kdTreeDimLength[1] = nodeAABB[4] - nodeAABB[1];\n kdTreeDimLength[2] = nodeAABB[5] - nodeAABB[2];\n let dim = 0;\n if (kdTreeDimLength[1] > kdTreeDimLength[dim]) {\n dim = 1;\n }\n if (kdTreeDimLength[2] > kdTreeDimLength[dim]) {\n dim = 2;\n }\n if (!node.left) {\n const aabbLeft = nodeAABB.slice();\n aabbLeft[dim + 3] = ((nodeAABB[dim] + nodeAABB[dim + 3]) / 2.0);\n node.left = {\n index: this.#numNodes++,\n aabb: aabbLeft\n };\n if (containsAABB3(aabbLeft, aabb)) {\n this.#insertItem(node.left, item, aabb, depth + 1);\n return;\n }\n }\n if (!node.right) {\n const aabbRight = nodeAABB.slice();\n aabbRight[dim] = ((nodeAABB[dim] + nodeAABB[dim + 3]) / 2.0);\n node.right = {\n index: this.#numNodes++,\n aabb: aabbRight\n };\n if (containsAABB3(aabbRight, aabb)) {\n this.#insertItem(node.right, item, aabb, depth + 1);\n return;\n }\n }\n node.items = node.items || [];\n node.items.push(item);\n expandAABB3(node.aabb, aabb);\n }\n}\n", "import {KdTree3} from \"./KdTree3\";\n\n/**\n * k-d tree built by {@link createSceneObjectsKdTree3} that contains {@link @xeokit/scene!SceneObject | SceneObject} item types.\n *\n * See {@link \"@xeokit/kdtree3\"} for usage.\n */\nexport class SceneObjectsKdTree3 extends KdTree3 {\n}", "import type {SceneObject} from \"@xeokit/scene\";\nimport {collapseAABB3, expandAABB3} from \"@xeokit/boundaries\";\nimport {SceneObjectsKdTree3} from \"./sceneObjectsKdTree3\";\n\n/**\n * Indexes the given SceneObjects in a k-d tree for efficient collision detection.\n *\n * See {@link \"@xeokit/kdtree3\"} for usage.\n */\nexport function createSceneObjectsKdTree3(sceneObjects: SceneObject[]): SceneObjectsKdTree3 {\n const aabb = collapseAABB3();\n for (let i = 0, len = sceneObjects.length; i < len; i++) {\n expandAABB3(aabb, sceneObjects[i].aabb);\n }\n const kdTree = new SceneObjectsKdTree3({aabb});\n for (let i = 0, len = sceneObjects.length; i < len; i++) {\n const sceneObject = sceneObjects[i];\n kdTree.insertItem(sceneObject, sceneObject.aabb);\n }\n return kdTree;\n}\n\n\n", "import {type GeometryView, getSceneObjectGeometry, SceneGeometry, SceneObject} from \"@xeokit/scene\";\nimport {KdTree3} from \"./KdTree3\";\nimport type {FloatArrayParam} from \"@xeokit/math\";\nimport {collapseAABB3, expandAABB3} from \"@xeokit/boundaries\";\nimport {LinesPrimitive, PointsPrimitive, TrianglesPrimitive} from \"@xeokit/constants\";\nimport type {KdSceneObjectPrim} from \"./KdSceneObjectPrim\";\n\n/**\n * k-d tree built by {@link createSceneObjectPrimsKdTree3}.\n */\nexport class SceneObjectsPrimsKdTree3 extends KdTree3 {}\n\n/**\n * Creates a KdTree3 that indexes the primitives belonging to the given SceneObjects in 3D World-space.\n *\n * See {@link \"@xeokit/kdtree3\"} for usage.\n *\n * @param sceneObjects\n */\nexport function createSceneObjectPrimsKdTree3(sceneObjects: SceneObject[]): SceneObjectsPrimsKdTree3 {\n\n const tempAABBInt16 = new Int16Array(6);\n\n function insertPoint(sceneObject: SceneObject, sceneGeometry: SceneGeometry, positions: FloatArrayParam, a: number, kdTree: KdTree3) {\n const ax = positions[(a * 3)];\n const ay = positions[(a * 3) + 1];\n const az = positions[(a * 3) + 2];\n const aabb = tempAABBInt16;\n aabb[0] = aabb[3] = ax;\n aabb[1] = aabb[4] = ay;\n aabb[2] = aabb[5] = az;\n kdTree.insertItem({sceneObject, sceneGeometry, prim: {a}}, aabb);\n }\n\n function insertLine(sceneObject: SceneObject, sceneGeometry: SceneGeometry, positions: FloatArrayParam, a: number, b: number, kdTree: KdTree3) {\n const ax = positions[(a * 3)];\n const ay = positions[(a * 3) + 1];\n const az = positions[(a * 3) + 2];\n const bx = positions[(b * 3)];\n const by = positions[(b * 3) + 1];\n const bz = positions[(b * 3) + 2];\n const aabb = tempAABBInt16;\n aabb[0] = Math.min(ax, bx);\n aabb[1] = Math.min(ay, by);\n aabb[2] = Math.min(az, bz);\n aabb[3] = Math.max(ax, bx);\n aabb[4] = Math.max(ay, by);\n aabb[5] = Math.max(az, bz);\n kdTree.insertItem({sceneObject, sceneGeometry, prim: {a, b}}, aabb);\n }\n\n function insertTriangle(sceneObject: SceneObject, sceneGeometry: SceneGeometry, positions: FloatArrayParam, a: number, b: number, c: number, kdTree: KdTree3) {\n const ax = positions[(a * 3)];\n const ay = positions[(a * 3) + 1];\n const az = positions[(a * 3) + 2];\n const bx = positions[(b * 3)];\n const by = positions[(b * 3) + 1];\n const bz = positions[(b * 3) + 2];\n const cx = positions[(c * 3)];\n const cy = positions[(c * 3) + 1];\n const cz = positions[(c * 3) + 2];\n const aabb = tempAABBInt16;\n aabb[0] = Math.min(ax, bx, cx);\n aabb[1] = Math.min(ay, by, cy);\n aabb[2] = Math.min(az, bz, cz);\n aabb[3] = Math.max(ax, bx, cx);\n aabb[4] = Math.max(ay, by, cy);\n aabb[5] = Math.max(az, bz, cz);\n kdTree.insertItem({sceneObject, sceneGeometry, prim: {a, b, c}}, aabb);\n }\n\n const aabb = collapseAABB3();\n for (let i = 0, len = sceneObjects.length; i < len; i++) {\n const viewObject = sceneObjects[i];\n expandAABB3(aabb, viewObject.aabb);\n }\n const kdTree = new SceneObjectsPrimsKdTree3({\n aabb\n });\n for (let i = 0, len = sceneObjects.length; i < len; i++) {\n const sceneObject = sceneObjects[i];\n getSceneObjectGeometry(sceneObject, (geometryView: GeometryView) => {\n const sceneGeometry = geometryView.geometry;\n const positionsWorld = geometryView.positionsWorld; // <-- Can be expensive\n const indices = sceneGeometry.indices;\n switch (sceneGeometry.primitive) {\n case PointsPrimitive:\n for (let j = 0, lenj = positionsWorld.length / 3; j < lenj; j++) {\n insertPoint(sceneObject, sceneGeometry, positionsWorld, j, kdTree);\n }\n break;\n case TrianglesPrimitive:\n if (indices) {\n for (let j = 0, lenj = indices.length; j < lenj; j += 3) {\n insertTriangle(sceneObject, sceneGeometry, positionsWorld, indices[j], indices[j + 1], indices[j + 2], kdTree);\n }\n }\n break;\n case LinesPrimitive:\n if (indices) {\n for (let j = 0, lenj = indices.length; j < lenj; j += 2) {\n insertLine(sceneObject, sceneGeometry, positionsWorld, indices[j], indices[j + 1], kdTree);\n }\n }\n break;\n }\n return true;\n\n });\n }\n return kdTree;\n}\n", "import {KdTree3} from \"./KdTree3\";\n\n/**\n * k-d tree built by {@link createPrimsKdTree3} that contains {@link KdTriangle3}, {@link KdLine3} and {@link KdPoint3} item types.\n *\n * See {@link \"@xeokit/kdtree3\"} for usage.\n */\nexport class PrimsKdTree3 extends KdTree3 {\n\n}", "import {createAABB3Int16, expandAABB3Points3} from \"@xeokit/boundaries\";\nimport type {FloatArrayParam, IntArrayParam} from \"@xeokit/math\";\nimport {LinesPrimitive, PointsPrimitive, TrianglesPrimitive} from \"@xeokit/constants\";\nimport type {KdTree3} from \"./KdTree3\";\nimport type {KdTrianglePrim} from \"./KdTrianglePrim\";\nimport type {KdLinePrim} from \"./KdLinePrim\";\nimport type {KdPointPrim} from \"./KdPointPrim\";\nimport {PrimsKdTree3} from \"./PrimsKdTree3\";\n\nconst tempAABBInt16 = new Int16Array(6);\n\n/**\n * Creates a KdTree3 that indexes the 3D primitives in the given arrays.\n *\n * This function does not care which coordinate space the primitives are in (ie. Local, World, View etc).\n *\n * This function also works for coordinates of any precision (ie. Float32Array, Float64Array, Int16Array, Int32Array etc).\n *\n * See {@link \"@xeokit/kdtree3\"} for usage.\n */\nexport function createPrimsKdTree3(primitiveType: number, positions: FloatArrayParam, indices?: IntArrayParam): PrimsKdTree3 {\n const kdTree = new PrimsKdTree3({\n aabb: expandAABB3Points3(createAABB3Int16(), positions)\n });\n\n switch (primitiveType) {\n case PointsPrimitive:\n for (let i = 0, len = positions.length / 3; i < len; i++) {\n insertPoint(positions, i, kdTree);\n }\n break;\n case TrianglesPrimitive:\n if (indices) {\n for (let i = 0, len = indices.length; i < len; i += 3) {\n insertTriangle(positions, indices[i], indices[i + 1], indices[i + 2], kdTree);\n }\n }\n break;\n case LinesPrimitive:\n if (indices) {\n for (let i = 0, len = indices.length; i < len; i += 2) {\n insertLine(positions, indices[i], indices[i + 1], kdTree);\n }\n }\n break;\n }\n return kdTree;\n}\n\nfunction insertPoint(positions: FloatArrayParam, a: number, kdTree: KdTree3) {\n const ax = positions[(a * 3)];\n const ay = positions[(a * 3) + 1];\n const az = positions[(a * 3) + 2];\n const aabb = tempAABBInt16;\n aabb[0] = aabb[3] = ax;\n aabb[1] = aabb[4] = ay;\n aabb[2] = aabb[5] = az;\n kdTree.insertItem({a}, aabb);\n}\n\nfunction insertLine(positions: FloatArrayParam, a: number, b: number, kdTree: KdTree3) {\n const ax = positions[(a * 3)];\n const ay = positions[(a * 3) + 1];\n const az = positions[(a * 3) + 2];\n const bx = positions[(b * 3)];\n const by = positions[(b * 3) + 1];\n const bz = positions[(b * 3) + 2];\n const aabb = tempAABBInt16;\n aabb[0] = Math.min(ax, bx);\n aabb[1] = Math.min(ay, by);\n aabb[2] = Math.min(az, bz);\n aabb[3] = Math.max(ax, bx);\n aabb[4] = Math.max(ay, by);\n aabb[5] = Math.max(az, bz);\n kdTree.insertItem({a, b}, aabb);\n}\n\nfunction insertTriangle(positions: FloatArrayParam, a: number, b: number, c: number, kdTree: KdTree3) {\n const ax = positions[(a * 3)];\n const ay = positions[(a * 3) + 1];\n const az = positions[(a * 3) + 2];\n const bx = positions[(b * 3)];\n const by = positions[(b * 3) + 1];\n const bz = positions[(b * 3) + 2];\n const cx = positions[(c * 3)];\n const cy = positions[(c * 3) + 1];\n const cz = positions[(c * 3) + 2];\n const aabb = tempAABBInt16;\n aabb[0] = Math.min(ax, bx, cx);\n aabb[1] = Math.min(ay, by, cy);\n aabb[2] = Math.min(az, bz, cz);\n aabb[3] = Math.max(ax, bx, cx);\n aabb[4] = Math.max(ay, by, cy);\n aabb[5] = Math.max(az, bz, cz);\n kdTree.insertItem({a, b, c}, aabb);\n}\n", "import type {FloatArrayParam} from \"@xeokit/math\";\nimport {INTERSECT, intersectAABB3s, OUTSIDE} from \"@xeokit/boundaries\";\nimport type {KdTree3} from \"./KdTree3\";\nimport type {KdNode3} from \"./KdNode3\";\nimport type {KdItem3D} from \"./KdItem3\";\n\n\n/**\n * Queries a {@link KdTree3} for {@link KdItem3D | KDItems} that intersect\n * a 3D axis-aligned bounding box (AABB).\n *\n * See {@link \"@xeokit/kdtree3\"} for usage.\n */\nexport function searchKdTree3WithAABB(params: {\n kdTree: KdTree3,\n aabb: FloatArrayParam\n}): KdItem3D[] {\n\n const kdTree = params.kdTree;\n const aabb = params.aabb;\n const foundItems: KdItem3D[] = [];\n\n function visit(node: KdNode3, isect: number) {\n if (isect === OUTSIDE) {\n return;\n }\n isect = intersectAABB3s(aabb, node.aabb);\n if (isect === OUTSIDE) {\n return;\n }\n const items = node.items;\n if (items && items.length > 0) {\n for (let i = 0, len = items.length; i < len; i++) {\n foundItems.push(items[i].item);\n }\n }\n if (node.left) {\n visit(node.left, isect);\n }\n if (node.right) {\n visit(node.right, isect);\n }\n }\n\n visit(kdTree.root, INTERSECT);\n return foundItems;\n}\n", "import {Frustum3, INTERSECT, intersectFrustum3AABB3, OUTSIDE} from \"@xeokit/boundaries\";\nimport type {KdTree3} from \"./KdTree3\";\nimport type {KdNode3} from \"./KdNode3\";\nimport type {KdItem3D} from \"./KdItem3\";\n\n/**\n * Queries a {@link KdTree3} for {@link KdItem3D | KDItems} that intersect\n * a 3D {@link @xeokit/boundaries!Frustum3}.\n *\n * See {@link \"@xeokit/kdtree3\"} for usage.\n */\nexport function searchKdTree3WithFrustum(params: {\n kdTree: KdTree3,\n frustum: Frustum3\n}): KdItem3D[] {\n const kdTree = params.kdTree;\n const frustum = params.frustum;\n const foundItems: KdItem3D[] = [];\n\n function visit(node: KdNode3, isect: number) {\n if (isect === OUTSIDE) {\n return;\n }\n isect = intersectFrustum3AABB3(frustum, node.aabb);\n if (isect === OUTSIDE) {\n return;\n }\n const items = node.items;\n if (items && items.length > 0) {\n for (let i = 0, len = items.length; i < len; i++) {\n foundItems.push(items[i].item);\n }\n }\n if (node.left) {\n visit(node.left, isect);\n }\n if (node.right) {\n visit(node.right, isect);\n }\n }\n\n visit(kdTree.root, INTERSECT);\n return foundItems;\n}\n", "import type {FloatArrayParam} from \"@xeokit/math\";\nimport {INTERSECT, OUTSIDE} from \"@xeokit/boundaries\";\nimport type {KdTree3} from \"./KdTree3\";\nimport type {KdNode3} from \"./KdNode3\";\nimport type {KdItem3D} from \"./KdItem3\";\n\n\n/**\n * Queries a {@link KdTree3} for {@link KdItem3D | KDItems} that intersect\n * a 3D ray.\n *\n * See {@link \"@xeokit/kdtree3\"} for usage.\n */\nexport function searchKdTree3WithRay(params: {\n kdTree: KdTree3,\n origin: FloatArrayParam,\n dir: FloatArrayParam\n}): KdItem3D[] {\n\n const kdTree = params.kdTree;\n const origin = params.origin;\n const dir = params.dir;\n const foundItems: KdItem3D[] = [];\n\n function testRayIntersectsAABB3(origin: FloatArrayParam, dir: FloatArrayParam, aabb: FloatArrayParam) : number{\n return 0;\n }\n\n function visit(node: KdNode3, isect: number) {\n if (isect === OUTSIDE) {\n return;\n }\n isect = testRayIntersectsAABB3(origin, dir, node.aabb);\n if (isect === OUTSIDE) {\n return;\n }\n const items = node.items;\n if (items && items.length > 0) {\n for (let i = 0, len = items.length; i < len; i++) {\n foundItems.push(items[i].item);\n }\n }\n if (node.left) {\n visit(node.left, isect);\n }\n if (node.right) {\n visit(node.right, isect);\n }\n }\n\n visit(kdTree.root, INTERSECT);\n return foundItems;\n}\n", "/**\n * [![npm version](https://badge.fury.io/js/%40xeokit%2Fcompression.svg)](https://badge.fury.io/js/%40xeokit%2Fcompression)\n * [![](https://data.jsdelivr.com/v1/package/npm/@xeokit/kdtree/badge)](https://www.jsdelivr.com/package/npm/@xeokit/kdtree)\n *\n * # xeokit Picking System\n *\n * ---\n *\n * ### *Select objects and primitives using rays and boundaries*\n *\n * ---\n *\n * The following class diagrams depict xeokit's picking system architecture.\n *\n * The {@link @xeokit/collision!SceneObjectsKdTree3 | SceneObjectsKdTree3} class, a k-d tree that arranges\n * {@link @xeokit/scene!SceneObject | SceneObjects} for\n * efficient collision testing with boundaries, rays, and frustums, is positioned in the center of the\n * first diagram. To construct a SceneObjectsKdTree3, use\n * the {@link @xeokit/collision!createSceneObjectsKdTree3 | createSceneObjectsKdTree3} function.\n *\n * To find SceneObjects in the SceneObjectsKdTree3 that intersect a 3D world-space ray,\n * use {@link Picker.rayPick | Picker.rayPick()}, which will generate a {@link RayPickResult}. To find SceneObjects\n * that intersect a 2D marquee boundary, use {@link Picker.marqueePick | Picker.marqueePick()},\n * which will generate a {@link MarqueePickResult}.\n *\n *
\n *\n * [![](https://mermaid.ink/img/pako:eNp9k99PgzAQx_-V5p6cQTLkdx98MlGji2bzyfSlwqnVUbRAskn4322BuYFMEtLLfe_z5Xq0NSR5ikAhWfOiuBT8VfGMyVQoTEqRS3K3ZJJJQsxrnraOrBKUeP_8rovqndL0gV66yIBd1EEPIvlARX4BQhTfmuTJbfqoEF2L5Eq8Ckn052d02YlLLKp1WeyhjKuvCnEI9skZXezVAdmMuznYQtHbaK3eFTXD6r-2prQ48Bhhe3S4jxF2Lf6Q_ZgYOAxOz84udGDbpwwmeqDkSjspXmLR_SMmj9KjNgboIZS3kCGmJkTJCrlK3gw1pbfkpAUlNzLFjQEnhvkft8J1N-DRFo4z5BcCCzJUGRepPuPtyWNQvmGGDKgOU3zh2osBk40u5VWZr7YyAVqqCi2oPlM9oP5WAH3h60JnMRVlrhb9vTGLBZ9cAq1hA9QJYzsI5lHoeL7jeLEbWbAF6gaR7cZz3_HOg_g89KLGgu88165z2w_8UGuuH8wDN_Lc1u6pFU0fzQ91PCxm?type=png)](https://mermaid.live/edit#pako:eNp9k99PgzAQx_-V5p6cQTLkdx98MlGji2bzyfSlwqnVUbRAskn4322BuYFMEtLLfe_z5Xq0NSR5ikAhWfOiuBT8VfGMyVQoTEqRS3K3ZJJJQsxrnraOrBKUeP_8rovqndL0gV66yIBd1EEPIvlARX4BQhTfmuTJbfqoEF2L5Eq8Ckn052d02YlLLKp1WeyhjKuvCnEI9skZXezVAdmMuznYQtHbaK3eFTXD6r-2prQ48Bhhe3S4jxF2Lf6Q_ZgYOAxOz84udGDbpwwmeqDkSjspXmLR_SMmj9KjNgboIZS3kCGmJkTJCrlK3gw1pbfkpAUlNzLFjQEnhvkft8J1N-DRFo4z5BcCCzJUGRepPuPtyWNQvmGGDKgOU3zh2osBk40u5VWZr7YyAVqqCi2oPlM9oP5WAH3h60JnMRVlrhb9vTGLBZ9cAq1hA9QJYzsI5lHoeL7jeLEbWbAF6gaR7cZz3_HOg_g89KLGgu88165z2w_8UGuuH8wDN_Lc1u6pFU0fzQ91PCxm)\n *\n *
\n *\n * ### Unpacking the Pick Results\n *\n * A {@link MarqueePickResult} provides a list of SceneObjects that intersect the marquee, so unpacking that is trivial.\n *\n * On the other hand, a {@link RayPickResult} includes comprehensive details regarding\n * each ray-SceneObject intersection. This information includes everything necessary to inspect the geometry of the intersecting\n * primitives within each SceneObject, and the coordinates at which each of them intersect the ray.\n *\n *
\n *\n * [![](https://mermaid.ink/img/pako:eNqlVVtvmzAY_SvIj1USBXKh8LCHtlI3bdGiptKkiRcHvqZewY5ssyWr8t9nDA42kLbSePHtnOPvil9RyjJAMUpzLMQdwTuOi4RmhEMqCaPe401CE-rpT2O8TQoUvm9_KcCrOam-AsQzCHsH4-3WrE-uyEqBPYu-A1aA5Md2p8CSk0OH7orcNyRbaM9JQST5DdYWE6TyRdxByoo9ByFWjnh7_U2ZvoAUF4y-d1DOreaK2-YCyNpDosKZQk-0GYakPxM5FJz60PVVQY3yqc2UlSMvQX6CrsZjNU4mVwnSsY-9W0YlJvRs1jmYPbxrW5-pc2mxLIoNbq0zTj_g45qkLw8gylw7LFqzW7-0WzXha_aNUJiZ2OCYlsUWeL3anlenFv_ICaa7_H2OtmpIYc0IlQN0y6yNY7aBWs7UG1WD1G5Z3FW9aUgVpp65HbHr1oersq4rwahUhVHP_jCeKxcM2o24SliC2Hj8SU86biS049ZldOxtIFejTvLbrMbdhBq_B84tuWFUr1kuyrV1eJbsd9oFjin3jzObLNSlblLSwVglGf_geC_eQOpifxdVF2jsNTj7B9z9TP9o6nA04y80g4P7H-_LNE3x3zpte35ACo1QAbzAJFPvla70BMlnKCBBsZpm8IRVVSdI1bqC4lKyzZGmKH7CuYARKvcZltA8ceddyIhkfNU8gtUwQntMUfyKDij2l9OJH_lBGAbBchrM_MUIHVG8nE2i63AWTueLKArCaL44jdBfxpTsdHIdLOfzZTBb-GEUTf1A6_3Uh5KXcPoHqcxSqw?type=png)](https://mermaid.live/edit#pako:eNqlVVtvmzAY_SvIj1USBXKh8LCHtlI3bdGiptKkiRcHvqZewY5ssyWr8t9nDA42kLbSePHtnOPvil9RyjJAMUpzLMQdwTuOi4RmhEMqCaPe401CE-rpT2O8TQoUvm9_KcCrOam-AsQzCHsH4-3WrE-uyEqBPYu-A1aA5Md2p8CSk0OH7orcNyRbaM9JQST5DdYWE6TyRdxByoo9ByFWjnh7_U2ZvoAUF4y-d1DOreaK2-YCyNpDosKZQk-0GYakPxM5FJz60PVVQY3yqc2UlSMvQX6CrsZjNU4mVwnSsY-9W0YlJvRs1jmYPbxrW5-pc2mxLIoNbq0zTj_g45qkLw8gylw7LFqzW7-0WzXha_aNUJiZ2OCYlsUWeL3anlenFv_ICaa7_H2OtmpIYc0IlQN0y6yNY7aBWs7UG1WD1G5Z3FW9aUgVpp65HbHr1oersq4rwahUhVHP_jCeKxcM2o24SliC2Hj8SU86biS049ZldOxtIFejTvLbrMbdhBq_B84tuWFUr1kuyrV1eJbsd9oFjin3jzObLNSlblLSwVglGf_geC_eQOpifxdVF2jsNTj7B9z9TP9o6nA04y80g4P7H-_LNE3x3zpte35ACo1QAbzAJFPvla70BMlnKCBBsZpm8IRVVSdI1bqC4lKyzZGmKH7CuYARKvcZltA8ceddyIhkfNU8gtUwQntMUfyKDij2l9OJH_lBGAbBchrM_MUIHVG8nE2i63AWTueLKArCaL44jdBfxpTsdHIdLOfzZTBb-GEUTf1A6_3Uh5KXcPoHqcxSqw)\n *\n *
\n *\n * RayPickResult represents the hierarchical arrangement of Scene components selected by Picker.rayPick(). This\n * structure enables the iteration of the chosen SceneObjects, and the iteration of the selected Meshes, Geometries, and\n * GeometryBuckets within each SceneObject. The structure goes all the way down to the chosen primitives, which can be\n * KdLine3D, KdPoint3D, or KdTriangle3D.\n *\n * A primitive has one or more vertex indices, and the number of indices is determined by the primitive type. These\n * indices are used to access the compressed vertex coordinates of the primitive within\n * SceneGeometryBucket.positionsCompressed. These coordinates can be decompressed using SceneGeometry.positionsDecompressMatrix and\n * then transformed into the World-space coordinate system using SceneMesh.matrix to obtain the final coordinates of the primitive.\n *\n * To keep a low memory footprint, while being flexible and extensible, both the RayPickResult and xeokit's\n * scene graph have been designed in such a way that requires some boilerplate code to traverse and unpack them. This\n * includes coordinate decompression and transformation, which we'll demonstrate in the example code below.\n *\n * ## Installation\n *\n * ````bash\n * npm install @xeokit/collision\n * ````\n *\n * ## Usage\n *\n * ````javascript\n * import {Scene} from \"@xeokit/scene\";\n * import {SDKError} from \"@xeokit/core\";\n * import {TrianglesPrimitive, LinesPrimitive, PointsPrimitive} from \"@xeokit/constants\";\n * import {KdTree3, searchKdTree3WithAABB} from \"@xeokit/kdtree3\";\n *\n * // Create a scene graph - notice there's not a Viewer in sight\n *\n * const scene = new Scene();\n *\n * const sceneModel = scene.createModel({\n * id: \"myModel\"\n * });\n *\n * if (sceneModel instanceof SDKError) {\n * console.log(sceneModel.message);\n *\n * } else {\n *\n * // Build our standard Table model, with a table top and four legs\n *\n * sceneModel.createGeometry({\n * id: \"theGeometry\", primitive: TrianglesPrimitive,\n * positions: [10.07, 0, 11.07, 9.58, 3.11, 11.07, 8.15, ..],\n * indices: [21, 0, 1, 1, 22, 21, 22, 1, 2, 2, 23, 22, 23, ..]\n * });\n *\n * sceneModel.createLayerMesh({\n * id: \"redLegMesh\", geometryId: \"theGeometry\",\n * position: [-4, -6, -4], scale: [1, 3, 1], rotation: [0, 0, 0], color: [1, 0.3, 0.3]\n * });\n *\n * sceneModel.createLayerMesh({\n * id: \"greenLegMesh\", geometryId: \"theGeometry\", position: [4, -6, -4], scale: [1, 3, 1],\n * rotation: [0, 0, 0], color: [0.3, 1.0, 0.3]\n * });\n *\n * sceneModel.createLayerMesh({\n * id: \"blueLegMesh\", geometryId: \"theGeometry\", position: [4, -6, 4], scale: [1, 3, 1],\n * rotation: [0, 0, 0], color: [0.3, 0.3, 1.0]\n * });\n *\n * sceneModel.createLayerMesh({\n * id: \"yellowLegMesh\", geometryId: \"theGeometry\", position: [-4, -6, 4], scale: [1, 3, 1],\n * rotation: [0, 0, 0], color: [1.0, 1.0, 0.0]\n * });\n *\n * sceneModel.createLayerMesh({\n * id: \"tableTopMesh\", geometryId: \"theGeometry\", position: [0, -3, 0], scale: [6, 0.5, 6],\n * rotation: [0, 0, 0], color: [1.0, 0.3, 1.0]\n * });\n *\n * sceneModel.createObject({ id: \"redLegSceneObject\", meshIds: [\"redLegMesh\"] });\n * sceneModel.createObject({ id: \"greenLegSceneObject\", meshIds: [\"greenLegMesh\"] });\n * sceneModel.createObject({ id: \"blueLegSceneObject\", meshIds: [\"blueLegMesh\"] });\n * sceneModel.createObject({ id: \"yellowLegSceneObject\", meshIds: [\"yellowLegMesh\"] });\n * sceneModel.createObject({ id: \"tableTopSceneObject\", meshIds: [\"tableTopMesh\"] });\n *\n * sceneModel.build()\n *\n * .then(() => {\n *\n * // When our model is finalized, insert all\n * // its SceneObjects into a SceneObjectsKdTree3\n *\n * const sceneObjectsKdTree3 = createSceneObjectsKdTree3(Object.values(scene.objects));\n *\n * // Then we'll try to ray-pick the SceneObjects\n *\n * const picker = new Picker();\n *\n * const rayPickResult = picker.rayPick({\n * sceneObjectsKdTree3,\n * origin: [0,0,100],\n * dir: [0,0,-1];\n * });\n *\n * // We get a RayPickResults, which contains a\n * // SceneObjectHit that wraps each SceneObject we picked\n *\n * for (let i =0, len = rayPickResult.sceneObjectHits.length; i < len; i++) {\n *\n * const sceneObjectHit = rayPickResult.sceneObjectHits[i];\n * const sceneObject = sceneObjectHit.sceneObject;\n *\n * // Within each SceneObjectHit we get a MeshHit that wraps each SceneMesh that\n * // was picked in this SceneObject\n *\n * const meshHit = sceneObjectHit.meshHit;\n * const mesh = meshHit.mesh;\n *\n * // Within the MeshHit, a single GeometryHit that wraps\n * // the SceneGeometry that was picked\n *\n * const geometryHit = meshHit.geometryHit;\n * const geometry = geometryHit.geometry;\n *\n * // Within the GeometryHit, we get a GeometryBucketHit for each hit\n *\n * const geometryBucketHit = geometryHit.geometryBucketHit;\n * const geometryBucket = geometryBucketHit.geometryBucket;\n *\n * // And finally within the GeometryBucketHit, a PrimHit\n * // for each primitive that was hit within the SceneGeometryBucket.\n *\n * // Each PrimtHit wraps a single a single KdPointPrim, KdLinePrim or KdTrianglePrim,\n * // which represents a point, line or triangle primitive, respectively.\n *\n * for (let j = 0, lenj = geometryBucketHit.primHits.length; j < lenj; j++) {\n *\n * const primHit = geometryBucketHit.primHits[j];\n * const primitive = primHit.primitive;\n *\n * // We know the primitive type from the SceneGeometry\n *\n * switch (geometry.primitive) {\n *\n * case TrianglesPrimitive:\n *\n * // Using the vertex indices of each primitive,\n * // we can then access the compressed coordinates\n * // for that vertex, then we can decompress them\n * // and transform them into World-space.\n *\n * const kdTriangle3D = primHit.prim;\n *\n * break;\n *\n * case LinesPrimitive:\n * const kdTriangle3D = primHit.prim;\n *\n * break;\n *\n * case PointsPrimitive:\n * const kdPoint3D = primHit.prim;\n *\n * break;\n * }\n * }\n * }\n * });\n * }\n *\n * ````\n *\n * @module @xeokit/pick\n */\nexport * from \"./Picker\";\nexport * from \"./MarqueePickResult\";\nexport * from \"./RayPickResult\";\nexport {SceneObjectHit} from \"./SceneObjectHit\";\nexport {MeshHit} from \"./MeshHit\";\nexport {GeometryHit} from \"./GeometryHit\";\nexport {PrimHit} from \"./PrimHit\";\n\n\n", "import type {KdTree3, PrimsKdTree3} from \"@xeokit/kdtree3\";\nimport type {FloatArrayParam} from \"@xeokit/math\";\n\n/**\n * Caches reusable resources for {@link rayPick} and {@link marqueePick}.\n *\n * These resources are lazy-generated by these methods. When provided\n * again to the methods, we can avoid the method needing to re-generate them.\n *\n * > Internally, the resources consist of lazy-generated {@link PrimsKdTree3 | PrimsKdTree3s}, cached for\n * {@link @xeokit/scene!SceneGeometryBucket | GeometryBuckets} of\n * candidate {@link @xeokit/scene!SceneObject | SceneObjects} while picking.\n */\nexport class PickPrimsCache {\n\n /**\n * TODO\n */\n primitivesKdTrees: {\n [key: string]: {\n primitivesKdTree: PrimsKdTree3,\n positions: FloatArrayParam\n }\n };\n\n /**\n * TODO\n */\n constructor() {\n this.primitivesKdTrees = {};\n }\n\n /**\n * TODO\n */\n clear() {\n this.primitivesKdTrees = {};\n }\n}", "import {\n createPrimsKdTree3,\n KdLinePrim,\n KdPointPrim,\n KdTrianglePrim,\n SceneObjectsKdTree3,\n searchKdTree3WithFrustum,\n searchKdTree3WithRay\n} from \"@xeokit/kdtree3\";\nimport type {FloatArrayParam} from \"@xeokit/math\";\nimport type {RayPickResult} from \"./RayPickResult\";\nimport type {MarqueePickResult} from \"./MarqueePickResult\";\nimport {PickPrimsCache} from \"./PickPrimsCache\";\nimport {decompressPositions3WithAABB3} from \"@xeokit/compression\";\nimport {LinesPrimitive, PointsPrimitive, TrianglesPrimitive} from \"@xeokit/constants\";\nimport type {SceneGeometry, SceneObject} from \"@xeokit/scene\";\n\nimport type {Frustum3} from \"@xeokit/boundaries\";\n\n/**\n * See {@link \"@xeokit/collision!pick\"} for usage.\n */\nexport class Picker {\n\n #pickPrimsCache: PickPrimsCache;\n\n constructor() {\n this.#pickPrimsCache = new PickPrimsCache();\n }\n\n /**\n * TODO\n * @param params\n */\n rayPick(params: {\n sceneObjectsKdTree3: SceneObjectsKdTree3,\n origin: FloatArrayParam,\n dir: FloatArrayParam\n }): RayPickResult {\n\n //\n // Cache for different Scene's?\n //\n\n const sceneObjectsKdTree3 = params.sceneObjectsKdTree3;\n const origin = params.origin;\n const dir = params.dir;\n const rayPickResult = {\n sceneObjectHits: []\n };\n // const kdItems = searchKdTree3WithRay({kdTree: sceneObjectsKdTree3, origin, dir});\n // for (let i = 0, len = kdItems.length; i < len; i++) {\n // const item = kdItems[i];\n // const sceneObject: SceneObject = item.sceneObject;\n // const meshHits: MeshHit[] = [];\n // for (let j = 0, lenj = sceneObject.meshes.length; j < lenj; j++) {\n // const mesh = sceneObject.meshes[j];\n // const geometryBucketHits: GeometryBucketHit[] = [];\n // //////////////////////\n // // Transform ray into mesh local space, by inverse of mesh matrix\n // ///////////////////////\n // const geometry = mesh.geometry;\n // for (let k = 0, lenk = geometry.geometryBuckets.length; k < lenk; k++) {\n // const primHits: any[] = [];\n // const geometryBucket = geometry.geometryBuckets[k];\n // let primsKdTree3 = this.#getPrimsKdTree3(geometry, k, geometryBucket);\n // const primitives = searchKdTree3WithRay({kdTree: primsKdTree3.primsKdTree3, origin, dir});\n // if (primitives.length) {\n // switch (geometry.primitive) {\n // case TrianglesPrimitive:\n // for (let l = 0, lenl = primitives.length; l < lenl; l++) {\n // // const triangle = primitives[l];\n // // const a = triangle.a;\n // // const b = triangle.b;\n // // const c = triangle.c;\n // // const cx = primsKdTree3.positions[a * 3];\n // // const cy = primsKdTree3.positions[a * 3 + 1];\n // // const cz = primsKdTree3.positions[a * 3 + 2];\n //\n // //////////////////////////\n // // Get ray-triangle intersection in worldPos\n // /////////////////////////////\n //\n // // primHits.push({primitive: triangle, worldPos});\n // }\n // break;\n // case LinesPrimitive:\n // for (let l = 0, lenl = primitives.length; l < lenl; l++) {\n // // const line = primitives[l];\n // // primHits.push({primitive: line, worldPos});\n // }\n // break;\n // case PointsPrimitive:\n // for (let l = 0, lenl = primitives.length; l < lenl; l++) {\n // // const point = primitives[l];\n // // primHits.push({primitive: point, worldPos});\n // }\n // break;\n // }\n // }\n // if (primHits.length > 0) {\n // geometryBucketHits.push({geometryBucket, primHits});\n // }\n // }\n // if (geometryBucketHits.length > 0) {\n // meshHits.push({mesh, geometry, geometryBucketHits})\n // }\n // }\n // if (meshHits.length) {\n // rayPickResult.sceneObjectHits.push({sceneObject, meshHits});\n // }\n // }\n return rayPickResult;\n }\n\n /**\n * Picks a {@link @xeokit/scene!SceneObjectsKdTree3} using a 2D marquee to obtain a {@link MarqueePickResult}\n * containing picked {@link @xeokit/scene!SceneObject | SceneObjects}, {@link @xeokit/scene!SceneMesh}, {@link @xeokit/scene!SceneGeometry},\n * {@link @xeokit/scene!SceneGeometryBucket | GeometryBuckets}, {@link KdTrianglePrim}, {@link KdLinePrim} and {@link KdPointPrim}.\n * @param params\n */\n marqueePick(params: {\n sceneObjectsKdTree3: SceneObjectsKdTree3,\n marquee: FloatArrayParam\n }): MarqueePickResult {\n const sceneObjectsKdTree3 = params.sceneObjectsKdTree3;\n const pickPrimsCache = this.#pickPrimsCache;\n const marqueePickResult = {\n sceneObjects: []\n };\n // @ts-ignore\n const frustum: Frustum3 = null; // Create from marquee\n const kdItems = searchKdTree3WithFrustum({\n kdTree: sceneObjectsKdTree3,\n frustum\n });\n for (let i = 0, len = kdItems.length; i < len; i++) {\n const kdItem = kdItems[i];\n const sceneObject = kdItem.item;\n const meshes = [];\n for (let j = 0, lenj = sceneObject.meshes.length; j < lenj; j++) {\n const mesh = sceneObject.meshes[j];\n const pickedGeometryMeshes = [];\n //////////////////////\n // Transform frustum into mesh local space, by inverse of mesh matrix\n ///////////////////////\n const geometry = mesh.geometry;\n for (let k = 0, lenk = geometry.geometryBuckets.length; k < lenk; k++) {\n const prims = [];\n const geometryBucket = geometry.geometryBuckets[k];\n let primsKdTree3 = this.#getPrimsKdTree3(geometry, k);\n const items = searchKdTree3WithFrustum({\n kdTree: primsKdTree3.primitivesKdTree,\n frustum\n });\n if (items.length) {\n switch (geometry.primitive) {\n case TrianglesPrimitive:\n for (let l = 0, lenl = items.length; l < lenl; l++) {\n const item = items[l];\n const triangle = item.item.prim;\n const a = triangle.a;\n const b = triangle.b;\n const c = triangle.c;\n const cx = primsKdTree3.positions[a * 3];\n const cy = primsKdTree3.positions[a * 3 + 1];\n const cz = primsKdTree3.positions[a * 3 + 2];\n //////////////////////////\n // Get FRUSTUM-TRIANGLE-CENTER intersection in worldPos\n /////////////////////////////\n // prims.push({primitive: triangle, worldPos});\n }\n break;\n case LinesPrimitive:\n for (let l = 0, lenl = items.length; l < lenl; l++) {\n const item = items[l];\n const line = item.item.prim;\n // prims.push({primitive: line, worldPos});\n }\n break;\n case PointsPrimitive:\n for (let l = 0, lenl = items.length; l < lenl; l++) {\n const item = items[l];\n const point = item.item.prim;\n\n // prims.push({primitive: point, worldPos});\n }\n break;\n }\n }\n }\n }\n /////////////////////////////////////////////////////////////////////////\n const selected = false;\n\n if (selected) {\n marqueePickResult.sceneObjects.push(sceneObject);\n }\n }\n return marqueePickResult;\n }\n\n #getPrimsKdTree3(geometry: SceneGeometry, k: number): any {\n const kdTreeId = `${geometry.id}-${k}`;\n // @ts-ignore\n let primsKdTree3 = this.#pickPrimsCache[kdTreeId];\n if (!primsKdTree3) {\n const positions = decompressPositions3WithAABB3(\n geometry.positionsCompressed,\n geometry.aabb,\n new Float32Array(geometry.positionsCompressed.length));\n primsKdTree3 = {\n primsKdTree3: createPrimsKdTree3(geometry.primitive, positions, geometry.indices),\n positions\n }\n // @ts-ignore\n this.#pickPrimsCache[kdTreeId] = primsKdTree3;\n }\n return primsKdTree3;\n }\n}\n", "/**\n * [![npm version](https://badge.fury.io/js/%40xeokit%2Fdatatypes.svg)](https://badge.fury.io/js/%40xeokit%2Fdatatypes)\n * [![](https://data.jsdelivr.com/v1/package/npm/@xeokit/basictypes/badge)](https://www.jsdelivr.com/package/npm/@xeokit/basictypes)\n *\n * \n *\n * # xeokit Basic Semantic Data Types\n *\n * * Defines numeric constants for a basic set of entity and relationship types.\n * * Use with {@link \"@xeokit/data\" | @xeokit/data} to assign basic types to {@link @xeokit/data!DataObject | DataObjects}\n * and {@link @xeokit/data!Relationship | Relationships} and treat them as elements of a basic entity-relationship graph.\n * * Use with {@link \"@xeokit/treeview\" | @xeokit/treeview} , to configure the appearance and behaviour of\n * {@link @xeokit/treeview!TreeView | TreeViews} for navigating basic element hierachies.\n *\n * ## Installation\n *\n * ````bash\n * npm install @xeokit/basictypes\n * ````\n *\n * @module @xeokit/basictypes\n */\n\n/**\n * A generic entity.\n */\nexport const BasicEntity = 1000;\n\n/**\n * A generic aggregation relationship between two generic entities.\n */\nexport const BasicAggregation = 1001;\n\n\n/**\n * Map of names for all basic entity types.\n */\nexport const typeNames: { [key: number]: string } = {\n [BasicEntity]: \"BasicEntity\",\n [BasicAggregation]: \"BasicAggregation\"\n};\n\n/**\n * Map of type codes for all basic entity type names.\n */\nexport const typeCodes: { [key: string]: number } = {\n \"BasicEntity\": BasicEntity,\n \"BasicAggregation\": BasicAggregation\n};\n", "/**\n * [![npm version](https://badge.fury.io/js/%40xeokit%2Fdatatypes.svg)](https://badge.fury.io/js/%40xeokit%2Fdatatypes)\n * [![](https://data.jsdelivr.com/v1/package/npm/@xeokit/basictypes/badge)](https://www.jsdelivr.com/package/npm/@xeokit/basictypes)\n *\n * \n *\n * # xeokit CityJSON 1.1.3 Data Types\n *\n * * Defines numeric constants for the set of [CityJSON](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#cityjson) 1.1.3 entity and relationship types.\n * * Use with {@link \"@xeokit/data\" | @xeokit/data} to assign CityJSON types to {@link @xeokit/data!DataObject | DataObjects}\n * and {@link @xeokit/data!Relationship | Relationships} and treat them as elements of a basic entity-relationship graph.\n * * Use with {@link \"@xeokit/treeview\" | @xeokit/treeview} , to configure the appearance and behaviour of\n * {@link @xeokit/treeview!TreeView | TreeViews} for navigating CityJSON objects.\n *\n * ## Installation\n *\n * ````bash\n * npm install @xeokit/cityjsontypes1x1x3\n * ````\n *\n * @module @xeokit/cityjsontypes_1_1_3\n */\n\n/**\n * A generic aggregation relationship between two generic entities.\n */\nexport const BasicAggregation = 2001;\n\n/**\n * This CityObject type represents a bridge, which can have attributes such as the length, height, and type of bridge.\n */\nexport const Bridge = 2000;\n\n/**\n * This CityJSON object represents a physical or functional subdivision of a Bridge.\n */\nexport const BridgePart = 2001;\n\n/**\n * This CityJSON type represents a permanent part of a Bridge (inside and/or outside) which does not have the significance of a\n * BridgePart. In contrast to BridgeConstructiveElements, a BridgeInstallation is not essential from a structural point of view.\n * Examples are stairs, antennas or railways.\n */\nexport const BridgeInstallation = 2002;\n\n/**\n * This CityJSON type represents an element of a bridge which is essential from a structural point of view. Examples are pylons,\n * anchorages, slabs, beams.\n */\nexport const BridgeConstructiveElement = 2003;\n\n/**\n * This CityJSON type represents a space within a Bridge or BridgePart intended for human occupancy (e.g. a place of work or\n * recreation) and/or containment (storage) of animals or things. A BridgeRoom is bounded physically and/or virtually (e.g. by\n * ClosureSurfaces or GenericSurfaces).\n */\nexport const BridgeRoom = 2004;\n\n/**\n * This CityJSON type represents equipment for occupant use, usually not fixed to the bridge. [cf. ISO 6707-1]\n */\nexport const BridgeFurniture = 2005;\n\n/**\n * This CityObject type represents a building, which can contain one or more \"BuildingPart\" objects. The Building object can\n * have attributes such as the building height, number of floors, and the year of construction.\n */\nexport const Building = 2006;\n\n/**\n * This CityObject type represents a part of a building, such as a wing or a tower. Building parts can have attributes such\n * as the building part height and the material used in its construction.\n */\nexport const BuildingPart = 2007;\n\n/**\n * This CityJSON type represents a permanent part of a Building (inside and/or outside) which has not the significance of a\n * BuildingPart. Examples are stairs, antennas, balconies or small roofs.\n */\nexport const BuildingInstallation = 2008;\n\n/**\n * This CityJSON type represents an element of a Building which is essential from a structural point of view. Examples are walls,\n * slabs, staircases, beams.\n */\nexport const BuildingConstructiveElement = 2009;\n\n/**\n * This CityJSON type represents equipment for occupant use, usually not fixed to the building. [cf. ISO 6707-1]\n */\nexport const BuildingFurniture = 2010;\n\n/**\n * This CityJSON type represents a horizontal section of a Building. BuildingStorey are not always defined according to the\n * building structure, but can also be defined according to logical considerations.\n */\nexport const BuildingStorey = 2011;\n\n/**\n * This CityJSON type represents a space within a Building or BuildingPart intended for human occupancy (e.g. a place of work or recreation)\n * and/or containment of animals or things. A BuildingRoom is bounded physically and/or virtually (e.g. by ClosureSurfaces or GenericSurfaces).\n */\nexport const BuildingRoom = 2012;\n\n/**\n * This CityJSON type represents a logical subdivision of a Building. BuildingUnits are formed according to some homogeneous\n * property like function, ownership, management, or accessibility. They may be separately sold, rented out, inherited, managed, etc.\n */\nexport const BuildingUnit = 2013;\n\n/**\n * This CityObject type represents outdoor furniture, such as benches, trash cans, and street lamps. CityFurniture objects can\n * have attributes such as the type of furniture and its location.\n */\nexport const CityFurniture = 2014;\n\n/**\n * This CityObject type represents a group of other CityObjects. CityObjectGroup objects can have attributes such as the name\n * of the group and the CityObjects it contains.\n */\nexport const CityObjectGroup = 2015;\n\n/**\n * This CityObject type represents the land use of a particular area, such as residential, commercial, or industrial. LandUse\n * objects can have attributes such as the name of the land use and the area it covers.\n */\nexport const LandUse = 2016;\n\n/**\n * this CityObject type represents an unclassified, generic element of construction.\n */\nexport const OtherConstruction = 2017;\n\n/**\n * This CityObject type represents vegetation, such as trees, bushes, and grass. PlantCover objects can have attributes such\n * as the type of vegetation and its location.\n */\nexport const PlantCover = 2018;\n\n/**\n * This CityObject type represents individual vegetation objects, e.g. trees or bushes.\n */\nexport const SolitaryVegetationObject = 2019;\n\n/**\n * This CityJSON type represents a terrain component as a triangulated irregular network.\n */\nexport const TINRelief = 2020;\n\n\nexport const TransportationSquare = 2021;\n\n/**\n * This CityObject type represents a railway, which can have attributes such as the type of railway and the tracks' location.\n */\nexport const Railway = 2022;\n\n/**\n * This CityObject type represents a road, which can have attributes such as the road type and the road's location.\n */\nexport const Road = 2023;\n\n/**\n * This CityObject type is used to represent any type of underground or underwater structure designed for passage or transportation,\n * such as a subway or water tunnel. It is defined by its geometry and other attributes.\n */\nexport const Tunnel = 2024;\n\n/**\n * This CityObject type represents a physical or functional subdivision of a Tunnel. It would be considered a Tunnel, if it were\n * not part of a collection of other TunnelParts.\n */\nexport const TunnelPart = 2025;\n\n/**\n * This CityObject type represents a permanent part of a Tunnel (inside and/or outside) which does not have the significance of a\n * TunnelPart. In contrast to TunnelConstructiveElement, a TunnelInstallation is not essential from a structural point of view. Examples\n * are stairs, antennas or railings.\n */\nexport const TunnelInstallation = 2026;\n\n/**\n * This CityObject type represents an element of a Tunnel which is essential from a structural point of view. Examples are walls, slabs, beams.\n */\nexport const TunnelConstructiveElement = 2027;\n\n/**\n * This CityObject type represents a hollow space within a Tunnel.\n */\nexport const TunnelHollowSpace = 2028;\n\n/**\n * This CityObject type represents equipment for occupant use, usually not fixed to the tunnel. [cf. ISO 6707-1]\n */\nexport const TunnelFurniture = 2029;\n\n/**\n * This CityObject type represents a body of water, such as a river, lake, or ocean. It is defined by its geometry and other attributes,\n * and can be used to model and analyze hydrological features.\n */\nexport const WaterBody = 2030;\n\n/**\n * This CityObject type is used to represent a natural or man-made channel that carries water, such as a river, canal, or stormwater drain.\n * It is defined by its geometry and other attributes, and can be used to model and analyze hydrological features.\n */\nexport const Waterway = 2031;\n\n/**\n * Map of names for all supported CityObject types.\n */\nexport const typeNames: { [key: number]: string } = {\n [Bridge]: \"Bridge\",\n [BridgePart]: \"BridgePart\",\n [BridgeInstallation]: \"BridgeInstallation\",\n [BridgeConstructiveElement]: \"BridgeConstructiveElement\",\n [BridgeRoom]: \"BridgeRoom\",\n [BridgeFurniture]: \"BridgeFurniture\",\n [Building]: \"Building\",\n [BuildingPart]: \"BuildingPart\",\n [BuildingInstallation]: \"BuildingInstallation\",\n [BuildingConstructiveElement]: \"BuildingConstructiveElement\",\n [BuildingFurniture]: \"BuildingFurniture\",\n [BuildingStorey]: \"BuildingStorey\",\n [BuildingRoom]: \"BuildingRoom\",\n [BuildingUnit]: \"BuildingUnit\",\n [CityFurniture]: \"CityFurniture\",\n [CityObjectGroup]: \"CityObjectGroup\",\n [LandUse]: \"LandUse\",\n [OtherConstruction]: \"OtherConstruction\",\n [PlantCover]: \"PlantCover\",\n [SolitaryVegetationObject]: \"SolitaryVegetationObject\",\n [TINRelief]: \"TINRelief\",\n [TransportationSquare]: \"TransportationSquare\",\n [Railway]: \"Railway\",\n [Road]: \"Road\",\n [Tunnel]: \"Tunnel\",\n [TunnelPart]: \"TunnelPart\",\n [TunnelInstallation]: \"TunnelInstallation\",\n [TunnelConstructiveElement]: \"TunnelInstallation\",\n [TunnelHollowSpace]: \"TunnelHollowSpace\",\n [TunnelFurniture]: \"TunnelFurniture\",\n [WaterBody]: \"WaterBody\",\n [Waterway]: \"Waterway\",\n};\n\n/**\n * Map of type codes for all CityObject type names.\n */\nexport const typeCodes: { [key: string]: number } = {\n \"Bridge\": Bridge,\n \"BridgePart\": BridgePart,\n \"BridgeInstallation\": BridgeInstallation,\n \"BridgeConstructiveElement\": BridgeConstructiveElement,\n \"BridgeRoom\": BridgeRoom,\n \"BridgeFurniture\": BridgeFurniture,\n \"Building\": Building,\n \"BuildingPart\": BuildingPart,\n \"BuildingInstallation\": BuildingInstallation,\n \"BuildingConstructiveElement\": BuildingConstructiveElement,\n \"BuildingFurniture\": BuildingFurniture,\n \"BuildingStorey\": BuildingStorey,\n \"BuildingRoom\": BuildingRoom,\n \"BuildingUnit\": BuildingUnit,\n \"CityFurniture\": CityFurniture,\n \"CityObjectGroup\": CityObjectGroup,\n \"LandUse\": LandUse,\n \"OtherConstruction\": OtherConstruction,\n \"PlantCover\": PlantCover,\n \"SolitaryVegetationObject\": SolitaryVegetationObject,\n \"TINRelief\": TINRelief,\n \"TransportationSquare\": TransportationSquare,\n \"Railway\": Railway,\n \"Road\": Road,\n \"Tunnel\": Tunnel,\n \"TunnelPart\": TunnelPart,\n \"TunnelInstallation\": TunnelInstallation,\n \"TunnelConstructiveElement\": TunnelInstallation,\n \"TunnelHollowSpace\": TunnelHollowSpace,\n \"TunnelFurniture\": TunnelFurniture,\n \"WaterBody\": WaterBody,\n \"Waterway\": Waterway\n};\n", "/**\n * [![npm version](https://badge.fury.io/js/%40xeokit%2Fdatatypes.svg)](https://badge.fury.io/js/%40xeokit%2Fdatatypes)\n * [![](https://data.jsdelivr.com/v1/package/npm/@xeokit/basictypes/badge)](https://www.jsdelivr.com/package/npm/@xeokit/basictypes)\n *\n * \n *\n * # xeokit IFC Data Types\n *\n * * Defines numeric constants for [IFC](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#ifc) entity and relationship types.\n * * Use with {@link \"@xeokit/data\" | @xeokit/data} to assign IFC types to {@link @xeokit/data!DataObject | DataObjects} and\n * {@link @xeokit/data!Relationship | Relationships} and treat them as IFC elements.\n * * Use with {@link \"@xeokit/treeview\" | @xeokit/treeview} to configure the appearance and behaviour of\n * {@link @xeokit/treeview!TreeView | TreeViews} for navigating IFC element hierachies.\n * * Supports IFC versions 2x3 and 4.\n *\n * ## Installation\n *\n * ````bash\n * npm install @xeokit/basictypes\n * ````\n *\n * @module @xeokit/ifcTypes\n */\n\n/**\n * A request is the act or instance of asking for something, such as a request for information, bid submission, or performance of work.\n */\nexport const IfcActionRequest = 1000;\n\n/**\n * The IfcActor defines all actors or human agents involved in a project during its full life cycle. It facilitates the use of person and organization definitions in the resource part of the IFC object model. This includes name, address, telecommunication addresses, and roles.\n */\nexport const IfcActor = 1001;\n\n/**\n * This entity indicates a role which is performed by an actor, either a person, an organization or a person related to an organization.\n */\nexport const IfcActorRole: number = 1002;\n\n/**\n * An actuator is a mechanical device for moving or controlling a mechanism or system. An actuator takes energy, usually created by air, electricity, or liquid, and converts that into some kind of motion.\n */\nexport const IfcActuator = 1003;\n\n/**\n * The distribution control element type IfcActuatorType defines commonly shared information for occurrences of actuators. The set of shared information may include:\n */\nexport const IfcActuatorType = 1004;\n\n/**\n * This abstract entity represents various kinds of postal and telecom addresses.\n */\nexport const IfcAddress = 1005;\n\n/**\n * An advanced B-rep is a boundary representation model in which all faces, edges and vertices are explicitly represented. It is a solid with explicit topology and elementary or free-form geometry. The faces of the B-rep are of type IfcAdvancedFace. An advanced B-rep has to meet the same topological constraints as the manifold solid B-rep.\n */\nexport const IfcAdvancedBrep = 1006;\n\n/**\n * The IfcAdvancedBrepWithVoids is a specialization of an advanced B-rep which contains one or more voids in its interior. The voids are represented as closed shells which are defined so that the shell normal point into the void.\n */\nexport const IfcAdvancedBrepWithVoids = 1007;\n\n/**\n * An advanced face is a specialization of a face surface that has to meet requirements on using particular topological and geometric representation items for the definition of the faces, edges and vertices.\n */\nexport const IfcAdvancedFace = 1008;\n\n/**\n * An air terminal is a terminating or origination point for the transfer of air between distribution system(s) and one or more spaces. It can also be used for the transfer of air between adjacent spaces.\n */\nexport const IfcAirTerminal = 1009;\n\n/**\n * An air terminal box typically participates in an HVAC duct distribution system and is used to control or modulate the amount of air delivered to its downstream ductwork. An air terminal box type is often referred to as an \"air flow regulator\".\n */\nexport const IfcAirTerminalBox = 1010;\n\n/**\n * The flow controller type IfcAirTerminalBoxType defines commonly shared information for occurrences of air terminal boxes. The set of shared information may include:\n */\nexport const IfcAirTerminalBoxType = 1011;\n\n/**\n * The flow terminal type IfcAirTerminalType defines commonly shared information for occurrences of air terminals. The set of shared information may include:\n */\nexport const IfcAirTerminalType = 1012;\n\n/**\n * An air-to-air heat recovery device employs a counter-flow heat exchanger between inbound and outbound air flow. It is typically used to transfer heat from warmer air in one chamber to cooler air in the second chamber (i.e., typically used to recover heat from the conditioned air being exhausted and the outside air being supplied to a building), resulting in energy savings from reduced heating (or cooling) requirements.\n */\nexport const IfcAirToAirHeatRecovery = 1013;\n\n/**\n * The energy conversion device type IfcAirToAirHeatRecoveryType defines commonly shared information for occurrences of air to air heat recoverys. The set of shared information may include:\n */\nexport const IfcAirToAirHeatRecoveryType = 1014;\n\n/**\n * An alarm is a device that signals the existence of a condition or situation that is outside the boundaries of normal expectation or that activates such a device.\n */\nexport const IfcAlarm = 1015;\n\n/**\n * The distribution control element type IfcAlarmType defines commonly shared information for occurrences of alarms. The set of shared information may include:\n */\nexport const IfcAlarmType = 1016;\n\n/**\n * An annotation is an information element within the geometric (and spatial) context of a project, that adds a note or meaning to the objects which constitutes the project model. Annotations include additional points, curves, text, dimensioning, hatching and other forms of graphical notes. It also includes virtual or symbolic representations of additional model components, not representing products or spatial structures, such as event elements, survey points, contour lines or similar.\n */\nexport const IfcAnnotation = 1017;\n\n/**\n * The IfcAnnotationFillArea defines an area by a definite OuterBoundary, that might include InnerBoundaries. The areas defined by the InnerBoundaries are excluded from applying the fill area style. The InnerBoundaries shall not intersect with the OuterBoundary nor being outside of the OuterBoundary.\n */\nexport const IfcAnnotationFillArea = 1018;\n\n/**\n * IfcApplication holds the information about an IFC compliant application developed by an application developer. The IfcApplication utilizes a short identifying name as provided by the application developer.\n */\nexport const IfcApplication = 1019;\n\n/**\n * This entity captures a value driven by a formula, with additional qualifications including unit basis, valid date range, and categorization.\n */\nexport const IfcAppliedValue = 1020;\n\n/**\n * An IfcApproval represents information about approval processes such as for a plan, a design, a proposal, or a change order in a construction or facilities management project. IfcApproval is referenced by IfcRelAssociatesApproval in IfcControlExtension schema, and thereby can be related to all subtypes of IfcRoot. An approval may also be given to resource objects using IfcResourceApprovalRelationship\n */\nexport const IfcApproval = 1021;\n\n/**\n * An IfcApprovalRelationship associates approvals (one relating approval and one or more related approvals), each having different status or level as the approval process or the approved objects evolve.\n */\nexport const IfcApprovalRelationship = 1022;\n\n/**\n * The closed profile IfcArbitraryClosedProfileDef defines an arbitrary two-dimensional profile for the use within the swept surface geometry, the swept area solid or a sectioned spine. It is given by an outer boundary from which the surface or solid can be constructed.\n */\nexport const IfcArbitraryClosedProfileDef = 1023;\n\n/**\n * The open profile IfcArbitraryOpenProfileDef defines an arbitrary two-dimensional open profile for the use within the swept surface geometry. It is given by an open boundary from which the surface can be constructed.\n */\nexport const IfcArbitraryOpenProfileDef = 1024;\n\n/**\n * The IfcArbitraryProfileDefWithVoids defines an arbitrary closed two-dimensional profile with holes. It is given by an outer boundary and inner boundaries. A kdtree3 usage of IfcArbitraryProfileDefWithVoids is as the cross section for the creation of swept surfaces or swept solids.\n */\nexport const IfcArbitraryProfileDefWithVoids = 1025;\n\n/**\n * An asset is a uniquely identifiable grouping of elements acting as a single entity that has a financial value or that can be operated on as a single unit.\n */\nexport const IfcAsset = 1026;\n\n/**\n * IfcAsymmetricIShapeProfileDef defines a section profile that provides the defining parameters of a singly symmetric I-shaped section. Its parameters and orientation relative to the position coordinate system are according to the following illustration. The centre of the position coordinate system is in the profile's centre of the bounding box.\n */\nexport const IfcAsymmetricIShapeProfileDef = 1027;\n\n/**\n * An audio-visual appliance is a device that displays, captures, transmits, or receives audio or video.\n */\nexport const IfcAudioVisualAppliance = 1028;\n\n/**\n * The flow terminal type IfcAudioVisualApplianceType defines commonly shared information for occurrences of audio visual appliances. The set of shared information may include:\n */\nexport const IfcAudioVisualApplianceType = 1029;\n\n/**\n * The IfcAxis1Placement provides location and direction of a single axis.\n */\nexport const IfcAxis1Placement = 1030;\n\n/**\n * The IfcAxis2Placement2D provides location and orientation to place items in a two-dimensional space. The attribute RefDirection defines the x axis, the y axis is derived. If the attribute RefDirection is not given, the placement defaults to P[1] (x-axis) as [1.,0.] and P[2] (y-axis) as [0.,1.].\n */\nexport const IfcAxis2Placement2D = 1031;\n\n/**\n * The IfcAxis2Placement3D provides location and orientations to place items in a three-dimensional space. The attribute Axis defines the Z direction, RefDirection the X direction. The Y direction is derived.\n */\nexport const IfcAxis2Placement3D = 1032;\n\n/**\n * An IfcBeam is a horizontal, or nearly horizontal, structural member that is capable of withstanding load primarily by resisting bending. It represents such a member from an architectural point of view. It is not required to be load bearing.\n */\nexport const IfcBeam = 1033;\n\n/**\n * The standard beam, IfcBeamStandardCase, defines a beam with certain constraints for the provision of material usage, parameters and with certain constraints for the geometric representation. The IfcBeamStandardCase handles all cases of beams, that:\n */\nexport const IfcBeamStandardCase = 1034;\n\n/**\n * The element type IfcBeamType defines commonly shared information for occurrences of beams. The set of shared information may include:\n */\nexport const IfcBeamType = 1035;\n\n/**\n * An IfcBlobTexture provides a 2-dimensional distribution of the lighting parameters of a surface onto which it is mapped. The texture itself is given as a single binary blob, representing the content of a pixel format file. The file format of the pixel file is given by the RasterFormat attribute and allowable formats are guided by where rule SupportedRasterFormat.\n */\nexport const IfcBlobTexture = 1036;\n\n/**\n * The IfcBlock is a Construction Solid SceneGeometry (CSG) 3D primitive. It is defined by a position and a positve distance along the three orthogonal axes. The inherited Position attribute has the IfcAxisPlacement3D type and provides:\n */\nexport const IfcBlock = 1037;\n\n/**\n * A boiler is a closed, pressure-rated vessel in which water or other fluid is heated using an energy source such as natural gas, heating oil, or electricity. The fluid in the vessel is then circulated out of the boiler for use in various processes or heating applications.\n */\nexport const IfcBoiler = 1038;\n\n/**\n * The energy conversion device type IfcBoilerType defines commonly shared information for occurrences of boilers. The set of shared information may include:\n */\nexport const IfcBoilerType = 1039;\n\n/**\n * A clipping result is defined as a special subtype of the general IfcBooleanResult. It constrains the operands and the operator of the Boolean result.\n */\nexport const IfcBooleanClippingResult = 1040;\n\n/**\n * The IfcBooleanResult is the result of applying a Boolean operation to two operands being solids.\n */\nexport const IfcBooleanResult = 1041;\n\n/**\n * The abstract entity IfcBoundaryCondition is the supertype of all boundary conditions that can be applied to structural connection definitions, either directly for the connection (e.g. the joint) or for the relation between a structural member and the connection.\n */\nexport const IfcBoundaryCondition = 1042;\n\n/**\n * An IfcBoundaryCurve defines a curve acting as the boundary of a surface.\n */\nexport const IfcBoundaryCurve = 1043;\n\n/**\n * Describes linearly elastic support conditions or connection conditions.\n */\nexport const IfcBoundaryEdgeCondition = 1044;\n\n/**\n * Describes linearly elastic support conditions or connection conditions.\n */\nexport const IfcBoundaryFaceCondition = 1045;\n\n/**\n * Describes linearly elastic support conditions or connection conditions.\n */\nexport const IfcBoundaryNodeCondition = 1046;\n\n/**\n * Describes linearly elastic support conditions or connection conditions, including linearly elastic warping restraints.\n */\nexport const IfcBoundaryNodeConditionWarping = 1047;\n\n/**\n * An IfcBoundedCurve is a curve of finite length.\n */\nexport const IfcBoundedCurve = 1048;\n\n/**\n * An IfcBoundedSurface is a surface of finite area.\n */\nexport const IfcBoundedSurface = 1049;\n\n/**\n * The IfcBoundingBox defines an orthogonal box oriented parallel to the axes of the object coordinate system in which it is defined. It is defined by a Corner being a three-dimensional Cartesian point and three length measures defining the X, Y and Z parameters of the box in the direction of the positive axes.\n */\nexport const IfcBoundingBox = 1050;\n\n/**\n * The IfcBoxedHalfSpace is used (as its supertype IfcHalfSpaceSolid) only within Boolean operations. It divides the domain into exactly two subsets, where the domain in question is that of the attribute Enclosure.\n */\nexport const IfcBoxedHalfSpace = 1051;\n\n/**\n * The IfcBSplineCurve is a spline curve parameterized by spline functions.\n */\nexport const IfcBSplineCurve = 1052;\n\n/**\n * The IfcBSplineCurveWithKnots is a spline curve parameterized by spline functions for which the knot values are explicitly given.\n */\nexport const IfcBSplineCurveWithKnots = 1053;\n\n/**\n * The IfcBSplineSurface is a general form of rational or polynomial parametric surface.\n */\nexport const IfcBSplineSurface = 1054;\n\n/**\n * The IfcBSplineSurfaceWithKnots is a general form of rational or polynomial parametric surface in which the knot values are explicitly given.\n */\nexport const IfcBSplineSurfaceWithKnots = 1055;\n\n/**\n * A building represents a structure that provides shelter for its occupants or contents and stands in one place. The building is also used to provide a basic element within the spatial structure hierarchy for the components of a building project (together with site, storey, and space).\n */\nexport const IfcBuilding = 1056;\n\n/**\n * IfcBuildingElementPart represents major components as subordinate parts of a building element. Typical usage examples include precast concrete sandwich walls, where the layers may have different geometry representations. In this case the layered material representation does not sufficiently describe the element. Each layer is represented by an own instance of the IfcBuildingElementPart with its own geometry description.\n */\nexport const IfcBuildingElementPart = 1057;\n\n/**\n * The building element part type defines lists of commonly shared property set definitions and representation maps of parts of a building element.\n */\nexport const IfcBuildingElementPartType = 1058;\n\n/**\n * The IfcBuildingElementProxy is a proxy definition that provides the same functionality as subtypes of IfcBuildingElement, but without having a predefined meaning of the special type of building element, it represents.\n */\nexport const IfcBuildingElementProxy = 1059;\n\n/**\n * IfcBuildingElementProxyType defines a list of commonly shared property set definitions of a building element proxy and an optional set of product representations. It is used to define an element specification (i.e. the specific product information, that is kdtree3 to all occurrences of that product type).\n */\nexport const IfcBuildingElementProxyType = 1060;\n\n/**\n * The building storey has an elevation and typically represents a (nearly) horizontal aggregation of spaces that are vertically bound.\n */\nexport const IfcBuildingStorey = 1061;\n\n/**\n * A building system is a group by which building elements are grouped according to a kdtree3 function within the facility.\n */\nexport const IfcBuildingSystem = 1062;\n\n/**\n * A burner is a device that converts fuel into heat through combustion. It includes gas, oil, and wood burners.\n */\nexport const IfcBurner = 1063;\n\n/**\n * The energy conversion device type IfcBurnerType defines commonly shared information for occurrences of burners. The set of shared information may include:\n */\nexport const IfcBurnerType = 1064;\n\n/**\n * A cable carrier fitting is a fitting that is placed at junction or transition in a cable carrier system.\n */\nexport const IfcCableCarrierFitting = 1065;\n\n/**\n * The flow fitting type IfcCableCarrierFittingType defines commonly shared information for occurrences of cable carrier fittings. The set of shared information may include:\n */\nexport const IfcCableCarrierFittingType = 1066;\n\n/**\n * A cable carrier segment is a flow segment that is specifically used to carry and support cabling.\n */\nexport const IfcCableCarrierSegment = 1067;\n\n/**\n * The flow segment type IfcCableCarrierSegmentType defines commonly shared information for occurrences of cable carrier segments. The set of shared information may include:\n */\nexport const IfcCableCarrierSegmentType = 1068;\n\n/**\n * A cable fitting is a fitting that is placed at a junction, transition or termination in a cable system.\n */\nexport const IfcCableFitting = 1069;\n\n/**\n * The flow fitting type IfcCableFittingType defines commonly shared information for occurrences of cable fittings. The set of shared information may include:\n */\nexport const IfcCableFittingType = 1070;\n\n/**\n * A cable segment is a flow segment used to carry electrical power, data, or telecommunications signals.\n */\nexport const IfcCableSegment = 1071;\n\n/**\n * The flow segment type IfcCableSegmentType defines commonly shared information for occurrences of cable segments. The set of shared information may include:\n */\nexport const IfcCableSegmentType = 1072;\n\n/**\n * An IfcCartesianPoint defines a point by coordinates in an orthogonal, right-handed Cartesian coordinate system. For the purpose of this specification only two and three dimensional Cartesian points are used.\n */\nexport const IfcCartesianPoint = 1073;\n\n/**\n * The IfcCartesianPointList is the abstract supertype of list of points.\n */\nexport const IfcCartesianPointList = 1074;\n\n/**\n * The IfcCartesianPointList2D defines an ordered collection of two-dimentional Cartesian points. Each Cartesian point is provided as an two-dimensional point by a fixed list of two coordinates. The attribute CoordList is a two-dimensional list, where\n */\nexport const IfcCartesianPointList2D = 1075;\n\n/**\n * The IfcCartesianPointList3D defines an ordered collection of three-dimentional Cartesian points. Each Cartesian point is provided as an three-dimensional point by a fixed list of three coordinates. The attribute CoordList is a two-dimensional list, where\n */\nexport const IfcCartesianPointList3D = 1076;\n\n/**\n * An IfcCartesianTransformationOperator defines an abstract supertype of different kinds of geometric transformations.\n */\nexport const IfcCartesianTransformationOperator = 1077;\n\n/**\n * An IfcCartesianTransformationOperator2D defines a geometric transformation in two-dimensional space.\n */\nexport const IfcCartesianTransformationOperator2D = 1078;\n\n/**\n * A Cartesian transformation operator 2d non uniform defines a geometric transformation in two-dimensional space composed of translation, rotation, mirroring and non uniform scaling. Non uniform scaling is given by two different scaling factors:\n */\nexport const IfcCartesianTransformationOperator2DnonUniform = 1079;\n\n/**\n * An IfcCartesianTransformationOperator defines a geometric transformation in three-dimensional space.\n */\nexport const IfcCartesianTransformationOperator3D = 1080;\n\n/**\n * A Cartesian transformation operator 3d non uniform defines a geometric transformation in three-dimensional space composed of translation, rotation, mirroring and non uniform scaling. Non uniform scaling is given by three different scaling factors:\n */\nexport const IfcCartesianTransformationOperator3DnonUniform = 1081;\n\n/**\n * The profile IfcCenterLineProfileDef defines an arbitrary two-dimensional open, not self intersecting profile for the use within the swept solid geometry. It is given by an area defined by applying a constant thickness to a centerline, generating an area from which the solid can be constructed.\n */\nexport const IfcCenterLineProfileDef = 1082;\n\n/**\n * A chiller is a device used to remove heat from a liquid via a vapor-compression or absorption refrigeration cycle to cool a fluid, typically water or a mixture of water and glycol. The chilled fluid is then used to cool and dehumidify air in a building.\n */\nexport const IfcChiller = 1083;\n\n/**\n * The energy conversion device type IfcChillerType defines commonly shared information for occurrences of chillers. The set of shared information may include:\n */\nexport const IfcChillerType = 1084;\n\n/**\n * Chimneys are typically vertical, or as near as vertical, parts of the construction of a building and part of the building fabric. Often constructed by pre-cast or insitu concrete, today seldom by bricks.\n */\nexport const IfcChimney = 1085;\n\n/**\n * The building element type IfcChimneyType defines commonly shared information for occurrences of chimneys. The set of shared information may include:\n */\nexport const IfcChimneyType = 1086;\n\n/**\n * An IfcCircle is a curve consisting of a set of points having equal distance from the center.\n */\nexport const IfcCircle = 1087;\n\n/**\n * IfcCircleHollowProfileDef defines a section profile that provides the defining parameters of a circular hollow section (tube) to be used by the swept area solid. Its parameters and orientation relative to the position coordinate system are according to the following illustration.The centre of the position coordinate system is in the profile's centre of the bounding box (for symmetric profiles identical with the centre of gravity).\n */\nexport const IfcCircleHollowProfileDef = 1088;\n\n/**\n * IfcCircleProfileDef defines a circle as the profile definition used by the swept surface geometry or by the swept area solid. It is given by its Radius attribute and placed within the 2D position coordinate system, established by the Position attribute.\n */\nexport const IfcCircleProfileDef = 1089;\n\n/**\n * An IfcCivilElement is a generalization of all elements within a civil engineering works that cannot be represented as BuildingElements, DistributionElements or GeographicElements. Depending on the context of the construction project, included building work, such as buildings or factories, are represented as a collection of IfcBuildingElement's, distribution systems, such as piping or drainage, are represented as a collection of IfcDistributionElement's, and other geographic elements, such as trees, light posts, traffic signs etc. are represented as IfcGeographicElement's.\n */\nexport const IfcCivilElement = 1090;\n\n/**\n * An IfcCivilElementType is used to define an element specification of an element used within civil engineering works. Civil element types include for different types of element that may be used to represent information for construction works external to a building. IfcCivilElementType's may include:\n */\nexport const IfcCivilElementType = 1091;\n\n/**\n * An IfcClassification is used for the arrangement of objects into a class or category according to a kdtree3 purpose or their possession of kdtree3 characteristics. A classification in the sense of IfcClassification is taxonomy, or taxonomic scheme, arranged in a hierarchical structure. A category of objects relates to other categories in a generalization-specialization relationship. Therefore the classification items in an classification are organized in a tree structure.\n */\nexport const IfcClassification = 1092;\n\n/**\n * An IfcClassificationReference is a reference into a classification system or source (see IfcClassification) for a specific classification key (or notation).\n */\nexport const IfcClassificationReference = 1093;\n\n/**\n *\n */\nexport const IfcClosedShell = 1094;\n\n/**\n * A coil is a device used to provide heat transfer between non-mixing media. A kdtree3 example is a cooling coil, which utilizes a finned coil in which circulates chilled water, antifreeze, or refrigerant that is used to remove heat from air moving across the surface of the coil. A coil may be used either for heating or cooling purposes by placing a series of tubes (the coil) carrying a heating or cooling fluid into an airstream. The coil may be constructed from tubes bundled in a serpentine form or from finned tubes that give a extended heat transfer surface.\n */\nexport const IfcCoil = 1095;\n\n/**\n * The energy conversion device type IfcCoilType defines commonly shared information for occurrences of coils. The set of shared information may include:\n */\nexport const IfcCoilType = 1096;\n\n/**\n *\n */\nexport const IfcColourRgb = 1097;\n\n/**\n * The IfcColourRgbList defines an ordered collection of RGB colour values. Each colour value is a fixed list of three colour components (red, green, blue). The attribute ColourList is a two-dimensional list, where:\n */\nexport const IfcColourRgbList = 1098;\n\n/**\n *\n */\nexport const IfcColourSpecification = 1099;\n\n/**\n * \n *\n * # xeokit CityJSON Importer\n *\n * ---\n *\n * ### *Import 3D urban models from CityJSON format*\n *\n * ---\n *\n * The xeokit SDK allows us to import 3D urban models from [CityJSON](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#cityjson), a JSON-based\n * file format specifically designed for lightweight, user-friendly, and human-readable\n * storage and sharing of 3D models. CityJSON can represent both basic geometric shapes and intricate objects such as\n * buildings and trees, offering a simple alternative to other formats like CityGML.\n *\n * To import a CityJSON model into xeokit, simply use the {@link @xeokit/cityjson!loadCityJSON | loadCityJSON} function, which will load\n * the file into both a {@link @xeokit/scene!SceneModel | SceneModel} and a {@link @xeokit/data!DataModel | DataModel}.\n *\n *
\n *\n * [![](https://mermaid.ink/img/pako:eNqNUsFuwjAM_ZXKp00CabtWqIeN0wQD0WsupnFHpjSpnORQIf59SUMHCImtl9TPznvPjo_QWElQQqPRuaXCL8ZOGGGkYmq8sqZY7VI85ou6IUPreEMXR2GK-CmZT7v_jvUuBw0TetqM0NNzxvZBaTkFkpxnO6TwlNgn_iV6HOkfsfdse2I_1PRIL2M70pi6cAfV32a2F5Z_WcwGVxblu_LDR7353GKclZsGsVj0KSZPXFUZQmYc3kLbEmfA_Y7vrDG1e6OhrzQu7G0w43sk8rH43oqAFwHzeSXgVUB9pfVH6fJi41p7St_fhhl0xB0qGTdndCjAH6gjAWX8ldRi0F5AdBpLMXhbD6aB0nOgGYQ-9k3nXYOyRe0iSlJ5y-vzNqbj9AOT7uJt?type=png)](https://mermaid.live/edit#pako:eNqNUsFuwjAM_ZXKp00CabtWqIeN0wQD0WsupnFHpjSpnORQIf59SUMHCImtl9TPznvPjo_QWElQQqPRuaXCL8ZOGGGkYmq8sqZY7VI85ou6IUPreEMXR2GK-CmZT7v_jvUuBw0TetqM0NNzxvZBaTkFkpxnO6TwlNgn_iV6HOkfsfdse2I_1PRIL2M70pi6cAfV32a2F5Z_WcwGVxblu_LDR7353GKclZsGsVj0KSZPXFUZQmYc3kLbEmfA_Y7vrDG1e6OhrzQu7G0w43sk8rH43oqAFwHzeSXgVUB9pfVH6fJi41p7St_fhhl0xB0qGTdndCjAH6gjAWX8ldRi0F5AdBpLMXhbD6aB0nOgGYQ-9k3nXYOyRe0iSlJ5y-vzNqbj9AOT7uJt)\n *\n *
\n *\n * ## Installation\n *\n * ````bash\n * npm install @xeokit/cityjson\n * ````\n *\n * ## Usage\n *\n * In the example below, we will create a {@link @xeokit/viewer!Viewer | Viewer} with\n * a {@link @xeokit/webglrenderer!WebGLRenderer | WebGLRenderer} and a {@link @xeokit/scene!Scene | Scene}, which holds model geometry and materials.\n *\n * We'll also create a {@link @xeokit/data!Data | Data}, which will hold semantic data for our model.\n *\n * On our Viewer, we will create a single {@link @xeokit/viewer!View | View} to render it to a canvas element on the page. We will\n * also attach a {@link @xeokit/cameracontrol!CameraControl | CameraControl} to our View, allowing us to control its camera with mouse and touch input.\n *\n * Within the Scene, we will create a {@link @xeokit/scene!SceneModel | SceneModel} to hold model geometry and materials. Within Data, we will\n * create a {@link @xeokit/data!DataModel | DataModel} to hold semantic IFC data, which includes IFC elements and property sets.\n *\n * We will then use\n * {@link @xeokit/cityjson!loadCityJSON | loadCityJSON} to load a CityJSON file into our SceneModel and DataModel.\n *\n * The {@link @xeokit/core!SDKError | SDKError} class will be used to handle any errors that may occur during this process.\n *\n * * [Run this example]()\n *\n * ````javascript\n * import {SDKError} from \"@xeokit/core\";\n * import {Scene} from \"@xeokit/scene\";\n * import {WebGLRenderer} from \"@xeokit/webglrenderer\";\n * import {Viewer} from \"@xeokit/viewer\";\n * import {CameraControl} from \"@xeokit/cameracontrol\";\n * import {loadCityJSON} from \"@xeokit/cityjson\";\n *\n * const scene = new Scene();\n * const data = new Data();\n *\n * const renderer = new WebGLRenderer({});\n *\n * const viewer = new Viewer({\n * id: \"myViewer\",\n * scene,\n * renderer\n * });\n *\n * const view = viewer.createView({\n * id: \"myView\",\n * elementId: \"myCanvas\" // << Ensure that this HTMLElement exists in the page\n * });\n *\n * if (view instanceof SDKError) {\n * console.error(`Error creating View: ${view.message}`);\n *\n * } else {\n *\n * view.camera.eye = [1841982.93, 10.03, -5173286.74];\n * view.camera.look = [1842009.49, 9.68, -5173295.85];\n * view.camera.up = [0.0, 1.0, 0.0];\n *\n * new CameraControl(view, {});\n *\n * const sceneModel = scene.createModel({\n * id: \"myModel\"\n * });\n *\n * const dataModel = data.createModel({\n * id: \"myModel\"\n * });\n *\n * if (sceneModel instanceof SDKError) {\n * console.error(`Error creating SceneModel: ${sceneModel.message}`);\n *\n * } else if (dataModel instanceof SDKError) {\n * console.error(`Error creating DataModel: ${dataModel.message}`);\n *\n * } else {\n *\n * fetch(\"model.bim\").then(response => {\n *\n * response.json().then(fileData => {\n *\n * loadCityJSON({\n * fileData,\n * sceneModel,\n * dataModel\n * }).then(() => {\n *\n * sceneModel.build();\n * dataModel.build();\n *\n * }).catch(sdkError => {\n * sceneModel.destroy();\n * dataModel.destroy();\n * console.error(`Error loading CityJSON: ${sdkError.message}`);\n * });\n *\n * }).catch(message => {\n * console.error(`Error creating ArrayBuffer: ${message}`);\n * });\n *\n * }).catch(message => {\n * console.error(`Error fetching model: ${message}`);\n * });\n * }\n * }\n * ````\n *\n * @module @xeokit/cityjson\n */\nexport * from \"./loadCityJSON\";\n", "// Original algorithm by https://github.com/mapbox/earcut\n//\n// Ported to TypeScript by Ikaros Kappler\n// @date 2020-12-08\n\ninterface IVertex {\n x: number;\n y: number;\n};\n\n\nexport const earcut = (() => {\n\n /**\n * Nodes of a linked list, each node representing a vertex of a ring (a polygon).\n */\n class Node implements IVertex {\n i:number;\n x:number;\n y:number;\n prev:Node|undefined;\n next:Node|undefined;\n z:any;\n prevZ:any;\n nextZ:any;\n steiner:boolean;\n\n constructor( i:number, x:number, y:number ) {\n // vertex index in coordinates array\n this.i = i;\n\n // vertex coordinates\n this.x = x;\n this.y = y;\n\n // previous and next vertex nodes in a polygon ring\n this.prev = null;\n this.next = null;\n\n // z-order curve value\n this.z = null;\n\n // previous and next nodes in z-order\n this.prevZ = null;\n this.nextZ = null;\n\n // indicates whether this is a steiner point\n this.steiner = false;\n }\n };\n\n const earcut = (data:Array, holeIndices?:Array, dim:number=2) : Array => {\n\n dim = dim || 2;\n\n const hasHoles : boolean = holeIndices && holeIndices.length > 0;\n const outerLen : number = hasHoles ? holeIndices[0] * dim : data.length;\n let outerNode : Node = linkedList(data, 0, outerLen, dim, true);\n const triangles : Array = []; // [t0a, t0b, t0c, t1a, t2a, t3a, ... ]\n\n if (!outerNode || outerNode.next === outerNode.prev) return triangles;\n\n let minX : number;\n let minY : number;\n let maxX : number;\n let maxY : number;\n let x : number;\n let y : number;\n let invSize : number;\n\n if (hasHoles) {\n outerNode = eliminateHoles(data, holeIndices, outerNode, dim);\n }\n\n // if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox\n // TODO: use Bounds class for calculation?\n if (data.length > 80 * dim) {\n minX = maxX = data[0];\n minY = maxY = data[1];\n\n for (var i = dim; i < outerLen; i += dim) {\n x = data[i];\n y = data[i + 1];\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n }\n\n // minX, minY and invSize are later used to transform coords into integers for z-order calculation\n invSize = Math.max(maxX - minX, maxY - minY);\n invSize = invSize !== 0 ? 1 / invSize : 0;\n }\n\n earcutLinked(outerNode, triangles, dim, minX, minY, invSize);\n\n return triangles;\n }\n\n // create a circular doubly linked list from polygon points in the specified winding order\n const linkedList = (\n data : Array,\n start:number,\n end:number,\n dim:number,\n clockwise:boolean\n ) : Node|undefined => {\n var i : number;\n var last : Node|undefined;\n\n if (clockwise === (signedArea(data, start, end, dim) > 0)) {\n for (i = start; i < end; i += dim) {\n last = insertNode(i, data[i], data[i + 1], last);\n }\n } else {\n for (i = end - dim; i >= start; i -= dim) {\n last = insertNode(i, data[i], data[i + 1], last);\n }\n }\n\n if (last && equals(last, last.next)) {\n removeNode(last);\n last = last.next;\n }\n\n return last;\n }\n\n // eliminate colinear or duplicate points\n const filterPoints = (start : Node|undefined, end? : Node) : Node => {\n if (!start) return start;\n if (!end) end = start;\n\n // Remember starting node\n let p : Node = start;\n let again : boolean = false;\n do {\n // TODO: move into 'else' branch?\n again = false;\n\n if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {\n removeNode(p);\n p = end = p.prev;\n if (p === p.next) break;\n again = true;\n\n } else {\n p = p.next;\n }\n } while (again || p !== end);\n\n return end;\n }\n\n // main ear slicing loop which triangulates a polygon (given as a linked list)\n const earcutLinked = ( ear:Node,\n triangles:Array,\n dim:number,\n minX:number,\n minY:number,\n invSize:number,\n pass?:number ) : void => {\n if (!ear) return;\n\n // interlink polygon nodes in z-order\n if (!pass && invSize) {\n indexCurve( ear, minX, minY, invSize );\n }\n\n let stop : Node = ear;\n let prev : Node;\n let next : Node;\n\n // iterate through ears, slicing them one by one\n while (ear.prev !== ear.next) {\n prev = ear.prev;\n next = ear.next;\n\n if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) {\n // cut off the triangle\n triangles.push(prev.i / dim);\n triangles.push(ear.i / dim);\n triangles.push(next.i / dim);\n\n removeNode(ear);\n\n // skipping the next vertex leads to less sliver triangles\n ear = next.next;\n stop = next.next;\n\n continue;\n }\n\n ear = next;\n\n // if we looped through the whole remaining polygon and can't find any more ears\n if (ear === stop) {\n // try filtering points and slicing again\n if (!pass) {\n earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1);\n\n // if this didn't work, try curing all small self-intersections locally\n } else if (pass === 1) {\n ear = cureLocalIntersections(filterPoints(ear), triangles, dim);\n earcutLinked(ear, triangles, dim, minX, minY, invSize, 2);\n\n // as a last resort, try splitting the remaining polygon into two\n } else if (pass === 2) {\n splitEarcut(ear, triangles, dim, minX, minY, invSize);\n }\n\n break;\n }\n }\n }; // END earcutLinked\n\n // check whether a polygon node forms a valid ear with adjacent nodes\n const isEar = (ear : Node) : boolean => {\n const a : Node = ear.prev;\n const b : Node = ear;\n const c : Node = ear.next;\n\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n // now make sure we don't have other points inside the potential ear\n var p = ear.next.next;\n\n while (p !== ear.prev) {\n if (pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0) return false;\n p = p.next;\n }\n\n return true;\n }\n\n const isEarHashed = (ear:Node, minX:number, minY:number, invSize:number) : boolean => {\n var a : Node = ear.prev;\n var b : Node = ear;\n var c : Node = ear.next;\n\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n // triangle bbox; min & max are calculated like this for speed\n // TODO: use Triangle.bounds\n var minTX = a.x < b.x ? (a.x < c.x ? a.x : c.x) : (b.x < c.x ? b.x : c.x),\n minTY = a.y < b.y ? (a.y < c.y ? a.y : c.y) : (b.y < c.y ? b.y : c.y),\n maxTX = a.x > b.x ? (a.x > c.x ? a.x : c.x) : (b.x > c.x ? b.x : c.x),\n maxTY = a.y > b.y ? (a.y > c.y ? a.y : c.y) : (b.y > c.y ? b.y : c.y);\n\n // z-order range for the current triangle bbox;\n var minZ = zOrder(minTX, minTY, minX, minY, invSize),\n maxZ = zOrder(maxTX, maxTY, minX, minY, invSize);\n\n var p = ear.prevZ,\n n = ear.nextZ;\n\n // look for points inside the triangle in both directions\n while (p && p.z >= minZ && n && n.z <= maxZ) {\n if (p !== ear.prev && p !== ear.next &&\n // TODO: use Triangle.utils.pointIsInTriangle\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n\n if (n !== ear.prev && n !== ear.next &&\n // TODO: use Triangle.utils.pointIsInTriangle\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) &&\n area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n\n // look for remaining points in decreasing z-order\n while (p && p.z >= minZ) {\n if (p !== ear.prev && p !== ear.next &&\n // TODO: use Triangle.utils.pointIsInTriangle\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n }\n\n // look for remaining points in increasing z-order\n while (n && n.z <= maxZ) {\n if (n !== ear.prev && n !== ear.next &&\n // TODO: use Triangle.utils.pointIsInTriangle\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) &&\n area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n\n return true;\n }\n\n // go through all polygon nodes and cure small local self-intersections\n const cureLocalIntersections = ( start : Node, triangles : Array, dim : number ) : Node => {\n let p : Node = start;\n do {\n let a : Node = p.prev;\n let b : Node = p.next.next;\n\n if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {\n\n triangles.push(a.i / dim);\n triangles.push(p.i / dim);\n triangles.push(b.i / dim);\n\n // remove two nodes involved\n removeNode(p);\n removeNode(p.next);\n\n p = start = b;\n }\n p = p.next;\n } while (p !== start);\n\n return filterPoints(p);\n }\n\n // try splitting polygon into two and triangulate them independently\n const splitEarcut = ( start: Node, triangles, dim, minX, minY, invSize) : void => {\n // look for a valid diagonal that divides the polygon into two\n let a : Node = start;\n do {\n let b : Node = a.next.next;\n while (b !== a.prev) {\n if (a.i !== b.i && isValidDiagonal(a, b)) {\n // split the polygon in two by the diagonal\n var c = splitPolygon(a, b);\n\n // filter colinear points around the cuts\n a = filterPoints(a, a.next);\n c = filterPoints(c, c.next);\n\n // run earcut on each half\n earcutLinked(a, triangles, dim, minX, minY, invSize);\n earcutLinked(c, triangles, dim, minX, minY, invSize);\n return;\n }\n b = b.next;\n }\n a = a.next;\n } while (a !== start);\n }\n\n // link every hole into the outer loop, producing a single-ring polygon without holes\n const eliminateHoles = ( data:Array,\n holeIndices:Array,\n outerNode:Node,\n dim:number ) : Node => {\n const queue : Array = [];\n let i : number;\n const len = holeIndices.length;\n let start : number;\n let end : number;\n let list : Node;\n\n for (i = 0; i < len; i++) {\n start = holeIndices[i] * dim;\n end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n list = linkedList(data, start, end, dim, false);\n if (list === list.next) list.steiner = true;\n queue.push(getLeftmost(list));\n }\n\n queue.sort(compareX);\n\n // process holes from left to right\n for (i = 0; i < queue.length; i++) {\n eliminateHole(queue[i], outerNode);\n outerNode = filterPoints(outerNode, outerNode.next);\n }\n\n return outerNode;\n }\n\n const compareX = ( a : IVertex, b : IVertex ) : number => {\n return a.x - b.x;\n };\n\n // find a bridge between vertices that connects hole with an outer ring and and link it\n const eliminateHole = ( hole : Node, outerNode : Node ) : Node => {\n var bridge = findHoleBridge(hole, outerNode);\n if (!bridge) {\n return outerNode;\n }\n\n var bridgeReverse = splitPolygon(bridge, hole);\n\n // filter collinear points around the cuts\n var filteredBridge = filterPoints(bridge, bridge.next);\n filterPoints(bridgeReverse, bridgeReverse.next);\n\n // Check if input node was removed by the filtering\n return outerNode === bridge ? filteredBridge : outerNode;\n // }\n\n }\n\n // David Eberly's algorithm for finding a bridge between hole and outer polygon\n const findHoleBridge = ( hole : Node, outerNode : Node ) : Node => {\n let p : Node = outerNode;\n let hx : number = hole.x;\n let hy : number = hole.y;\n let qx : number = -Infinity;\n let m : Node;\n\n // find a segment intersected by a ray from the hole's leftmost point to the left;\n // segment's endpoint with lesser x will be potential connection point\n do {\n if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) {\n var x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);\n if (x <= hx && x > qx) {\n qx = x;\n if (x === hx) {\n if (hy === p.y) return p;\n if (hy === p.next.y) return p.next;\n }\n m = p.x < p.next.x ? p : p.next;\n }\n }\n p = p.next;\n } while (p !== outerNode);\n\n if (!m) {\n return null;\n }\n\n if (hx === qx) {\n return m; // hole touches outer segment; pick leftmost endpoint\n }\n\n // look for points inside the triangle of hole point, segment intersection and endpoint;\n // if there are no points found, we have a valid connection;\n // otherwise choose the point of the minimum angle with the ray as connection point\n\n let stop : Node = m;\n let mx : number = m.x;\n let my : number = m.y;\n let tanMin : number = Infinity;\n let tan : number;\n\n p = m;\n\n do {\n if (hx >= p.x && p.x >= mx && hx !== p.x &&\n pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {\n\n tan = Math.abs(hy - p.y) / (hx - p.x); // tangential\n\n if (locallyInside(p, hole) &&\n (tan < tanMin || (tan === tanMin && (p.x > m.x || (p.x === m.x && sectorContainsSector(m, p)))))) {\n m = p;\n tanMin = tan;\n }\n }\n\n p = p.next;\n } while (p !== stop);\n\n return m;\n };\n\n // whether sector in vertex m contains sector in vertex p in the same coordinates\n const sectorContainsSector = ( m : Node, p : Node) : boolean => {\n return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0;\n };\n\n // interlink polygon nodes in z-order\n const indexCurve = ( start : Node, minX : number, minY : number, invSize : number ) : void => {\n var p = start;\n do {\n if (p.z === null) p.z = zOrder(p.x, p.y, minX, minY, invSize);\n p.prevZ = p.prev;\n p.nextZ = p.next;\n p = p.next;\n } while (p !== start);\n\n p.prevZ.nextZ = null;\n p.prevZ = null;\n\n sortLinked(p);\n }\n\n // Simon Tatham's linked list merge sort algorithm\n // http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html\n const sortLinked = ( list : Node ) : Node => {\n let i : number;\n let p : Node;\n let q : Node;\n let e : Node;\n let tail : Node;\n let numMerges : number;\n let pSize : number;\n let qSize : number;\n let inSize : number = 1;\n\n do {\n p = list;\n list = null;\n tail = null;\n numMerges = 0;\n\n while (p) {\n numMerges++;\n q = p;\n pSize = 0;\n for (i = 0; i < inSize; i++) {\n pSize++;\n q = q.nextZ;\n if (!q) break;\n }\n qSize = inSize;\n\n while (pSize > 0 || (qSize > 0 && q)) {\n if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) {\n e = p;\n p = p.nextZ;\n pSize--;\n } else {\n e = q;\n q = q.nextZ;\n qSize--;\n }\n\n if (tail) tail.nextZ = e;\n else list = e;\n\n e.prevZ = tail;\n tail = e;\n }\n\n p = q;\n }\n\n tail.nextZ = null;\n inSize *= 2;\n\n } while (numMerges > 1);\n\n return list;\n }\n\n // z-order of a point given coords and inverse of the longer side of data bbox\n const zOrder = ( x:number, y:number, minX:number, minY:number, invSize:number) : number => {\n // coords are transformed into non-negative 15-bit integer range\n x = 32767 * (x - minX) * invSize;\n y = 32767 * (y - minY) * invSize;\n\n x = (x | (x << 8)) & 0x00FF00FF;\n x = (x | (x << 4)) & 0x0F0F0F0F;\n x = (x | (x << 2)) & 0x33333333;\n x = (x | (x << 1)) & 0x55555555;\n\n y = (y | (y << 8)) & 0x00FF00FF;\n y = (y | (y << 4)) & 0x0F0F0F0F;\n y = (y | (y << 2)) & 0x33333333;\n y = (y | (y << 1)) & 0x55555555;\n\n return x | (y << 1);\n }\n\n // find the leftmost node of a polygon ring\n const getLeftmost = ( start: Node ) : Node => {\n let p : Node = start;\n let leftmost : Node = start;\n do {\n if (p.x < leftmost.x || (p.x === leftmost.x && p.y < leftmost.y)) {\n leftmost = p;\n }\n p = p.next;\n } while (p !== start);\n return leftmost;\n }\n\n // check if a point lies within a convex triangle\n // TODO: use Triangle.containsPoint\n const pointInTriangle = ( ax : number, ay : number,\n bx : number, by : number,\n cx : number, cy : number,\n px : number, py : number) : boolean => {\n return (cx - px) * (ay - py) - (ax - px) * (cy - py) >= 0 &&\n (ax - px) * (by - py) - (bx - px) * (ay - py) >= 0 &&\n (bx - px) * (cy - py) - (cx - px) * (by - py) >= 0;\n }\n\n // check if a diagonal between two polygon nodes is valid (lies in polygon interior)\n const isValidDiagonal = ( a : Node, b : Node ) : boolean => {\n return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && // dones't intersect other edges\n (locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b) && // locally visible\n (area(a.prev, a, b.prev) != 0 || area(a, b.prev, b)) != 0 || // does not create opposite-facing sectors\n equals(a, b) && area(a.prev, a, a.next) > 0 && area(b.prev, b, b.next) > 0); // special zero-length case\n }\n\n // signed area of a triangle\n const area = (p:IVertex, q:IVertex, r:IVertex) : number => {\n return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);\n };\n\n // check if two points are equal\n // TODO: as member function of vertex\n const equals = (p1:IVertex, p2:IVertex) : boolean => {\n return p1.x === p2.x && p1.y === p2.y;\n };\n\n // check if two segments intersect\n // TODO: use Line.intersects\n const intersects = ( p1:IVertex, q1:IVertex, p2:IVertex, q2:IVertex ) : boolean => {\n var o1 = sign(area(p1, q1, p2));\n var o2 = sign(area(p1, q1, q2));\n var o3 = sign(area(p2, q2, p1));\n var o4 = sign(area(p2, q2, q1));\n\n if (o1 !== o2 && o3 !== o4) return true; // general case\n\n if (o1 === 0 && onSegment(p1, p2, q1)) return true; // p1, q1 and p2 are collinear and p2 lies on p1q1\n if (o2 === 0 && onSegment(p1, q2, q1)) return true; // p1, q1 and q2 are collinear and q2 lies on p1q1\n if (o3 === 0 && onSegment(p2, p1, q2)) return true; // p2, q2 and p1 are collinear and p1 lies on p2q2\n if (o4 === 0 && onSegment(p2, q1, q2)) return true; // p2, q2 and q1 are collinear and q1 lies on p2q2\n\n return false;\n };\n\n // for collinear points p, q, r, check if point q lies on segment pr\n const onSegment = ( p:IVertex, q:IVertex, r:IVertex ) : boolean => {\n return q.x <= Math.max(p.x, r.x) && q.x >= Math.min(p.x, r.x) && q.y <= Math.max(p.y, r.y) && q.y >= Math.min(p.y, r.y);\n };\n\n const sign = (num:number) : number => {\n return num > 0 ? 1 : num < 0 ? -1 : 0;\n };\n\n // check if a polygon diagonal intersects any polygon segments\n const intersectsPolygon = ( a:Node, b:Node ) : boolean => {\n let p : Node = a;\n do {\n if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i && intersects(p, p.next, a, b)) {\n return true;\n }\n p = p.next;\n } while (p !== a);\n\n return false;\n };\n\n // check if a polygon diagonal is locally inside the polygon\n const locallyInside = ( a : Node, b : Node ) : boolean => {\n return area(a.prev, a, a.next) < 0 ?\n area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 :\n area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;\n };\n\n // check if the middle point of a polygon diagonal is inside the polygon\n const middleInside = ( a : Node, b : Node ) : boolean => {\n let p : Node = a;\n let inside : boolean = false;\n const px : number = (a.x + b.x) / 2;\n const py : number = (a.y + b.y) / 2;\n // TODO: call Polygon.contains here?\n do {\n if (((p.y > py) !== (p.next.y > py)) && p.next.y !== p.y &&\n (px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x))\n inside = !inside;\n p = p.next;\n } while (p !== a);\n\n return inside;\n }\n\n // link two polygon vertices with a bridge; if the vertices belong to the same ring, it splits polygon into two;\n // if one belongs to the outer ring and another to a hole, it merges it into a single ring\n const splitPolygon = ( a : Node, b : Node ) : Node => {\n const a2 : Node = new Node(a.i, a.x, a.y);\n const b2 : Node = new Node(b.i, b.x, b.y);\n const an : Node = a.next;\n const bp : Node = b.prev;\n\n a.next = b;\n b.prev = a;\n\n a2.next = an;\n an.prev = a2;\n\n b2.next = a2;\n a2.prev = b2;\n\n bp.next = b2;\n b2.prev = bp;\n\n return b2;\n };\n\n // create a node and optionally link it with previous one (in a circular doubly linked list)\n const insertNode = (i, x, y, last) : Node => {\n var p : Node = new Node(i, x, y);\n\n if (!last) {\n p.prev = p;\n p.next = p;\n\n } else {\n p.next = last.next;\n p.prev = last;\n last.next.prev = p;\n last.next = p;\n }\n return p;\n };\n\n const removeNode = ( p : Node ) : void => {\n p.next.prev = p.prev;\n p.prev.next = p.next;\n\n if (p.prevZ) p.prevZ.nextZ = p.nextZ;\n if (p.nextZ) p.nextZ.prevZ = p.prevZ;\n };\n\n const signedArea = ( data : Array, start:number, end:number, dim:number) : number => {\n var sum = 0;\n for (var i = start, j = end - dim; i < end; i += dim) {\n sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);\n j = i;\n }\n return sum;\n };\n\n return earcut;\n})();\n", "import {\n createVec2,\n createVec3,\n cross3Vec3,\n dotVec3,\n lenVec3,\n mulVec3Scalar,\n normalizeVec3,\n subVec3\n} from \"@xeokit/matrix\";\nimport type {SceneModel} from \"@xeokit/scene\";\nimport type {DataModel} from \"@xeokit/data\";\n// @ts-ignore\nimport {earcut} from './earcut';\nimport {TrianglesPrimitive} from \"@xeokit/constants\";\nimport {BasicAggregation} from \"@xeokit/basictypes\";\nimport {typeCodes} from \"@xeokit/cityjsontypes_1_1_3\";\nimport {SDKError} from \"@xeokit/core\";\n\nconst tempVec2a = createVec2();\nconst tempVec3a = createVec3();\nconst tempVec3b = createVec3();\nconst tempVec3c = createVec3();\n\n/**\n * Loads CityJSON into a {@link @xeokit/scene!SceneModel | SceneModel} and/or a {@link @xeokit/data!DataModel | DataModel}.\n *\n * * Expects {@link @xeokit/scene!SceneModel.built | SceneModel.built} and {@link @xeokit/scene!SceneModel.destroyed | SceneModel.destroyed} to be ````false````\n * * Does not call {@link @xeokit/scene!SceneModel.build | SceneModel.build} - we call that ourselves, when we have finished building the SceneModel\n *\n * See {@link \"@xeokit/cityjson\" | @xeokit/cityjson} for usage.\n *\n * @param params - Loading parameters.\n * @param params.fileData - CityJSON file data.\n * @param params.sceneModel - SceneModel to load into.\n * @param params.dataModel - DataModel to load into.\n * @param options - CityJSON loading options\n * @param options.rotateX - True to rotate the model about the X-axis. Default is false.\n * @returns {Promise} Resolves when CityJSON has been loaded into the SceneModel and/or DataModel.\n * @throws *{@link @xeokit/core!SDKError | SDKError}*\n * * If the SceneModel has already been destroyed.\n * * If the SceneModel has already been built.\n * * If the DataModel has already been destroyed.\n * * If the DataModel has already been built.\n */\nexport function loadCityJSON(params: {\n fileData: any,\n sceneModel: SceneModel,\n dataModel?: DataModel\n },\n options: {\n rotateX?: boolean;\n } = {\n rotateX: false\n }): Promise {\n if (params.sceneModel) {\n if (params.sceneModel.destroyed) {\n return Promise.reject(new SDKError(\"SceneModel already destroyed\"));\n }\n if (params.sceneModel.built) {\n return Promise.reject(new SDKError(\"SceneModel already built\"));\n }\n }\n if (params.dataModel) {\n if (params.dataModel.destroyed) {\n return Promise.reject(new SDKError(\"DataModel already destroyed\"));\n }\n if (params.dataModel.built) {\n return Promise.reject(new SDKError(\"DataModel already built\"));\n }\n }\n const fileData = params.fileData;\n const ctx = {\n fileData,\n vertices: (fileData.transform && params.sceneModel)\n ? transformVertices(fileData.vertices, fileData.transform, options.rotateX)\n : fileData.vertices,\n sceneModel: params.sceneModel,\n dataModel: params.dataModel,\n nextId: 0\n };\n parseCityJSON(ctx);\n return Promise.resolve();\n}\n\nfunction transformVertices(vertices: any, transform: any, rotateX?: boolean) {\n const transformedVertices = [];\n const scale = transform.scale || createVec3([1, 1, 1]);\n const translate = transform.translate || createVec3([0, 0, 0]);\n for (let i = 0, j = 0; i < vertices.length; i++, j += 3) {\n const x = (vertices[i][0] * scale[0]) + translate[0];\n const y = (vertices[i][1] * scale[1]) + translate[1];\n const z = (vertices[i][2] * scale[2]) + translate[2];\n if (rotateX) {\n transformedVertices.push([x, z, y]);\n } else {\n transformedVertices.push([x, y, z]);\n }\n }\n return transformedVertices;\n}\n\nfunction parseCityJSON(ctx: any) {\n const fileData = ctx.fileData;\n const cityObjects = fileData.CityObjects;\n for (const objectId in cityObjects) {\n parseCityObject(ctx, cityObjects[objectId], objectId);\n }\n if (ctx.dataModel) {\n for (const objectId in cityObjects) {\n parseRelationship(ctx, cityObjects[objectId], objectId);\n }\n }\n}\n\nfunction parseCityObject(ctx: any, cityObject: any, objectId: any) {\n if (ctx.dataModel) {\n ctx.dataModel.createObject({\n id: objectId,\n name: cityObject.type + \" : \" + objectId,\n type: typeCodes[cityObject.type] | 0,\n parent: cityObject.parents ? cityObject.parents[0] : null\n });\n }\n if (ctx.sceneModel) {\n if (!(cityObject.geometry && cityObject.geometry.length > 0)) {\n return;\n }\n const meshIds: string | any[] = [];\n for (let i = 0, len = cityObject.geometry.length; i < len; i++) {\n const geometry = cityObject.geometry[i];\n let objectMaterial;\n let surfaceMaterials;\n const appearance = ctx.fileData.appearance;\n if (appearance) {\n const materials = appearance.materials;\n if (materials) {\n const geometryMaterial = geometry.material;\n if (geometryMaterial) {\n const themeIds = Object.keys(geometryMaterial);\n if (themeIds.length > 0) {\n const themeId = themeIds[0];\n const theme = geometryMaterial[themeId];\n if (theme.value !== undefined) {\n objectMaterial = materials[theme.value];\n } else {\n const values = theme.values;\n if (values) {\n surfaceMaterials = [];\n for (let j = 0, lenj = values.length; j < lenj; j++) {\n const value = values[i];\n const surfaceMaterial = materials[value];\n surfaceMaterials.push(surfaceMaterial);\n }\n }\n }\n }\n }\n }\n }\n if (surfaceMaterials) {\n parseGeometrySurfacesWithOwnMaterials(ctx, geometry, surfaceMaterials, meshIds);\n } else {\n parseGeometrySurfacesWithSharedMaterial(ctx, geometry, objectMaterial, meshIds);\n }\n }\n if (meshIds.length > 0) {\n ctx.sceneModel.createObject({\n id: objectId,\n meshIds: meshIds\n });\n }\n }\n}\n\nfunction parseRelationship(ctx: any, cityObject: any, objectId: any) {\n if (cityObject.parents) {\n ctx.dataModel.createRelationship({\n relatingObjectId: cityObject.parents[0],\n relatedObjectId: objectId,\n type: BasicAggregation\n });\n }\n}\n\nfunction parseGeometrySurfacesWithOwnMaterials(ctx: any, geometry: any, surfaceMaterials: any, meshIds: any) {\n const geomType = geometry.type;\n switch (geomType) {\n case \"MultiPoint\":\n break;\n case \"MultiLineString\":\n break;\n case \"MultiSurface\":\n case \"CompositeSurface\":\n const surfaces = geometry.boundaries;\n parseSurfacesWithOwnMaterials(ctx, surfaceMaterials, surfaces, meshIds);\n break;\n case \"Solid\":\n const shells = geometry.boundaries;\n for (let j = 0; j < shells.length; j++) {\n const surfaces = shells[j];\n parseSurfacesWithOwnMaterials(ctx, surfaceMaterials, surfaces, meshIds);\n }\n break;\n case \"MultiSolid\":\n case \"CompositeSolid\":\n const solids = geometry.boundaries;\n for (let j = 0; j < solids.length; j++) {\n for (let k = 0; k < solids[j].length; k++) {\n const surfaces = solids[j][k];\n parseSurfacesWithOwnMaterials(ctx, surfaceMaterials, surfaces, meshIds);\n }\n }\n break;\n case \"GeometryInstance\":\n break;\n }\n}\n\nfunction parseSurfacesWithOwnMaterials(ctx: any, surfaceMaterials: any, surfaces: any, meshIds: any) {\n const vertices = ctx.vertices;\n const sceneModel = ctx.sceneModel;\n for (let i = 0; i < surfaces.length; i++) {\n const surface = surfaces[i];\n const surfaceMaterial = surfaceMaterials[i] || {diffuseColor: [0.8, 0.8, 0.8], transparency: 1.0};\n const face = [];\n const holes = [];\n const sharedIndices: any[] = [];\n const geometryCfg: any = {\n positions: [],\n indices: []\n };\n for (let j = 0; j < surface.length; j++) {\n if (face.length > 0) {\n holes.push(face.length);\n }\n const newFace = extractLocalIndices(ctx, surface[j], sharedIndices, geometryCfg);\n face.push(...newFace);\n }\n if (face.length === 3) { // Triangle\n geometryCfg.indices.push(face[0]);\n geometryCfg.indices.push(face[1]);\n geometryCfg.indices.push(face[2]);\n } else if (face.length > 3) { // Polygon\n // Prepare to triangulate\n const pList = [];\n for (let k = 0; k < face.length; k++) {\n pList.push({\n x: vertices[sharedIndices[face[k]]][0],\n y: vertices[sharedIndices[face[k]]][1],\n z: vertices[sharedIndices[face[k]]][2]\n });\n }\n const normal = getNormalOfPositions(pList, createVec3());\n // Convert to 2D\n let pv = [];\n for (let k = 0; k < pList.length; k++) {\n to2D(pList[k], normal, tempVec2a);\n pv.unshift(tempVec2a[0]);\n pv.unshift(tempVec2a[1]);\n }\n // Triangulate\n const tr = earcut(pv, holes, 2);\n // Create triangles\n for (let k = 0; k < tr.length; k += 3) {\n geometryCfg.indices.unshift(face[tr[k]]);\n geometryCfg.indices.unshift(face[tr[k + 1]]);\n geometryCfg.indices.unshift(face[tr[k + 2]]);\n }\n }\n const geometryId = \"\" + ctx.nextId++;\n sceneModel.createGeometry({\n id: geometryId,\n primitive: TrianglesPrimitive,\n positions: geometryCfg.positions,\n indices: geometryCfg.indices\n });\n const meshId = \"\" + ctx.nextId++;\n sceneModel.createMesh({\n id: meshId,\n geometryId,\n color: (surfaceMaterial && surfaceMaterial.diffuseColor) ? surfaceMaterial.diffuseColor : [0.8, 0.8, 0.8],\n opacity: (surfaceMaterial && surfaceMaterial.transparency !== undefined) ? (1.0 - surfaceMaterial.transparency) : 1.0\n });\n meshIds.push(meshId);\n }\n}\n\nfunction parseGeometrySurfacesWithSharedMaterial(ctx: any, geometry: any, objectMaterial: any, meshIds: any) {\n const sceneModel = ctx.sceneModel;\n const sharedIndices: any = [];\n const geometryCfg: any = {\n positions: [],\n indices: []\n };\n const geomType = geometry.type;\n switch (geomType) {\n case \"MultiPoint\":\n break;\n case \"MultiLineString\":\n break;\n case \"MultiSurface\":\n case \"CompositeSurface\":\n const surfaces = geometry.boundaries;\n parseSurfacesWithSharedMaterial(ctx, surfaces, sharedIndices, geometryCfg);\n break;\n case \"Solid\":\n const shells = geometry.boundaries;\n for (let j = 0; j < shells.length; j++) {\n const surfaces = shells[j];\n parseSurfacesWithSharedMaterial(ctx, surfaces, sharedIndices, geometryCfg);\n }\n break;\n case \"MultiSolid\":\n case \"CompositeSolid\":\n const solids = geometry.boundaries;\n for (let j = 0; j < solids.length; j++) {\n for (let k = 0; k < solids[j].length; k++) {\n const surfaces = solids[j][k];\n parseSurfacesWithSharedMaterial(ctx, surfaces, sharedIndices, geometryCfg);\n }\n }\n break;\n case \"GeometryInstance\":\n break;\n }\n if (geometryCfg.positions.length > 0 && geometryCfg.indices.length > 0) {\n const geometryId = \"\" + ctx.nextId++;\n sceneModel.createGeometry({\n id: geometryId,\n primitive: TrianglesPrimitive,\n positions: geometryCfg.positions,\n indices: geometryCfg.indices\n });\n const meshId = \"\" + ctx.nextId++;\n sceneModel.createMesh({\n id: meshId,\n geometryId,\n color: (objectMaterial && objectMaterial.diffuseColor) ? objectMaterial.diffuseColor : [0.8, 0.8, 0.8],\n opacity: 1.0\n });\n meshIds.push(meshId);\n }\n}\n\nfunction parseSurfacesWithSharedMaterial(ctx: any, surfaces: any, sharedIndices: any, primitiveCfg: any) {\n const vertices = ctx.vertices;\n for (let i = 0; i < surfaces.length; i++) {\n let boundary = [];\n let holes = [];\n for (let j = 0; j < surfaces[i].length; j++) {\n if (boundary.length > 0) {\n holes.push(boundary.length);\n }\n const newBoundary = extractLocalIndices(ctx, surfaces[i][j], sharedIndices, primitiveCfg);\n boundary.push(...newBoundary);\n }\n if (boundary.length === 3) { // Triangle\n primitiveCfg.indices.push(boundary[0]);\n primitiveCfg.indices.push(boundary[1]);\n primitiveCfg.indices.push(boundary[2]);\n } else if (boundary.length > 3) { // Polygon\n let pList = [];\n for (let k = 0; k < boundary.length; k++) {\n pList.push({\n x: vertices[sharedIndices[boundary[k]]][0],\n y: vertices[sharedIndices[boundary[k]]][1],\n z: vertices[sharedIndices[boundary[k]]][2]\n });\n }\n const normal = getNormalOfPositions(pList, createVec3());\n let pv = [];\n for (let k = 0; k < pList.length; k++) {\n to2D(pList[k], normal, tempVec2a);\n pv.unshift(tempVec2a[0]);\n pv.unshift(tempVec2a[1]);\n }\n const tr = earcut(pv, holes, 2);\n for (let k = 0; k < tr.length; k += 3) {\n primitiveCfg.indices.unshift(boundary[tr[k]]);\n primitiveCfg.indices.unshift(boundary[tr[k + 1]]);\n primitiveCfg.indices.unshift(boundary[tr[k + 2]]);\n }\n }\n }\n}\n\nfunction extractLocalIndices(ctx: any, boundary: any, sharedIndices: any, geometryCfg: any) {\n const vertices = ctx.vertices;\n const newBoundary = []\n for (let i = 0, len = boundary.length; i < len; i++) {\n const index = boundary[i];\n if (sharedIndices.includes(index)) {\n const vertexIndex = sharedIndices.indexOf(index);\n newBoundary.push(vertexIndex);\n } else {\n geometryCfg.positions.push(vertices[index][0]);\n geometryCfg.positions.push(vertices[index][1]);\n geometryCfg.positions.push(vertices[index][2]);\n newBoundary.push(sharedIndices.length);\n sharedIndices.push(index);\n }\n }\n return newBoundary\n}\n\nfunction getNormalOfPositions(positions: any, normal: any) {\n for (let i = 0; i < positions.length; i++) {\n let nexti = i + 1;\n if (nexti === positions.length) {\n nexti = 0;\n }\n normal[0] += ((positions[i].y - positions[nexti].y) * (positions[i].z + positions[nexti].z));\n normal[1] += ((positions[i].z - positions[nexti].z) * (positions[i].x + positions[nexti].x));\n normal[2] += ((positions[i].x - positions[nexti].x) * (positions[i].y + positions[nexti].y));\n }\n return normalizeVec3(normal);\n}\n\nfunction to2D(_p: any, _n: any, re: any) {\n const p = tempVec3a;\n const n = tempVec3b;\n const x3 = tempVec3c;\n p[0] = _p.x;\n p[1] = _p.y;\n p[2] = _p.z;\n n[0] = _n.x;\n n[1] = _n.y;\n n[2] = _n.z;\n x3[0] = 1.1;\n x3[1] = 1.1;\n x3[2] = 1.1;\n const dist = lenVec3(subVec3(x3, n));\n if (dist < 0.01) {\n x3[0] += 1.0;\n x3[1] += 2.0;\n x3[2] += 3.0;\n }\n const dot = dotVec3(x3, n);\n const tmp2 = mulVec3Scalar(n, dot, createVec3());\n x3[0] -= tmp2[0];\n x3[1] -= tmp2[1];\n x3[2] -= tmp2[2];\n normalizeVec3(x3);\n const y3 = cross3Vec3(n, x3, createVec3());\n const x = dotVec3(p, x3);\n const y = dotVec3(p, y3);\n re[0] = x;\n re[1] = y;\n}\n", "/**\n * [![npm version](https://badge.fury.io/js/%40xeokit%2Fdotbim.svg)](https://badge.fury.io/js/%40xeokit%2Fdotbim)\n * [![](https://data.jsdelivr.com/v1/package/npm/@xeokit/dotbim/badge)](https://www.jsdelivr.com/package/npm/@xeokit/dotbim)\n *\n * \n *\n * # xeokit .BIM Importer\n *\n * ---\n *\n * ### *Import building models from the open, free and simple .BIM file format*\n *\n * ---\n *\n * The xeokit SDK allows us to import 3D models from [.BIM](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#dotbim), a JSON-based\n * file format specifically designed for lightweight, user-friendly, and human-readable storage and sharing of 3D BIM models.\n *\n * .BIM is an open-source and minimalist file format for BIM that's built to be easy to read and write. Essentially, .BIM\n * is a transfer format that contains triangulated meshes with a dictionary of information attached to them.\n *\n * To import a .BIM model into xeokit, simply use the {@link loadDotBIM} function, which will load the file into both\n * a {@link @xeokit/scene!SceneModel | SceneModel} and a {@link @xeokit/data!DataModel | DataModel}.\n *\n *
\n *\n * [![](https://mermaid.ink/img/pako:eNqNUk1vgkAQ_StkTm2CRpDvGA-GSxNNjdyavazsUGmAJbtLUmr8711ApHow5bLMm9n33szOGVLOECJICyplnNNPQUtSkYrlAlOV88rYHrq4zxtJihXu9I3COJPK0F_OhpMfv3S9HIJUIFX43kMvrwN2bPKCjQFDqQRvu_DSsY_8MVW0p3_GXgteo1Btgs_0BuyABe26kKe8vs_sJ5Z_WRwMbjllMVebt92e6knJcQyrVd3FqFCs1wNEhaDtpskyFAMgb8O7KozN3ikUN4WJO2uq_i066r700QaBBYHZbE3AIpD80XlaGE8GJtUx-XgTTChRlDRnelt6ZwTUCUskEOlfhhltCkVAO9SltFE8aasUIiUaNKGpdbd43S-IMlpIjSLLFRe76wZ2hwk1rSA6wzdEtmfNLct3Lc8OlqHnha4JrYbtuRP6nuuElm97wdK9mPDDuWZdzAPbcxzPDh0_cFzHDXu6jz7Z-bj8Aq5V9Qs?type=png)](https://mermaid.live/edit#pako:eNqNUk1vgkAQ_StkTm2CRpDvGA-GSxNNjdyavazsUGmAJbtLUmr8711ApHow5bLMm9n33szOGVLOECJICyplnNNPQUtSkYrlAlOV88rYHrq4zxtJihXu9I3COJPK0F_OhpMfv3S9HIJUIFX43kMvrwN2bPKCjQFDqQRvu_DSsY_8MVW0p3_GXgteo1Btgs_0BuyABe26kKe8vs_sJ5Z_WRwMbjllMVebt92e6knJcQyrVd3FqFCs1wNEhaDtpskyFAMgb8O7KozN3ikUN4WJO2uq_i066r700QaBBYHZbE3AIpD80XlaGE8GJtUx-XgTTChRlDRnelt6ZwTUCUskEOlfhhltCkVAO9SltFE8aasUIiUaNKGpdbd43S-IMlpIjSLLFRe76wZ2hwk1rSA6wzdEtmfNLct3Lc8OlqHnha4JrYbtuRP6nuuElm97wdK9mPDDuWZdzAPbcxzPDh0_cFzHDXu6jz7Z-bj8Aq5V9Qs)\n *\n *
\n *\n * ## Installation\n *\n * ````bash\n * npm install @xeokit/dotbim\n * ````\n *\n * ## Usage\n *\n * In the example below, we will create a {@link @xeokit/viewer!Viewer | Viewer} with\n * a {@link @xeokit/webglrenderer!WebGLRenderer | WebGLRenderer} and a {@link @xeokit/scene!Scene | Scene}, which holds model geometry and materials.\n *\n * We'll also create a {@link @xeokit/data!Data | Data}, which will hold semantic data for our model.\n *\n * On our Viewer, we will create a single {@link @xeokit/viewer!View | View} to render it to a canvas element on the page. We will\n * also attach a {@link @xeokit/cameracontrol!CameraControl | CameraControl} to our View, allowing us to control its camera with mouse and touch input.\n *\n * Within the Scene, we will create a {@link @xeokit/scene!SceneModel | SceneModel} to hold model geometry and materials. Within Data, we will\n * create a {@link @xeokit/data!DataModel | DataModel} to hold semantic IFC data, which includes IFC elements and property sets.\n *\n * We will then use\n * {@link @xeokit/dotbim!loadDotBIM | loadDotBIM} to load a .BIM file into our SceneModel and DataModel.\n *\n * The {@link @xeokit/core!SDKError | SDKError} class will be used to handle any errors that may occur during this process.\n *\n * * [Run this example]()\n *\n * ````javascript\n * import {SDKError} from \"@xeokit/core\";\n * import {Scene} from \"@xeokit/scene\";\n * import {WebGLRenderer} from \"@xeokit/webglrenderer\";\n * import {Viewer} from \"@xeokit/viewer\";\n * import {CameraControl} from \"@xeokit/cameracontrol\";\n * import {loadDotBIM} from \"@xeokit/dotbim\";\n *\n * const scene = new Scene();\n * const data = new Data();\n *\n * const renderer = new WebGLRenderer({});\n *\n * const viewer = new Viewer({\n * id: \"myViewer\",\n * scene,\n * renderer\n * });\n *\n * const view = viewer.createView({\n * id: \"myView\",\n * elementId: \"myCanvas\" // << Ensure that this HTMLElement exists in the page\n * });\n *\n * if (view instanceof SDKError) {\n * console.error(`Error creating View: ${view.message}`);\n *\n * } else {\n *\n * view.camera.eye = [1841982.93, 10.03, -5173286.74];\n * view.camera.look = [1842009.49, 9.68, -5173295.85];\n * view.camera.up = [0.0, 1.0, 0.0];\n *\n * new CameraControl(view, {});\n *\n * const sceneModel = scene.createModel({\n * id: \"myModel\"\n * });\n *\n * const dataModel = data.createModel({\n * id: \"myModel\"\n * });\n *\n * if (sceneModel instanceof SDKError) {\n * console.error(`Error creating SceneModel: ${sceneModel.message}`);\n *\n * } else if (dataModel instanceof SDKError) {\n * console.error(`Error creating DataModel: ${dataModel.message}`);\n *\n * } else {\n *\n * fetch(\"model.bim\").then(response => {\n *\n * response.json().then(fileData => {\n *\n * loadDotBIM({\n * fileData,\n * sceneModel,\n * dataModel\n * }).then(() => {\n *\n * sceneModel.build();\n * dataModel.build();\n *\n * }).catch(sdkError => {\n * sceneModel.destroy();\n * dataModel.destroy();\n * console.error(`Error loading .BIM: ${sdkError.message}`);\n * });\n *\n * }).catch(message => {\n * console.error(`Error creating ArrayBuffer: ${message}`);\n * });\n *\n * }).catch(message => {\n * console.error(`Error fetching model: ${message}`);\n * });\n * }\n * }\n * ````\n *\n * Using {@link @xeokit/dotbim!saveDotBIM | saveDotBIM} to export the {@link @xeokit/scene!SceneModel | SceneModel} and\n * {@link @xeokit/data!DataModel | DataModel} back to a .BIM file:\n *\n * ````javascript\n * const dotBIMJSON = saveDTX({\n * sceneModel,\n * dataModel\n * });\n * ````\n *\n * @module @xeokit/dotbim\n */\nexport * from \"./loadDotBIM\";\nexport * from \"./saveDotBIM\";\n", "import type {SceneModel} from \"@xeokit/scene\";\nimport type {DataModel} from \"@xeokit/data\";\nimport {SDKError} from \"@xeokit/core\";\nimport {TrianglesPrimitive} from \"@xeokit/constants\";\nimport {ifcTypeCodes} from \"@xeokit/ifctypes\";\nimport {FloatArrayParam} from \"@xeokit/math\";\n\n\n/**\n * Loads .BIM into a {@link @xeokit/scene!SceneModel | SceneModel} and/or a {@link @xeokit/data!DataModel | DataModel}.\n *\n * * Expects {@link @xeokit/scene!SceneModel.built | SceneModel.built} and {@link @xeokit/scene!SceneModel.destroyed | SceneModel.destroyed} to be ````false````\n * * Does not call {@link @xeokit/scene!SceneModel.build | SceneModel.build} - we call that ourselves, when we have finished building the SceneModel\n *\n * See {@link \"@xeokit/dotbim\" | @xeokit/dotbim} for usage.\n *\n * @param params - Loading parameters.\n * @param params.fileData - .BIM file data.\n * @param params.sceneModel - SceneModel to load into.\n * @param params.dataModel - DataModel to load into.\n * @param options - .BIM loading options\n * @param options.error - Callback to log any non-fatal errors that occur while loading.\n * @returns {Promise} Resolves when .BIM has been loaded into the SceneModel and/or DataModel.\n * @throws *{@link @xeokit/core!SDKError | SDKError}*\n * * If the SceneModel has already been destroyed.\n * * If the SceneModel has already been built.\n * * If the DataModel has already been destroyed.\n * * If the DataModel has already been built.\n */\nexport function loadDotBIM(params: {\n fileData: any,\n sceneModel: SceneModel,\n dataModel?: DataModel\n },\n options: {\n translate?: FloatArrayParam,\n error?: (errMsg: string) => void;\n } = {}): Promise {\n return new Promise(function (resolve, reject) {\n if (params.sceneModel.destroyed) {\n throw new SDKError(\"SceneModel already destroyed\");\n }\n if (params.sceneModel.built) {\n throw new SDKError(\"SceneModel already built\");\n }\n if (params.dataModel) {\n if (params.dataModel.destroyed) {\n throw new SDKError(\"DataModel already destroyed\");\n }\n if (params.dataModel.built) {\n throw new SDKError(\"DataModel already built\");\n }\n }\n const fileData = params.fileData;\n const ctx = {\n fileData,\n sceneModel: params.sceneModel,\n dataModel: params.dataModel,\n nextId: 0,\n error: options.error || function (errMsg: string) {\n },\n translate: options.translate\n };\n parseDotBIM(ctx);\n resolve();\n });\n}\n\nfunction parseDotBIM(ctx: any) {\n const fileData = ctx.fileData;\n const meshes = fileData.meshes;\n for (let i = 0, len = meshes.length; i < len; i++) {\n const mesh = meshes[i];\n const geometry = ctx.sceneModel.createGeometry({\n id: mesh.mesh_id,\n primitive: TrianglesPrimitive,\n positions: mesh.coordinates,\n indices: mesh.indices\n });\n if (geometry instanceof SDKError) {\n ctx.error(`[SceneModel.createGeometry]: ${geometry.message}`);\n }\n }\n const elements = fileData.elements;\n for (let i = 0, len = elements.length; i < len; i++) {\n const element = elements[i];\n const info = element.info;\n const objectId =\n element.guid !== undefined\n ? `${element.guid}`\n : (info !== undefined && info.id !== undefined\n ? info.id\n : i);\n if (ctx.sceneModel) {\n const geometryId = element.mesh_id;\n const meshId = `${objectId}-mesh`;\n const vector = element.vector;\n const rotation = element.rotation;\n const color = element.color;\n const mesh = ctx.sceneModel.createMesh({\n id: meshId,\n geometryId,\n color: color ? [color.r, color.g, color.b] : undefined,\n opacity: color ? color.a : 1.0,\n quaternion: rotation ? [rotation.qx, rotation.qy, rotation.qz, rotation.qw] : undefined,\n position: vector\n ? (ctx.translate\n ? [vector.x + ctx.translate[0], vector.y + ctx.translate[1], vector.z + ctx.translate[2]]\n : [vector.x, vector.y, vector.z])\n : (ctx.translate ? ctx.translate : undefined)\n });\n if (mesh instanceof SDKError) {\n ctx.error(`[SceneModel.createMesh]: ${mesh.message}`);\n continue;\n }\n const sceneObject = ctx.sceneModel.createObject({\n id: objectId,\n meshIds: [meshId]\n });\n if (sceneObject instanceof SDKError) {\n ctx.error(`[SceneModel.createObject]: ${sceneObject.message}`);\n continue;\n }\n }\n if (ctx.dataModel) {\n if (!ctx.dataModel.objects[element.guid]) {\n const dataObject = ctx.dataModel.createObject({\n id: objectId,\n type: ifcTypeCodes[element.type],\n name: info.Name,\n description: info.Description\n });\n if (dataObject instanceof SDKError) {\n ctx.error(`[SceneModel.createObject]: ${dataObject.message}`);\n }\n }\n }\n }\n}\n", "import type {DataModel} from \"@xeokit/data\";\nimport type {SceneModel} from \"@xeokit/scene\";\nimport {SDKError} from \"@xeokit/core\";\nimport {decompressPoint3WithAABB3, decompressPoint3WithMat4} from \"@xeokit/compression\";\nimport {createVec3, createVec4, decomposeMat4} from \"@xeokit/matrix\";\nimport {ifcTypeNames} from \"@xeokit/ifctypes\";\n\nconst tempVec3a = createVec3();\nconst tempVec3b = createVec3();\n\n/**\n * Exports a {@link @xeokit/scene!SceneModel | SceneModel} and/or a {@link @xeokit/data!DataModel | DataModel} to a JSON object\n * containing .BIM file data.\n *\n * See {@link \"@xeokit/dotbim\" | @xeokit/dotbim} for usage.\n *\n * @param params\n * @param params.model - The SceneModel to export to .BIM.\n * @param params.dataModel - The DataModel to export to .BIM.\n * @returns The .BIM file data in an JSON object.\n * @returns {@link @xeokit/core!SDKError | SDKError} If the SceneModel has already been destroyed.\n * @returns {@link @xeokit/core!SDKError | SDKError} If the SceneModel has not yet been built.\n * @returns {@link @xeokit/core!SDKError | SDKError} If the DataModel has already been destroyed.\n * @returns {@link @xeokit/core!SDKError | SDKError} If the DataModel has not yet been built.\n */\nexport function saveDotBIM(params: {\n sceneModel: SceneModel,\n dataModel?: DataModel\n}): Object {\n const sceneModel = params.sceneModel\n const dataModel = params.dataModel;\n if (sceneModel?.destroyed) {\n throw new SDKError(\"SceneModel already destroyed\");\n }\n if (!sceneModel?.built) {\n throw new SDKError(\"SceneModel not yet built\");\n }\n if (dataModel) {\n if (dataModel.destroyed) {\n throw new SDKError(\"DataModel already destroyed\");\n }\n if (!dataModel.built) {\n throw new SDKError(\"DataModel not yet built\");\n }\n }\n return modelToDotBIM({sceneModel, dataModel});\n}\n\n\nfunction modelToDotBIM(params: { dataModel: DataModel; sceneModel: SceneModel }): Object {\n\n const dotBim = {\n meshes: [],\n elements: []\n };\n\n const geometries = Object.values(params.sceneModel.geometries);\n\n const meshLookup = {};\n\n for (let i = 0, len = geometries.length; i < len; i++) {\n const geometry = geometries[i];\n const aabb = geometry.aabb;\n const coordinates = [];\n const positionsCompressed = geometry.positionsCompressed;\n for (let k = 0, lenk = positionsCompressed.length; k < lenk; k += 3) {\n tempVec3a[0] = positionsCompressed[k];\n tempVec3a[1] = positionsCompressed[k + 1];\n tempVec3a[2] = positionsCompressed[k + 2];\n decompressPoint3WithAABB3(tempVec3a, aabb, tempVec3b);\n coordinates.push(tempVec3b[0]);\n coordinates.push(tempVec3b[1]);\n coordinates.push(tempVec3b[2]);\n }\n meshLookup[geometry.id] = {\n mesh_id: geometry.id,\n coordinates,\n indices: geometry.indices || []\n };\n }\n\n const sceneObjects = Object.values(params.sceneModel.objects);\n\n for (let i = 0, len = sceneObjects.length; i < len; i++) {\n const sceneObject = sceneObjects[i];\n const meshes = sceneObject.meshes;\n let meshId;\n let dbMesh;\n if (meshes.length === 1) {\n const mesh = meshes[0];\n const geometry = mesh.geometry;\n dbMesh = meshLookup[geometry.id];\n dotBim.meshes.push(dbMesh);\n meshId = geometry.id;\n } else {\n dbMesh = {\n mesh_id: sceneObject.id,\n coordinates: [],\n indices: []\n };\n let indicesOffset = 0;\n for (let j = 0, lenj = meshes.length; j < lenj; j++) {\n const sceneMesh = meshes[j];\n const geometry = sceneMesh.geometry;\n const lookupGeometry = meshLookup[geometry.id];\n const coordinates = lookupGeometry.coordinates;\n for (let k = 0, lenk = coordinates.length; k < lenk; k++) {\n dbMesh.coordinates.push(coordinates[k]);\n }\n const indices = lookupGeometry.indices;\n for (let k = 0, lenk = indices.length; k < lenk; k++) {\n dbMesh.indices.push(indices[k] + indicesOffset);\n }\n indicesOffset += coordinates.length / 3;\n }\n dotBim.meshes.push(dbMesh);\n meshId = sceneObject.id;\n }\n const firstMesh = meshes[0];\n const color = firstMesh.color;\n const position = createVec3();\n const quaternion = createVec4();\n const scale = createVec3();\n decomposeMat4(firstMesh.matrix, position, quaternion, scale);\n const info: any = {\n id: sceneObject.id,\n Tag: \"None\"\n };\n let dataObject;\n if (params.dataModel) {\n dataObject = params.dataModel.objects[sceneObject.id];\n if (dataObject) {\n info.type = ifcTypeNames[dataObject.type];\n info.Name = dataObject.name;\n info.Description = dataObject.description;\n }\n }\n if (!dataObject) {\n info.type = \"None\";\n info.Name = \"None\";\n info.Description = \"None\";\n }\n dotBim.elements.push({\n info,\n mesh_id: dbMesh.mesh_id,\n type: info.type,\n color: {\n r: color[0],\n g: color[1],\n b: color[2],\n a: firstMesh.opacity\n },\n vector: {\n x: position[0],\n y: position[1],\n z: position[2]\n },\n rotation: {\n qx: quaternion[0],\n qy: quaternion[0],\n qz: quaternion[0],\n qw: quaternion[0]\n },\n qy: quaternion[1],\n qz: quaternion[2],\n qw: quaternion[3]\n });\n }\n\n return dotBim;\n}\n", "/**\n * [![npm version](https://badge.fury.io/js/%40xeokit%webifc.svg)](https://badge.fury.io/js/%40xeokit%webifc)\n * [![](https://data.jsdelivr.com/v1/package/npm/@xeokit/webifc/badge)](https://www.jsdelivr.com/package/npm/@xeokit/webifc)\n *\n * \n *\n * # xeokit IFC Importer\n *\n * ---\n *\n * ### *Import BIM models from IFC STEP files using the web-ifc API*\n *\n * ---\n *\n * The xeokit SDK can import 3D building models from Industry Foundation Classes ([IFC](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#ifc)) files,\n * a standard file format used in the field of Building Information Modeling (BIM) to exchange information between\n * different software applications used in the construction and building industries.\n *\n * To import a medium-sized IFC model into xeokit, use the {@link @xeokit/webifc!loadWebIFC | loadWebIFC} function, which will load the file into\n * a {@link @xeokit/scene!SceneModel | SceneModel} and a {@link @xeokit/data!DataModel | DataModel}. Internally, loadWebIFC\n * uses the [web-ifc](https://github.com/IFCjs/web-ifc) API to parse geometry and data from the IFC file.\n *\n *
\n *\n * [![](https://mermaid.ink/img/pako:eNqNUsFqwzAM_ZWg0zY62K6hFLaVQaFlpTns4otiK6uHYwfbYYTSf58dJ03bQVkuznt6lp5kHYAbQZADV-jcUuKXxZpppoW0xL00OlvvIu7jWcFJ0ybcUNmB6Sx8UqTTlN9B7xLgltDTR0_d3SeubKUSIxDkvDVdhMeYfcy_RI99-lvZG2sasr4r6Fa9xO1IYezC7WVzGdlOWf5lMRlcGxSfVK7e37YYJuXGMcznTcTkyS4WiUJrsXttq4psItxpeEOFsdkEf6iUFb-opk7VpjpVq_t3iWXOpEn2sl31yiF07ZbBE4PHxwWDZwbFmZ2bwuXk86_uYdKdLDA9GR-D1zdhBjXZGqUIy9c3x8DvqSYGefgVVGGrPIPQSZBi603RaQ65ty3NoG3C8GhYV8grVC6wJKQ3djMsdDyOv8sQ9og?type=png)](https://mermaid.live/edit#pako:eNqNUsFqwzAM_ZWg0zY62K6hFLaVQaFlpTns4otiK6uHYwfbYYTSf58dJ03bQVkuznt6lp5kHYAbQZADV-jcUuKXxZpppoW0xL00OlvvIu7jWcFJ0ybcUNmB6Sx8UqTTlN9B7xLgltDTR0_d3SeubKUSIxDkvDVdhMeYfcy_RI99-lvZG2sasr4r6Fa9xO1IYezC7WVzGdlOWf5lMRlcGxSfVK7e37YYJuXGMcznTcTkyS4WiUJrsXttq4psItxpeEOFsdkEf6iUFb-opk7VpjpVq_t3iWXOpEn2sl31yiF07ZbBE4PHxwWDZwbFmZ2bwuXk86_uYdKdLDA9GR-D1zdhBjXZGqUIy9c3x8DvqSYGefgVVGGrPIPQSZBi603RaQ65ty3NoG3C8GhYV8grVC6wJKQ3djMsdDyOv8sQ9og)\n *\n *
\n *\n * ## Installation\n *\n * ````bash\n * npm install @xeokit/webifc\n * ````\n *\n * ## Usage\n *\n * The example below shows how to use {@link @xeokit/webifc!loadWebIFC | loadWebIFC} in context.\n *\n * In this example, we will create a {@link @xeokit/viewer!Viewer | Viewer} with\n * a {@link @xeokit/webglrenderer!WebGLRenderer | WebGLRenderer} and a {@link @xeokit/scene!Scene | Scene}, which holds model geometry\n * and materials. We'll also create a {@link @xeokit/data!Data | Data}, which will hold semantic data for our model.\n *\n * On our Viewer, we will create a single {@link @xeokit/viewer!View | View} to render it to a canvas element on the page. We will\n * also attach a {@link @xeokit/cameracontrol!CameraControl | CameraControl} to our View, allowing us to control its camera with mouse and touch input.\n *\n * Within the Scene, we will create a {@link @xeokit/scene!SceneModel | SceneModel} to hold model geometry and materials. Within Data, we will\n * create a {@link @xeokit/data!DataModel | DataModel} to hold semantic IFC data, which includes IFC elements and property sets.\n *\n * We will then use\n * {@link @xeokit/webifc!loadWebIFC | loadWebIFC} to load an IFC file into our SceneModel and DataModel. Before we do that, however,\n * we need to successfully instantiate and initialize the WebIFC API, which we pass into loadWebIFC.\n *\n * The {@link @xeokit/core!SDKError | SDKError} class will be used to handle any errors that may occur during this process.\n *\n * * [Run this example]()\n *\n * ````javascript\n * import {SDKError} from \"@xeokit/core\";\n * import {Scene} from \"@xeokit/scene\";\n * import {WebGLRenderer} from \"@xeokit/webglrenderer\";\n * import {Viewer} from \"@xeokit/viewer\";\n * import {CameraControl} from \"@xeokit/cameracontrol\";\n * import {loadWebIFC} from \"@xeokit/webifc\";\n * import * as WebIFC from \"https://cdn.jsdelivr.net/npm/web-ifc@0.0.51/web-ifc-api.js\";\n *\n * const scene = new Scene();\n * const data = new Data();\n *\n * const renderer = new WebGLRenderer({});\n *\n * const viewer = new Viewer({\n * id: \"myViewer\",\n * scene,\n * renderer\n * });\n *\n * const view = viewer.createView({\n * id: \"myView\",\n * elementId: \"myCanvas\" // << Ensure that this HTMLElement exists in the page\n * });\n *\n * if (view instanceof SDKError) {\n * console.error(`Error creating View: ${view.message}`);\n *\n * } else {\n *\n * view.camera.eye = [1841982.93, 10.03, -5173286.74];\n * view.camera.look = [1842009.49, 9.68, -5173295.85];\n * view.camera.up = [0.0, 1.0, 0.0];\n *\n * new CameraControl(view, {});\n *\n * const ifcAPI = new WebIFC.IfcAPI();\n *\n * ifcAPI.SetWasmPath(\"https://cdn.jsdelivr.net/npm/web-ifc@0.0.51/\");\n *\n * ifcAPI.Init().then(() => {\n *\n * const sceneModel = scene.createModel({\n * id: \"myModel\"\n * });\n *\n * const dataModel = data.createModel({\n * id: \"myModel\"\n * });\n *\n * if (sceneModel instanceof SDKError) {\n * console.error(`Error creating SceneModel: ${sceneModel.message}`);\n *\n * } else if (dataModel instanceof SDKError) {\n * console.error(`Error creating DataModel: ${dataModel.message}`);\n *\n * } else {\n *\n * fetch(\"model.ifc\").then(response => {\n *\n * response.arrayBuffer().then(fileData => {\n *\n * loadWebIFC({\n * fileData,\n * sceneModel,\n * dataModel\n * }).then(() => {\n *\n * sceneModel.build();\n * dataModel.build();\n *\n * }).catch(sdkError => {\n * sceneModel.destroy();\n * dataModel.destroy();\n * console.error(`Error loading IFC file: ${sdkError.message}`);\n * });\n *\n * }).catch(message => {\n * console.error(`Error creating ArrayBuffer: ${message}`);\n * });\n *\n * }).catch(message => {\n * console.error(`Error fetching model: ${message}`);\n * });\n * }\n * }).catch(message => {\n * console.error(`Error initializing WebIFC.IfcAPI: ${message}`);\n * });\n * }\n * ````\n *\n * @module @xeokit/webifc\n */\nexport * from \"./loadWebIFC\";\n", "var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e) {\n reject(e);\n }\n };\n var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n};\n\n// dist/web-ifc-mt.js\nvar require_web_ifc_mt = __commonJS({\n \"dist/web-ifc-mt.js\"(exports, module) {\n var WebIFCWasm2 = (() => {\n var _scriptDir = typeof document !== \"undefined\" && document.currentScript ? document.currentScript.src : void 0;\n return function(moduleArg = {}) {\n function GROWABLE_HEAP_I8() {\n if (wasmMemory.buffer != HEAP8.buffer) {\n updateMemoryViews();\n }\n return HEAP8;\n }\n function GROWABLE_HEAP_U8() {\n if (wasmMemory.buffer != HEAP8.buffer) {\n updateMemoryViews();\n }\n return HEAPU8;\n }\n function GROWABLE_HEAP_I16() {\n if (wasmMemory.buffer != HEAP8.buffer) {\n updateMemoryViews();\n }\n return HEAP16;\n }\n function GROWABLE_HEAP_U16() {\n if (wasmMemory.buffer != HEAP8.buffer) {\n updateMemoryViews();\n }\n return HEAPU16;\n }\n function GROWABLE_HEAP_I32() {\n if (wasmMemory.buffer != HEAP8.buffer) {\n updateMemoryViews();\n }\n return HEAP32;\n }\n function GROWABLE_HEAP_U32() {\n if (wasmMemory.buffer != HEAP8.buffer) {\n updateMemoryViews();\n }\n return HEAPU32;\n }\n function GROWABLE_HEAP_F32() {\n if (wasmMemory.buffer != HEAP8.buffer) {\n updateMemoryViews();\n }\n return HEAPF32;\n }\n function GROWABLE_HEAP_F64() {\n if (wasmMemory.buffer != HEAP8.buffer) {\n updateMemoryViews();\n }\n return HEAPF64;\n }\n var Module = moduleArg;\n var readyPromiseResolve, readyPromiseReject;\n Module[\"ready\"] = new Promise((resolve, reject) => {\n readyPromiseResolve = resolve;\n readyPromiseReject = reject;\n });\n var moduleOverrides = Object.assign({}, Module);\n var arguments_ = [];\n var thisProgram = \"./this.program\";\n var quit_ = (status, toThrow) => {\n throw toThrow;\n };\n var ENVIRONMENT_IS_WEB = typeof window == \"object\";\n var ENVIRONMENT_IS_WORKER = typeof importScripts == \"function\";\n var ENVIRONMENT_IS_NODE = typeof process == \"object\" && typeof process.versions == \"object\" && typeof process.versions.node == \"string\";\n var ENVIRONMENT_IS_PTHREAD = Module[\"ENVIRONMENT_IS_PTHREAD\"] || false;\n var scriptDirectory = \"\";\n function locateFile(path) {\n if (Module[\"locateFile\"]) {\n return Module[\"locateFile\"](path, scriptDirectory);\n }\n return scriptDirectory + path;\n }\n var read_, readAsync, readBinary, setWindowTitle;\n if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {\n if (ENVIRONMENT_IS_WORKER) {\n scriptDirectory = self.location.href;\n } else if (typeof document != \"undefined\" && document.currentScript) {\n scriptDirectory = document.currentScript.src;\n }\n if (_scriptDir) {\n scriptDirectory = _scriptDir;\n }\n if (scriptDirectory.indexOf(\"blob:\") !== 0) {\n scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, \"\").lastIndexOf(\"/\") + 1);\n } else {\n scriptDirectory = \"\";\n }\n {\n read_ = (url) => {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, false);\n xhr.send(null);\n return xhr.responseText;\n };\n if (ENVIRONMENT_IS_WORKER) {\n readBinary = (url) => {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, false);\n xhr.responseType = \"arraybuffer\";\n xhr.send(null);\n return new Uint8Array(xhr.response);\n };\n }\n readAsync = (url, onload, onerror) => {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, true);\n xhr.responseType = \"arraybuffer\";\n xhr.onload = () => {\n if (xhr.status == 200 || xhr.status == 0 && xhr.response) {\n onload(xhr.response);\n return;\n }\n onerror();\n };\n xhr.onerror = onerror;\n xhr.send(null);\n };\n }\n setWindowTitle = (title) => document.title = title;\n } else {\n }\n var out = Module[\"print\"] || console.log.bind(console);\n var err = Module[\"printErr\"] || console.error.bind(console);\n Object.assign(Module, moduleOverrides);\n moduleOverrides = null;\n if (Module[\"arguments\"])\n arguments_ = Module[\"arguments\"];\n if (Module[\"thisProgram\"])\n thisProgram = Module[\"thisProgram\"];\n if (Module[\"quit\"])\n quit_ = Module[\"quit\"];\n var wasmBinary;\n if (Module[\"wasmBinary\"])\n wasmBinary = Module[\"wasmBinary\"];\n var noExitRuntime = Module[\"noExitRuntime\"] || true;\n if (typeof WebAssembly != \"object\") {\n abort(\"no native wasm support detected\");\n }\n var wasmMemory;\n var wasmExports;\n var wasmModule;\n var ABORT = false;\n var EXITSTATUS;\n function assert(condition, text) {\n if (!condition) {\n abort(text);\n }\n }\n var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;\n function updateMemoryViews() {\n var b = wasmMemory.buffer;\n Module[\"HEAP8\"] = HEAP8 = new Int8Array(b);\n Module[\"HEAP16\"] = HEAP16 = new Int16Array(b);\n Module[\"HEAP32\"] = HEAP32 = new Int32Array(b);\n Module[\"HEAPU8\"] = HEAPU8 = new Uint8Array(b);\n Module[\"HEAPU16\"] = HEAPU16 = new Uint16Array(b);\n Module[\"HEAPU32\"] = HEAPU32 = new Uint32Array(b);\n Module[\"HEAPF32\"] = HEAPF32 = new Float32Array(b);\n Module[\"HEAPF64\"] = HEAPF64 = new Float64Array(b);\n }\n var INITIAL_MEMORY = Module[\"INITIAL_MEMORY\"] || 16777216;\n assert(INITIAL_MEMORY >= 5242880, \"INITIAL_MEMORY should be larger than STACK_SIZE, was \" + INITIAL_MEMORY + \"! (STACK_SIZE=\" + 5242880 + \")\");\n if (ENVIRONMENT_IS_PTHREAD) {\n wasmMemory = Module[\"wasmMemory\"];\n } else {\n if (Module[\"wasmMemory\"]) {\n wasmMemory = Module[\"wasmMemory\"];\n } else {\n wasmMemory = new WebAssembly.Memory({ \"initial\": INITIAL_MEMORY / 65536, \"maximum\": 4294967296 / 65536, \"shared\": true });\n if (!(wasmMemory.buffer instanceof SharedArrayBuffer)) {\n err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");\n if (ENVIRONMENT_IS_NODE) {\n err(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)\");\n }\n throw Error(\"bad memory\");\n }\n }\n }\n updateMemoryViews();\n INITIAL_MEMORY = wasmMemory.buffer.byteLength;\n var wasmTable;\n var __ATPRERUN__ = [];\n var __ATINIT__ = [];\n var __ATPOSTRUN__ = [];\n var runtimeInitialized = false;\n var runtimeKeepaliveCounter = 0;\n function keepRuntimeAlive() {\n return noExitRuntime || runtimeKeepaliveCounter > 0;\n }\n function preRun() {\n if (Module[\"preRun\"]) {\n if (typeof Module[\"preRun\"] == \"function\")\n Module[\"preRun\"] = [Module[\"preRun\"]];\n while (Module[\"preRun\"].length) {\n addOnPreRun(Module[\"preRun\"].shift());\n }\n }\n callRuntimeCallbacks(__ATPRERUN__);\n }\n function initRuntime() {\n runtimeInitialized = true;\n if (ENVIRONMENT_IS_PTHREAD)\n return;\n if (!Module[\"noFSInit\"] && !FS.init.initialized)\n FS.init();\n FS.ignorePermissions = false;\n TTY.init();\n callRuntimeCallbacks(__ATINIT__);\n }\n function postRun() {\n if (ENVIRONMENT_IS_PTHREAD)\n return;\n if (Module[\"postRun\"]) {\n if (typeof Module[\"postRun\"] == \"function\")\n Module[\"postRun\"] = [Module[\"postRun\"]];\n while (Module[\"postRun\"].length) {\n addOnPostRun(Module[\"postRun\"].shift());\n }\n }\n callRuntimeCallbacks(__ATPOSTRUN__);\n }\n function addOnPreRun(cb) {\n __ATPRERUN__.unshift(cb);\n }\n function addOnInit(cb) {\n __ATINIT__.unshift(cb);\n }\n function addOnPostRun(cb) {\n __ATPOSTRUN__.unshift(cb);\n }\n var runDependencies = 0;\n var runDependencyWatcher = null;\n var dependenciesFulfilled = null;\n function getUniqueRunDependency(id) {\n return id;\n }\n function addRunDependency(id) {\n runDependencies++;\n if (Module[\"monitorRunDependencies\"]) {\n Module[\"monitorRunDependencies\"](runDependencies);\n }\n }\n function removeRunDependency(id) {\n runDependencies--;\n if (Module[\"monitorRunDependencies\"]) {\n Module[\"monitorRunDependencies\"](runDependencies);\n }\n if (runDependencies == 0) {\n if (runDependencyWatcher !== null) {\n clearInterval(runDependencyWatcher);\n runDependencyWatcher = null;\n }\n if (dependenciesFulfilled) {\n var callback = dependenciesFulfilled;\n dependenciesFulfilled = null;\n callback();\n }\n }\n }\n function abort(what) {\n if (Module[\"onAbort\"]) {\n Module[\"onAbort\"](what);\n }\n what = \"Aborted(\" + what + \")\";\n err(what);\n ABORT = true;\n EXITSTATUS = 1;\n what += \". Build with -sASSERTIONS for more info.\";\n var e = new WebAssembly.RuntimeError(what);\n readyPromiseReject(e);\n throw e;\n }\n var dataURIPrefix = \"data:application/octet-stream;base64,\";\n function isDataURI(filename) {\n return filename.startsWith(dataURIPrefix);\n }\n var wasmBinaryFile;\n wasmBinaryFile = \"web-ifc-mt.wasm\";\n if (!isDataURI(wasmBinaryFile)) {\n wasmBinaryFile = locateFile(wasmBinaryFile);\n }\n function getBinarySync(file) {\n if (file == wasmBinaryFile && wasmBinary) {\n return new Uint8Array(wasmBinary);\n }\n if (readBinary) {\n return readBinary(file);\n }\n throw \"both async and sync fetching of the wasm failed\";\n }\n function getBinaryPromise(binaryFile) {\n if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) {\n if (typeof fetch == \"function\") {\n return fetch(binaryFile, { credentials: \"same-origin\" }).then((response) => {\n if (!response[\"ok\"]) {\n throw \"failed to load wasm binary file at '\" + binaryFile + \"'\";\n }\n return response[\"arrayBuffer\"]();\n }).catch(() => getBinarySync(binaryFile));\n }\n }\n return Promise.resolve().then(() => getBinarySync(binaryFile));\n }\n function instantiateArrayBuffer(binaryFile, imports, receiver) {\n return getBinaryPromise(binaryFile).then((binary) => WebAssembly.instantiate(binary, imports)).then((instance) => instance).then(receiver, (reason) => {\n err(\"failed to asynchronously prepare wasm: \" + reason);\n abort(reason);\n });\n }\n function instantiateAsync(binary, binaryFile, imports, callback) {\n if (!binary && typeof WebAssembly.instantiateStreaming == \"function\" && !isDataURI(binaryFile) && typeof fetch == \"function\") {\n return fetch(binaryFile, { credentials: \"same-origin\" }).then((response) => {\n var result = WebAssembly.instantiateStreaming(response, imports);\n return result.then(callback, function(reason) {\n err(\"wasm streaming compile failed: \" + reason);\n err(\"falling back to ArrayBuffer instantiation\");\n return instantiateArrayBuffer(binaryFile, imports, callback);\n });\n });\n }\n return instantiateArrayBuffer(binaryFile, imports, callback);\n }\n function createWasm() {\n var info = { \"a\": wasmImports };\n function receiveInstance(instance, module2) {\n var exports2 = instance.exports;\n exports2 = applySignatureConversions(exports2);\n wasmExports = exports2;\n registerTLSInit(wasmExports[\"ma\"]);\n wasmTable = wasmExports[\"ja\"];\n addOnInit(wasmExports[\"ia\"]);\n wasmModule = module2;\n removeRunDependency(\"wasm-instantiate\");\n return exports2;\n }\n addRunDependency(\"wasm-instantiate\");\n function receiveInstantiationResult(result) {\n receiveInstance(result[\"instance\"], result[\"module\"]);\n }\n if (Module[\"instantiateWasm\"]) {\n try {\n return Module[\"instantiateWasm\"](info, receiveInstance);\n } catch (e) {\n err(\"Module.instantiateWasm callback failed with error: \" + e);\n readyPromiseReject(e);\n }\n }\n instantiateAsync(wasmBinary, wasmBinaryFile, info, receiveInstantiationResult).catch(readyPromiseReject);\n return {};\n }\n var tempDouble;\n var tempI64;\n function ExitStatus(status) {\n this.name = \"ExitStatus\";\n this.message = `Program terminated with exit(${status})`;\n this.status = status;\n }\n var terminateWorker = function(worker) {\n worker.terminate();\n worker.onmessage = (e) => {\n };\n };\n function killThread(pthread_ptr) {\n var worker = PThread.pthreads[pthread_ptr];\n delete PThread.pthreads[pthread_ptr];\n terminateWorker(worker);\n __emscripten_thread_free_data(pthread_ptr);\n PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker), 1);\n worker.pthread_ptr = 0;\n }\n function cancelThread(pthread_ptr) {\n var worker = PThread.pthreads[pthread_ptr];\n worker.postMessage({ \"cmd\": \"cancel\" });\n }\n function cleanupThread(pthread_ptr) {\n var worker = PThread.pthreads[pthread_ptr];\n assert(worker);\n PThread.returnWorkerToPool(worker);\n }\n function spawnThread(threadParams) {\n var worker = PThread.getNewWorker();\n if (!worker) {\n return 6;\n }\n PThread.runningWorkers.push(worker);\n PThread.pthreads[threadParams.pthread_ptr] = worker;\n worker.pthread_ptr = threadParams.pthread_ptr;\n var msg = { \"cmd\": \"run\", \"start_routine\": threadParams.startRoutine, \"arg\": threadParams.arg, \"pthread_ptr\": threadParams.pthread_ptr };\n worker.postMessage(msg, threadParams.transferList);\n return 0;\n }\n var PATH = { isAbs: (path) => path.charAt(0) === \"/\", splitPath: (filename) => {\n var splitPathRe = /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\n return splitPathRe.exec(filename).slice(1);\n }, normalizeArray: (parts, allowAboveRoot) => {\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === \".\") {\n parts.splice(i, 1);\n } else if (last === \"..\") {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n if (allowAboveRoot) {\n for (; up; up--) {\n parts.unshift(\"..\");\n }\n }\n return parts;\n }, normalize: (path) => {\n var isAbsolute = PATH.isAbs(path), trailingSlash = path.substr(-1) === \"/\";\n path = PATH.normalizeArray(path.split(\"/\").filter((p) => !!p), !isAbsolute).join(\"/\");\n if (!path && !isAbsolute) {\n path = \".\";\n }\n if (path && trailingSlash) {\n path += \"/\";\n }\n return (isAbsolute ? \"/\" : \"\") + path;\n }, dirname: (path) => {\n var result = PATH.splitPath(path), root = result[0], dir = result[1];\n if (!root && !dir) {\n return \".\";\n }\n if (dir) {\n dir = dir.substr(0, dir.length - 1);\n }\n return root + dir;\n }, basename: (path) => {\n if (path === \"/\")\n return \"/\";\n path = PATH.normalize(path);\n path = path.replace(/\\/$/, \"\");\n var lastSlash = path.lastIndexOf(\"/\");\n if (lastSlash === -1)\n return path;\n return path.substr(lastSlash + 1);\n }, join: function() {\n var paths = Array.prototype.slice.call(arguments);\n return PATH.normalize(paths.join(\"/\"));\n }, join2: (l, r) => PATH.normalize(l + \"/\" + r) };\n var initRandomFill = () => {\n if (typeof crypto == \"object\" && typeof crypto[\"getRandomValues\"] == \"function\") {\n return (view) => (view.set(crypto.getRandomValues(new Uint8Array(view.byteLength))), view);\n } else\n abort(\"initRandomDevice\");\n };\n var randomFill = (view) => (randomFill = initRandomFill())(view);\n var PATH_FS = { resolve: function() {\n var resolvedPath = \"\", resolvedAbsolute = false;\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = i >= 0 ? arguments[i] : FS.cwd();\n if (typeof path != \"string\") {\n throw new TypeError(\"Arguments to path.resolve must be strings\");\n } else if (!path) {\n return \"\";\n }\n resolvedPath = path + \"/\" + resolvedPath;\n resolvedAbsolute = PATH.isAbs(path);\n }\n resolvedPath = PATH.normalizeArray(resolvedPath.split(\"/\").filter((p) => !!p), !resolvedAbsolute).join(\"/\");\n return (resolvedAbsolute ? \"/\" : \"\") + resolvedPath || \".\";\n }, relative: (from, to) => {\n from = PATH_FS.resolve(from).substr(1);\n to = PATH_FS.resolve(to).substr(1);\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== \"\")\n break;\n }\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== \"\")\n break;\n }\n if (start > end)\n return [];\n return arr.slice(start, end - start + 1);\n }\n var fromParts = trim(from.split(\"/\"));\n var toParts = trim(to.split(\"/\"));\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push(\"..\");\n }\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join(\"/\");\n } };\n var UTF8Decoder = typeof TextDecoder != \"undefined\" ? new TextDecoder(\"utf8\") : void 0;\n var UTF8ArrayToString = (heapOrArray, idx, maxBytesToRead) => {\n idx >>>= 0;\n var endIdx = idx + maxBytesToRead;\n var endPtr = idx;\n while (heapOrArray[endPtr] && !(endPtr >= endIdx))\n ++endPtr;\n if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {\n return UTF8Decoder.decode(heapOrArray.buffer instanceof SharedArrayBuffer ? heapOrArray.slice(idx, endPtr) : heapOrArray.subarray(idx, endPtr));\n }\n var str = \"\";\n while (idx < endPtr) {\n var u0 = heapOrArray[idx++];\n if (!(u0 & 128)) {\n str += String.fromCharCode(u0);\n continue;\n }\n var u1 = heapOrArray[idx++] & 63;\n if ((u0 & 224) == 192) {\n str += String.fromCharCode((u0 & 31) << 6 | u1);\n continue;\n }\n var u2 = heapOrArray[idx++] & 63;\n if ((u0 & 240) == 224) {\n u0 = (u0 & 15) << 12 | u1 << 6 | u2;\n } else {\n u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63;\n }\n if (u0 < 65536) {\n str += String.fromCharCode(u0);\n } else {\n var ch = u0 - 65536;\n str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);\n }\n }\n return str;\n };\n var FS_stdin_getChar_buffer = [];\n var lengthBytesUTF8 = (str) => {\n var len = 0;\n for (var i = 0; i < str.length; ++i) {\n var c = str.charCodeAt(i);\n if (c <= 127) {\n len++;\n } else if (c <= 2047) {\n len += 2;\n } else if (c >= 55296 && c <= 57343) {\n len += 4;\n ++i;\n } else {\n len += 3;\n }\n }\n return len;\n };\n var stringToUTF8Array = (str, heap, outIdx, maxBytesToWrite) => {\n outIdx >>>= 0;\n if (!(maxBytesToWrite > 0))\n return 0;\n var startIdx = outIdx;\n var endIdx = outIdx + maxBytesToWrite - 1;\n for (var i = 0; i < str.length; ++i) {\n var u = str.charCodeAt(i);\n if (u >= 55296 && u <= 57343) {\n var u1 = str.charCodeAt(++i);\n u = 65536 + ((u & 1023) << 10) | u1 & 1023;\n }\n if (u <= 127) {\n if (outIdx >= endIdx)\n break;\n heap[outIdx++ >>> 0] = u;\n } else if (u <= 2047) {\n if (outIdx + 1 >= endIdx)\n break;\n heap[outIdx++ >>> 0] = 192 | u >> 6;\n heap[outIdx++ >>> 0] = 128 | u & 63;\n } else if (u <= 65535) {\n if (outIdx + 2 >= endIdx)\n break;\n heap[outIdx++ >>> 0] = 224 | u >> 12;\n heap[outIdx++ >>> 0] = 128 | u >> 6 & 63;\n heap[outIdx++ >>> 0] = 128 | u & 63;\n } else {\n if (outIdx + 3 >= endIdx)\n break;\n heap[outIdx++ >>> 0] = 240 | u >> 18;\n heap[outIdx++ >>> 0] = 128 | u >> 12 & 63;\n heap[outIdx++ >>> 0] = 128 | u >> 6 & 63;\n heap[outIdx++ >>> 0] = 128 | u & 63;\n }\n }\n heap[outIdx >>> 0] = 0;\n return outIdx - startIdx;\n };\n function intArrayFromString(stringy, dontAddNull, length) {\n var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1;\n var u8array = new Array(len);\n var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);\n if (dontAddNull)\n u8array.length = numBytesWritten;\n return u8array;\n }\n var FS_stdin_getChar = () => {\n if (!FS_stdin_getChar_buffer.length) {\n var result = null;\n if (typeof window != \"undefined\" && typeof window.prompt == \"function\") {\n result = window.prompt(\"Input: \");\n if (result !== null) {\n result += \"\\n\";\n }\n } else if (typeof readline == \"function\") {\n result = readline();\n if (result !== null) {\n result += \"\\n\";\n }\n }\n if (!result) {\n return null;\n }\n FS_stdin_getChar_buffer = intArrayFromString(result, true);\n }\n return FS_stdin_getChar_buffer.shift();\n };\n var TTY = { ttys: [], init: function() {\n }, shutdown: function() {\n }, register: function(dev, ops) {\n TTY.ttys[dev] = { input: [], output: [], ops };\n FS.registerDevice(dev, TTY.stream_ops);\n }, stream_ops: { open: function(stream) {\n var tty = TTY.ttys[stream.node.rdev];\n if (!tty) {\n throw new FS.ErrnoError(43);\n }\n stream.tty = tty;\n stream.seekable = false;\n }, close: function(stream) {\n stream.tty.ops.fsync(stream.tty);\n }, fsync: function(stream) {\n stream.tty.ops.fsync(stream.tty);\n }, read: function(stream, buffer, offset, length, pos) {\n if (!stream.tty || !stream.tty.ops.get_char) {\n throw new FS.ErrnoError(60);\n }\n var bytesRead = 0;\n for (var i = 0; i < length; i++) {\n var result;\n try {\n result = stream.tty.ops.get_char(stream.tty);\n } catch (e) {\n throw new FS.ErrnoError(29);\n }\n if (result === void 0 && bytesRead === 0) {\n throw new FS.ErrnoError(6);\n }\n if (result === null || result === void 0)\n break;\n bytesRead++;\n buffer[offset + i] = result;\n }\n if (bytesRead) {\n stream.node.timestamp = Date.now();\n }\n return bytesRead;\n }, write: function(stream, buffer, offset, length, pos) {\n if (!stream.tty || !stream.tty.ops.put_char) {\n throw new FS.ErrnoError(60);\n }\n try {\n for (var i = 0; i < length; i++) {\n stream.tty.ops.put_char(stream.tty, buffer[offset + i]);\n }\n } catch (e) {\n throw new FS.ErrnoError(29);\n }\n if (length) {\n stream.node.timestamp = Date.now();\n }\n return i;\n } }, default_tty_ops: { get_char: function(tty) {\n return FS_stdin_getChar();\n }, put_char: function(tty, val) {\n if (val === null || val === 10) {\n out(UTF8ArrayToString(tty.output, 0));\n tty.output = [];\n } else {\n if (val != 0)\n tty.output.push(val);\n }\n }, fsync: function(tty) {\n if (tty.output && tty.output.length > 0) {\n out(UTF8ArrayToString(tty.output, 0));\n tty.output = [];\n }\n }, ioctl_tcgets: function(tty) {\n return { c_iflag: 25856, c_oflag: 5, c_cflag: 191, c_lflag: 35387, c_cc: [3, 28, 127, 21, 4, 0, 1, 0, 17, 19, 26, 0, 18, 15, 23, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] };\n }, ioctl_tcsets: function(tty, optional_actions, data) {\n return 0;\n }, ioctl_tiocgwinsz: function(tty) {\n return [24, 80];\n } }, default_tty1_ops: { put_char: function(tty, val) {\n if (val === null || val === 10) {\n err(UTF8ArrayToString(tty.output, 0));\n tty.output = [];\n } else {\n if (val != 0)\n tty.output.push(val);\n }\n }, fsync: function(tty) {\n if (tty.output && tty.output.length > 0) {\n err(UTF8ArrayToString(tty.output, 0));\n tty.output = [];\n }\n } } };\n var mmapAlloc = (size) => {\n abort();\n };\n var MEMFS = { ops_table: null, mount(mount) {\n return MEMFS.createNode(null, \"/\", 16384 | 511, 0);\n }, createNode(parent, name, mode, dev) {\n if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {\n throw new FS.ErrnoError(63);\n }\n if (!MEMFS.ops_table) {\n MEMFS.ops_table = { dir: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, lookup: MEMFS.node_ops.lookup, mknod: MEMFS.node_ops.mknod, rename: MEMFS.node_ops.rename, unlink: MEMFS.node_ops.unlink, rmdir: MEMFS.node_ops.rmdir, readdir: MEMFS.node_ops.readdir, symlink: MEMFS.node_ops.symlink }, stream: { llseek: MEMFS.stream_ops.llseek } }, file: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: { llseek: MEMFS.stream_ops.llseek, read: MEMFS.stream_ops.read, write: MEMFS.stream_ops.write, allocate: MEMFS.stream_ops.allocate, mmap: MEMFS.stream_ops.mmap, msync: MEMFS.stream_ops.msync } }, link: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, readlink: MEMFS.node_ops.readlink }, stream: {} }, chrdev: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: FS.chrdev_stream_ops } };\n }\n var node = FS.createNode(parent, name, mode, dev);\n if (FS.isDir(node.mode)) {\n node.node_ops = MEMFS.ops_table.dir.node;\n node.stream_ops = MEMFS.ops_table.dir.stream;\n node.contents = {};\n } else if (FS.isFile(node.mode)) {\n node.node_ops = MEMFS.ops_table.file.node;\n node.stream_ops = MEMFS.ops_table.file.stream;\n node.usedBytes = 0;\n node.contents = null;\n } else if (FS.isLink(node.mode)) {\n node.node_ops = MEMFS.ops_table.link.node;\n node.stream_ops = MEMFS.ops_table.link.stream;\n } else if (FS.isChrdev(node.mode)) {\n node.node_ops = MEMFS.ops_table.chrdev.node;\n node.stream_ops = MEMFS.ops_table.chrdev.stream;\n }\n node.timestamp = Date.now();\n if (parent) {\n parent.contents[name] = node;\n parent.timestamp = node.timestamp;\n }\n return node;\n }, getFileDataAsTypedArray(node) {\n if (!node.contents)\n return new Uint8Array(0);\n if (node.contents.subarray)\n return node.contents.subarray(0, node.usedBytes);\n return new Uint8Array(node.contents);\n }, expandFileStorage(node, newCapacity) {\n var prevCapacity = node.contents ? node.contents.length : 0;\n if (prevCapacity >= newCapacity)\n return;\n var CAPACITY_DOUBLING_MAX = 1024 * 1024;\n newCapacity = Math.max(newCapacity, prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125) >>> 0);\n if (prevCapacity != 0)\n newCapacity = Math.max(newCapacity, 256);\n var oldContents = node.contents;\n node.contents = new Uint8Array(newCapacity);\n if (node.usedBytes > 0)\n node.contents.set(oldContents.subarray(0, node.usedBytes), 0);\n }, resizeFileStorage(node, newSize) {\n if (node.usedBytes == newSize)\n return;\n if (newSize == 0) {\n node.contents = null;\n node.usedBytes = 0;\n } else {\n var oldContents = node.contents;\n node.contents = new Uint8Array(newSize);\n if (oldContents) {\n node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes)));\n }\n node.usedBytes = newSize;\n }\n }, node_ops: { getattr(node) {\n var attr = {};\n attr.dev = FS.isChrdev(node.mode) ? node.id : 1;\n attr.ino = node.id;\n attr.mode = node.mode;\n attr.nlink = 1;\n attr.uid = 0;\n attr.gid = 0;\n attr.rdev = node.rdev;\n if (FS.isDir(node.mode)) {\n attr.size = 4096;\n } else if (FS.isFile(node.mode)) {\n attr.size = node.usedBytes;\n } else if (FS.isLink(node.mode)) {\n attr.size = node.link.length;\n } else {\n attr.size = 0;\n }\n attr.atime = new Date(node.timestamp);\n attr.mtime = new Date(node.timestamp);\n attr.ctime = new Date(node.timestamp);\n attr.blksize = 4096;\n attr.blocks = Math.ceil(attr.size / attr.blksize);\n return attr;\n }, setattr(node, attr) {\n if (attr.mode !== void 0) {\n node.mode = attr.mode;\n }\n if (attr.timestamp !== void 0) {\n node.timestamp = attr.timestamp;\n }\n if (attr.size !== void 0) {\n MEMFS.resizeFileStorage(node, attr.size);\n }\n }, lookup(parent, name) {\n throw FS.genericErrors[44];\n }, mknod(parent, name, mode, dev) {\n return MEMFS.createNode(parent, name, mode, dev);\n }, rename(old_node, new_dir, new_name) {\n if (FS.isDir(old_node.mode)) {\n var new_node;\n try {\n new_node = FS.lookupNode(new_dir, new_name);\n } catch (e) {\n }\n if (new_node) {\n for (var i in new_node.contents) {\n throw new FS.ErrnoError(55);\n }\n }\n }\n delete old_node.parent.contents[old_node.name];\n old_node.parent.timestamp = Date.now();\n old_node.name = new_name;\n new_dir.contents[new_name] = old_node;\n new_dir.timestamp = old_node.parent.timestamp;\n old_node.parent = new_dir;\n }, unlink(parent, name) {\n delete parent.contents[name];\n parent.timestamp = Date.now();\n }, rmdir(parent, name) {\n var node = FS.lookupNode(parent, name);\n for (var i in node.contents) {\n throw new FS.ErrnoError(55);\n }\n delete parent.contents[name];\n parent.timestamp = Date.now();\n }, readdir(node) {\n var entries = [\".\", \"..\"];\n for (var key in node.contents) {\n if (!node.contents.hasOwnProperty(key)) {\n continue;\n }\n entries.push(key);\n }\n return entries;\n }, symlink(parent, newname, oldpath) {\n var node = MEMFS.createNode(parent, newname, 511 | 40960, 0);\n node.link = oldpath;\n return node;\n }, readlink(node) {\n if (!FS.isLink(node.mode)) {\n throw new FS.ErrnoError(28);\n }\n return node.link;\n } }, stream_ops: { read(stream, buffer, offset, length, position) {\n var contents = stream.node.contents;\n if (position >= stream.node.usedBytes)\n return 0;\n var size = Math.min(stream.node.usedBytes - position, length);\n if (size > 8 && contents.subarray) {\n buffer.set(contents.subarray(position, position + size), offset);\n } else {\n for (var i = 0; i < size; i++)\n buffer[offset + i] = contents[position + i];\n }\n return size;\n }, write(stream, buffer, offset, length, position, canOwn) {\n if (buffer.buffer === GROWABLE_HEAP_I8().buffer) {\n canOwn = false;\n }\n if (!length)\n return 0;\n var node = stream.node;\n node.timestamp = Date.now();\n if (buffer.subarray && (!node.contents || node.contents.subarray)) {\n if (canOwn) {\n node.contents = buffer.subarray(offset, offset + length);\n node.usedBytes = length;\n return length;\n } else if (node.usedBytes === 0 && position === 0) {\n node.contents = buffer.slice(offset, offset + length);\n node.usedBytes = length;\n return length;\n } else if (position + length <= node.usedBytes) {\n node.contents.set(buffer.subarray(offset, offset + length), position);\n return length;\n }\n }\n MEMFS.expandFileStorage(node, position + length);\n if (node.contents.subarray && buffer.subarray) {\n node.contents.set(buffer.subarray(offset, offset + length), position);\n } else {\n for (var i = 0; i < length; i++) {\n node.contents[position + i] = buffer[offset + i];\n }\n }\n node.usedBytes = Math.max(node.usedBytes, position + length);\n return length;\n }, llseek(stream, offset, whence) {\n var position = offset;\n if (whence === 1) {\n position += stream.position;\n } else if (whence === 2) {\n if (FS.isFile(stream.node.mode)) {\n position += stream.node.usedBytes;\n }\n }\n if (position < 0) {\n throw new FS.ErrnoError(28);\n }\n return position;\n }, allocate(stream, offset, length) {\n MEMFS.expandFileStorage(stream.node, offset + length);\n stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length);\n }, mmap(stream, length, position, prot, flags) {\n if (!FS.isFile(stream.node.mode)) {\n throw new FS.ErrnoError(43);\n }\n var ptr;\n var allocated;\n var contents = stream.node.contents;\n if (!(flags & 2) && contents.buffer === GROWABLE_HEAP_I8().buffer) {\n allocated = false;\n ptr = contents.byteOffset;\n } else {\n if (position > 0 || position + length < contents.length) {\n if (contents.subarray) {\n contents = contents.subarray(position, position + length);\n } else {\n contents = Array.prototype.slice.call(contents, position, position + length);\n }\n }\n allocated = true;\n ptr = mmapAlloc(length);\n if (!ptr) {\n throw new FS.ErrnoError(48);\n }\n GROWABLE_HEAP_I8().set(contents, ptr >>> 0);\n }\n return { ptr, allocated };\n }, msync(stream, buffer, offset, length, mmapFlags) {\n MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false);\n return 0;\n } } };\n var asyncLoad = (url, onload, onerror, noRunDep) => {\n var dep = !noRunDep ? getUniqueRunDependency(`al ${url}`) : \"\";\n readAsync(url, (arrayBuffer) => {\n assert(arrayBuffer, `Loading data file \"${url}\" failed (no arrayBuffer).`);\n onload(new Uint8Array(arrayBuffer));\n if (dep)\n removeRunDependency(dep);\n }, (event) => {\n if (onerror) {\n onerror();\n } else {\n throw `Loading data file \"${url}\" failed.`;\n }\n });\n if (dep)\n addRunDependency(dep);\n };\n var preloadPlugins = Module[\"preloadPlugins\"] || [];\n function FS_handledByPreloadPlugin(byteArray, fullname, finish, onerror) {\n if (typeof Browser != \"undefined\")\n Browser.init();\n var handled = false;\n preloadPlugins.forEach(function(plugin) {\n if (handled)\n return;\n if (plugin[\"canHandle\"](fullname)) {\n plugin[\"handle\"](byteArray, fullname, finish, onerror);\n handled = true;\n }\n });\n return handled;\n }\n function FS_createPreloadedFile(parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) {\n var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent;\n var dep = getUniqueRunDependency(`cp ${fullname}`);\n function processData(byteArray) {\n function finish(byteArray2) {\n if (preFinish)\n preFinish();\n if (!dontCreateFile) {\n FS.createDataFile(parent, name, byteArray2, canRead, canWrite, canOwn);\n }\n if (onload)\n onload();\n removeRunDependency(dep);\n }\n if (FS_handledByPreloadPlugin(byteArray, fullname, finish, () => {\n if (onerror)\n onerror();\n removeRunDependency(dep);\n })) {\n return;\n }\n finish(byteArray);\n }\n addRunDependency(dep);\n if (typeof url == \"string\") {\n asyncLoad(url, (byteArray) => processData(byteArray), onerror);\n } else {\n processData(url);\n }\n }\n function FS_modeStringToFlags(str) {\n var flagModes = { \"r\": 0, \"r+\": 2, \"w\": 512 | 64 | 1, \"w+\": 512 | 64 | 2, \"a\": 1024 | 64 | 1, \"a+\": 1024 | 64 | 2 };\n var flags = flagModes[str];\n if (typeof flags == \"undefined\") {\n throw new Error(`Unknown file open mode: ${str}`);\n }\n return flags;\n }\n function FS_getMode(canRead, canWrite) {\n var mode = 0;\n if (canRead)\n mode |= 292 | 73;\n if (canWrite)\n mode |= 146;\n return mode;\n }\n var FS = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: \"/\", initialized: false, ignorePermissions: true, ErrnoError: null, genericErrors: {}, filesystems: null, syncFSRequests: 0, lookupPath: (path, opts = {}) => {\n path = PATH_FS.resolve(path);\n if (!path)\n return { path: \"\", node: null };\n var defaults = { follow_mount: true, recurse_count: 0 };\n opts = Object.assign(defaults, opts);\n if (opts.recurse_count > 8) {\n throw new FS.ErrnoError(32);\n }\n var parts = path.split(\"/\").filter((p) => !!p);\n var current = FS.root;\n var current_path = \"/\";\n for (var i = 0; i < parts.length; i++) {\n var islast = i === parts.length - 1;\n if (islast && opts.parent) {\n break;\n }\n current = FS.lookupNode(current, parts[i]);\n current_path = PATH.join2(current_path, parts[i]);\n if (FS.isMountpoint(current)) {\n if (!islast || islast && opts.follow_mount) {\n current = current.mounted.root;\n }\n }\n if (!islast || opts.follow) {\n var count = 0;\n while (FS.isLink(current.mode)) {\n var link = FS.readlink(current_path);\n current_path = PATH_FS.resolve(PATH.dirname(current_path), link);\n var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count + 1 });\n current = lookup.node;\n if (count++ > 40) {\n throw new FS.ErrnoError(32);\n }\n }\n }\n }\n return { path: current_path, node: current };\n }, getPath: (node) => {\n var path;\n while (true) {\n if (FS.isRoot(node)) {\n var mount = node.mount.mountpoint;\n if (!path)\n return mount;\n return mount[mount.length - 1] !== \"/\" ? `${mount}/${path}` : mount + path;\n }\n path = path ? `${node.name}/${path}` : node.name;\n node = node.parent;\n }\n }, hashName: (parentid, name) => {\n var hash = 0;\n for (var i = 0; i < name.length; i++) {\n hash = (hash << 5) - hash + name.charCodeAt(i) | 0;\n }\n return (parentid + hash >>> 0) % FS.nameTable.length;\n }, hashAddNode: (node) => {\n var hash = FS.hashName(node.parent.id, node.name);\n node.name_next = FS.nameTable[hash];\n FS.nameTable[hash] = node;\n }, hashRemoveNode: (node) => {\n var hash = FS.hashName(node.parent.id, node.name);\n if (FS.nameTable[hash] === node) {\n FS.nameTable[hash] = node.name_next;\n } else {\n var current = FS.nameTable[hash];\n while (current) {\n if (current.name_next === node) {\n current.name_next = node.name_next;\n break;\n }\n current = current.name_next;\n }\n }\n }, lookupNode: (parent, name) => {\n var errCode = FS.mayLookup(parent);\n if (errCode) {\n throw new FS.ErrnoError(errCode, parent);\n }\n var hash = FS.hashName(parent.id, name);\n for (var node = FS.nameTable[hash]; node; node = node.name_next) {\n var nodeName = node.name;\n if (node.parent.id === parent.id && nodeName === name) {\n return node;\n }\n }\n return FS.lookup(parent, name);\n }, createNode: (parent, name, mode, rdev) => {\n var node = new FS.FSNode(parent, name, mode, rdev);\n FS.hashAddNode(node);\n return node;\n }, destroyNode: (node) => {\n FS.hashRemoveNode(node);\n }, isRoot: (node) => node === node.parent, isMountpoint: (node) => !!node.mounted, isFile: (mode) => (mode & 61440) === 32768, isDir: (mode) => (mode & 61440) === 16384, isLink: (mode) => (mode & 61440) === 40960, isChrdev: (mode) => (mode & 61440) === 8192, isBlkdev: (mode) => (mode & 61440) === 24576, isFIFO: (mode) => (mode & 61440) === 4096, isSocket: (mode) => (mode & 49152) === 49152, flagsToPermissionString: (flag) => {\n var perms = [\"r\", \"w\", \"rw\"][flag & 3];\n if (flag & 512) {\n perms += \"w\";\n }\n return perms;\n }, nodePermissions: (node, perms) => {\n if (FS.ignorePermissions) {\n return 0;\n }\n if (perms.includes(\"r\") && !(node.mode & 292)) {\n return 2;\n } else if (perms.includes(\"w\") && !(node.mode & 146)) {\n return 2;\n } else if (perms.includes(\"x\") && !(node.mode & 73)) {\n return 2;\n }\n return 0;\n }, mayLookup: (dir) => {\n var errCode = FS.nodePermissions(dir, \"x\");\n if (errCode)\n return errCode;\n if (!dir.node_ops.lookup)\n return 2;\n return 0;\n }, mayCreate: (dir, name) => {\n try {\n var node = FS.lookupNode(dir, name);\n return 20;\n } catch (e) {\n }\n return FS.nodePermissions(dir, \"wx\");\n }, mayDelete: (dir, name, isdir) => {\n var node;\n try {\n node = FS.lookupNode(dir, name);\n } catch (e) {\n return e.errno;\n }\n var errCode = FS.nodePermissions(dir, \"wx\");\n if (errCode) {\n return errCode;\n }\n if (isdir) {\n if (!FS.isDir(node.mode)) {\n return 54;\n }\n if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) {\n return 10;\n }\n } else {\n if (FS.isDir(node.mode)) {\n return 31;\n }\n }\n return 0;\n }, mayOpen: (node, flags) => {\n if (!node) {\n return 44;\n }\n if (FS.isLink(node.mode)) {\n return 32;\n } else if (FS.isDir(node.mode)) {\n if (FS.flagsToPermissionString(flags) !== \"r\" || flags & 512) {\n return 31;\n }\n }\n return FS.nodePermissions(node, FS.flagsToPermissionString(flags));\n }, MAX_OPEN_FDS: 4096, nextfd: () => {\n for (var fd = 0; fd <= FS.MAX_OPEN_FDS; fd++) {\n if (!FS.streams[fd]) {\n return fd;\n }\n }\n throw new FS.ErrnoError(33);\n }, getStreamChecked: (fd) => {\n var stream = FS.getStream(fd);\n if (!stream) {\n throw new FS.ErrnoError(8);\n }\n return stream;\n }, getStream: (fd) => FS.streams[fd], createStream: (stream, fd = -1) => {\n if (!FS.FSStream) {\n FS.FSStream = function() {\n this.shared = {};\n };\n FS.FSStream.prototype = {};\n Object.defineProperties(FS.FSStream.prototype, { object: { get() {\n return this.node;\n }, set(val) {\n this.node = val;\n } }, isRead: { get() {\n return (this.flags & 2097155) !== 1;\n } }, isWrite: { get() {\n return (this.flags & 2097155) !== 0;\n } }, isAppend: { get() {\n return this.flags & 1024;\n } }, flags: { get() {\n return this.shared.flags;\n }, set(val) {\n this.shared.flags = val;\n } }, position: { get() {\n return this.shared.position;\n }, set(val) {\n this.shared.position = val;\n } } });\n }\n stream = Object.assign(new FS.FSStream(), stream);\n if (fd == -1) {\n fd = FS.nextfd();\n }\n stream.fd = fd;\n FS.streams[fd] = stream;\n return stream;\n }, closeStream: (fd) => {\n FS.streams[fd] = null;\n }, chrdev_stream_ops: { open: (stream) => {\n var device = FS.getDevice(stream.node.rdev);\n stream.stream_ops = device.stream_ops;\n if (stream.stream_ops.open) {\n stream.stream_ops.open(stream);\n }\n }, llseek: () => {\n throw new FS.ErrnoError(70);\n } }, major: (dev) => dev >> 8, minor: (dev) => dev & 255, makedev: (ma, mi) => ma << 8 | mi, registerDevice: (dev, ops) => {\n FS.devices[dev] = { stream_ops: ops };\n }, getDevice: (dev) => FS.devices[dev], getMounts: (mount) => {\n var mounts = [];\n var check = [mount];\n while (check.length) {\n var m = check.pop();\n mounts.push(m);\n check.push.apply(check, m.mounts);\n }\n return mounts;\n }, syncfs: (populate, callback) => {\n if (typeof populate == \"function\") {\n callback = populate;\n populate = false;\n }\n FS.syncFSRequests++;\n if (FS.syncFSRequests > 1) {\n err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);\n }\n var mounts = FS.getMounts(FS.root.mount);\n var completed = 0;\n function doCallback(errCode) {\n FS.syncFSRequests--;\n return callback(errCode);\n }\n function done(errCode) {\n if (errCode) {\n if (!done.errored) {\n done.errored = true;\n return doCallback(errCode);\n }\n return;\n }\n if (++completed >= mounts.length) {\n doCallback(null);\n }\n }\n mounts.forEach((mount) => {\n if (!mount.type.syncfs) {\n return done(null);\n }\n mount.type.syncfs(mount, populate, done);\n });\n }, mount: (type, opts, mountpoint) => {\n var root = mountpoint === \"/\";\n var pseudo = !mountpoint;\n var node;\n if (root && FS.root) {\n throw new FS.ErrnoError(10);\n } else if (!root && !pseudo) {\n var lookup = FS.lookupPath(mountpoint, { follow_mount: false });\n mountpoint = lookup.path;\n node = lookup.node;\n if (FS.isMountpoint(node)) {\n throw new FS.ErrnoError(10);\n }\n if (!FS.isDir(node.mode)) {\n throw new FS.ErrnoError(54);\n }\n }\n var mount = { type, opts, mountpoint, mounts: [] };\n var mountRoot = type.mount(mount);\n mountRoot.mount = mount;\n mount.root = mountRoot;\n if (root) {\n FS.root = mountRoot;\n } else if (node) {\n node.mounted = mount;\n if (node.mount) {\n node.mount.mounts.push(mount);\n }\n }\n return mountRoot;\n }, unmount: (mountpoint) => {\n var lookup = FS.lookupPath(mountpoint, { follow_mount: false });\n if (!FS.isMountpoint(lookup.node)) {\n throw new FS.ErrnoError(28);\n }\n var node = lookup.node;\n var mount = node.mounted;\n var mounts = FS.getMounts(mount);\n Object.keys(FS.nameTable).forEach((hash) => {\n var current = FS.nameTable[hash];\n while (current) {\n var next = current.name_next;\n if (mounts.includes(current.mount)) {\n FS.destroyNode(current);\n }\n current = next;\n }\n });\n node.mounted = null;\n var idx = node.mount.mounts.indexOf(mount);\n node.mount.mounts.splice(idx, 1);\n }, lookup: (parent, name) => parent.node_ops.lookup(parent, name), mknod: (path, mode, dev) => {\n var lookup = FS.lookupPath(path, { parent: true });\n var parent = lookup.node;\n var name = PATH.basename(path);\n if (!name || name === \".\" || name === \"..\") {\n throw new FS.ErrnoError(28);\n }\n var errCode = FS.mayCreate(parent, name);\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n if (!parent.node_ops.mknod) {\n throw new FS.ErrnoError(63);\n }\n return parent.node_ops.mknod(parent, name, mode, dev);\n }, create: (path, mode) => {\n mode = mode !== void 0 ? mode : 438;\n mode &= 4095;\n mode |= 32768;\n return FS.mknod(path, mode, 0);\n }, mkdir: (path, mode) => {\n mode = mode !== void 0 ? mode : 511;\n mode &= 511 | 512;\n mode |= 16384;\n return FS.mknod(path, mode, 0);\n }, mkdirTree: (path, mode) => {\n var dirs = path.split(\"/\");\n var d = \"\";\n for (var i = 0; i < dirs.length; ++i) {\n if (!dirs[i])\n continue;\n d += \"/\" + dirs[i];\n try {\n FS.mkdir(d, mode);\n } catch (e) {\n if (e.errno != 20)\n throw e;\n }\n }\n }, mkdev: (path, mode, dev) => {\n if (typeof dev == \"undefined\") {\n dev = mode;\n mode = 438;\n }\n mode |= 8192;\n return FS.mknod(path, mode, dev);\n }, symlink: (oldpath, newpath) => {\n if (!PATH_FS.resolve(oldpath)) {\n throw new FS.ErrnoError(44);\n }\n var lookup = FS.lookupPath(newpath, { parent: true });\n var parent = lookup.node;\n if (!parent) {\n throw new FS.ErrnoError(44);\n }\n var newname = PATH.basename(newpath);\n var errCode = FS.mayCreate(parent, newname);\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n if (!parent.node_ops.symlink) {\n throw new FS.ErrnoError(63);\n }\n return parent.node_ops.symlink(parent, newname, oldpath);\n }, rename: (old_path, new_path) => {\n var old_dirname = PATH.dirname(old_path);\n var new_dirname = PATH.dirname(new_path);\n var old_name = PATH.basename(old_path);\n var new_name = PATH.basename(new_path);\n var lookup, old_dir, new_dir;\n lookup = FS.lookupPath(old_path, { parent: true });\n old_dir = lookup.node;\n lookup = FS.lookupPath(new_path, { parent: true });\n new_dir = lookup.node;\n if (!old_dir || !new_dir)\n throw new FS.ErrnoError(44);\n if (old_dir.mount !== new_dir.mount) {\n throw new FS.ErrnoError(75);\n }\n var old_node = FS.lookupNode(old_dir, old_name);\n var relative = PATH_FS.relative(old_path, new_dirname);\n if (relative.charAt(0) !== \".\") {\n throw new FS.ErrnoError(28);\n }\n relative = PATH_FS.relative(new_path, old_dirname);\n if (relative.charAt(0) !== \".\") {\n throw new FS.ErrnoError(55);\n }\n var new_node;\n try {\n new_node = FS.lookupNode(new_dir, new_name);\n } catch (e) {\n }\n if (old_node === new_node) {\n return;\n }\n var isdir = FS.isDir(old_node.mode);\n var errCode = FS.mayDelete(old_dir, old_name, isdir);\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n errCode = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name);\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n if (!old_dir.node_ops.rename) {\n throw new FS.ErrnoError(63);\n }\n if (FS.isMountpoint(old_node) || new_node && FS.isMountpoint(new_node)) {\n throw new FS.ErrnoError(10);\n }\n if (new_dir !== old_dir) {\n errCode = FS.nodePermissions(old_dir, \"w\");\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n }\n FS.hashRemoveNode(old_node);\n try {\n old_dir.node_ops.rename(old_node, new_dir, new_name);\n } catch (e) {\n throw e;\n } finally {\n FS.hashAddNode(old_node);\n }\n }, rmdir: (path) => {\n var lookup = FS.lookupPath(path, { parent: true });\n var parent = lookup.node;\n var name = PATH.basename(path);\n var node = FS.lookupNode(parent, name);\n var errCode = FS.mayDelete(parent, name, true);\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n if (!parent.node_ops.rmdir) {\n throw new FS.ErrnoError(63);\n }\n if (FS.isMountpoint(node)) {\n throw new FS.ErrnoError(10);\n }\n parent.node_ops.rmdir(parent, name);\n FS.destroyNode(node);\n }, readdir: (path) => {\n var lookup = FS.lookupPath(path, { follow: true });\n var node = lookup.node;\n if (!node.node_ops.readdir) {\n throw new FS.ErrnoError(54);\n }\n return node.node_ops.readdir(node);\n }, unlink: (path) => {\n var lookup = FS.lookupPath(path, { parent: true });\n var parent = lookup.node;\n if (!parent) {\n throw new FS.ErrnoError(44);\n }\n var name = PATH.basename(path);\n var node = FS.lookupNode(parent, name);\n var errCode = FS.mayDelete(parent, name, false);\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n if (!parent.node_ops.unlink) {\n throw new FS.ErrnoError(63);\n }\n if (FS.isMountpoint(node)) {\n throw new FS.ErrnoError(10);\n }\n parent.node_ops.unlink(parent, name);\n FS.destroyNode(node);\n }, readlink: (path) => {\n var lookup = FS.lookupPath(path);\n var link = lookup.node;\n if (!link) {\n throw new FS.ErrnoError(44);\n }\n if (!link.node_ops.readlink) {\n throw new FS.ErrnoError(28);\n }\n return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link));\n }, stat: (path, dontFollow) => {\n var lookup = FS.lookupPath(path, { follow: !dontFollow });\n var node = lookup.node;\n if (!node) {\n throw new FS.ErrnoError(44);\n }\n if (!node.node_ops.getattr) {\n throw new FS.ErrnoError(63);\n }\n return node.node_ops.getattr(node);\n }, lstat: (path) => FS.stat(path, true), chmod: (path, mode, dontFollow) => {\n var node;\n if (typeof path == \"string\") {\n var lookup = FS.lookupPath(path, { follow: !dontFollow });\n node = lookup.node;\n } else {\n node = path;\n }\n if (!node.node_ops.setattr) {\n throw new FS.ErrnoError(63);\n }\n node.node_ops.setattr(node, { mode: mode & 4095 | node.mode & ~4095, timestamp: Date.now() });\n }, lchmod: (path, mode) => {\n FS.chmod(path, mode, true);\n }, fchmod: (fd, mode) => {\n var stream = FS.getStreamChecked(fd);\n FS.chmod(stream.node, mode);\n }, chown: (path, uid, gid, dontFollow) => {\n var node;\n if (typeof path == \"string\") {\n var lookup = FS.lookupPath(path, { follow: !dontFollow });\n node = lookup.node;\n } else {\n node = path;\n }\n if (!node.node_ops.setattr) {\n throw new FS.ErrnoError(63);\n }\n node.node_ops.setattr(node, { timestamp: Date.now() });\n }, lchown: (path, uid, gid) => {\n FS.chown(path, uid, gid, true);\n }, fchown: (fd, uid, gid) => {\n var stream = FS.getStreamChecked(fd);\n FS.chown(stream.node, uid, gid);\n }, truncate: (path, len) => {\n if (len < 0) {\n throw new FS.ErrnoError(28);\n }\n var node;\n if (typeof path == \"string\") {\n var lookup = FS.lookupPath(path, { follow: true });\n node = lookup.node;\n } else {\n node = path;\n }\n if (!node.node_ops.setattr) {\n throw new FS.ErrnoError(63);\n }\n if (FS.isDir(node.mode)) {\n throw new FS.ErrnoError(31);\n }\n if (!FS.isFile(node.mode)) {\n throw new FS.ErrnoError(28);\n }\n var errCode = FS.nodePermissions(node, \"w\");\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n node.node_ops.setattr(node, { size: len, timestamp: Date.now() });\n }, ftruncate: (fd, len) => {\n var stream = FS.getStreamChecked(fd);\n if ((stream.flags & 2097155) === 0) {\n throw new FS.ErrnoError(28);\n }\n FS.truncate(stream.node, len);\n }, utime: (path, atime, mtime) => {\n var lookup = FS.lookupPath(path, { follow: true });\n var node = lookup.node;\n node.node_ops.setattr(node, { timestamp: Math.max(atime, mtime) });\n }, open: (path, flags, mode) => {\n if (path === \"\") {\n throw new FS.ErrnoError(44);\n }\n flags = typeof flags == \"string\" ? FS_modeStringToFlags(flags) : flags;\n mode = typeof mode == \"undefined\" ? 438 : mode;\n if (flags & 64) {\n mode = mode & 4095 | 32768;\n } else {\n mode = 0;\n }\n var node;\n if (typeof path == \"object\") {\n node = path;\n } else {\n path = PATH.normalize(path);\n try {\n var lookup = FS.lookupPath(path, { follow: !(flags & 131072) });\n node = lookup.node;\n } catch (e) {\n }\n }\n var created = false;\n if (flags & 64) {\n if (node) {\n if (flags & 128) {\n throw new FS.ErrnoError(20);\n }\n } else {\n node = FS.mknod(path, mode, 0);\n created = true;\n }\n }\n if (!node) {\n throw new FS.ErrnoError(44);\n }\n if (FS.isChrdev(node.mode)) {\n flags &= ~512;\n }\n if (flags & 65536 && !FS.isDir(node.mode)) {\n throw new FS.ErrnoError(54);\n }\n if (!created) {\n var errCode = FS.mayOpen(node, flags);\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n }\n if (flags & 512 && !created) {\n FS.truncate(node, 0);\n }\n flags &= ~(128 | 512 | 131072);\n var stream = FS.createStream({ node, path: FS.getPath(node), flags, seekable: true, position: 0, stream_ops: node.stream_ops, ungotten: [], error: false });\n if (stream.stream_ops.open) {\n stream.stream_ops.open(stream);\n }\n if (Module[\"logReadFiles\"] && !(flags & 1)) {\n if (!FS.readFiles)\n FS.readFiles = {};\n if (!(path in FS.readFiles)) {\n FS.readFiles[path] = 1;\n }\n }\n return stream;\n }, close: (stream) => {\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(8);\n }\n if (stream.getdents)\n stream.getdents = null;\n try {\n if (stream.stream_ops.close) {\n stream.stream_ops.close(stream);\n }\n } catch (e) {\n throw e;\n } finally {\n FS.closeStream(stream.fd);\n }\n stream.fd = null;\n }, isClosed: (stream) => stream.fd === null, llseek: (stream, offset, whence) => {\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(8);\n }\n if (!stream.seekable || !stream.stream_ops.llseek) {\n throw new FS.ErrnoError(70);\n }\n if (whence != 0 && whence != 1 && whence != 2) {\n throw new FS.ErrnoError(28);\n }\n stream.position = stream.stream_ops.llseek(stream, offset, whence);\n stream.ungotten = [];\n return stream.position;\n }, read: (stream, buffer, offset, length, position) => {\n if (length < 0 || position < 0) {\n throw new FS.ErrnoError(28);\n }\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(8);\n }\n if ((stream.flags & 2097155) === 1) {\n throw new FS.ErrnoError(8);\n }\n if (FS.isDir(stream.node.mode)) {\n throw new FS.ErrnoError(31);\n }\n if (!stream.stream_ops.read) {\n throw new FS.ErrnoError(28);\n }\n var seeking = typeof position != \"undefined\";\n if (!seeking) {\n position = stream.position;\n } else if (!stream.seekable) {\n throw new FS.ErrnoError(70);\n }\n var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position);\n if (!seeking)\n stream.position += bytesRead;\n return bytesRead;\n }, write: (stream, buffer, offset, length, position, canOwn) => {\n if (length < 0 || position < 0) {\n throw new FS.ErrnoError(28);\n }\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(8);\n }\n if ((stream.flags & 2097155) === 0) {\n throw new FS.ErrnoError(8);\n }\n if (FS.isDir(stream.node.mode)) {\n throw new FS.ErrnoError(31);\n }\n if (!stream.stream_ops.write) {\n throw new FS.ErrnoError(28);\n }\n if (stream.seekable && stream.flags & 1024) {\n FS.llseek(stream, 0, 2);\n }\n var seeking = typeof position != \"undefined\";\n if (!seeking) {\n position = stream.position;\n } else if (!stream.seekable) {\n throw new FS.ErrnoError(70);\n }\n var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn);\n if (!seeking)\n stream.position += bytesWritten;\n return bytesWritten;\n }, allocate: (stream, offset, length) => {\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(8);\n }\n if (offset < 0 || length <= 0) {\n throw new FS.ErrnoError(28);\n }\n if ((stream.flags & 2097155) === 0) {\n throw new FS.ErrnoError(8);\n }\n if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) {\n throw new FS.ErrnoError(43);\n }\n if (!stream.stream_ops.allocate) {\n throw new FS.ErrnoError(138);\n }\n stream.stream_ops.allocate(stream, offset, length);\n }, mmap: (stream, length, position, prot, flags) => {\n if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) {\n throw new FS.ErrnoError(2);\n }\n if ((stream.flags & 2097155) === 1) {\n throw new FS.ErrnoError(2);\n }\n if (!stream.stream_ops.mmap) {\n throw new FS.ErrnoError(43);\n }\n return stream.stream_ops.mmap(stream, length, position, prot, flags);\n }, msync: (stream, buffer, offset, length, mmapFlags) => {\n if (!stream.stream_ops.msync) {\n return 0;\n }\n return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags);\n }, munmap: (stream) => 0, ioctl: (stream, cmd, arg) => {\n if (!stream.stream_ops.ioctl) {\n throw new FS.ErrnoError(59);\n }\n return stream.stream_ops.ioctl(stream, cmd, arg);\n }, readFile: (path, opts = {}) => {\n opts.flags = opts.flags || 0;\n opts.encoding = opts.encoding || \"binary\";\n if (opts.encoding !== \"utf8\" && opts.encoding !== \"binary\") {\n throw new Error(`Invalid encoding type \"${opts.encoding}\"`);\n }\n var ret;\n var stream = FS.open(path, opts.flags);\n var stat = FS.stat(path);\n var length = stat.size;\n var buf = new Uint8Array(length);\n FS.read(stream, buf, 0, length, 0);\n if (opts.encoding === \"utf8\") {\n ret = UTF8ArrayToString(buf, 0);\n } else if (opts.encoding === \"binary\") {\n ret = buf;\n }\n FS.close(stream);\n return ret;\n }, writeFile: (path, data, opts = {}) => {\n opts.flags = opts.flags || 577;\n var stream = FS.open(path, opts.flags, opts.mode);\n if (typeof data == \"string\") {\n var buf = new Uint8Array(lengthBytesUTF8(data) + 1);\n var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length);\n FS.write(stream, buf, 0, actualNumBytes, void 0, opts.canOwn);\n } else if (ArrayBuffer.isView(data)) {\n FS.write(stream, data, 0, data.byteLength, void 0, opts.canOwn);\n } else {\n throw new Error(\"Unsupported data type\");\n }\n FS.close(stream);\n }, cwd: () => FS.currentPath, chdir: (path) => {\n var lookup = FS.lookupPath(path, { follow: true });\n if (lookup.node === null) {\n throw new FS.ErrnoError(44);\n }\n if (!FS.isDir(lookup.node.mode)) {\n throw new FS.ErrnoError(54);\n }\n var errCode = FS.nodePermissions(lookup.node, \"x\");\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n FS.currentPath = lookup.path;\n }, createDefaultDirectories: () => {\n FS.mkdir(\"/tmp\");\n FS.mkdir(\"/home\");\n FS.mkdir(\"/home/web_user\");\n }, createDefaultDevices: () => {\n FS.mkdir(\"/dev\");\n FS.registerDevice(FS.makedev(1, 3), { read: () => 0, write: (stream, buffer, offset, length, pos) => length });\n FS.mkdev(\"/dev/null\", FS.makedev(1, 3));\n TTY.register(FS.makedev(5, 0), TTY.default_tty_ops);\n TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops);\n FS.mkdev(\"/dev/tty\", FS.makedev(5, 0));\n FS.mkdev(\"/dev/tty1\", FS.makedev(6, 0));\n var randomBuffer = new Uint8Array(1024), randomLeft = 0;\n var randomByte = () => {\n if (randomLeft === 0) {\n randomLeft = randomFill(randomBuffer).byteLength;\n }\n return randomBuffer[--randomLeft];\n };\n FS.createDevice(\"/dev\", \"random\", randomByte);\n FS.createDevice(\"/dev\", \"urandom\", randomByte);\n FS.mkdir(\"/dev/shm\");\n FS.mkdir(\"/dev/shm/tmp\");\n }, createSpecialDirectories: () => {\n FS.mkdir(\"/proc\");\n var proc_self = FS.mkdir(\"/proc/self\");\n FS.mkdir(\"/proc/self/fd\");\n FS.mount({ mount: () => {\n var node = FS.createNode(proc_self, \"fd\", 16384 | 511, 73);\n node.node_ops = { lookup: (parent, name) => {\n var fd = +name;\n var stream = FS.getStreamChecked(fd);\n var ret = { parent: null, mount: { mountpoint: \"fake\" }, node_ops: { readlink: () => stream.path } };\n ret.parent = ret;\n return ret;\n } };\n return node;\n } }, {}, \"/proc/self/fd\");\n }, createStandardStreams: () => {\n if (Module[\"stdin\"]) {\n FS.createDevice(\"/dev\", \"stdin\", Module[\"stdin\"]);\n } else {\n FS.symlink(\"/dev/tty\", \"/dev/stdin\");\n }\n if (Module[\"stdout\"]) {\n FS.createDevice(\"/dev\", \"stdout\", null, Module[\"stdout\"]);\n } else {\n FS.symlink(\"/dev/tty\", \"/dev/stdout\");\n }\n if (Module[\"stderr\"]) {\n FS.createDevice(\"/dev\", \"stderr\", null, Module[\"stderr\"]);\n } else {\n FS.symlink(\"/dev/tty1\", \"/dev/stderr\");\n }\n var stdin = FS.open(\"/dev/stdin\", 0);\n var stdout = FS.open(\"/dev/stdout\", 1);\n var stderr = FS.open(\"/dev/stderr\", 1);\n }, ensureErrnoError: () => {\n if (FS.ErrnoError)\n return;\n FS.ErrnoError = function ErrnoError(errno, node) {\n this.name = \"ErrnoError\";\n this.node = node;\n this.setErrno = function(errno2) {\n this.errno = errno2;\n };\n this.setErrno(errno);\n this.message = \"FS error\";\n };\n FS.ErrnoError.prototype = new Error();\n FS.ErrnoError.prototype.constructor = FS.ErrnoError;\n [44].forEach((code) => {\n FS.genericErrors[code] = new FS.ErrnoError(code);\n FS.genericErrors[code].stack = \"\";\n });\n }, staticInit: () => {\n FS.ensureErrnoError();\n FS.nameTable = new Array(4096);\n FS.mount(MEMFS, {}, \"/\");\n FS.createDefaultDirectories();\n FS.createDefaultDevices();\n FS.createSpecialDirectories();\n FS.filesystems = { \"MEMFS\": MEMFS };\n }, init: (input, output, error) => {\n FS.init.initialized = true;\n FS.ensureErrnoError();\n Module[\"stdin\"] = input || Module[\"stdin\"];\n Module[\"stdout\"] = output || Module[\"stdout\"];\n Module[\"stderr\"] = error || Module[\"stderr\"];\n FS.createStandardStreams();\n }, quit: () => {\n FS.init.initialized = false;\n for (var i = 0; i < FS.streams.length; i++) {\n var stream = FS.streams[i];\n if (!stream) {\n continue;\n }\n FS.close(stream);\n }\n }, findObject: (path, dontResolveLastLink) => {\n var ret = FS.analyzePath(path, dontResolveLastLink);\n if (!ret.exists) {\n return null;\n }\n return ret.object;\n }, analyzePath: (path, dontResolveLastLink) => {\n try {\n var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });\n path = lookup.path;\n } catch (e) {\n }\n var ret = { isRoot: false, exists: false, error: 0, name: null, path: null, object: null, parentExists: false, parentPath: null, parentObject: null };\n try {\n var lookup = FS.lookupPath(path, { parent: true });\n ret.parentExists = true;\n ret.parentPath = lookup.path;\n ret.parentObject = lookup.node;\n ret.name = PATH.basename(path);\n lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });\n ret.exists = true;\n ret.path = lookup.path;\n ret.object = lookup.node;\n ret.name = lookup.node.name;\n ret.isRoot = lookup.path === \"/\";\n } catch (e) {\n ret.error = e.errno;\n }\n return ret;\n }, createPath: (parent, path, canRead, canWrite) => {\n parent = typeof parent == \"string\" ? parent : FS.getPath(parent);\n var parts = path.split(\"/\").reverse();\n while (parts.length) {\n var part = parts.pop();\n if (!part)\n continue;\n var current = PATH.join2(parent, part);\n try {\n FS.mkdir(current);\n } catch (e) {\n }\n parent = current;\n }\n return current;\n }, createFile: (parent, name, properties, canRead, canWrite) => {\n var path = PATH.join2(typeof parent == \"string\" ? parent : FS.getPath(parent), name);\n var mode = FS_getMode(canRead, canWrite);\n return FS.create(path, mode);\n }, createDataFile: (parent, name, data, canRead, canWrite, canOwn) => {\n var path = name;\n if (parent) {\n parent = typeof parent == \"string\" ? parent : FS.getPath(parent);\n path = name ? PATH.join2(parent, name) : parent;\n }\n var mode = FS_getMode(canRead, canWrite);\n var node = FS.create(path, mode);\n if (data) {\n if (typeof data == \"string\") {\n var arr = new Array(data.length);\n for (var i = 0, len = data.length; i < len; ++i)\n arr[i] = data.charCodeAt(i);\n data = arr;\n }\n FS.chmod(node, mode | 146);\n var stream = FS.open(node, 577);\n FS.write(stream, data, 0, data.length, 0, canOwn);\n FS.close(stream);\n FS.chmod(node, mode);\n }\n return node;\n }, createDevice: (parent, name, input, output) => {\n var path = PATH.join2(typeof parent == \"string\" ? parent : FS.getPath(parent), name);\n var mode = FS_getMode(!!input, !!output);\n if (!FS.createDevice.major)\n FS.createDevice.major = 64;\n var dev = FS.makedev(FS.createDevice.major++, 0);\n FS.registerDevice(dev, { open: (stream) => {\n stream.seekable = false;\n }, close: (stream) => {\n if (output && output.buffer && output.buffer.length) {\n output(10);\n }\n }, read: (stream, buffer, offset, length, pos) => {\n var bytesRead = 0;\n for (var i = 0; i < length; i++) {\n var result;\n try {\n result = input();\n } catch (e) {\n throw new FS.ErrnoError(29);\n }\n if (result === void 0 && bytesRead === 0) {\n throw new FS.ErrnoError(6);\n }\n if (result === null || result === void 0)\n break;\n bytesRead++;\n buffer[offset + i] = result;\n }\n if (bytesRead) {\n stream.node.timestamp = Date.now();\n }\n return bytesRead;\n }, write: (stream, buffer, offset, length, pos) => {\n for (var i = 0; i < length; i++) {\n try {\n output(buffer[offset + i]);\n } catch (e) {\n throw new FS.ErrnoError(29);\n }\n }\n if (length) {\n stream.node.timestamp = Date.now();\n }\n return i;\n } });\n return FS.mkdev(path, mode, dev);\n }, forceLoadFile: (obj) => {\n if (obj.isDevice || obj.isFolder || obj.link || obj.contents)\n return true;\n if (typeof XMLHttpRequest != \"undefined\") {\n throw new Error(\"Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.\");\n } else if (read_) {\n try {\n obj.contents = intArrayFromString(read_(obj.url), true);\n obj.usedBytes = obj.contents.length;\n } catch (e) {\n throw new FS.ErrnoError(29);\n }\n } else {\n throw new Error(\"Cannot load without read() or XMLHttpRequest.\");\n }\n }, createLazyFile: (parent, name, url, canRead, canWrite) => {\n function LazyUint8Array() {\n this.lengthKnown = false;\n this.chunks = [];\n }\n LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) {\n if (idx > this.length - 1 || idx < 0) {\n return void 0;\n }\n var chunkOffset = idx % this.chunkSize;\n var chunkNum = idx / this.chunkSize | 0;\n return this.getter(chunkNum)[chunkOffset];\n };\n LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) {\n this.getter = getter;\n };\n LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() {\n var xhr = new XMLHttpRequest();\n xhr.open(\"HEAD\", url, false);\n xhr.send(null);\n if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304))\n throw new Error(\"Couldn't load \" + url + \". Status: \" + xhr.status);\n var datalength = Number(xhr.getResponseHeader(\"Content-length\"));\n var header;\n var hasByteServing = (header = xhr.getResponseHeader(\"Accept-Ranges\")) && header === \"bytes\";\n var usesGzip = (header = xhr.getResponseHeader(\"Content-Encoding\")) && header === \"gzip\";\n var chunkSize = 1024 * 1024;\n if (!hasByteServing)\n chunkSize = datalength;\n var doXHR = (from, to) => {\n if (from > to)\n throw new Error(\"invalid range (\" + from + \", \" + to + \") or no bytes requested!\");\n if (to > datalength - 1)\n throw new Error(\"only \" + datalength + \" bytes available! programmer error!\");\n var xhr2 = new XMLHttpRequest();\n xhr2.open(\"GET\", url, false);\n if (datalength !== chunkSize)\n xhr2.setRequestHeader(\"Range\", \"bytes=\" + from + \"-\" + to);\n xhr2.responseType = \"arraybuffer\";\n if (xhr2.overrideMimeType) {\n xhr2.overrideMimeType(\"text/plain; charset=x-user-defined\");\n }\n xhr2.send(null);\n if (!(xhr2.status >= 200 && xhr2.status < 300 || xhr2.status === 304))\n throw new Error(\"Couldn't load \" + url + \". Status: \" + xhr2.status);\n if (xhr2.response !== void 0) {\n return new Uint8Array(xhr2.response || []);\n }\n return intArrayFromString(xhr2.responseText || \"\", true);\n };\n var lazyArray2 = this;\n lazyArray2.setDataGetter((chunkNum) => {\n var start = chunkNum * chunkSize;\n var end = (chunkNum + 1) * chunkSize - 1;\n end = Math.min(end, datalength - 1);\n if (typeof lazyArray2.chunks[chunkNum] == \"undefined\") {\n lazyArray2.chunks[chunkNum] = doXHR(start, end);\n }\n if (typeof lazyArray2.chunks[chunkNum] == \"undefined\")\n throw new Error(\"doXHR failed!\");\n return lazyArray2.chunks[chunkNum];\n });\n if (usesGzip || !datalength) {\n chunkSize = datalength = 1;\n datalength = this.getter(0).length;\n chunkSize = datalength;\n out(\"LazyFiles on gzip forces download of the whole file when length is accessed\");\n }\n this._length = datalength;\n this._chunkSize = chunkSize;\n this.lengthKnown = true;\n };\n if (typeof XMLHttpRequest != \"undefined\") {\n if (!ENVIRONMENT_IS_WORKER)\n throw \"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";\n var lazyArray = new LazyUint8Array();\n Object.defineProperties(lazyArray, { length: { get: function() {\n if (!this.lengthKnown) {\n this.cacheLength();\n }\n return this._length;\n } }, chunkSize: { get: function() {\n if (!this.lengthKnown) {\n this.cacheLength();\n }\n return this._chunkSize;\n } } });\n var properties = { isDevice: false, contents: lazyArray };\n } else {\n var properties = { isDevice: false, url };\n }\n var node = FS.createFile(parent, name, properties, canRead, canWrite);\n if (properties.contents) {\n node.contents = properties.contents;\n } else if (properties.url) {\n node.contents = null;\n node.url = properties.url;\n }\n Object.defineProperties(node, { usedBytes: { get: function() {\n return this.contents.length;\n } } });\n var stream_ops = {};\n var keys = Object.keys(node.stream_ops);\n keys.forEach((key) => {\n var fn = node.stream_ops[key];\n stream_ops[key] = function forceLoadLazyFile() {\n FS.forceLoadFile(node);\n return fn.apply(null, arguments);\n };\n });\n function writeChunks(stream, buffer, offset, length, position) {\n var contents = stream.node.contents;\n if (position >= contents.length)\n return 0;\n var size = Math.min(contents.length - position, length);\n if (contents.slice) {\n for (var i = 0; i < size; i++) {\n buffer[offset + i] = contents[position + i];\n }\n } else {\n for (var i = 0; i < size; i++) {\n buffer[offset + i] = contents.get(position + i);\n }\n }\n return size;\n }\n stream_ops.read = (stream, buffer, offset, length, position) => {\n FS.forceLoadFile(node);\n return writeChunks(stream, buffer, offset, length, position);\n };\n stream_ops.mmap = (stream, length, position, prot, flags) => {\n FS.forceLoadFile(node);\n var ptr = mmapAlloc(length);\n if (!ptr) {\n throw new FS.ErrnoError(48);\n }\n writeChunks(stream, GROWABLE_HEAP_I8(), ptr, length, position);\n return { ptr, allocated: true };\n };\n node.stream_ops = stream_ops;\n return node;\n } };\n var UTF8ToString = (ptr, maxBytesToRead) => {\n ptr >>>= 0;\n return ptr ? UTF8ArrayToString(GROWABLE_HEAP_U8(), ptr, maxBytesToRead) : \"\";\n };\n var SYSCALLS = { DEFAULT_POLLMASK: 5, calculateAt: function(dirfd, path, allowEmpty) {\n if (PATH.isAbs(path)) {\n return path;\n }\n var dir;\n if (dirfd === -100) {\n dir = FS.cwd();\n } else {\n var dirstream = SYSCALLS.getStreamFromFD(dirfd);\n dir = dirstream.path;\n }\n if (path.length == 0) {\n if (!allowEmpty) {\n throw new FS.ErrnoError(44);\n }\n return dir;\n }\n return PATH.join2(dir, path);\n }, doStat: function(func, path, buf) {\n try {\n var stat = func(path);\n } catch (e) {\n if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) {\n return -54;\n }\n throw e;\n }\n GROWABLE_HEAP_I32()[buf >>> 2] = stat.dev;\n GROWABLE_HEAP_I32()[buf + 4 >>> 2] = stat.mode;\n GROWABLE_HEAP_U32()[buf + 8 >>> 2] = stat.nlink;\n GROWABLE_HEAP_I32()[buf + 12 >>> 2] = stat.uid;\n GROWABLE_HEAP_I32()[buf + 16 >>> 2] = stat.gid;\n GROWABLE_HEAP_I32()[buf + 20 >>> 2] = stat.rdev;\n tempI64 = [stat.size >>> 0, (tempDouble = stat.size, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 24 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 28 >>> 2] = tempI64[1];\n GROWABLE_HEAP_I32()[buf + 32 >>> 2] = 4096;\n GROWABLE_HEAP_I32()[buf + 36 >>> 2] = stat.blocks;\n var atime = stat.atime.getTime();\n var mtime = stat.mtime.getTime();\n var ctime = stat.ctime.getTime();\n tempI64 = [Math.floor(atime / 1e3) >>> 0, (tempDouble = Math.floor(atime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 40 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 44 >>> 2] = tempI64[1];\n GROWABLE_HEAP_U32()[buf + 48 >>> 2] = atime % 1e3 * 1e3;\n tempI64 = [Math.floor(mtime / 1e3) >>> 0, (tempDouble = Math.floor(mtime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 56 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 60 >>> 2] = tempI64[1];\n GROWABLE_HEAP_U32()[buf + 64 >>> 2] = mtime % 1e3 * 1e3;\n tempI64 = [Math.floor(ctime / 1e3) >>> 0, (tempDouble = Math.floor(ctime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 72 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 76 >>> 2] = tempI64[1];\n GROWABLE_HEAP_U32()[buf + 80 >>> 2] = ctime % 1e3 * 1e3;\n tempI64 = [stat.ino >>> 0, (tempDouble = stat.ino, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 88 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 92 >>> 2] = tempI64[1];\n return 0;\n }, doMsync: function(addr, stream, len, flags, offset) {\n if (!FS.isFile(stream.node.mode)) {\n throw new FS.ErrnoError(43);\n }\n if (flags & 2) {\n return 0;\n }\n var buffer = GROWABLE_HEAP_U8().slice(addr, addr + len);\n FS.msync(stream, buffer, offset, len, flags);\n }, varargs: void 0, get() {\n SYSCALLS.varargs += 4;\n var ret = GROWABLE_HEAP_I32()[SYSCALLS.varargs - 4 >>> 2];\n return ret;\n }, getStr(ptr) {\n var ret = UTF8ToString(ptr);\n return ret;\n }, getStreamFromFD: function(fd) {\n var stream = FS.getStreamChecked(fd);\n return stream;\n } };\n function _proc_exit(code) {\n if (ENVIRONMENT_IS_PTHREAD)\n return proxyToMainThread(1, 1, code);\n EXITSTATUS = code;\n if (!keepRuntimeAlive()) {\n PThread.terminateAllThreads();\n if (Module[\"onExit\"])\n Module[\"onExit\"](code);\n ABORT = true;\n }\n quit_(code, new ExitStatus(code));\n }\n var exitJS = (status, implicit) => {\n EXITSTATUS = status;\n if (ENVIRONMENT_IS_PTHREAD) {\n exitOnMainThread(status);\n throw \"unwind\";\n }\n _proc_exit(status);\n };\n var _exit = exitJS;\n var handleException = (e) => {\n if (e instanceof ExitStatus || e == \"unwind\") {\n return EXITSTATUS;\n }\n quit_(1, e);\n };\n var PThread = { unusedWorkers: [], runningWorkers: [], tlsInitFunctions: [], pthreads: {}, init: function() {\n if (ENVIRONMENT_IS_PTHREAD) {\n PThread.initWorker();\n } else {\n PThread.initMainThread();\n }\n }, initMainThread: function() {\n var pthreadPoolSize = navigator.hardwareConcurrency;\n while (pthreadPoolSize--) {\n PThread.allocateUnusedWorker();\n }\n addOnPreRun(() => {\n addRunDependency(\"loading-workers\");\n PThread.loadWasmModuleToAllWorkers(() => removeRunDependency(\"loading-workers\"));\n });\n }, initWorker: function() {\n noExitRuntime = false;\n }, setExitStatus: function(status) {\n EXITSTATUS = status;\n }, terminateAllThreads__deps: [\"$terminateWorker\"], terminateAllThreads: function() {\n for (var worker of PThread.runningWorkers) {\n terminateWorker(worker);\n }\n for (var worker of PThread.unusedWorkers) {\n terminateWorker(worker);\n }\n PThread.unusedWorkers = [];\n PThread.runningWorkers = [];\n PThread.pthreads = [];\n }, returnWorkerToPool: function(worker) {\n var pthread_ptr = worker.pthread_ptr;\n delete PThread.pthreads[pthread_ptr];\n PThread.unusedWorkers.push(worker);\n PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker), 1);\n worker.pthread_ptr = 0;\n __emscripten_thread_free_data(pthread_ptr);\n }, receiveObjectTransfer: function(data) {\n }, threadInitTLS: function() {\n PThread.tlsInitFunctions.forEach((f) => f());\n }, loadWasmModuleToWorker: (worker) => new Promise((onFinishedLoading) => {\n worker.onmessage = (e) => {\n var d = e[\"data\"];\n var cmd = d[\"cmd\"];\n if (d[\"targetThread\"] && d[\"targetThread\"] != _pthread_self()) {\n var targetWorker = PThread.pthreads[d.targetThread];\n if (targetWorker) {\n targetWorker.postMessage(d, d[\"transferList\"]);\n } else {\n err('Internal error! Worker sent a message \"' + cmd + '\" to target pthread ' + d[\"targetThread\"] + \", but that thread no longer exists!\");\n }\n return;\n }\n if (cmd === \"checkMailbox\") {\n checkMailbox();\n } else if (cmd === \"spawnThread\") {\n spawnThread(d);\n } else if (cmd === \"cleanupThread\") {\n cleanupThread(d[\"thread\"]);\n } else if (cmd === \"killThread\") {\n killThread(d[\"thread\"]);\n } else if (cmd === \"cancelThread\") {\n cancelThread(d[\"thread\"]);\n } else if (cmd === \"loaded\") {\n worker.loaded = true;\n onFinishedLoading(worker);\n } else if (cmd === \"alert\") {\n alert(\"Thread \" + d[\"threadId\"] + \": \" + d[\"text\"]);\n } else if (d.target === \"setimmediate\") {\n worker.postMessage(d);\n } else if (cmd === \"callHandler\") {\n Module[d[\"handler\"]](...d[\"args\"]);\n } else if (cmd) {\n err(\"worker sent an unknown command \" + cmd);\n }\n };\n worker.onerror = (e) => {\n var message = \"worker sent an error!\";\n err(message + \" \" + e.filename + \":\" + e.lineno + \": \" + e.message);\n throw e;\n };\n var handlers = [];\n var knownHandlers = [\"onExit\", \"onAbort\", \"print\", \"printErr\"];\n for (var handler of knownHandlers) {\n if (Module.hasOwnProperty(handler)) {\n handlers.push(handler);\n }\n }\n worker.postMessage({ \"cmd\": \"load\", \"handlers\": handlers, \"urlOrBlob\": Module[\"mainScriptUrlOrBlob\"] || _scriptDir, \"wasmMemory\": wasmMemory, \"wasmModule\": wasmModule });\n }), loadWasmModuleToAllWorkers: function(onMaybeReady) {\n if (ENVIRONMENT_IS_PTHREAD) {\n return onMaybeReady();\n }\n let pthreadPoolReady = Promise.all(PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker));\n pthreadPoolReady.then(onMaybeReady);\n }, allocateUnusedWorker: function() {\n var worker;\n var pthreadMainJs = locateFile(\"web-ifc-mt.worker.js\");\n worker = new Worker(pthreadMainJs);\n PThread.unusedWorkers.push(worker);\n }, getNewWorker: function() {\n if (PThread.unusedWorkers.length == 0) {\n PThread.allocateUnusedWorker();\n PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0]);\n }\n return PThread.unusedWorkers.pop();\n } };\n Module[\"PThread\"] = PThread;\n var callRuntimeCallbacks = (callbacks) => {\n while (callbacks.length > 0) {\n callbacks.shift()(Module);\n }\n };\n function establishStackSpace() {\n var pthread_ptr = _pthread_self();\n var stackHigh = GROWABLE_HEAP_I32()[pthread_ptr + 52 >>> 2];\n var stackSize = GROWABLE_HEAP_I32()[pthread_ptr + 56 >>> 2];\n var stackLow = stackHigh - stackSize;\n _emscripten_stack_set_limits(stackHigh, stackLow);\n stackRestore(stackHigh);\n }\n Module[\"establishStackSpace\"] = establishStackSpace;\n function exitOnMainThread(returnCode) {\n if (ENVIRONMENT_IS_PTHREAD)\n return proxyToMainThread(2, 0, returnCode);\n _exit(returnCode);\n }\n var wasmTableMirror = [];\n var getWasmTableEntry = (funcPtr) => {\n var func = wasmTableMirror[funcPtr];\n if (!func) {\n if (funcPtr >= wasmTableMirror.length)\n wasmTableMirror.length = funcPtr + 1;\n wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr);\n }\n return func;\n };\n function invokeEntryPoint(ptr, arg) {\n var result = getWasmTableEntry(ptr)(arg);\n function finish(result2) {\n if (keepRuntimeAlive()) {\n PThread.setExitStatus(result2);\n } else {\n __emscripten_thread_exit(result2);\n }\n }\n finish(result);\n }\n Module[\"invokeEntryPoint\"] = invokeEntryPoint;\n function registerTLSInit(tlsInitFunc) {\n PThread.tlsInitFunctions.push(tlsInitFunc);\n }\n function ExceptionInfo(excPtr) {\n this.excPtr = excPtr;\n this.ptr = excPtr - 24;\n this.set_type = function(type) {\n GROWABLE_HEAP_U32()[this.ptr + 4 >>> 2] = type;\n };\n this.get_type = function() {\n return GROWABLE_HEAP_U32()[this.ptr + 4 >>> 2];\n };\n this.set_destructor = function(destructor) {\n GROWABLE_HEAP_U32()[this.ptr + 8 >>> 2] = destructor;\n };\n this.get_destructor = function() {\n return GROWABLE_HEAP_U32()[this.ptr + 8 >>> 2];\n };\n this.set_caught = function(caught) {\n caught = caught ? 1 : 0;\n GROWABLE_HEAP_I8()[this.ptr + 12 >>> 0] = caught;\n };\n this.get_caught = function() {\n return GROWABLE_HEAP_I8()[this.ptr + 12 >>> 0] != 0;\n };\n this.set_rethrown = function(rethrown) {\n rethrown = rethrown ? 1 : 0;\n GROWABLE_HEAP_I8()[this.ptr + 13 >>> 0] = rethrown;\n };\n this.get_rethrown = function() {\n return GROWABLE_HEAP_I8()[this.ptr + 13 >>> 0] != 0;\n };\n this.init = function(type, destructor) {\n this.set_adjusted_ptr(0);\n this.set_type(type);\n this.set_destructor(destructor);\n };\n this.set_adjusted_ptr = function(adjustedPtr) {\n GROWABLE_HEAP_U32()[this.ptr + 16 >>> 2] = adjustedPtr;\n };\n this.get_adjusted_ptr = function() {\n return GROWABLE_HEAP_U32()[this.ptr + 16 >>> 2];\n };\n this.get_exception_ptr = function() {\n var isPointer = ___cxa_is_pointer_type(this.get_type());\n if (isPointer) {\n return GROWABLE_HEAP_U32()[this.excPtr >>> 2];\n }\n var adjusted = this.get_adjusted_ptr();\n if (adjusted !== 0)\n return adjusted;\n return this.excPtr;\n };\n }\n var exceptionLast = 0;\n var uncaughtExceptionCount = 0;\n function convertI32PairToI53Checked(lo, hi) {\n return hi + 2097152 >>> 0 < 4194305 - !!lo ? (lo >>> 0) + hi * 4294967296 : NaN;\n }\n function ___cxa_throw(ptr, type, destructor) {\n ptr >>>= 0;\n type >>>= 0;\n destructor >>>= 0;\n var info = new ExceptionInfo(ptr);\n info.init(type, destructor);\n exceptionLast = ptr;\n uncaughtExceptionCount++;\n throw exceptionLast;\n }\n function ___emscripten_init_main_thread_js(tb) {\n tb >>>= 0;\n __emscripten_thread_init(tb, !ENVIRONMENT_IS_WORKER, 1, !ENVIRONMENT_IS_WEB, 5242880, false);\n PThread.threadInitTLS();\n }\n function ___emscripten_thread_cleanup(thread) {\n thread >>>= 0;\n if (!ENVIRONMENT_IS_PTHREAD)\n cleanupThread(thread);\n else\n postMessage({ \"cmd\": \"cleanupThread\", \"thread\": thread });\n }\n var tupleRegistrations = {};\n function runDestructors(destructors) {\n while (destructors.length) {\n var ptr = destructors.pop();\n var del = destructors.pop();\n del(ptr);\n }\n }\n function simpleReadValueFromPointer(pointer) {\n return this[\"fromWireType\"](GROWABLE_HEAP_I32()[pointer >>> 2]);\n }\n var awaitingDependencies = {};\n var registeredTypes = {};\n var typeDependencies = {};\n var InternalError = void 0;\n function throwInternalError(message) {\n throw new InternalError(message);\n }\n function whenDependentTypesAreResolved(myTypes, dependentTypes, getTypeConverters) {\n myTypes.forEach(function(type) {\n typeDependencies[type] = dependentTypes;\n });\n function onComplete(typeConverters2) {\n var myTypeConverters = getTypeConverters(typeConverters2);\n if (myTypeConverters.length !== myTypes.length) {\n throwInternalError(\"Mismatched type converter count\");\n }\n for (var i = 0; i < myTypes.length; ++i) {\n registerType(myTypes[i], myTypeConverters[i]);\n }\n }\n var typeConverters = new Array(dependentTypes.length);\n var unregisteredTypes = [];\n var registered = 0;\n dependentTypes.forEach((dt, i) => {\n if (registeredTypes.hasOwnProperty(dt)) {\n typeConverters[i] = registeredTypes[dt];\n } else {\n unregisteredTypes.push(dt);\n if (!awaitingDependencies.hasOwnProperty(dt)) {\n awaitingDependencies[dt] = [];\n }\n awaitingDependencies[dt].push(() => {\n typeConverters[i] = registeredTypes[dt];\n ++registered;\n if (registered === unregisteredTypes.length) {\n onComplete(typeConverters);\n }\n });\n }\n });\n if (unregisteredTypes.length === 0) {\n onComplete(typeConverters);\n }\n }\n function __embind_finalize_value_array(rawTupleType) {\n rawTupleType >>>= 0;\n var reg = tupleRegistrations[rawTupleType];\n delete tupleRegistrations[rawTupleType];\n var elements = reg.elements;\n var elementsLength = elements.length;\n var elementTypes = elements.map(function(elt) {\n return elt.getterReturnType;\n }).concat(elements.map(function(elt) {\n return elt.setterArgumentType;\n }));\n var rawConstructor = reg.rawConstructor;\n var rawDestructor = reg.rawDestructor;\n whenDependentTypesAreResolved([rawTupleType], elementTypes, function(elementTypes2) {\n elements.forEach((elt, i) => {\n var getterReturnType = elementTypes2[i];\n var getter = elt.getter;\n var getterContext = elt.getterContext;\n var setterArgumentType = elementTypes2[i + elementsLength];\n var setter = elt.setter;\n var setterContext = elt.setterContext;\n elt.read = (ptr) => getterReturnType[\"fromWireType\"](getter(getterContext, ptr));\n elt.write = (ptr, o) => {\n var destructors = [];\n setter(setterContext, ptr, setterArgumentType[\"toWireType\"](destructors, o));\n runDestructors(destructors);\n };\n });\n return [{ name: reg.name, \"fromWireType\": function(ptr) {\n var rv = new Array(elementsLength);\n for (var i = 0; i < elementsLength; ++i) {\n rv[i] = elements[i].read(ptr);\n }\n rawDestructor(ptr);\n return rv;\n }, \"toWireType\": function(destructors, o) {\n if (elementsLength !== o.length) {\n throw new TypeError(`Incorrect number of tuple elements for ${reg.name}: expected=${elementsLength}, actual=${o.length}`);\n }\n var ptr = rawConstructor();\n for (var i = 0; i < elementsLength; ++i) {\n elements[i].write(ptr, o[i]);\n }\n if (destructors !== null) {\n destructors.push(rawDestructor, ptr);\n }\n return ptr;\n }, \"argPackAdvance\": 8, \"readValueFromPointer\": simpleReadValueFromPointer, destructorFunction: rawDestructor }];\n });\n }\n var structRegistrations = {};\n var __embind_finalize_value_object = function(structType) {\n structType >>>= 0;\n var reg = structRegistrations[structType];\n delete structRegistrations[structType];\n var rawConstructor = reg.rawConstructor;\n var rawDestructor = reg.rawDestructor;\n var fieldRecords = reg.fields;\n var fieldTypes = fieldRecords.map((field) => field.getterReturnType).concat(fieldRecords.map((field) => field.setterArgumentType));\n whenDependentTypesAreResolved([structType], fieldTypes, (fieldTypes2) => {\n var fields = {};\n fieldRecords.forEach((field, i) => {\n var fieldName = field.fieldName;\n var getterReturnType = fieldTypes2[i];\n var getter = field.getter;\n var getterContext = field.getterContext;\n var setterArgumentType = fieldTypes2[i + fieldRecords.length];\n var setter = field.setter;\n var setterContext = field.setterContext;\n fields[fieldName] = { read: (ptr) => getterReturnType[\"fromWireType\"](getter(getterContext, ptr)), write: (ptr, o) => {\n var destructors = [];\n setter(setterContext, ptr, setterArgumentType[\"toWireType\"](destructors, o));\n runDestructors(destructors);\n } };\n });\n return [{ name: reg.name, \"fromWireType\": function(ptr) {\n var rv = {};\n for (var i in fields) {\n rv[i] = fields[i].read(ptr);\n }\n rawDestructor(ptr);\n return rv;\n }, \"toWireType\": function(destructors, o) {\n for (var fieldName in fields) {\n if (!(fieldName in o)) {\n throw new TypeError(`Missing field: \"${fieldName}\"`);\n }\n }\n var ptr = rawConstructor();\n for (fieldName in fields) {\n fields[fieldName].write(ptr, o[fieldName]);\n }\n if (destructors !== null) {\n destructors.push(rawDestructor, ptr);\n }\n return ptr;\n }, \"argPackAdvance\": 8, \"readValueFromPointer\": simpleReadValueFromPointer, destructorFunction: rawDestructor }];\n });\n };\n function __embind_register_bigint(primitiveType, name, size, minRange, maxRange) {\n primitiveType >>>= 0;\n name >>>= 0;\n size >>>= 0;\n }\n function getShiftFromSize(size) {\n switch (size) {\n case 1:\n return 0;\n case 2:\n return 1;\n case 4:\n return 2;\n case 8:\n return 3;\n default:\n throw new TypeError(`Unknown type size: ${size}`);\n }\n }\n function embind_init_charCodes() {\n var codes = new Array(256);\n for (var i = 0; i < 256; ++i) {\n codes[i] = String.fromCharCode(i);\n }\n embind_charCodes = codes;\n }\n var embind_charCodes = void 0;\n function readLatin1String(ptr) {\n var ret = \"\";\n var c = ptr;\n while (GROWABLE_HEAP_U8()[c >>> 0]) {\n ret += embind_charCodes[GROWABLE_HEAP_U8()[c++ >>> 0]];\n }\n return ret;\n }\n var BindingError = void 0;\n function throwBindingError(message) {\n throw new BindingError(message);\n }\n function sharedRegisterType(rawType, registeredInstance, options = {}) {\n var name = registeredInstance.name;\n if (!rawType) {\n throwBindingError(`type \"${name}\" must have a positive integer typeid pointer`);\n }\n if (registeredTypes.hasOwnProperty(rawType)) {\n if (options.ignoreDuplicateRegistrations) {\n return;\n } else {\n throwBindingError(`Cannot register type '${name}' twice`);\n }\n }\n registeredTypes[rawType] = registeredInstance;\n delete typeDependencies[rawType];\n if (awaitingDependencies.hasOwnProperty(rawType)) {\n var callbacks = awaitingDependencies[rawType];\n delete awaitingDependencies[rawType];\n callbacks.forEach((cb) => cb());\n }\n }\n function registerType(rawType, registeredInstance, options = {}) {\n if (!(\"argPackAdvance\" in registeredInstance)) {\n throw new TypeError(\"registerType registeredInstance requires argPackAdvance\");\n }\n return sharedRegisterType(rawType, registeredInstance, options);\n }\n function __embind_register_bool(rawType, name, size, trueValue, falseValue) {\n rawType >>>= 0;\n name >>>= 0;\n size >>>= 0;\n var shift = getShiftFromSize(size);\n name = readLatin1String(name);\n registerType(rawType, { name, \"fromWireType\": function(wt) {\n return !!wt;\n }, \"toWireType\": function(destructors, o) {\n return o ? trueValue : falseValue;\n }, \"argPackAdvance\": 8, \"readValueFromPointer\": function(pointer) {\n var heap;\n if (size === 1) {\n heap = GROWABLE_HEAP_I8();\n } else if (size === 2) {\n heap = GROWABLE_HEAP_I16();\n } else if (size === 4) {\n heap = GROWABLE_HEAP_I32();\n } else {\n throw new TypeError(\"Unknown boolean type size: \" + name);\n }\n return this[\"fromWireType\"](heap[pointer >>> shift]);\n }, destructorFunction: null });\n }\n function ClassHandle_isAliasOf(other) {\n if (!(this instanceof ClassHandle)) {\n return false;\n }\n if (!(other instanceof ClassHandle)) {\n return false;\n }\n var leftClass = this.$$.ptrType.registeredClass;\n var left = this.$$.ptr;\n var rightClass = other.$$.ptrType.registeredClass;\n var right = other.$$.ptr;\n while (leftClass.baseClass) {\n left = leftClass.upcast(left);\n leftClass = leftClass.baseClass;\n }\n while (rightClass.baseClass) {\n right = rightClass.upcast(right);\n rightClass = rightClass.baseClass;\n }\n return leftClass === rightClass && left === right;\n }\n function shallowCopyInternalPointer(o) {\n return { count: o.count, deleteScheduled: o.deleteScheduled, preservePointerOnDelete: o.preservePointerOnDelete, ptr: o.ptr, ptrType: o.ptrType, smartPtr: o.smartPtr, smartPtrType: o.smartPtrType };\n }\n function throwInstanceAlreadyDeleted(obj) {\n function getInstanceTypeName(handle) {\n return handle.$$.ptrType.registeredClass.name;\n }\n throwBindingError(getInstanceTypeName(obj) + \" instance already deleted\");\n }\n var finalizationRegistry = false;\n function detachFinalizer(handle) {\n }\n function runDestructor($$) {\n if ($$.smartPtr) {\n $$.smartPtrType.rawDestructor($$.smartPtr);\n } else {\n $$.ptrType.registeredClass.rawDestructor($$.ptr);\n }\n }\n function releaseClassHandle($$) {\n $$.count.value -= 1;\n var toDelete = $$.count.value === 0;\n if (toDelete) {\n runDestructor($$);\n }\n }\n function downcastPointer(ptr, ptrClass, desiredClass) {\n if (ptrClass === desiredClass) {\n return ptr;\n }\n if (desiredClass.baseClass === void 0) {\n return null;\n }\n var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass);\n if (rv === null) {\n return null;\n }\n return desiredClass.downcast(rv);\n }\n var registeredPointers = {};\n function getInheritedInstanceCount() {\n return Object.keys(registeredInstances).length;\n }\n function getLiveInheritedInstances() {\n var rv = [];\n for (var k in registeredInstances) {\n if (registeredInstances.hasOwnProperty(k)) {\n rv.push(registeredInstances[k]);\n }\n }\n return rv;\n }\n var deletionQueue = [];\n function flushPendingDeletes() {\n while (deletionQueue.length) {\n var obj = deletionQueue.pop();\n obj.$$.deleteScheduled = false;\n obj[\"delete\"]();\n }\n }\n var delayFunction = void 0;\n function setDelayFunction(fn) {\n delayFunction = fn;\n if (deletionQueue.length && delayFunction) {\n delayFunction(flushPendingDeletes);\n }\n }\n function init_embind() {\n Module[\"getInheritedInstanceCount\"] = getInheritedInstanceCount;\n Module[\"getLiveInheritedInstances\"] = getLiveInheritedInstances;\n Module[\"flushPendingDeletes\"] = flushPendingDeletes;\n Module[\"setDelayFunction\"] = setDelayFunction;\n }\n var registeredInstances = {};\n function getBasestPointer(class_, ptr) {\n if (ptr === void 0) {\n throwBindingError(\"ptr should not be undefined\");\n }\n while (class_.baseClass) {\n ptr = class_.upcast(ptr);\n class_ = class_.baseClass;\n }\n return ptr;\n }\n function getInheritedInstance(class_, ptr) {\n ptr = getBasestPointer(class_, ptr);\n return registeredInstances[ptr];\n }\n function makeClassHandle(prototype, record) {\n if (!record.ptrType || !record.ptr) {\n throwInternalError(\"makeClassHandle requires ptr and ptrType\");\n }\n var hasSmartPtrType = !!record.smartPtrType;\n var hasSmartPtr = !!record.smartPtr;\n if (hasSmartPtrType !== hasSmartPtr) {\n throwInternalError(\"Both smartPtrType and smartPtr must be specified\");\n }\n record.count = { value: 1 };\n return attachFinalizer(Object.create(prototype, { $$: { value: record } }));\n }\n function RegisteredPointer_fromWireType(ptr) {\n var rawPointer = this.getPointee(ptr);\n if (!rawPointer) {\n this.destructor(ptr);\n return null;\n }\n var registeredInstance = getInheritedInstance(this.registeredClass, rawPointer);\n if (registeredInstance !== void 0) {\n if (registeredInstance.$$.count.value === 0) {\n registeredInstance.$$.ptr = rawPointer;\n registeredInstance.$$.smartPtr = ptr;\n return registeredInstance[\"clone\"]();\n } else {\n var rv = registeredInstance[\"clone\"]();\n this.destructor(ptr);\n return rv;\n }\n }\n function makeDefaultHandle() {\n if (this.isSmartPointer) {\n return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this.pointeeType, ptr: rawPointer, smartPtrType: this, smartPtr: ptr });\n } else {\n return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this, ptr });\n }\n }\n var actualType = this.registeredClass.getActualType(rawPointer);\n var registeredPointerRecord = registeredPointers[actualType];\n if (!registeredPointerRecord) {\n return makeDefaultHandle.call(this);\n }\n var toType;\n if (this.isConst) {\n toType = registeredPointerRecord.constPointerType;\n } else {\n toType = registeredPointerRecord.pointerType;\n }\n var dp = downcastPointer(rawPointer, this.registeredClass, toType.registeredClass);\n if (dp === null) {\n return makeDefaultHandle.call(this);\n }\n if (this.isSmartPointer) {\n return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp, smartPtrType: this, smartPtr: ptr });\n } else {\n return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp });\n }\n }\n var attachFinalizer = function(handle) {\n if (typeof FinalizationRegistry === \"undefined\") {\n attachFinalizer = (handle2) => handle2;\n return handle;\n }\n finalizationRegistry = new FinalizationRegistry((info) => {\n releaseClassHandle(info.$$);\n });\n attachFinalizer = (handle2) => {\n var $$ = handle2.$$;\n var hasSmartPtr = !!$$.smartPtr;\n if (hasSmartPtr) {\n var info = { $$ };\n finalizationRegistry.register(handle2, info, handle2);\n }\n return handle2;\n };\n detachFinalizer = (handle2) => finalizationRegistry.unregister(handle2);\n return attachFinalizer(handle);\n };\n function ClassHandle_clone() {\n if (!this.$$.ptr) {\n throwInstanceAlreadyDeleted(this);\n }\n if (this.$$.preservePointerOnDelete) {\n this.$$.count.value += 1;\n return this;\n } else {\n var clone = attachFinalizer(Object.create(Object.getPrototypeOf(this), { $$: { value: shallowCopyInternalPointer(this.$$) } }));\n clone.$$.count.value += 1;\n clone.$$.deleteScheduled = false;\n return clone;\n }\n }\n function ClassHandle_delete() {\n if (!this.$$.ptr) {\n throwInstanceAlreadyDeleted(this);\n }\n if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) {\n throwBindingError(\"Object already scheduled for deletion\");\n }\n detachFinalizer(this);\n releaseClassHandle(this.$$);\n if (!this.$$.preservePointerOnDelete) {\n this.$$.smartPtr = void 0;\n this.$$.ptr = void 0;\n }\n }\n function ClassHandle_isDeleted() {\n return !this.$$.ptr;\n }\n function ClassHandle_deleteLater() {\n if (!this.$$.ptr) {\n throwInstanceAlreadyDeleted(this);\n }\n if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) {\n throwBindingError(\"Object already scheduled for deletion\");\n }\n deletionQueue.push(this);\n if (deletionQueue.length === 1 && delayFunction) {\n delayFunction(flushPendingDeletes);\n }\n this.$$.deleteScheduled = true;\n return this;\n }\n function init_ClassHandle() {\n ClassHandle.prototype[\"isAliasOf\"] = ClassHandle_isAliasOf;\n ClassHandle.prototype[\"clone\"] = ClassHandle_clone;\n ClassHandle.prototype[\"delete\"] = ClassHandle_delete;\n ClassHandle.prototype[\"isDeleted\"] = ClassHandle_isDeleted;\n ClassHandle.prototype[\"deleteLater\"] = ClassHandle_deleteLater;\n }\n function ClassHandle() {\n }\n var char_0 = 48;\n var char_9 = 57;\n function makeLegalFunctionName(name) {\n if (name === void 0) {\n return \"_unknown\";\n }\n name = name.replace(/[^a-zA-Z0-9_]/g, \"$\");\n var f = name.charCodeAt(0);\n if (f >= char_0 && f <= char_9) {\n return `_${name}`;\n }\n return name;\n }\n function createNamedFunction(name, body) {\n name = makeLegalFunctionName(name);\n return { [name]: function() {\n return body.apply(this, arguments);\n } }[name];\n }\n function ensureOverloadTable(proto, methodName, humanName) {\n if (proto[methodName].overloadTable === void 0) {\n var prevFunc = proto[methodName];\n proto[methodName] = function() {\n if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) {\n throwBindingError(`Function '${humanName}' called with an invalid number of arguments (${arguments.length}) - expects one of (${proto[methodName].overloadTable})!`);\n }\n return proto[methodName].overloadTable[arguments.length].apply(this, arguments);\n };\n proto[methodName].overloadTable = [];\n proto[methodName].overloadTable[prevFunc.argCount] = prevFunc;\n }\n }\n function exposePublicSymbol(name, value, numArguments) {\n if (Module.hasOwnProperty(name)) {\n if (numArguments === void 0 || Module[name].overloadTable !== void 0 && Module[name].overloadTable[numArguments] !== void 0) {\n throwBindingError(`Cannot register public name '${name}' twice`);\n }\n ensureOverloadTable(Module, name, name);\n if (Module.hasOwnProperty(numArguments)) {\n throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`);\n }\n Module[name].overloadTable[numArguments] = value;\n } else {\n Module[name] = value;\n if (numArguments !== void 0) {\n Module[name].numArguments = numArguments;\n }\n }\n }\n function RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast) {\n this.name = name;\n this.constructor = constructor;\n this.instancePrototype = instancePrototype;\n this.rawDestructor = rawDestructor;\n this.baseClass = baseClass;\n this.getActualType = getActualType;\n this.upcast = upcast;\n this.downcast = downcast;\n this.pureVirtualFunctions = [];\n }\n function upcastPointer(ptr, ptrClass, desiredClass) {\n while (ptrClass !== desiredClass) {\n if (!ptrClass.upcast) {\n throwBindingError(`Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`);\n }\n ptr = ptrClass.upcast(ptr);\n ptrClass = ptrClass.baseClass;\n }\n return ptr;\n }\n function constNoSmartPtrRawPointerToWireType(destructors, handle) {\n if (handle === null) {\n if (this.isReference) {\n throwBindingError(`null is not a valid ${this.name}`);\n }\n return 0;\n }\n if (!handle.$$) {\n throwBindingError(`Cannot pass \"${embindRepr(handle)}\" as a ${this.name}`);\n }\n if (!handle.$$.ptr) {\n throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`);\n }\n var handleClass = handle.$$.ptrType.registeredClass;\n var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);\n return ptr;\n }\n function genericPointerToWireType(destructors, handle) {\n var ptr;\n if (handle === null) {\n if (this.isReference) {\n throwBindingError(`null is not a valid ${this.name}`);\n }\n if (this.isSmartPointer) {\n ptr = this.rawConstructor();\n if (destructors !== null) {\n destructors.push(this.rawDestructor, ptr);\n }\n return ptr;\n } else {\n return 0;\n }\n }\n if (!handle.$$) {\n throwBindingError(`Cannot pass \"${embindRepr(handle)}\" as a ${this.name}`);\n }\n if (!handle.$$.ptr) {\n throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`);\n }\n if (!this.isConst && handle.$$.ptrType.isConst) {\n throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name} to parameter type ${this.name}`);\n }\n var handleClass = handle.$$.ptrType.registeredClass;\n ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);\n if (this.isSmartPointer) {\n if (handle.$$.smartPtr === void 0) {\n throwBindingError(\"Passing raw pointer to smart pointer is illegal\");\n }\n switch (this.sharingPolicy) {\n case 0:\n if (handle.$$.smartPtrType === this) {\n ptr = handle.$$.smartPtr;\n } else {\n throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name} to parameter type ${this.name}`);\n }\n break;\n case 1:\n ptr = handle.$$.smartPtr;\n break;\n case 2:\n if (handle.$$.smartPtrType === this) {\n ptr = handle.$$.smartPtr;\n } else {\n var clonedHandle = handle[\"clone\"]();\n ptr = this.rawShare(ptr, Emval.toHandle(function() {\n clonedHandle[\"delete\"]();\n }));\n if (destructors !== null) {\n destructors.push(this.rawDestructor, ptr);\n }\n }\n break;\n default:\n throwBindingError(\"Unsupporting sharing policy\");\n }\n }\n return ptr;\n }\n function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) {\n if (handle === null) {\n if (this.isReference) {\n throwBindingError(`null is not a valid ${this.name}`);\n }\n return 0;\n }\n if (!handle.$$) {\n throwBindingError(`Cannot pass \"${embindRepr(handle)}\" as a ${this.name}`);\n }\n if (!handle.$$.ptr) {\n throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`);\n }\n if (handle.$$.ptrType.isConst) {\n throwBindingError(`Cannot convert argument of type ${handle.$$.ptrType.name} to parameter type ${this.name}`);\n }\n var handleClass = handle.$$.ptrType.registeredClass;\n var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);\n return ptr;\n }\n function RegisteredPointer_getPointee(ptr) {\n if (this.rawGetPointee) {\n ptr = this.rawGetPointee(ptr);\n }\n return ptr;\n }\n function RegisteredPointer_destructor(ptr) {\n if (this.rawDestructor) {\n this.rawDestructor(ptr);\n }\n }\n function RegisteredPointer_deleteObject(handle) {\n if (handle !== null) {\n handle[\"delete\"]();\n }\n }\n function init_RegisteredPointer() {\n RegisteredPointer.prototype.getPointee = RegisteredPointer_getPointee;\n RegisteredPointer.prototype.destructor = RegisteredPointer_destructor;\n RegisteredPointer.prototype[\"argPackAdvance\"] = 8;\n RegisteredPointer.prototype[\"readValueFromPointer\"] = simpleReadValueFromPointer;\n RegisteredPointer.prototype[\"deleteObject\"] = RegisteredPointer_deleteObject;\n RegisteredPointer.prototype[\"fromWireType\"] = RegisteredPointer_fromWireType;\n }\n function RegisteredPointer(name, registeredClass, isReference, isConst, isSmartPointer, pointeeType, sharingPolicy, rawGetPointee, rawConstructor, rawShare, rawDestructor) {\n this.name = name;\n this.registeredClass = registeredClass;\n this.isReference = isReference;\n this.isConst = isConst;\n this.isSmartPointer = isSmartPointer;\n this.pointeeType = pointeeType;\n this.sharingPolicy = sharingPolicy;\n this.rawGetPointee = rawGetPointee;\n this.rawConstructor = rawConstructor;\n this.rawShare = rawShare;\n this.rawDestructor = rawDestructor;\n if (!isSmartPointer && registeredClass.baseClass === void 0) {\n if (isConst) {\n this[\"toWireType\"] = constNoSmartPtrRawPointerToWireType;\n this.destructorFunction = null;\n } else {\n this[\"toWireType\"] = nonConstNoSmartPtrRawPointerToWireType;\n this.destructorFunction = null;\n }\n } else {\n this[\"toWireType\"] = genericPointerToWireType;\n }\n }\n function replacePublicSymbol(name, value, numArguments) {\n if (!Module.hasOwnProperty(name)) {\n throwInternalError(\"Replacing nonexistant public symbol\");\n }\n if (Module[name].overloadTable !== void 0 && numArguments !== void 0) {\n Module[name].overloadTable[numArguments] = value;\n } else {\n Module[name] = value;\n Module[name].argCount = numArguments;\n }\n }\n var dynCallLegacy = (sig, ptr, args) => {\n var f = Module[\"dynCall_\" + sig];\n return args && args.length ? f.apply(null, [ptr].concat(args)) : f.call(null, ptr);\n };\n var dynCall = (sig, ptr, args) => {\n if (sig.includes(\"j\")) {\n return dynCallLegacy(sig, ptr, args);\n }\n var rtn = getWasmTableEntry(ptr).apply(null, args);\n return rtn;\n };\n var getDynCaller = (sig, ptr) => {\n var argCache = [];\n return function() {\n argCache.length = 0;\n Object.assign(argCache, arguments);\n return dynCall(sig, ptr, argCache);\n };\n };\n function embind__requireFunction(signature, rawFunction) {\n signature = readLatin1String(signature);\n function makeDynCaller() {\n if (signature.includes(\"j\")) {\n return getDynCaller(signature, rawFunction);\n }\n return getWasmTableEntry(rawFunction);\n }\n var fp = makeDynCaller();\n if (typeof fp != \"function\") {\n throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`);\n }\n return fp;\n }\n function extendError(baseErrorType, errorName) {\n var errorClass = createNamedFunction(errorName, function(message) {\n this.name = errorName;\n this.message = message;\n var stack = new Error(message).stack;\n if (stack !== void 0) {\n this.stack = this.toString() + \"\\n\" + stack.replace(/^Error(:[^\\n]*)?\\n/, \"\");\n }\n });\n errorClass.prototype = Object.create(baseErrorType.prototype);\n errorClass.prototype.constructor = errorClass;\n errorClass.prototype.toString = function() {\n if (this.message === void 0) {\n return this.name;\n } else {\n return `${this.name}: ${this.message}`;\n }\n };\n return errorClass;\n }\n var UnboundTypeError = void 0;\n function getTypeName(type) {\n var ptr = ___getTypeName(type);\n var rv = readLatin1String(ptr);\n _free(ptr);\n return rv;\n }\n function throwUnboundTypeError(message, types) {\n var unboundTypes = [];\n var seen = {};\n function visit(type) {\n if (seen[type]) {\n return;\n }\n if (registeredTypes[type]) {\n return;\n }\n if (typeDependencies[type]) {\n typeDependencies[type].forEach(visit);\n return;\n }\n unboundTypes.push(type);\n seen[type] = true;\n }\n types.forEach(visit);\n throw new UnboundTypeError(`${message}: ` + unboundTypes.map(getTypeName).join([\", \"]));\n }\n function __embind_register_class(rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor) {\n rawType >>>= 0;\n rawPointerType >>>= 0;\n rawConstPointerType >>>= 0;\n baseClassRawType >>>= 0;\n getActualTypeSignature >>>= 0;\n getActualType >>>= 0;\n upcastSignature >>>= 0;\n upcast >>>= 0;\n downcastSignature >>>= 0;\n downcast >>>= 0;\n name >>>= 0;\n destructorSignature >>>= 0;\n rawDestructor >>>= 0;\n name = readLatin1String(name);\n getActualType = embind__requireFunction(getActualTypeSignature, getActualType);\n if (upcast) {\n upcast = embind__requireFunction(upcastSignature, upcast);\n }\n if (downcast) {\n downcast = embind__requireFunction(downcastSignature, downcast);\n }\n rawDestructor = embind__requireFunction(destructorSignature, rawDestructor);\n var legalFunctionName = makeLegalFunctionName(name);\n exposePublicSymbol(legalFunctionName, function() {\n throwUnboundTypeError(`Cannot construct ${name} due to unbound types`, [baseClassRawType]);\n });\n whenDependentTypesAreResolved([rawType, rawPointerType, rawConstPointerType], baseClassRawType ? [baseClassRawType] : [], function(base) {\n base = base[0];\n var baseClass;\n var basePrototype;\n if (baseClassRawType) {\n baseClass = base.registeredClass;\n basePrototype = baseClass.instancePrototype;\n } else {\n basePrototype = ClassHandle.prototype;\n }\n var constructor = createNamedFunction(legalFunctionName, function() {\n if (Object.getPrototypeOf(this) !== instancePrototype) {\n throw new BindingError(\"Use 'new' to construct \" + name);\n }\n if (registeredClass.constructor_body === void 0) {\n throw new BindingError(name + \" has no accessible constructor\");\n }\n var body = registeredClass.constructor_body[arguments.length];\n if (body === void 0) {\n throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`);\n }\n return body.apply(this, arguments);\n });\n var instancePrototype = Object.create(basePrototype, { constructor: { value: constructor } });\n constructor.prototype = instancePrototype;\n var registeredClass = new RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast);\n if (registeredClass.baseClass) {\n if (registeredClass.baseClass.__derivedClasses === void 0) {\n registeredClass.baseClass.__derivedClasses = [];\n }\n registeredClass.baseClass.__derivedClasses.push(registeredClass);\n }\n var referenceConverter = new RegisteredPointer(name, registeredClass, true, false, false);\n var pointerConverter = new RegisteredPointer(name + \"*\", registeredClass, false, false, false);\n var constPointerConverter = new RegisteredPointer(name + \" const*\", registeredClass, false, true, false);\n registeredPointers[rawType] = { pointerType: pointerConverter, constPointerType: constPointerConverter };\n replacePublicSymbol(legalFunctionName, constructor);\n return [referenceConverter, pointerConverter, constPointerConverter];\n });\n }\n function heap32VectorToArray(count, firstElement) {\n var array = [];\n for (var i = 0; i < count; i++) {\n array.push(GROWABLE_HEAP_U32()[firstElement + i * 4 >>> 2]);\n }\n return array;\n }\n function newFunc(constructor, argumentList) {\n if (!(constructor instanceof Function)) {\n throw new TypeError(`new_ called with constructor type ${typeof constructor} which is not a function`);\n }\n var dummy = createNamedFunction(constructor.name || \"unknownFunctionName\", function() {\n });\n dummy.prototype = constructor.prototype;\n var obj = new dummy();\n var r = constructor.apply(obj, argumentList);\n return r instanceof Object ? r : obj;\n }\n function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc, isAsync) {\n var argCount = argTypes.length;\n if (argCount < 2) {\n throwBindingError(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");\n }\n var isClassMethodFunc = argTypes[1] !== null && classType !== null;\n var needsDestructorStack = false;\n for (var i = 1; i < argTypes.length; ++i) {\n if (argTypes[i] !== null && argTypes[i].destructorFunction === void 0) {\n needsDestructorStack = true;\n break;\n }\n }\n var returns = argTypes[0].name !== \"void\";\n var argsList = \"\";\n var argsListWired = \"\";\n for (var i = 0; i < argCount - 2; ++i) {\n argsList += (i !== 0 ? \", \" : \"\") + \"arg\" + i;\n argsListWired += (i !== 0 ? \", \" : \"\") + \"arg\" + i + \"Wired\";\n }\n var invokerFnBody = `\n return function ${makeLegalFunctionName(humanName)}(${argsList}) {\n if (arguments.length !== ${argCount - 2}) {\n throwBindingError('function ${humanName} called with ${arguments.length} arguments, expected ${argCount - 2} args!');\n }`;\n if (needsDestructorStack) {\n invokerFnBody += \"var destructors = [];\\n\";\n }\n var dtorStack = needsDestructorStack ? \"destructors\" : \"null\";\n var args1 = [\"throwBindingError\", \"invoker\", \"fn\", \"runDestructors\", \"retType\", \"classParam\"];\n var args2 = [throwBindingError, cppInvokerFunc, cppTargetFunc, runDestructors, argTypes[0], argTypes[1]];\n if (isClassMethodFunc) {\n invokerFnBody += \"var thisWired = classParam.toWireType(\" + dtorStack + \", this);\\n\";\n }\n for (var i = 0; i < argCount - 2; ++i) {\n invokerFnBody += \"var arg\" + i + \"Wired = argType\" + i + \".toWireType(\" + dtorStack + \", arg\" + i + \"); // \" + argTypes[i + 2].name + \"\\n\";\n args1.push(\"argType\" + i);\n args2.push(argTypes[i + 2]);\n }\n if (isClassMethodFunc) {\n argsListWired = \"thisWired\" + (argsListWired.length > 0 ? \", \" : \"\") + argsListWired;\n }\n invokerFnBody += (returns || isAsync ? \"var rv = \" : \"\") + \"invoker(fn\" + (argsListWired.length > 0 ? \", \" : \"\") + argsListWired + \");\\n\";\n if (needsDestructorStack) {\n invokerFnBody += \"runDestructors(destructors);\\n\";\n } else {\n for (var i = isClassMethodFunc ? 1 : 2; i < argTypes.length; ++i) {\n var paramName = i === 1 ? \"thisWired\" : \"arg\" + (i - 2) + \"Wired\";\n if (argTypes[i].destructorFunction !== null) {\n invokerFnBody += paramName + \"_dtor(\" + paramName + \"); // \" + argTypes[i].name + \"\\n\";\n args1.push(paramName + \"_dtor\");\n args2.push(argTypes[i].destructorFunction);\n }\n }\n }\n if (returns) {\n invokerFnBody += \"var ret = retType.fromWireType(rv);\\nreturn ret;\\n\";\n } else {\n }\n invokerFnBody += \"}\\n\";\n args1.push(invokerFnBody);\n return newFunc(Function, args1).apply(null, args2);\n }\n function __embind_register_class_constructor(rawClassType, argCount, rawArgTypesAddr, invokerSignature, invoker, rawConstructor) {\n rawClassType >>>= 0;\n rawArgTypesAddr >>>= 0;\n invokerSignature >>>= 0;\n invoker >>>= 0;\n rawConstructor >>>= 0;\n var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);\n invoker = embind__requireFunction(invokerSignature, invoker);\n whenDependentTypesAreResolved([], [rawClassType], function(classType) {\n classType = classType[0];\n var humanName = `constructor ${classType.name}`;\n if (classType.registeredClass.constructor_body === void 0) {\n classType.registeredClass.constructor_body = [];\n }\n if (classType.registeredClass.constructor_body[argCount - 1] !== void 0) {\n throw new BindingError(`Cannot register multiple constructors with identical number of parameters (${argCount - 1}) for class '${classType.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);\n }\n classType.registeredClass.constructor_body[argCount - 1] = () => {\n throwUnboundTypeError(`Cannot construct ${classType.name} due to unbound types`, rawArgTypes);\n };\n whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) {\n argTypes.splice(1, 0, null);\n classType.registeredClass.constructor_body[argCount - 1] = craftInvokerFunction(humanName, argTypes, null, invoker, rawConstructor);\n return [];\n });\n return [];\n });\n }\n function __embind_register_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual, isAsync) {\n rawClassType >>>= 0;\n methodName >>>= 0;\n rawArgTypesAddr >>>= 0;\n invokerSignature >>>= 0;\n rawInvoker >>>= 0;\n context >>>= 0;\n var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);\n methodName = readLatin1String(methodName);\n rawInvoker = embind__requireFunction(invokerSignature, rawInvoker);\n whenDependentTypesAreResolved([], [rawClassType], function(classType) {\n classType = classType[0];\n var humanName = `${classType.name}.${methodName}`;\n if (methodName.startsWith(\"@@\")) {\n methodName = Symbol[methodName.substring(2)];\n }\n if (isPureVirtual) {\n classType.registeredClass.pureVirtualFunctions.push(methodName);\n }\n function unboundTypesHandler() {\n throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`, rawArgTypes);\n }\n var proto = classType.registeredClass.instancePrototype;\n var method = proto[methodName];\n if (method === void 0 || method.overloadTable === void 0 && method.className !== classType.name && method.argCount === argCount - 2) {\n unboundTypesHandler.argCount = argCount - 2;\n unboundTypesHandler.className = classType.name;\n proto[methodName] = unboundTypesHandler;\n } else {\n ensureOverloadTable(proto, methodName, humanName);\n proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler;\n }\n whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) {\n var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context, isAsync);\n if (proto[methodName].overloadTable === void 0) {\n memberFunction.argCount = argCount - 2;\n proto[methodName] = memberFunction;\n } else {\n proto[methodName].overloadTable[argCount - 2] = memberFunction;\n }\n return [];\n });\n return [];\n });\n }\n function handleAllocatorInit() {\n Object.assign(HandleAllocator.prototype, { get(id) {\n return this.allocated[id];\n }, has(id) {\n return this.allocated[id] !== void 0;\n }, allocate(handle) {\n var id = this.freelist.pop() || this.allocated.length;\n this.allocated[id] = handle;\n return id;\n }, free(id) {\n this.allocated[id] = void 0;\n this.freelist.push(id);\n } });\n }\n function HandleAllocator() {\n this.allocated = [void 0];\n this.freelist = [];\n }\n var emval_handles = new HandleAllocator();\n function __emval_decref(handle) {\n handle >>>= 0;\n if (handle >= emval_handles.reserved && --emval_handles.get(handle).refcount === 0) {\n emval_handles.free(handle);\n }\n }\n function count_emval_handles() {\n var count = 0;\n for (var i = emval_handles.reserved; i < emval_handles.allocated.length; ++i) {\n if (emval_handles.allocated[i] !== void 0) {\n ++count;\n }\n }\n return count;\n }\n function init_emval() {\n emval_handles.allocated.push({ value: void 0 }, { value: null }, { value: true }, { value: false });\n emval_handles.reserved = emval_handles.allocated.length;\n Module[\"count_emval_handles\"] = count_emval_handles;\n }\n var Emval = { toValue: (handle) => {\n if (!handle) {\n throwBindingError(\"Cannot use deleted val. handle = \" + handle);\n }\n return emval_handles.get(handle).value;\n }, toHandle: (value) => {\n switch (value) {\n case void 0:\n return 1;\n case null:\n return 2;\n case true:\n return 3;\n case false:\n return 4;\n default: {\n return emval_handles.allocate({ refcount: 1, value });\n }\n }\n } };\n function __embind_register_emval(rawType, name) {\n rawType >>>= 0;\n name >>>= 0;\n name = readLatin1String(name);\n registerType(rawType, { name, \"fromWireType\": function(handle) {\n var rv = Emval.toValue(handle);\n __emval_decref(handle);\n return rv;\n }, \"toWireType\": function(destructors, value) {\n return Emval.toHandle(value);\n }, \"argPackAdvance\": 8, \"readValueFromPointer\": simpleReadValueFromPointer, destructorFunction: null });\n }\n function embindRepr(v) {\n if (v === null) {\n return \"null\";\n }\n var t = typeof v;\n if (t === \"object\" || t === \"array\" || t === \"function\") {\n return v.toString();\n } else {\n return \"\" + v;\n }\n }\n function floatReadValueFromPointer(name, shift) {\n switch (shift) {\n case 2:\n return function(pointer) {\n return this[\"fromWireType\"](GROWABLE_HEAP_F32()[pointer >>> 2]);\n };\n case 3:\n return function(pointer) {\n return this[\"fromWireType\"](GROWABLE_HEAP_F64()[pointer >>> 3]);\n };\n default:\n throw new TypeError(\"Unknown float type: \" + name);\n }\n }\n function __embind_register_float(rawType, name, size) {\n rawType >>>= 0;\n name >>>= 0;\n size >>>= 0;\n var shift = getShiftFromSize(size);\n name = readLatin1String(name);\n registerType(rawType, { name, \"fromWireType\": function(value) {\n return value;\n }, \"toWireType\": function(destructors, value) {\n return value;\n }, \"argPackAdvance\": 8, \"readValueFromPointer\": floatReadValueFromPointer(name, shift), destructorFunction: null });\n }\n function __embind_register_function(name, argCount, rawArgTypesAddr, signature, rawInvoker, fn, isAsync) {\n name >>>= 0;\n rawArgTypesAddr >>>= 0;\n signature >>>= 0;\n rawInvoker >>>= 0;\n fn >>>= 0;\n var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr);\n name = readLatin1String(name);\n rawInvoker = embind__requireFunction(signature, rawInvoker);\n exposePublicSymbol(name, function() {\n throwUnboundTypeError(`Cannot call ${name} due to unbound types`, argTypes);\n }, argCount - 1);\n whenDependentTypesAreResolved([], argTypes, function(argTypes2) {\n var invokerArgsArray = [argTypes2[0], null].concat(argTypes2.slice(1));\n replacePublicSymbol(name, craftInvokerFunction(name, invokerArgsArray, null, rawInvoker, fn, isAsync), argCount - 1);\n return [];\n });\n }\n function integerReadValueFromPointer(name, shift, signed) {\n switch (shift) {\n case 0:\n return signed ? function readS8FromPointer(pointer) {\n return GROWABLE_HEAP_I8()[pointer >>> 0];\n } : function readU8FromPointer(pointer) {\n return GROWABLE_HEAP_U8()[pointer >>> 0];\n };\n case 1:\n return signed ? function readS16FromPointer(pointer) {\n return GROWABLE_HEAP_I16()[pointer >>> 1];\n } : function readU16FromPointer(pointer) {\n return GROWABLE_HEAP_U16()[pointer >>> 1];\n };\n case 2:\n return signed ? function readS32FromPointer(pointer) {\n return GROWABLE_HEAP_I32()[pointer >>> 2];\n } : function readU32FromPointer(pointer) {\n return GROWABLE_HEAP_U32()[pointer >>> 2];\n };\n default:\n throw new TypeError(\"Unknown integer type: \" + name);\n }\n }\n function __embind_register_integer(primitiveType, name, size, minRange, maxRange) {\n primitiveType >>>= 0;\n name >>>= 0;\n size >>>= 0;\n name = readLatin1String(name);\n if (maxRange === -1) {\n maxRange = 4294967295;\n }\n var shift = getShiftFromSize(size);\n var fromWireType = (value) => value;\n if (minRange === 0) {\n var bitshift = 32 - 8 * size;\n fromWireType = (value) => value << bitshift >>> bitshift;\n }\n var isUnsignedType = name.includes(\"unsigned\");\n var checkAssertions = (value, toTypeName) => {\n };\n var toWireType;\n if (isUnsignedType) {\n toWireType = function(destructors, value) {\n checkAssertions(value, this.name);\n return value >>> 0;\n };\n } else {\n toWireType = function(destructors, value) {\n checkAssertions(value, this.name);\n return value;\n };\n }\n registerType(primitiveType, { name, \"fromWireType\": fromWireType, \"toWireType\": toWireType, \"argPackAdvance\": 8, \"readValueFromPointer\": integerReadValueFromPointer(name, shift, minRange !== 0), destructorFunction: null });\n }\n function __embind_register_memory_view(rawType, dataTypeIndex, name) {\n rawType >>>= 0;\n name >>>= 0;\n var typeMapping = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array];\n var TA = typeMapping[dataTypeIndex];\n function decodeMemoryView(handle) {\n handle = handle >> 2;\n var heap = GROWABLE_HEAP_U32();\n var size = heap[handle >>> 0];\n var data = heap[handle + 1 >>> 0];\n return new TA(heap.buffer, data, size);\n }\n name = readLatin1String(name);\n registerType(rawType, { name, \"fromWireType\": decodeMemoryView, \"argPackAdvance\": 8, \"readValueFromPointer\": decodeMemoryView }, { ignoreDuplicateRegistrations: true });\n }\n var stringToUTF8 = (str, outPtr, maxBytesToWrite) => stringToUTF8Array(str, GROWABLE_HEAP_U8(), outPtr, maxBytesToWrite);\n function __embind_register_std_string(rawType, name) {\n rawType >>>= 0;\n name >>>= 0;\n name = readLatin1String(name);\n var stdStringIsUTF8 = name === \"std::string\";\n registerType(rawType, { name, \"fromWireType\": function(value) {\n var length = GROWABLE_HEAP_U32()[value >>> 2];\n var payload = value + 4;\n var str;\n if (stdStringIsUTF8) {\n var decodeStartPtr = payload;\n for (var i = 0; i <= length; ++i) {\n var currentBytePtr = payload + i;\n if (i == length || GROWABLE_HEAP_U8()[currentBytePtr >>> 0] == 0) {\n var maxRead = currentBytePtr - decodeStartPtr;\n var stringSegment = UTF8ToString(decodeStartPtr, maxRead);\n if (str === void 0) {\n str = stringSegment;\n } else {\n str += String.fromCharCode(0);\n str += stringSegment;\n }\n decodeStartPtr = currentBytePtr + 1;\n }\n }\n } else {\n var a = new Array(length);\n for (var i = 0; i < length; ++i) {\n a[i] = String.fromCharCode(GROWABLE_HEAP_U8()[payload + i >>> 0]);\n }\n str = a.join(\"\");\n }\n _free(value);\n return str;\n }, \"toWireType\": function(destructors, value) {\n if (value instanceof ArrayBuffer) {\n value = new Uint8Array(value);\n }\n var length;\n var valueIsOfTypeString = typeof value == \"string\";\n if (!(valueIsOfTypeString || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int8Array)) {\n throwBindingError(\"Cannot pass non-string to std::string\");\n }\n if (stdStringIsUTF8 && valueIsOfTypeString) {\n length = lengthBytesUTF8(value);\n } else {\n length = value.length;\n }\n var base = _malloc(4 + length + 1);\n var ptr = base + 4;\n GROWABLE_HEAP_U32()[base >>> 2] = length;\n if (stdStringIsUTF8 && valueIsOfTypeString) {\n stringToUTF8(value, ptr, length + 1);\n } else {\n if (valueIsOfTypeString) {\n for (var i = 0; i < length; ++i) {\n var charCode = value.charCodeAt(i);\n if (charCode > 255) {\n _free(ptr);\n throwBindingError(\"String has UTF-16 code units that do not fit in 8 bits\");\n }\n GROWABLE_HEAP_U8()[ptr + i >>> 0] = charCode;\n }\n } else {\n for (var i = 0; i < length; ++i) {\n GROWABLE_HEAP_U8()[ptr + i >>> 0] = value[i];\n }\n }\n }\n if (destructors !== null) {\n destructors.push(_free, base);\n }\n return base;\n }, \"argPackAdvance\": 8, \"readValueFromPointer\": simpleReadValueFromPointer, destructorFunction: function(ptr) {\n _free(ptr);\n } });\n }\n var UTF16Decoder = typeof TextDecoder != \"undefined\" ? new TextDecoder(\"utf-16le\") : void 0;\n var UTF16ToString = (ptr, maxBytesToRead) => {\n var endPtr = ptr;\n var idx = endPtr >> 1;\n var maxIdx = idx + maxBytesToRead / 2;\n while (!(idx >= maxIdx) && GROWABLE_HEAP_U16()[idx >>> 0])\n ++idx;\n endPtr = idx << 1;\n if (endPtr - ptr > 32 && UTF16Decoder)\n return UTF16Decoder.decode(GROWABLE_HEAP_U8().slice(ptr, endPtr));\n var str = \"\";\n for (var i = 0; !(i >= maxBytesToRead / 2); ++i) {\n var codeUnit = GROWABLE_HEAP_I16()[ptr + i * 2 >>> 1];\n if (codeUnit == 0)\n break;\n str += String.fromCharCode(codeUnit);\n }\n return str;\n };\n var stringToUTF16 = (str, outPtr, maxBytesToWrite) => {\n if (maxBytesToWrite === void 0) {\n maxBytesToWrite = 2147483647;\n }\n if (maxBytesToWrite < 2)\n return 0;\n maxBytesToWrite -= 2;\n var startPtr = outPtr;\n var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length;\n for (var i = 0; i < numCharsToWrite; ++i) {\n var codeUnit = str.charCodeAt(i);\n GROWABLE_HEAP_I16()[outPtr >>> 1] = codeUnit;\n outPtr += 2;\n }\n GROWABLE_HEAP_I16()[outPtr >>> 1] = 0;\n return outPtr - startPtr;\n };\n var lengthBytesUTF16 = (str) => str.length * 2;\n var UTF32ToString = (ptr, maxBytesToRead) => {\n var i = 0;\n var str = \"\";\n while (!(i >= maxBytesToRead / 4)) {\n var utf32 = GROWABLE_HEAP_I32()[ptr + i * 4 >>> 2];\n if (utf32 == 0)\n break;\n ++i;\n if (utf32 >= 65536) {\n var ch = utf32 - 65536;\n str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);\n } else {\n str += String.fromCharCode(utf32);\n }\n }\n return str;\n };\n var stringToUTF32 = (str, outPtr, maxBytesToWrite) => {\n outPtr >>>= 0;\n if (maxBytesToWrite === void 0) {\n maxBytesToWrite = 2147483647;\n }\n if (maxBytesToWrite < 4)\n return 0;\n var startPtr = outPtr;\n var endPtr = startPtr + maxBytesToWrite - 4;\n for (var i = 0; i < str.length; ++i) {\n var codeUnit = str.charCodeAt(i);\n if (codeUnit >= 55296 && codeUnit <= 57343) {\n var trailSurrogate = str.charCodeAt(++i);\n codeUnit = 65536 + ((codeUnit & 1023) << 10) | trailSurrogate & 1023;\n }\n GROWABLE_HEAP_I32()[outPtr >>> 2] = codeUnit;\n outPtr += 4;\n if (outPtr + 4 > endPtr)\n break;\n }\n GROWABLE_HEAP_I32()[outPtr >>> 2] = 0;\n return outPtr - startPtr;\n };\n var lengthBytesUTF32 = (str) => {\n var len = 0;\n for (var i = 0; i < str.length; ++i) {\n var codeUnit = str.charCodeAt(i);\n if (codeUnit >= 55296 && codeUnit <= 57343)\n ++i;\n len += 4;\n }\n return len;\n };\n var __embind_register_std_wstring = function(rawType, charSize, name) {\n rawType >>>= 0;\n charSize >>>= 0;\n name >>>= 0;\n name = readLatin1String(name);\n var decodeString, encodeString, getHeap, lengthBytesUTF, shift;\n if (charSize === 2) {\n decodeString = UTF16ToString;\n encodeString = stringToUTF16;\n lengthBytesUTF = lengthBytesUTF16;\n getHeap = () => GROWABLE_HEAP_U16();\n shift = 1;\n } else if (charSize === 4) {\n decodeString = UTF32ToString;\n encodeString = stringToUTF32;\n lengthBytesUTF = lengthBytesUTF32;\n getHeap = () => GROWABLE_HEAP_U32();\n shift = 2;\n }\n registerType(rawType, { name, \"fromWireType\": function(value) {\n var length = GROWABLE_HEAP_U32()[value >>> 2];\n var HEAP = getHeap();\n var str;\n var decodeStartPtr = value + 4;\n for (var i = 0; i <= length; ++i) {\n var currentBytePtr = value + 4 + i * charSize;\n if (i == length || HEAP[currentBytePtr >>> shift] == 0) {\n var maxReadBytes = currentBytePtr - decodeStartPtr;\n var stringSegment = decodeString(decodeStartPtr, maxReadBytes);\n if (str === void 0) {\n str = stringSegment;\n } else {\n str += String.fromCharCode(0);\n str += stringSegment;\n }\n decodeStartPtr = currentBytePtr + charSize;\n }\n }\n _free(value);\n return str;\n }, \"toWireType\": function(destructors, value) {\n if (!(typeof value == \"string\")) {\n throwBindingError(`Cannot pass non-string to C++ string type ${name}`);\n }\n var length = lengthBytesUTF(value);\n var ptr = _malloc(4 + length + charSize);\n GROWABLE_HEAP_U32()[ptr >>> 2] = length >> shift;\n encodeString(value, ptr + 4, length + charSize);\n if (destructors !== null) {\n destructors.push(_free, ptr);\n }\n return ptr;\n }, \"argPackAdvance\": 8, \"readValueFromPointer\": simpleReadValueFromPointer, destructorFunction: function(ptr) {\n _free(ptr);\n } });\n };\n function __embind_register_value_array(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) {\n rawType >>>= 0;\n name >>>= 0;\n constructorSignature >>>= 0;\n rawConstructor >>>= 0;\n destructorSignature >>>= 0;\n rawDestructor >>>= 0;\n tupleRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), elements: [] };\n }\n function __embind_register_value_array_element(rawTupleType, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) {\n rawTupleType >>>= 0;\n getterReturnType >>>= 0;\n getterSignature >>>= 0;\n getter >>>= 0;\n getterContext >>>= 0;\n setterArgumentType >>>= 0;\n setterSignature >>>= 0;\n setter >>>= 0;\n setterContext >>>= 0;\n tupleRegistrations[rawTupleType].elements.push({ getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext });\n }\n function __embind_register_value_object(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) {\n rawType >>>= 0;\n name >>>= 0;\n constructorSignature >>>= 0;\n rawConstructor >>>= 0;\n destructorSignature >>>= 0;\n rawDestructor >>>= 0;\n structRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), fields: [] };\n }\n function __embind_register_value_object_field(structType, fieldName, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) {\n structType >>>= 0;\n fieldName >>>= 0;\n getterReturnType >>>= 0;\n getterSignature >>>= 0;\n getter >>>= 0;\n getterContext >>>= 0;\n setterArgumentType >>>= 0;\n setterSignature >>>= 0;\n setter >>>= 0;\n setterContext >>>= 0;\n structRegistrations[structType].fields.push({ fieldName: readLatin1String(fieldName), getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext });\n }\n function __embind_register_void(rawType, name) {\n rawType >>>= 0;\n name >>>= 0;\n name = readLatin1String(name);\n registerType(rawType, { isVoid: true, name, \"argPackAdvance\": 0, \"fromWireType\": function() {\n return void 0;\n }, \"toWireType\": function(destructors, o) {\n return void 0;\n } });\n }\n var nowIsMonotonic = true;\n var __emscripten_get_now_is_monotonic = () => nowIsMonotonic;\n var maybeExit = () => {\n if (!keepRuntimeAlive()) {\n try {\n if (ENVIRONMENT_IS_PTHREAD)\n __emscripten_thread_exit(EXITSTATUS);\n else\n _exit(EXITSTATUS);\n } catch (e) {\n handleException(e);\n }\n }\n };\n var callUserCallback = (func) => {\n if (ABORT) {\n return;\n }\n try {\n func();\n maybeExit();\n } catch (e) {\n handleException(e);\n }\n };\n function __emscripten_thread_mailbox_await(pthread_ptr) {\n pthread_ptr >>>= 0;\n if (typeof Atomics.waitAsync === \"function\") {\n var wait = Atomics.waitAsync(GROWABLE_HEAP_I32(), pthread_ptr >> 2, pthread_ptr);\n wait.value.then(checkMailbox);\n var waitingAsync = pthread_ptr + 128;\n Atomics.store(GROWABLE_HEAP_I32(), waitingAsync >> 2, 1);\n }\n }\n Module[\"__emscripten_thread_mailbox_await\"] = __emscripten_thread_mailbox_await;\n var checkMailbox = function() {\n var pthread_ptr = _pthread_self();\n if (pthread_ptr) {\n __emscripten_thread_mailbox_await(pthread_ptr);\n callUserCallback(() => __emscripten_check_mailbox());\n }\n };\n Module[\"checkMailbox\"] = checkMailbox;\n var __emscripten_notify_mailbox_postmessage = function(targetThreadId, currThreadId, mainThreadId) {\n targetThreadId >>>= 0;\n currThreadId >>>= 0;\n mainThreadId >>>= 0;\n if (targetThreadId == currThreadId) {\n setTimeout(() => checkMailbox());\n } else if (ENVIRONMENT_IS_PTHREAD) {\n postMessage({ \"targetThread\": targetThreadId, \"cmd\": \"checkMailbox\" });\n } else {\n var worker = PThread.pthreads[targetThreadId];\n if (!worker) {\n return;\n }\n worker.postMessage({ \"cmd\": \"checkMailbox\" });\n }\n };\n function __emscripten_set_offscreencanvas_size(target, width, height) {\n target >>>= 0;\n return -1;\n }\n function __emscripten_thread_set_strongref(thread) {\n thread >>>= 0;\n }\n function requireRegisteredType(rawType, humanName) {\n var impl = registeredTypes[rawType];\n if (impl === void 0) {\n throwBindingError(humanName + \" has unknown type \" + getTypeName(rawType));\n }\n return impl;\n }\n function __emval_as(handle, returnType, destructorsRef) {\n handle >>>= 0;\n returnType >>>= 0;\n destructorsRef >>>= 0;\n handle = Emval.toValue(handle);\n returnType = requireRegisteredType(returnType, \"emval::as\");\n var destructors = [];\n var rd = Emval.toHandle(destructors);\n GROWABLE_HEAP_U32()[destructorsRef >>> 2] = rd;\n return returnType[\"toWireType\"](destructors, handle);\n }\n function emval_lookupTypes(argCount, argTypes) {\n var a = new Array(argCount);\n for (var i = 0; i < argCount; ++i) {\n a[i] = requireRegisteredType(GROWABLE_HEAP_U32()[argTypes + i * 4 >>> 2], \"parameter \" + i);\n }\n return a;\n }\n function __emval_call(handle, argCount, argTypes, argv) {\n handle >>>= 0;\n argTypes >>>= 0;\n argv >>>= 0;\n handle = Emval.toValue(handle);\n var types = emval_lookupTypes(argCount, argTypes);\n var args = new Array(argCount);\n for (var i = 0; i < argCount; ++i) {\n var type = types[i];\n args[i] = type[\"readValueFromPointer\"](argv);\n argv += type[\"argPackAdvance\"];\n }\n var rv = handle.apply(void 0, args);\n return Emval.toHandle(rv);\n }\n var emval_symbols = {};\n function getStringOrSymbol(address) {\n var symbol = emval_symbols[address];\n if (symbol === void 0) {\n return readLatin1String(address);\n }\n return symbol;\n }\n function emval_get_global() {\n if (typeof globalThis == \"object\") {\n return globalThis;\n }\n return function() {\n return Function;\n }()(\"return this\")();\n }\n function __emval_get_global(name) {\n name >>>= 0;\n if (name === 0) {\n return Emval.toHandle(emval_get_global());\n } else {\n name = getStringOrSymbol(name);\n return Emval.toHandle(emval_get_global()[name]);\n }\n }\n function __emval_get_property(handle, key) {\n handle >>>= 0;\n key >>>= 0;\n handle = Emval.toValue(handle);\n key = Emval.toValue(key);\n return Emval.toHandle(handle[key]);\n }\n function __emval_incref(handle) {\n handle >>>= 0;\n if (handle > 4) {\n emval_handles.get(handle).refcount += 1;\n }\n }\n function __emval_instanceof(object, constructor) {\n object >>>= 0;\n constructor >>>= 0;\n object = Emval.toValue(object);\n constructor = Emval.toValue(constructor);\n return object instanceof constructor;\n }\n function __emval_is_number(handle) {\n handle >>>= 0;\n handle = Emval.toValue(handle);\n return typeof handle == \"number\";\n }\n function __emval_is_string(handle) {\n handle >>>= 0;\n handle = Emval.toValue(handle);\n return typeof handle == \"string\";\n }\n function __emval_new_array() {\n return Emval.toHandle([]);\n }\n function __emval_new_cstring(v) {\n v >>>= 0;\n return Emval.toHandle(getStringOrSymbol(v));\n }\n function __emval_new_object() {\n return Emval.toHandle({});\n }\n function __emval_run_destructors(handle) {\n handle >>>= 0;\n var destructors = Emval.toValue(handle);\n runDestructors(destructors);\n __emval_decref(handle);\n }\n function __emval_set_property(handle, key, value) {\n handle >>>= 0;\n key >>>= 0;\n value >>>= 0;\n handle = Emval.toValue(handle);\n key = Emval.toValue(key);\n value = Emval.toValue(value);\n handle[key] = value;\n }\n function __emval_take_value(type, arg) {\n type >>>= 0;\n arg >>>= 0;\n type = requireRegisteredType(type, \"_emval_take_value\");\n var v = type[\"readValueFromPointer\"](arg);\n return Emval.toHandle(v);\n }\n function __gmtime_js(time_low, time_high, tmPtr) {\n var time = convertI32PairToI53Checked(time_low, time_high);\n tmPtr >>>= 0;\n var date = new Date(time * 1e3);\n GROWABLE_HEAP_I32()[tmPtr >>> 2] = date.getUTCSeconds();\n GROWABLE_HEAP_I32()[tmPtr + 4 >>> 2] = date.getUTCMinutes();\n GROWABLE_HEAP_I32()[tmPtr + 8 >>> 2] = date.getUTCHours();\n GROWABLE_HEAP_I32()[tmPtr + 12 >>> 2] = date.getUTCDate();\n GROWABLE_HEAP_I32()[tmPtr + 16 >>> 2] = date.getUTCMonth();\n GROWABLE_HEAP_I32()[tmPtr + 20 >>> 2] = date.getUTCFullYear() - 1900;\n GROWABLE_HEAP_I32()[tmPtr + 24 >>> 2] = date.getUTCDay();\n var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0);\n var yday = (date.getTime() - start) / (1e3 * 60 * 60 * 24) | 0;\n GROWABLE_HEAP_I32()[tmPtr + 28 >>> 2] = yday;\n }\n var isLeapYear = (year) => year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n var MONTH_DAYS_LEAP_CUMULATIVE = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\n var MONTH_DAYS_REGULAR_CUMULATIVE = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];\n var ydayFromDate = (date) => {\n var leap = isLeapYear(date.getFullYear());\n var monthDaysCumulative = leap ? MONTH_DAYS_LEAP_CUMULATIVE : MONTH_DAYS_REGULAR_CUMULATIVE;\n var yday = monthDaysCumulative[date.getMonth()] + date.getDate() - 1;\n return yday;\n };\n function __localtime_js(time_low, time_high, tmPtr) {\n var time = convertI32PairToI53Checked(time_low, time_high);\n tmPtr >>>= 0;\n var date = new Date(time * 1e3);\n GROWABLE_HEAP_I32()[tmPtr >>> 2] = date.getSeconds();\n GROWABLE_HEAP_I32()[tmPtr + 4 >>> 2] = date.getMinutes();\n GROWABLE_HEAP_I32()[tmPtr + 8 >>> 2] = date.getHours();\n GROWABLE_HEAP_I32()[tmPtr + 12 >>> 2] = date.getDate();\n GROWABLE_HEAP_I32()[tmPtr + 16 >>> 2] = date.getMonth();\n GROWABLE_HEAP_I32()[tmPtr + 20 >>> 2] = date.getFullYear() - 1900;\n GROWABLE_HEAP_I32()[tmPtr + 24 >>> 2] = date.getDay();\n var yday = ydayFromDate(date) | 0;\n GROWABLE_HEAP_I32()[tmPtr + 28 >>> 2] = yday;\n GROWABLE_HEAP_I32()[tmPtr + 36 >>> 2] = -(date.getTimezoneOffset() * 60);\n var start = new Date(date.getFullYear(), 0, 1);\n var summerOffset = new Date(date.getFullYear(), 6, 1).getTimezoneOffset();\n var winterOffset = start.getTimezoneOffset();\n var dst = (summerOffset != winterOffset && date.getTimezoneOffset() == Math.min(winterOffset, summerOffset)) | 0;\n GROWABLE_HEAP_I32()[tmPtr + 32 >>> 2] = dst;\n }\n var stringToNewUTF8 = (str) => {\n var size = lengthBytesUTF8(str) + 1;\n var ret = _malloc(size);\n if (ret)\n stringToUTF8(str, ret, size);\n return ret;\n };\n function __tzset_js(timezone, daylight, tzname) {\n timezone >>>= 0;\n daylight >>>= 0;\n tzname >>>= 0;\n var currentYear = new Date().getFullYear();\n var winter = new Date(currentYear, 0, 1);\n var summer = new Date(currentYear, 6, 1);\n var winterOffset = winter.getTimezoneOffset();\n var summerOffset = summer.getTimezoneOffset();\n var stdTimezoneOffset = Math.max(winterOffset, summerOffset);\n GROWABLE_HEAP_U32()[timezone >>> 2] = stdTimezoneOffset * 60;\n GROWABLE_HEAP_I32()[daylight >>> 2] = Number(winterOffset != summerOffset);\n function extractZone(date) {\n var match = date.toTimeString().match(/\\(([A-Za-z ]+)\\)$/);\n return match ? match[1] : \"GMT\";\n }\n var winterName = extractZone(winter);\n var summerName = extractZone(summer);\n var winterNamePtr = stringToNewUTF8(winterName);\n var summerNamePtr = stringToNewUTF8(summerName);\n if (summerOffset < winterOffset) {\n GROWABLE_HEAP_U32()[tzname >>> 2] = winterNamePtr;\n GROWABLE_HEAP_U32()[tzname + 4 >>> 2] = summerNamePtr;\n } else {\n GROWABLE_HEAP_U32()[tzname >>> 2] = summerNamePtr;\n GROWABLE_HEAP_U32()[tzname + 4 >>> 2] = winterNamePtr;\n }\n }\n var _abort = () => {\n abort(\"\");\n };\n var warnOnce = (text) => {\n if (!warnOnce.shown)\n warnOnce.shown = {};\n if (!warnOnce.shown[text]) {\n warnOnce.shown[text] = 1;\n err(text);\n }\n };\n function _emscripten_check_blocking_allowed() {\n }\n function _emscripten_date_now() {\n return Date.now();\n }\n var runtimeKeepalivePush = () => {\n runtimeKeepaliveCounter += 1;\n };\n var _emscripten_exit_with_live_runtime = () => {\n runtimeKeepalivePush();\n throw \"unwind\";\n };\n var _emscripten_get_now;\n _emscripten_get_now = () => performance.timeOrigin + performance.now();\n var withStackSave = (f) => {\n var stack = stackSave();\n var ret = f();\n stackRestore(stack);\n return ret;\n };\n var proxyToMainThread = function(index, sync) {\n var numCallArgs = arguments.length - 2;\n var outerArgs = arguments;\n return withStackSave(() => {\n var serializedNumCallArgs = numCallArgs;\n var args = stackAlloc(serializedNumCallArgs * 8);\n var b = args >> 3;\n for (var i = 0; i < numCallArgs; i++) {\n var arg = outerArgs[2 + i];\n GROWABLE_HEAP_F64()[b + i >>> 0] = arg;\n }\n return __emscripten_run_in_main_runtime_thread_js(index, serializedNumCallArgs, args, sync);\n });\n };\n var emscripten_receive_on_main_thread_js_callArgs = [];\n function _emscripten_receive_on_main_thread_js(index, callingThread, numCallArgs, args) {\n callingThread >>>= 0;\n args >>>= 0;\n PThread.currentProxiedOperationCallerThread = callingThread;\n emscripten_receive_on_main_thread_js_callArgs.length = numCallArgs;\n var b = args >> 3;\n for (var i = 0; i < numCallArgs; i++) {\n emscripten_receive_on_main_thread_js_callArgs[i] = GROWABLE_HEAP_F64()[b + i >>> 0];\n }\n var func = proxiedFunctionTable[index];\n return func.apply(null, emscripten_receive_on_main_thread_js_callArgs);\n }\n var getHeapMax = () => 4294901760;\n var growMemory = (size) => {\n var b = wasmMemory.buffer;\n var pages = size - b.byteLength + 65535 >>> 16;\n try {\n wasmMemory.grow(pages);\n updateMemoryViews();\n return 1;\n } catch (e) {\n }\n };\n function _emscripten_resize_heap(requestedSize) {\n requestedSize >>>= 0;\n var oldSize = GROWABLE_HEAP_U8().length;\n if (requestedSize <= oldSize) {\n return false;\n }\n var maxHeapSize = getHeapMax();\n if (requestedSize > maxHeapSize) {\n return false;\n }\n var alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple;\n for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {\n var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown);\n overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);\n var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536));\n var replacement = growMemory(newSize);\n if (replacement) {\n return true;\n }\n }\n return false;\n }\n var ENV = {};\n var getExecutableName = () => thisProgram || \"./this.program\";\n var getEnvStrings = () => {\n if (!getEnvStrings.strings) {\n var lang = (typeof navigator == \"object\" && navigator.languages && navigator.languages[0] || \"C\").replace(\"-\", \"_\") + \".UTF-8\";\n var env = { \"USER\": \"web_user\", \"LOGNAME\": \"web_user\", \"PATH\": \"/\", \"PWD\": \"/\", \"HOME\": \"/home/web_user\", \"LANG\": lang, \"_\": getExecutableName() };\n for (var x in ENV) {\n if (ENV[x] === void 0)\n delete env[x];\n else\n env[x] = ENV[x];\n }\n var strings = [];\n for (var x in env) {\n strings.push(`${x}=${env[x]}`);\n }\n getEnvStrings.strings = strings;\n }\n return getEnvStrings.strings;\n };\n var stringToAscii = (str, buffer) => {\n for (var i = 0; i < str.length; ++i) {\n GROWABLE_HEAP_I8()[buffer++ >>> 0] = str.charCodeAt(i);\n }\n GROWABLE_HEAP_I8()[buffer >>> 0] = 0;\n };\n function _environ_get(__environ, environ_buf) {\n if (ENVIRONMENT_IS_PTHREAD)\n return proxyToMainThread(3, 1, __environ, environ_buf);\n __environ >>>= 0;\n environ_buf >>>= 0;\n var bufSize = 0;\n getEnvStrings().forEach(function(string, i) {\n var ptr = environ_buf + bufSize;\n GROWABLE_HEAP_U32()[__environ + i * 4 >>> 2] = ptr;\n stringToAscii(string, ptr);\n bufSize += string.length + 1;\n });\n return 0;\n }\n function _environ_sizes_get(penviron_count, penviron_buf_size) {\n if (ENVIRONMENT_IS_PTHREAD)\n return proxyToMainThread(4, 1, penviron_count, penviron_buf_size);\n penviron_count >>>= 0;\n penviron_buf_size >>>= 0;\n var strings = getEnvStrings();\n GROWABLE_HEAP_U32()[penviron_count >>> 2] = strings.length;\n var bufSize = 0;\n strings.forEach(function(string) {\n bufSize += string.length + 1;\n });\n GROWABLE_HEAP_U32()[penviron_buf_size >>> 2] = bufSize;\n return 0;\n }\n function _fd_close(fd) {\n if (ENVIRONMENT_IS_PTHREAD)\n return proxyToMainThread(5, 1, fd);\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n FS.close(stream);\n return 0;\n } catch (e) {\n if (typeof FS == \"undefined\" || !(e.name === \"ErrnoError\"))\n throw e;\n return e.errno;\n }\n }\n function _fd_fdstat_get(fd, pbuf) {\n if (ENVIRONMENT_IS_PTHREAD)\n return proxyToMainThread(6, 1, fd, pbuf);\n pbuf >>>= 0;\n try {\n var rightsBase = 0;\n var rightsInheriting = 0;\n var flags = 0;\n {\n var stream = SYSCALLS.getStreamFromFD(fd);\n var type = stream.tty ? 2 : FS.isDir(stream.mode) ? 3 : FS.isLink(stream.mode) ? 7 : 4;\n }\n GROWABLE_HEAP_I8()[pbuf >>> 0] = type;\n GROWABLE_HEAP_I16()[pbuf + 2 >>> 1] = flags;\n tempI64 = [rightsBase >>> 0, (tempDouble = rightsBase, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[pbuf + 8 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[pbuf + 12 >>> 2] = tempI64[1];\n tempI64 = [rightsInheriting >>> 0, (tempDouble = rightsInheriting, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[pbuf + 16 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[pbuf + 20 >>> 2] = tempI64[1];\n return 0;\n } catch (e) {\n if (typeof FS == \"undefined\" || !(e.name === \"ErrnoError\"))\n throw e;\n return e.errno;\n }\n }\n var doReadv = (stream, iov, iovcnt, offset) => {\n var ret = 0;\n for (var i = 0; i < iovcnt; i++) {\n var ptr = GROWABLE_HEAP_U32()[iov >>> 2];\n var len = GROWABLE_HEAP_U32()[iov + 4 >>> 2];\n iov += 8;\n var curr = FS.read(stream, GROWABLE_HEAP_I8(), ptr, len, offset);\n if (curr < 0)\n return -1;\n ret += curr;\n if (curr < len)\n break;\n if (typeof offset !== \"undefined\") {\n offset += curr;\n }\n }\n return ret;\n };\n function _fd_read(fd, iov, iovcnt, pnum) {\n if (ENVIRONMENT_IS_PTHREAD)\n return proxyToMainThread(7, 1, fd, iov, iovcnt, pnum);\n iov >>>= 0;\n iovcnt >>>= 0;\n pnum >>>= 0;\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n var num = doReadv(stream, iov, iovcnt);\n GROWABLE_HEAP_U32()[pnum >>> 2] = num;\n return 0;\n } catch (e) {\n if (typeof FS == \"undefined\" || !(e.name === \"ErrnoError\"))\n throw e;\n return e.errno;\n }\n }\n function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {\n if (ENVIRONMENT_IS_PTHREAD)\n return proxyToMainThread(8, 1, fd, offset_low, offset_high, whence, newOffset);\n var offset = convertI32PairToI53Checked(offset_low, offset_high);\n newOffset >>>= 0;\n try {\n if (isNaN(offset))\n return 61;\n var stream = SYSCALLS.getStreamFromFD(fd);\n FS.llseek(stream, offset, whence);\n tempI64 = [stream.position >>> 0, (tempDouble = stream.position, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[newOffset >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[newOffset + 4 >>> 2] = tempI64[1];\n if (stream.getdents && offset === 0 && whence === 0)\n stream.getdents = null;\n return 0;\n } catch (e) {\n if (typeof FS == \"undefined\" || !(e.name === \"ErrnoError\"))\n throw e;\n return e.errno;\n }\n }\n var doWritev = (stream, iov, iovcnt, offset) => {\n var ret = 0;\n for (var i = 0; i < iovcnt; i++) {\n var ptr = GROWABLE_HEAP_U32()[iov >>> 2];\n var len = GROWABLE_HEAP_U32()[iov + 4 >>> 2];\n iov += 8;\n var curr = FS.write(stream, GROWABLE_HEAP_I8(), ptr, len, offset);\n if (curr < 0)\n return -1;\n ret += curr;\n if (typeof offset !== \"undefined\") {\n offset += curr;\n }\n }\n return ret;\n };\n function _fd_write(fd, iov, iovcnt, pnum) {\n if (ENVIRONMENT_IS_PTHREAD)\n return proxyToMainThread(9, 1, fd, iov, iovcnt, pnum);\n iov >>>= 0;\n iovcnt >>>= 0;\n pnum >>>= 0;\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n var num = doWritev(stream, iov, iovcnt);\n GROWABLE_HEAP_U32()[pnum >>> 2] = num;\n return 0;\n } catch (e) {\n if (typeof FS == \"undefined\" || !(e.name === \"ErrnoError\"))\n throw e;\n return e.errno;\n }\n }\n var arraySum = (array, index) => {\n var sum = 0;\n for (var i = 0; i <= index; sum += array[i++]) {\n }\n return sum;\n };\n var MONTH_DAYS_LEAP = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n var MONTH_DAYS_REGULAR = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n var addDays = (date, days) => {\n var newDate = new Date(date.getTime());\n while (days > 0) {\n var leap = isLeapYear(newDate.getFullYear());\n var currentMonth = newDate.getMonth();\n var daysInCurrentMonth = (leap ? MONTH_DAYS_LEAP : MONTH_DAYS_REGULAR)[currentMonth];\n if (days > daysInCurrentMonth - newDate.getDate()) {\n days -= daysInCurrentMonth - newDate.getDate() + 1;\n newDate.setDate(1);\n if (currentMonth < 11) {\n newDate.setMonth(currentMonth + 1);\n } else {\n newDate.setMonth(0);\n newDate.setFullYear(newDate.getFullYear() + 1);\n }\n } else {\n newDate.setDate(newDate.getDate() + days);\n return newDate;\n }\n }\n return newDate;\n };\n var writeArrayToMemory = (array, buffer) => {\n GROWABLE_HEAP_I8().set(array, buffer >>> 0);\n };\n function _strftime(s, maxsize, format, tm) {\n s >>>= 0;\n maxsize >>>= 0;\n format >>>= 0;\n tm >>>= 0;\n var tm_zone = GROWABLE_HEAP_I32()[tm + 40 >>> 2];\n var date = { tm_sec: GROWABLE_HEAP_I32()[tm >>> 2], tm_min: GROWABLE_HEAP_I32()[tm + 4 >>> 2], tm_hour: GROWABLE_HEAP_I32()[tm + 8 >>> 2], tm_mday: GROWABLE_HEAP_I32()[tm + 12 >>> 2], tm_mon: GROWABLE_HEAP_I32()[tm + 16 >>> 2], tm_year: GROWABLE_HEAP_I32()[tm + 20 >>> 2], tm_wday: GROWABLE_HEAP_I32()[tm + 24 >>> 2], tm_yday: GROWABLE_HEAP_I32()[tm + 28 >>> 2], tm_isdst: GROWABLE_HEAP_I32()[tm + 32 >>> 2], tm_gmtoff: GROWABLE_HEAP_I32()[tm + 36 >>> 2], tm_zone: tm_zone ? UTF8ToString(tm_zone) : \"\" };\n var pattern = UTF8ToString(format);\n var EXPANSION_RULES_1 = { \"%c\": \"%a %b %d %H:%M:%S %Y\", \"%D\": \"%m/%d/%y\", \"%F\": \"%Y-%m-%d\", \"%h\": \"%b\", \"%r\": \"%I:%M:%S %p\", \"%R\": \"%H:%M\", \"%T\": \"%H:%M:%S\", \"%x\": \"%m/%d/%y\", \"%X\": \"%H:%M:%S\", \"%Ec\": \"%c\", \"%EC\": \"%C\", \"%Ex\": \"%m/%d/%y\", \"%EX\": \"%H:%M:%S\", \"%Ey\": \"%y\", \"%EY\": \"%Y\", \"%Od\": \"%d\", \"%Oe\": \"%e\", \"%OH\": \"%H\", \"%OI\": \"%I\", \"%Om\": \"%m\", \"%OM\": \"%M\", \"%OS\": \"%S\", \"%Ou\": \"%u\", \"%OU\": \"%U\", \"%OV\": \"%V\", \"%Ow\": \"%w\", \"%OW\": \"%W\", \"%Oy\": \"%y\" };\n for (var rule in EXPANSION_RULES_1) {\n pattern = pattern.replace(new RegExp(rule, \"g\"), EXPANSION_RULES_1[rule]);\n }\n var WEEKDAYS = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\n var MONTHS = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\n function leadingSomething(value, digits, character) {\n var str = typeof value == \"number\" ? value.toString() : value || \"\";\n while (str.length < digits) {\n str = character[0] + str;\n }\n return str;\n }\n function leadingNulls(value, digits) {\n return leadingSomething(value, digits, \"0\");\n }\n function compareByDay(date1, date2) {\n function sgn(value) {\n return value < 0 ? -1 : value > 0 ? 1 : 0;\n }\n var compare;\n if ((compare = sgn(date1.getFullYear() - date2.getFullYear())) === 0) {\n if ((compare = sgn(date1.getMonth() - date2.getMonth())) === 0) {\n compare = sgn(date1.getDate() - date2.getDate());\n }\n }\n return compare;\n }\n function getFirstWeekStartDate(janFourth) {\n switch (janFourth.getDay()) {\n case 0:\n return new Date(janFourth.getFullYear() - 1, 11, 29);\n case 1:\n return janFourth;\n case 2:\n return new Date(janFourth.getFullYear(), 0, 3);\n case 3:\n return new Date(janFourth.getFullYear(), 0, 2);\n case 4:\n return new Date(janFourth.getFullYear(), 0, 1);\n case 5:\n return new Date(janFourth.getFullYear() - 1, 11, 31);\n case 6:\n return new Date(janFourth.getFullYear() - 1, 11, 30);\n }\n }\n function getWeekBasedYear(date2) {\n var thisDate = addDays(new Date(date2.tm_year + 1900, 0, 1), date2.tm_yday);\n var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4);\n var janFourthNextYear = new Date(thisDate.getFullYear() + 1, 0, 4);\n var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear);\n var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear);\n if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) {\n if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) {\n return thisDate.getFullYear() + 1;\n }\n return thisDate.getFullYear();\n }\n return thisDate.getFullYear() - 1;\n }\n var EXPANSION_RULES_2 = { \"%a\": (date2) => WEEKDAYS[date2.tm_wday].substring(0, 3), \"%A\": (date2) => WEEKDAYS[date2.tm_wday], \"%b\": (date2) => MONTHS[date2.tm_mon].substring(0, 3), \"%B\": (date2) => MONTHS[date2.tm_mon], \"%C\": (date2) => {\n var year = date2.tm_year + 1900;\n return leadingNulls(year / 100 | 0, 2);\n }, \"%d\": (date2) => leadingNulls(date2.tm_mday, 2), \"%e\": (date2) => leadingSomething(date2.tm_mday, 2, \" \"), \"%g\": (date2) => getWeekBasedYear(date2).toString().substring(2), \"%G\": (date2) => getWeekBasedYear(date2), \"%H\": (date2) => leadingNulls(date2.tm_hour, 2), \"%I\": (date2) => {\n var twelveHour = date2.tm_hour;\n if (twelveHour == 0)\n twelveHour = 12;\n else if (twelveHour > 12)\n twelveHour -= 12;\n return leadingNulls(twelveHour, 2);\n }, \"%j\": (date2) => leadingNulls(date2.tm_mday + arraySum(isLeapYear(date2.tm_year + 1900) ? MONTH_DAYS_LEAP : MONTH_DAYS_REGULAR, date2.tm_mon - 1), 3), \"%m\": (date2) => leadingNulls(date2.tm_mon + 1, 2), \"%M\": (date2) => leadingNulls(date2.tm_min, 2), \"%n\": () => \"\\n\", \"%p\": (date2) => {\n if (date2.tm_hour >= 0 && date2.tm_hour < 12) {\n return \"AM\";\n }\n return \"PM\";\n }, \"%S\": (date2) => leadingNulls(date2.tm_sec, 2), \"%t\": () => \"\t\", \"%u\": (date2) => date2.tm_wday || 7, \"%U\": (date2) => {\n var days = date2.tm_yday + 7 - date2.tm_wday;\n return leadingNulls(Math.floor(days / 7), 2);\n }, \"%V\": (date2) => {\n var val = Math.floor((date2.tm_yday + 7 - (date2.tm_wday + 6) % 7) / 7);\n if ((date2.tm_wday + 371 - date2.tm_yday - 2) % 7 <= 2) {\n val++;\n }\n if (!val) {\n val = 52;\n var dec31 = (date2.tm_wday + 7 - date2.tm_yday - 1) % 7;\n if (dec31 == 4 || dec31 == 5 && isLeapYear(date2.tm_year % 400 - 1)) {\n val++;\n }\n } else if (val == 53) {\n var jan1 = (date2.tm_wday + 371 - date2.tm_yday) % 7;\n if (jan1 != 4 && (jan1 != 3 || !isLeapYear(date2.tm_year)))\n val = 1;\n }\n return leadingNulls(val, 2);\n }, \"%w\": (date2) => date2.tm_wday, \"%W\": (date2) => {\n var days = date2.tm_yday + 7 - (date2.tm_wday + 6) % 7;\n return leadingNulls(Math.floor(days / 7), 2);\n }, \"%y\": (date2) => (date2.tm_year + 1900).toString().substring(2), \"%Y\": (date2) => date2.tm_year + 1900, \"%z\": (date2) => {\n var off = date2.tm_gmtoff;\n var ahead = off >= 0;\n off = Math.abs(off) / 60;\n off = off / 60 * 100 + off % 60;\n return (ahead ? \"+\" : \"-\") + String(\"0000\" + off).slice(-4);\n }, \"%Z\": (date2) => date2.tm_zone, \"%%\": () => \"%\" };\n pattern = pattern.replace(/%%/g, \"\\0\\0\");\n for (var rule in EXPANSION_RULES_2) {\n if (pattern.includes(rule)) {\n pattern = pattern.replace(new RegExp(rule, \"g\"), EXPANSION_RULES_2[rule](date));\n }\n }\n pattern = pattern.replace(/\\0\\0/g, \"%\");\n var bytes = intArrayFromString(pattern, false);\n if (bytes.length > maxsize) {\n return 0;\n }\n writeArrayToMemory(bytes, s);\n return bytes.length - 1;\n }\n function _strftime_l(s, maxsize, format, tm, loc) {\n s >>>= 0;\n maxsize >>>= 0;\n format >>>= 0;\n tm >>>= 0;\n loc >>>= 0;\n return _strftime(s, maxsize, format, tm);\n }\n PThread.init();\n var FSNode = function(parent, name, mode, rdev) {\n if (!parent) {\n parent = this;\n }\n this.parent = parent;\n this.mount = parent.mount;\n this.mounted = null;\n this.id = FS.nextInode++;\n this.name = name;\n this.mode = mode;\n this.node_ops = {};\n this.stream_ops = {};\n this.rdev = rdev;\n };\n var readMode = 292 | 73;\n var writeMode = 146;\n Object.defineProperties(FSNode.prototype, { read: { get: function() {\n return (this.mode & readMode) === readMode;\n }, set: function(val) {\n val ? this.mode |= readMode : this.mode &= ~readMode;\n } }, write: { get: function() {\n return (this.mode & writeMode) === writeMode;\n }, set: function(val) {\n val ? this.mode |= writeMode : this.mode &= ~writeMode;\n } }, isFolder: { get: function() {\n return FS.isDir(this.mode);\n } }, isDevice: { get: function() {\n return FS.isChrdev(this.mode);\n } } });\n FS.FSNode = FSNode;\n FS.createPreloadedFile = FS_createPreloadedFile;\n FS.staticInit();\n InternalError = Module[\"InternalError\"] = class InternalError extends Error {\n constructor(message) {\n super(message);\n this.name = \"InternalError\";\n }\n };\n embind_init_charCodes();\n BindingError = Module[\"BindingError\"] = class BindingError extends Error {\n constructor(message) {\n super(message);\n this.name = \"BindingError\";\n }\n };\n init_ClassHandle();\n init_embind();\n init_RegisteredPointer();\n UnboundTypeError = Module[\"UnboundTypeError\"] = extendError(Error, \"UnboundTypeError\");\n handleAllocatorInit();\n init_emval();\n var proxiedFunctionTable = [null, _proc_exit, exitOnMainThread, _environ_get, _environ_sizes_get, _fd_close, _fd_fdstat_get, _fd_read, _fd_seek, _fd_write];\n var wasmImports = { g: ___cxa_throw, Y: ___emscripten_init_main_thread_js, B: ___emscripten_thread_cleanup, fa: __embind_finalize_value_array, r: __embind_finalize_value_object, K: __embind_register_bigint, da: __embind_register_bool, q: __embind_register_class, p: __embind_register_class_constructor, c: __embind_register_class_function, ca: __embind_register_emval, D: __embind_register_float, d: __embind_register_function, t: __embind_register_integer, l: __embind_register_memory_view, E: __embind_register_std_string, y: __embind_register_std_wstring, ga: __embind_register_value_array, m: __embind_register_value_array_element, s: __embind_register_value_object, f: __embind_register_value_object_field, ea: __embind_register_void, T: __emscripten_get_now_is_monotonic, R: __emscripten_notify_mailbox_postmessage, W: __emscripten_set_offscreencanvas_size, X: __emscripten_thread_mailbox_await, ba: __emscripten_thread_set_strongref, k: __emval_as, x: __emval_call, b: __emval_decref, A: __emval_get_global, i: __emval_get_property, o: __emval_incref, G: __emval_instanceof, z: __emval_is_number, F: __emval_is_string, ha: __emval_new_array, h: __emval_new_cstring, v: __emval_new_object, j: __emval_run_destructors, n: __emval_set_property, e: __emval_take_value, I: __gmtime_js, J: __localtime_js, Q: __tzset_js, w: _abort, C: _emscripten_check_blocking_allowed, U: _emscripten_date_now, aa: _emscripten_exit_with_live_runtime, u: _emscripten_get_now, V: _emscripten_receive_on_main_thread_js, P: _emscripten_resize_heap, _: _environ_get, $: _environ_sizes_get, L: _exit, N: _fd_close, Z: _fd_fdstat_get, O: _fd_read, H: _fd_seek, S: _fd_write, a: wasmMemory || Module[\"wasmMemory\"], M: _strftime_l };\n var asm = createWasm();\n var ___wasm_call_ctors = () => (___wasm_call_ctors = wasmExports[\"ia\"])();\n var _pthread_self = Module[\"_pthread_self\"] = () => (_pthread_self = Module[\"_pthread_self\"] = wasmExports[\"ka\"])();\n var _malloc = (a0) => (_malloc = wasmExports[\"la\"])(a0);\n var __emscripten_tls_init = Module[\"__emscripten_tls_init\"] = () => (__emscripten_tls_init = Module[\"__emscripten_tls_init\"] = wasmExports[\"ma\"])();\n var ___getTypeName = (a0) => (___getTypeName = wasmExports[\"na\"])(a0);\n var __embind_initialize_bindings = Module[\"__embind_initialize_bindings\"] = () => (__embind_initialize_bindings = Module[\"__embind_initialize_bindings\"] = wasmExports[\"oa\"])();\n var ___errno_location = () => (___errno_location = wasmExports[\"__errno_location\"])();\n var __emscripten_thread_init = Module[\"__emscripten_thread_init\"] = (a0, a1, a2, a3, a4, a5) => (__emscripten_thread_init = Module[\"__emscripten_thread_init\"] = wasmExports[\"pa\"])(a0, a1, a2, a3, a4, a5);\n var __emscripten_thread_crashed = Module[\"__emscripten_thread_crashed\"] = () => (__emscripten_thread_crashed = Module[\"__emscripten_thread_crashed\"] = wasmExports[\"qa\"])();\n var _emscripten_main_thread_process_queued_calls = () => (_emscripten_main_thread_process_queued_calls = wasmExports[\"emscripten_main_thread_process_queued_calls\"])();\n var _emscripten_main_runtime_thread_id = () => (_emscripten_main_runtime_thread_id = wasmExports[\"emscripten_main_runtime_thread_id\"])();\n var __emscripten_run_in_main_runtime_thread_js = (a0, a1, a2, a3) => (__emscripten_run_in_main_runtime_thread_js = wasmExports[\"ra\"])(a0, a1, a2, a3);\n var _emscripten_dispatch_to_thread_ = (a0, a1, a2, a3, a4) => (_emscripten_dispatch_to_thread_ = wasmExports[\"emscripten_dispatch_to_thread_\"])(a0, a1, a2, a3, a4);\n var _free = (a0) => (_free = wasmExports[\"sa\"])(a0);\n var __emscripten_thread_free_data = (a0) => (__emscripten_thread_free_data = wasmExports[\"ta\"])(a0);\n var __emscripten_thread_exit = Module[\"__emscripten_thread_exit\"] = (a0) => (__emscripten_thread_exit = Module[\"__emscripten_thread_exit\"] = wasmExports[\"ua\"])(a0);\n var __emscripten_check_mailbox = Module[\"__emscripten_check_mailbox\"] = () => (__emscripten_check_mailbox = Module[\"__emscripten_check_mailbox\"] = wasmExports[\"va\"])();\n var _emscripten_stack_set_limits = (a0, a1) => (_emscripten_stack_set_limits = wasmExports[\"wa\"])(a0, a1);\n var stackSave = () => (stackSave = wasmExports[\"xa\"])();\n var stackRestore = (a0) => (stackRestore = wasmExports[\"ya\"])(a0);\n var stackAlloc = (a0) => (stackAlloc = wasmExports[\"za\"])(a0);\n var ___cxa_increment_exception_refcount = (a0) => (___cxa_increment_exception_refcount = wasmExports[\"__cxa_increment_exception_refcount\"])(a0);\n var ___cxa_is_pointer_type = (a0) => (___cxa_is_pointer_type = wasmExports[\"Aa\"])(a0);\n var dynCall_jiji = Module[\"dynCall_jiji\"] = (a0, a1, a2, a3, a4) => (dynCall_jiji = Module[\"dynCall_jiji\"] = wasmExports[\"Ba\"])(a0, a1, a2, a3, a4);\n var dynCall_viijii = Module[\"dynCall_viijii\"] = (a0, a1, a2, a3, a4, a5, a6) => (dynCall_viijii = Module[\"dynCall_viijii\"] = wasmExports[\"Ca\"])(a0, a1, a2, a3, a4, a5, a6);\n var dynCall_iiiiij = Module[\"dynCall_iiiiij\"] = (a0, a1, a2, a3, a4, a5, a6) => (dynCall_iiiiij = Module[\"dynCall_iiiiij\"] = wasmExports[\"Da\"])(a0, a1, a2, a3, a4, a5, a6);\n var dynCall_iiiiijj = Module[\"dynCall_iiiiijj\"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8) => (dynCall_iiiiijj = Module[\"dynCall_iiiiijj\"] = wasmExports[\"Ea\"])(a0, a1, a2, a3, a4, a5, a6, a7, a8);\n var dynCall_iiiiiijj = Module[\"dynCall_iiiiiijj\"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) => (dynCall_iiiiiijj = Module[\"dynCall_iiiiiijj\"] = wasmExports[\"Fa\"])(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);\n function applySignatureConversions(exports2) {\n exports2 = Object.assign({}, exports2);\n var makeWrapper_p = (f) => () => f() >>> 0;\n var makeWrapper_pp = (f) => (a0) => f(a0) >>> 0;\n exports2[\"pthread_self\"] = makeWrapper_p(exports2[\"pthread_self\"]);\n exports2[\"malloc\"] = makeWrapper_pp(exports2[\"malloc\"]);\n exports2[\"__getTypeName\"] = makeWrapper_pp(exports2[\"__getTypeName\"]);\n exports2[\"__errno_location\"] = makeWrapper_p(exports2[\"__errno_location\"]);\n exports2[\"stackSave\"] = makeWrapper_p(exports2[\"stackSave\"]);\n exports2[\"stackAlloc\"] = makeWrapper_pp(exports2[\"stackAlloc\"]);\n return exports2;\n }\n Module[\"keepRuntimeAlive\"] = keepRuntimeAlive;\n Module[\"wasmMemory\"] = wasmMemory;\n Module[\"ExitStatus\"] = ExitStatus;\n Module[\"PThread\"] = PThread;\n var calledRun;\n dependenciesFulfilled = function runCaller() {\n if (!calledRun)\n run();\n if (!calledRun)\n dependenciesFulfilled = runCaller;\n };\n function run() {\n if (runDependencies > 0) {\n return;\n }\n if (ENVIRONMENT_IS_PTHREAD) {\n readyPromiseResolve(Module);\n initRuntime();\n startWorker(Module);\n return;\n }\n preRun();\n if (runDependencies > 0) {\n return;\n }\n function doRun() {\n if (calledRun)\n return;\n calledRun = true;\n Module[\"calledRun\"] = true;\n if (ABORT)\n return;\n initRuntime();\n readyPromiseResolve(Module);\n if (Module[\"onRuntimeInitialized\"])\n Module[\"onRuntimeInitialized\"]();\n postRun();\n }\n if (Module[\"setStatus\"]) {\n Module[\"setStatus\"](\"Running...\");\n setTimeout(function() {\n setTimeout(function() {\n Module[\"setStatus\"](\"\");\n }, 1);\n doRun();\n }, 1);\n } else {\n doRun();\n }\n }\n if (Module[\"preInit\"]) {\n if (typeof Module[\"preInit\"] == \"function\")\n Module[\"preInit\"] = [Module[\"preInit\"]];\n while (Module[\"preInit\"].length > 0) {\n Module[\"preInit\"].pop()();\n }\n }\n run();\n return moduleArg.ready;\n };\n })();\n if (typeof exports === \"object\" && typeof module === \"object\")\n module.exports = WebIFCWasm2;\n else if (typeof define === \"function\" && define[\"amd\"])\n define([], () => WebIFCWasm2);\n }\n});\n\n// dist/web-ifc.js\nvar require_web_ifc = __commonJS({\n \"dist/web-ifc.js\"(exports, module) {\n var WebIFCWasm2 = (() => {\n var _scriptDir = typeof document !== \"undefined\" && document.currentScript ? document.currentScript.src : void 0;\n return function(moduleArg = {}) {\n var Module = moduleArg;\n var readyPromiseResolve, readyPromiseReject;\n Module[\"ready\"] = new Promise((resolve, reject) => {\n readyPromiseResolve = resolve;\n readyPromiseReject = reject;\n });\n var moduleOverrides = Object.assign({}, Module);\n var arguments_ = [];\n var thisProgram = \"./this.program\";\n var quit_ = (status, toThrow) => {\n throw toThrow;\n };\n var ENVIRONMENT_IS_WEB = true;\n var ENVIRONMENT_IS_WORKER = false;\n var scriptDirectory = \"\";\n function locateFile(path) {\n if (Module[\"locateFile\"]) {\n return Module[\"locateFile\"](path, scriptDirectory);\n }\n return scriptDirectory + path;\n }\n var read_, readAsync, readBinary, setWindowTitle;\n if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {\n if (ENVIRONMENT_IS_WORKER) {\n scriptDirectory = self.location.href;\n } else if (typeof document != \"undefined\" && document.currentScript) {\n scriptDirectory = document.currentScript.src;\n }\n if (_scriptDir) {\n scriptDirectory = _scriptDir;\n }\n if (scriptDirectory.indexOf(\"blob:\") !== 0) {\n scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, \"\").lastIndexOf(\"/\") + 1);\n } else {\n scriptDirectory = \"\";\n }\n {\n read_ = (url) => {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, false);\n xhr.send(null);\n return xhr.responseText;\n };\n if (ENVIRONMENT_IS_WORKER) {\n readBinary = (url) => {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, false);\n xhr.responseType = \"arraybuffer\";\n xhr.send(null);\n return new Uint8Array(xhr.response);\n };\n }\n readAsync = (url, onload, onerror) => {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, true);\n xhr.responseType = \"arraybuffer\";\n xhr.onload = () => {\n if (xhr.status == 200 || xhr.status == 0 && xhr.response) {\n onload(xhr.response);\n return;\n }\n onerror();\n };\n xhr.onerror = onerror;\n xhr.send(null);\n };\n }\n setWindowTitle = (title) => document.title = title;\n } else {\n }\n var out = Module[\"print\"] || console.log.bind(console);\n var err = Module[\"printErr\"] || console.error.bind(console);\n Object.assign(Module, moduleOverrides);\n moduleOverrides = null;\n if (Module[\"arguments\"])\n arguments_ = Module[\"arguments\"];\n if (Module[\"thisProgram\"])\n thisProgram = Module[\"thisProgram\"];\n if (Module[\"quit\"])\n quit_ = Module[\"quit\"];\n var wasmBinary;\n if (Module[\"wasmBinary\"])\n wasmBinary = Module[\"wasmBinary\"];\n var noExitRuntime = Module[\"noExitRuntime\"] || true;\n if (typeof WebAssembly != \"object\") {\n abort(\"no native wasm support detected\");\n }\n var wasmMemory;\n var wasmExports;\n var ABORT = false;\n var EXITSTATUS;\n function assert(condition, text) {\n if (!condition) {\n abort(text);\n }\n }\n var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;\n function updateMemoryViews() {\n var b = wasmMemory.buffer;\n Module[\"HEAP8\"] = HEAP8 = new Int8Array(b);\n Module[\"HEAP16\"] = HEAP16 = new Int16Array(b);\n Module[\"HEAP32\"] = HEAP32 = new Int32Array(b);\n Module[\"HEAPU8\"] = HEAPU8 = new Uint8Array(b);\n Module[\"HEAPU16\"] = HEAPU16 = new Uint16Array(b);\n Module[\"HEAPU32\"] = HEAPU32 = new Uint32Array(b);\n Module[\"HEAPF32\"] = HEAPF32 = new Float32Array(b);\n Module[\"HEAPF64\"] = HEAPF64 = new Float64Array(b);\n }\n var wasmTable;\n var __ATPRERUN__ = [];\n var __ATINIT__ = [];\n var __ATPOSTRUN__ = [];\n var runtimeInitialized = false;\n function preRun() {\n if (Module[\"preRun\"]) {\n if (typeof Module[\"preRun\"] == \"function\")\n Module[\"preRun\"] = [Module[\"preRun\"]];\n while (Module[\"preRun\"].length) {\n addOnPreRun(Module[\"preRun\"].shift());\n }\n }\n callRuntimeCallbacks(__ATPRERUN__);\n }\n function initRuntime() {\n runtimeInitialized = true;\n if (!Module[\"noFSInit\"] && !FS.init.initialized)\n FS.init();\n FS.ignorePermissions = false;\n TTY.init();\n callRuntimeCallbacks(__ATINIT__);\n }\n function postRun() {\n if (Module[\"postRun\"]) {\n if (typeof Module[\"postRun\"] == \"function\")\n Module[\"postRun\"] = [Module[\"postRun\"]];\n while (Module[\"postRun\"].length) {\n addOnPostRun(Module[\"postRun\"].shift());\n }\n }\n callRuntimeCallbacks(__ATPOSTRUN__);\n }\n function addOnPreRun(cb) {\n __ATPRERUN__.unshift(cb);\n }\n function addOnInit(cb) {\n __ATINIT__.unshift(cb);\n }\n function addOnPostRun(cb) {\n __ATPOSTRUN__.unshift(cb);\n }\n var runDependencies = 0;\n var runDependencyWatcher = null;\n var dependenciesFulfilled = null;\n function getUniqueRunDependency(id) {\n return id;\n }\n function addRunDependency(id) {\n runDependencies++;\n if (Module[\"monitorRunDependencies\"]) {\n Module[\"monitorRunDependencies\"](runDependencies);\n }\n }\n function removeRunDependency(id) {\n runDependencies--;\n if (Module[\"monitorRunDependencies\"]) {\n Module[\"monitorRunDependencies\"](runDependencies);\n }\n if (runDependencies == 0) {\n if (runDependencyWatcher !== null) {\n clearInterval(runDependencyWatcher);\n runDependencyWatcher = null;\n }\n if (dependenciesFulfilled) {\n var callback = dependenciesFulfilled;\n dependenciesFulfilled = null;\n callback();\n }\n }\n }\n function abort(what) {\n if (Module[\"onAbort\"]) {\n Module[\"onAbort\"](what);\n }\n what = \"Aborted(\" + what + \")\";\n err(what);\n ABORT = true;\n EXITSTATUS = 1;\n what += \". Build with -sASSERTIONS for more info.\";\n var e = new WebAssembly.RuntimeError(what);\n readyPromiseReject(e);\n throw e;\n }\n var dataURIPrefix = \"data:application/octet-stream;base64,\";\n function isDataURI(filename) {\n return filename.startsWith(dataURIPrefix);\n }\n var wasmBinaryFile;\n wasmBinaryFile = \"web-ifc.wasm\";\n if (!isDataURI(wasmBinaryFile)) {\n wasmBinaryFile = locateFile(wasmBinaryFile);\n }\n function getBinarySync(file) {\n if (file == wasmBinaryFile && wasmBinary) {\n return new Uint8Array(wasmBinary);\n }\n if (readBinary) {\n return readBinary(file);\n }\n throw \"both async and sync fetching of the wasm failed\";\n }\n function getBinaryPromise(binaryFile) {\n if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) {\n if (typeof fetch == \"function\") {\n return fetch(binaryFile, { credentials: \"same-origin\" }).then((response) => {\n if (!response[\"ok\"]) {\n throw \"failed to load wasm binary file at '\" + binaryFile + \"'\";\n }\n return response[\"arrayBuffer\"]();\n }).catch(() => getBinarySync(binaryFile));\n }\n }\n return Promise.resolve().then(() => getBinarySync(binaryFile));\n }\n function instantiateArrayBuffer(binaryFile, imports, receiver) {\n return getBinaryPromise(binaryFile).then((binary) => WebAssembly.instantiate(binary, imports)).then((instance) => instance).then(receiver, (reason) => {\n err(\"failed to asynchronously prepare wasm: \" + reason);\n abort(reason);\n });\n }\n function instantiateAsync(binary, binaryFile, imports, callback) {\n if (!binary && typeof WebAssembly.instantiateStreaming == \"function\" && !isDataURI(binaryFile) && typeof fetch == \"function\") {\n return fetch(binaryFile, { credentials: \"same-origin\" }).then((response) => {\n var result = WebAssembly.instantiateStreaming(response, imports);\n return result.then(callback, function(reason) {\n err(\"wasm streaming compile failed: \" + reason);\n err(\"falling back to ArrayBuffer instantiation\");\n return instantiateArrayBuffer(binaryFile, imports, callback);\n });\n });\n }\n return instantiateArrayBuffer(binaryFile, imports, callback);\n }\n function createWasm() {\n var info = { \"a\": wasmImports };\n function receiveInstance(instance, module2) {\n var exports2 = instance.exports;\n exports2 = applySignatureConversions(exports2);\n wasmExports = exports2;\n wasmMemory = wasmExports[\"Z\"];\n updateMemoryViews();\n wasmTable = wasmExports[\"$\"];\n addOnInit(wasmExports[\"_\"]);\n removeRunDependency(\"wasm-instantiate\");\n return exports2;\n }\n addRunDependency(\"wasm-instantiate\");\n function receiveInstantiationResult(result) {\n receiveInstance(result[\"instance\"]);\n }\n if (Module[\"instantiateWasm\"]) {\n try {\n return Module[\"instantiateWasm\"](info, receiveInstance);\n } catch (e) {\n err(\"Module.instantiateWasm callback failed with error: \" + e);\n readyPromiseReject(e);\n }\n }\n instantiateAsync(wasmBinary, wasmBinaryFile, info, receiveInstantiationResult).catch(readyPromiseReject);\n return {};\n }\n var tempDouble;\n var tempI64;\n var callRuntimeCallbacks = (callbacks) => {\n while (callbacks.length > 0) {\n callbacks.shift()(Module);\n }\n };\n function ExceptionInfo(excPtr) {\n this.excPtr = excPtr;\n this.ptr = excPtr - 24;\n this.set_type = function(type) {\n HEAPU32[this.ptr + 4 >>> 2] = type;\n };\n this.get_type = function() {\n return HEAPU32[this.ptr + 4 >>> 2];\n };\n this.set_destructor = function(destructor) {\n HEAPU32[this.ptr + 8 >>> 2] = destructor;\n };\n this.get_destructor = function() {\n return HEAPU32[this.ptr + 8 >>> 2];\n };\n this.set_caught = function(caught) {\n caught = caught ? 1 : 0;\n HEAP8[this.ptr + 12 >>> 0] = caught;\n };\n this.get_caught = function() {\n return HEAP8[this.ptr + 12 >>> 0] != 0;\n };\n this.set_rethrown = function(rethrown) {\n rethrown = rethrown ? 1 : 0;\n HEAP8[this.ptr + 13 >>> 0] = rethrown;\n };\n this.get_rethrown = function() {\n return HEAP8[this.ptr + 13 >>> 0] != 0;\n };\n this.init = function(type, destructor) {\n this.set_adjusted_ptr(0);\n this.set_type(type);\n this.set_destructor(destructor);\n };\n this.set_adjusted_ptr = function(adjustedPtr) {\n HEAPU32[this.ptr + 16 >>> 2] = adjustedPtr;\n };\n this.get_adjusted_ptr = function() {\n return HEAPU32[this.ptr + 16 >>> 2];\n };\n this.get_exception_ptr = function() {\n var isPointer = ___cxa_is_pointer_type(this.get_type());\n if (isPointer) {\n return HEAPU32[this.excPtr >>> 2];\n }\n var adjusted = this.get_adjusted_ptr();\n if (adjusted !== 0)\n return adjusted;\n return this.excPtr;\n };\n }\n var exceptionLast = 0;\n var uncaughtExceptionCount = 0;\n function convertI32PairToI53Checked(lo, hi) {\n return hi + 2097152 >>> 0 < 4194305 - !!lo ? (lo >>> 0) + hi * 4294967296 : NaN;\n }\n function ___cxa_throw(ptr, type, destructor) {\n ptr >>>= 0;\n type >>>= 0;\n destructor >>>= 0;\n var info = new ExceptionInfo(ptr);\n info.init(type, destructor);\n exceptionLast = ptr;\n uncaughtExceptionCount++;\n throw exceptionLast;\n }\n var tupleRegistrations = {};\n function runDestructors(destructors) {\n while (destructors.length) {\n var ptr = destructors.pop();\n var del = destructors.pop();\n del(ptr);\n }\n }\n function simpleReadValueFromPointer(pointer) {\n return this[\"fromWireType\"](HEAP32[pointer >>> 2]);\n }\n var awaitingDependencies = {};\n var registeredTypes = {};\n var typeDependencies = {};\n var InternalError = void 0;\n function throwInternalError(message) {\n throw new InternalError(message);\n }\n function whenDependentTypesAreResolved(myTypes, dependentTypes, getTypeConverters) {\n myTypes.forEach(function(type) {\n typeDependencies[type] = dependentTypes;\n });\n function onComplete(typeConverters2) {\n var myTypeConverters = getTypeConverters(typeConverters2);\n if (myTypeConverters.length !== myTypes.length) {\n throwInternalError(\"Mismatched type converter count\");\n }\n for (var i = 0; i < myTypes.length; ++i) {\n registerType(myTypes[i], myTypeConverters[i]);\n }\n }\n var typeConverters = new Array(dependentTypes.length);\n var unregisteredTypes = [];\n var registered = 0;\n dependentTypes.forEach((dt, i) => {\n if (registeredTypes.hasOwnProperty(dt)) {\n typeConverters[i] = registeredTypes[dt];\n } else {\n unregisteredTypes.push(dt);\n if (!awaitingDependencies.hasOwnProperty(dt)) {\n awaitingDependencies[dt] = [];\n }\n awaitingDependencies[dt].push(() => {\n typeConverters[i] = registeredTypes[dt];\n ++registered;\n if (registered === unregisteredTypes.length) {\n onComplete(typeConverters);\n }\n });\n }\n });\n if (unregisteredTypes.length === 0) {\n onComplete(typeConverters);\n }\n }\n function __embind_finalize_value_array(rawTupleType) {\n rawTupleType >>>= 0;\n var reg = tupleRegistrations[rawTupleType];\n delete tupleRegistrations[rawTupleType];\n var elements = reg.elements;\n var elementsLength = elements.length;\n var elementTypes = elements.map(function(elt) {\n return elt.getterReturnType;\n }).concat(elements.map(function(elt) {\n return elt.setterArgumentType;\n }));\n var rawConstructor = reg.rawConstructor;\n var rawDestructor = reg.rawDestructor;\n whenDependentTypesAreResolved([rawTupleType], elementTypes, function(elementTypes2) {\n elements.forEach((elt, i) => {\n var getterReturnType = elementTypes2[i];\n var getter = elt.getter;\n var getterContext = elt.getterContext;\n var setterArgumentType = elementTypes2[i + elementsLength];\n var setter = elt.setter;\n var setterContext = elt.setterContext;\n elt.read = (ptr) => getterReturnType[\"fromWireType\"](getter(getterContext, ptr));\n elt.write = (ptr, o) => {\n var destructors = [];\n setter(setterContext, ptr, setterArgumentType[\"toWireType\"](destructors, o));\n runDestructors(destructors);\n };\n });\n return [{ name: reg.name, \"fromWireType\": function(ptr) {\n var rv = new Array(elementsLength);\n for (var i = 0; i < elementsLength; ++i) {\n rv[i] = elements[i].read(ptr);\n }\n rawDestructor(ptr);\n return rv;\n }, \"toWireType\": function(destructors, o) {\n if (elementsLength !== o.length) {\n throw new TypeError(`Incorrect number of tuple elements for ${reg.name}: expected=${elementsLength}, actual=${o.length}`);\n }\n var ptr = rawConstructor();\n for (var i = 0; i < elementsLength; ++i) {\n elements[i].write(ptr, o[i]);\n }\n if (destructors !== null) {\n destructors.push(rawDestructor, ptr);\n }\n return ptr;\n }, \"argPackAdvance\": 8, \"readValueFromPointer\": simpleReadValueFromPointer, destructorFunction: rawDestructor }];\n });\n }\n var structRegistrations = {};\n var __embind_finalize_value_object = function(structType) {\n structType >>>= 0;\n var reg = structRegistrations[structType];\n delete structRegistrations[structType];\n var rawConstructor = reg.rawConstructor;\n var rawDestructor = reg.rawDestructor;\n var fieldRecords = reg.fields;\n var fieldTypes = fieldRecords.map((field) => field.getterReturnType).concat(fieldRecords.map((field) => field.setterArgumentType));\n whenDependentTypesAreResolved([structType], fieldTypes, (fieldTypes2) => {\n var fields = {};\n fieldRecords.forEach((field, i) => {\n var fieldName = field.fieldName;\n var getterReturnType = fieldTypes2[i];\n var getter = field.getter;\n var getterContext = field.getterContext;\n var setterArgumentType = fieldTypes2[i + fieldRecords.length];\n var setter = field.setter;\n var setterContext = field.setterContext;\n fields[fieldName] = { read: (ptr) => getterReturnType[\"fromWireType\"](getter(getterContext, ptr)), write: (ptr, o) => {\n var destructors = [];\n setter(setterContext, ptr, setterArgumentType[\"toWireType\"](destructors, o));\n runDestructors(destructors);\n } };\n });\n return [{ name: reg.name, \"fromWireType\": function(ptr) {\n var rv = {};\n for (var i in fields) {\n rv[i] = fields[i].read(ptr);\n }\n rawDestructor(ptr);\n return rv;\n }, \"toWireType\": function(destructors, o) {\n for (var fieldName in fields) {\n if (!(fieldName in o)) {\n throw new TypeError(`Missing field: \"${fieldName}\"`);\n }\n }\n var ptr = rawConstructor();\n for (fieldName in fields) {\n fields[fieldName].write(ptr, o[fieldName]);\n }\n if (destructors !== null) {\n destructors.push(rawDestructor, ptr);\n }\n return ptr;\n }, \"argPackAdvance\": 8, \"readValueFromPointer\": simpleReadValueFromPointer, destructorFunction: rawDestructor }];\n });\n };\n function __embind_register_bigint(primitiveType, name, size, minRange, maxRange) {\n primitiveType >>>= 0;\n name >>>= 0;\n size >>>= 0;\n }\n function getShiftFromSize(size) {\n switch (size) {\n case 1:\n return 0;\n case 2:\n return 1;\n case 4:\n return 2;\n case 8:\n return 3;\n default:\n throw new TypeError(`Unknown type size: ${size}`);\n }\n }\n function embind_init_charCodes() {\n var codes = new Array(256);\n for (var i = 0; i < 256; ++i) {\n codes[i] = String.fromCharCode(i);\n }\n embind_charCodes = codes;\n }\n var embind_charCodes = void 0;\n function readLatin1String(ptr) {\n var ret = \"\";\n var c = ptr;\n while (HEAPU8[c >>> 0]) {\n ret += embind_charCodes[HEAPU8[c++ >>> 0]];\n }\n return ret;\n }\n var BindingError = void 0;\n function throwBindingError(message) {\n throw new BindingError(message);\n }\n function sharedRegisterType(rawType, registeredInstance, options = {}) {\n var name = registeredInstance.name;\n if (!rawType) {\n throwBindingError(`type \"${name}\" must have a positive integer typeid pointer`);\n }\n if (registeredTypes.hasOwnProperty(rawType)) {\n if (options.ignoreDuplicateRegistrations) {\n return;\n } else {\n throwBindingError(`Cannot register type '${name}' twice`);\n }\n }\n registeredTypes[rawType] = registeredInstance;\n delete typeDependencies[rawType];\n if (awaitingDependencies.hasOwnProperty(rawType)) {\n var callbacks = awaitingDependencies[rawType];\n delete awaitingDependencies[rawType];\n callbacks.forEach((cb) => cb());\n }\n }\n function registerType(rawType, registeredInstance, options = {}) {\n if (!(\"argPackAdvance\" in registeredInstance)) {\n throw new TypeError(\"registerType registeredInstance requires argPackAdvance\");\n }\n return sharedRegisterType(rawType, registeredInstance, options);\n }\n function __embind_register_bool(rawType, name, size, trueValue, falseValue) {\n rawType >>>= 0;\n name >>>= 0;\n size >>>= 0;\n var shift = getShiftFromSize(size);\n name = readLatin1String(name);\n registerType(rawType, { name, \"fromWireType\": function(wt) {\n return !!wt;\n }, \"toWireType\": function(destructors, o) {\n return o ? trueValue : falseValue;\n }, \"argPackAdvance\": 8, \"readValueFromPointer\": function(pointer) {\n var heap;\n if (size === 1) {\n heap = HEAP8;\n } else if (size === 2) {\n heap = HEAP16;\n } else if (size === 4) {\n heap = HEAP32;\n } else {\n throw new TypeError(\"Unknown boolean type size: \" + name);\n }\n return this[\"fromWireType\"](heap[pointer >>> shift]);\n }, destructorFunction: null });\n }\n function ClassHandle_isAliasOf(other) {\n if (!(this instanceof ClassHandle)) {\n return false;\n }\n if (!(other instanceof ClassHandle)) {\n return false;\n }\n var leftClass = this.$$.ptrType.registeredClass;\n var left = this.$$.ptr;\n var rightClass = other.$$.ptrType.registeredClass;\n var right = other.$$.ptr;\n while (leftClass.baseClass) {\n left = leftClass.upcast(left);\n leftClass = leftClass.baseClass;\n }\n while (rightClass.baseClass) {\n right = rightClass.upcast(right);\n rightClass = rightClass.baseClass;\n }\n return leftClass === rightClass && left === right;\n }\n function shallowCopyInternalPointer(o) {\n return { count: o.count, deleteScheduled: o.deleteScheduled, preservePointerOnDelete: o.preservePointerOnDelete, ptr: o.ptr, ptrType: o.ptrType, smartPtr: o.smartPtr, smartPtrType: o.smartPtrType };\n }\n function throwInstanceAlreadyDeleted(obj) {\n function getInstanceTypeName(handle) {\n return handle.$$.ptrType.registeredClass.name;\n }\n throwBindingError(getInstanceTypeName(obj) + \" instance already deleted\");\n }\n var finalizationRegistry = false;\n function detachFinalizer(handle) {\n }\n function runDestructor($$) {\n if ($$.smartPtr) {\n $$.smartPtrType.rawDestructor($$.smartPtr);\n } else {\n $$.ptrType.registeredClass.rawDestructor($$.ptr);\n }\n }\n function releaseClassHandle($$) {\n $$.count.value -= 1;\n var toDelete = $$.count.value === 0;\n if (toDelete) {\n runDestructor($$);\n }\n }\n function downcastPointer(ptr, ptrClass, desiredClass) {\n if (ptrClass === desiredClass) {\n return ptr;\n }\n if (desiredClass.baseClass === void 0) {\n return null;\n }\n var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass);\n if (rv === null) {\n return null;\n }\n return desiredClass.downcast(rv);\n }\n var registeredPointers = {};\n function getInheritedInstanceCount() {\n return Object.keys(registeredInstances).length;\n }\n function getLiveInheritedInstances() {\n var rv = [];\n for (var k in registeredInstances) {\n if (registeredInstances.hasOwnProperty(k)) {\n rv.push(registeredInstances[k]);\n }\n }\n return rv;\n }\n var deletionQueue = [];\n function flushPendingDeletes() {\n while (deletionQueue.length) {\n var obj = deletionQueue.pop();\n obj.$$.deleteScheduled = false;\n obj[\"delete\"]();\n }\n }\n var delayFunction = void 0;\n function setDelayFunction(fn) {\n delayFunction = fn;\n if (deletionQueue.length && delayFunction) {\n delayFunction(flushPendingDeletes);\n }\n }\n function init_embind() {\n Module[\"getInheritedInstanceCount\"] = getInheritedInstanceCount;\n Module[\"getLiveInheritedInstances\"] = getLiveInheritedInstances;\n Module[\"flushPendingDeletes\"] = flushPendingDeletes;\n Module[\"setDelayFunction\"] = setDelayFunction;\n }\n var registeredInstances = {};\n function getBasestPointer(class_, ptr) {\n if (ptr === void 0) {\n throwBindingError(\"ptr should not be undefined\");\n }\n while (class_.baseClass) {\n ptr = class_.upcast(ptr);\n class_ = class_.baseClass;\n }\n return ptr;\n }\n function getInheritedInstance(class_, ptr) {\n ptr = getBasestPointer(class_, ptr);\n return registeredInstances[ptr];\n }\n function makeClassHandle(prototype, record) {\n if (!record.ptrType || !record.ptr) {\n throwInternalError(\"makeClassHandle requires ptr and ptrType\");\n }\n var hasSmartPtrType = !!record.smartPtrType;\n var hasSmartPtr = !!record.smartPtr;\n if (hasSmartPtrType !== hasSmartPtr) {\n throwInternalError(\"Both smartPtrType and smartPtr must be specified\");\n }\n record.count = { value: 1 };\n return attachFinalizer(Object.create(prototype, { $$: { value: record } }));\n }\n function RegisteredPointer_fromWireType(ptr) {\n var rawPointer = this.getPointee(ptr);\n if (!rawPointer) {\n this.destructor(ptr);\n return null;\n }\n var registeredInstance = getInheritedInstance(this.registeredClass, rawPointer);\n if (registeredInstance !== void 0) {\n if (registeredInstance.$$.count.value === 0) {\n registeredInstance.$$.ptr = rawPointer;\n registeredInstance.$$.smartPtr = ptr;\n return registeredInstance[\"clone\"]();\n } else {\n var rv = registeredInstance[\"clone\"]();\n this.destructor(ptr);\n return rv;\n }\n }\n function makeDefaultHandle() {\n if (this.isSmartPointer) {\n return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this.pointeeType, ptr: rawPointer, smartPtrType: this, smartPtr: ptr });\n } else {\n return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this, ptr });\n }\n }\n var actualType = this.registeredClass.getActualType(rawPointer);\n var registeredPointerRecord = registeredPointers[actualType];\n if (!registeredPointerRecord) {\n return makeDefaultHandle.call(this);\n }\n var toType;\n if (this.isConst) {\n toType = registeredPointerRecord.constPointerType;\n } else {\n toType = registeredPointerRecord.pointerType;\n }\n var dp = downcastPointer(rawPointer, this.registeredClass, toType.registeredClass);\n if (dp === null) {\n return makeDefaultHandle.call(this);\n }\n if (this.isSmartPointer) {\n return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp, smartPtrType: this, smartPtr: ptr });\n } else {\n return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp });\n }\n }\n var attachFinalizer = function(handle) {\n if (typeof FinalizationRegistry === \"undefined\") {\n attachFinalizer = (handle2) => handle2;\n return handle;\n }\n finalizationRegistry = new FinalizationRegistry((info) => {\n releaseClassHandle(info.$$);\n });\n attachFinalizer = (handle2) => {\n var $$ = handle2.$$;\n var hasSmartPtr = !!$$.smartPtr;\n if (hasSmartPtr) {\n var info = { $$ };\n finalizationRegistry.register(handle2, info, handle2);\n }\n return handle2;\n };\n detachFinalizer = (handle2) => finalizationRegistry.unregister(handle2);\n return attachFinalizer(handle);\n };\n function ClassHandle_clone() {\n if (!this.$$.ptr) {\n throwInstanceAlreadyDeleted(this);\n }\n if (this.$$.preservePointerOnDelete) {\n this.$$.count.value += 1;\n return this;\n } else {\n var clone = attachFinalizer(Object.create(Object.getPrototypeOf(this), { $$: { value: shallowCopyInternalPointer(this.$$) } }));\n clone.$$.count.value += 1;\n clone.$$.deleteScheduled = false;\n return clone;\n }\n }\n function ClassHandle_delete() {\n if (!this.$$.ptr) {\n throwInstanceAlreadyDeleted(this);\n }\n if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) {\n throwBindingError(\"Object already scheduled for deletion\");\n }\n detachFinalizer(this);\n releaseClassHandle(this.$$);\n if (!this.$$.preservePointerOnDelete) {\n this.$$.smartPtr = void 0;\n this.$$.ptr = void 0;\n }\n }\n function ClassHandle_isDeleted() {\n return !this.$$.ptr;\n }\n function ClassHandle_deleteLater() {\n if (!this.$$.ptr) {\n throwInstanceAlreadyDeleted(this);\n }\n if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) {\n throwBindingError(\"Object already scheduled for deletion\");\n }\n deletionQueue.push(this);\n if (deletionQueue.length === 1 && delayFunction) {\n delayFunction(flushPendingDeletes);\n }\n this.$$.deleteScheduled = true;\n return this;\n }\n function init_ClassHandle() {\n ClassHandle.prototype[\"isAliasOf\"] = ClassHandle_isAliasOf;\n ClassHandle.prototype[\"clone\"] = ClassHandle_clone;\n ClassHandle.prototype[\"delete\"] = ClassHandle_delete;\n ClassHandle.prototype[\"isDeleted\"] = ClassHandle_isDeleted;\n ClassHandle.prototype[\"deleteLater\"] = ClassHandle_deleteLater;\n }\n function ClassHandle() {\n }\n var char_0 = 48;\n var char_9 = 57;\n function makeLegalFunctionName(name) {\n if (name === void 0) {\n return \"_unknown\";\n }\n name = name.replace(/[^a-zA-Z0-9_]/g, \"$\");\n var f = name.charCodeAt(0);\n if (f >= char_0 && f <= char_9) {\n return `_${name}`;\n }\n return name;\n }\n function createNamedFunction(name, body) {\n name = makeLegalFunctionName(name);\n return { [name]: function() {\n return body.apply(this, arguments);\n } }[name];\n }\n function ensureOverloadTable(proto, methodName, humanName) {\n if (proto[methodName].overloadTable === void 0) {\n var prevFunc = proto[methodName];\n proto[methodName] = function() {\n if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) {\n throwBindingError(`Function '${humanName}' called with an invalid number of arguments (${arguments.length}) - expects one of (${proto[methodName].overloadTable})!`);\n }\n return proto[methodName].overloadTable[arguments.length].apply(this, arguments);\n };\n proto[methodName].overloadTable = [];\n proto[methodName].overloadTable[prevFunc.argCount] = prevFunc;\n }\n }\n function exposePublicSymbol(name, value, numArguments) {\n if (Module.hasOwnProperty(name)) {\n if (numArguments === void 0 || Module[name].overloadTable !== void 0 && Module[name].overloadTable[numArguments] !== void 0) {\n throwBindingError(`Cannot register public name '${name}' twice`);\n }\n ensureOverloadTable(Module, name, name);\n if (Module.hasOwnProperty(numArguments)) {\n throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`);\n }\n Module[name].overloadTable[numArguments] = value;\n } else {\n Module[name] = value;\n if (numArguments !== void 0) {\n Module[name].numArguments = numArguments;\n }\n }\n }\n function RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast) {\n this.name = name;\n this.constructor = constructor;\n this.instancePrototype = instancePrototype;\n this.rawDestructor = rawDestructor;\n this.baseClass = baseClass;\n this.getActualType = getActualType;\n this.upcast = upcast;\n this.downcast = downcast;\n this.pureVirtualFunctions = [];\n }\n function upcastPointer(ptr, ptrClass, desiredClass) {\n while (ptrClass !== desiredClass) {\n if (!ptrClass.upcast) {\n throwBindingError(`Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`);\n }\n ptr = ptrClass.upcast(ptr);\n ptrClass = ptrClass.baseClass;\n }\n return ptr;\n }\n function constNoSmartPtrRawPointerToWireType(destructors, handle) {\n if (handle === null) {\n if (this.isReference) {\n throwBindingError(`null is not a valid ${this.name}`);\n }\n return 0;\n }\n if (!handle.$$) {\n throwBindingError(`Cannot pass \"${embindRepr(handle)}\" as a ${this.name}`);\n }\n if (!handle.$$.ptr) {\n throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`);\n }\n var handleClass = handle.$$.ptrType.registeredClass;\n var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);\n return ptr;\n }\n function genericPointerToWireType(destructors, handle) {\n var ptr;\n if (handle === null) {\n if (this.isReference) {\n throwBindingError(`null is not a valid ${this.name}`);\n }\n if (this.isSmartPointer) {\n ptr = this.rawConstructor();\n if (destructors !== null) {\n destructors.push(this.rawDestructor, ptr);\n }\n return ptr;\n } else {\n return 0;\n }\n }\n if (!handle.$$) {\n throwBindingError(`Cannot pass \"${embindRepr(handle)}\" as a ${this.name}`);\n }\n if (!handle.$$.ptr) {\n throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`);\n }\n if (!this.isConst && handle.$$.ptrType.isConst) {\n throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name} to parameter type ${this.name}`);\n }\n var handleClass = handle.$$.ptrType.registeredClass;\n ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);\n if (this.isSmartPointer) {\n if (handle.$$.smartPtr === void 0) {\n throwBindingError(\"Passing raw pointer to smart pointer is illegal\");\n }\n switch (this.sharingPolicy) {\n case 0:\n if (handle.$$.smartPtrType === this) {\n ptr = handle.$$.smartPtr;\n } else {\n throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name} to parameter type ${this.name}`);\n }\n break;\n case 1:\n ptr = handle.$$.smartPtr;\n break;\n case 2:\n if (handle.$$.smartPtrType === this) {\n ptr = handle.$$.smartPtr;\n } else {\n var clonedHandle = handle[\"clone\"]();\n ptr = this.rawShare(ptr, Emval.toHandle(function() {\n clonedHandle[\"delete\"]();\n }));\n if (destructors !== null) {\n destructors.push(this.rawDestructor, ptr);\n }\n }\n break;\n default:\n throwBindingError(\"Unsupporting sharing policy\");\n }\n }\n return ptr;\n }\n function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) {\n if (handle === null) {\n if (this.isReference) {\n throwBindingError(`null is not a valid ${this.name}`);\n }\n return 0;\n }\n if (!handle.$$) {\n throwBindingError(`Cannot pass \"${embindRepr(handle)}\" as a ${this.name}`);\n }\n if (!handle.$$.ptr) {\n throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`);\n }\n if (handle.$$.ptrType.isConst) {\n throwBindingError(`Cannot convert argument of type ${handle.$$.ptrType.name} to parameter type ${this.name}`);\n }\n var handleClass = handle.$$.ptrType.registeredClass;\n var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);\n return ptr;\n }\n function RegisteredPointer_getPointee(ptr) {\n if (this.rawGetPointee) {\n ptr = this.rawGetPointee(ptr);\n }\n return ptr;\n }\n function RegisteredPointer_destructor(ptr) {\n if (this.rawDestructor) {\n this.rawDestructor(ptr);\n }\n }\n function RegisteredPointer_deleteObject(handle) {\n if (handle !== null) {\n handle[\"delete\"]();\n }\n }\n function init_RegisteredPointer() {\n RegisteredPointer.prototype.getPointee = RegisteredPointer_getPointee;\n RegisteredPointer.prototype.destructor = RegisteredPointer_destructor;\n RegisteredPointer.prototype[\"argPackAdvance\"] = 8;\n RegisteredPointer.prototype[\"readValueFromPointer\"] = simpleReadValueFromPointer;\n RegisteredPointer.prototype[\"deleteObject\"] = RegisteredPointer_deleteObject;\n RegisteredPointer.prototype[\"fromWireType\"] = RegisteredPointer_fromWireType;\n }\n function RegisteredPointer(name, registeredClass, isReference, isConst, isSmartPointer, pointeeType, sharingPolicy, rawGetPointee, rawConstructor, rawShare, rawDestructor) {\n this.name = name;\n this.registeredClass = registeredClass;\n this.isReference = isReference;\n this.isConst = isConst;\n this.isSmartPointer = isSmartPointer;\n this.pointeeType = pointeeType;\n this.sharingPolicy = sharingPolicy;\n this.rawGetPointee = rawGetPointee;\n this.rawConstructor = rawConstructor;\n this.rawShare = rawShare;\n this.rawDestructor = rawDestructor;\n if (!isSmartPointer && registeredClass.baseClass === void 0) {\n if (isConst) {\n this[\"toWireType\"] = constNoSmartPtrRawPointerToWireType;\n this.destructorFunction = null;\n } else {\n this[\"toWireType\"] = nonConstNoSmartPtrRawPointerToWireType;\n this.destructorFunction = null;\n }\n } else {\n this[\"toWireType\"] = genericPointerToWireType;\n }\n }\n function replacePublicSymbol(name, value, numArguments) {\n if (!Module.hasOwnProperty(name)) {\n throwInternalError(\"Replacing nonexistant public symbol\");\n }\n if (Module[name].overloadTable !== void 0 && numArguments !== void 0) {\n Module[name].overloadTable[numArguments] = value;\n } else {\n Module[name] = value;\n Module[name].argCount = numArguments;\n }\n }\n var dynCallLegacy = (sig, ptr, args) => {\n var f = Module[\"dynCall_\" + sig];\n return args && args.length ? f.apply(null, [ptr].concat(args)) : f.call(null, ptr);\n };\n var wasmTableMirror = [];\n var getWasmTableEntry = (funcPtr) => {\n var func = wasmTableMirror[funcPtr];\n if (!func) {\n if (funcPtr >= wasmTableMirror.length)\n wasmTableMirror.length = funcPtr + 1;\n wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr);\n }\n return func;\n };\n var dynCall = (sig, ptr, args) => {\n if (sig.includes(\"j\")) {\n return dynCallLegacy(sig, ptr, args);\n }\n var rtn = getWasmTableEntry(ptr).apply(null, args);\n return rtn;\n };\n var getDynCaller = (sig, ptr) => {\n var argCache = [];\n return function() {\n argCache.length = 0;\n Object.assign(argCache, arguments);\n return dynCall(sig, ptr, argCache);\n };\n };\n function embind__requireFunction(signature, rawFunction) {\n signature = readLatin1String(signature);\n function makeDynCaller() {\n if (signature.includes(\"j\")) {\n return getDynCaller(signature, rawFunction);\n }\n return getWasmTableEntry(rawFunction);\n }\n var fp = makeDynCaller();\n if (typeof fp != \"function\") {\n throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`);\n }\n return fp;\n }\n function extendError(baseErrorType, errorName) {\n var errorClass = createNamedFunction(errorName, function(message) {\n this.name = errorName;\n this.message = message;\n var stack = new Error(message).stack;\n if (stack !== void 0) {\n this.stack = this.toString() + \"\\n\" + stack.replace(/^Error(:[^\\n]*)?\\n/, \"\");\n }\n });\n errorClass.prototype = Object.create(baseErrorType.prototype);\n errorClass.prototype.constructor = errorClass;\n errorClass.prototype.toString = function() {\n if (this.message === void 0) {\n return this.name;\n } else {\n return `${this.name}: ${this.message}`;\n }\n };\n return errorClass;\n }\n var UnboundTypeError = void 0;\n function getTypeName(type) {\n var ptr = ___getTypeName(type);\n var rv = readLatin1String(ptr);\n _free(ptr);\n return rv;\n }\n function throwUnboundTypeError(message, types) {\n var unboundTypes = [];\n var seen = {};\n function visit(type) {\n if (seen[type]) {\n return;\n }\n if (registeredTypes[type]) {\n return;\n }\n if (typeDependencies[type]) {\n typeDependencies[type].forEach(visit);\n return;\n }\n unboundTypes.push(type);\n seen[type] = true;\n }\n types.forEach(visit);\n throw new UnboundTypeError(`${message}: ` + unboundTypes.map(getTypeName).join([\", \"]));\n }\n function __embind_register_class(rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor) {\n rawType >>>= 0;\n rawPointerType >>>= 0;\n rawConstPointerType >>>= 0;\n baseClassRawType >>>= 0;\n getActualTypeSignature >>>= 0;\n getActualType >>>= 0;\n upcastSignature >>>= 0;\n upcast >>>= 0;\n downcastSignature >>>= 0;\n downcast >>>= 0;\n name >>>= 0;\n destructorSignature >>>= 0;\n rawDestructor >>>= 0;\n name = readLatin1String(name);\n getActualType = embind__requireFunction(getActualTypeSignature, getActualType);\n if (upcast) {\n upcast = embind__requireFunction(upcastSignature, upcast);\n }\n if (downcast) {\n downcast = embind__requireFunction(downcastSignature, downcast);\n }\n rawDestructor = embind__requireFunction(destructorSignature, rawDestructor);\n var legalFunctionName = makeLegalFunctionName(name);\n exposePublicSymbol(legalFunctionName, function() {\n throwUnboundTypeError(`Cannot construct ${name} due to unbound types`, [baseClassRawType]);\n });\n whenDependentTypesAreResolved([rawType, rawPointerType, rawConstPointerType], baseClassRawType ? [baseClassRawType] : [], function(base) {\n base = base[0];\n var baseClass;\n var basePrototype;\n if (baseClassRawType) {\n baseClass = base.registeredClass;\n basePrototype = baseClass.instancePrototype;\n } else {\n basePrototype = ClassHandle.prototype;\n }\n var constructor = createNamedFunction(legalFunctionName, function() {\n if (Object.getPrototypeOf(this) !== instancePrototype) {\n throw new BindingError(\"Use 'new' to construct \" + name);\n }\n if (registeredClass.constructor_body === void 0) {\n throw new BindingError(name + \" has no accessible constructor\");\n }\n var body = registeredClass.constructor_body[arguments.length];\n if (body === void 0) {\n throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`);\n }\n return body.apply(this, arguments);\n });\n var instancePrototype = Object.create(basePrototype, { constructor: { value: constructor } });\n constructor.prototype = instancePrototype;\n var registeredClass = new RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast);\n if (registeredClass.baseClass) {\n if (registeredClass.baseClass.__derivedClasses === void 0) {\n registeredClass.baseClass.__derivedClasses = [];\n }\n registeredClass.baseClass.__derivedClasses.push(registeredClass);\n }\n var referenceConverter = new RegisteredPointer(name, registeredClass, true, false, false);\n var pointerConverter = new RegisteredPointer(name + \"*\", registeredClass, false, false, false);\n var constPointerConverter = new RegisteredPointer(name + \" const*\", registeredClass, false, true, false);\n registeredPointers[rawType] = { pointerType: pointerConverter, constPointerType: constPointerConverter };\n replacePublicSymbol(legalFunctionName, constructor);\n return [referenceConverter, pointerConverter, constPointerConverter];\n });\n }\n function heap32VectorToArray(count, firstElement) {\n var array = [];\n for (var i = 0; i < count; i++) {\n array.push(HEAPU32[firstElement + i * 4 >>> 2]);\n }\n return array;\n }\n function newFunc(constructor, argumentList) {\n if (!(constructor instanceof Function)) {\n throw new TypeError(`new_ called with constructor type ${typeof constructor} which is not a function`);\n }\n var dummy = createNamedFunction(constructor.name || \"unknownFunctionName\", function() {\n });\n dummy.prototype = constructor.prototype;\n var obj = new dummy();\n var r = constructor.apply(obj, argumentList);\n return r instanceof Object ? r : obj;\n }\n function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc, isAsync) {\n var argCount = argTypes.length;\n if (argCount < 2) {\n throwBindingError(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");\n }\n var isClassMethodFunc = argTypes[1] !== null && classType !== null;\n var needsDestructorStack = false;\n for (var i = 1; i < argTypes.length; ++i) {\n if (argTypes[i] !== null && argTypes[i].destructorFunction === void 0) {\n needsDestructorStack = true;\n break;\n }\n }\n var returns = argTypes[0].name !== \"void\";\n var argsList = \"\";\n var argsListWired = \"\";\n for (var i = 0; i < argCount - 2; ++i) {\n argsList += (i !== 0 ? \", \" : \"\") + \"arg\" + i;\n argsListWired += (i !== 0 ? \", \" : \"\") + \"arg\" + i + \"Wired\";\n }\n var invokerFnBody = `\n return function ${makeLegalFunctionName(humanName)}(${argsList}) {\n if (arguments.length !== ${argCount - 2}) {\n throwBindingError('function ${humanName} called with ${arguments.length} arguments, expected ${argCount - 2} args!');\n }`;\n if (needsDestructorStack) {\n invokerFnBody += \"var destructors = [];\\n\";\n }\n var dtorStack = needsDestructorStack ? \"destructors\" : \"null\";\n var args1 = [\"throwBindingError\", \"invoker\", \"fn\", \"runDestructors\", \"retType\", \"classParam\"];\n var args2 = [throwBindingError, cppInvokerFunc, cppTargetFunc, runDestructors, argTypes[0], argTypes[1]];\n if (isClassMethodFunc) {\n invokerFnBody += \"var thisWired = classParam.toWireType(\" + dtorStack + \", this);\\n\";\n }\n for (var i = 0; i < argCount - 2; ++i) {\n invokerFnBody += \"var arg\" + i + \"Wired = argType\" + i + \".toWireType(\" + dtorStack + \", arg\" + i + \"); // \" + argTypes[i + 2].name + \"\\n\";\n args1.push(\"argType\" + i);\n args2.push(argTypes[i + 2]);\n }\n if (isClassMethodFunc) {\n argsListWired = \"thisWired\" + (argsListWired.length > 0 ? \", \" : \"\") + argsListWired;\n }\n invokerFnBody += (returns || isAsync ? \"var rv = \" : \"\") + \"invoker(fn\" + (argsListWired.length > 0 ? \", \" : \"\") + argsListWired + \");\\n\";\n if (needsDestructorStack) {\n invokerFnBody += \"runDestructors(destructors);\\n\";\n } else {\n for (var i = isClassMethodFunc ? 1 : 2; i < argTypes.length; ++i) {\n var paramName = i === 1 ? \"thisWired\" : \"arg\" + (i - 2) + \"Wired\";\n if (argTypes[i].destructorFunction !== null) {\n invokerFnBody += paramName + \"_dtor(\" + paramName + \"); // \" + argTypes[i].name + \"\\n\";\n args1.push(paramName + \"_dtor\");\n args2.push(argTypes[i].destructorFunction);\n }\n }\n }\n if (returns) {\n invokerFnBody += \"var ret = retType.fromWireType(rv);\\nreturn ret;\\n\";\n } else {\n }\n invokerFnBody += \"}\\n\";\n args1.push(invokerFnBody);\n return newFunc(Function, args1).apply(null, args2);\n }\n function __embind_register_class_constructor(rawClassType, argCount, rawArgTypesAddr, invokerSignature, invoker, rawConstructor) {\n rawClassType >>>= 0;\n rawArgTypesAddr >>>= 0;\n invokerSignature >>>= 0;\n invoker >>>= 0;\n rawConstructor >>>= 0;\n var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);\n invoker = embind__requireFunction(invokerSignature, invoker);\n whenDependentTypesAreResolved([], [rawClassType], function(classType) {\n classType = classType[0];\n var humanName = `constructor ${classType.name}`;\n if (classType.registeredClass.constructor_body === void 0) {\n classType.registeredClass.constructor_body = [];\n }\n if (classType.registeredClass.constructor_body[argCount - 1] !== void 0) {\n throw new BindingError(`Cannot register multiple constructors with identical number of parameters (${argCount - 1}) for class '${classType.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);\n }\n classType.registeredClass.constructor_body[argCount - 1] = () => {\n throwUnboundTypeError(`Cannot construct ${classType.name} due to unbound types`, rawArgTypes);\n };\n whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) {\n argTypes.splice(1, 0, null);\n classType.registeredClass.constructor_body[argCount - 1] = craftInvokerFunction(humanName, argTypes, null, invoker, rawConstructor);\n return [];\n });\n return [];\n });\n }\n function __embind_register_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual, isAsync) {\n rawClassType >>>= 0;\n methodName >>>= 0;\n rawArgTypesAddr >>>= 0;\n invokerSignature >>>= 0;\n rawInvoker >>>= 0;\n context >>>= 0;\n var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);\n methodName = readLatin1String(methodName);\n rawInvoker = embind__requireFunction(invokerSignature, rawInvoker);\n whenDependentTypesAreResolved([], [rawClassType], function(classType) {\n classType = classType[0];\n var humanName = `${classType.name}.${methodName}`;\n if (methodName.startsWith(\"@@\")) {\n methodName = Symbol[methodName.substring(2)];\n }\n if (isPureVirtual) {\n classType.registeredClass.pureVirtualFunctions.push(methodName);\n }\n function unboundTypesHandler() {\n throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`, rawArgTypes);\n }\n var proto = classType.registeredClass.instancePrototype;\n var method = proto[methodName];\n if (method === void 0 || method.overloadTable === void 0 && method.className !== classType.name && method.argCount === argCount - 2) {\n unboundTypesHandler.argCount = argCount - 2;\n unboundTypesHandler.className = classType.name;\n proto[methodName] = unboundTypesHandler;\n } else {\n ensureOverloadTable(proto, methodName, humanName);\n proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler;\n }\n whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) {\n var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context, isAsync);\n if (proto[methodName].overloadTable === void 0) {\n memberFunction.argCount = argCount - 2;\n proto[methodName] = memberFunction;\n } else {\n proto[methodName].overloadTable[argCount - 2] = memberFunction;\n }\n return [];\n });\n return [];\n });\n }\n function handleAllocatorInit() {\n Object.assign(HandleAllocator.prototype, { get(id) {\n return this.allocated[id];\n }, has(id) {\n return this.allocated[id] !== void 0;\n }, allocate(handle) {\n var id = this.freelist.pop() || this.allocated.length;\n this.allocated[id] = handle;\n return id;\n }, free(id) {\n this.allocated[id] = void 0;\n this.freelist.push(id);\n } });\n }\n function HandleAllocator() {\n this.allocated = [void 0];\n this.freelist = [];\n }\n var emval_handles = new HandleAllocator();\n function __emval_decref(handle) {\n handle >>>= 0;\n if (handle >= emval_handles.reserved && --emval_handles.get(handle).refcount === 0) {\n emval_handles.free(handle);\n }\n }\n function count_emval_handles() {\n var count = 0;\n for (var i = emval_handles.reserved; i < emval_handles.allocated.length; ++i) {\n if (emval_handles.allocated[i] !== void 0) {\n ++count;\n }\n }\n return count;\n }\n function init_emval() {\n emval_handles.allocated.push({ value: void 0 }, { value: null }, { value: true }, { value: false });\n emval_handles.reserved = emval_handles.allocated.length;\n Module[\"count_emval_handles\"] = count_emval_handles;\n }\n var Emval = { toValue: (handle) => {\n if (!handle) {\n throwBindingError(\"Cannot use deleted val. handle = \" + handle);\n }\n return emval_handles.get(handle).value;\n }, toHandle: (value) => {\n switch (value) {\n case void 0:\n return 1;\n case null:\n return 2;\n case true:\n return 3;\n case false:\n return 4;\n default: {\n return emval_handles.allocate({ refcount: 1, value });\n }\n }\n } };\n function __embind_register_emval(rawType, name) {\n rawType >>>= 0;\n name >>>= 0;\n name = readLatin1String(name);\n registerType(rawType, { name, \"fromWireType\": function(handle) {\n var rv = Emval.toValue(handle);\n __emval_decref(handle);\n return rv;\n }, \"toWireType\": function(destructors, value) {\n return Emval.toHandle(value);\n }, \"argPackAdvance\": 8, \"readValueFromPointer\": simpleReadValueFromPointer, destructorFunction: null });\n }\n function embindRepr(v) {\n if (v === null) {\n return \"null\";\n }\n var t = typeof v;\n if (t === \"object\" || t === \"array\" || t === \"function\") {\n return v.toString();\n } else {\n return \"\" + v;\n }\n }\n function floatReadValueFromPointer(name, shift) {\n switch (shift) {\n case 2:\n return function(pointer) {\n return this[\"fromWireType\"](HEAPF32[pointer >>> 2]);\n };\n case 3:\n return function(pointer) {\n return this[\"fromWireType\"](HEAPF64[pointer >>> 3]);\n };\n default:\n throw new TypeError(\"Unknown float type: \" + name);\n }\n }\n function __embind_register_float(rawType, name, size) {\n rawType >>>= 0;\n name >>>= 0;\n size >>>= 0;\n var shift = getShiftFromSize(size);\n name = readLatin1String(name);\n registerType(rawType, { name, \"fromWireType\": function(value) {\n return value;\n }, \"toWireType\": function(destructors, value) {\n return value;\n }, \"argPackAdvance\": 8, \"readValueFromPointer\": floatReadValueFromPointer(name, shift), destructorFunction: null });\n }\n function __embind_register_function(name, argCount, rawArgTypesAddr, signature, rawInvoker, fn, isAsync) {\n name >>>= 0;\n rawArgTypesAddr >>>= 0;\n signature >>>= 0;\n rawInvoker >>>= 0;\n fn >>>= 0;\n var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr);\n name = readLatin1String(name);\n rawInvoker = embind__requireFunction(signature, rawInvoker);\n exposePublicSymbol(name, function() {\n throwUnboundTypeError(`Cannot call ${name} due to unbound types`, argTypes);\n }, argCount - 1);\n whenDependentTypesAreResolved([], argTypes, function(argTypes2) {\n var invokerArgsArray = [argTypes2[0], null].concat(argTypes2.slice(1));\n replacePublicSymbol(name, craftInvokerFunction(name, invokerArgsArray, null, rawInvoker, fn, isAsync), argCount - 1);\n return [];\n });\n }\n function integerReadValueFromPointer(name, shift, signed) {\n switch (shift) {\n case 0:\n return signed ? function readS8FromPointer(pointer) {\n return HEAP8[pointer >>> 0];\n } : function readU8FromPointer(pointer) {\n return HEAPU8[pointer >>> 0];\n };\n case 1:\n return signed ? function readS16FromPointer(pointer) {\n return HEAP16[pointer >>> 1];\n } : function readU16FromPointer(pointer) {\n return HEAPU16[pointer >>> 1];\n };\n case 2:\n return signed ? function readS32FromPointer(pointer) {\n return HEAP32[pointer >>> 2];\n } : function readU32FromPointer(pointer) {\n return HEAPU32[pointer >>> 2];\n };\n default:\n throw new TypeError(\"Unknown integer type: \" + name);\n }\n }\n function __embind_register_integer(primitiveType, name, size, minRange, maxRange) {\n primitiveType >>>= 0;\n name >>>= 0;\n size >>>= 0;\n name = readLatin1String(name);\n if (maxRange === -1) {\n maxRange = 4294967295;\n }\n var shift = getShiftFromSize(size);\n var fromWireType = (value) => value;\n if (minRange === 0) {\n var bitshift = 32 - 8 * size;\n fromWireType = (value) => value << bitshift >>> bitshift;\n }\n var isUnsignedType = name.includes(\"unsigned\");\n var checkAssertions = (value, toTypeName) => {\n };\n var toWireType;\n if (isUnsignedType) {\n toWireType = function(destructors, value) {\n checkAssertions(value, this.name);\n return value >>> 0;\n };\n } else {\n toWireType = function(destructors, value) {\n checkAssertions(value, this.name);\n return value;\n };\n }\n registerType(primitiveType, { name, \"fromWireType\": fromWireType, \"toWireType\": toWireType, \"argPackAdvance\": 8, \"readValueFromPointer\": integerReadValueFromPointer(name, shift, minRange !== 0), destructorFunction: null });\n }\n function __embind_register_memory_view(rawType, dataTypeIndex, name) {\n rawType >>>= 0;\n name >>>= 0;\n var typeMapping = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array];\n var TA = typeMapping[dataTypeIndex];\n function decodeMemoryView(handle) {\n handle = handle >> 2;\n var heap = HEAPU32;\n var size = heap[handle >>> 0];\n var data = heap[handle + 1 >>> 0];\n return new TA(heap.buffer, data, size);\n }\n name = readLatin1String(name);\n registerType(rawType, { name, \"fromWireType\": decodeMemoryView, \"argPackAdvance\": 8, \"readValueFromPointer\": decodeMemoryView }, { ignoreDuplicateRegistrations: true });\n }\n var stringToUTF8Array = (str, heap, outIdx, maxBytesToWrite) => {\n outIdx >>>= 0;\n if (!(maxBytesToWrite > 0))\n return 0;\n var startIdx = outIdx;\n var endIdx = outIdx + maxBytesToWrite - 1;\n for (var i = 0; i < str.length; ++i) {\n var u = str.charCodeAt(i);\n if (u >= 55296 && u <= 57343) {\n var u1 = str.charCodeAt(++i);\n u = 65536 + ((u & 1023) << 10) | u1 & 1023;\n }\n if (u <= 127) {\n if (outIdx >= endIdx)\n break;\n heap[outIdx++ >>> 0] = u;\n } else if (u <= 2047) {\n if (outIdx + 1 >= endIdx)\n break;\n heap[outIdx++ >>> 0] = 192 | u >> 6;\n heap[outIdx++ >>> 0] = 128 | u & 63;\n } else if (u <= 65535) {\n if (outIdx + 2 >= endIdx)\n break;\n heap[outIdx++ >>> 0] = 224 | u >> 12;\n heap[outIdx++ >>> 0] = 128 | u >> 6 & 63;\n heap[outIdx++ >>> 0] = 128 | u & 63;\n } else {\n if (outIdx + 3 >= endIdx)\n break;\n heap[outIdx++ >>> 0] = 240 | u >> 18;\n heap[outIdx++ >>> 0] = 128 | u >> 12 & 63;\n heap[outIdx++ >>> 0] = 128 | u >> 6 & 63;\n heap[outIdx++ >>> 0] = 128 | u & 63;\n }\n }\n heap[outIdx >>> 0] = 0;\n return outIdx - startIdx;\n };\n var stringToUTF8 = (str, outPtr, maxBytesToWrite) => stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);\n var lengthBytesUTF8 = (str) => {\n var len = 0;\n for (var i = 0; i < str.length; ++i) {\n var c = str.charCodeAt(i);\n if (c <= 127) {\n len++;\n } else if (c <= 2047) {\n len += 2;\n } else if (c >= 55296 && c <= 57343) {\n len += 4;\n ++i;\n } else {\n len += 3;\n }\n }\n return len;\n };\n var UTF8Decoder = typeof TextDecoder != \"undefined\" ? new TextDecoder(\"utf8\") : void 0;\n var UTF8ArrayToString = (heapOrArray, idx, maxBytesToRead) => {\n idx >>>= 0;\n var endIdx = idx + maxBytesToRead;\n var endPtr = idx;\n while (heapOrArray[endPtr] && !(endPtr >= endIdx))\n ++endPtr;\n if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {\n return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr));\n }\n var str = \"\";\n while (idx < endPtr) {\n var u0 = heapOrArray[idx++];\n if (!(u0 & 128)) {\n str += String.fromCharCode(u0);\n continue;\n }\n var u1 = heapOrArray[idx++] & 63;\n if ((u0 & 224) == 192) {\n str += String.fromCharCode((u0 & 31) << 6 | u1);\n continue;\n }\n var u2 = heapOrArray[idx++] & 63;\n if ((u0 & 240) == 224) {\n u0 = (u0 & 15) << 12 | u1 << 6 | u2;\n } else {\n u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63;\n }\n if (u0 < 65536) {\n str += String.fromCharCode(u0);\n } else {\n var ch = u0 - 65536;\n str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);\n }\n }\n return str;\n };\n var UTF8ToString = (ptr, maxBytesToRead) => {\n ptr >>>= 0;\n return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : \"\";\n };\n function __embind_register_std_string(rawType, name) {\n rawType >>>= 0;\n name >>>= 0;\n name = readLatin1String(name);\n var stdStringIsUTF8 = name === \"std::string\";\n registerType(rawType, { name, \"fromWireType\": function(value) {\n var length = HEAPU32[value >>> 2];\n var payload = value + 4;\n var str;\n if (stdStringIsUTF8) {\n var decodeStartPtr = payload;\n for (var i = 0; i <= length; ++i) {\n var currentBytePtr = payload + i;\n if (i == length || HEAPU8[currentBytePtr >>> 0] == 0) {\n var maxRead = currentBytePtr - decodeStartPtr;\n var stringSegment = UTF8ToString(decodeStartPtr, maxRead);\n if (str === void 0) {\n str = stringSegment;\n } else {\n str += String.fromCharCode(0);\n str += stringSegment;\n }\n decodeStartPtr = currentBytePtr + 1;\n }\n }\n } else {\n var a = new Array(length);\n for (var i = 0; i < length; ++i) {\n a[i] = String.fromCharCode(HEAPU8[payload + i >>> 0]);\n }\n str = a.join(\"\");\n }\n _free(value);\n return str;\n }, \"toWireType\": function(destructors, value) {\n if (value instanceof ArrayBuffer) {\n value = new Uint8Array(value);\n }\n var length;\n var valueIsOfTypeString = typeof value == \"string\";\n if (!(valueIsOfTypeString || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int8Array)) {\n throwBindingError(\"Cannot pass non-string to std::string\");\n }\n if (stdStringIsUTF8 && valueIsOfTypeString) {\n length = lengthBytesUTF8(value);\n } else {\n length = value.length;\n }\n var base = _malloc(4 + length + 1);\n var ptr = base + 4;\n HEAPU32[base >>> 2] = length;\n if (stdStringIsUTF8 && valueIsOfTypeString) {\n stringToUTF8(value, ptr, length + 1);\n } else {\n if (valueIsOfTypeString) {\n for (var i = 0; i < length; ++i) {\n var charCode = value.charCodeAt(i);\n if (charCode > 255) {\n _free(ptr);\n throwBindingError(\"String has UTF-16 code units that do not fit in 8 bits\");\n }\n HEAPU8[ptr + i >>> 0] = charCode;\n }\n } else {\n for (var i = 0; i < length; ++i) {\n HEAPU8[ptr + i >>> 0] = value[i];\n }\n }\n }\n if (destructors !== null) {\n destructors.push(_free, base);\n }\n return base;\n }, \"argPackAdvance\": 8, \"readValueFromPointer\": simpleReadValueFromPointer, destructorFunction: function(ptr) {\n _free(ptr);\n } });\n }\n var UTF16Decoder = typeof TextDecoder != \"undefined\" ? new TextDecoder(\"utf-16le\") : void 0;\n var UTF16ToString = (ptr, maxBytesToRead) => {\n var endPtr = ptr;\n var idx = endPtr >> 1;\n var maxIdx = idx + maxBytesToRead / 2;\n while (!(idx >= maxIdx) && HEAPU16[idx >>> 0])\n ++idx;\n endPtr = idx << 1;\n if (endPtr - ptr > 32 && UTF16Decoder)\n return UTF16Decoder.decode(HEAPU8.subarray(ptr >>> 0, endPtr >>> 0));\n var str = \"\";\n for (var i = 0; !(i >= maxBytesToRead / 2); ++i) {\n var codeUnit = HEAP16[ptr + i * 2 >>> 1];\n if (codeUnit == 0)\n break;\n str += String.fromCharCode(codeUnit);\n }\n return str;\n };\n var stringToUTF16 = (str, outPtr, maxBytesToWrite) => {\n if (maxBytesToWrite === void 0) {\n maxBytesToWrite = 2147483647;\n }\n if (maxBytesToWrite < 2)\n return 0;\n maxBytesToWrite -= 2;\n var startPtr = outPtr;\n var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length;\n for (var i = 0; i < numCharsToWrite; ++i) {\n var codeUnit = str.charCodeAt(i);\n HEAP16[outPtr >>> 1] = codeUnit;\n outPtr += 2;\n }\n HEAP16[outPtr >>> 1] = 0;\n return outPtr - startPtr;\n };\n var lengthBytesUTF16 = (str) => str.length * 2;\n var UTF32ToString = (ptr, maxBytesToRead) => {\n var i = 0;\n var str = \"\";\n while (!(i >= maxBytesToRead / 4)) {\n var utf32 = HEAP32[ptr + i * 4 >>> 2];\n if (utf32 == 0)\n break;\n ++i;\n if (utf32 >= 65536) {\n var ch = utf32 - 65536;\n str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);\n } else {\n str += String.fromCharCode(utf32);\n }\n }\n return str;\n };\n var stringToUTF32 = (str, outPtr, maxBytesToWrite) => {\n outPtr >>>= 0;\n if (maxBytesToWrite === void 0) {\n maxBytesToWrite = 2147483647;\n }\n if (maxBytesToWrite < 4)\n return 0;\n var startPtr = outPtr;\n var endPtr = startPtr + maxBytesToWrite - 4;\n for (var i = 0; i < str.length; ++i) {\n var codeUnit = str.charCodeAt(i);\n if (codeUnit >= 55296 && codeUnit <= 57343) {\n var trailSurrogate = str.charCodeAt(++i);\n codeUnit = 65536 + ((codeUnit & 1023) << 10) | trailSurrogate & 1023;\n }\n HEAP32[outPtr >>> 2] = codeUnit;\n outPtr += 4;\n if (outPtr + 4 > endPtr)\n break;\n }\n HEAP32[outPtr >>> 2] = 0;\n return outPtr - startPtr;\n };\n var lengthBytesUTF32 = (str) => {\n var len = 0;\n for (var i = 0; i < str.length; ++i) {\n var codeUnit = str.charCodeAt(i);\n if (codeUnit >= 55296 && codeUnit <= 57343)\n ++i;\n len += 4;\n }\n return len;\n };\n var __embind_register_std_wstring = function(rawType, charSize, name) {\n rawType >>>= 0;\n charSize >>>= 0;\n name >>>= 0;\n name = readLatin1String(name);\n var decodeString, encodeString, getHeap, lengthBytesUTF, shift;\n if (charSize === 2) {\n decodeString = UTF16ToString;\n encodeString = stringToUTF16;\n lengthBytesUTF = lengthBytesUTF16;\n getHeap = () => HEAPU16;\n shift = 1;\n } else if (charSize === 4) {\n decodeString = UTF32ToString;\n encodeString = stringToUTF32;\n lengthBytesUTF = lengthBytesUTF32;\n getHeap = () => HEAPU32;\n shift = 2;\n }\n registerType(rawType, { name, \"fromWireType\": function(value) {\n var length = HEAPU32[value >>> 2];\n var HEAP = getHeap();\n var str;\n var decodeStartPtr = value + 4;\n for (var i = 0; i <= length; ++i) {\n var currentBytePtr = value + 4 + i * charSize;\n if (i == length || HEAP[currentBytePtr >>> shift] == 0) {\n var maxReadBytes = currentBytePtr - decodeStartPtr;\n var stringSegment = decodeString(decodeStartPtr, maxReadBytes);\n if (str === void 0) {\n str = stringSegment;\n } else {\n str += String.fromCharCode(0);\n str += stringSegment;\n }\n decodeStartPtr = currentBytePtr + charSize;\n }\n }\n _free(value);\n return str;\n }, \"toWireType\": function(destructors, value) {\n if (!(typeof value == \"string\")) {\n throwBindingError(`Cannot pass non-string to C++ string type ${name}`);\n }\n var length = lengthBytesUTF(value);\n var ptr = _malloc(4 + length + charSize);\n HEAPU32[ptr >>> 2] = length >> shift;\n encodeString(value, ptr + 4, length + charSize);\n if (destructors !== null) {\n destructors.push(_free, ptr);\n }\n return ptr;\n }, \"argPackAdvance\": 8, \"readValueFromPointer\": simpleReadValueFromPointer, destructorFunction: function(ptr) {\n _free(ptr);\n } });\n };\n function __embind_register_value_array(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) {\n rawType >>>= 0;\n name >>>= 0;\n constructorSignature >>>= 0;\n rawConstructor >>>= 0;\n destructorSignature >>>= 0;\n rawDestructor >>>= 0;\n tupleRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), elements: [] };\n }\n function __embind_register_value_array_element(rawTupleType, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) {\n rawTupleType >>>= 0;\n getterReturnType >>>= 0;\n getterSignature >>>= 0;\n getter >>>= 0;\n getterContext >>>= 0;\n setterArgumentType >>>= 0;\n setterSignature >>>= 0;\n setter >>>= 0;\n setterContext >>>= 0;\n tupleRegistrations[rawTupleType].elements.push({ getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext });\n }\n function __embind_register_value_object(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) {\n rawType >>>= 0;\n name >>>= 0;\n constructorSignature >>>= 0;\n rawConstructor >>>= 0;\n destructorSignature >>>= 0;\n rawDestructor >>>= 0;\n structRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), fields: [] };\n }\n function __embind_register_value_object_field(structType, fieldName, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) {\n structType >>>= 0;\n fieldName >>>= 0;\n getterReturnType >>>= 0;\n getterSignature >>>= 0;\n getter >>>= 0;\n getterContext >>>= 0;\n setterArgumentType >>>= 0;\n setterSignature >>>= 0;\n setter >>>= 0;\n setterContext >>>= 0;\n structRegistrations[structType].fields.push({ fieldName: readLatin1String(fieldName), getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext });\n }\n function __embind_register_void(rawType, name) {\n rawType >>>= 0;\n name >>>= 0;\n name = readLatin1String(name);\n registerType(rawType, { isVoid: true, name, \"argPackAdvance\": 0, \"fromWireType\": function() {\n return void 0;\n }, \"toWireType\": function(destructors, o) {\n return void 0;\n } });\n }\n var nowIsMonotonic = true;\n var __emscripten_get_now_is_monotonic = () => nowIsMonotonic;\n function requireRegisteredType(rawType, humanName) {\n var impl = registeredTypes[rawType];\n if (impl === void 0) {\n throwBindingError(humanName + \" has unknown type \" + getTypeName(rawType));\n }\n return impl;\n }\n function __emval_as(handle, returnType, destructorsRef) {\n handle >>>= 0;\n returnType >>>= 0;\n destructorsRef >>>= 0;\n handle = Emval.toValue(handle);\n returnType = requireRegisteredType(returnType, \"emval::as\");\n var destructors = [];\n var rd = Emval.toHandle(destructors);\n HEAPU32[destructorsRef >>> 2] = rd;\n return returnType[\"toWireType\"](destructors, handle);\n }\n function emval_lookupTypes(argCount, argTypes) {\n var a = new Array(argCount);\n for (var i = 0; i < argCount; ++i) {\n a[i] = requireRegisteredType(HEAPU32[argTypes + i * 4 >>> 2], \"parameter \" + i);\n }\n return a;\n }\n function __emval_call(handle, argCount, argTypes, argv) {\n handle >>>= 0;\n argTypes >>>= 0;\n argv >>>= 0;\n handle = Emval.toValue(handle);\n var types = emval_lookupTypes(argCount, argTypes);\n var args = new Array(argCount);\n for (var i = 0; i < argCount; ++i) {\n var type = types[i];\n args[i] = type[\"readValueFromPointer\"](argv);\n argv += type[\"argPackAdvance\"];\n }\n var rv = handle.apply(void 0, args);\n return Emval.toHandle(rv);\n }\n var emval_symbols = {};\n function getStringOrSymbol(address) {\n var symbol = emval_symbols[address];\n if (symbol === void 0) {\n return readLatin1String(address);\n }\n return symbol;\n }\n function emval_get_global() {\n if (typeof globalThis == \"object\") {\n return globalThis;\n }\n return function() {\n return Function;\n }()(\"return this\")();\n }\n function __emval_get_global(name) {\n name >>>= 0;\n if (name === 0) {\n return Emval.toHandle(emval_get_global());\n } else {\n name = getStringOrSymbol(name);\n return Emval.toHandle(emval_get_global()[name]);\n }\n }\n function __emval_get_property(handle, key) {\n handle >>>= 0;\n key >>>= 0;\n handle = Emval.toValue(handle);\n key = Emval.toValue(key);\n return Emval.toHandle(handle[key]);\n }\n function __emval_incref(handle) {\n handle >>>= 0;\n if (handle > 4) {\n emval_handles.get(handle).refcount += 1;\n }\n }\n function __emval_instanceof(object, constructor) {\n object >>>= 0;\n constructor >>>= 0;\n object = Emval.toValue(object);\n constructor = Emval.toValue(constructor);\n return object instanceof constructor;\n }\n function __emval_is_number(handle) {\n handle >>>= 0;\n handle = Emval.toValue(handle);\n return typeof handle == \"number\";\n }\n function __emval_is_string(handle) {\n handle >>>= 0;\n handle = Emval.toValue(handle);\n return typeof handle == \"string\";\n }\n function __emval_new_array() {\n return Emval.toHandle([]);\n }\n function __emval_new_cstring(v) {\n v >>>= 0;\n return Emval.toHandle(getStringOrSymbol(v));\n }\n function __emval_new_object() {\n return Emval.toHandle({});\n }\n function __emval_run_destructors(handle) {\n handle >>>= 0;\n var destructors = Emval.toValue(handle);\n runDestructors(destructors);\n __emval_decref(handle);\n }\n function __emval_set_property(handle, key, value) {\n handle >>>= 0;\n key >>>= 0;\n value >>>= 0;\n handle = Emval.toValue(handle);\n key = Emval.toValue(key);\n value = Emval.toValue(value);\n handle[key] = value;\n }\n function __emval_take_value(type, arg) {\n type >>>= 0;\n arg >>>= 0;\n type = requireRegisteredType(type, \"_emval_take_value\");\n var v = type[\"readValueFromPointer\"](arg);\n return Emval.toHandle(v);\n }\n function __gmtime_js(time_low, time_high, tmPtr) {\n var time = convertI32PairToI53Checked(time_low, time_high);\n tmPtr >>>= 0;\n var date = new Date(time * 1e3);\n HEAP32[tmPtr >>> 2] = date.getUTCSeconds();\n HEAP32[tmPtr + 4 >>> 2] = date.getUTCMinutes();\n HEAP32[tmPtr + 8 >>> 2] = date.getUTCHours();\n HEAP32[tmPtr + 12 >>> 2] = date.getUTCDate();\n HEAP32[tmPtr + 16 >>> 2] = date.getUTCMonth();\n HEAP32[tmPtr + 20 >>> 2] = date.getUTCFullYear() - 1900;\n HEAP32[tmPtr + 24 >>> 2] = date.getUTCDay();\n var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0);\n var yday = (date.getTime() - start) / (1e3 * 60 * 60 * 24) | 0;\n HEAP32[tmPtr + 28 >>> 2] = yday;\n }\n var isLeapYear = (year) => year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n var MONTH_DAYS_LEAP_CUMULATIVE = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\n var MONTH_DAYS_REGULAR_CUMULATIVE = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];\n var ydayFromDate = (date) => {\n var leap = isLeapYear(date.getFullYear());\n var monthDaysCumulative = leap ? MONTH_DAYS_LEAP_CUMULATIVE : MONTH_DAYS_REGULAR_CUMULATIVE;\n var yday = monthDaysCumulative[date.getMonth()] + date.getDate() - 1;\n return yday;\n };\n function __localtime_js(time_low, time_high, tmPtr) {\n var time = convertI32PairToI53Checked(time_low, time_high);\n tmPtr >>>= 0;\n var date = new Date(time * 1e3);\n HEAP32[tmPtr >>> 2] = date.getSeconds();\n HEAP32[tmPtr + 4 >>> 2] = date.getMinutes();\n HEAP32[tmPtr + 8 >>> 2] = date.getHours();\n HEAP32[tmPtr + 12 >>> 2] = date.getDate();\n HEAP32[tmPtr + 16 >>> 2] = date.getMonth();\n HEAP32[tmPtr + 20 >>> 2] = date.getFullYear() - 1900;\n HEAP32[tmPtr + 24 >>> 2] = date.getDay();\n var yday = ydayFromDate(date) | 0;\n HEAP32[tmPtr + 28 >>> 2] = yday;\n HEAP32[tmPtr + 36 >>> 2] = -(date.getTimezoneOffset() * 60);\n var start = new Date(date.getFullYear(), 0, 1);\n var summerOffset = new Date(date.getFullYear(), 6, 1).getTimezoneOffset();\n var winterOffset = start.getTimezoneOffset();\n var dst = (summerOffset != winterOffset && date.getTimezoneOffset() == Math.min(winterOffset, summerOffset)) | 0;\n HEAP32[tmPtr + 32 >>> 2] = dst;\n }\n var stringToNewUTF8 = (str) => {\n var size = lengthBytesUTF8(str) + 1;\n var ret = _malloc(size);\n if (ret)\n stringToUTF8(str, ret, size);\n return ret;\n };\n function __tzset_js(timezone, daylight, tzname) {\n timezone >>>= 0;\n daylight >>>= 0;\n tzname >>>= 0;\n var currentYear = new Date().getFullYear();\n var winter = new Date(currentYear, 0, 1);\n var summer = new Date(currentYear, 6, 1);\n var winterOffset = winter.getTimezoneOffset();\n var summerOffset = summer.getTimezoneOffset();\n var stdTimezoneOffset = Math.max(winterOffset, summerOffset);\n HEAPU32[timezone >>> 2] = stdTimezoneOffset * 60;\n HEAP32[daylight >>> 2] = Number(winterOffset != summerOffset);\n function extractZone(date) {\n var match = date.toTimeString().match(/\\(([A-Za-z ]+)\\)$/);\n return match ? match[1] : \"GMT\";\n }\n var winterName = extractZone(winter);\n var summerName = extractZone(summer);\n var winterNamePtr = stringToNewUTF8(winterName);\n var summerNamePtr = stringToNewUTF8(summerName);\n if (summerOffset < winterOffset) {\n HEAPU32[tzname >>> 2] = winterNamePtr;\n HEAPU32[tzname + 4 >>> 2] = summerNamePtr;\n } else {\n HEAPU32[tzname >>> 2] = summerNamePtr;\n HEAPU32[tzname + 4 >>> 2] = winterNamePtr;\n }\n }\n var _abort = () => {\n abort(\"\");\n };\n function _emscripten_date_now() {\n return Date.now();\n }\n var _emscripten_get_now;\n _emscripten_get_now = () => performance.now();\n function _emscripten_memcpy_big(dest, src, num) {\n dest >>>= 0;\n src >>>= 0;\n num >>>= 0;\n return HEAPU8.copyWithin(dest >>> 0, src >>> 0, src + num >>> 0);\n }\n var getHeapMax = () => 4294901760;\n var growMemory = (size) => {\n var b = wasmMemory.buffer;\n var pages = size - b.byteLength + 65535 >>> 16;\n try {\n wasmMemory.grow(pages);\n updateMemoryViews();\n return 1;\n } catch (e) {\n }\n };\n function _emscripten_resize_heap(requestedSize) {\n requestedSize >>>= 0;\n var oldSize = HEAPU8.length;\n var maxHeapSize = getHeapMax();\n if (requestedSize > maxHeapSize) {\n return false;\n }\n var alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple;\n for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {\n var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown);\n overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);\n var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536));\n var replacement = growMemory(newSize);\n if (replacement) {\n return true;\n }\n }\n return false;\n }\n var ENV = {};\n var getExecutableName = () => thisProgram || \"./this.program\";\n var getEnvStrings = () => {\n if (!getEnvStrings.strings) {\n var lang = (typeof navigator == \"object\" && navigator.languages && navigator.languages[0] || \"C\").replace(\"-\", \"_\") + \".UTF-8\";\n var env = { \"USER\": \"web_user\", \"LOGNAME\": \"web_user\", \"PATH\": \"/\", \"PWD\": \"/\", \"HOME\": \"/home/web_user\", \"LANG\": lang, \"_\": getExecutableName() };\n for (var x in ENV) {\n if (ENV[x] === void 0)\n delete env[x];\n else\n env[x] = ENV[x];\n }\n var strings = [];\n for (var x in env) {\n strings.push(`${x}=${env[x]}`);\n }\n getEnvStrings.strings = strings;\n }\n return getEnvStrings.strings;\n };\n var stringToAscii = (str, buffer) => {\n for (var i = 0; i < str.length; ++i) {\n HEAP8[buffer++ >>> 0] = str.charCodeAt(i);\n }\n HEAP8[buffer >>> 0] = 0;\n };\n var PATH = { isAbs: (path) => path.charAt(0) === \"/\", splitPath: (filename) => {\n var splitPathRe = /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\n return splitPathRe.exec(filename).slice(1);\n }, normalizeArray: (parts, allowAboveRoot) => {\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === \".\") {\n parts.splice(i, 1);\n } else if (last === \"..\") {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n if (allowAboveRoot) {\n for (; up; up--) {\n parts.unshift(\"..\");\n }\n }\n return parts;\n }, normalize: (path) => {\n var isAbsolute = PATH.isAbs(path), trailingSlash = path.substr(-1) === \"/\";\n path = PATH.normalizeArray(path.split(\"/\").filter((p) => !!p), !isAbsolute).join(\"/\");\n if (!path && !isAbsolute) {\n path = \".\";\n }\n if (path && trailingSlash) {\n path += \"/\";\n }\n return (isAbsolute ? \"/\" : \"\") + path;\n }, dirname: (path) => {\n var result = PATH.splitPath(path), root = result[0], dir = result[1];\n if (!root && !dir) {\n return \".\";\n }\n if (dir) {\n dir = dir.substr(0, dir.length - 1);\n }\n return root + dir;\n }, basename: (path) => {\n if (path === \"/\")\n return \"/\";\n path = PATH.normalize(path);\n path = path.replace(/\\/$/, \"\");\n var lastSlash = path.lastIndexOf(\"/\");\n if (lastSlash === -1)\n return path;\n return path.substr(lastSlash + 1);\n }, join: function() {\n var paths = Array.prototype.slice.call(arguments);\n return PATH.normalize(paths.join(\"/\"));\n }, join2: (l, r) => PATH.normalize(l + \"/\" + r) };\n var initRandomFill = () => {\n if (typeof crypto == \"object\" && typeof crypto[\"getRandomValues\"] == \"function\") {\n return (view) => crypto.getRandomValues(view);\n } else\n abort(\"initRandomDevice\");\n };\n var randomFill = (view) => (randomFill = initRandomFill())(view);\n var PATH_FS = { resolve: function() {\n var resolvedPath = \"\", resolvedAbsolute = false;\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = i >= 0 ? arguments[i] : FS.cwd();\n if (typeof path != \"string\") {\n throw new TypeError(\"Arguments to path.resolve must be strings\");\n } else if (!path) {\n return \"\";\n }\n resolvedPath = path + \"/\" + resolvedPath;\n resolvedAbsolute = PATH.isAbs(path);\n }\n resolvedPath = PATH.normalizeArray(resolvedPath.split(\"/\").filter((p) => !!p), !resolvedAbsolute).join(\"/\");\n return (resolvedAbsolute ? \"/\" : \"\") + resolvedPath || \".\";\n }, relative: (from, to) => {\n from = PATH_FS.resolve(from).substr(1);\n to = PATH_FS.resolve(to).substr(1);\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== \"\")\n break;\n }\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== \"\")\n break;\n }\n if (start > end)\n return [];\n return arr.slice(start, end - start + 1);\n }\n var fromParts = trim(from.split(\"/\"));\n var toParts = trim(to.split(\"/\"));\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push(\"..\");\n }\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join(\"/\");\n } };\n var FS_stdin_getChar_buffer = [];\n function intArrayFromString(stringy, dontAddNull, length) {\n var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1;\n var u8array = new Array(len);\n var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);\n if (dontAddNull)\n u8array.length = numBytesWritten;\n return u8array;\n }\n var FS_stdin_getChar = () => {\n if (!FS_stdin_getChar_buffer.length) {\n var result = null;\n if (typeof window != \"undefined\" && typeof window.prompt == \"function\") {\n result = window.prompt(\"Input: \");\n if (result !== null) {\n result += \"\\n\";\n }\n } else if (typeof readline == \"function\") {\n result = readline();\n if (result !== null) {\n result += \"\\n\";\n }\n }\n if (!result) {\n return null;\n }\n FS_stdin_getChar_buffer = intArrayFromString(result, true);\n }\n return FS_stdin_getChar_buffer.shift();\n };\n var TTY = { ttys: [], init: function() {\n }, shutdown: function() {\n }, register: function(dev, ops) {\n TTY.ttys[dev] = { input: [], output: [], ops };\n FS.registerDevice(dev, TTY.stream_ops);\n }, stream_ops: { open: function(stream) {\n var tty = TTY.ttys[stream.node.rdev];\n if (!tty) {\n throw new FS.ErrnoError(43);\n }\n stream.tty = tty;\n stream.seekable = false;\n }, close: function(stream) {\n stream.tty.ops.fsync(stream.tty);\n }, fsync: function(stream) {\n stream.tty.ops.fsync(stream.tty);\n }, read: function(stream, buffer, offset, length, pos) {\n if (!stream.tty || !stream.tty.ops.get_char) {\n throw new FS.ErrnoError(60);\n }\n var bytesRead = 0;\n for (var i = 0; i < length; i++) {\n var result;\n try {\n result = stream.tty.ops.get_char(stream.tty);\n } catch (e) {\n throw new FS.ErrnoError(29);\n }\n if (result === void 0 && bytesRead === 0) {\n throw new FS.ErrnoError(6);\n }\n if (result === null || result === void 0)\n break;\n bytesRead++;\n buffer[offset + i] = result;\n }\n if (bytesRead) {\n stream.node.timestamp = Date.now();\n }\n return bytesRead;\n }, write: function(stream, buffer, offset, length, pos) {\n if (!stream.tty || !stream.tty.ops.put_char) {\n throw new FS.ErrnoError(60);\n }\n try {\n for (var i = 0; i < length; i++) {\n stream.tty.ops.put_char(stream.tty, buffer[offset + i]);\n }\n } catch (e) {\n throw new FS.ErrnoError(29);\n }\n if (length) {\n stream.node.timestamp = Date.now();\n }\n return i;\n } }, default_tty_ops: { get_char: function(tty) {\n return FS_stdin_getChar();\n }, put_char: function(tty, val) {\n if (val === null || val === 10) {\n out(UTF8ArrayToString(tty.output, 0));\n tty.output = [];\n } else {\n if (val != 0)\n tty.output.push(val);\n }\n }, fsync: function(tty) {\n if (tty.output && tty.output.length > 0) {\n out(UTF8ArrayToString(tty.output, 0));\n tty.output = [];\n }\n }, ioctl_tcgets: function(tty) {\n return { c_iflag: 25856, c_oflag: 5, c_cflag: 191, c_lflag: 35387, c_cc: [3, 28, 127, 21, 4, 0, 1, 0, 17, 19, 26, 0, 18, 15, 23, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] };\n }, ioctl_tcsets: function(tty, optional_actions, data) {\n return 0;\n }, ioctl_tiocgwinsz: function(tty) {\n return [24, 80];\n } }, default_tty1_ops: { put_char: function(tty, val) {\n if (val === null || val === 10) {\n err(UTF8ArrayToString(tty.output, 0));\n tty.output = [];\n } else {\n if (val != 0)\n tty.output.push(val);\n }\n }, fsync: function(tty) {\n if (tty.output && tty.output.length > 0) {\n err(UTF8ArrayToString(tty.output, 0));\n tty.output = [];\n }\n } } };\n var mmapAlloc = (size) => {\n abort();\n };\n var MEMFS = { ops_table: null, mount(mount) {\n return MEMFS.createNode(null, \"/\", 16384 | 511, 0);\n }, createNode(parent, name, mode, dev) {\n if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {\n throw new FS.ErrnoError(63);\n }\n if (!MEMFS.ops_table) {\n MEMFS.ops_table = { dir: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, lookup: MEMFS.node_ops.lookup, mknod: MEMFS.node_ops.mknod, rename: MEMFS.node_ops.rename, unlink: MEMFS.node_ops.unlink, rmdir: MEMFS.node_ops.rmdir, readdir: MEMFS.node_ops.readdir, symlink: MEMFS.node_ops.symlink }, stream: { llseek: MEMFS.stream_ops.llseek } }, file: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: { llseek: MEMFS.stream_ops.llseek, read: MEMFS.stream_ops.read, write: MEMFS.stream_ops.write, allocate: MEMFS.stream_ops.allocate, mmap: MEMFS.stream_ops.mmap, msync: MEMFS.stream_ops.msync } }, link: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, readlink: MEMFS.node_ops.readlink }, stream: {} }, chrdev: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: FS.chrdev_stream_ops } };\n }\n var node = FS.createNode(parent, name, mode, dev);\n if (FS.isDir(node.mode)) {\n node.node_ops = MEMFS.ops_table.dir.node;\n node.stream_ops = MEMFS.ops_table.dir.stream;\n node.contents = {};\n } else if (FS.isFile(node.mode)) {\n node.node_ops = MEMFS.ops_table.file.node;\n node.stream_ops = MEMFS.ops_table.file.stream;\n node.usedBytes = 0;\n node.contents = null;\n } else if (FS.isLink(node.mode)) {\n node.node_ops = MEMFS.ops_table.link.node;\n node.stream_ops = MEMFS.ops_table.link.stream;\n } else if (FS.isChrdev(node.mode)) {\n node.node_ops = MEMFS.ops_table.chrdev.node;\n node.stream_ops = MEMFS.ops_table.chrdev.stream;\n }\n node.timestamp = Date.now();\n if (parent) {\n parent.contents[name] = node;\n parent.timestamp = node.timestamp;\n }\n return node;\n }, getFileDataAsTypedArray(node) {\n if (!node.contents)\n return new Uint8Array(0);\n if (node.contents.subarray)\n return node.contents.subarray(0, node.usedBytes);\n return new Uint8Array(node.contents);\n }, expandFileStorage(node, newCapacity) {\n var prevCapacity = node.contents ? node.contents.length : 0;\n if (prevCapacity >= newCapacity)\n return;\n var CAPACITY_DOUBLING_MAX = 1024 * 1024;\n newCapacity = Math.max(newCapacity, prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125) >>> 0);\n if (prevCapacity != 0)\n newCapacity = Math.max(newCapacity, 256);\n var oldContents = node.contents;\n node.contents = new Uint8Array(newCapacity);\n if (node.usedBytes > 0)\n node.contents.set(oldContents.subarray(0, node.usedBytes), 0);\n }, resizeFileStorage(node, newSize) {\n if (node.usedBytes == newSize)\n return;\n if (newSize == 0) {\n node.contents = null;\n node.usedBytes = 0;\n } else {\n var oldContents = node.contents;\n node.contents = new Uint8Array(newSize);\n if (oldContents) {\n node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes)));\n }\n node.usedBytes = newSize;\n }\n }, node_ops: { getattr(node) {\n var attr = {};\n attr.dev = FS.isChrdev(node.mode) ? node.id : 1;\n attr.ino = node.id;\n attr.mode = node.mode;\n attr.nlink = 1;\n attr.uid = 0;\n attr.gid = 0;\n attr.rdev = node.rdev;\n if (FS.isDir(node.mode)) {\n attr.size = 4096;\n } else if (FS.isFile(node.mode)) {\n attr.size = node.usedBytes;\n } else if (FS.isLink(node.mode)) {\n attr.size = node.link.length;\n } else {\n attr.size = 0;\n }\n attr.atime = new Date(node.timestamp);\n attr.mtime = new Date(node.timestamp);\n attr.ctime = new Date(node.timestamp);\n attr.blksize = 4096;\n attr.blocks = Math.ceil(attr.size / attr.blksize);\n return attr;\n }, setattr(node, attr) {\n if (attr.mode !== void 0) {\n node.mode = attr.mode;\n }\n if (attr.timestamp !== void 0) {\n node.timestamp = attr.timestamp;\n }\n if (attr.size !== void 0) {\n MEMFS.resizeFileStorage(node, attr.size);\n }\n }, lookup(parent, name) {\n throw FS.genericErrors[44];\n }, mknod(parent, name, mode, dev) {\n return MEMFS.createNode(parent, name, mode, dev);\n }, rename(old_node, new_dir, new_name) {\n if (FS.isDir(old_node.mode)) {\n var new_node;\n try {\n new_node = FS.lookupNode(new_dir, new_name);\n } catch (e) {\n }\n if (new_node) {\n for (var i in new_node.contents) {\n throw new FS.ErrnoError(55);\n }\n }\n }\n delete old_node.parent.contents[old_node.name];\n old_node.parent.timestamp = Date.now();\n old_node.name = new_name;\n new_dir.contents[new_name] = old_node;\n new_dir.timestamp = old_node.parent.timestamp;\n old_node.parent = new_dir;\n }, unlink(parent, name) {\n delete parent.contents[name];\n parent.timestamp = Date.now();\n }, rmdir(parent, name) {\n var node = FS.lookupNode(parent, name);\n for (var i in node.contents) {\n throw new FS.ErrnoError(55);\n }\n delete parent.contents[name];\n parent.timestamp = Date.now();\n }, readdir(node) {\n var entries = [\".\", \"..\"];\n for (var key in node.contents) {\n if (!node.contents.hasOwnProperty(key)) {\n continue;\n }\n entries.push(key);\n }\n return entries;\n }, symlink(parent, newname, oldpath) {\n var node = MEMFS.createNode(parent, newname, 511 | 40960, 0);\n node.link = oldpath;\n return node;\n }, readlink(node) {\n if (!FS.isLink(node.mode)) {\n throw new FS.ErrnoError(28);\n }\n return node.link;\n } }, stream_ops: { read(stream, buffer, offset, length, position) {\n var contents = stream.node.contents;\n if (position >= stream.node.usedBytes)\n return 0;\n var size = Math.min(stream.node.usedBytes - position, length);\n if (size > 8 && contents.subarray) {\n buffer.set(contents.subarray(position, position + size), offset);\n } else {\n for (var i = 0; i < size; i++)\n buffer[offset + i] = contents[position + i];\n }\n return size;\n }, write(stream, buffer, offset, length, position, canOwn) {\n if (buffer.buffer === HEAP8.buffer) {\n canOwn = false;\n }\n if (!length)\n return 0;\n var node = stream.node;\n node.timestamp = Date.now();\n if (buffer.subarray && (!node.contents || node.contents.subarray)) {\n if (canOwn) {\n node.contents = buffer.subarray(offset, offset + length);\n node.usedBytes = length;\n return length;\n } else if (node.usedBytes === 0 && position === 0) {\n node.contents = buffer.slice(offset, offset + length);\n node.usedBytes = length;\n return length;\n } else if (position + length <= node.usedBytes) {\n node.contents.set(buffer.subarray(offset, offset + length), position);\n return length;\n }\n }\n MEMFS.expandFileStorage(node, position + length);\n if (node.contents.subarray && buffer.subarray) {\n node.contents.set(buffer.subarray(offset, offset + length), position);\n } else {\n for (var i = 0; i < length; i++) {\n node.contents[position + i] = buffer[offset + i];\n }\n }\n node.usedBytes = Math.max(node.usedBytes, position + length);\n return length;\n }, llseek(stream, offset, whence) {\n var position = offset;\n if (whence === 1) {\n position += stream.position;\n } else if (whence === 2) {\n if (FS.isFile(stream.node.mode)) {\n position += stream.node.usedBytes;\n }\n }\n if (position < 0) {\n throw new FS.ErrnoError(28);\n }\n return position;\n }, allocate(stream, offset, length) {\n MEMFS.expandFileStorage(stream.node, offset + length);\n stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length);\n }, mmap(stream, length, position, prot, flags) {\n if (!FS.isFile(stream.node.mode)) {\n throw new FS.ErrnoError(43);\n }\n var ptr;\n var allocated;\n var contents = stream.node.contents;\n if (!(flags & 2) && contents.buffer === HEAP8.buffer) {\n allocated = false;\n ptr = contents.byteOffset;\n } else {\n if (position > 0 || position + length < contents.length) {\n if (contents.subarray) {\n contents = contents.subarray(position, position + length);\n } else {\n contents = Array.prototype.slice.call(contents, position, position + length);\n }\n }\n allocated = true;\n ptr = mmapAlloc(length);\n if (!ptr) {\n throw new FS.ErrnoError(48);\n }\n HEAP8.set(contents, ptr >>> 0);\n }\n return { ptr, allocated };\n }, msync(stream, buffer, offset, length, mmapFlags) {\n MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false);\n return 0;\n } } };\n var asyncLoad = (url, onload, onerror, noRunDep) => {\n var dep = !noRunDep ? getUniqueRunDependency(`al ${url}`) : \"\";\n readAsync(url, (arrayBuffer) => {\n assert(arrayBuffer, `Loading data file \"${url}\" failed (no arrayBuffer).`);\n onload(new Uint8Array(arrayBuffer));\n if (dep)\n removeRunDependency(dep);\n }, (event) => {\n if (onerror) {\n onerror();\n } else {\n throw `Loading data file \"${url}\" failed.`;\n }\n });\n if (dep)\n addRunDependency(dep);\n };\n var preloadPlugins = Module[\"preloadPlugins\"] || [];\n function FS_handledByPreloadPlugin(byteArray, fullname, finish, onerror) {\n if (typeof Browser != \"undefined\")\n Browser.init();\n var handled = false;\n preloadPlugins.forEach(function(plugin) {\n if (handled)\n return;\n if (plugin[\"canHandle\"](fullname)) {\n plugin[\"handle\"](byteArray, fullname, finish, onerror);\n handled = true;\n }\n });\n return handled;\n }\n function FS_createPreloadedFile(parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) {\n var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent;\n var dep = getUniqueRunDependency(`cp ${fullname}`);\n function processData(byteArray) {\n function finish(byteArray2) {\n if (preFinish)\n preFinish();\n if (!dontCreateFile) {\n FS.createDataFile(parent, name, byteArray2, canRead, canWrite, canOwn);\n }\n if (onload)\n onload();\n removeRunDependency(dep);\n }\n if (FS_handledByPreloadPlugin(byteArray, fullname, finish, () => {\n if (onerror)\n onerror();\n removeRunDependency(dep);\n })) {\n return;\n }\n finish(byteArray);\n }\n addRunDependency(dep);\n if (typeof url == \"string\") {\n asyncLoad(url, (byteArray) => processData(byteArray), onerror);\n } else {\n processData(url);\n }\n }\n function FS_modeStringToFlags(str) {\n var flagModes = { \"r\": 0, \"r+\": 2, \"w\": 512 | 64 | 1, \"w+\": 512 | 64 | 2, \"a\": 1024 | 64 | 1, \"a+\": 1024 | 64 | 2 };\n var flags = flagModes[str];\n if (typeof flags == \"undefined\") {\n throw new Error(`Unknown file open mode: ${str}`);\n }\n return flags;\n }\n function FS_getMode(canRead, canWrite) {\n var mode = 0;\n if (canRead)\n mode |= 292 | 73;\n if (canWrite)\n mode |= 146;\n return mode;\n }\n var FS = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: \"/\", initialized: false, ignorePermissions: true, ErrnoError: null, genericErrors: {}, filesystems: null, syncFSRequests: 0, lookupPath: (path, opts = {}) => {\n path = PATH_FS.resolve(path);\n if (!path)\n return { path: \"\", node: null };\n var defaults = { follow_mount: true, recurse_count: 0 };\n opts = Object.assign(defaults, opts);\n if (opts.recurse_count > 8) {\n throw new FS.ErrnoError(32);\n }\n var parts = path.split(\"/\").filter((p) => !!p);\n var current = FS.root;\n var current_path = \"/\";\n for (var i = 0; i < parts.length; i++) {\n var islast = i === parts.length - 1;\n if (islast && opts.parent) {\n break;\n }\n current = FS.lookupNode(current, parts[i]);\n current_path = PATH.join2(current_path, parts[i]);\n if (FS.isMountpoint(current)) {\n if (!islast || islast && opts.follow_mount) {\n current = current.mounted.root;\n }\n }\n if (!islast || opts.follow) {\n var count = 0;\n while (FS.isLink(current.mode)) {\n var link = FS.readlink(current_path);\n current_path = PATH_FS.resolve(PATH.dirname(current_path), link);\n var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count + 1 });\n current = lookup.node;\n if (count++ > 40) {\n throw new FS.ErrnoError(32);\n }\n }\n }\n }\n return { path: current_path, node: current };\n }, getPath: (node) => {\n var path;\n while (true) {\n if (FS.isRoot(node)) {\n var mount = node.mount.mountpoint;\n if (!path)\n return mount;\n return mount[mount.length - 1] !== \"/\" ? `${mount}/${path}` : mount + path;\n }\n path = path ? `${node.name}/${path}` : node.name;\n node = node.parent;\n }\n }, hashName: (parentid, name) => {\n var hash = 0;\n for (var i = 0; i < name.length; i++) {\n hash = (hash << 5) - hash + name.charCodeAt(i) | 0;\n }\n return (parentid + hash >>> 0) % FS.nameTable.length;\n }, hashAddNode: (node) => {\n var hash = FS.hashName(node.parent.id, node.name);\n node.name_next = FS.nameTable[hash];\n FS.nameTable[hash] = node;\n }, hashRemoveNode: (node) => {\n var hash = FS.hashName(node.parent.id, node.name);\n if (FS.nameTable[hash] === node) {\n FS.nameTable[hash] = node.name_next;\n } else {\n var current = FS.nameTable[hash];\n while (current) {\n if (current.name_next === node) {\n current.name_next = node.name_next;\n break;\n }\n current = current.name_next;\n }\n }\n }, lookupNode: (parent, name) => {\n var errCode = FS.mayLookup(parent);\n if (errCode) {\n throw new FS.ErrnoError(errCode, parent);\n }\n var hash = FS.hashName(parent.id, name);\n for (var node = FS.nameTable[hash]; node; node = node.name_next) {\n var nodeName = node.name;\n if (node.parent.id === parent.id && nodeName === name) {\n return node;\n }\n }\n return FS.lookup(parent, name);\n }, createNode: (parent, name, mode, rdev) => {\n var node = new FS.FSNode(parent, name, mode, rdev);\n FS.hashAddNode(node);\n return node;\n }, destroyNode: (node) => {\n FS.hashRemoveNode(node);\n }, isRoot: (node) => node === node.parent, isMountpoint: (node) => !!node.mounted, isFile: (mode) => (mode & 61440) === 32768, isDir: (mode) => (mode & 61440) === 16384, isLink: (mode) => (mode & 61440) === 40960, isChrdev: (mode) => (mode & 61440) === 8192, isBlkdev: (mode) => (mode & 61440) === 24576, isFIFO: (mode) => (mode & 61440) === 4096, isSocket: (mode) => (mode & 49152) === 49152, flagsToPermissionString: (flag) => {\n var perms = [\"r\", \"w\", \"rw\"][flag & 3];\n if (flag & 512) {\n perms += \"w\";\n }\n return perms;\n }, nodePermissions: (node, perms) => {\n if (FS.ignorePermissions) {\n return 0;\n }\n if (perms.includes(\"r\") && !(node.mode & 292)) {\n return 2;\n } else if (perms.includes(\"w\") && !(node.mode & 146)) {\n return 2;\n } else if (perms.includes(\"x\") && !(node.mode & 73)) {\n return 2;\n }\n return 0;\n }, mayLookup: (dir) => {\n var errCode = FS.nodePermissions(dir, \"x\");\n if (errCode)\n return errCode;\n if (!dir.node_ops.lookup)\n return 2;\n return 0;\n }, mayCreate: (dir, name) => {\n try {\n var node = FS.lookupNode(dir, name);\n return 20;\n } catch (e) {\n }\n return FS.nodePermissions(dir, \"wx\");\n }, mayDelete: (dir, name, isdir) => {\n var node;\n try {\n node = FS.lookupNode(dir, name);\n } catch (e) {\n return e.errno;\n }\n var errCode = FS.nodePermissions(dir, \"wx\");\n if (errCode) {\n return errCode;\n }\n if (isdir) {\n if (!FS.isDir(node.mode)) {\n return 54;\n }\n if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) {\n return 10;\n }\n } else {\n if (FS.isDir(node.mode)) {\n return 31;\n }\n }\n return 0;\n }, mayOpen: (node, flags) => {\n if (!node) {\n return 44;\n }\n if (FS.isLink(node.mode)) {\n return 32;\n } else if (FS.isDir(node.mode)) {\n if (FS.flagsToPermissionString(flags) !== \"r\" || flags & 512) {\n return 31;\n }\n }\n return FS.nodePermissions(node, FS.flagsToPermissionString(flags));\n }, MAX_OPEN_FDS: 4096, nextfd: () => {\n for (var fd = 0; fd <= FS.MAX_OPEN_FDS; fd++) {\n if (!FS.streams[fd]) {\n return fd;\n }\n }\n throw new FS.ErrnoError(33);\n }, getStreamChecked: (fd) => {\n var stream = FS.getStream(fd);\n if (!stream) {\n throw new FS.ErrnoError(8);\n }\n return stream;\n }, getStream: (fd) => FS.streams[fd], createStream: (stream, fd = -1) => {\n if (!FS.FSStream) {\n FS.FSStream = function() {\n this.shared = {};\n };\n FS.FSStream.prototype = {};\n Object.defineProperties(FS.FSStream.prototype, { object: { get() {\n return this.node;\n }, set(val) {\n this.node = val;\n } }, isRead: { get() {\n return (this.flags & 2097155) !== 1;\n } }, isWrite: { get() {\n return (this.flags & 2097155) !== 0;\n } }, isAppend: { get() {\n return this.flags & 1024;\n } }, flags: { get() {\n return this.shared.flags;\n }, set(val) {\n this.shared.flags = val;\n } }, position: { get() {\n return this.shared.position;\n }, set(val) {\n this.shared.position = val;\n } } });\n }\n stream = Object.assign(new FS.FSStream(), stream);\n if (fd == -1) {\n fd = FS.nextfd();\n }\n stream.fd = fd;\n FS.streams[fd] = stream;\n return stream;\n }, closeStream: (fd) => {\n FS.streams[fd] = null;\n }, chrdev_stream_ops: { open: (stream) => {\n var device = FS.getDevice(stream.node.rdev);\n stream.stream_ops = device.stream_ops;\n if (stream.stream_ops.open) {\n stream.stream_ops.open(stream);\n }\n }, llseek: () => {\n throw new FS.ErrnoError(70);\n } }, major: (dev) => dev >> 8, minor: (dev) => dev & 255, makedev: (ma, mi) => ma << 8 | mi, registerDevice: (dev, ops) => {\n FS.devices[dev] = { stream_ops: ops };\n }, getDevice: (dev) => FS.devices[dev], getMounts: (mount) => {\n var mounts = [];\n var check = [mount];\n while (check.length) {\n var m = check.pop();\n mounts.push(m);\n check.push.apply(check, m.mounts);\n }\n return mounts;\n }, syncfs: (populate, callback) => {\n if (typeof populate == \"function\") {\n callback = populate;\n populate = false;\n }\n FS.syncFSRequests++;\n if (FS.syncFSRequests > 1) {\n err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);\n }\n var mounts = FS.getMounts(FS.root.mount);\n var completed = 0;\n function doCallback(errCode) {\n FS.syncFSRequests--;\n return callback(errCode);\n }\n function done(errCode) {\n if (errCode) {\n if (!done.errored) {\n done.errored = true;\n return doCallback(errCode);\n }\n return;\n }\n if (++completed >= mounts.length) {\n doCallback(null);\n }\n }\n mounts.forEach((mount) => {\n if (!mount.type.syncfs) {\n return done(null);\n }\n mount.type.syncfs(mount, populate, done);\n });\n }, mount: (type, opts, mountpoint) => {\n var root = mountpoint === \"/\";\n var pseudo = !mountpoint;\n var node;\n if (root && FS.root) {\n throw new FS.ErrnoError(10);\n } else if (!root && !pseudo) {\n var lookup = FS.lookupPath(mountpoint, { follow_mount: false });\n mountpoint = lookup.path;\n node = lookup.node;\n if (FS.isMountpoint(node)) {\n throw new FS.ErrnoError(10);\n }\n if (!FS.isDir(node.mode)) {\n throw new FS.ErrnoError(54);\n }\n }\n var mount = { type, opts, mountpoint, mounts: [] };\n var mountRoot = type.mount(mount);\n mountRoot.mount = mount;\n mount.root = mountRoot;\n if (root) {\n FS.root = mountRoot;\n } else if (node) {\n node.mounted = mount;\n if (node.mount) {\n node.mount.mounts.push(mount);\n }\n }\n return mountRoot;\n }, unmount: (mountpoint) => {\n var lookup = FS.lookupPath(mountpoint, { follow_mount: false });\n if (!FS.isMountpoint(lookup.node)) {\n throw new FS.ErrnoError(28);\n }\n var node = lookup.node;\n var mount = node.mounted;\n var mounts = FS.getMounts(mount);\n Object.keys(FS.nameTable).forEach((hash) => {\n var current = FS.nameTable[hash];\n while (current) {\n var next = current.name_next;\n if (mounts.includes(current.mount)) {\n FS.destroyNode(current);\n }\n current = next;\n }\n });\n node.mounted = null;\n var idx = node.mount.mounts.indexOf(mount);\n node.mount.mounts.splice(idx, 1);\n }, lookup: (parent, name) => parent.node_ops.lookup(parent, name), mknod: (path, mode, dev) => {\n var lookup = FS.lookupPath(path, { parent: true });\n var parent = lookup.node;\n var name = PATH.basename(path);\n if (!name || name === \".\" || name === \"..\") {\n throw new FS.ErrnoError(28);\n }\n var errCode = FS.mayCreate(parent, name);\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n if (!parent.node_ops.mknod) {\n throw new FS.ErrnoError(63);\n }\n return parent.node_ops.mknod(parent, name, mode, dev);\n }, create: (path, mode) => {\n mode = mode !== void 0 ? mode : 438;\n mode &= 4095;\n mode |= 32768;\n return FS.mknod(path, mode, 0);\n }, mkdir: (path, mode) => {\n mode = mode !== void 0 ? mode : 511;\n mode &= 511 | 512;\n mode |= 16384;\n return FS.mknod(path, mode, 0);\n }, mkdirTree: (path, mode) => {\n var dirs = path.split(\"/\");\n var d = \"\";\n for (var i = 0; i < dirs.length; ++i) {\n if (!dirs[i])\n continue;\n d += \"/\" + dirs[i];\n try {\n FS.mkdir(d, mode);\n } catch (e) {\n if (e.errno != 20)\n throw e;\n }\n }\n }, mkdev: (path, mode, dev) => {\n if (typeof dev == \"undefined\") {\n dev = mode;\n mode = 438;\n }\n mode |= 8192;\n return FS.mknod(path, mode, dev);\n }, symlink: (oldpath, newpath) => {\n if (!PATH_FS.resolve(oldpath)) {\n throw new FS.ErrnoError(44);\n }\n var lookup = FS.lookupPath(newpath, { parent: true });\n var parent = lookup.node;\n if (!parent) {\n throw new FS.ErrnoError(44);\n }\n var newname = PATH.basename(newpath);\n var errCode = FS.mayCreate(parent, newname);\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n if (!parent.node_ops.symlink) {\n throw new FS.ErrnoError(63);\n }\n return parent.node_ops.symlink(parent, newname, oldpath);\n }, rename: (old_path, new_path) => {\n var old_dirname = PATH.dirname(old_path);\n var new_dirname = PATH.dirname(new_path);\n var old_name = PATH.basename(old_path);\n var new_name = PATH.basename(new_path);\n var lookup, old_dir, new_dir;\n lookup = FS.lookupPath(old_path, { parent: true });\n old_dir = lookup.node;\n lookup = FS.lookupPath(new_path, { parent: true });\n new_dir = lookup.node;\n if (!old_dir || !new_dir)\n throw new FS.ErrnoError(44);\n if (old_dir.mount !== new_dir.mount) {\n throw new FS.ErrnoError(75);\n }\n var old_node = FS.lookupNode(old_dir, old_name);\n var relative = PATH_FS.relative(old_path, new_dirname);\n if (relative.charAt(0) !== \".\") {\n throw new FS.ErrnoError(28);\n }\n relative = PATH_FS.relative(new_path, old_dirname);\n if (relative.charAt(0) !== \".\") {\n throw new FS.ErrnoError(55);\n }\n var new_node;\n try {\n new_node = FS.lookupNode(new_dir, new_name);\n } catch (e) {\n }\n if (old_node === new_node) {\n return;\n }\n var isdir = FS.isDir(old_node.mode);\n var errCode = FS.mayDelete(old_dir, old_name, isdir);\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n errCode = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name);\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n if (!old_dir.node_ops.rename) {\n throw new FS.ErrnoError(63);\n }\n if (FS.isMountpoint(old_node) || new_node && FS.isMountpoint(new_node)) {\n throw new FS.ErrnoError(10);\n }\n if (new_dir !== old_dir) {\n errCode = FS.nodePermissions(old_dir, \"w\");\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n }\n FS.hashRemoveNode(old_node);\n try {\n old_dir.node_ops.rename(old_node, new_dir, new_name);\n } catch (e) {\n throw e;\n } finally {\n FS.hashAddNode(old_node);\n }\n }, rmdir: (path) => {\n var lookup = FS.lookupPath(path, { parent: true });\n var parent = lookup.node;\n var name = PATH.basename(path);\n var node = FS.lookupNode(parent, name);\n var errCode = FS.mayDelete(parent, name, true);\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n if (!parent.node_ops.rmdir) {\n throw new FS.ErrnoError(63);\n }\n if (FS.isMountpoint(node)) {\n throw new FS.ErrnoError(10);\n }\n parent.node_ops.rmdir(parent, name);\n FS.destroyNode(node);\n }, readdir: (path) => {\n var lookup = FS.lookupPath(path, { follow: true });\n var node = lookup.node;\n if (!node.node_ops.readdir) {\n throw new FS.ErrnoError(54);\n }\n return node.node_ops.readdir(node);\n }, unlink: (path) => {\n var lookup = FS.lookupPath(path, { parent: true });\n var parent = lookup.node;\n if (!parent) {\n throw new FS.ErrnoError(44);\n }\n var name = PATH.basename(path);\n var node = FS.lookupNode(parent, name);\n var errCode = FS.mayDelete(parent, name, false);\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n if (!parent.node_ops.unlink) {\n throw new FS.ErrnoError(63);\n }\n if (FS.isMountpoint(node)) {\n throw new FS.ErrnoError(10);\n }\n parent.node_ops.unlink(parent, name);\n FS.destroyNode(node);\n }, readlink: (path) => {\n var lookup = FS.lookupPath(path);\n var link = lookup.node;\n if (!link) {\n throw new FS.ErrnoError(44);\n }\n if (!link.node_ops.readlink) {\n throw new FS.ErrnoError(28);\n }\n return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link));\n }, stat: (path, dontFollow) => {\n var lookup = FS.lookupPath(path, { follow: !dontFollow });\n var node = lookup.node;\n if (!node) {\n throw new FS.ErrnoError(44);\n }\n if (!node.node_ops.getattr) {\n throw new FS.ErrnoError(63);\n }\n return node.node_ops.getattr(node);\n }, lstat: (path) => FS.stat(path, true), chmod: (path, mode, dontFollow) => {\n var node;\n if (typeof path == \"string\") {\n var lookup = FS.lookupPath(path, { follow: !dontFollow });\n node = lookup.node;\n } else {\n node = path;\n }\n if (!node.node_ops.setattr) {\n throw new FS.ErrnoError(63);\n }\n node.node_ops.setattr(node, { mode: mode & 4095 | node.mode & ~4095, timestamp: Date.now() });\n }, lchmod: (path, mode) => {\n FS.chmod(path, mode, true);\n }, fchmod: (fd, mode) => {\n var stream = FS.getStreamChecked(fd);\n FS.chmod(stream.node, mode);\n }, chown: (path, uid, gid, dontFollow) => {\n var node;\n if (typeof path == \"string\") {\n var lookup = FS.lookupPath(path, { follow: !dontFollow });\n node = lookup.node;\n } else {\n node = path;\n }\n if (!node.node_ops.setattr) {\n throw new FS.ErrnoError(63);\n }\n node.node_ops.setattr(node, { timestamp: Date.now() });\n }, lchown: (path, uid, gid) => {\n FS.chown(path, uid, gid, true);\n }, fchown: (fd, uid, gid) => {\n var stream = FS.getStreamChecked(fd);\n FS.chown(stream.node, uid, gid);\n }, truncate: (path, len) => {\n if (len < 0) {\n throw new FS.ErrnoError(28);\n }\n var node;\n if (typeof path == \"string\") {\n var lookup = FS.lookupPath(path, { follow: true });\n node = lookup.node;\n } else {\n node = path;\n }\n if (!node.node_ops.setattr) {\n throw new FS.ErrnoError(63);\n }\n if (FS.isDir(node.mode)) {\n throw new FS.ErrnoError(31);\n }\n if (!FS.isFile(node.mode)) {\n throw new FS.ErrnoError(28);\n }\n var errCode = FS.nodePermissions(node, \"w\");\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n node.node_ops.setattr(node, { size: len, timestamp: Date.now() });\n }, ftruncate: (fd, len) => {\n var stream = FS.getStreamChecked(fd);\n if ((stream.flags & 2097155) === 0) {\n throw new FS.ErrnoError(28);\n }\n FS.truncate(stream.node, len);\n }, utime: (path, atime, mtime) => {\n var lookup = FS.lookupPath(path, { follow: true });\n var node = lookup.node;\n node.node_ops.setattr(node, { timestamp: Math.max(atime, mtime) });\n }, open: (path, flags, mode) => {\n if (path === \"\") {\n throw new FS.ErrnoError(44);\n }\n flags = typeof flags == \"string\" ? FS_modeStringToFlags(flags) : flags;\n mode = typeof mode == \"undefined\" ? 438 : mode;\n if (flags & 64) {\n mode = mode & 4095 | 32768;\n } else {\n mode = 0;\n }\n var node;\n if (typeof path == \"object\") {\n node = path;\n } else {\n path = PATH.normalize(path);\n try {\n var lookup = FS.lookupPath(path, { follow: !(flags & 131072) });\n node = lookup.node;\n } catch (e) {\n }\n }\n var created = false;\n if (flags & 64) {\n if (node) {\n if (flags & 128) {\n throw new FS.ErrnoError(20);\n }\n } else {\n node = FS.mknod(path, mode, 0);\n created = true;\n }\n }\n if (!node) {\n throw new FS.ErrnoError(44);\n }\n if (FS.isChrdev(node.mode)) {\n flags &= ~512;\n }\n if (flags & 65536 && !FS.isDir(node.mode)) {\n throw new FS.ErrnoError(54);\n }\n if (!created) {\n var errCode = FS.mayOpen(node, flags);\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n }\n if (flags & 512 && !created) {\n FS.truncate(node, 0);\n }\n flags &= ~(128 | 512 | 131072);\n var stream = FS.createStream({ node, path: FS.getPath(node), flags, seekable: true, position: 0, stream_ops: node.stream_ops, ungotten: [], error: false });\n if (stream.stream_ops.open) {\n stream.stream_ops.open(stream);\n }\n if (Module[\"logReadFiles\"] && !(flags & 1)) {\n if (!FS.readFiles)\n FS.readFiles = {};\n if (!(path in FS.readFiles)) {\n FS.readFiles[path] = 1;\n }\n }\n return stream;\n }, close: (stream) => {\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(8);\n }\n if (stream.getdents)\n stream.getdents = null;\n try {\n if (stream.stream_ops.close) {\n stream.stream_ops.close(stream);\n }\n } catch (e) {\n throw e;\n } finally {\n FS.closeStream(stream.fd);\n }\n stream.fd = null;\n }, isClosed: (stream) => stream.fd === null, llseek: (stream, offset, whence) => {\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(8);\n }\n if (!stream.seekable || !stream.stream_ops.llseek) {\n throw new FS.ErrnoError(70);\n }\n if (whence != 0 && whence != 1 && whence != 2) {\n throw new FS.ErrnoError(28);\n }\n stream.position = stream.stream_ops.llseek(stream, offset, whence);\n stream.ungotten = [];\n return stream.position;\n }, read: (stream, buffer, offset, length, position) => {\n if (length < 0 || position < 0) {\n throw new FS.ErrnoError(28);\n }\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(8);\n }\n if ((stream.flags & 2097155) === 1) {\n throw new FS.ErrnoError(8);\n }\n if (FS.isDir(stream.node.mode)) {\n throw new FS.ErrnoError(31);\n }\n if (!stream.stream_ops.read) {\n throw new FS.ErrnoError(28);\n }\n var seeking = typeof position != \"undefined\";\n if (!seeking) {\n position = stream.position;\n } else if (!stream.seekable) {\n throw new FS.ErrnoError(70);\n }\n var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position);\n if (!seeking)\n stream.position += bytesRead;\n return bytesRead;\n }, write: (stream, buffer, offset, length, position, canOwn) => {\n if (length < 0 || position < 0) {\n throw new FS.ErrnoError(28);\n }\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(8);\n }\n if ((stream.flags & 2097155) === 0) {\n throw new FS.ErrnoError(8);\n }\n if (FS.isDir(stream.node.mode)) {\n throw new FS.ErrnoError(31);\n }\n if (!stream.stream_ops.write) {\n throw new FS.ErrnoError(28);\n }\n if (stream.seekable && stream.flags & 1024) {\n FS.llseek(stream, 0, 2);\n }\n var seeking = typeof position != \"undefined\";\n if (!seeking) {\n position = stream.position;\n } else if (!stream.seekable) {\n throw new FS.ErrnoError(70);\n }\n var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn);\n if (!seeking)\n stream.position += bytesWritten;\n return bytesWritten;\n }, allocate: (stream, offset, length) => {\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(8);\n }\n if (offset < 0 || length <= 0) {\n throw new FS.ErrnoError(28);\n }\n if ((stream.flags & 2097155) === 0) {\n throw new FS.ErrnoError(8);\n }\n if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) {\n throw new FS.ErrnoError(43);\n }\n if (!stream.stream_ops.allocate) {\n throw new FS.ErrnoError(138);\n }\n stream.stream_ops.allocate(stream, offset, length);\n }, mmap: (stream, length, position, prot, flags) => {\n if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) {\n throw new FS.ErrnoError(2);\n }\n if ((stream.flags & 2097155) === 1) {\n throw new FS.ErrnoError(2);\n }\n if (!stream.stream_ops.mmap) {\n throw new FS.ErrnoError(43);\n }\n return stream.stream_ops.mmap(stream, length, position, prot, flags);\n }, msync: (stream, buffer, offset, length, mmapFlags) => {\n if (!stream.stream_ops.msync) {\n return 0;\n }\n return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags);\n }, munmap: (stream) => 0, ioctl: (stream, cmd, arg) => {\n if (!stream.stream_ops.ioctl) {\n throw new FS.ErrnoError(59);\n }\n return stream.stream_ops.ioctl(stream, cmd, arg);\n }, readFile: (path, opts = {}) => {\n opts.flags = opts.flags || 0;\n opts.encoding = opts.encoding || \"binary\";\n if (opts.encoding !== \"utf8\" && opts.encoding !== \"binary\") {\n throw new Error(`Invalid encoding type \"${opts.encoding}\"`);\n }\n var ret;\n var stream = FS.open(path, opts.flags);\n var stat = FS.stat(path);\n var length = stat.size;\n var buf = new Uint8Array(length);\n FS.read(stream, buf, 0, length, 0);\n if (opts.encoding === \"utf8\") {\n ret = UTF8ArrayToString(buf, 0);\n } else if (opts.encoding === \"binary\") {\n ret = buf;\n }\n FS.close(stream);\n return ret;\n }, writeFile: (path, data, opts = {}) => {\n opts.flags = opts.flags || 577;\n var stream = FS.open(path, opts.flags, opts.mode);\n if (typeof data == \"string\") {\n var buf = new Uint8Array(lengthBytesUTF8(data) + 1);\n var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length);\n FS.write(stream, buf, 0, actualNumBytes, void 0, opts.canOwn);\n } else if (ArrayBuffer.isView(data)) {\n FS.write(stream, data, 0, data.byteLength, void 0, opts.canOwn);\n } else {\n throw new Error(\"Unsupported data type\");\n }\n FS.close(stream);\n }, cwd: () => FS.currentPath, chdir: (path) => {\n var lookup = FS.lookupPath(path, { follow: true });\n if (lookup.node === null) {\n throw new FS.ErrnoError(44);\n }\n if (!FS.isDir(lookup.node.mode)) {\n throw new FS.ErrnoError(54);\n }\n var errCode = FS.nodePermissions(lookup.node, \"x\");\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n FS.currentPath = lookup.path;\n }, createDefaultDirectories: () => {\n FS.mkdir(\"/tmp\");\n FS.mkdir(\"/home\");\n FS.mkdir(\"/home/web_user\");\n }, createDefaultDevices: () => {\n FS.mkdir(\"/dev\");\n FS.registerDevice(FS.makedev(1, 3), { read: () => 0, write: (stream, buffer, offset, length, pos) => length });\n FS.mkdev(\"/dev/null\", FS.makedev(1, 3));\n TTY.register(FS.makedev(5, 0), TTY.default_tty_ops);\n TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops);\n FS.mkdev(\"/dev/tty\", FS.makedev(5, 0));\n FS.mkdev(\"/dev/tty1\", FS.makedev(6, 0));\n var randomBuffer = new Uint8Array(1024), randomLeft = 0;\n var randomByte = () => {\n if (randomLeft === 0) {\n randomLeft = randomFill(randomBuffer).byteLength;\n }\n return randomBuffer[--randomLeft];\n };\n FS.createDevice(\"/dev\", \"random\", randomByte);\n FS.createDevice(\"/dev\", \"urandom\", randomByte);\n FS.mkdir(\"/dev/shm\");\n FS.mkdir(\"/dev/shm/tmp\");\n }, createSpecialDirectories: () => {\n FS.mkdir(\"/proc\");\n var proc_self = FS.mkdir(\"/proc/self\");\n FS.mkdir(\"/proc/self/fd\");\n FS.mount({ mount: () => {\n var node = FS.createNode(proc_self, \"fd\", 16384 | 511, 73);\n node.node_ops = { lookup: (parent, name) => {\n var fd = +name;\n var stream = FS.getStreamChecked(fd);\n var ret = { parent: null, mount: { mountpoint: \"fake\" }, node_ops: { readlink: () => stream.path } };\n ret.parent = ret;\n return ret;\n } };\n return node;\n } }, {}, \"/proc/self/fd\");\n }, createStandardStreams: () => {\n if (Module[\"stdin\"]) {\n FS.createDevice(\"/dev\", \"stdin\", Module[\"stdin\"]);\n } else {\n FS.symlink(\"/dev/tty\", \"/dev/stdin\");\n }\n if (Module[\"stdout\"]) {\n FS.createDevice(\"/dev\", \"stdout\", null, Module[\"stdout\"]);\n } else {\n FS.symlink(\"/dev/tty\", \"/dev/stdout\");\n }\n if (Module[\"stderr\"]) {\n FS.createDevice(\"/dev\", \"stderr\", null, Module[\"stderr\"]);\n } else {\n FS.symlink(\"/dev/tty1\", \"/dev/stderr\");\n }\n var stdin = FS.open(\"/dev/stdin\", 0);\n var stdout = FS.open(\"/dev/stdout\", 1);\n var stderr = FS.open(\"/dev/stderr\", 1);\n }, ensureErrnoError: () => {\n if (FS.ErrnoError)\n return;\n FS.ErrnoError = function ErrnoError(errno, node) {\n this.name = \"ErrnoError\";\n this.node = node;\n this.setErrno = function(errno2) {\n this.errno = errno2;\n };\n this.setErrno(errno);\n this.message = \"FS error\";\n };\n FS.ErrnoError.prototype = new Error();\n FS.ErrnoError.prototype.constructor = FS.ErrnoError;\n [44].forEach((code) => {\n FS.genericErrors[code] = new FS.ErrnoError(code);\n FS.genericErrors[code].stack = \"\";\n });\n }, staticInit: () => {\n FS.ensureErrnoError();\n FS.nameTable = new Array(4096);\n FS.mount(MEMFS, {}, \"/\");\n FS.createDefaultDirectories();\n FS.createDefaultDevices();\n FS.createSpecialDirectories();\n FS.filesystems = { \"MEMFS\": MEMFS };\n }, init: (input, output, error) => {\n FS.init.initialized = true;\n FS.ensureErrnoError();\n Module[\"stdin\"] = input || Module[\"stdin\"];\n Module[\"stdout\"] = output || Module[\"stdout\"];\n Module[\"stderr\"] = error || Module[\"stderr\"];\n FS.createStandardStreams();\n }, quit: () => {\n FS.init.initialized = false;\n for (var i = 0; i < FS.streams.length; i++) {\n var stream = FS.streams[i];\n if (!stream) {\n continue;\n }\n FS.close(stream);\n }\n }, findObject: (path, dontResolveLastLink) => {\n var ret = FS.analyzePath(path, dontResolveLastLink);\n if (!ret.exists) {\n return null;\n }\n return ret.object;\n }, analyzePath: (path, dontResolveLastLink) => {\n try {\n var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });\n path = lookup.path;\n } catch (e) {\n }\n var ret = { isRoot: false, exists: false, error: 0, name: null, path: null, object: null, parentExists: false, parentPath: null, parentObject: null };\n try {\n var lookup = FS.lookupPath(path, { parent: true });\n ret.parentExists = true;\n ret.parentPath = lookup.path;\n ret.parentObject = lookup.node;\n ret.name = PATH.basename(path);\n lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });\n ret.exists = true;\n ret.path = lookup.path;\n ret.object = lookup.node;\n ret.name = lookup.node.name;\n ret.isRoot = lookup.path === \"/\";\n } catch (e) {\n ret.error = e.errno;\n }\n return ret;\n }, createPath: (parent, path, canRead, canWrite) => {\n parent = typeof parent == \"string\" ? parent : FS.getPath(parent);\n var parts = path.split(\"/\").reverse();\n while (parts.length) {\n var part = parts.pop();\n if (!part)\n continue;\n var current = PATH.join2(parent, part);\n try {\n FS.mkdir(current);\n } catch (e) {\n }\n parent = current;\n }\n return current;\n }, createFile: (parent, name, properties, canRead, canWrite) => {\n var path = PATH.join2(typeof parent == \"string\" ? parent : FS.getPath(parent), name);\n var mode = FS_getMode(canRead, canWrite);\n return FS.create(path, mode);\n }, createDataFile: (parent, name, data, canRead, canWrite, canOwn) => {\n var path = name;\n if (parent) {\n parent = typeof parent == \"string\" ? parent : FS.getPath(parent);\n path = name ? PATH.join2(parent, name) : parent;\n }\n var mode = FS_getMode(canRead, canWrite);\n var node = FS.create(path, mode);\n if (data) {\n if (typeof data == \"string\") {\n var arr = new Array(data.length);\n for (var i = 0, len = data.length; i < len; ++i)\n arr[i] = data.charCodeAt(i);\n data = arr;\n }\n FS.chmod(node, mode | 146);\n var stream = FS.open(node, 577);\n FS.write(stream, data, 0, data.length, 0, canOwn);\n FS.close(stream);\n FS.chmod(node, mode);\n }\n return node;\n }, createDevice: (parent, name, input, output) => {\n var path = PATH.join2(typeof parent == \"string\" ? parent : FS.getPath(parent), name);\n var mode = FS_getMode(!!input, !!output);\n if (!FS.createDevice.major)\n FS.createDevice.major = 64;\n var dev = FS.makedev(FS.createDevice.major++, 0);\n FS.registerDevice(dev, { open: (stream) => {\n stream.seekable = false;\n }, close: (stream) => {\n if (output && output.buffer && output.buffer.length) {\n output(10);\n }\n }, read: (stream, buffer, offset, length, pos) => {\n var bytesRead = 0;\n for (var i = 0; i < length; i++) {\n var result;\n try {\n result = input();\n } catch (e) {\n throw new FS.ErrnoError(29);\n }\n if (result === void 0 && bytesRead === 0) {\n throw new FS.ErrnoError(6);\n }\n if (result === null || result === void 0)\n break;\n bytesRead++;\n buffer[offset + i] = result;\n }\n if (bytesRead) {\n stream.node.timestamp = Date.now();\n }\n return bytesRead;\n }, write: (stream, buffer, offset, length, pos) => {\n for (var i = 0; i < length; i++) {\n try {\n output(buffer[offset + i]);\n } catch (e) {\n throw new FS.ErrnoError(29);\n }\n }\n if (length) {\n stream.node.timestamp = Date.now();\n }\n return i;\n } });\n return FS.mkdev(path, mode, dev);\n }, forceLoadFile: (obj) => {\n if (obj.isDevice || obj.isFolder || obj.link || obj.contents)\n return true;\n if (typeof XMLHttpRequest != \"undefined\") {\n throw new Error(\"Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.\");\n } else if (read_) {\n try {\n obj.contents = intArrayFromString(read_(obj.url), true);\n obj.usedBytes = obj.contents.length;\n } catch (e) {\n throw new FS.ErrnoError(29);\n }\n } else {\n throw new Error(\"Cannot load without read() or XMLHttpRequest.\");\n }\n }, createLazyFile: (parent, name, url, canRead, canWrite) => {\n function LazyUint8Array() {\n this.lengthKnown = false;\n this.chunks = [];\n }\n LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) {\n if (idx > this.length - 1 || idx < 0) {\n return void 0;\n }\n var chunkOffset = idx % this.chunkSize;\n var chunkNum = idx / this.chunkSize | 0;\n return this.getter(chunkNum)[chunkOffset];\n };\n LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) {\n this.getter = getter;\n };\n LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() {\n var xhr = new XMLHttpRequest();\n xhr.open(\"HEAD\", url, false);\n xhr.send(null);\n if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304))\n throw new Error(\"Couldn't load \" + url + \". Status: \" + xhr.status);\n var datalength = Number(xhr.getResponseHeader(\"Content-length\"));\n var header;\n var hasByteServing = (header = xhr.getResponseHeader(\"Accept-Ranges\")) && header === \"bytes\";\n var usesGzip = (header = xhr.getResponseHeader(\"Content-Encoding\")) && header === \"gzip\";\n var chunkSize = 1024 * 1024;\n if (!hasByteServing)\n chunkSize = datalength;\n var doXHR = (from, to) => {\n if (from > to)\n throw new Error(\"invalid range (\" + from + \", \" + to + \") or no bytes requested!\");\n if (to > datalength - 1)\n throw new Error(\"only \" + datalength + \" bytes available! programmer error!\");\n var xhr2 = new XMLHttpRequest();\n xhr2.open(\"GET\", url, false);\n if (datalength !== chunkSize)\n xhr2.setRequestHeader(\"Range\", \"bytes=\" + from + \"-\" + to);\n xhr2.responseType = \"arraybuffer\";\n if (xhr2.overrideMimeType) {\n xhr2.overrideMimeType(\"text/plain; charset=x-user-defined\");\n }\n xhr2.send(null);\n if (!(xhr2.status >= 200 && xhr2.status < 300 || xhr2.status === 304))\n throw new Error(\"Couldn't load \" + url + \". Status: \" + xhr2.status);\n if (xhr2.response !== void 0) {\n return new Uint8Array(xhr2.response || []);\n }\n return intArrayFromString(xhr2.responseText || \"\", true);\n };\n var lazyArray2 = this;\n lazyArray2.setDataGetter((chunkNum) => {\n var start = chunkNum * chunkSize;\n var end = (chunkNum + 1) * chunkSize - 1;\n end = Math.min(end, datalength - 1);\n if (typeof lazyArray2.chunks[chunkNum] == \"undefined\") {\n lazyArray2.chunks[chunkNum] = doXHR(start, end);\n }\n if (typeof lazyArray2.chunks[chunkNum] == \"undefined\")\n throw new Error(\"doXHR failed!\");\n return lazyArray2.chunks[chunkNum];\n });\n if (usesGzip || !datalength) {\n chunkSize = datalength = 1;\n datalength = this.getter(0).length;\n chunkSize = datalength;\n out(\"LazyFiles on gzip forces download of the whole file when length is accessed\");\n }\n this._length = datalength;\n this._chunkSize = chunkSize;\n this.lengthKnown = true;\n };\n if (typeof XMLHttpRequest != \"undefined\") {\n if (!ENVIRONMENT_IS_WORKER)\n throw \"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";\n var lazyArray = new LazyUint8Array();\n Object.defineProperties(lazyArray, { length: { get: function() {\n if (!this.lengthKnown) {\n this.cacheLength();\n }\n return this._length;\n } }, chunkSize: { get: function() {\n if (!this.lengthKnown) {\n this.cacheLength();\n }\n return this._chunkSize;\n } } });\n var properties = { isDevice: false, contents: lazyArray };\n } else {\n var properties = { isDevice: false, url };\n }\n var node = FS.createFile(parent, name, properties, canRead, canWrite);\n if (properties.contents) {\n node.contents = properties.contents;\n } else if (properties.url) {\n node.contents = null;\n node.url = properties.url;\n }\n Object.defineProperties(node, { usedBytes: { get: function() {\n return this.contents.length;\n } } });\n var stream_ops = {};\n var keys = Object.keys(node.stream_ops);\n keys.forEach((key) => {\n var fn = node.stream_ops[key];\n stream_ops[key] = function forceLoadLazyFile() {\n FS.forceLoadFile(node);\n return fn.apply(null, arguments);\n };\n });\n function writeChunks(stream, buffer, offset, length, position) {\n var contents = stream.node.contents;\n if (position >= contents.length)\n return 0;\n var size = Math.min(contents.length - position, length);\n if (contents.slice) {\n for (var i = 0; i < size; i++) {\n buffer[offset + i] = contents[position + i];\n }\n } else {\n for (var i = 0; i < size; i++) {\n buffer[offset + i] = contents.get(position + i);\n }\n }\n return size;\n }\n stream_ops.read = (stream, buffer, offset, length, position) => {\n FS.forceLoadFile(node);\n return writeChunks(stream, buffer, offset, length, position);\n };\n stream_ops.mmap = (stream, length, position, prot, flags) => {\n FS.forceLoadFile(node);\n var ptr = mmapAlloc(length);\n if (!ptr) {\n throw new FS.ErrnoError(48);\n }\n writeChunks(stream, HEAP8, ptr, length, position);\n return { ptr, allocated: true };\n };\n node.stream_ops = stream_ops;\n return node;\n } };\n var SYSCALLS = { DEFAULT_POLLMASK: 5, calculateAt: function(dirfd, path, allowEmpty) {\n if (PATH.isAbs(path)) {\n return path;\n }\n var dir;\n if (dirfd === -100) {\n dir = FS.cwd();\n } else {\n var dirstream = SYSCALLS.getStreamFromFD(dirfd);\n dir = dirstream.path;\n }\n if (path.length == 0) {\n if (!allowEmpty) {\n throw new FS.ErrnoError(44);\n }\n return dir;\n }\n return PATH.join2(dir, path);\n }, doStat: function(func, path, buf) {\n try {\n var stat = func(path);\n } catch (e) {\n if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) {\n return -54;\n }\n throw e;\n }\n HEAP32[buf >>> 2] = stat.dev;\n HEAP32[buf + 4 >>> 2] = stat.mode;\n HEAPU32[buf + 8 >>> 2] = stat.nlink;\n HEAP32[buf + 12 >>> 2] = stat.uid;\n HEAP32[buf + 16 >>> 2] = stat.gid;\n HEAP32[buf + 20 >>> 2] = stat.rdev;\n tempI64 = [stat.size >>> 0, (tempDouble = stat.size, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 24 >>> 2] = tempI64[0], HEAP32[buf + 28 >>> 2] = tempI64[1];\n HEAP32[buf + 32 >>> 2] = 4096;\n HEAP32[buf + 36 >>> 2] = stat.blocks;\n var atime = stat.atime.getTime();\n var mtime = stat.mtime.getTime();\n var ctime = stat.ctime.getTime();\n tempI64 = [Math.floor(atime / 1e3) >>> 0, (tempDouble = Math.floor(atime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 40 >>> 2] = tempI64[0], HEAP32[buf + 44 >>> 2] = tempI64[1];\n HEAPU32[buf + 48 >>> 2] = atime % 1e3 * 1e3;\n tempI64 = [Math.floor(mtime / 1e3) >>> 0, (tempDouble = Math.floor(mtime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 56 >>> 2] = tempI64[0], HEAP32[buf + 60 >>> 2] = tempI64[1];\n HEAPU32[buf + 64 >>> 2] = mtime % 1e3 * 1e3;\n tempI64 = [Math.floor(ctime / 1e3) >>> 0, (tempDouble = Math.floor(ctime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 72 >>> 2] = tempI64[0], HEAP32[buf + 76 >>> 2] = tempI64[1];\n HEAPU32[buf + 80 >>> 2] = ctime % 1e3 * 1e3;\n tempI64 = [stat.ino >>> 0, (tempDouble = stat.ino, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 88 >>> 2] = tempI64[0], HEAP32[buf + 92 >>> 2] = tempI64[1];\n return 0;\n }, doMsync: function(addr, stream, len, flags, offset) {\n if (!FS.isFile(stream.node.mode)) {\n throw new FS.ErrnoError(43);\n }\n if (flags & 2) {\n return 0;\n }\n var buffer = HEAPU8.slice(addr, addr + len);\n FS.msync(stream, buffer, offset, len, flags);\n }, varargs: void 0, get() {\n SYSCALLS.varargs += 4;\n var ret = HEAP32[SYSCALLS.varargs - 4 >>> 2];\n return ret;\n }, getStr(ptr) {\n var ret = UTF8ToString(ptr);\n return ret;\n }, getStreamFromFD: function(fd) {\n var stream = FS.getStreamChecked(fd);\n return stream;\n } };\n function _environ_get(__environ, environ_buf) {\n __environ >>>= 0;\n environ_buf >>>= 0;\n var bufSize = 0;\n getEnvStrings().forEach(function(string, i) {\n var ptr = environ_buf + bufSize;\n HEAPU32[__environ + i * 4 >>> 2] = ptr;\n stringToAscii(string, ptr);\n bufSize += string.length + 1;\n });\n return 0;\n }\n function _environ_sizes_get(penviron_count, penviron_buf_size) {\n penviron_count >>>= 0;\n penviron_buf_size >>>= 0;\n var strings = getEnvStrings();\n HEAPU32[penviron_count >>> 2] = strings.length;\n var bufSize = 0;\n strings.forEach(function(string) {\n bufSize += string.length + 1;\n });\n HEAPU32[penviron_buf_size >>> 2] = bufSize;\n return 0;\n }\n function _fd_close(fd) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n FS.close(stream);\n return 0;\n } catch (e) {\n if (typeof FS == \"undefined\" || !(e.name === \"ErrnoError\"))\n throw e;\n return e.errno;\n }\n }\n function _fd_fdstat_get(fd, pbuf) {\n pbuf >>>= 0;\n try {\n var rightsBase = 0;\n var rightsInheriting = 0;\n var flags = 0;\n {\n var stream = SYSCALLS.getStreamFromFD(fd);\n var type = stream.tty ? 2 : FS.isDir(stream.mode) ? 3 : FS.isLink(stream.mode) ? 7 : 4;\n }\n HEAP8[pbuf >>> 0] = type;\n HEAP16[pbuf + 2 >>> 1] = flags;\n tempI64 = [rightsBase >>> 0, (tempDouble = rightsBase, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[pbuf + 8 >>> 2] = tempI64[0], HEAP32[pbuf + 12 >>> 2] = tempI64[1];\n tempI64 = [rightsInheriting >>> 0, (tempDouble = rightsInheriting, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[pbuf + 16 >>> 2] = tempI64[0], HEAP32[pbuf + 20 >>> 2] = tempI64[1];\n return 0;\n } catch (e) {\n if (typeof FS == \"undefined\" || !(e.name === \"ErrnoError\"))\n throw e;\n return e.errno;\n }\n }\n var doReadv = (stream, iov, iovcnt, offset) => {\n var ret = 0;\n for (var i = 0; i < iovcnt; i++) {\n var ptr = HEAPU32[iov >>> 2];\n var len = HEAPU32[iov + 4 >>> 2];\n iov += 8;\n var curr = FS.read(stream, HEAP8, ptr, len, offset);\n if (curr < 0)\n return -1;\n ret += curr;\n if (curr < len)\n break;\n if (typeof offset !== \"undefined\") {\n offset += curr;\n }\n }\n return ret;\n };\n function _fd_read(fd, iov, iovcnt, pnum) {\n iov >>>= 0;\n iovcnt >>>= 0;\n pnum >>>= 0;\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n var num = doReadv(stream, iov, iovcnt);\n HEAPU32[pnum >>> 2] = num;\n return 0;\n } catch (e) {\n if (typeof FS == \"undefined\" || !(e.name === \"ErrnoError\"))\n throw e;\n return e.errno;\n }\n }\n function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {\n var offset = convertI32PairToI53Checked(offset_low, offset_high);\n newOffset >>>= 0;\n try {\n if (isNaN(offset))\n return 61;\n var stream = SYSCALLS.getStreamFromFD(fd);\n FS.llseek(stream, offset, whence);\n tempI64 = [stream.position >>> 0, (tempDouble = stream.position, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[newOffset >>> 2] = tempI64[0], HEAP32[newOffset + 4 >>> 2] = tempI64[1];\n if (stream.getdents && offset === 0 && whence === 0)\n stream.getdents = null;\n return 0;\n } catch (e) {\n if (typeof FS == \"undefined\" || !(e.name === \"ErrnoError\"))\n throw e;\n return e.errno;\n }\n }\n var doWritev = (stream, iov, iovcnt, offset) => {\n var ret = 0;\n for (var i = 0; i < iovcnt; i++) {\n var ptr = HEAPU32[iov >>> 2];\n var len = HEAPU32[iov + 4 >>> 2];\n iov += 8;\n var curr = FS.write(stream, HEAP8, ptr, len, offset);\n if (curr < 0)\n return -1;\n ret += curr;\n if (typeof offset !== \"undefined\") {\n offset += curr;\n }\n }\n return ret;\n };\n function _fd_write(fd, iov, iovcnt, pnum) {\n iov >>>= 0;\n iovcnt >>>= 0;\n pnum >>>= 0;\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n var num = doWritev(stream, iov, iovcnt);\n HEAPU32[pnum >>> 2] = num;\n return 0;\n } catch (e) {\n if (typeof FS == \"undefined\" || !(e.name === \"ErrnoError\"))\n throw e;\n return e.errno;\n }\n }\n var arraySum = (array, index) => {\n var sum = 0;\n for (var i = 0; i <= index; sum += array[i++]) {\n }\n return sum;\n };\n var MONTH_DAYS_LEAP = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n var MONTH_DAYS_REGULAR = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n var addDays = (date, days) => {\n var newDate = new Date(date.getTime());\n while (days > 0) {\n var leap = isLeapYear(newDate.getFullYear());\n var currentMonth = newDate.getMonth();\n var daysInCurrentMonth = (leap ? MONTH_DAYS_LEAP : MONTH_DAYS_REGULAR)[currentMonth];\n if (days > daysInCurrentMonth - newDate.getDate()) {\n days -= daysInCurrentMonth - newDate.getDate() + 1;\n newDate.setDate(1);\n if (currentMonth < 11) {\n newDate.setMonth(currentMonth + 1);\n } else {\n newDate.setMonth(0);\n newDate.setFullYear(newDate.getFullYear() + 1);\n }\n } else {\n newDate.setDate(newDate.getDate() + days);\n return newDate;\n }\n }\n return newDate;\n };\n var writeArrayToMemory = (array, buffer) => {\n HEAP8.set(array, buffer >>> 0);\n };\n function _strftime(s, maxsize, format, tm) {\n s >>>= 0;\n maxsize >>>= 0;\n format >>>= 0;\n tm >>>= 0;\n var tm_zone = HEAP32[tm + 40 >>> 2];\n var date = { tm_sec: HEAP32[tm >>> 2], tm_min: HEAP32[tm + 4 >>> 2], tm_hour: HEAP32[tm + 8 >>> 2], tm_mday: HEAP32[tm + 12 >>> 2], tm_mon: HEAP32[tm + 16 >>> 2], tm_year: HEAP32[tm + 20 >>> 2], tm_wday: HEAP32[tm + 24 >>> 2], tm_yday: HEAP32[tm + 28 >>> 2], tm_isdst: HEAP32[tm + 32 >>> 2], tm_gmtoff: HEAP32[tm + 36 >>> 2], tm_zone: tm_zone ? UTF8ToString(tm_zone) : \"\" };\n var pattern = UTF8ToString(format);\n var EXPANSION_RULES_1 = { \"%c\": \"%a %b %d %H:%M:%S %Y\", \"%D\": \"%m/%d/%y\", \"%F\": \"%Y-%m-%d\", \"%h\": \"%b\", \"%r\": \"%I:%M:%S %p\", \"%R\": \"%H:%M\", \"%T\": \"%H:%M:%S\", \"%x\": \"%m/%d/%y\", \"%X\": \"%H:%M:%S\", \"%Ec\": \"%c\", \"%EC\": \"%C\", \"%Ex\": \"%m/%d/%y\", \"%EX\": \"%H:%M:%S\", \"%Ey\": \"%y\", \"%EY\": \"%Y\", \"%Od\": \"%d\", \"%Oe\": \"%e\", \"%OH\": \"%H\", \"%OI\": \"%I\", \"%Om\": \"%m\", \"%OM\": \"%M\", \"%OS\": \"%S\", \"%Ou\": \"%u\", \"%OU\": \"%U\", \"%OV\": \"%V\", \"%Ow\": \"%w\", \"%OW\": \"%W\", \"%Oy\": \"%y\" };\n for (var rule in EXPANSION_RULES_1) {\n pattern = pattern.replace(new RegExp(rule, \"g\"), EXPANSION_RULES_1[rule]);\n }\n var WEEKDAYS = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\n var MONTHS = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\n function leadingSomething(value, digits, character) {\n var str = typeof value == \"number\" ? value.toString() : value || \"\";\n while (str.length < digits) {\n str = character[0] + str;\n }\n return str;\n }\n function leadingNulls(value, digits) {\n return leadingSomething(value, digits, \"0\");\n }\n function compareByDay(date1, date2) {\n function sgn(value) {\n return value < 0 ? -1 : value > 0 ? 1 : 0;\n }\n var compare;\n if ((compare = sgn(date1.getFullYear() - date2.getFullYear())) === 0) {\n if ((compare = sgn(date1.getMonth() - date2.getMonth())) === 0) {\n compare = sgn(date1.getDate() - date2.getDate());\n }\n }\n return compare;\n }\n function getFirstWeekStartDate(janFourth) {\n switch (janFourth.getDay()) {\n case 0:\n return new Date(janFourth.getFullYear() - 1, 11, 29);\n case 1:\n return janFourth;\n case 2:\n return new Date(janFourth.getFullYear(), 0, 3);\n case 3:\n return new Date(janFourth.getFullYear(), 0, 2);\n case 4:\n return new Date(janFourth.getFullYear(), 0, 1);\n case 5:\n return new Date(janFourth.getFullYear() - 1, 11, 31);\n case 6:\n return new Date(janFourth.getFullYear() - 1, 11, 30);\n }\n }\n function getWeekBasedYear(date2) {\n var thisDate = addDays(new Date(date2.tm_year + 1900, 0, 1), date2.tm_yday);\n var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4);\n var janFourthNextYear = new Date(thisDate.getFullYear() + 1, 0, 4);\n var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear);\n var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear);\n if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) {\n if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) {\n return thisDate.getFullYear() + 1;\n }\n return thisDate.getFullYear();\n }\n return thisDate.getFullYear() - 1;\n }\n var EXPANSION_RULES_2 = { \"%a\": (date2) => WEEKDAYS[date2.tm_wday].substring(0, 3), \"%A\": (date2) => WEEKDAYS[date2.tm_wday], \"%b\": (date2) => MONTHS[date2.tm_mon].substring(0, 3), \"%B\": (date2) => MONTHS[date2.tm_mon], \"%C\": (date2) => {\n var year = date2.tm_year + 1900;\n return leadingNulls(year / 100 | 0, 2);\n }, \"%d\": (date2) => leadingNulls(date2.tm_mday, 2), \"%e\": (date2) => leadingSomething(date2.tm_mday, 2, \" \"), \"%g\": (date2) => getWeekBasedYear(date2).toString().substring(2), \"%G\": (date2) => getWeekBasedYear(date2), \"%H\": (date2) => leadingNulls(date2.tm_hour, 2), \"%I\": (date2) => {\n var twelveHour = date2.tm_hour;\n if (twelveHour == 0)\n twelveHour = 12;\n else if (twelveHour > 12)\n twelveHour -= 12;\n return leadingNulls(twelveHour, 2);\n }, \"%j\": (date2) => leadingNulls(date2.tm_mday + arraySum(isLeapYear(date2.tm_year + 1900) ? MONTH_DAYS_LEAP : MONTH_DAYS_REGULAR, date2.tm_mon - 1), 3), \"%m\": (date2) => leadingNulls(date2.tm_mon + 1, 2), \"%M\": (date2) => leadingNulls(date2.tm_min, 2), \"%n\": () => \"\\n\", \"%p\": (date2) => {\n if (date2.tm_hour >= 0 && date2.tm_hour < 12) {\n return \"AM\";\n }\n return \"PM\";\n }, \"%S\": (date2) => leadingNulls(date2.tm_sec, 2), \"%t\": () => \"\t\", \"%u\": (date2) => date2.tm_wday || 7, \"%U\": (date2) => {\n var days = date2.tm_yday + 7 - date2.tm_wday;\n return leadingNulls(Math.floor(days / 7), 2);\n }, \"%V\": (date2) => {\n var val = Math.floor((date2.tm_yday + 7 - (date2.tm_wday + 6) % 7) / 7);\n if ((date2.tm_wday + 371 - date2.tm_yday - 2) % 7 <= 2) {\n val++;\n }\n if (!val) {\n val = 52;\n var dec31 = (date2.tm_wday + 7 - date2.tm_yday - 1) % 7;\n if (dec31 == 4 || dec31 == 5 && isLeapYear(date2.tm_year % 400 - 1)) {\n val++;\n }\n } else if (val == 53) {\n var jan1 = (date2.tm_wday + 371 - date2.tm_yday) % 7;\n if (jan1 != 4 && (jan1 != 3 || !isLeapYear(date2.tm_year)))\n val = 1;\n }\n return leadingNulls(val, 2);\n }, \"%w\": (date2) => date2.tm_wday, \"%W\": (date2) => {\n var days = date2.tm_yday + 7 - (date2.tm_wday + 6) % 7;\n return leadingNulls(Math.floor(days / 7), 2);\n }, \"%y\": (date2) => (date2.tm_year + 1900).toString().substring(2), \"%Y\": (date2) => date2.tm_year + 1900, \"%z\": (date2) => {\n var off = date2.tm_gmtoff;\n var ahead = off >= 0;\n off = Math.abs(off) / 60;\n off = off / 60 * 100 + off % 60;\n return (ahead ? \"+\" : \"-\") + String(\"0000\" + off).slice(-4);\n }, \"%Z\": (date2) => date2.tm_zone, \"%%\": () => \"%\" };\n pattern = pattern.replace(/%%/g, \"\\0\\0\");\n for (var rule in EXPANSION_RULES_2) {\n if (pattern.includes(rule)) {\n pattern = pattern.replace(new RegExp(rule, \"g\"), EXPANSION_RULES_2[rule](date));\n }\n }\n pattern = pattern.replace(/\\0\\0/g, \"%\");\n var bytes = intArrayFromString(pattern, false);\n if (bytes.length > maxsize) {\n return 0;\n }\n writeArrayToMemory(bytes, s);\n return bytes.length - 1;\n }\n function _strftime_l(s, maxsize, format, tm, loc) {\n s >>>= 0;\n maxsize >>>= 0;\n format >>>= 0;\n tm >>>= 0;\n loc >>>= 0;\n return _strftime(s, maxsize, format, tm);\n }\n InternalError = Module[\"InternalError\"] = class InternalError extends Error {\n constructor(message) {\n super(message);\n this.name = \"InternalError\";\n }\n };\n embind_init_charCodes();\n BindingError = Module[\"BindingError\"] = class BindingError extends Error {\n constructor(message) {\n super(message);\n this.name = \"BindingError\";\n }\n };\n init_ClassHandle();\n init_embind();\n init_RegisteredPointer();\n UnboundTypeError = Module[\"UnboundTypeError\"] = extendError(Error, \"UnboundTypeError\");\n handleAllocatorInit();\n init_emval();\n var FSNode = function(parent, name, mode, rdev) {\n if (!parent) {\n parent = this;\n }\n this.parent = parent;\n this.mount = parent.mount;\n this.mounted = null;\n this.id = FS.nextInode++;\n this.name = name;\n this.mode = mode;\n this.node_ops = {};\n this.stream_ops = {};\n this.rdev = rdev;\n };\n var readMode = 292 | 73;\n var writeMode = 146;\n Object.defineProperties(FSNode.prototype, { read: { get: function() {\n return (this.mode & readMode) === readMode;\n }, set: function(val) {\n val ? this.mode |= readMode : this.mode &= ~readMode;\n } }, write: { get: function() {\n return (this.mode & writeMode) === writeMode;\n }, set: function(val) {\n val ? this.mode |= writeMode : this.mode &= ~writeMode;\n } }, isFolder: { get: function() {\n return FS.isDir(this.mode);\n } }, isDevice: { get: function() {\n return FS.isChrdev(this.mode);\n } } });\n FS.FSNode = FSNode;\n FS.createPreloadedFile = FS_createPreloadedFile;\n FS.staticInit();\n var wasmImports = { f: ___cxa_throw, W: __embind_finalize_value_array, q: __embind_finalize_value_object, G: __embind_register_bigint, U: __embind_register_bool, p: __embind_register_class, o: __embind_register_class_constructor, b: __embind_register_class_function, T: __embind_register_emval, z: __embind_register_float, c: __embind_register_function, s: __embind_register_integer, k: __embind_register_memory_view, A: __embind_register_std_string, w: __embind_register_std_wstring, X: __embind_register_value_array, l: __embind_register_value_array_element, r: __embind_register_value_object, e: __embind_register_value_object_field, V: __embind_register_void, N: __emscripten_get_now_is_monotonic, j: __emval_as, v: __emval_call, a: __emval_decref, y: __emval_get_global, h: __emval_get_property, n: __emval_incref, C: __emval_instanceof, x: __emval_is_number, B: __emval_is_string, Y: __emval_new_array, g: __emval_new_cstring, t: __emval_new_object, i: __emval_run_destructors, m: __emval_set_property, d: __emval_take_value, E: __gmtime_js, F: __localtime_js, L: __tzset_js, u: _abort, O: _emscripten_date_now, S: _emscripten_memcpy_big, K: _emscripten_resize_heap, Q: _environ_get, R: _environ_sizes_get, I: _fd_close, P: _fd_fdstat_get, J: _fd_read, D: _fd_seek, M: _fd_write, H: _strftime_l };\n var asm = createWasm();\n var ___wasm_call_ctors = () => (___wasm_call_ctors = wasmExports[\"_\"])();\n var _malloc = (a0) => (_malloc = wasmExports[\"aa\"])(a0);\n var ___getTypeName = (a0) => (___getTypeName = wasmExports[\"ba\"])(a0);\n var __embind_initialize_bindings = Module[\"__embind_initialize_bindings\"] = () => (__embind_initialize_bindings = Module[\"__embind_initialize_bindings\"] = wasmExports[\"ca\"])();\n var ___errno_location = () => (___errno_location = wasmExports[\"__errno_location\"])();\n var _free = (a0) => (_free = wasmExports[\"da\"])(a0);\n var ___cxa_increment_exception_refcount = (a0) => (___cxa_increment_exception_refcount = wasmExports[\"__cxa_increment_exception_refcount\"])(a0);\n var ___cxa_is_pointer_type = (a0) => (___cxa_is_pointer_type = wasmExports[\"ea\"])(a0);\n var dynCall_jiji = Module[\"dynCall_jiji\"] = (a0, a1, a2, a3, a4) => (dynCall_jiji = Module[\"dynCall_jiji\"] = wasmExports[\"fa\"])(a0, a1, a2, a3, a4);\n var dynCall_viijii = Module[\"dynCall_viijii\"] = (a0, a1, a2, a3, a4, a5, a6) => (dynCall_viijii = Module[\"dynCall_viijii\"] = wasmExports[\"ga\"])(a0, a1, a2, a3, a4, a5, a6);\n var dynCall_iiiiij = Module[\"dynCall_iiiiij\"] = (a0, a1, a2, a3, a4, a5, a6) => (dynCall_iiiiij = Module[\"dynCall_iiiiij\"] = wasmExports[\"ha\"])(a0, a1, a2, a3, a4, a5, a6);\n var dynCall_iiiiijj = Module[\"dynCall_iiiiijj\"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8) => (dynCall_iiiiijj = Module[\"dynCall_iiiiijj\"] = wasmExports[\"ia\"])(a0, a1, a2, a3, a4, a5, a6, a7, a8);\n var dynCall_iiiiiijj = Module[\"dynCall_iiiiiijj\"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) => (dynCall_iiiiiijj = Module[\"dynCall_iiiiiijj\"] = wasmExports[\"ja\"])(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);\n function applySignatureConversions(exports2) {\n exports2 = Object.assign({}, exports2);\n var makeWrapper_pp = (f) => (a0) => f(a0) >>> 0;\n var makeWrapper_p = (f) => () => f() >>> 0;\n exports2[\"malloc\"] = makeWrapper_pp(exports2[\"malloc\"]);\n exports2[\"__getTypeName\"] = makeWrapper_pp(exports2[\"__getTypeName\"]);\n exports2[\"__errno_location\"] = makeWrapper_p(exports2[\"__errno_location\"]);\n exports2[\"stackSave\"] = makeWrapper_p(exports2[\"stackSave\"]);\n exports2[\"stackAlloc\"] = makeWrapper_pp(exports2[\"stackAlloc\"]);\n return exports2;\n }\n var calledRun;\n dependenciesFulfilled = function runCaller() {\n if (!calledRun)\n run();\n if (!calledRun)\n dependenciesFulfilled = runCaller;\n };\n function run() {\n if (runDependencies > 0) {\n return;\n }\n preRun();\n if (runDependencies > 0) {\n return;\n }\n function doRun() {\n if (calledRun)\n return;\n calledRun = true;\n Module[\"calledRun\"] = true;\n if (ABORT)\n return;\n initRuntime();\n readyPromiseResolve(Module);\n if (Module[\"onRuntimeInitialized\"])\n Module[\"onRuntimeInitialized\"]();\n postRun();\n }\n if (Module[\"setStatus\"]) {\n Module[\"setStatus\"](\"Running...\");\n setTimeout(function() {\n setTimeout(function() {\n Module[\"setStatus\"](\"\");\n }, 1);\n doRun();\n }, 1);\n } else {\n doRun();\n }\n }\n if (Module[\"preInit\"]) {\n if (typeof Module[\"preInit\"] == \"function\")\n Module[\"preInit\"] = [Module[\"preInit\"]];\n while (Module[\"preInit\"].length > 0) {\n Module[\"preInit\"].pop()();\n }\n }\n run();\n return moduleArg.ready;\n };\n })();\n if (typeof exports === \"object\" && typeof module === \"object\")\n module.exports = WebIFCWasm2;\n else if (typeof define === \"function\" && define[\"amd\"])\n define([], () => WebIFCWasm2);\n }\n});\n\n// dist/ifc-schema.ts\nvar IFCURIREFERENCE = 950732822;\nvar IFCTIME = 4075327185;\nvar IFCTEMPERATURERATEOFCHANGEMEASURE = 1209108979;\nvar IFCSOUNDPRESSURELEVELMEASURE = 3457685358;\nvar IFCSOUNDPOWERLEVELMEASURE = 4157543285;\nvar IFCPROPERTYSETDEFINITIONSET = 2798247006;\nvar IFCPOSITIVEINTEGER = 1790229001;\nvar IFCNONNEGATIVELENGTHMEASURE = 525895558;\nvar IFCLINEINDEX = 1774176899;\nvar IFCLANGUAGEID = 1275358634;\nvar IFCDURATION = 2541165894;\nvar IFCDAYINWEEKNUMBER = 3701338814;\nvar IFCDATETIME = 2195413836;\nvar IFCDATE = 937566702;\nvar IFCCARDINALPOINTREFERENCE = 1683019596;\nvar IFCBINARY = 2314439260;\nvar IFCAREADENSITYMEASURE = 1500781891;\nvar IFCARCINDEX = 3683503648;\nvar IFCYEARNUMBER = 4065007721;\nvar IFCWARPINGMOMENTMEASURE = 1718600412;\nvar IFCWARPINGCONSTANTMEASURE = 51269191;\nvar IFCVOLUMETRICFLOWRATEMEASURE = 2593997549;\nvar IFCVOLUMEMEASURE = 3458127941;\nvar IFCVAPORPERMEABILITYMEASURE = 3345633955;\nvar IFCTORQUEMEASURE = 1278329552;\nvar IFCTIMESTAMP = 2591213694;\nvar IFCTIMEMEASURE = 2726807636;\nvar IFCTHERMODYNAMICTEMPERATUREMEASURE = 743184107;\nvar IFCTHERMALTRANSMITTANCEMEASURE = 2016195849;\nvar IFCTHERMALRESISTANCEMEASURE = 857959152;\nvar IFCTHERMALEXPANSIONCOEFFICIENTMEASURE = 2281867870;\nvar IFCTHERMALCONDUCTIVITYMEASURE = 2645777649;\nvar IFCTHERMALADMITTANCEMEASURE = 232962298;\nvar IFCTEXTTRANSFORMATION = 296282323;\nvar IFCTEXTFONTNAME = 603696268;\nvar IFCTEXTDECORATION = 3490877962;\nvar IFCTEXTALIGNMENT = 1460886941;\nvar IFCTEXT = 2801250643;\nvar IFCTEMPERATUREGRADIENTMEASURE = 58845555;\nvar IFCSPECULARROUGHNESS = 361837227;\nvar IFCSPECULAREXPONENT = 2757832317;\nvar IFCSPECIFICHEATCAPACITYMEASURE = 3477203348;\nvar IFCSOUNDPRESSUREMEASURE = 993287707;\nvar IFCSOUNDPOWERMEASURE = 846465480;\nvar IFCSOLIDANGLEMEASURE = 3471399674;\nvar IFCSHEARMODULUSMEASURE = 408310005;\nvar IFCSECTIONALAREAINTEGRALMEASURE = 2190458107;\nvar IFCSECTIONMODULUSMEASURE = 3467162246;\nvar IFCSECONDINMINUTE = 2766185779;\nvar IFCROTATIONALSTIFFNESSMEASURE = 3211557302;\nvar IFCROTATIONALMASSMEASURE = 1755127002;\nvar IFCROTATIONALFREQUENCYMEASURE = 2133746277;\nvar IFCREAL = 200335297;\nvar IFCRATIOMEASURE = 96294661;\nvar IFCRADIOACTIVITYMEASURE = 3972513137;\nvar IFCPRESSUREMEASURE = 3665567075;\nvar IFCPRESENTABLETEXT = 2169031380;\nvar IFCPOWERMEASURE = 1364037233;\nvar IFCPOSITIVERATIOMEASURE = 1245737093;\nvar IFCPOSITIVEPLANEANGLEMEASURE = 3054510233;\nvar IFCPOSITIVELENGTHMEASURE = 2815919920;\nvar IFCPLANEANGLEMEASURE = 4042175685;\nvar IFCPLANARFORCEMEASURE = 2642773653;\nvar IFCPARAMETERVALUE = 2260317790;\nvar IFCPHMEASURE = 929793134;\nvar IFCNUMERICMEASURE = 2395907400;\nvar IFCNORMALISEDRATIOMEASURE = 2095195183;\nvar IFCMONTHINYEARNUMBER = 765770214;\nvar IFCMONETARYMEASURE = 2615040989;\nvar IFCMOMENTOFINERTIAMEASURE = 3114022597;\nvar IFCMOLECULARWEIGHTMEASURE = 1648970520;\nvar IFCMOISTUREDIFFUSIVITYMEASURE = 3177669450;\nvar IFCMODULUSOFSUBGRADEREACTIONMEASURE = 1753493141;\nvar IFCMODULUSOFROTATIONALSUBGRADEREACTIONMEASURE = 1052454078;\nvar IFCMODULUSOFLINEARSUBGRADEREACTIONMEASURE = 2173214787;\nvar IFCMODULUSOFELASTICITYMEASURE = 3341486342;\nvar IFCMINUTEINHOUR = 102610177;\nvar IFCMASSPERLENGTHMEASURE = 3531705166;\nvar IFCMASSMEASURE = 3124614049;\nvar IFCMASSFLOWRATEMEASURE = 4017473158;\nvar IFCMASSDENSITYMEASURE = 1477762836;\nvar IFCMAGNETICFLUXMEASURE = 2486716878;\nvar IFCMAGNETICFLUXDENSITYMEASURE = 286949696;\nvar IFCLUMINOUSINTENSITYMEASURE = 151039812;\nvar IFCLUMINOUSINTENSITYDISTRIBUTIONMEASURE = 2755797622;\nvar IFCLUMINOUSFLUXMEASURE = 2095003142;\nvar IFCLOGICAL = 503418787;\nvar IFCLINEARVELOCITYMEASURE = 3086160713;\nvar IFCLINEARSTIFFNESSMEASURE = 1307019551;\nvar IFCLINEARMOMENTMEASURE = 2128979029;\nvar IFCLINEARFORCEMEASURE = 191860431;\nvar IFCLENGTHMEASURE = 1243674935;\nvar IFCLABEL = 3258342251;\nvar IFCKINEMATICVISCOSITYMEASURE = 2054016361;\nvar IFCISOTHERMALMOISTURECAPACITYMEASURE = 3192672207;\nvar IFCIONCONCENTRATIONMEASURE = 3686016028;\nvar IFCINTEGERCOUNTRATEMEASURE = 3809634241;\nvar IFCINTEGER = 1939436016;\nvar IFCINDUCTANCEMEASURE = 2679005408;\nvar IFCILLUMINANCEMEASURE = 3358199106;\nvar IFCIDENTIFIER = 983778844;\nvar IFCHOURINDAY = 2589826445;\nvar IFCHEATINGVALUEMEASURE = 1158859006;\nvar IFCHEATFLUXDENSITYMEASURE = 3113092358;\nvar IFCGLOBALLYUNIQUEID = 3064340077;\nvar IFCFREQUENCYMEASURE = 3044325142;\nvar IFCFORCEMEASURE = 1361398929;\nvar IFCFONTWEIGHT = 2590844177;\nvar IFCFONTVARIANT = 2715512545;\nvar IFCFONTSTYLE = 1102727119;\nvar IFCENERGYMEASURE = 2078135608;\nvar IFCELECTRICVOLTAGEMEASURE = 2506197118;\nvar IFCELECTRICRESISTANCEMEASURE = 2951915441;\nvar IFCELECTRICCURRENTMEASURE = 3790457270;\nvar IFCELECTRICCONDUCTANCEMEASURE = 2093906313;\nvar IFCELECTRICCHARGEMEASURE = 3818826038;\nvar IFCELECTRICCAPACITANCEMEASURE = 1827137117;\nvar IFCDYNAMICVISCOSITYMEASURE = 69416015;\nvar IFCDOSEEQUIVALENTMEASURE = 524656162;\nvar IFCDIMENSIONCOUNT = 4134073009;\nvar IFCDESCRIPTIVEMEASURE = 1514641115;\nvar IFCDAYLIGHTSAVINGHOUR = 300323983;\nvar IFCDAYINMONTHNUMBER = 86635668;\nvar IFCCURVATUREMEASURE = 94842927;\nvar IFCCOUNTMEASURE = 1778710042;\nvar IFCCONTEXTDEPENDENTMEASURE = 3238673880;\nvar IFCCOMPOUNDPLANEANGLEMEASURE = 3812528620;\nvar IFCCOMPLEXNUMBER = 2991860651;\nvar IFCBOXALIGNMENT = 1867003952;\nvar IFCBOOLEAN = 2735952531;\nvar IFCAREAMEASURE = 2650437152;\nvar IFCANGULARVELOCITYMEASURE = 632304761;\nvar IFCAMOUNTOFSUBSTANCEMEASURE = 360377573;\nvar IFCACCELERATIONMEASURE = 4182062534;\nvar IFCABSORBEDDOSEMEASURE = 3699917729;\nvar IFCGEOSLICE = 1971632696;\nvar IFCGEOMODEL = 2680139844;\nvar IFCELECTRICFLOWTREATMENTDEVICE = 24726584;\nvar IFCDISTRIBUTIONBOARD = 3693000487;\nvar IFCCONVEYORSEGMENT = 3460952963;\nvar IFCCAISSONFOUNDATION = 3999819293;\nvar IFCBOREHOLE = 3314249567;\nvar IFCBEARING = 4196446775;\nvar IFCALIGNMENT = 325726236;\nvar IFCTRACKELEMENT = 3425753595;\nvar IFCSIGNAL = 991950508;\nvar IFCREINFORCEDSOIL = 3798194928;\nvar IFCRAIL = 3290496277;\nvar IFCPAVEMENT = 1383356374;\nvar IFCNAVIGATIONELEMENT = 2182337498;\nvar IFCMOORINGDEVICE = 234836483;\nvar IFCMOBILETELECOMMUNICATIONSAPPLIANCE = 2078563270;\nvar IFCLIQUIDTERMINAL = 1638804497;\nvar IFCLINEARPOSITIONINGELEMENT = 1154579445;\nvar IFCKERB = 2696325953;\nvar IFCGEOTECHNICALASSEMBLY = 2713699986;\nvar IFCELECTRICFLOWTREATMENTDEVICETYPE = 2142170206;\nvar IFCEARTHWORKSFILL = 3376911765;\nvar IFCEARTHWORKSELEMENT = 1077100507;\nvar IFCEARTHWORKSCUT = 3071239417;\nvar IFCDISTRIBUTIONBOARDTYPE = 479945903;\nvar IFCDEEPFOUNDATION = 3426335179;\nvar IFCCOURSE = 1502416096;\nvar IFCCONVEYORSEGMENTTYPE = 2940368186;\nvar IFCCAISSONFOUNDATIONTYPE = 3203706013;\nvar IFCBUILTSYSTEM = 3862327254;\nvar IFCBUILTELEMENT = 1876633798;\nvar IFCBRIDGEPART = 963979645;\nvar IFCBRIDGE = 644574406;\nvar IFCBEARINGTYPE = 3649138523;\nvar IFCALIGNMENTVERTICAL = 1662888072;\nvar IFCALIGNMENTSEGMENT = 317615605;\nvar IFCALIGNMENTHORIZONTAL = 1545765605;\nvar IFCALIGNMENTCANT = 4266260250;\nvar IFCVIBRATIONDAMPERTYPE = 3956297820;\nvar IFCVIBRATIONDAMPER = 1530820697;\nvar IFCVEHICLE = 840318589;\nvar IFCTRANSPORTATIONDEVICE = 1953115116;\nvar IFCTRACKELEMENTTYPE = 618700268;\nvar IFCTENDONCONDUITTYPE = 2281632017;\nvar IFCTENDONCONDUIT = 3663046924;\nvar IFCSINESPIRAL = 42703149;\nvar IFCSIGNALTYPE = 1894708472;\nvar IFCSIGNTYPE = 3599934289;\nvar IFCSIGN = 33720170;\nvar IFCSEVENTHORDERPOLYNOMIALSPIRAL = 1027922057;\nvar IFCSEGMENTEDREFERENCECURVE = 544395925;\nvar IFCSECONDORDERPOLYNOMIALSPIRAL = 3649235739;\nvar IFCROADPART = 550521510;\nvar IFCROAD = 146592293;\nvar IFCRELADHERESTOELEMENT = 3818125796;\nvar IFCREFERENT = 4021432810;\nvar IFCRAILWAYPART = 1891881377;\nvar IFCRAILWAY = 3992365140;\nvar IFCRAILTYPE = 1763565496;\nvar IFCPOSITIONINGELEMENT = 1946335990;\nvar IFCPAVEMENTTYPE = 514975943;\nvar IFCNAVIGATIONELEMENTTYPE = 506776471;\nvar IFCMOORINGDEVICETYPE = 710110818;\nvar IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE = 1950438474;\nvar IFCMARINEPART = 976884017;\nvar IFCMARINEFACILITY = 525669439;\nvar IFCLIQUIDTERMINALTYPE = 1770583370;\nvar IFCLINEARELEMENT = 2176059722;\nvar IFCKERBTYPE = 679976338;\nvar IFCIMPACTPROTECTIONDEVICETYPE = 3948183225;\nvar IFCIMPACTPROTECTIONDEVICE = 2568555532;\nvar IFCGRADIENTCURVE = 2898700619;\nvar IFCGEOTECHNICALSTRATUM = 1594536857;\nvar IFCGEOTECHNICALELEMENT = 4230923436;\nvar IFCFACILITYPARTCOMMON = 4228831410;\nvar IFCFACILITYPART = 1310830890;\nvar IFCFACILITY = 24185140;\nvar IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID = 4234616927;\nvar IFCDEEPFOUNDATIONTYPE = 1306400036;\nvar IFCCOURSETYPE = 4189326743;\nvar IFCCOSINESPIRAL = 2000195564;\nvar IFCCLOTHOID = 3497074424;\nvar IFCBUILTELEMENTTYPE = 1626504194;\nvar IFCVEHICLETYPE = 3651464721;\nvar IFCTRIANGULATEDIRREGULARNETWORK = 1229763772;\nvar IFCTRANSPORTATIONDEVICETYPE = 3665877780;\nvar IFCTHIRDORDERPOLYNOMIALSPIRAL = 782932809;\nvar IFCSPIRAL = 2735484536;\nvar IFCSECTIONEDSURFACE = 1356537516;\nvar IFCSECTIONEDSOLIDHORIZONTAL = 1290935644;\nvar IFCSECTIONEDSOLID = 1862484736;\nvar IFCRELPOSITIONS = 1441486842;\nvar IFCRELASSOCIATESPROFILEDEF = 1033248425;\nvar IFCPOLYNOMIALCURVE = 3381221214;\nvar IFCOFFSETCURVEBYDISTANCES = 2485787929;\nvar IFCOFFSETCURVE = 590820931;\nvar IFCINDEXEDPOLYGONALTEXTUREMAP = 3465909080;\nvar IFCDIRECTRIXCURVESWEPTAREASOLID = 593015953;\nvar IFCCURVESEGMENT = 4212018352;\nvar IFCAXIS2PLACEMENTLINEAR = 3425423356;\nvar IFCSEGMENT = 823603102;\nvar IFCPOINTBYDISTANCEEXPRESSION = 2165702409;\nvar IFCOPENCROSSPROFILEDEF = 182550632;\nvar IFCLINEARPLACEMENT = 388784114;\nvar IFCALIGNMENTHORIZONTALSEGMENT = 536804194;\nvar IFCALIGNMENTCANTSEGMENT = 3752311538;\nvar IFCTEXTURECOORDINATEINDICESWITHVOIDS = 1010789467;\nvar IFCTEXTURECOORDINATEINDICES = 222769930;\nvar IFCQUANTITYNUMBER = 2691318326;\nvar IFCALIGNMENTVERTICALSEGMENT = 3633395639;\nvar IFCALIGNMENTPARAMETERSEGMENT = 2879124712;\nvar IFCCONTROLLER = 25142252;\nvar IFCALARM = 3087945054;\nvar IFCACTUATOR = 4288193352;\nvar IFCUNITARYCONTROLELEMENT = 630975310;\nvar IFCSENSOR = 4086658281;\nvar IFCPROTECTIVEDEVICETRIPPINGUNIT = 2295281155;\nvar IFCFLOWINSTRUMENT = 182646315;\nvar IFCFIRESUPPRESSIONTERMINAL = 1426591983;\nvar IFCFILTER = 819412036;\nvar IFCFAN = 3415622556;\nvar IFCELECTRICTIMECONTROL = 1003880860;\nvar IFCELECTRICMOTOR = 402227799;\nvar IFCELECTRICGENERATOR = 264262732;\nvar IFCELECTRICFLOWSTORAGEDEVICE = 3310460725;\nvar IFCELECTRICDISTRIBUTIONBOARD = 862014818;\nvar IFCELECTRICAPPLIANCE = 1904799276;\nvar IFCDUCTSILENCER = 1360408905;\nvar IFCDUCTSEGMENT = 3518393246;\nvar IFCDUCTFITTING = 342316401;\nvar IFCDISTRIBUTIONCIRCUIT = 562808652;\nvar IFCDAMPER = 4074379575;\nvar IFCCOOLINGTOWER = 3640358203;\nvar IFCCOOLEDBEAM = 4136498852;\nvar IFCCONDENSER = 2272882330;\nvar IFCCOMPRESSOR = 3571504051;\nvar IFCCOMMUNICATIONSAPPLIANCE = 3221913625;\nvar IFCCOIL = 639361253;\nvar IFCCHILLER = 3902619387;\nvar IFCCABLESEGMENT = 4217484030;\nvar IFCCABLEFITTING = 1051757585;\nvar IFCCABLECARRIERSEGMENT = 3758799889;\nvar IFCCABLECARRIERFITTING = 635142910;\nvar IFCBURNER = 2938176219;\nvar IFCBOILER = 32344328;\nvar IFCBEAMSTANDARDCASE = 2906023776;\nvar IFCAUDIOVISUALAPPLIANCE = 277319702;\nvar IFCAIRTOAIRHEATRECOVERY = 2056796094;\nvar IFCAIRTERMINALBOX = 177149247;\nvar IFCAIRTERMINAL = 1634111441;\nvar IFCWINDOWSTANDARDCASE = 486154966;\nvar IFCWASTETERMINAL = 4237592921;\nvar IFCWALLELEMENTEDCASE = 4156078855;\nvar IFCVALVE = 4207607924;\nvar IFCUNITARYEQUIPMENT = 4292641817;\nvar IFCUNITARYCONTROLELEMENTTYPE = 3179687236;\nvar IFCTUBEBUNDLE = 3026737570;\nvar IFCTRANSFORMER = 3825984169;\nvar IFCTANK = 812556717;\nvar IFCSWITCHINGDEVICE = 1162798199;\nvar IFCSTRUCTURALLOADCASE = 385403989;\nvar IFCSTACKTERMINAL = 1404847402;\nvar IFCSPACEHEATER = 1999602285;\nvar IFCSOLARDEVICE = 3420628829;\nvar IFCSLABSTANDARDCASE = 3027962421;\nvar IFCSLABELEMENTEDCASE = 3127900445;\nvar IFCSHADINGDEVICE = 1329646415;\nvar IFCSANITARYTERMINAL = 3053780830;\nvar IFCREINFORCINGBARTYPE = 2572171363;\nvar IFCRATIONALBSPLINECURVEWITHKNOTS = 1232101972;\nvar IFCPUMP = 90941305;\nvar IFCPROTECTIVEDEVICETRIPPINGUNITTYPE = 655969474;\nvar IFCPROTECTIVEDEVICE = 738039164;\nvar IFCPLATESTANDARDCASE = 1156407060;\nvar IFCPIPESEGMENT = 3612865200;\nvar IFCPIPEFITTING = 310824031;\nvar IFCOUTLET = 3694346114;\nvar IFCOUTERBOUNDARYCURVE = 144952367;\nvar IFCMOTORCONNECTION = 2474470126;\nvar IFCMEMBERSTANDARDCASE = 1911478936;\nvar IFCMEDICALDEVICE = 1437502449;\nvar IFCLIGHTFIXTURE = 629592764;\nvar IFCLAMP = 76236018;\nvar IFCJUNCTIONBOX = 2176052936;\nvar IFCINTERCEPTOR = 4175244083;\nvar IFCHUMIDIFIER = 2068733104;\nvar IFCHEATEXCHANGER = 3319311131;\nvar IFCFLOWMETER = 2188021234;\nvar IFCEXTERNALSPATIALELEMENT = 1209101575;\nvar IFCEVAPORATOR = 484807127;\nvar IFCEVAPORATIVECOOLER = 3747195512;\nvar IFCENGINE = 2814081492;\nvar IFCELECTRICDISTRIBUTIONBOARDTYPE = 2417008758;\nvar IFCDOORSTANDARDCASE = 3242481149;\nvar IFCDISTRIBUTIONSYSTEM = 3205830791;\nvar IFCCOMMUNICATIONSAPPLIANCETYPE = 400855858;\nvar IFCCOLUMNSTANDARDCASE = 905975707;\nvar IFCCIVILELEMENT = 1677625105;\nvar IFCCHIMNEY = 3296154744;\nvar IFCCABLEFITTINGTYPE = 2674252688;\nvar IFCBURNERTYPE = 2188180465;\nvar IFCBUILDINGSYSTEM = 1177604601;\nvar IFCBUILDINGELEMENTPARTTYPE = 39481116;\nvar IFCBOUNDARYCURVE = 1136057603;\nvar IFCBSPLINECURVEWITHKNOTS = 2461110595;\nvar IFCAUDIOVISUALAPPLIANCETYPE = 1532957894;\nvar IFCWORKCALENDAR = 4088093105;\nvar IFCWINDOWTYPE = 4009809668;\nvar IFCVOIDINGFEATURE = 926996030;\nvar IFCVIBRATIONISOLATOR = 2391383451;\nvar IFCTENDONTYPE = 2415094496;\nvar IFCTENDONANCHORTYPE = 3081323446;\nvar IFCSYSTEMFURNITUREELEMENT = 413509423;\nvar IFCSURFACEFEATURE = 3101698114;\nvar IFCSTRUCTURALSURFACEACTION = 3657597509;\nvar IFCSTRUCTURALCURVEREACTION = 2757150158;\nvar IFCSTRUCTURALCURVEACTION = 1004757350;\nvar IFCSTAIRTYPE = 338393293;\nvar IFCSOLARDEVICETYPE = 1072016465;\nvar IFCSHADINGDEVICETYPE = 4074543187;\nvar IFCSEAMCURVE = 2157484638;\nvar IFCROOFTYPE = 2781568857;\nvar IFCREINFORCINGMESHTYPE = 2310774935;\nvar IFCREINFORCINGELEMENTTYPE = 964333572;\nvar IFCRATIONALBSPLINESURFACEWITHKNOTS = 683857671;\nvar IFCRAMPTYPE = 1469900589;\nvar IFCPOLYGONALFACESET = 2839578677;\nvar IFCPILETYPE = 1158309216;\nvar IFCOPENINGSTANDARDCASE = 3079942009;\nvar IFCMEDICALDEVICETYPE = 1114901282;\nvar IFCINTERSECTIONCURVE = 3113134337;\nvar IFCINTERCEPTORTYPE = 3946677679;\nvar IFCINDEXEDPOLYCURVE = 2571569899;\nvar IFCGEOGRAPHICELEMENT = 3493046030;\nvar IFCFURNITURE = 1509553395;\nvar IFCFOOTINGTYPE = 1893162501;\nvar IFCEXTERNALSPATIALSTRUCTUREELEMENT = 2853485674;\nvar IFCEVENT = 4148101412;\nvar IFCENGINETYPE = 132023988;\nvar IFCELEMENTASSEMBLYTYPE = 2397081782;\nvar IFCDOORTYPE = 2323601079;\nvar IFCCYLINDRICALSURFACE = 1213902940;\nvar IFCCONSTRUCTIONPRODUCTRESOURCETYPE = 1525564444;\nvar IFCCONSTRUCTIONMATERIALRESOURCETYPE = 4105962743;\nvar IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE = 2185764099;\nvar IFCCOMPOSITECURVEONSURFACE = 15328376;\nvar IFCCOMPLEXPROPERTYTEMPLATE = 3875453745;\nvar IFCCIVILELEMENTTYPE = 3893394355;\nvar IFCCHIMNEYTYPE = 2197970202;\nvar IFCBSPLINESURFACEWITHKNOTS = 167062518;\nvar IFCBSPLINESURFACE = 2887950389;\nvar IFCADVANCEDBREPWITHVOIDS = 2603310189;\nvar IFCADVANCEDBREP = 1635779807;\nvar IFCTRIANGULATEDFACESET = 2916149573;\nvar IFCTOROIDALSURFACE = 1935646853;\nvar IFCTESSELLATEDFACESET = 2387106220;\nvar IFCTASKTYPE = 3206491090;\nvar IFCSURFACECURVE = 699246055;\nvar IFCSUBCONTRACTRESOURCETYPE = 4095615324;\nvar IFCSTRUCTURALSURFACEREACTION = 603775116;\nvar IFCSPHERICALSURFACE = 4015995234;\nvar IFCSPATIALZONETYPE = 2481509218;\nvar IFCSPATIALZONE = 463610769;\nvar IFCSPATIALELEMENTTYPE = 710998568;\nvar IFCSPATIALELEMENT = 1412071761;\nvar IFCSIMPLEPROPERTYTEMPLATE = 3663146110;\nvar IFCREVOLVEDAREASOLIDTAPERED = 3243963512;\nvar IFCREPARAMETRISEDCOMPOSITECURVESEGMENT = 816062949;\nvar IFCRELSPACEBOUNDARY2NDLEVEL = 1521410863;\nvar IFCRELSPACEBOUNDARY1STLEVEL = 3523091289;\nvar IFCRELINTERFERESELEMENTS = 427948657;\nvar IFCRELDEFINESBYTEMPLATE = 307848117;\nvar IFCRELDEFINESBYOBJECT = 1462361463;\nvar IFCRELDECLARES = 2565941209;\nvar IFCRELASSIGNSTOGROUPBYFACTOR = 1027710054;\nvar IFCPROPERTYTEMPLATE = 3521284610;\nvar IFCPROPERTYSETTEMPLATE = 492091185;\nvar IFCPROJECTLIBRARY = 653396225;\nvar IFCPROCEDURETYPE = 569719735;\nvar IFCPREDEFINEDPROPERTYSET = 3967405729;\nvar IFCPCURVE = 1682466193;\nvar IFCLABORRESOURCETYPE = 428585644;\nvar IFCINDEXEDPOLYGONALFACEWITHVOIDS = 2294589976;\nvar IFCINDEXEDPOLYGONALFACE = 178912537;\nvar IFCGEOGRAPHICELEMENTTYPE = 4095422895;\nvar IFCFIXEDREFERENCESWEPTAREASOLID = 2652556860;\nvar IFCEXTRUDEDAREASOLIDTAPERED = 2804161546;\nvar IFCEVENTTYPE = 4024345920;\nvar IFCCURVEBOUNDEDSURFACE = 2629017746;\nvar IFCCREWRESOURCETYPE = 1815067380;\nvar IFCCONTEXT = 3419103109;\nvar IFCCONSTRUCTIONRESOURCETYPE = 2574617495;\nvar IFCCARTESIANPOINTLIST3D = 2059837836;\nvar IFCCARTESIANPOINTLIST2D = 1675464909;\nvar IFCCARTESIANPOINTLIST = 574549367;\nvar IFCADVANCEDFACE = 3406155212;\nvar IFCTYPERESOURCE = 3698973494;\nvar IFCTYPEPROCESS = 3736923433;\nvar IFCTESSELLATEDITEM = 901063453;\nvar IFCSWEPTDISKSOLIDPOLYGONAL = 1096409881;\nvar IFCRESOURCETIME = 1042787934;\nvar IFCRESOURCECONSTRAINTRELATIONSHIP = 1608871552;\nvar IFCRESOURCEAPPROVALRELATIONSHIP = 2943643501;\nvar IFCQUANTITYSET = 2090586900;\nvar IFCPROPERTYTEMPLATEDEFINITION = 1482703590;\nvar IFCPREDEFINEDPROPERTIES = 3778827333;\nvar IFCMIRROREDPROFILEDEF = 2998442950;\nvar IFCMATERIALRELATIONSHIP = 853536259;\nvar IFCMATERIALPROFILESETUSAGETAPERING = 3404854881;\nvar IFCMATERIALPROFILESETUSAGE = 3079605661;\nvar IFCMATERIALCONSTITUENTSET = 2852063980;\nvar IFCMATERIALCONSTITUENT = 3708119e3;\nvar IFCLAGTIME = 1585845231;\nvar IFCINDEXEDTRIANGLETEXTUREMAP = 2133299955;\nvar IFCINDEXEDTEXTUREMAP = 1437953363;\nvar IFCINDEXEDCOLOURMAP = 3570813810;\nvar IFCEXTERNALREFERENCERELATIONSHIP = 1437805879;\nvar IFCEXTENDEDPROPERTIES = 297599258;\nvar IFCEVENTTIME = 211053100;\nvar IFCCONVERSIONBASEDUNITWITHOFFSET = 2713554722;\nvar IFCCOLOURRGBLIST = 3285139300;\nvar IFCWORKTIME = 1236880293;\nvar IFCTIMEPERIOD = 1199560280;\nvar IFCTEXTUREVERTEXLIST = 3611470254;\nvar IFCTASKTIMERECURRING = 2771591690;\nvar IFCTASKTIME = 1549132990;\nvar IFCTABLECOLUMN = 2043862942;\nvar IFCSURFACEREINFORCEMENTAREA = 2934153892;\nvar IFCSTRUCTURALLOADORRESULT = 609421318;\nvar IFCSTRUCTURALLOADCONFIGURATION = 3478079324;\nvar IFCSCHEDULINGTIME = 1054537805;\nvar IFCRESOURCELEVELRELATIONSHIP = 2439245199;\nvar IFCREFERENCE = 2433181523;\nvar IFCRECURRENCEPATTERN = 3915482550;\nvar IFCPROPERTYABSTRACTION = 986844984;\nvar IFCPROJECTEDCRS = 3843373140;\nvar IFCPRESENTATIONITEM = 677532197;\nvar IFCMATERIALUSAGEDEFINITION = 1507914824;\nvar IFCMATERIALPROFILEWITHOFFSETS = 552965576;\nvar IFCMATERIALPROFILESET = 164193824;\nvar IFCMATERIALPROFILE = 2235152071;\nvar IFCMATERIALLAYERWITHOFFSETS = 1847252529;\nvar IFCMATERIALDEFINITION = 760658860;\nvar IFCMAPCONVERSION = 3057273783;\nvar IFCEXTERNALINFORMATION = 4294318154;\nvar IFCCOORDINATEREFERENCESYSTEM = 1466758467;\nvar IFCCOORDINATEOPERATION = 1785450214;\nvar IFCCONNECTIONVOLUMEGEOMETRY = 775493141;\nvar IFCREINFORCINGBAR = 979691226;\nvar IFCELECTRICDISTRIBUTIONPOINT = 3700593921;\nvar IFCDISTRIBUTIONCONTROLELEMENT = 1062813311;\nvar IFCDISTRIBUTIONCHAMBERELEMENT = 1052013943;\nvar IFCCONTROLLERTYPE = 578613899;\nvar IFCCHAMFEREDGEFEATURE = 2454782716;\nvar IFCBEAM = 753842376;\nvar IFCALARMTYPE = 3001207471;\nvar IFCACTUATORTYPE = 2874132201;\nvar IFCWINDOW = 3304561284;\nvar IFCWALLSTANDARDCASE = 3512223829;\nvar IFCWALL = 2391406946;\nvar IFCVIBRATIONISOLATORTYPE = 3313531582;\nvar IFCTENDONANCHOR = 2347447852;\nvar IFCTENDON = 3824725483;\nvar IFCSTRUCTURALANALYSISMODEL = 2515109513;\nvar IFCSTAIRFLIGHT = 4252922144;\nvar IFCSTAIR = 331165859;\nvar IFCSLAB = 1529196076;\nvar IFCSENSORTYPE = 1783015770;\nvar IFCROUNDEDEDGEFEATURE = 1376911519;\nvar IFCROOF = 2016517767;\nvar IFCREINFORCINGMESH = 2320036040;\nvar IFCREINFORCINGELEMENT = 3027567501;\nvar IFCRATIONALBEZIERCURVE = 3055160366;\nvar IFCRAMPFLIGHT = 3283111854;\nvar IFCRAMP = 3024970846;\nvar IFCRAILING = 2262370178;\nvar IFCPLATE = 3171933400;\nvar IFCPILE = 1687234759;\nvar IFCMEMBER = 1073191201;\nvar IFCFOOTING = 900683007;\nvar IFCFLOWTREATMENTDEVICE = 3508470533;\nvar IFCFLOWTERMINAL = 2223149337;\nvar IFCFLOWSTORAGEDEVICE = 707683696;\nvar IFCFLOWSEGMENT = 987401354;\nvar IFCFLOWMOVINGDEVICE = 3132237377;\nvar IFCFLOWINSTRUMENTTYPE = 4037862832;\nvar IFCFLOWFITTING = 4278956645;\nvar IFCFLOWCONTROLLER = 2058353004;\nvar IFCFIRESUPPRESSIONTERMINALTYPE = 4222183408;\nvar IFCFILTERTYPE = 1810631287;\nvar IFCFANTYPE = 346874300;\nvar IFCENERGYCONVERSIONDEVICE = 1658829314;\nvar IFCELECTRICALELEMENT = 857184966;\nvar IFCELECTRICALCIRCUIT = 1634875225;\nvar IFCELECTRICTIMECONTROLTYPE = 712377611;\nvar IFCELECTRICMOTORTYPE = 1217240411;\nvar IFCELECTRICHEATERTYPE = 1365060375;\nvar IFCELECTRICGENERATORTYPE = 1534661035;\nvar IFCELECTRICFLOWSTORAGEDEVICETYPE = 3277789161;\nvar IFCELECTRICAPPLIANCETYPE = 663422040;\nvar IFCEDGEFEATURE = 855621170;\nvar IFCDUCTSILENCERTYPE = 2030761528;\nvar IFCDUCTSEGMENTTYPE = 3760055223;\nvar IFCDUCTFITTINGTYPE = 869906466;\nvar IFCDOOR = 395920057;\nvar IFCDISTRIBUTIONPORT = 3041715199;\nvar IFCDISTRIBUTIONFLOWELEMENT = 3040386961;\nvar IFCDISTRIBUTIONELEMENT = 1945004755;\nvar IFCDISTRIBUTIONCONTROLELEMENTTYPE = 2063403501;\nvar IFCDISTRIBUTIONCHAMBERELEMENTTYPE = 1599208980;\nvar IFCDISCRETEACCESSORYTYPE = 2635815018;\nvar IFCDISCRETEACCESSORY = 1335981549;\nvar IFCDIAMETERDIMENSION = 4147604152;\nvar IFCDAMPERTYPE = 3961806047;\nvar IFCCURTAINWALL = 3495092785;\nvar IFCCOVERING = 1973544240;\nvar IFCCOOLINGTOWERTYPE = 2954562838;\nvar IFCCOOLEDBEAMTYPE = 335055490;\nvar IFCCONSTRUCTIONPRODUCTRESOURCE = 488727124;\nvar IFCCONSTRUCTIONMATERIALRESOURCE = 1060000209;\nvar IFCCONSTRUCTIONEQUIPMENTRESOURCE = 3898045240;\nvar IFCCONDITIONCRITERION = 1163958913;\nvar IFCCONDITION = 2188551683;\nvar IFCCONDENSERTYPE = 2816379211;\nvar IFCCOMPRESSORTYPE = 3850581409;\nvar IFCCOLUMN = 843113511;\nvar IFCCOILTYPE = 2301859152;\nvar IFCCIRCLE = 2611217952;\nvar IFCCHILLERTYPE = 2951183804;\nvar IFCCABLESEGMENTTYPE = 1285652485;\nvar IFCCABLECARRIERSEGMENTTYPE = 3293546465;\nvar IFCCABLECARRIERFITTINGTYPE = 395041908;\nvar IFCBUILDINGELEMENTPROXYTYPE = 1909888760;\nvar IFCBUILDINGELEMENTPROXY = 1095909175;\nvar IFCBUILDINGELEMENTPART = 2979338954;\nvar IFCBUILDINGELEMENTCOMPONENT = 52481810;\nvar IFCBUILDINGELEMENT = 3299480353;\nvar IFCBOILERTYPE = 231477066;\nvar IFCBEZIERCURVE = 1916977116;\nvar IFCBEAMTYPE = 819618141;\nvar IFCBSPLINECURVE = 1967976161;\nvar IFCASSET = 3460190687;\nvar IFCANGULARDIMENSION = 2470393545;\nvar IFCAIRTOAIRHEATRECOVERYTYPE = 1871374353;\nvar IFCAIRTERMINALTYPE = 3352864051;\nvar IFCAIRTERMINALBOXTYPE = 1411407467;\nvar IFCACTIONREQUEST = 3821786052;\nvar IFC2DCOMPOSITECURVE = 1213861670;\nvar IFCZONE = 1033361043;\nvar IFCWORKSCHEDULE = 3342526732;\nvar IFCWORKPLAN = 4218914973;\nvar IFCWORKCONTROL = 1028945134;\nvar IFCWASTETERMINALTYPE = 1133259667;\nvar IFCWALLTYPE = 1898987631;\nvar IFCVIRTUALELEMENT = 2769231204;\nvar IFCVALVETYPE = 728799441;\nvar IFCUNITARYEQUIPMENTTYPE = 1911125066;\nvar IFCTUBEBUNDLETYPE = 1600972822;\nvar IFCTRIMMEDCURVE = 3593883385;\nvar IFCTRANSPORTELEMENT = 1620046519;\nvar IFCTRANSFORMERTYPE = 1692211062;\nvar IFCTIMESERIESSCHEDULE = 1637806684;\nvar IFCTANKTYPE = 5716631;\nvar IFCSYSTEM = 2254336722;\nvar IFCSWITCHINGDEVICETYPE = 2315554128;\nvar IFCSUBCONTRACTRESOURCE = 148013059;\nvar IFCSTRUCTURALSURFACECONNECTION = 1975003073;\nvar IFCSTRUCTURALRESULTGROUP = 2986769608;\nvar IFCSTRUCTURALPOINTREACTION = 1235345126;\nvar IFCSTRUCTURALPOINTCONNECTION = 734778138;\nvar IFCSTRUCTURALPOINTACTION = 2082059205;\nvar IFCSTRUCTURALPLANARACTIONVARYING = 3987759626;\nvar IFCSTRUCTURALPLANARACTION = 1621171031;\nvar IFCSTRUCTURALLOADGROUP = 1252848954;\nvar IFCSTRUCTURALLINEARACTIONVARYING = 1721250024;\nvar IFCSTRUCTURALLINEARACTION = 1807405624;\nvar IFCSTRUCTURALCURVEMEMBERVARYING = 2445595289;\nvar IFCSTRUCTURALCURVEMEMBER = 214636428;\nvar IFCSTRUCTURALCURVECONNECTION = 4243806635;\nvar IFCSTRUCTURALCONNECTION = 1179482911;\nvar IFCSTRUCTURALACTION = 682877961;\nvar IFCSTAIRFLIGHTTYPE = 1039846685;\nvar IFCSTACKTERMINALTYPE = 3112655638;\nvar IFCSPACETYPE = 3812236995;\nvar IFCSPACEPROGRAM = 652456506;\nvar IFCSPACEHEATERTYPE = 1305183839;\nvar IFCSPACE = 3856911033;\nvar IFCSLABTYPE = 2533589738;\nvar IFCSITE = 4097777520;\nvar IFCSERVICELIFE = 4105383287;\nvar IFCSCHEDULETIMECONTROL = 3517283431;\nvar IFCSANITARYTERMINALTYPE = 1768891740;\nvar IFCRELASSIGNSTASKS = 2863920197;\nvar IFCRELAGGREGATES = 160246688;\nvar IFCRAMPFLIGHTTYPE = 2324767716;\nvar IFCRAILINGTYPE = 2893384427;\nvar IFCRADIUSDIMENSION = 3248260540;\nvar IFCPUMPTYPE = 2250791053;\nvar IFCPROTECTIVEDEVICETYPE = 1842657554;\nvar IFCPROJECTIONELEMENT = 3651124850;\nvar IFCPROJECTORDERRECORD = 3642467123;\nvar IFCPROJECTORDER = 2904328755;\nvar IFCPROCEDURE = 2744685151;\nvar IFCPORT = 3740093272;\nvar IFCPOLYLINE = 3724593414;\nvar IFCPLATETYPE = 4017108033;\nvar IFCPIPESEGMENTTYPE = 4231323485;\nvar IFCPIPEFITTINGTYPE = 804291784;\nvar IFCPERMIT = 3327091369;\nvar IFCPERFORMANCEHISTORY = 2382730787;\nvar IFCOUTLETTYPE = 2837617999;\nvar IFCORDERACTION = 3425660407;\nvar IFCOPENINGELEMENT = 3588315303;\nvar IFCOCCUPANT = 4143007308;\nvar IFCMOVE = 1916936684;\nvar IFCMOTORCONNECTIONTYPE = 977012517;\nvar IFCMEMBERTYPE = 3181161470;\nvar IFCMECHANICALFASTENERTYPE = 2108223431;\nvar IFCMECHANICALFASTENER = 377706215;\nvar IFCLINEARDIMENSION = 2506943328;\nvar IFCLIGHTFIXTURETYPE = 1161773419;\nvar IFCLAMPTYPE = 1051575348;\nvar IFCLABORRESOURCE = 3827777499;\nvar IFCJUNCTIONBOXTYPE = 4288270099;\nvar IFCINVENTORY = 2391368822;\nvar IFCHUMIDIFIERTYPE = 1806887404;\nvar IFCHEATEXCHANGERTYPE = 1251058090;\nvar IFCGROUP = 2706460486;\nvar IFCGRID = 3009204131;\nvar IFCGASTERMINALTYPE = 200128114;\nvar IFCFURNITURESTANDARD = 814719939;\nvar IFCFURNISHINGELEMENT = 263784265;\nvar IFCFLOWTREATMENTDEVICETYPE = 3009222698;\nvar IFCFLOWTERMINALTYPE = 2297155007;\nvar IFCFLOWSTORAGEDEVICETYPE = 1339347760;\nvar IFCFLOWSEGMENTTYPE = 1834744321;\nvar IFCFLOWMOVINGDEVICETYPE = 1482959167;\nvar IFCFLOWMETERTYPE = 3815607619;\nvar IFCFLOWFITTINGTYPE = 3198132628;\nvar IFCFLOWCONTROLLERTYPE = 3907093117;\nvar IFCFEATUREELEMENTSUBTRACTION = 1287392070;\nvar IFCFEATUREELEMENTADDITION = 2143335405;\nvar IFCFEATUREELEMENT = 2827207264;\nvar IFCFASTENERTYPE = 2489546625;\nvar IFCFASTENER = 647756555;\nvar IFCFACETEDBREPWITHVOIDS = 3737207727;\nvar IFCFACETEDBREP = 807026263;\nvar IFCEVAPORATORTYPE = 3390157468;\nvar IFCEVAPORATIVECOOLERTYPE = 3174744832;\nvar IFCEQUIPMENTSTANDARD = 3272907226;\nvar IFCEQUIPMENTELEMENT = 1962604670;\nvar IFCENERGYCONVERSIONDEVICETYPE = 2107101300;\nvar IFCELLIPSE = 1704287377;\nvar IFCELEMENTCOMPONENTTYPE = 2590856083;\nvar IFCELEMENTCOMPONENT = 1623761950;\nvar IFCELEMENTASSEMBLY = 4123344466;\nvar IFCELEMENT = 1758889154;\nvar IFCELECTRICALBASEPROPERTIES = 360485395;\nvar IFCDISTRIBUTIONFLOWELEMENTTYPE = 3849074793;\nvar IFCDISTRIBUTIONELEMENTTYPE = 3256556792;\nvar IFCDIMENSIONCURVEDIRECTEDCALLOUT = 681481545;\nvar IFCCURTAINWALLTYPE = 1457835157;\nvar IFCCREWRESOURCE = 3295246426;\nvar IFCCOVERINGTYPE = 1916426348;\nvar IFCCOSTSCHEDULE = 1419761937;\nvar IFCCOSTITEM = 3895139033;\nvar IFCCONTROL = 3293443760;\nvar IFCCONSTRUCTIONRESOURCE = 2559216714;\nvar IFCCONIC = 2510884976;\nvar IFCCOMPOSITECURVE = 3732776249;\nvar IFCCOLUMNTYPE = 300633059;\nvar IFCCIRCLEHOLLOWPROFILEDEF = 2937912522;\nvar IFCBUILDINGSTOREY = 3124254112;\nvar IFCBUILDINGELEMENTTYPE = 1950629157;\nvar IFCBUILDING = 4031249490;\nvar IFCBOUNDEDCURVE = 1260505505;\nvar IFCBOOLEANCLIPPINGRESULT = 3649129432;\nvar IFCBLOCK = 1334484129;\nvar IFCASYMMETRICISHAPEPROFILEDEF = 3207858831;\nvar IFCANNOTATION = 1674181508;\nvar IFCACTOR = 2296667514;\nvar IFCTRANSPORTELEMENTTYPE = 2097647324;\nvar IFCTASK = 3473067441;\nvar IFCSYSTEMFURNITUREELEMENTTYPE = 1580310250;\nvar IFCSURFACEOFREVOLUTION = 4124788165;\nvar IFCSURFACEOFLINEAREXTRUSION = 2809605785;\nvar IFCSURFACECURVESWEPTAREASOLID = 2028607225;\nvar IFCSTRUCTUREDDIMENSIONCALLOUT = 4070609034;\nvar IFCSTRUCTURALSURFACEMEMBERVARYING = 2218152070;\nvar IFCSTRUCTURALSURFACEMEMBER = 3979015343;\nvar IFCSTRUCTURALREACTION = 3689010777;\nvar IFCSTRUCTURALMEMBER = 530289379;\nvar IFCSTRUCTURALITEM = 3136571912;\nvar IFCSTRUCTURALACTIVITY = 3544373492;\nvar IFCSPHERE = 451544542;\nvar IFCSPATIALSTRUCTUREELEMENTTYPE = 3893378262;\nvar IFCSPATIALSTRUCTUREELEMENT = 2706606064;\nvar IFCRIGHTCIRCULARCYLINDER = 3626867408;\nvar IFCRIGHTCIRCULARCONE = 4158566097;\nvar IFCREVOLVEDAREASOLID = 1856042241;\nvar IFCRESOURCE = 2914609552;\nvar IFCRELVOIDSELEMENT = 1401173127;\nvar IFCRELSPACEBOUNDARY = 3451746338;\nvar IFCRELSERVICESBUILDINGS = 366585022;\nvar IFCRELSEQUENCE = 4122056220;\nvar IFCRELSCHEDULESCOSTITEMS = 1058617721;\nvar IFCRELREFERENCEDINSPATIALSTRUCTURE = 1245217292;\nvar IFCRELPROJECTSELEMENT = 750771296;\nvar IFCRELOVERRIDESPROPERTIES = 202636808;\nvar IFCRELOCCUPIESSPACES = 2051452291;\nvar IFCRELNESTS = 3268803585;\nvar IFCRELINTERACTIONREQUIREMENTS = 4189434867;\nvar IFCRELFLOWCONTROLELEMENTS = 279856033;\nvar IFCRELFILLSELEMENT = 3940055652;\nvar IFCRELDEFINESBYTYPE = 781010003;\nvar IFCRELDEFINESBYPROPERTIES = 4186316022;\nvar IFCRELDEFINES = 693640335;\nvar IFCRELDECOMPOSES = 2551354335;\nvar IFCRELCOVERSSPACES = 2802773753;\nvar IFCRELCOVERSBLDGELEMENTS = 886880790;\nvar IFCRELCONTAINEDINSPATIALSTRUCTURE = 3242617779;\nvar IFCRELCONNECTSWITHREALIZINGELEMENTS = 3678494232;\nvar IFCRELCONNECTSWITHECCENTRICITY = 504942748;\nvar IFCRELCONNECTSSTRUCTURALMEMBER = 1638771189;\nvar IFCRELCONNECTSSTRUCTURALELEMENT = 3912681535;\nvar IFCRELCONNECTSSTRUCTURALACTIVITY = 2127690289;\nvar IFCRELCONNECTSPORTS = 3190031847;\nvar IFCRELCONNECTSPORTTOELEMENT = 4201705270;\nvar IFCRELCONNECTSPATHELEMENTS = 3945020480;\nvar IFCRELCONNECTSELEMENTS = 1204542856;\nvar IFCRELCONNECTS = 826625072;\nvar IFCRELASSOCIATESPROFILEPROPERTIES = 2851387026;\nvar IFCRELASSOCIATESMATERIAL = 2655215786;\nvar IFCRELASSOCIATESLIBRARY = 3840914261;\nvar IFCRELASSOCIATESDOCUMENT = 982818633;\nvar IFCRELASSOCIATESCONSTRAINT = 2728634034;\nvar IFCRELASSOCIATESCLASSIFICATION = 919958153;\nvar IFCRELASSOCIATESAPPROVAL = 4095574036;\nvar IFCRELASSOCIATESAPPLIEDVALUE = 1327628568;\nvar IFCRELASSOCIATES = 1865459582;\nvar IFCRELASSIGNSTORESOURCE = 205026976;\nvar IFCRELASSIGNSTOPROJECTORDER = 3372526763;\nvar IFCRELASSIGNSTOPRODUCT = 2857406711;\nvar IFCRELASSIGNSTOPROCESS = 4278684876;\nvar IFCRELASSIGNSTOGROUP = 1307041759;\nvar IFCRELASSIGNSTOCONTROL = 2495723537;\nvar IFCRELASSIGNSTOACTOR = 1683148259;\nvar IFCRELASSIGNS = 3939117080;\nvar IFCRECTANGULARTRIMMEDSURFACE = 3454111270;\nvar IFCRECTANGULARPYRAMID = 2798486643;\nvar IFCRECTANGLEHOLLOWPROFILEDEF = 2770003689;\nvar IFCPROXY = 3219374653;\nvar IFCPROPERTYSET = 1451395588;\nvar IFCPROJECTIONCURVE = 4194566429;\nvar IFCPROJECT = 103090709;\nvar IFCPRODUCT = 4208778838;\nvar IFCPROCESS = 2945172077;\nvar IFCPLANE = 220341763;\nvar IFCPLANARBOX = 603570806;\nvar IFCPERMEABLECOVERINGPROPERTIES = 3566463478;\nvar IFCOFFSETCURVE3D = 3505215534;\nvar IFCOFFSETCURVE2D = 3388369263;\nvar IFCOBJECT = 3888040117;\nvar IFCMANIFOLDSOLIDBREP = 1425443689;\nvar IFCLINE = 1281925730;\nvar IFCLSHAPEPROFILEDEF = 572779678;\nvar IFCISHAPEPROFILEDEF = 1484403080;\nvar IFCGEOMETRICCURVESET = 987898635;\nvar IFCFURNITURETYPE = 1268542332;\nvar IFCFURNISHINGELEMENTTYPE = 4238390223;\nvar IFCFLUIDFLOWPROPERTIES = 3455213021;\nvar IFCFILLAREASTYLETILES = 315944413;\nvar IFCFILLAREASTYLETILESYMBOLWITHSTYLE = 4203026998;\nvar IFCFILLAREASTYLEHATCHING = 374418227;\nvar IFCFACEBASEDSURFACEMODEL = 2047409740;\nvar IFCEXTRUDEDAREASOLID = 477187591;\nvar IFCENERGYPROPERTIES = 80994333;\nvar IFCELLIPSEPROFILEDEF = 2835456948;\nvar IFCELEMENTARYSURFACE = 2777663545;\nvar IFCELEMENTTYPE = 339256511;\nvar IFCELEMENTQUANTITY = 1883228015;\nvar IFCEDGELOOP = 1472233963;\nvar IFCDRAUGHTINGPREDEFINEDCURVEFONT = 4006246654;\nvar IFCDRAUGHTINGPREDEFINEDCOLOUR = 445594917;\nvar IFCDRAUGHTINGCALLOUT = 3073041342;\nvar IFCDOORSTYLE = 526551008;\nvar IFCDOORPANELPROPERTIES = 1714330368;\nvar IFCDOORLININGPROPERTIES = 2963535650;\nvar IFCDIRECTION = 32440307;\nvar IFCDIMENSIONCURVETERMINATOR = 4054601972;\nvar IFCDIMENSIONCURVE = 606661476;\nvar IFCDEFINEDSYMBOL = 693772133;\nvar IFCCURVEBOUNDEDPLANE = 2827736869;\nvar IFCCURVE = 2601014836;\nvar IFCCSGSOLID = 2147822146;\nvar IFCCSGPRIMITIVE3D = 2506170314;\nvar IFCCRANERAILFSHAPEPROFILEDEF = 194851669;\nvar IFCCRANERAILASHAPEPROFILEDEF = 4133800736;\nvar IFCCOMPOSITECURVESEGMENT = 2485617015;\nvar IFCCLOSEDSHELL = 2205249479;\nvar IFCCIRCLEPROFILEDEF = 1383045692;\nvar IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM = 1416205885;\nvar IFCCARTESIANTRANSFORMATIONOPERATOR3D = 3331915920;\nvar IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM = 3486308946;\nvar IFCCARTESIANTRANSFORMATIONOPERATOR2D = 3749851601;\nvar IFCCARTESIANTRANSFORMATIONOPERATOR = 59481748;\nvar IFCCARTESIANPOINT = 1123145078;\nvar IFCCSHAPEPROFILEDEF = 2898889636;\nvar IFCBOXEDHALFSPACE = 2713105998;\nvar IFCBOUNDINGBOX = 2581212453;\nvar IFCBOUNDEDSURFACE = 4182860854;\nvar IFCBOOLEANRESULT = 2736907675;\nvar IFCAXIS2PLACEMENT3D = 2740243338;\nvar IFCAXIS2PLACEMENT2D = 3125803723;\nvar IFCAXIS1PLACEMENT = 4261334040;\nvar IFCANNOTATIONSURFACE = 1302238472;\nvar IFCANNOTATIONFILLAREAOCCURRENCE = 2265737646;\nvar IFCANNOTATIONFILLAREA = 669184980;\nvar IFCANNOTATIONCURVEOCCURRENCE = 3288037868;\nvar IFCZSHAPEPROFILEDEF = 2543172580;\nvar IFCWINDOWSTYLE = 1299126871;\nvar IFCWINDOWPANELPROPERTIES = 512836454;\nvar IFCWINDOWLININGPROPERTIES = 336235671;\nvar IFCVERTEXLOOP = 2759199220;\nvar IFCVECTOR = 1417489154;\nvar IFCUSHAPEPROFILEDEF = 427810014;\nvar IFCTYPEPRODUCT = 2347495698;\nvar IFCTYPEOBJECT = 1628702193;\nvar IFCTWODIRECTIONREPEATFACTOR = 1345879162;\nvar IFCTRAPEZIUMPROFILEDEF = 2715220739;\nvar IFCTEXTLITERALWITHEXTENT = 3124975700;\nvar IFCTEXTLITERAL = 4282788508;\nvar IFCTERMINATORSYMBOL = 3028897424;\nvar IFCTSHAPEPROFILEDEF = 3071757647;\nvar IFCSWEPTSURFACE = 230924584;\nvar IFCSWEPTDISKSOLID = 1260650574;\nvar IFCSWEPTAREASOLID = 2247615214;\nvar IFCSURFACESTYLERENDERING = 1878645084;\nvar IFCSURFACE = 2513912981;\nvar IFCSUBEDGE = 2233826070;\nvar IFCSTRUCTURALSTEELPROFILEPROPERTIES = 3653947884;\nvar IFCSTRUCTURALPROFILEPROPERTIES = 3843319758;\nvar IFCSTRUCTURALLOADSINGLEFORCEWARPING = 1190533807;\nvar IFCSTRUCTURALLOADSINGLEFORCE = 1597423693;\nvar IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION = 1973038258;\nvar IFCSTRUCTURALLOADSINGLEDISPLACEMENT = 2473145415;\nvar IFCSTRUCTURALLOADPLANARFORCE = 2668620305;\nvar IFCSTRUCTURALLOADLINEARFORCE = 1595516126;\nvar IFCSPACETHERMALLOADPROPERTIES = 390701378;\nvar IFCSOUNDVALUE = 1202362311;\nvar IFCSOUNDPROPERTIES = 2485662743;\nvar IFCSOLIDMODEL = 723233188;\nvar IFCSLIPPAGECONNECTIONCONDITION = 2609359061;\nvar IFCSHELLBASEDSURFACEMODEL = 4124623270;\nvar IFCSERVICELIFEFACTOR = 2411513650;\nvar IFCSECTIONEDSPINE = 1509187699;\nvar IFCROUNDEDRECTANGLEPROFILEDEF = 2778083089;\nvar IFCRELATIONSHIP = 478536968;\nvar IFCREINFORCEMENTDEFINITIONPROPERTIES = 3765753017;\nvar IFCREGULARTIMESERIES = 3413951693;\nvar IFCRECTANGLEPROFILEDEF = 3615266464;\nvar IFCPROPERTYTABLEVALUE = 110355661;\nvar IFCPROPERTYSINGLEVALUE = 3650150729;\nvar IFCPROPERTYSETDEFINITION = 3357820518;\nvar IFCPROPERTYREFERENCEVALUE = 941946838;\nvar IFCPROPERTYLISTVALUE = 2752243245;\nvar IFCPROPERTYENUMERATEDVALUE = 4166981789;\nvar IFCPROPERTYDEFINITION = 1680319473;\nvar IFCPROPERTYBOUNDEDVALUE = 871118103;\nvar IFCPRODUCTDEFINITIONSHAPE = 673634403;\nvar IFCPREDEFINEDPOINTMARKERSYMBOL = 179317114;\nvar IFCPREDEFINEDDIMENSIONSYMBOL = 433424934;\nvar IFCPREDEFINEDCURVEFONT = 2559016684;\nvar IFCPREDEFINEDCOLOUR = 759155922;\nvar IFCPOLYGONALBOUNDEDHALFSPACE = 2775532180;\nvar IFCPOLYLOOP = 2924175390;\nvar IFCPOINTONSURFACE = 1423911732;\nvar IFCPOINTONCURVE = 4022376103;\nvar IFCPOINT = 2067069095;\nvar IFCPLANAREXTENT = 1663979128;\nvar IFCPLACEMENT = 2004835150;\nvar IFCPIXELTEXTURE = 597895409;\nvar IFCPHYSICALCOMPLEXQUANTITY = 3021840470;\nvar IFCPATH = 2519244187;\nvar IFCPARAMETERIZEDPROFILEDEF = 2529465313;\nvar IFCORIENTEDEDGE = 1029017970;\nvar IFCOPENSHELL = 2665983363;\nvar IFCONEDIRECTIONREPEATFACTOR = 2833995503;\nvar IFCOBJECTDEFINITION = 219451334;\nvar IFCMECHANICALCONCRETEMATERIALPROPERTIES = 1430189142;\nvar IFCMATERIALDEFINITIONREPRESENTATION = 2022407955;\nvar IFCMAPPEDITEM = 2347385850;\nvar IFCLOOP = 1008929658;\nvar IFCLOCALPLACEMENT = 2624227202;\nvar IFCLIGHTSOURCESPOT = 3422422726;\nvar IFCLIGHTSOURCEPOSITIONAL = 1520743889;\nvar IFCLIGHTSOURCEGONIOMETRIC = 4266656042;\nvar IFCLIGHTSOURCEDIRECTIONAL = 2604431987;\nvar IFCLIGHTSOURCEAMBIENT = 125510826;\nvar IFCLIGHTSOURCE = 1402838566;\nvar IFCIRREGULARTIMESERIES = 3741457305;\nvar IFCIMAGETEXTURE = 3905492369;\nvar IFCHYGROSCOPICMATERIALPROPERTIES = 2445078500;\nvar IFCHALFSPACESOLID = 812098782;\nvar IFCGRIDPLACEMENT = 178086475;\nvar IFCGEOMETRICSET = 3590301190;\nvar IFCGEOMETRICREPRESENTATIONSUBCONTEXT = 4142052618;\nvar IFCGEOMETRICREPRESENTATIONITEM = 2453401579;\nvar IFCGEOMETRICREPRESENTATIONCONTEXT = 3448662350;\nvar IFCGENERALPROFILEPROPERTIES = 1446786286;\nvar IFCGENERALMATERIALPROPERTIES = 803998398;\nvar IFCFUELPROPERTIES = 3857492461;\nvar IFCFILLAREASTYLE = 738692330;\nvar IFCFAILURECONNECTIONCONDITION = 4219587988;\nvar IFCFACESURFACE = 3008276851;\nvar IFCFACEOUTERBOUND = 803316827;\nvar IFCFACEBOUND = 1809719519;\nvar IFCFACE = 2556980723;\nvar IFCEXTENDEDMATERIALPROPERTIES = 1860660968;\nvar IFCEDGECURVE = 476780140;\nvar IFCEDGE = 3900360178;\nvar IFCDRAUGHTINGPREDEFINEDTEXTFONT = 4170525392;\nvar IFCDOCUMENTREFERENCE = 3732053477;\nvar IFCDIMENSIONPAIR = 1694125774;\nvar IFCDIMENSIONCALLOUTRELATIONSHIP = 2273265877;\nvar IFCDERIVEDPROFILEDEF = 3632507154;\nvar IFCCURVESTYLE = 3800577675;\nvar IFCCONVERSIONBASEDUNIT = 2889183280;\nvar IFCCONTEXTDEPENDENTUNIT = 3050246964;\nvar IFCCONNECTIONPOINTECCENTRICITY = 45288368;\nvar IFCCONNECTIONCURVEGEOMETRY = 1981873012;\nvar IFCCONNECTEDFACESET = 370225590;\nvar IFCCOMPOSITEPROFILEDEF = 1485152156;\nvar IFCCOMPLEXPROPERTY = 2542286263;\nvar IFCCOLOURRGB = 776857604;\nvar IFCCLASSIFICATIONREFERENCE = 647927063;\nvar IFCCENTERLINEPROFILEDEF = 3150382593;\nvar IFCBLOBTEXTURE = 616511568;\nvar IFCARBITRARYPROFILEDEFWITHVOIDS = 2705031697;\nvar IFCARBITRARYOPENPROFILEDEF = 1310608509;\nvar IFCARBITRARYCLOSEDPROFILEDEF = 3798115385;\nvar IFCANNOTATIONTEXTOCCURRENCE = 2297822566;\nvar IFCANNOTATIONSYMBOLOCCURRENCE = 3612888222;\nvar IFCANNOTATIONSURFACEOCCURRENCE = 962685235;\nvar IFCANNOTATIONOCCURRENCE = 2442683028;\nvar IFCWATERPROPERTIES = 1065908215;\nvar IFCVIRTUALGRIDINTERSECTION = 891718957;\nvar IFCVERTEXPOINT = 1907098498;\nvar IFCVERTEXBASEDTEXTUREMAP = 3304826586;\nvar IFCVERTEX = 2799835756;\nvar IFCUNITASSIGNMENT = 180925521;\nvar IFCTOPOLOGYREPRESENTATION = 1735638870;\nvar IFCTOPOLOGICALREPRESENTATIONITEM = 1377556343;\nvar IFCTIMESERIESVALUE = 581633288;\nvar IFCTIMESERIESREFERENCERELATIONSHIP = 1718945513;\nvar IFCTIMESERIES = 3101149627;\nvar IFCTHERMALMATERIALPROPERTIES = 3317419933;\nvar IFCTEXTUREVERTEX = 1210645708;\nvar IFCTEXTUREMAP = 2552916305;\nvar IFCTEXTURECOORDINATEGENERATOR = 1742049831;\nvar IFCTEXTURECOORDINATE = 280115917;\nvar IFCTEXTSTYLEWITHBOXCHARACTERISTICS = 1484833681;\nvar IFCTEXTSTYLETEXTMODEL = 1640371178;\nvar IFCTEXTSTYLEFORDEFINEDFONT = 2636378356;\nvar IFCTEXTSTYLEFONTMODEL = 1983826977;\nvar IFCTEXTSTYLE = 1447204868;\nvar IFCTELECOMADDRESS = 912023232;\nvar IFCTABLEROW = 531007025;\nvar IFCTABLE = 985171141;\nvar IFCSYMBOLSTYLE = 1290481447;\nvar IFCSURFACETEXTURE = 626085974;\nvar IFCSURFACESTYLEWITHTEXTURES = 1351298697;\nvar IFCSURFACESTYLESHADING = 846575682;\nvar IFCSURFACESTYLEREFRACTION = 1607154358;\nvar IFCSURFACESTYLELIGHTING = 3303107099;\nvar IFCSURFACESTYLE = 1300840506;\nvar IFCSTYLEDREPRESENTATION = 3049322572;\nvar IFCSTYLEDITEM = 3958052878;\nvar IFCSTYLEMODEL = 2830218821;\nvar IFCSTRUCTURALLOADTEMPERATURE = 3408363356;\nvar IFCSTRUCTURALLOADSTATIC = 2525727697;\nvar IFCSTRUCTURALLOAD = 2162789131;\nvar IFCSTRUCTURALCONNECTIONCONDITION = 2273995522;\nvar IFCSIMPLEPROPERTY = 3692461612;\nvar IFCSHAPEREPRESENTATION = 4240577450;\nvar IFCSHAPEMODEL = 3982875396;\nvar IFCSHAPEASPECT = 867548509;\nvar IFCSECTIONREINFORCEMENTPROPERTIES = 4165799628;\nvar IFCSECTIONPROPERTIES = 2042790032;\nvar IFCSIUNIT = 448429030;\nvar IFCROOT = 2341007311;\nvar IFCRIBPLATEPROFILEPROPERTIES = 3679540991;\nvar IFCREPRESENTATIONMAP = 1660063152;\nvar IFCREPRESENTATIONITEM = 3008791417;\nvar IFCREPRESENTATIONCONTEXT = 3377609919;\nvar IFCREPRESENTATION = 1076942058;\nvar IFCRELAXATION = 1222501353;\nvar IFCREINFORCEMENTBARPROPERTIES = 1580146022;\nvar IFCREFERENCESVALUEDOCUMENT = 2692823254;\nvar IFCQUANTITYWEIGHT = 825690147;\nvar IFCQUANTITYVOLUME = 2405470396;\nvar IFCQUANTITYTIME = 3252649465;\nvar IFCQUANTITYLENGTH = 931644368;\nvar IFCQUANTITYCOUNT = 2093928680;\nvar IFCQUANTITYAREA = 2044713172;\nvar IFCPROPERTYENUMERATION = 3710013099;\nvar IFCPROPERTYDEPENDENCYRELATIONSHIP = 148025276;\nvar IFCPROPERTYCONSTRAINTRELATIONSHIP = 3896028662;\nvar IFCPROPERTY = 2598011224;\nvar IFCPROFILEPROPERTIES = 2802850158;\nvar IFCPROFILEDEF = 3958567839;\nvar IFCPRODUCTSOFCOMBUSTIONPROPERTIES = 2267347899;\nvar IFCPRODUCTREPRESENTATION = 2095639259;\nvar IFCPRESENTATIONSTYLEASSIGNMENT = 2417041796;\nvar IFCPRESENTATIONSTYLE = 3119450353;\nvar IFCPRESENTATIONLAYERWITHSTYLE = 1304840413;\nvar IFCPRESENTATIONLAYERASSIGNMENT = 2022622350;\nvar IFCPREDEFINEDTEXTFONT = 1775413392;\nvar IFCPREDEFINEDTERMINATORSYMBOL = 3213052703;\nvar IFCPREDEFINEDSYMBOL = 990879717;\nvar IFCPREDEFINEDITEM = 3727388367;\nvar IFCPOSTALADDRESS = 3355820592;\nvar IFCPHYSICALSIMPLEQUANTITY = 2226359599;\nvar IFCPHYSICALQUANTITY = 2483315170;\nvar IFCPERSONANDORGANIZATION = 101040310;\nvar IFCPERSON = 2077209135;\nvar IFCOWNERHISTORY = 1207048766;\nvar IFCORGANIZATIONRELATIONSHIP = 1411181986;\nvar IFCORGANIZATION = 4251960020;\nvar IFCOPTICALMATERIALPROPERTIES = 1227763645;\nvar IFCOBJECTIVE = 2251480897;\nvar IFCOBJECTPLACEMENT = 3701648758;\nvar IFCNAMEDUNIT = 1918398963;\nvar IFCMONETARYUNIT = 2706619895;\nvar IFCMETRIC = 3368373690;\nvar IFCMECHANICALSTEELMATERIALPROPERTIES = 677618848;\nvar IFCMECHANICALMATERIALPROPERTIES = 4256014907;\nvar IFCMEASUREWITHUNIT = 2597039031;\nvar IFCMATERIALPROPERTIES = 3265635763;\nvar IFCMATERIALLIST = 2199411900;\nvar IFCMATERIALLAYERSETUSAGE = 1303795690;\nvar IFCMATERIALLAYERSET = 3303938423;\nvar IFCMATERIALLAYER = 248100487;\nvar IFCMATERIALCLASSIFICATIONRELATIONSHIP = 1847130766;\nvar IFCMATERIAL = 1838606355;\nvar IFCLOCALTIME = 30780891;\nvar IFCLIGHTINTENSITYDISTRIBUTION = 1566485204;\nvar IFCLIGHTDISTRIBUTIONDATA = 4162380809;\nvar IFCLIBRARYREFERENCE = 3452421091;\nvar IFCLIBRARYINFORMATION = 2655187982;\nvar IFCIRREGULARTIMESERIESVALUE = 3020489413;\nvar IFCGRIDAXIS = 852622518;\nvar IFCEXTERNALLYDEFINEDTEXTFONT = 3548104201;\nvar IFCEXTERNALLYDEFINEDSYMBOL = 3207319532;\nvar IFCEXTERNALLYDEFINEDSURFACESTYLE = 1040185647;\nvar IFCEXTERNALLYDEFINEDHATCHSTYLE = 2242383968;\nvar IFCEXTERNALREFERENCE = 3200245327;\nvar IFCENVIRONMENTALIMPACTVALUE = 1648886627;\nvar IFCDRAUGHTINGCALLOUTRELATIONSHIP = 3796139169;\nvar IFCDOCUMENTINFORMATIONRELATIONSHIP = 770865208;\nvar IFCDOCUMENTINFORMATION = 1154170062;\nvar IFCDOCUMENTELECTRONICFORMAT = 1376555844;\nvar IFCDIMENSIONALEXPONENTS = 2949456006;\nvar IFCDERIVEDUNITELEMENT = 1045800335;\nvar IFCDERIVEDUNIT = 1765591967;\nvar IFCDATEANDTIME = 1072939445;\nvar IFCCURVESTYLEFONTPATTERN = 3510044353;\nvar IFCCURVESTYLEFONTANDSCALING = 2367409068;\nvar IFCCURVESTYLEFONT = 1105321065;\nvar IFCCURRENCYRELATIONSHIP = 539742890;\nvar IFCCOSTVALUE = 602808272;\nvar IFCCOORDINATEDUNIVERSALTIMEOFFSET = 1065062679;\nvar IFCCONSTRAINTRELATIONSHIP = 347226245;\nvar IFCCONSTRAINTCLASSIFICATIONRELATIONSHIP = 613356794;\nvar IFCCONSTRAINTAGGREGATIONRELATIONSHIP = 1658513725;\nvar IFCCONSTRAINT = 1959218052;\nvar IFCCONNECTIONSURFACEGEOMETRY = 2732653382;\nvar IFCCONNECTIONPORTGEOMETRY = 4257277454;\nvar IFCCONNECTIONPOINTGEOMETRY = 2614616156;\nvar IFCCONNECTIONGEOMETRY = 2859738748;\nvar IFCCOLOURSPECIFICATION = 3264961684;\nvar IFCCLASSIFICATIONNOTATIONFACET = 3639012971;\nvar IFCCLASSIFICATIONNOTATION = 938368621;\nvar IFCCLASSIFICATIONITEMRELATIONSHIP = 1098599126;\nvar IFCCLASSIFICATIONITEM = 1767535486;\nvar IFCCLASSIFICATION = 747523909;\nvar IFCCALENDARDATE = 622194075;\nvar IFCBOUNDARYNODECONDITIONWARPING = 2069777674;\nvar IFCBOUNDARYNODECONDITION = 1387855156;\nvar IFCBOUNDARYFACECONDITION = 3367102660;\nvar IFCBOUNDARYEDGECONDITION = 1560379544;\nvar IFCBOUNDARYCONDITION = 4037036970;\nvar IFCAPPROVALRELATIONSHIP = 3869604511;\nvar IFCAPPROVALPROPERTYRELATIONSHIP = 390851274;\nvar IFCAPPROVALACTORRELATIONSHIP = 2080292479;\nvar IFCAPPROVAL = 130549933;\nvar IFCAPPLIEDVALUERELATIONSHIP = 1110488051;\nvar IFCAPPLIEDVALUE = 411424972;\nvar IFCAPPLICATION = 639542469;\nvar IFCADDRESS = 618182010;\nvar IFCACTORROLE = 3630933823;\nvar FILE_DESCRIPTION = 599546466;\nvar FILE_NAME = 1390159747;\nvar FILE_SCHEMA = 1109904537;\nvar Handle = class {\n constructor(value) {\n this.value = value;\n this.type = 5;\n }\n};\nvar logical;\n(function(logical2) {\n logical2[logical2[\"FALSE\"] = 0] = \"FALSE\";\n logical2[logical2[\"TRUE\"] = 1] = \"TRUE\";\n logical2[logical2[\"UNKNOWN\"] = 2] = \"UNKNOWN\";\n})(logical || (logical = {}));\nvar IfcLineObject = class {\n constructor(expressID = -1) {\n this.expressID = expressID;\n this.type = 0;\n }\n};\nvar FromRawLineData = [];\nvar InversePropertyDef = {};\nvar InheritanceDef = {};\nvar Constructors = {};\nvar ToRawLineData = {};\nvar TypeInitialisers = {};\nvar SchemaNames = [];\nfunction TypeInitialiser(schema, tapeItem) {\n if (Array.isArray(tapeItem))\n tapeItem.map((p) => TypeInitialiser(schema, p));\n if (tapeItem.typecode)\n return TypeInitialisers[schema][tapeItem.typecode](tapeItem.value);\n else\n return tapeItem.value;\n}\nfunction Labelise(tapeItem) {\n if (tapeItem.label)\n return tapeItem;\n else\n return { value: tapeItem.value.toString(), valueType: tapeItem.type, type: 2, label: tapeItem.name };\n}\nfunction BooleanConvert(item) {\n switch (item.toString()) {\n case \"true\":\n return \"T\";\n case \"false\":\n return \"F\";\n case \"0\":\n return \"F\";\n case \"1\":\n return \"T\";\n case \"2\":\n return \"U\";\n }\n}\nvar Schemas;\n(function(Schemas2) {\n Schemas2[\"IFC2X3\"] = \"IFC2X3\";\n Schemas2[\"IFC4\"] = \"IFC4\";\n Schemas2[\"IFC4X3\"] = \"IFC4X3\";\n})(Schemas || (Schemas = {}));\nSchemaNames[1] = [\"IFC2X3\", \"IFC2X_FINAL\"];\nFromRawLineData[1] = {\n 3630933823: (v) => new IFC2X3.IfcActorRole(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcText(!v[2] ? null : v[2].value)),\n 618182010: (v) => new IFC2X3.IfcAddress(v[0], !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value)),\n 639542469: (v) => new IFC2X3.IfcApplication(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), new IFC2X3.IfcIdentifier(!v[3] ? null : v[3].value)),\n 411424972: (v) => new IFC2X3.IfcAppliedValue(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value)),\n 1110488051: (v) => {\n var _a;\n return new IFC2X3.IfcAppliedValueRelationship(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2], !v[3] ? null : new IFC2X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcText(!v[4] ? null : v[4].value));\n },\n 130549933: (v) => new IFC2X3.IfcApproval(!v[0] ? null : new IFC2X3.IfcText(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcText(!v[4] ? null : v[4].value), new IFC2X3.IfcLabel(!v[5] ? null : v[5].value), new IFC2X3.IfcIdentifier(!v[6] ? null : v[6].value)),\n 2080292479: (v) => new IFC2X3.IfcApprovalActorRelationship(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),\n 390851274: (v) => {\n var _a;\n return new IFC2X3.IfcApprovalPropertyRelationship(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value));\n },\n 3869604511: (v) => new IFC2X3.IfcApprovalRelationship(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcText(!v[2] ? null : v[2].value), new IFC2X3.IfcLabel(!v[3] ? null : v[3].value)),\n 4037036970: (v) => new IFC2X3.IfcBoundaryCondition(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),\n 1560379544: (v) => new IFC2X3.IfcBoundaryEdgeCondition(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcModulusOfLinearSubgradeReactionMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcModulusOfLinearSubgradeReactionMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcModulusOfLinearSubgradeReactionMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcModulusOfRotationalSubgradeReactionMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcModulusOfRotationalSubgradeReactionMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcModulusOfRotationalSubgradeReactionMeasure(!v[6] ? null : v[6].value)),\n 3367102660: (v) => new IFC2X3.IfcBoundaryFaceCondition(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcModulusOfSubgradeReactionMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcModulusOfSubgradeReactionMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcModulusOfSubgradeReactionMeasure(!v[3] ? null : v[3].value)),\n 1387855156: (v) => new IFC2X3.IfcBoundaryNodeCondition(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLinearStiffnessMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLinearStiffnessMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcLinearStiffnessMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcRotationalStiffnessMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcRotationalStiffnessMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcRotationalStiffnessMeasure(!v[6] ? null : v[6].value)),\n 2069777674: (v) => new IFC2X3.IfcBoundaryNodeConditionWarping(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLinearStiffnessMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLinearStiffnessMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcLinearStiffnessMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcRotationalStiffnessMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcRotationalStiffnessMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcRotationalStiffnessMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcWarpingMomentMeasure(!v[7] ? null : v[7].value)),\n 622194075: (v) => new IFC2X3.IfcCalendarDate(new IFC2X3.IfcDayInMonthNumber(!v[0] ? null : v[0].value), new IFC2X3.IfcMonthInYearNumber(!v[1] ? null : v[1].value), new IFC2X3.IfcYearNumber(!v[2] ? null : v[2].value)),\n 747523909: (v) => new IFC2X3.IfcClassification(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcLabel(!v[3] ? null : v[3].value)),\n 1767535486: (v) => new IFC2X3.IfcClassificationItem(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new IFC2X3.IfcLabel(!v[2] ? null : v[2].value)),\n 1098599126: (v) => {\n var _a;\n return new IFC2X3.IfcClassificationItemRelationship(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 938368621: (v) => {\n var _a;\n return new IFC2X3.IfcClassificationNotation(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3639012971: (v) => new IFC2X3.IfcClassificationNotationFacet(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),\n 3264961684: (v) => new IFC2X3.IfcColourSpecification(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),\n 2859738748: (_) => new IFC2X3.IfcConnectionGeometry(),\n 2614616156: (v) => new IFC2X3.IfcConnectionPointGeometry(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),\n 4257277454: (v) => new IFC2X3.IfcConnectionPortGeometry(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),\n 2732653382: (v) => new IFC2X3.IfcConnectionSurfaceGeometry(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),\n 1959218052: (v) => new IFC2X3.IfcConstraint(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC2X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value)),\n 1658513725: (v) => {\n var _a;\n return new IFC2X3.IfcConstraintAggregationRelationship(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[4]);\n },\n 613356794: (v) => {\n var _a;\n return new IFC2X3.IfcConstraintClassificationRelationship(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 347226245: (v) => {\n var _a;\n return new IFC2X3.IfcConstraintRelationship(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1065062679: (v) => new IFC2X3.IfcCoordinatedUniversalTimeOffset(new IFC2X3.IfcHourInDay(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcMinuteInHour(!v[1] ? null : v[1].value), v[2]),\n 602808272: (v) => new IFC2X3.IfcCostValue(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcText(!v[7] ? null : v[7].value)),\n 539742890: (v) => new IFC2X3.IfcCurrencyRelationship(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new IFC2X3.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value)),\n 1105321065: (v) => {\n var _a;\n return new IFC2X3.IfcCurveStyleFont(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2367409068: (v) => new IFC2X3.IfcCurveStyleFontAndScaling(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new IFC2X3.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value)),\n 3510044353: (v) => new IFC2X3.IfcCurveStyleFontPattern(new IFC2X3.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC2X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)),\n 1072939445: (v) => new IFC2X3.IfcDateAndTime(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),\n 1765591967: (v) => {\n var _a;\n return new IFC2X3.IfcDerivedUnit(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[1], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value));\n },\n 1045800335: (v) => new IFC2X3.IfcDerivedUnitElement(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : v[1].value),\n 2949456006: (v) => new IFC2X3.IfcDimensionalExponents(!v[0] ? null : v[0].value, !v[1] ? null : v[1].value, !v[2] ? null : v[2].value, !v[3] ? null : v[3].value, !v[4] ? null : v[4].value, !v[5] ? null : v[5].value, !v[6] ? null : v[6].value),\n 1376555844: (v) => new IFC2X3.IfcDocumentElectronicFormat(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value)),\n 1154170062: (v) => {\n var _a, _b;\n return new IFC2X3.IfcDocumentInformation(new IFC2X3.IfcIdentifier(!v[0] ? null : v[0].value), new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[4] ? null : new IFC2X3.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcText(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value), !v[11] ? null : new Handle(!v[11] ? null : v[11].value), !v[12] ? null : new Handle(!v[12] ? null : v[12].value), !v[13] ? null : new Handle(!v[13] ? null : v[13].value), !v[14] ? null : new Handle(!v[14] ? null : v[14].value), v[15], v[16]);\n },\n 770865208: (v) => {\n var _a;\n return new IFC2X3.IfcDocumentInformationRelationship(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value));\n },\n 3796139169: (v) => new IFC2X3.IfcDraughtingCalloutRelationship(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),\n 1648886627: (v) => new IFC2X3.IfcEnvironmentalImpactValue(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value)),\n 3200245327: (v) => new IFC2X3.IfcExternalReference(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value)),\n 2242383968: (v) => new IFC2X3.IfcExternallyDefinedHatchStyle(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value)),\n 1040185647: (v) => new IFC2X3.IfcExternallyDefinedSurfaceStyle(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value)),\n 3207319532: (v) => new IFC2X3.IfcExternallyDefinedSymbol(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value)),\n 3548104201: (v) => new IFC2X3.IfcExternallyDefinedTextFont(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value)),\n 852622518: (v) => new IFC2X3.IfcGridAxis(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new IFC2X3.IfcBoolean(!v[2] ? null : v[2].value)),\n 3020489413: (v) => {\n var _a;\n return new IFC2X3.IfcIrregularTimeSeriesValue(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(1, p) : null)) || []);\n },\n 2655187982: (v) => {\n var _a;\n return new IFC2X3.IfcLibraryInformation(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3452421091: (v) => new IFC2X3.IfcLibraryReference(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value)),\n 4162380809: (v) => {\n var _a, _b;\n return new IFC2X3.IfcLightDistributionData(new IFC2X3.IfcPlaneAngleMeasure(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcPlaneAngleMeasure(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcLuminousIntensityDistributionMeasure(p.value) : null)) || []);\n },\n 1566485204: (v) => {\n var _a;\n return new IFC2X3.IfcLightIntensityDistribution(v[0], ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 30780891: (v) => new IFC2X3.IfcLocalTime(new IFC2X3.IfcHourInDay(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcMinuteInHour(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcSecondInMinute(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcDaylightSavingHour(!v[4] ? null : v[4].value)),\n 1838606355: (v) => new IFC2X3.IfcMaterial(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),\n 1847130766: (v) => {\n var _a;\n return new IFC2X3.IfcMaterialClassificationRelationship(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value));\n },\n 248100487: (v) => new IFC2X3.IfcMaterialLayer(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLogical(!v[2] ? null : v[2].value)),\n 3303938423: (v) => {\n var _a;\n return new IFC2X3.IfcMaterialLayerSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value));\n },\n 1303795690: (v) => new IFC2X3.IfcMaterialLayerSetUsage(new Handle(!v[0] ? null : v[0].value), v[1], v[2], new IFC2X3.IfcLengthMeasure(!v[3] ? null : v[3].value)),\n 2199411900: (v) => {\n var _a;\n return new IFC2X3.IfcMaterialList(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3265635763: (v) => new IFC2X3.IfcMaterialProperties(new Handle(!v[0] ? null : v[0].value)),\n 2597039031: (v) => new IFC2X3.IfcMeasureWithUnit(TypeInitialiser(1, v[0]), new Handle(!v[1] ? null : v[1].value)),\n 4256014907: (v) => new IFC2X3.IfcMechanicalMaterialProperties(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcDynamicViscosityMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcModulusOfElasticityMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcModulusOfElasticityMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcThermalExpansionCoefficientMeasure(!v[5] ? null : v[5].value)),\n 677618848: (v) => {\n var _a;\n return new IFC2X3.IfcMechanicalSteelMaterialProperties(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcDynamicViscosityMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcModulusOfElasticityMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcModulusOfElasticityMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcThermalExpansionCoefficientMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcPressureMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPressureMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcModulusOfElasticityMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcPressureMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[11] ? null : v[11].value), !v[12] ? null : ((_a = v[12]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3368373690: (v) => new IFC2X3.IfcMetric(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC2X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), new Handle(!v[9] ? null : v[9].value)),\n 2706619895: (v) => new IFC2X3.IfcMonetaryUnit(v[0]),\n 1918398963: (v) => new IFC2X3.IfcNamedUnit(new Handle(!v[0] ? null : v[0].value), v[1]),\n 3701648758: (_) => new IFC2X3.IfcObjectPlacement(),\n 2251480897: (v) => new IFC2X3.IfcObjective(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC2X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC2X3.IfcLabel(!v[10] ? null : v[10].value)),\n 1227763645: (v) => new IFC2X3.IfcOpticalMaterialProperties(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[9] ? null : v[9].value)),\n 4251960020: (v) => {\n var _a, _b;\n return new IFC2X3.IfcOrganization(!v[0] ? null : new IFC2X3.IfcIdentifier(!v[0] ? null : v[0].value), new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[4] ? null : ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1411181986: (v) => {\n var _a;\n return new IFC2X3.IfcOrganizationRelationship(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1207048766: (v) => new IFC2X3.IfcOwnerHistory(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), v[2], v[3], !v[4] ? null : new IFC2X3.IfcTimeStamp(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new IFC2X3.IfcTimeStamp(!v[7] ? null : v[7].value)),\n 2077209135: (v) => {\n var _a, _b, _c, _d, _e;\n return new IFC2X3.IfcPerson(!v[0] ? null : new IFC2X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcLabel(p.value) : null)) || [], !v[4] ? null : ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcLabel(p.value) : null)) || [], !v[5] ? null : ((_c = v[5]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcLabel(p.value) : null)) || [], !v[6] ? null : ((_d = v[6]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : ((_e = v[7]) == null ? void 0 : _e.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 101040310: (v) => {\n var _a;\n return new IFC2X3.IfcPersonAndOrganization(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2483315170: (v) => new IFC2X3.IfcPhysicalQuantity(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value)),\n 2226359599: (v) => new IFC2X3.IfcPhysicalSimpleQuantity(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value)),\n 3355820592: (v) => {\n var _a;\n return new IFC2X3.IfcPostalAddress(v[0], !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcLabel(p.value) : null)) || [], !v[5] ? null : new IFC2X3.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcLabel(!v[9] ? null : v[9].value));\n },\n 3727388367: (v) => new IFC2X3.IfcPreDefinedItem(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),\n 990879717: (v) => new IFC2X3.IfcPreDefinedSymbol(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),\n 3213052703: (v) => new IFC2X3.IfcPreDefinedTerminatorSymbol(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),\n 1775413392: (v) => new IFC2X3.IfcPreDefinedTextFont(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),\n 2022622350: (v) => {\n var _a;\n return new IFC2X3.IfcPresentationLayerAssignment(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[3] ? null : new IFC2X3.IfcIdentifier(!v[3] ? null : v[3].value));\n },\n 1304840413: (v) => {\n var _a, _b;\n return new IFC2X3.IfcPresentationLayerWithStyle(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[3] ? null : new IFC2X3.IfcIdentifier(!v[3] ? null : v[3].value), !v[4] ? null : v[4].value, !v[5] ? null : v[5].value, !v[6] ? null : v[6].value, !v[7] ? null : ((_b = v[7]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3119450353: (v) => new IFC2X3.IfcPresentationStyle(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),\n 2417041796: (v) => {\n var _a;\n return new IFC2X3.IfcPresentationStyleAssignment(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2095639259: (v) => {\n var _a;\n return new IFC2X3.IfcProductRepresentation(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2267347899: (v) => new IFC2X3.IfcProductsOfCombustionProperties(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcSpecificHeatCapacityMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value)),\n 3958567839: (v) => new IFC2X3.IfcProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value)),\n 2802850158: (v) => new IFC2X3.IfcProfileProperties(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),\n 2598011224: (v) => new IFC2X3.IfcProperty(new IFC2X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value)),\n 3896028662: (v) => {\n var _a;\n return new IFC2X3.IfcPropertyConstraintRelationship(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value));\n },\n 148025276: (v) => new IFC2X3.IfcPropertyDependencyRelationship(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcText(!v[4] ? null : v[4].value)),\n 3710013099: (v) => {\n var _a;\n return new IFC2X3.IfcPropertyEnumeration(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(1, p) : null)) || [], !v[2] ? null : new Handle(!v[2] ? null : v[2].value));\n },\n 2044713172: (v) => new IFC2X3.IfcQuantityArea(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcAreaMeasure(!v[3] ? null : v[3].value)),\n 2093928680: (v) => new IFC2X3.IfcQuantityCount(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcCountMeasure(!v[3] ? null : v[3].value)),\n 931644368: (v) => new IFC2X3.IfcQuantityLength(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcLengthMeasure(!v[3] ? null : v[3].value)),\n 3252649465: (v) => new IFC2X3.IfcQuantityTime(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcTimeMeasure(!v[3] ? null : v[3].value)),\n 2405470396: (v) => new IFC2X3.IfcQuantityVolume(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcVolumeMeasure(!v[3] ? null : v[3].value)),\n 825690147: (v) => new IFC2X3.IfcQuantityWeight(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcMassMeasure(!v[3] ? null : v[3].value)),\n 2692823254: (v) => {\n var _a;\n return new IFC2X3.IfcReferencesValueDocument(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value));\n },\n 1580146022: (v) => new IFC2X3.IfcReinforcementBarProperties(new IFC2X3.IfcAreaMeasure(!v[0] ? null : v[0].value), new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC2X3.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcCountMeasure(!v[5] ? null : v[5].value)),\n 1222501353: (v) => new IFC2X3.IfcRelaxation(new IFC2X3.IfcNormalisedRatioMeasure(!v[0] ? null : v[0].value), new IFC2X3.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value)),\n 1076942058: (v) => {\n var _a;\n return new IFC2X3.IfcRepresentation(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3377609919: (v) => new IFC2X3.IfcRepresentationContext(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value)),\n 3008791417: (_) => new IFC2X3.IfcRepresentationItem(),\n 1660063152: (v) => new IFC2X3.IfcRepresentationMap(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),\n 3679540991: (v) => new IFC2X3.IfcRibPlateProfileProperties(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), v[6]),\n 2341007311: (v) => new IFC2X3.IfcRoot(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value)),\n 448429030: (v) => new IFC2X3.IfcSIUnit(v[0], v[1], v[2]),\n 2042790032: (v) => new IFC2X3.IfcSectionProperties(v[0], new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value)),\n 4165799628: (v) => {\n var _a;\n return new IFC2X3.IfcSectionReinforcementProperties(new IFC2X3.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC2X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLengthMeasure(!v[2] ? null : v[2].value), v[3], new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 867548509: (v) => {\n var _a;\n return new IFC2X3.IfcShapeAspect(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : v[3].value, new Handle(!v[4] ? null : v[4].value));\n },\n 3982875396: (v) => {\n var _a;\n return new IFC2X3.IfcShapeModel(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 4240577450: (v) => {\n var _a;\n return new IFC2X3.IfcShapeRepresentation(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3692461612: (v) => new IFC2X3.IfcSimpleProperty(new IFC2X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value)),\n 2273995522: (v) => new IFC2X3.IfcStructuralConnectionCondition(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),\n 2162789131: (v) => new IFC2X3.IfcStructuralLoad(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),\n 2525727697: (v) => new IFC2X3.IfcStructuralLoadStatic(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),\n 3408363356: (v) => new IFC2X3.IfcStructuralLoadTemperature(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(!v[3] ? null : v[3].value)),\n 2830218821: (v) => {\n var _a;\n return new IFC2X3.IfcStyleModel(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3958052878: (v) => {\n var _a;\n return new IFC2X3.IfcStyledItem(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value));\n },\n 3049322572: (v) => {\n var _a;\n return new IFC2X3.IfcStyledRepresentation(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1300840506: (v) => {\n var _a;\n return new IFC2X3.IfcSurfaceStyle(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), v[1], ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3303107099: (v) => new IFC2X3.IfcSurfaceStyleLighting(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),\n 1607154358: (v) => new IFC2X3.IfcSurfaceStyleRefraction(!v[0] ? null : new IFC2X3.IfcReal(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcReal(!v[1] ? null : v[1].value)),\n 846575682: (v) => new IFC2X3.IfcSurfaceStyleShading(new Handle(!v[0] ? null : v[0].value)),\n 1351298697: (v) => {\n var _a;\n return new IFC2X3.IfcSurfaceStyleWithTextures(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 626085974: (v) => new IFC2X3.IfcSurfaceTexture(!v[0] ? null : v[0].value, !v[1] ? null : v[1].value, v[2], !v[3] ? null : new Handle(!v[3] ? null : v[3].value)),\n 1290481447: (v) => new IFC2X3.IfcSymbolStyle(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), TypeInitialiser(1, v[1])),\n 985171141: (v) => {\n var _a;\n return new IFC2X3.IfcTable(!v[0] ? null : v[0].value, ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 531007025: (v) => {\n var _a;\n return new IFC2X3.IfcTableRow(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(1, p) : null)) || [], !v[1] ? null : v[1].value);\n },\n 912023232: (v) => {\n var _a, _b, _c;\n return new IFC2X3.IfcTelecomAddress(v[0], !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcLabel(p.value) : null)) || [], !v[4] ? null : ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcLabel(p.value) : null)) || [], !v[5] ? null : new IFC2X3.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : ((_c = v[6]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcLabel(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value));\n },\n 1447204868: (v) => new IFC2X3.IfcTextStyle(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),\n 1983826977: (v) => {\n var _a;\n return new IFC2X3.IfcTextStyleFontModel(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcTextFontName(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcFontStyle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcFontVariant(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcFontWeight(!v[4] ? null : v[4].value), TypeInitialiser(1, v[5]));\n },\n 2636378356: (v) => new IFC2X3.IfcTextStyleForDefinedFont(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),\n 1640371178: (v) => new IFC2X3.IfcTextStyleTextModel(!v[0] ? null : TypeInitialiser(1, v[0]), !v[1] ? null : new IFC2X3.IfcTextAlignment(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcTextDecoration(!v[2] ? null : v[2].value), !v[3] ? null : TypeInitialiser(1, v[3]), !v[4] ? null : TypeInitialiser(1, v[4]), !v[5] ? null : new IFC2X3.IfcTextTransformation(!v[5] ? null : v[5].value), !v[6] ? null : TypeInitialiser(1, v[6])),\n 1484833681: (v) => new IFC2X3.IfcTextStyleWithBoxCharacteristics(!v[0] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcPlaneAngleMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcPlaneAngleMeasure(!v[3] ? null : v[3].value), !v[4] ? null : TypeInitialiser(1, v[4])),\n 280115917: (_) => new IFC2X3.IfcTextureCoordinate(),\n 1742049831: (v) => {\n var _a;\n return new IFC2X3.IfcTextureCoordinateGenerator(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(1, p) : null)) || []);\n },\n 2552916305: (v) => {\n var _a;\n return new IFC2X3.IfcTextureMap(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1210645708: (v) => {\n var _a;\n return new IFC2X3.IfcTextureVertex(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcParameterValue(p.value) : null)) || []);\n },\n 3317419933: (v) => new IFC2X3.IfcThermalMaterialProperties(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcSpecificHeatCapacityMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcThermalConductivityMeasure(!v[4] ? null : v[4].value)),\n 3101149627: (v) => new IFC2X3.IfcTimeSeries(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value)),\n 1718945513: (v) => {\n var _a;\n return new IFC2X3.IfcTimeSeriesReferenceRelationship(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 581633288: (v) => {\n var _a;\n return new IFC2X3.IfcTimeSeriesValue(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(1, p) : null)) || []);\n },\n 1377556343: (_) => new IFC2X3.IfcTopologicalRepresentationItem(),\n 1735638870: (v) => {\n var _a;\n return new IFC2X3.IfcTopologyRepresentation(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 180925521: (v) => {\n var _a;\n return new IFC2X3.IfcUnitAssignment(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2799835756: (_) => new IFC2X3.IfcVertex(),\n 3304826586: (v) => {\n var _a, _b;\n return new IFC2X3.IfcVertexBasedTextureMap(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1907098498: (v) => new IFC2X3.IfcVertexPoint(new Handle(!v[0] ? null : v[0].value)),\n 891718957: (v) => {\n var _a, _b;\n return new IFC2X3.IfcVirtualGridIntersection(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcLengthMeasure(p.value) : null)) || []);\n },\n 1065908215: (v) => new IFC2X3.IfcWaterProperties(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : !v[1] ? null : v[1].value, !v[2] ? null : new IFC2X3.IfcIonConcentrationMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcIonConcentrationMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcIonConcentrationMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcPHMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[7] ? null : v[7].value)),\n 2442683028: (v) => {\n var _a;\n return new IFC2X3.IfcAnnotationOccurrence(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value));\n },\n 962685235: (v) => {\n var _a;\n return new IFC2X3.IfcAnnotationSurfaceOccurrence(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value));\n },\n 3612888222: (v) => {\n var _a;\n return new IFC2X3.IfcAnnotationSymbolOccurrence(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value));\n },\n 2297822566: (v) => {\n var _a;\n return new IFC2X3.IfcAnnotationTextOccurrence(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value));\n },\n 3798115385: (v) => new IFC2X3.IfcArbitraryClosedProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),\n 1310608509: (v) => new IFC2X3.IfcArbitraryOpenProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),\n 2705031697: (v) => {\n var _a;\n return new IFC2X3.IfcArbitraryProfileDefWithVoids(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 616511568: (v) => new IFC2X3.IfcBlobTexture(!v[0] ? null : v[0].value, !v[1] ? null : v[1].value, v[2], !v[3] ? null : new Handle(!v[3] ? null : v[3].value), new IFC2X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : v[5].value),\n 3150382593: (v) => new IFC2X3.IfcCenterLineProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),\n 647927063: (v) => new IFC2X3.IfcClassificationReference(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value)),\n 776857604: (v) => new IFC2X3.IfcColourRgb(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), new IFC2X3.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value), new IFC2X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), new IFC2X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value)),\n 2542286263: (v) => {\n var _a;\n return new IFC2X3.IfcComplexProperty(new IFC2X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), new IFC2X3.IfcIdentifier(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1485152156: (v) => {\n var _a;\n return new IFC2X3.IfcCompositeProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[3] ? null : new IFC2X3.IfcLabel(!v[3] ? null : v[3].value));\n },\n 370225590: (v) => {\n var _a;\n return new IFC2X3.IfcConnectedFaceSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1981873012: (v) => new IFC2X3.IfcConnectionCurveGeometry(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),\n 45288368: (v) => new IFC2X3.IfcConnectionPointEccentricity(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLengthMeasure(!v[4] ? null : v[4].value)),\n 3050246964: (v) => new IFC2X3.IfcContextDependentUnit(new Handle(!v[0] ? null : v[0].value), v[1], new IFC2X3.IfcLabel(!v[2] ? null : v[2].value)),\n 2889183280: (v) => new IFC2X3.IfcConversionBasedUnit(new Handle(!v[0] ? null : v[0].value), v[1], new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),\n 3800577675: (v) => new IFC2X3.IfcCurveStyle(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : TypeInitialiser(1, v[2]), !v[3] ? null : new Handle(!v[3] ? null : v[3].value)),\n 3632507154: (v) => new IFC2X3.IfcDerivedProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value)),\n 2273265877: (v) => new IFC2X3.IfcDimensionCalloutRelationship(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),\n 1694125774: (v) => new IFC2X3.IfcDimensionPair(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),\n 3732053477: (v) => new IFC2X3.IfcDocumentReference(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value)),\n 4170525392: (v) => new IFC2X3.IfcDraughtingPreDefinedTextFont(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),\n 3900360178: (v) => new IFC2X3.IfcEdge(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),\n 476780140: (v) => new IFC2X3.IfcEdgeCurve(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : v[3].value),\n 1860660968: (v) => {\n var _a;\n return new IFC2X3.IfcExtendedMaterialProperties(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcText(!v[2] ? null : v[2].value), new IFC2X3.IfcLabel(!v[3] ? null : v[3].value));\n },\n 2556980723: (v) => {\n var _a;\n return new IFC2X3.IfcFace(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1809719519: (v) => new IFC2X3.IfcFaceBound(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : v[1].value),\n 803316827: (v) => new IFC2X3.IfcFaceOuterBound(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : v[1].value),\n 3008276851: (v) => {\n var _a;\n return new IFC2X3.IfcFaceSurface(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value), !v[2] ? null : v[2].value);\n },\n 4219587988: (v) => new IFC2X3.IfcFailureConnectionCondition(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcForceMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcForceMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcForceMeasure(!v[6] ? null : v[6].value)),\n 738692330: (v) => {\n var _a;\n return new IFC2X3.IfcFillAreaStyle(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3857492461: (v) => new IFC2X3.IfcFuelProperties(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcHeatingValueMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcHeatingValueMeasure(!v[4] ? null : v[4].value)),\n 803998398: (v) => new IFC2X3.IfcGeneralMaterialProperties(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcMolecularWeightMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcMassDensityMeasure(!v[3] ? null : v[3].value)),\n 1446786286: (v) => new IFC2X3.IfcGeneralProfileProperties(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcMassPerLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcAreaMeasure(!v[6] ? null : v[6].value)),\n 3448662350: (v) => new IFC2X3.IfcGeometricRepresentationContext(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new IFC2X3.IfcDimensionCount(!v[2] ? null : v[2].value), !v[3] ? null : !v[3] ? null : v[3].value, new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value)),\n 2453401579: (_) => new IFC2X3.IfcGeometricRepresentationItem(),\n 4142052618: (v) => new IFC2X3.IfcGeometricRepresentationSubContext(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[3] ? null : v[3].value), v[4], !v[5] ? null : new IFC2X3.IfcLabel(!v[5] ? null : v[5].value)),\n 3590301190: (v) => {\n var _a;\n return new IFC2X3.IfcGeometricSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 178086475: (v) => new IFC2X3.IfcGridPlacement(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),\n 812098782: (v) => new IFC2X3.IfcHalfSpaceSolid(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : v[1].value),\n 2445078500: (v) => new IFC2X3.IfcHygroscopicMaterialProperties(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcIsothermalMoistureCapacityMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcVaporPermeabilityMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcMoistureDiffusivityMeasure(!v[5] ? null : v[5].value)),\n 3905492369: (v) => new IFC2X3.IfcImageTexture(!v[0] ? null : v[0].value, !v[1] ? null : v[1].value, v[2], !v[3] ? null : new Handle(!v[3] ? null : v[3].value), new IFC2X3.IfcIdentifier(!v[4] ? null : v[4].value)),\n 3741457305: (v) => {\n var _a;\n return new IFC2X3.IfcIrregularTimeSeries(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1402838566: (v) => new IFC2X3.IfcLightSource(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value)),\n 125510826: (v) => new IFC2X3.IfcLightSourceAmbient(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value)),\n 2604431987: (v) => new IFC2X3.IfcLightSourceDirectional(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value)),\n 4266656042: (v) => new IFC2X3.IfcLightSourceGoniometric(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), new IFC2X3.IfcThermodynamicTemperatureMeasure(!v[6] ? null : v[6].value), new IFC2X3.IfcLuminousFluxMeasure(!v[7] ? null : v[7].value), v[8], new Handle(!v[9] ? null : v[9].value)),\n 1520743889: (v) => new IFC2X3.IfcLightSourcePositional(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3.IfcReal(!v[6] ? null : v[6].value), new IFC2X3.IfcReal(!v[7] ? null : v[7].value), new IFC2X3.IfcReal(!v[8] ? null : v[8].value)),\n 3422422726: (v) => new IFC2X3.IfcLightSourceSpot(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3.IfcReal(!v[6] ? null : v[6].value), new IFC2X3.IfcReal(!v[7] ? null : v[7].value), new IFC2X3.IfcReal(!v[8] ? null : v[8].value), new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcReal(!v[10] ? null : v[10].value), new IFC2X3.IfcPositivePlaneAngleMeasure(!v[11] ? null : v[11].value), new IFC2X3.IfcPositivePlaneAngleMeasure(!v[12] ? null : v[12].value)),\n 2624227202: (v) => new IFC2X3.IfcLocalPlacement(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),\n 1008929658: (_) => new IFC2X3.IfcLoop(),\n 2347385850: (v) => new IFC2X3.IfcMappedItem(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),\n 2022407955: (v) => {\n var _a;\n return new IFC2X3.IfcMaterialDefinitionRepresentation(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[3] ? null : v[3].value));\n },\n 1430189142: (v) => new IFC2X3.IfcMechanicalConcreteMaterialProperties(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcDynamicViscosityMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcModulusOfElasticityMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcModulusOfElasticityMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcThermalExpansionCoefficientMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcPressureMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcText(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcText(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3.IfcText(!v[11] ? null : v[11].value)),\n 219451334: (v) => new IFC2X3.IfcObjectDefinition(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value)),\n 2833995503: (v) => new IFC2X3.IfcOneDirectionRepeatFactor(new Handle(!v[0] ? null : v[0].value)),\n 2665983363: (v) => {\n var _a;\n return new IFC2X3.IfcOpenShell(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1029017970: (v) => new IFC2X3.IfcOrientedEdge(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : v[1].value),\n 2529465313: (v) => new IFC2X3.IfcParameterizedProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),\n 2519244187: (v) => {\n var _a;\n return new IFC2X3.IfcPath(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3021840470: (v) => {\n var _a;\n return new IFC2X3.IfcPhysicalComplexQuantity(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC2X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcLabel(!v[5] ? null : v[5].value));\n },\n 597895409: (v) => {\n var _a;\n return new IFC2X3.IfcPixelTexture(!v[0] ? null : v[0].value, !v[1] ? null : v[1].value, v[2], !v[3] ? null : new Handle(!v[3] ? null : v[3].value), new IFC2X3.IfcInteger(!v[4] ? null : v[4].value), new IFC2X3.IfcInteger(!v[5] ? null : v[5].value), new IFC2X3.IfcInteger(!v[6] ? null : v[6].value), ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? Number(p.value) : null)) || []);\n },\n 2004835150: (v) => new IFC2X3.IfcPlacement(new Handle(!v[0] ? null : v[0].value)),\n 1663979128: (v) => new IFC2X3.IfcPlanarExtent(new IFC2X3.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC2X3.IfcLengthMeasure(!v[1] ? null : v[1].value)),\n 2067069095: (_) => new IFC2X3.IfcPoint(),\n 4022376103: (v) => new IFC2X3.IfcPointOnCurve(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcParameterValue(!v[1] ? null : v[1].value)),\n 1423911732: (v) => new IFC2X3.IfcPointOnSurface(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcParameterValue(!v[1] ? null : v[1].value), new IFC2X3.IfcParameterValue(!v[2] ? null : v[2].value)),\n 2924175390: (v) => {\n var _a;\n return new IFC2X3.IfcPolyLoop(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2775532180: (v) => new IFC2X3.IfcPolygonalBoundedHalfSpace(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : v[1].value, new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),\n 759155922: (v) => new IFC2X3.IfcPreDefinedColour(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),\n 2559016684: (v) => new IFC2X3.IfcPreDefinedCurveFont(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),\n 433424934: (v) => new IFC2X3.IfcPreDefinedDimensionSymbol(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),\n 179317114: (v) => new IFC2X3.IfcPreDefinedPointMarkerSymbol(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),\n 673634403: (v) => {\n var _a;\n return new IFC2X3.IfcProductDefinitionShape(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 871118103: (v) => new IFC2X3.IfcPropertyBoundedValue(new IFC2X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : TypeInitialiser(1, v[2]), !v[3] ? null : TypeInitialiser(1, v[3]), !v[4] ? null : new Handle(!v[4] ? null : v[4].value)),\n 1680319473: (v) => new IFC2X3.IfcPropertyDefinition(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value)),\n 4166981789: (v) => {\n var _a;\n return new IFC2X3.IfcPropertyEnumeratedValue(new IFC2X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(1, p) : null)) || [], !v[3] ? null : new Handle(!v[3] ? null : v[3].value));\n },\n 2752243245: (v) => {\n var _a;\n return new IFC2X3.IfcPropertyListValue(new IFC2X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(1, p) : null)) || [], !v[3] ? null : new Handle(!v[3] ? null : v[3].value));\n },\n 941946838: (v) => new IFC2X3.IfcPropertyReferenceValue(new IFC2X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),\n 3357820518: (v) => new IFC2X3.IfcPropertySetDefinition(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value)),\n 3650150729: (v) => new IFC2X3.IfcPropertySingleValue(new IFC2X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : TypeInitialiser(1, v[2]), !v[3] ? null : new Handle(!v[3] ? null : v[3].value)),\n 110355661: (v) => {\n var _a, _b;\n return new IFC2X3.IfcPropertyTableValue(new IFC2X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(1, p) : null)) || [], ((_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(1, p) : null)) || [], !v[4] ? null : new IFC2X3.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value));\n },\n 3615266464: (v) => new IFC2X3.IfcRectangleProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)),\n 3413951693: (v) => {\n var _a;\n return new IFC2X3.IfcRegularTimeSeries(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), new IFC2X3.IfcTimeMeasure(!v[8] ? null : v[8].value), ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3765753017: (v) => {\n var _a;\n return new IFC2X3.IfcReinforcementDefinitionProperties(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 478536968: (v) => new IFC2X3.IfcRelationship(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value)),\n 2778083089: (v) => new IFC2X3.IfcRoundedRectangleProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value)),\n 1509187699: (v) => {\n var _a, _b;\n return new IFC2X3.IfcSectionedSpine(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2411513650: (v) => new IFC2X3.IfcServiceLifeFactor(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), v[4], !v[5] ? null : TypeInitialiser(1, v[5]), TypeInitialiser(1, v[6]), !v[7] ? null : TypeInitialiser(1, v[7])),\n 4124623270: (v) => {\n var _a;\n return new IFC2X3.IfcShellBasedSurfaceModel(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2609359061: (v) => new IFC2X3.IfcSlippageConnectionCondition(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcLengthMeasure(!v[3] ? null : v[3].value)),\n 723233188: (_) => new IFC2X3.IfcSolidModel(),\n 2485662743: (v) => {\n var _a;\n return new IFC2X3.IfcSoundProperties(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new IFC2X3.IfcBoolean(!v[4] ? null : v[4].value), v[5], ((_a = v[6]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1202362311: (v) => new IFC2X3.IfcSoundValue(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), new IFC2X3.IfcFrequencyMeasure(!v[5] ? null : v[5].value), !v[6] ? null : TypeInitialiser(1, v[6])),\n 390701378: (v) => new IFC2X3.IfcSpaceThermalLoadProperties(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), v[5], v[6], !v[7] ? null : new IFC2X3.IfcText(!v[7] ? null : v[7].value), new IFC2X3.IfcPowerMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcPowerMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new Handle(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3.IfcLabel(!v[11] ? null : v[11].value), !v[12] ? null : new IFC2X3.IfcLabel(!v[12] ? null : v[12].value), v[13]),\n 1595516126: (v) => new IFC2X3.IfcStructuralLoadLinearForce(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLinearForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLinearForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcLinearForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLinearMomentMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcLinearMomentMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLinearMomentMeasure(!v[6] ? null : v[6].value)),\n 2668620305: (v) => new IFC2X3.IfcStructuralLoadPlanarForce(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcPlanarForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcPlanarForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcPlanarForceMeasure(!v[3] ? null : v[3].value)),\n 2473145415: (v) => new IFC2X3.IfcStructuralLoadSingleDisplacement(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPlaneAngleMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcPlaneAngleMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcPlaneAngleMeasure(!v[6] ? null : v[6].value)),\n 1973038258: (v) => new IFC2X3.IfcStructuralLoadSingleDisplacementDistortion(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPlaneAngleMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcPlaneAngleMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcPlaneAngleMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcCurvatureMeasure(!v[7] ? null : v[7].value)),\n 1597423693: (v) => new IFC2X3.IfcStructuralLoadSingleForce(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcTorqueMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcTorqueMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcTorqueMeasure(!v[6] ? null : v[6].value)),\n 1190533807: (v) => new IFC2X3.IfcStructuralLoadSingleForceWarping(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcTorqueMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcTorqueMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcTorqueMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcWarpingMomentMeasure(!v[7] ? null : v[7].value)),\n 3843319758: (v) => new IFC2X3.IfcStructuralProfileProperties(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcMassPerLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcAreaMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3.IfcWarpingConstantMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC2X3.IfcLengthMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC2X3.IfcLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC2X3.IfcAreaMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC2X3.IfcAreaMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC2X3.IfcSectionModulusMeasure(!v[16] ? null : v[16].value), !v[17] ? null : new IFC2X3.IfcSectionModulusMeasure(!v[17] ? null : v[17].value), !v[18] ? null : new IFC2X3.IfcSectionModulusMeasure(!v[18] ? null : v[18].value), !v[19] ? null : new IFC2X3.IfcSectionModulusMeasure(!v[19] ? null : v[19].value), !v[20] ? null : new IFC2X3.IfcSectionModulusMeasure(!v[20] ? null : v[20].value), !v[21] ? null : new IFC2X3.IfcLengthMeasure(!v[21] ? null : v[21].value), !v[22] ? null : new IFC2X3.IfcLengthMeasure(!v[22] ? null : v[22].value)),\n 3653947884: (v) => new IFC2X3.IfcStructuralSteelProfileProperties(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcMassPerLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcAreaMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3.IfcWarpingConstantMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC2X3.IfcLengthMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC2X3.IfcLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC2X3.IfcAreaMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC2X3.IfcAreaMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC2X3.IfcSectionModulusMeasure(!v[16] ? null : v[16].value), !v[17] ? null : new IFC2X3.IfcSectionModulusMeasure(!v[17] ? null : v[17].value), !v[18] ? null : new IFC2X3.IfcSectionModulusMeasure(!v[18] ? null : v[18].value), !v[19] ? null : new IFC2X3.IfcSectionModulusMeasure(!v[19] ? null : v[19].value), !v[20] ? null : new IFC2X3.IfcSectionModulusMeasure(!v[20] ? null : v[20].value), !v[21] ? null : new IFC2X3.IfcLengthMeasure(!v[21] ? null : v[21].value), !v[22] ? null : new IFC2X3.IfcLengthMeasure(!v[22] ? null : v[22].value), !v[23] ? null : new IFC2X3.IfcAreaMeasure(!v[23] ? null : v[23].value), !v[24] ? null : new IFC2X3.IfcAreaMeasure(!v[24] ? null : v[24].value), !v[25] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[25] ? null : v[25].value), !v[26] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[26] ? null : v[26].value)),\n 2233826070: (v) => new IFC2X3.IfcSubedge(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),\n 2513912981: (_) => new IFC2X3.IfcSurface(),\n 1878645084: (v) => new IFC2X3.IfcSurfaceStyleRendering(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : TypeInitialiser(1, v[7]), v[8]),\n 2247615214: (v) => new IFC2X3.IfcSweptAreaSolid(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),\n 1260650574: (v) => new IFC2X3.IfcSweptDiskSolid(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC2X3.IfcParameterValue(!v[3] ? null : v[3].value), new IFC2X3.IfcParameterValue(!v[4] ? null : v[4].value)),\n 230924584: (v) => new IFC2X3.IfcSweptSurface(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),\n 3071757647: (v) => new IFC2X3.IfcTShapeProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcPlaneAngleMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3.IfcPlaneAngleMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value)),\n 3028897424: (v) => {\n var _a;\n return new IFC2X3.IfcTerminatorSymbol(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value));\n },\n 4282788508: (v) => new IFC2X3.IfcTextLiteral(new IFC2X3.IfcPresentableText(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), v[2]),\n 3124975700: (v) => new IFC2X3.IfcTextLiteralWithExtent(new IFC2X3.IfcPresentableText(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), v[2], new Handle(!v[3] ? null : v[3].value), new IFC2X3.IfcBoxAlignment(!v[4] ? null : v[4].value)),\n 2715220739: (v) => new IFC2X3.IfcTrapeziumProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3.IfcLengthMeasure(!v[6] ? null : v[6].value)),\n 1345879162: (v) => new IFC2X3.IfcTwoDirectionRepeatFactor(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),\n 1628702193: (v) => {\n var _a;\n return new IFC2X3.IfcTypeObject(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2347495698: (v) => {\n var _a, _b;\n return new IFC2X3.IfcTypeProduct(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value));\n },\n 427810014: (v) => new IFC2X3.IfcUShapeProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcPlaneAngleMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value)),\n 1417489154: (v) => new IFC2X3.IfcVector(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcLengthMeasure(!v[1] ? null : v[1].value)),\n 2759199220: (v) => new IFC2X3.IfcVertexLoop(new Handle(!v[0] ? null : v[0].value)),\n 336235671: (v) => new IFC2X3.IfcWindowLiningProperties(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new Handle(!v[12] ? null : v[12].value)),\n 512836454: (v) => new IFC2X3.IfcWindowPanelProperties(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),\n 1299126871: (v) => {\n var _a, _b;\n return new IFC2X3.IfcWindowStyle(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], !v[10] ? null : v[10].value, !v[11] ? null : v[11].value);\n },\n 2543172580: (v) => new IFC2X3.IfcZShapeProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value)),\n 3288037868: (v) => {\n var _a;\n return new IFC2X3.IfcAnnotationCurveOccurrence(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value));\n },\n 669184980: (v) => {\n var _a;\n return new IFC2X3.IfcAnnotationFillArea(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2265737646: (v) => {\n var _a;\n return new IFC2X3.IfcAnnotationFillAreaOccurrence(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), v[4]);\n },\n 1302238472: (v) => new IFC2X3.IfcAnnotationSurface(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),\n 4261334040: (v) => new IFC2X3.IfcAxis1Placement(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),\n 3125803723: (v) => new IFC2X3.IfcAxis2Placement2D(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),\n 2740243338: (v) => new IFC2X3.IfcAxis2Placement3D(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value)),\n 2736907675: (v) => new IFC2X3.IfcBooleanResult(v[0], new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),\n 4182860854: (_) => new IFC2X3.IfcBoundedSurface(),\n 2581212453: (v) => new IFC2X3.IfcBoundingBox(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC2X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),\n 2713105998: (v) => new IFC2X3.IfcBoxedHalfSpace(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : v[1].value, new Handle(!v[2] ? null : v[2].value)),\n 2898889636: (v) => new IFC2X3.IfcCShapeProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value)),\n 1123145078: (v) => {\n var _a;\n return new IFC2X3.IfcCartesianPoint(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcLengthMeasure(p.value) : null)) || []);\n },\n 59481748: (v) => new IFC2X3.IfcCartesianTransformationOperator(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : !v[3] ? null : v[3].value),\n 3749851601: (v) => new IFC2X3.IfcCartesianTransformationOperator2D(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : !v[3] ? null : v[3].value),\n 3486308946: (v) => new IFC2X3.IfcCartesianTransformationOperator2DnonUniform(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : !v[3] ? null : v[3].value, !v[4] ? null : !v[4] ? null : v[4].value),\n 3331915920: (v) => new IFC2X3.IfcCartesianTransformationOperator3D(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : !v[3] ? null : v[3].value, !v[4] ? null : new Handle(!v[4] ? null : v[4].value)),\n 1416205885: (v) => new IFC2X3.IfcCartesianTransformationOperator3DnonUniform(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : !v[3] ? null : v[3].value, !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : !v[5] ? null : v[5].value, !v[6] ? null : !v[6] ? null : v[6].value),\n 1383045692: (v) => new IFC2X3.IfcCircleProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),\n 2205249479: (v) => {\n var _a;\n return new IFC2X3.IfcClosedShell(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2485617015: (v) => new IFC2X3.IfcCompositeCurveSegment(v[0], !v[1] ? null : v[1].value, new Handle(!v[2] ? null : v[2].value)),\n 4133800736: (v) => new IFC2X3.IfcCraneRailAShapeProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), new IFC2X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), new IFC2X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), new IFC2X3.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), new IFC2X3.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), new IFC2X3.IfcPositiveLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[14] ? null : v[14].value)),\n 194851669: (v) => new IFC2X3.IfcCraneRailFShapeProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), new IFC2X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), new IFC2X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value)),\n 2506170314: (v) => new IFC2X3.IfcCsgPrimitive3D(new Handle(!v[0] ? null : v[0].value)),\n 2147822146: (v) => new IFC2X3.IfcCsgSolid(new Handle(!v[0] ? null : v[0].value)),\n 2601014836: (_) => new IFC2X3.IfcCurve(),\n 2827736869: (v) => {\n var _a;\n return new IFC2X3.IfcCurveBoundedPlane(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 693772133: (v) => new IFC2X3.IfcDefinedSymbol(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),\n 606661476: (v) => {\n var _a;\n return new IFC2X3.IfcDimensionCurve(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value));\n },\n 4054601972: (v) => {\n var _a;\n return new IFC2X3.IfcDimensionCurveTerminator(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), v[4]);\n },\n 32440307: (v) => {\n var _a;\n return new IFC2X3.IfcDirection(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? Number(p.value) : null)) || []);\n },\n 2963535650: (v) => new IFC2X3.IfcDoorLiningProperties(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3.IfcLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new Handle(!v[14] ? null : v[14].value)),\n 1714330368: (v) => new IFC2X3.IfcDoorPanelProperties(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),\n 526551008: (v) => {\n var _a, _b;\n return new IFC2X3.IfcDoorStyle(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], !v[10] ? null : v[10].value, !v[11] ? null : v[11].value);\n },\n 3073041342: (v) => {\n var _a;\n return new IFC2X3.IfcDraughtingCallout(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 445594917: (v) => new IFC2X3.IfcDraughtingPreDefinedColour(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),\n 4006246654: (v) => new IFC2X3.IfcDraughtingPreDefinedCurveFont(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),\n 1472233963: (v) => {\n var _a;\n return new IFC2X3.IfcEdgeLoop(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1883228015: (v) => {\n var _a;\n return new IFC2X3.IfcElementQuantity(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 339256511: (v) => {\n var _a, _b;\n return new IFC2X3.IfcElementType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 2777663545: (v) => new IFC2X3.IfcElementarySurface(new Handle(!v[0] ? null : v[0].value)),\n 2835456948: (v) => new IFC2X3.IfcEllipseProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)),\n 80994333: (v) => new IFC2X3.IfcEnergyProperties(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), v[4], !v[5] ? null : new IFC2X3.IfcLabel(!v[5] ? null : v[5].value)),\n 477187591: (v) => new IFC2X3.IfcExtrudedAreaSolid(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),\n 2047409740: (v) => {\n var _a;\n return new IFC2X3.IfcFaceBasedSurfaceModel(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 374418227: (v) => new IFC2X3.IfcFillAreaStyleHatching(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), new IFC2X3.IfcPlaneAngleMeasure(!v[4] ? null : v[4].value)),\n 4203026998: (v) => new IFC2X3.IfcFillAreaStyleTileSymbolWithStyle(new Handle(!v[0] ? null : v[0].value)),\n 315944413: (v) => {\n var _a;\n return new IFC2X3.IfcFillAreaStyleTiles(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC2X3.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value));\n },\n 3455213021: (v) => new IFC2X3.IfcFluidFlowProperties(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), v[4], !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), new Handle(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcLabel(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new Handle(!v[13] ? null : v[13].value), !v[14] ? null : new Handle(!v[14] ? null : v[14].value), !v[15] ? null : TypeInitialiser(1, v[15]), !v[16] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[16] ? null : v[16].value), !v[17] ? null : new IFC2X3.IfcLinearVelocityMeasure(!v[17] ? null : v[17].value), !v[18] ? null : new IFC2X3.IfcPressureMeasure(!v[18] ? null : v[18].value)),\n 4238390223: (v) => {\n var _a, _b;\n return new IFC2X3.IfcFurnishingElementType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 1268542332: (v) => {\n var _a, _b;\n return new IFC2X3.IfcFurnitureType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 987898635: (v) => {\n var _a;\n return new IFC2X3.IfcGeometricCurveSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1484403080: (v) => new IFC2X3.IfcIShapeProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value)),\n 572779678: (v) => new IFC2X3.IfcLShapeProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcPlaneAngleMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value)),\n 1281925730: (v) => new IFC2X3.IfcLine(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),\n 1425443689: (v) => new IFC2X3.IfcManifoldSolidBrep(new Handle(!v[0] ? null : v[0].value)),\n 3888040117: (v) => new IFC2X3.IfcObject(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value)),\n 3388369263: (v) => new IFC2X3.IfcOffsetCurve2D(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : v[2].value),\n 3505215534: (v) => new IFC2X3.IfcOffsetCurve3D(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : v[2].value, new Handle(!v[3] ? null : v[3].value)),\n 3566463478: (v) => new IFC2X3.IfcPermeableCoveringProperties(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),\n 603570806: (v) => new IFC2X3.IfcPlanarBox(new IFC2X3.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC2X3.IfcLengthMeasure(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),\n 220341763: (v) => new IFC2X3.IfcPlane(new Handle(!v[0] ? null : v[0].value)),\n 2945172077: (v) => new IFC2X3.IfcProcess(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value)),\n 4208778838: (v) => new IFC2X3.IfcProduct(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),\n 103090709: (v) => {\n var _a;\n return new IFC2X3.IfcProject(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[8] ? null : v[8].value));\n },\n 4194566429: (v) => {\n var _a;\n return new IFC2X3.IfcProjectionCurve(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value));\n },\n 1451395588: (v) => {\n var _a;\n return new IFC2X3.IfcPropertySet(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3219374653: (v) => new IFC2X3.IfcProxy(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value)),\n 2770003689: (v) => new IFC2X3.IfcRectangleHollowProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value)),\n 2798486643: (v) => new IFC2X3.IfcRectangularPyramid(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC2X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),\n 3454111270: (v) => new IFC2X3.IfcRectangularTrimmedSurface(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcParameterValue(!v[1] ? null : v[1].value), new IFC2X3.IfcParameterValue(!v[2] ? null : v[2].value), new IFC2X3.IfcParameterValue(!v[3] ? null : v[3].value), new IFC2X3.IfcParameterValue(!v[4] ? null : v[4].value), !v[5] ? null : v[5].value, !v[6] ? null : v[6].value),\n 3939117080: (v) => {\n var _a;\n return new IFC2X3.IfcRelAssigns(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5]);\n },\n 1683148259: (v) => {\n var _a;\n return new IFC2X3.IfcRelAssignsToActor(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value));\n },\n 2495723537: (v) => {\n var _a;\n return new IFC2X3.IfcRelAssignsToControl(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value));\n },\n 1307041759: (v) => {\n var _a;\n return new IFC2X3.IfcRelAssignsToGroup(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value));\n },\n 4278684876: (v) => {\n var _a;\n return new IFC2X3.IfcRelAssignsToProcess(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value));\n },\n 2857406711: (v) => {\n var _a;\n return new IFC2X3.IfcRelAssignsToProduct(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value));\n },\n 3372526763: (v) => {\n var _a;\n return new IFC2X3.IfcRelAssignsToProjectOrder(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value));\n },\n 205026976: (v) => {\n var _a;\n return new IFC2X3.IfcRelAssignsToResource(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value));\n },\n 1865459582: (v) => {\n var _a;\n return new IFC2X3.IfcRelAssociates(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1327628568: (v) => {\n var _a;\n return new IFC2X3.IfcRelAssociatesAppliedValue(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 4095574036: (v) => {\n var _a;\n return new IFC2X3.IfcRelAssociatesApproval(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 919958153: (v) => {\n var _a;\n return new IFC2X3.IfcRelAssociatesClassification(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 2728634034: (v) => {\n var _a;\n return new IFC2X3.IfcRelAssociatesConstraint(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC2X3.IfcLabel(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value));\n },\n 982818633: (v) => {\n var _a;\n return new IFC2X3.IfcRelAssociatesDocument(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 3840914261: (v) => {\n var _a;\n return new IFC2X3.IfcRelAssociatesLibrary(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 2655215786: (v) => {\n var _a;\n return new IFC2X3.IfcRelAssociatesMaterial(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 2851387026: (v) => {\n var _a;\n return new IFC2X3.IfcRelAssociatesProfileProperties(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value));\n },\n 826625072: (v) => new IFC2X3.IfcRelConnects(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value)),\n 1204542856: (v) => new IFC2X3.IfcRelConnectsElements(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value)),\n 3945020480: (v) => {\n var _a, _b;\n return new IFC2X3.IfcRelConnectsPathElements(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? Number(p.value) : null)) || [], !v[8] ? null : ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? Number(p.value) : null)) || [], v[9], v[10]);\n },\n 4201705270: (v) => new IFC2X3.IfcRelConnectsPortToElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),\n 3190031847: (v) => new IFC2X3.IfcRelConnectsPorts(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),\n 2127690289: (v) => new IFC2X3.IfcRelConnectsStructuralActivity(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),\n 3912681535: (v) => new IFC2X3.IfcRelConnectsStructuralElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),\n 1638771189: (v) => new IFC2X3.IfcRelConnectsStructuralMember(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value)),\n 504942748: (v) => new IFC2X3.IfcRelConnectsWithEccentricity(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), new Handle(!v[10] ? null : v[10].value)),\n 3678494232: (v) => {\n var _a;\n return new IFC2X3.IfcRelConnectsWithRealizingElements(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value), ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 3242617779: (v) => {\n var _a;\n return new IFC2X3.IfcRelContainedInSpatialStructure(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 886880790: (v) => {\n var _a;\n return new IFC2X3.IfcRelCoversBldgElements(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2802773753: (v) => {\n var _a;\n return new IFC2X3.IfcRelCoversSpaces(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2551354335: (v) => {\n var _a;\n return new IFC2X3.IfcRelDecomposes(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 693640335: (v) => {\n var _a;\n return new IFC2X3.IfcRelDefines(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 4186316022: (v) => {\n var _a;\n return new IFC2X3.IfcRelDefinesByProperties(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 781010003: (v) => {\n var _a;\n return new IFC2X3.IfcRelDefinesByType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 3940055652: (v) => new IFC2X3.IfcRelFillsElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),\n 279856033: (v) => {\n var _a;\n return new IFC2X3.IfcRelFlowControlElements(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 4189434867: (v) => new IFC2X3.IfcRelInteractionRequirements(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcCountMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), new Handle(!v[8] ? null : v[8].value)),\n 3268803585: (v) => {\n var _a;\n return new IFC2X3.IfcRelNests(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2051452291: (v) => {\n var _a;\n return new IFC2X3.IfcRelOccupiesSpaces(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value));\n },\n 202636808: (v) => {\n var _a, _b;\n return new IFC2X3.IfcRelOverridesProperties(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value), ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 750771296: (v) => new IFC2X3.IfcRelProjectsElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),\n 1245217292: (v) => {\n var _a;\n return new IFC2X3.IfcRelReferencedInSpatialStructure(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 1058617721: (v) => {\n var _a;\n return new IFC2X3.IfcRelSchedulesCostItems(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value));\n },\n 4122056220: (v) => new IFC2X3.IfcRelSequence(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), new IFC2X3.IfcTimeMeasure(!v[6] ? null : v[6].value), v[7]),\n 366585022: (v) => {\n var _a;\n return new IFC2X3.IfcRelServicesBuildings(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3451746338: (v) => new IFC2X3.IfcRelSpaceBoundary(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], v[8]),\n 1401173127: (v) => new IFC2X3.IfcRelVoidsElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),\n 2914609552: (v) => new IFC2X3.IfcResource(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value)),\n 1856042241: (v) => new IFC2X3.IfcRevolvedAreaSolid(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPlaneAngleMeasure(!v[3] ? null : v[3].value)),\n 4158566097: (v) => new IFC2X3.IfcRightCircularCone(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC2X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)),\n 3626867408: (v) => new IFC2X3.IfcRightCircularCylinder(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC2X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)),\n 2706606064: (v) => new IFC2X3.IfcSpatialStructureElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), v[8]),\n 3893378262: (v) => {\n var _a, _b;\n return new IFC2X3.IfcSpatialStructureElementType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 451544542: (v) => new IFC2X3.IfcSphere(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)),\n 3544373492: (v) => new IFC2X3.IfcStructuralActivity(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8]),\n 3136571912: (v) => new IFC2X3.IfcStructuralItem(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),\n 530289379: (v) => new IFC2X3.IfcStructuralMember(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),\n 3689010777: (v) => new IFC2X3.IfcStructuralReaction(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8]),\n 3979015343: (v) => new IFC2X3.IfcStructuralSurfaceMember(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value)),\n 2218152070: (v) => {\n var _a;\n return new IFC2X3.IfcStructuralSurfaceMemberVarying(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcPositiveLengthMeasure(p.value) : null)) || [], new Handle(!v[10] ? null : v[10].value));\n },\n 4070609034: (v) => {\n var _a;\n return new IFC2X3.IfcStructuredDimensionCallout(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2028607225: (v) => new IFC2X3.IfcSurfaceCurveSweptAreaSolid(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcParameterValue(!v[3] ? null : v[3].value), new IFC2X3.IfcParameterValue(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),\n 2809605785: (v) => new IFC2X3.IfcSurfaceOfLinearExtrusion(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcLengthMeasure(!v[3] ? null : v[3].value)),\n 4124788165: (v) => new IFC2X3.IfcSurfaceOfRevolution(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),\n 1580310250: (v) => {\n var _a, _b;\n return new IFC2X3.IfcSystemFurnitureElementType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 3473067441: (v) => new IFC2X3.IfcTask(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : v[8].value, !v[9] ? null : !v[9] ? null : v[9].value),\n 2097647324: (v) => {\n var _a, _b;\n return new IFC2X3.IfcTransportElementType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2296667514: (v) => new IFC2X3.IfcActor(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),\n 1674181508: (v) => new IFC2X3.IfcAnnotation(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),\n 3207858831: (v) => new IFC2X3.IfcAsymmetricIShapeProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value)),\n 1334484129: (v) => new IFC2X3.IfcBlock(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC2X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),\n 3649129432: (v) => new IFC2X3.IfcBooleanClippingResult(v[0], new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),\n 1260505505: (_) => new IFC2X3.IfcBoundedCurve(),\n 4031249490: (v) => new IFC2X3.IfcBuilding(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC2X3.IfcLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new Handle(!v[11] ? null : v[11].value)),\n 1950629157: (v) => {\n var _a, _b;\n return new IFC2X3.IfcBuildingElementType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 3124254112: (v) => new IFC2X3.IfcBuildingStorey(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC2X3.IfcLengthMeasure(!v[9] ? null : v[9].value)),\n 2937912522: (v) => new IFC2X3.IfcCircleHollowProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)),\n 300633059: (v) => {\n var _a, _b;\n return new IFC2X3.IfcColumnType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3732776249: (v) => {\n var _a;\n return new IFC2X3.IfcCompositeCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[1] ? null : v[1].value);\n },\n 2510884976: (v) => new IFC2X3.IfcConic(new Handle(!v[0] ? null : v[0].value)),\n 2559216714: (v) => new IFC2X3.IfcConstructionResource(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),\n 3293443760: (v) => new IFC2X3.IfcControl(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value)),\n 3895139033: (v) => new IFC2X3.IfcCostItem(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value)),\n 1419761937: (v) => {\n var _a;\n return new IFC2X3.IfcCostSchedule(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value), new IFC2X3.IfcIdentifier(!v[11] ? null : v[11].value), v[12]);\n },\n 1916426348: (v) => {\n var _a, _b;\n return new IFC2X3.IfcCoveringType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3295246426: (v) => new IFC2X3.IfcCrewResource(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),\n 1457835157: (v) => {\n var _a, _b;\n return new IFC2X3.IfcCurtainWallType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 681481545: (v) => {\n var _a;\n return new IFC2X3.IfcDimensionCurveDirectedCallout(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3256556792: (v) => {\n var _a, _b;\n return new IFC2X3.IfcDistributionElementType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 3849074793: (v) => {\n var _a, _b;\n return new IFC2X3.IfcDistributionFlowElementType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 360485395: (v) => new IFC2X3.IfcElectricalBaseProperties(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), v[4], !v[5] ? null : new IFC2X3.IfcLabel(!v[5] ? null : v[5].value), v[6], new IFC2X3.IfcElectricVoltageMeasure(!v[7] ? null : v[7].value), new IFC2X3.IfcFrequencyMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcElectricCurrentMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcElectricCurrentMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3.IfcPowerMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC2X3.IfcPowerMeasure(!v[12] ? null : v[12].value), !v[13] ? null : v[13].value),\n 1758889154: (v) => new IFC2X3.IfcElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 4123344466: (v) => new IFC2X3.IfcElementAssembly(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8], v[9]),\n 1623761950: (v) => new IFC2X3.IfcElementComponent(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 2590856083: (v) => {\n var _a, _b;\n return new IFC2X3.IfcElementComponentType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 1704287377: (v) => new IFC2X3.IfcEllipse(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC2X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)),\n 2107101300: (v) => {\n var _a, _b;\n return new IFC2X3.IfcEnergyConversionDeviceType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 1962604670: (v) => new IFC2X3.IfcEquipmentElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 3272907226: (v) => new IFC2X3.IfcEquipmentStandard(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value)),\n 3174744832: (v) => {\n var _a, _b;\n return new IFC2X3.IfcEvaporativeCoolerType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3390157468: (v) => {\n var _a, _b;\n return new IFC2X3.IfcEvaporatorType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 807026263: (v) => new IFC2X3.IfcFacetedBrep(new Handle(!v[0] ? null : v[0].value)),\n 3737207727: (v) => {\n var _a;\n return new IFC2X3.IfcFacetedBrepWithVoids(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 647756555: (v) => new IFC2X3.IfcFastener(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 2489546625: (v) => {\n var _a, _b;\n return new IFC2X3.IfcFastenerType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 2827207264: (v) => new IFC2X3.IfcFeatureElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 2143335405: (v) => new IFC2X3.IfcFeatureElementAddition(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 1287392070: (v) => new IFC2X3.IfcFeatureElementSubtraction(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 3907093117: (v) => {\n var _a, _b;\n return new IFC2X3.IfcFlowControllerType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 3198132628: (v) => {\n var _a, _b;\n return new IFC2X3.IfcFlowFittingType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 3815607619: (v) => {\n var _a, _b;\n return new IFC2X3.IfcFlowMeterType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1482959167: (v) => {\n var _a, _b;\n return new IFC2X3.IfcFlowMovingDeviceType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 1834744321: (v) => {\n var _a, _b;\n return new IFC2X3.IfcFlowSegmentType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 1339347760: (v) => {\n var _a, _b;\n return new IFC2X3.IfcFlowStorageDeviceType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 2297155007: (v) => {\n var _a, _b;\n return new IFC2X3.IfcFlowTerminalType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 3009222698: (v) => {\n var _a, _b;\n return new IFC2X3.IfcFlowTreatmentDeviceType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 263784265: (v) => new IFC2X3.IfcFurnishingElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 814719939: (v) => new IFC2X3.IfcFurnitureStandard(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value)),\n 200128114: (v) => {\n var _a, _b;\n return new IFC2X3.IfcGasTerminalType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3009204131: (v) => {\n var _a, _b, _c;\n return new IFC2X3.IfcGrid(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : ((_c = v[9]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2706460486: (v) => new IFC2X3.IfcGroup(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value)),\n 1251058090: (v) => {\n var _a, _b;\n return new IFC2X3.IfcHeatExchangerType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1806887404: (v) => {\n var _a, _b;\n return new IFC2X3.IfcHumidifierType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2391368822: (v) => {\n var _a;\n return new IFC2X3.IfcInventory(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), v[5], new Handle(!v[6] ? null : v[6].value), ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new Handle(!v[10] ? null : v[10].value));\n },\n 4288270099: (v) => {\n var _a, _b;\n return new IFC2X3.IfcJunctionBoxType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3827777499: (v) => new IFC2X3.IfcLaborResource(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcText(!v[9] ? null : v[9].value)),\n 1051575348: (v) => {\n var _a, _b;\n return new IFC2X3.IfcLampType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1161773419: (v) => {\n var _a, _b;\n return new IFC2X3.IfcLightFixtureType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2506943328: (v) => {\n var _a;\n return new IFC2X3.IfcLinearDimension(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 377706215: (v) => new IFC2X3.IfcMechanicalFastener(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value)),\n 2108223431: (v) => {\n var _a, _b;\n return new IFC2X3.IfcMechanicalFastenerType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 3181161470: (v) => {\n var _a, _b;\n return new IFC2X3.IfcMemberType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 977012517: (v) => {\n var _a, _b;\n return new IFC2X3.IfcMotorConnectionType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1916936684: (v) => {\n var _a;\n return new IFC2X3.IfcMove(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : v[8].value, !v[9] ? null : !v[9] ? null : v[9].value, new Handle(!v[10] ? null : v[10].value), new Handle(!v[11] ? null : v[11].value), !v[12] ? null : ((_a = v[12]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcText(p.value) : null)) || []);\n },\n 4143007308: (v) => new IFC2X3.IfcOccupant(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), v[6]),\n 3588315303: (v) => new IFC2X3.IfcOpeningElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 3425660407: (v) => new IFC2X3.IfcOrderAction(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : v[8].value, !v[9] ? null : !v[9] ? null : v[9].value, new IFC2X3.IfcIdentifier(!v[10] ? null : v[10].value)),\n 2837617999: (v) => {\n var _a, _b;\n return new IFC2X3.IfcOutletType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2382730787: (v) => new IFC2X3.IfcPerformanceHistory(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3.IfcLabel(!v[5] ? null : v[5].value)),\n 3327091369: (v) => new IFC2X3.IfcPermit(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value)),\n 804291784: (v) => {\n var _a, _b;\n return new IFC2X3.IfcPipeFittingType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 4231323485: (v) => {\n var _a, _b;\n return new IFC2X3.IfcPipeSegmentType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 4017108033: (v) => {\n var _a, _b;\n return new IFC2X3.IfcPlateType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3724593414: (v) => {\n var _a;\n return new IFC2X3.IfcPolyline(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3740093272: (v) => new IFC2X3.IfcPort(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),\n 2744685151: (v) => new IFC2X3.IfcProcedure(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value)),\n 2904328755: (v) => new IFC2X3.IfcProjectOrder(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value)),\n 3642467123: (v) => {\n var _a;\n return new IFC2X3.IfcProjectOrderRecord(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[6]);\n },\n 3651124850: (v) => new IFC2X3.IfcProjectionElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 1842657554: (v) => {\n var _a, _b;\n return new IFC2X3.IfcProtectiveDeviceType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2250791053: (v) => {\n var _a, _b;\n return new IFC2X3.IfcPumpType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3248260540: (v) => {\n var _a;\n return new IFC2X3.IfcRadiusDimension(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2893384427: (v) => {\n var _a, _b;\n return new IFC2X3.IfcRailingType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2324767716: (v) => {\n var _a, _b;\n return new IFC2X3.IfcRampFlightType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 160246688: (v) => {\n var _a;\n return new IFC2X3.IfcRelAggregates(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2863920197: (v) => {\n var _a;\n return new IFC2X3.IfcRelAssignsTasks(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value));\n },\n 1768891740: (v) => {\n var _a, _b;\n return new IFC2X3.IfcSanitaryTerminalType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3517283431: (v) => new IFC2X3.IfcScheduleTimeControl(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new Handle(!v[10] ? null : v[10].value), !v[11] ? null : new Handle(!v[11] ? null : v[11].value), !v[12] ? null : new Handle(!v[12] ? null : v[12].value), !v[13] ? null : new IFC2X3.IfcTimeMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC2X3.IfcTimeMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC2X3.IfcTimeMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC2X3.IfcTimeMeasure(!v[16] ? null : v[16].value), !v[17] ? null : new IFC2X3.IfcTimeMeasure(!v[17] ? null : v[17].value), !v[18] ? null : !v[18] ? null : v[18].value, !v[19] ? null : new Handle(!v[19] ? null : v[19].value), !v[20] ? null : new IFC2X3.IfcTimeMeasure(!v[20] ? null : v[20].value), !v[21] ? null : new IFC2X3.IfcTimeMeasure(!v[21] ? null : v[21].value), !v[22] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[22] ? null : v[22].value)),\n 4105383287: (v) => new IFC2X3.IfcServiceLife(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), v[5], new IFC2X3.IfcTimeMeasure(!v[6] ? null : v[6].value)),\n 4097777520: (v) => new IFC2X3.IfcSite(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC2X3.IfcCompoundPlaneAngleMeasure(v[9].map((x) => x.value)), !v[10] ? null : new IFC2X3.IfcCompoundPlaneAngleMeasure(v[10].map((x) => x.value)), !v[11] ? null : new IFC2X3.IfcLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC2X3.IfcLabel(!v[12] ? null : v[12].value), !v[13] ? null : new Handle(!v[13] ? null : v[13].value)),\n 2533589738: (v) => {\n var _a, _b;\n return new IFC2X3.IfcSlabType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3856911033: (v) => new IFC2X3.IfcSpace(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], !v[10] ? null : new IFC2X3.IfcLengthMeasure(!v[10] ? null : v[10].value)),\n 1305183839: (v) => {\n var _a, _b;\n return new IFC2X3.IfcSpaceHeaterType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 652456506: (v) => new IFC2X3.IfcSpaceProgram(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcAreaMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcAreaMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value), new IFC2X3.IfcAreaMeasure(!v[9] ? null : v[9].value)),\n 3812236995: (v) => {\n var _a, _b;\n return new IFC2X3.IfcSpaceType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3112655638: (v) => {\n var _a, _b;\n return new IFC2X3.IfcStackTerminalType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1039846685: (v) => {\n var _a, _b;\n return new IFC2X3.IfcStairFlightType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 682877961: (v) => new IFC2X3.IfcStructuralAction(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : v[9].value, !v[10] ? null : new Handle(!v[10] ? null : v[10].value)),\n 1179482911: (v) => new IFC2X3.IfcStructuralConnection(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value)),\n 4243806635: (v) => new IFC2X3.IfcStructuralCurveConnection(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value)),\n 214636428: (v) => new IFC2X3.IfcStructuralCurveMember(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7]),\n 2445595289: (v) => new IFC2X3.IfcStructuralCurveMemberVarying(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7]),\n 1807405624: (v) => new IFC2X3.IfcStructuralLinearAction(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : v[9].value, !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11]),\n 1721250024: (v) => {\n var _a;\n return new IFC2X3.IfcStructuralLinearActionVarying(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : v[9].value, !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11], new Handle(!v[12] ? null : v[12].value), ((_a = v[13]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1252848954: (v) => new IFC2X3.IfcStructuralLoadGroup(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), v[5], v[6], v[7], !v[8] ? null : new IFC2X3.IfcRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcLabel(!v[9] ? null : v[9].value)),\n 1621171031: (v) => new IFC2X3.IfcStructuralPlanarAction(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : v[9].value, !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11]),\n 3987759626: (v) => {\n var _a;\n return new IFC2X3.IfcStructuralPlanarActionVarying(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : v[9].value, !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11], new Handle(!v[12] ? null : v[12].value), ((_a = v[13]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2082059205: (v) => new IFC2X3.IfcStructuralPointAction(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : v[9].value, !v[10] ? null : new Handle(!v[10] ? null : v[10].value)),\n 734778138: (v) => new IFC2X3.IfcStructuralPointConnection(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value)),\n 1235345126: (v) => new IFC2X3.IfcStructuralPointReaction(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8]),\n 2986769608: (v) => new IFC2X3.IfcStructuralResultGroup(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : v[7].value),\n 1975003073: (v) => new IFC2X3.IfcStructuralSurfaceConnection(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value)),\n 148013059: (v) => new IFC2X3.IfcSubContractResource(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcText(!v[10] ? null : v[10].value)),\n 2315554128: (v) => {\n var _a, _b;\n return new IFC2X3.IfcSwitchingDeviceType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2254336722: (v) => new IFC2X3.IfcSystem(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value)),\n 5716631: (v) => {\n var _a, _b;\n return new IFC2X3.IfcTankType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1637806684: (v) => {\n var _a;\n return new IFC2X3.IfcTimeSeriesSchedule(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[6], new Handle(!v[7] ? null : v[7].value));\n },\n 1692211062: (v) => {\n var _a, _b;\n return new IFC2X3.IfcTransformerType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1620046519: (v) => new IFC2X3.IfcTransportElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC2X3.IfcMassMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcCountMeasure(!v[10] ? null : v[10].value)),\n 3593883385: (v) => {\n var _a, _b;\n return new IFC2X3.IfcTrimmedCurve(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[3] ? null : v[3].value, v[4]);\n },\n 1600972822: (v) => {\n var _a, _b;\n return new IFC2X3.IfcTubeBundleType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1911125066: (v) => {\n var _a, _b;\n return new IFC2X3.IfcUnitaryEquipmentType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 728799441: (v) => {\n var _a, _b;\n return new IFC2X3.IfcValveType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2769231204: (v) => new IFC2X3.IfcVirtualElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 1898987631: (v) => {\n var _a, _b;\n return new IFC2X3.IfcWallType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1133259667: (v) => {\n var _a, _b;\n return new IFC2X3.IfcWasteTerminalType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1028945134: (v) => {\n var _a;\n return new IFC2X3.IfcWorkControl(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcTimeMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcTimeMeasure(!v[10] ? null : v[10].value), new Handle(!v[11] ? null : v[11].value), !v[12] ? null : new Handle(!v[12] ? null : v[12].value), v[13], !v[14] ? null : new IFC2X3.IfcLabel(!v[14] ? null : v[14].value));\n },\n 4218914973: (v) => {\n var _a;\n return new IFC2X3.IfcWorkPlan(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcTimeMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcTimeMeasure(!v[10] ? null : v[10].value), new Handle(!v[11] ? null : v[11].value), !v[12] ? null : new Handle(!v[12] ? null : v[12].value), v[13], !v[14] ? null : new IFC2X3.IfcLabel(!v[14] ? null : v[14].value));\n },\n 3342526732: (v) => {\n var _a;\n return new IFC2X3.IfcWorkSchedule(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcTimeMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcTimeMeasure(!v[10] ? null : v[10].value), new Handle(!v[11] ? null : v[11].value), !v[12] ? null : new Handle(!v[12] ? null : v[12].value), v[13], !v[14] ? null : new IFC2X3.IfcLabel(!v[14] ? null : v[14].value));\n },\n 1033361043: (v) => new IFC2X3.IfcZone(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value)),\n 1213861670: (v) => {\n var _a;\n return new IFC2X3.Ifc2DCompositeCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[1] ? null : v[1].value);\n },\n 3821786052: (v) => new IFC2X3.IfcActionRequest(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value)),\n 1411407467: (v) => {\n var _a, _b;\n return new IFC2X3.IfcAirTerminalBoxType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3352864051: (v) => {\n var _a, _b;\n return new IFC2X3.IfcAirTerminalType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1871374353: (v) => {\n var _a, _b;\n return new IFC2X3.IfcAirToAirHeatRecoveryType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2470393545: (v) => {\n var _a;\n return new IFC2X3.IfcAngularDimension(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3460190687: (v) => new IFC2X3.IfcAsset(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), new Handle(!v[8] ? null : v[8].value), new Handle(!v[9] ? null : v[9].value), new Handle(!v[10] ? null : v[10].value), new Handle(!v[11] ? null : v[11].value), new Handle(!v[12] ? null : v[12].value), new Handle(!v[13] ? null : v[13].value)),\n 1967976161: (v) => {\n var _a;\n return new IFC2X3.IfcBSplineCurve(!v[0] ? null : v[0].value, ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2], !v[3] ? null : v[3].value, !v[4] ? null : v[4].value);\n },\n 819618141: (v) => {\n var _a, _b;\n return new IFC2X3.IfcBeamType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1916977116: (v) => {\n var _a;\n return new IFC2X3.IfcBezierCurve(!v[0] ? null : v[0].value, ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2], !v[3] ? null : v[3].value, !v[4] ? null : v[4].value);\n },\n 231477066: (v) => {\n var _a, _b;\n return new IFC2X3.IfcBoilerType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3299480353: (v) => new IFC2X3.IfcBuildingElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 52481810: (v) => new IFC2X3.IfcBuildingElementComponent(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 2979338954: (v) => new IFC2X3.IfcBuildingElementPart(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 1095909175: (v) => new IFC2X3.IfcBuildingElementProxy(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1909888760: (v) => {\n var _a, _b;\n return new IFC2X3.IfcBuildingElementProxyType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 395041908: (v) => {\n var _a, _b;\n return new IFC2X3.IfcCableCarrierFittingType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3293546465: (v) => {\n var _a, _b;\n return new IFC2X3.IfcCableCarrierSegmentType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1285652485: (v) => {\n var _a, _b;\n return new IFC2X3.IfcCableSegmentType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2951183804: (v) => {\n var _a, _b;\n return new IFC2X3.IfcChillerType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2611217952: (v) => new IFC2X3.IfcCircle(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)),\n 2301859152: (v) => {\n var _a, _b;\n return new IFC2X3.IfcCoilType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 843113511: (v) => new IFC2X3.IfcColumn(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 3850581409: (v) => {\n var _a, _b;\n return new IFC2X3.IfcCompressorType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2816379211: (v) => {\n var _a, _b;\n return new IFC2X3.IfcCondenserType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2188551683: (v) => new IFC2X3.IfcCondition(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value)),\n 1163958913: (v) => new IFC2X3.IfcConditionCriterion(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value)),\n 3898045240: (v) => new IFC2X3.IfcConstructionEquipmentResource(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),\n 1060000209: (v) => {\n var _a;\n return new IFC2X3.IfcConstructionMaterialResource(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle(!v[8] ? null : v[8].value), !v[9] ? null : ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new IFC2X3.IfcRatioMeasure(!v[10] ? null : v[10].value));\n },\n 488727124: (v) => new IFC2X3.IfcConstructionProductResource(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),\n 335055490: (v) => {\n var _a, _b;\n return new IFC2X3.IfcCooledBeamType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2954562838: (v) => {\n var _a, _b;\n return new IFC2X3.IfcCoolingTowerType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1973544240: (v) => new IFC2X3.IfcCovering(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3495092785: (v) => new IFC2X3.IfcCurtainWall(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 3961806047: (v) => {\n var _a, _b;\n return new IFC2X3.IfcDamperType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 4147604152: (v) => {\n var _a;\n return new IFC2X3.IfcDiameterDimension(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1335981549: (v) => new IFC2X3.IfcDiscreteAccessory(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 2635815018: (v) => {\n var _a, _b;\n return new IFC2X3.IfcDiscreteAccessoryType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 1599208980: (v) => {\n var _a, _b;\n return new IFC2X3.IfcDistributionChamberElementType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2063403501: (v) => {\n var _a, _b;\n return new IFC2X3.IfcDistributionControlElementType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 1945004755: (v) => new IFC2X3.IfcDistributionElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 3040386961: (v) => new IFC2X3.IfcDistributionFlowElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 3041715199: (v) => new IFC2X3.IfcDistributionPort(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7]),\n 395920057: (v) => new IFC2X3.IfcDoor(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value)),\n 869906466: (v) => {\n var _a, _b;\n return new IFC2X3.IfcDuctFittingType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3760055223: (v) => {\n var _a, _b;\n return new IFC2X3.IfcDuctSegmentType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2030761528: (v) => {\n var _a, _b;\n return new IFC2X3.IfcDuctSilencerType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 855621170: (v) => new IFC2X3.IfcEdgeFeature(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value)),\n 663422040: (v) => {\n var _a, _b;\n return new IFC2X3.IfcElectricApplianceType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3277789161: (v) => {\n var _a, _b;\n return new IFC2X3.IfcElectricFlowStorageDeviceType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1534661035: (v) => {\n var _a, _b;\n return new IFC2X3.IfcElectricGeneratorType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1365060375: (v) => {\n var _a, _b;\n return new IFC2X3.IfcElectricHeaterType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1217240411: (v) => {\n var _a, _b;\n return new IFC2X3.IfcElectricMotorType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 712377611: (v) => {\n var _a, _b;\n return new IFC2X3.IfcElectricTimeControlType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1634875225: (v) => new IFC2X3.IfcElectricalCircuit(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value)),\n 857184966: (v) => new IFC2X3.IfcElectricalElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 1658829314: (v) => new IFC2X3.IfcEnergyConversionDevice(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 346874300: (v) => {\n var _a, _b;\n return new IFC2X3.IfcFanType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1810631287: (v) => {\n var _a, _b;\n return new IFC2X3.IfcFilterType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 4222183408: (v) => {\n var _a, _b;\n return new IFC2X3.IfcFireSuppressionTerminalType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2058353004: (v) => new IFC2X3.IfcFlowController(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 4278956645: (v) => new IFC2X3.IfcFlowFitting(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 4037862832: (v) => {\n var _a, _b;\n return new IFC2X3.IfcFlowInstrumentType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3132237377: (v) => new IFC2X3.IfcFlowMovingDevice(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 987401354: (v) => new IFC2X3.IfcFlowSegment(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 707683696: (v) => new IFC2X3.IfcFlowStorageDevice(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 2223149337: (v) => new IFC2X3.IfcFlowTerminal(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 3508470533: (v) => new IFC2X3.IfcFlowTreatmentDevice(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 900683007: (v) => new IFC2X3.IfcFooting(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1073191201: (v) => new IFC2X3.IfcMember(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 1687234759: (v) => new IFC2X3.IfcPile(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8], v[9]),\n 3171933400: (v) => new IFC2X3.IfcPlate(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 2262370178: (v) => new IFC2X3.IfcRailing(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3024970846: (v) => new IFC2X3.IfcRamp(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3283111854: (v) => new IFC2X3.IfcRampFlight(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 3055160366: (v) => {\n var _a, _b;\n return new IFC2X3.IfcRationalBezierCurve(!v[0] ? null : v[0].value, ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2], !v[3] ? null : v[3].value, !v[4] ? null : v[4].value, ((_b = v[5]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? Number(p.value) : null)) || []);\n },\n 3027567501: (v) => new IFC2X3.IfcReinforcingElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value)),\n 2320036040: (v) => new IFC2X3.IfcReinforcingMesh(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), new IFC2X3.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), new IFC2X3.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), new IFC2X3.IfcAreaMeasure(!v[13] ? null : v[13].value), new IFC2X3.IfcAreaMeasure(!v[14] ? null : v[14].value), new IFC2X3.IfcPositiveLengthMeasure(!v[15] ? null : v[15].value), new IFC2X3.IfcPositiveLengthMeasure(!v[16] ? null : v[16].value)),\n 2016517767: (v) => new IFC2X3.IfcRoof(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1376911519: (v) => new IFC2X3.IfcRoundedEdgeFeature(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value)),\n 1783015770: (v) => {\n var _a, _b;\n return new IFC2X3.IfcSensorType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1529196076: (v) => new IFC2X3.IfcSlab(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 331165859: (v) => new IFC2X3.IfcStair(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 4252922144: (v) => new IFC2X3.IfcStairFlight(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : !v[8] ? null : v[8].value, !v[9] ? null : !v[9] ? null : v[9].value, !v[10] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value)),\n 2515109513: (v) => {\n var _a, _b;\n return new IFC2X3.IfcStructuralAnalysisModel(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3824725483: (v) => new IFC2X3.IfcTendon(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9], new IFC2X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), new IFC2X3.IfcAreaMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC2X3.IfcForceMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC2X3.IfcPressureMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[16] ? null : v[16].value)),\n 2347447852: (v) => new IFC2X3.IfcTendonAnchor(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value)),\n 3313531582: (v) => {\n var _a, _b;\n return new IFC2X3.IfcVibrationIsolatorType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2391406946: (v) => new IFC2X3.IfcWall(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 3512223829: (v) => new IFC2X3.IfcWallStandardCase(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 3304561284: (v) => new IFC2X3.IfcWindow(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value)),\n 2874132201: (v) => {\n var _a, _b;\n return new IFC2X3.IfcActuatorType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3001207471: (v) => {\n var _a, _b;\n return new IFC2X3.IfcAlarmType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 753842376: (v) => new IFC2X3.IfcBeam(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 2454782716: (v) => new IFC2X3.IfcChamferEdgeFeature(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value)),\n 578613899: (v) => {\n var _a, _b;\n return new IFC2X3.IfcControllerType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1052013943: (v) => new IFC2X3.IfcDistributionChamberElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 1062813311: (v) => new IFC2X3.IfcDistributionControlElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcIdentifier(!v[8] ? null : v[8].value)),\n 3700593921: (v) => new IFC2X3.IfcElectricDistributionPoint(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC2X3.IfcLabel(!v[9] ? null : v[9].value)),\n 979691226: (v) => new IFC2X3.IfcReinforcingBar(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), new IFC2X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), new IFC2X3.IfcAreaMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), v[12], v[13])\n};\nInheritanceDef[1] = {\n 618182010: [IFCTELECOMADDRESS, IFCPOSTALADDRESS],\n 411424972: [IFCENVIRONMENTALIMPACTVALUE, IFCCOSTVALUE],\n 4037036970: [IFCBOUNDARYNODECONDITIONWARPING, IFCBOUNDARYNODECONDITION, IFCBOUNDARYFACECONDITION, IFCBOUNDARYEDGECONDITION],\n 1387855156: [IFCBOUNDARYNODECONDITIONWARPING],\n 3264961684: [IFCCOLOURRGB],\n 2859738748: [IFCCONNECTIONCURVEGEOMETRY, IFCCONNECTIONSURFACEGEOMETRY, IFCCONNECTIONPORTGEOMETRY, IFCCONNECTIONPOINTECCENTRICITY, IFCCONNECTIONPOINTGEOMETRY],\n 2614616156: [IFCCONNECTIONPOINTECCENTRICITY],\n 1959218052: [IFCOBJECTIVE, IFCMETRIC],\n 3796139169: [IFCDIMENSIONPAIR, IFCDIMENSIONCALLOUTRELATIONSHIP],\n 3200245327: [IFCDOCUMENTREFERENCE, IFCCLASSIFICATIONREFERENCE, IFCLIBRARYREFERENCE, IFCEXTERNALLYDEFINEDTEXTFONT, IFCEXTERNALLYDEFINEDSYMBOL, IFCEXTERNALLYDEFINEDSURFACESTYLE, IFCEXTERNALLYDEFINEDHATCHSTYLE],\n 3265635763: [IFCHYGROSCOPICMATERIALPROPERTIES, IFCGENERALMATERIALPROPERTIES, IFCFUELPROPERTIES, IFCEXTENDEDMATERIALPROPERTIES, IFCWATERPROPERTIES, IFCTHERMALMATERIALPROPERTIES, IFCPRODUCTSOFCOMBUSTIONPROPERTIES, IFCOPTICALMATERIALPROPERTIES, IFCMECHANICALCONCRETEMATERIALPROPERTIES, IFCMECHANICALSTEELMATERIALPROPERTIES, IFCMECHANICALMATERIALPROPERTIES],\n 4256014907: [IFCMECHANICALCONCRETEMATERIALPROPERTIES, IFCMECHANICALSTEELMATERIALPROPERTIES],\n 1918398963: [IFCCONVERSIONBASEDUNIT, IFCCONTEXTDEPENDENTUNIT, IFCSIUNIT],\n 3701648758: [IFCLOCALPLACEMENT, IFCGRIDPLACEMENT],\n 2483315170: [IFCPHYSICALCOMPLEXQUANTITY, IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA, IFCPHYSICALSIMPLEQUANTITY],\n 2226359599: [IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA],\n 3727388367: [IFCDRAUGHTINGPREDEFINEDCURVEFONT, IFCPREDEFINEDCURVEFONT, IFCDRAUGHTINGPREDEFINEDCOLOUR, IFCPREDEFINEDCOLOUR, IFCDRAUGHTINGPREDEFINEDTEXTFONT, IFCTEXTSTYLEFONTMODEL, IFCPREDEFINEDTEXTFONT, IFCPREDEFINEDPOINTMARKERSYMBOL, IFCPREDEFINEDDIMENSIONSYMBOL, IFCPREDEFINEDTERMINATORSYMBOL, IFCPREDEFINEDSYMBOL],\n 990879717: [IFCPREDEFINEDPOINTMARKERSYMBOL, IFCPREDEFINEDDIMENSIONSYMBOL, IFCPREDEFINEDTERMINATORSYMBOL],\n 1775413392: [IFCDRAUGHTINGPREDEFINEDTEXTFONT, IFCTEXTSTYLEFONTMODEL],\n 2022622350: [IFCPRESENTATIONLAYERWITHSTYLE],\n 3119450353: [IFCFILLAREASTYLE, IFCCURVESTYLE, IFCTEXTSTYLE, IFCSYMBOLSTYLE, IFCSURFACESTYLE],\n 2095639259: [IFCPRODUCTDEFINITIONSHAPE, IFCMATERIALDEFINITIONREPRESENTATION],\n 3958567839: [IFCLSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCRANERAILFSHAPEPROFILEDEF, IFCCRANERAILASHAPEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF, IFCPARAMETERIZEDPROFILEDEF, IFCDERIVEDPROFILEDEF, IFCCOMPOSITEPROFILEDEF, IFCCENTERLINEPROFILEDEF, IFCARBITRARYOPENPROFILEDEF, IFCARBITRARYPROFILEDEFWITHVOIDS, IFCARBITRARYCLOSEDPROFILEDEF],\n 2802850158: [IFCSTRUCTURALSTEELPROFILEPROPERTIES, IFCSTRUCTURALPROFILEPROPERTIES, IFCGENERALPROFILEPROPERTIES, IFCRIBPLATEPROFILEPROPERTIES],\n 2598011224: [IFCCOMPLEXPROPERTY, IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE, IFCSIMPLEPROPERTY],\n 1076942058: [IFCSTYLEDREPRESENTATION, IFCSTYLEMODEL, IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION, IFCSHAPEMODEL],\n 3377609919: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT, IFCGEOMETRICREPRESENTATIONCONTEXT],\n 3008791417: [IFCMAPPEDITEM, IFCFILLAREASTYLETILES, IFCFILLAREASTYLETILESYMBOLWITHSTYLE, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIAMETERDIMENSION, IFCANGULARDIMENSION, IFCRADIUSDIMENSION, IFCLINEARDIMENSION, IFCDIMENSIONCURVEDIRECTEDCALLOUT, IFCSTRUCTUREDDIMENSIONCALLOUT, IFCDRAUGHTINGCALLOUT, IFCDIRECTION, IFCDEFINEDSYMBOL, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBEZIERCURVE, IFCBEZIERCURVE, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFC2DCOMPOSITECURVE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCCOMPOSITECURVESEGMENT, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONSURFACE, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPLANE, IFCELEMENTARYSURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCTWODIRECTIONREPEATFACTOR, IFCONEDIRECTIONREPEATFACTOR, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET, IFCGEOMETRICREPRESENTATIONITEM, IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX, IFCTOPOLOGICALREPRESENTATIONITEM, IFCANNOTATIONFILLAREAOCCURRENCE, IFCPROJECTIONCURVE, IFCDIMENSIONCURVE, IFCANNOTATIONCURVEOCCURRENCE, IFCANNOTATIONTEXTOCCURRENCE, IFCDIMENSIONCURVETERMINATOR, IFCTERMINATORSYMBOL, IFCANNOTATIONSYMBOLOCCURRENCE, IFCANNOTATIONSURFACEOCCURRENCE, IFCANNOTATIONOCCURRENCE, IFCSTYLEDITEM],\n 2341007311: [IFCRELDEFINESBYTYPE, IFCRELOVERRIDESPROPERTIES, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELVOIDSELEMENT, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPROJECTSELEMENT, IFCRELINTERACTIONREQUIREMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALELEMENT, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESPROFILEPROPERTIES, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATESAPPLIEDVALUE, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTASKS, IFCRELSCHEDULESCOSTITEMS, IFCRELASSIGNSTOPROJECTORDER, IFCRELASSIGNSTOCONTROL, IFCRELOCCUPIESSPACES, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS, IFCRELATIONSHIP, IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCFLUIDFLOWPROPERTIES, IFCELECTRICALBASEPROPERTIES, IFCENERGYPROPERTIES, IFCELEMENTQUANTITY, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCSPACETHERMALLOADPROPERTIES, IFCSOUNDVALUE, IFCSOUNDPROPERTIES, IFCSERVICELIFEFACTOR, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPROPERTYSETDEFINITION, IFCPROPERTYDEFINITION, IFCCONDITION, IFCASSET, IFCZONE, IFCSTRUCTURALANALYSISMODEL, IFCELECTRICALCIRCUIT, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCCONDITIONCRITERION, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCTIMESERIESSCHEDULE, IFCSPACEPROGRAM, IFCSERVICELIFE, IFCSCHEDULETIMECONTROL, IFCPROJECTORDERRECORD, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCFURNITURESTANDARD, IFCEQUIPMENTSTANDARD, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCPROJECT, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCELECTRICALELEMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCFURNISHINGELEMENT, IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCEQUIPMENTELEMENT, IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCORDERACTION, IFCMOVE, IFCTASK, IFCPROCESS, IFCOBJECT, IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT, IFCTYPEOBJECT, IFCOBJECTDEFINITION],\n 3982875396: [IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION],\n 3692461612: [IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE],\n 2273995522: [IFCSLIPPAGECONNECTIONCONDITION, IFCFAILURECONNECTIONCONDITION],\n 2162789131: [IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE, IFCSTRUCTURALLOADSTATIC],\n 2525727697: [IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE],\n 2830218821: [IFCSTYLEDREPRESENTATION],\n 3958052878: [IFCANNOTATIONFILLAREAOCCURRENCE, IFCPROJECTIONCURVE, IFCDIMENSIONCURVE, IFCANNOTATIONCURVEOCCURRENCE, IFCANNOTATIONTEXTOCCURRENCE, IFCDIMENSIONCURVETERMINATOR, IFCTERMINATORSYMBOL, IFCANNOTATIONSYMBOLOCCURRENCE, IFCANNOTATIONSURFACEOCCURRENCE, IFCANNOTATIONOCCURRENCE],\n 846575682: [IFCSURFACESTYLERENDERING],\n 626085974: [IFCPIXELTEXTURE, IFCIMAGETEXTURE, IFCBLOBTEXTURE],\n 280115917: [IFCTEXTUREMAP, IFCTEXTURECOORDINATEGENERATOR],\n 3101149627: [IFCREGULARTIMESERIES, IFCIRREGULARTIMESERIES],\n 1377556343: [IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX],\n 2799835756: [IFCVERTEXPOINT],\n 2442683028: [IFCANNOTATIONFILLAREAOCCURRENCE, IFCPROJECTIONCURVE, IFCDIMENSIONCURVE, IFCANNOTATIONCURVEOCCURRENCE, IFCANNOTATIONTEXTOCCURRENCE, IFCDIMENSIONCURVETERMINATOR, IFCTERMINATORSYMBOL, IFCANNOTATIONSYMBOLOCCURRENCE, IFCANNOTATIONSURFACEOCCURRENCE],\n 3612888222: [IFCDIMENSIONCURVETERMINATOR, IFCTERMINATORSYMBOL],\n 3798115385: [IFCARBITRARYPROFILEDEFWITHVOIDS],\n 1310608509: [IFCCENTERLINEPROFILEDEF],\n 370225590: [IFCCLOSEDSHELL, IFCOPENSHELL],\n 3900360178: [IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE],\n 2556980723: [IFCFACESURFACE],\n 1809719519: [IFCFACEOUTERBOUND],\n 1446786286: [IFCSTRUCTURALSTEELPROFILEPROPERTIES, IFCSTRUCTURALPROFILEPROPERTIES],\n 3448662350: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT],\n 2453401579: [IFCFILLAREASTYLETILES, IFCFILLAREASTYLETILESYMBOLWITHSTYLE, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIAMETERDIMENSION, IFCANGULARDIMENSION, IFCRADIUSDIMENSION, IFCLINEARDIMENSION, IFCDIMENSIONCURVEDIRECTEDCALLOUT, IFCSTRUCTUREDDIMENSIONCALLOUT, IFCDRAUGHTINGCALLOUT, IFCDIRECTION, IFCDEFINEDSYMBOL, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBEZIERCURVE, IFCBEZIERCURVE, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFC2DCOMPOSITECURVE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCCOMPOSITECURVESEGMENT, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONSURFACE, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPLANE, IFCELEMENTARYSURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCTWODIRECTIONREPEATFACTOR, IFCONEDIRECTIONREPEATFACTOR, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET],\n 3590301190: [IFCGEOMETRICCURVESET],\n 812098782: [IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE],\n 1402838566: [IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT],\n 1520743889: [IFCLIGHTSOURCESPOT],\n 1008929658: [IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP],\n 219451334: [IFCCONDITION, IFCASSET, IFCZONE, IFCSTRUCTURALANALYSISMODEL, IFCELECTRICALCIRCUIT, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCCONDITIONCRITERION, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCTIMESERIESSCHEDULE, IFCSPACEPROGRAM, IFCSERVICELIFE, IFCSCHEDULETIMECONTROL, IFCPROJECTORDERRECORD, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCFURNITURESTANDARD, IFCEQUIPMENTSTANDARD, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCPROJECT, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCELECTRICALELEMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCFURNISHINGELEMENT, IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCEQUIPMENTELEMENT, IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCORDERACTION, IFCMOVE, IFCTASK, IFCPROCESS, IFCOBJECT, IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT, IFCTYPEOBJECT],\n 2833995503: [IFCTWODIRECTIONREPEATFACTOR],\n 2529465313: [IFCLSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCRANERAILFSHAPEPROFILEDEF, IFCCRANERAILASHAPEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF],\n 2004835150: [IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT],\n 1663979128: [IFCPLANARBOX],\n 2067069095: [IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE],\n 759155922: [IFCDRAUGHTINGPREDEFINEDCOLOUR],\n 2559016684: [IFCDRAUGHTINGPREDEFINEDCURVEFONT],\n 1680319473: [IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCFLUIDFLOWPROPERTIES, IFCELECTRICALBASEPROPERTIES, IFCENERGYPROPERTIES, IFCELEMENTQUANTITY, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCSPACETHERMALLOADPROPERTIES, IFCSOUNDVALUE, IFCSOUNDPROPERTIES, IFCSERVICELIFEFACTOR, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPROPERTYSETDEFINITION],\n 3357820518: [IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCFLUIDFLOWPROPERTIES, IFCELECTRICALBASEPROPERTIES, IFCENERGYPROPERTIES, IFCELEMENTQUANTITY, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCSPACETHERMALLOADPROPERTIES, IFCSOUNDVALUE, IFCSOUNDPROPERTIES, IFCSERVICELIFEFACTOR, IFCREINFORCEMENTDEFINITIONPROPERTIES],\n 3615266464: [IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF],\n 478536968: [IFCRELDEFINESBYTYPE, IFCRELOVERRIDESPROPERTIES, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELVOIDSELEMENT, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPROJECTSELEMENT, IFCRELINTERACTIONREQUIREMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALELEMENT, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESPROFILEPROPERTIES, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATESAPPLIEDVALUE, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTASKS, IFCRELSCHEDULESCOSTITEMS, IFCRELASSIGNSTOPROJECTORDER, IFCRELASSIGNSTOCONTROL, IFCRELOCCUPIESSPACES, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS],\n 723233188: [IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID],\n 2473145415: [IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION],\n 1597423693: [IFCSTRUCTURALLOADSINGLEFORCEWARPING],\n 3843319758: [IFCSTRUCTURALSTEELPROFILEPROPERTIES],\n 2513912981: [IFCPLANE, IFCELEMENTARYSURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE],\n 2247615214: [IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLID],\n 230924584: [IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION],\n 3028897424: [IFCDIMENSIONCURVETERMINATOR],\n 4282788508: [IFCTEXTLITERALWITHEXTENT],\n 1628702193: [IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT],\n 2347495698: [IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE],\n 3288037868: [IFCPROJECTIONCURVE, IFCDIMENSIONCURVE],\n 2736907675: [IFCBOOLEANCLIPPINGRESULT],\n 4182860854: [IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDPLANE],\n 59481748: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D],\n 3749851601: [IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM],\n 3331915920: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM],\n 1383045692: [IFCCIRCLEHOLLOWPROFILEDEF],\n 2506170314: [IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID],\n 2601014836: [IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBEZIERCURVE, IFCBEZIERCURVE, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFC2DCOMPOSITECURVE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE],\n 3073041342: [IFCDIAMETERDIMENSION, IFCANGULARDIMENSION, IFCRADIUSDIMENSION, IFCLINEARDIMENSION, IFCDIMENSIONCURVEDIRECTEDCALLOUT, IFCSTRUCTUREDDIMENSIONCALLOUT],\n 339256511: [IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE],\n 2777663545: [IFCPLANE],\n 80994333: [IFCELECTRICALBASEPROPERTIES],\n 4238390223: [IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE],\n 1484403080: [IFCASYMMETRICISHAPEPROFILEDEF],\n 1425443689: [IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP],\n 3888040117: [IFCCONDITION, IFCASSET, IFCZONE, IFCSTRUCTURALANALYSISMODEL, IFCELECTRICALCIRCUIT, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCCONDITIONCRITERION, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCTIMESERIESSCHEDULE, IFCSPACEPROGRAM, IFCSERVICELIFE, IFCSCHEDULETIMECONTROL, IFCPROJECTORDERRECORD, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCFURNITURESTANDARD, IFCEQUIPMENTSTANDARD, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCPROJECT, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCELECTRICALELEMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCFURNISHINGELEMENT, IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCEQUIPMENTELEMENT, IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCORDERACTION, IFCMOVE, IFCTASK, IFCPROCESS],\n 2945172077: [IFCPROCEDURE, IFCORDERACTION, IFCMOVE, IFCTASK],\n 4208778838: [IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCELECTRICALELEMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCFURNISHINGELEMENT, IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCEQUIPMENTELEMENT, IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCPROXY],\n 3939117080: [IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTASKS, IFCRELSCHEDULESCOSTITEMS, IFCRELASSIGNSTOPROJECTORDER, IFCRELASSIGNSTOCONTROL, IFCRELOCCUPIESSPACES, IFCRELASSIGNSTOACTOR],\n 1683148259: [IFCRELOCCUPIESSPACES],\n 2495723537: [IFCRELASSIGNSTASKS, IFCRELSCHEDULESCOSTITEMS, IFCRELASSIGNSTOPROJECTORDER],\n 1865459582: [IFCRELASSOCIATESPROFILEPROPERTIES, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATESAPPLIEDVALUE],\n 826625072: [IFCRELVOIDSELEMENT, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPROJECTSELEMENT, IFCRELINTERACTIONREQUIREMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALELEMENT, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS],\n 1204542856: [IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS],\n 1638771189: [IFCRELCONNECTSWITHECCENTRICITY],\n 2551354335: [IFCRELAGGREGATES, IFCRELNESTS],\n 693640335: [IFCRELDEFINESBYTYPE, IFCRELOVERRIDESPROPERTIES, IFCRELDEFINESBYPROPERTIES],\n 4186316022: [IFCRELOVERRIDESPROPERTIES],\n 2914609552: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE],\n 2706606064: [IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING],\n 3893378262: [IFCSPACETYPE],\n 3544373492: [IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALREACTION],\n 3136571912: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER],\n 530289379: [IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER],\n 3689010777: [IFCSTRUCTURALPOINTREACTION],\n 3979015343: [IFCSTRUCTURALSURFACEMEMBERVARYING],\n 3473067441: [IFCORDERACTION, IFCMOVE],\n 2296667514: [IFCOCCUPANT],\n 1260505505: [IFCRATIONALBEZIERCURVE, IFCBEZIERCURVE, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFC2DCOMPOSITECURVE, IFCCOMPOSITECURVE],\n 1950629157: [IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE],\n 3732776249: [IFC2DCOMPOSITECURVE],\n 2510884976: [IFCCIRCLE, IFCELLIPSE],\n 2559216714: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE],\n 3293443760: [IFCCONDITIONCRITERION, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCTIMESERIESSCHEDULE, IFCSPACEPROGRAM, IFCSERVICELIFE, IFCSCHEDULETIMECONTROL, IFCPROJECTORDERRECORD, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCFURNITURESTANDARD, IFCEQUIPMENTSTANDARD, IFCCOSTSCHEDULE, IFCCOSTITEM],\n 681481545: [IFCDIAMETERDIMENSION, IFCANGULARDIMENSION, IFCRADIUSDIMENSION, IFCLINEARDIMENSION],\n 3256556792: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE],\n 3849074793: [IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE],\n 1758889154: [IFCELECTRICALELEMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCFURNISHINGELEMENT, IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCEQUIPMENTELEMENT, IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY],\n 1623761950: [IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER],\n 2590856083: [IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE],\n 2107101300: [IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE],\n 647756555: [IFCMECHANICALFASTENER],\n 2489546625: [IFCMECHANICALFASTENERTYPE],\n 2827207264: [IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION],\n 2143335405: [IFCPROJECTIONELEMENT],\n 1287392070: [IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT],\n 3907093117: [IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE],\n 3198132628: [IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE],\n 1482959167: [IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE],\n 1834744321: [IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE],\n 1339347760: [IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE],\n 2297155007: [IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE],\n 3009222698: [IFCFILTERTYPE, IFCDUCTSILENCERTYPE],\n 2706460486: [IFCCONDITION, IFCASSET, IFCZONE, IFCSTRUCTURALANALYSISMODEL, IFCELECTRICALCIRCUIT, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADGROUP, IFCINVENTORY],\n 3740093272: [IFCDISTRIBUTIONPORT],\n 682877961: [IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION],\n 1179482911: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION],\n 214636428: [IFCSTRUCTURALCURVEMEMBERVARYING],\n 1807405624: [IFCSTRUCTURALLINEARACTIONVARYING],\n 1621171031: [IFCSTRUCTURALPLANARACTIONVARYING],\n 2254336722: [IFCSTRUCTURALANALYSISMODEL, IFCELECTRICALCIRCUIT],\n 1028945134: [IFCWORKSCHEDULE, IFCWORKPLAN],\n 1967976161: [IFCRATIONALBEZIERCURVE, IFCBEZIERCURVE],\n 1916977116: [IFCRATIONALBEZIERCURVE],\n 3299480353: [IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT],\n 52481810: [IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART],\n 2635815018: [IFCVIBRATIONISOLATORTYPE],\n 2063403501: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE],\n 1945004755: [IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT],\n 3040386961: [IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE],\n 855621170: [IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE],\n 2058353004: [IFCELECTRICDISTRIBUTIONPOINT],\n 3027567501: [IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH],\n 2391406946: [IFCWALLSTANDARDCASE]\n};\nInversePropertyDef[1] = {\n 618182010: [[\"OfPerson\", IFCPERSON, 7, true], [\"OfOrganization\", IFCORGANIZATION, 4, true]],\n 411424972: [[\"ValuesReferenced\", IFCREFERENCESVALUEDOCUMENT, 1, true], [\"ValueOfComponents\", IFCAPPLIEDVALUERELATIONSHIP, 0, true], [\"IsComponentIn\", IFCAPPLIEDVALUERELATIONSHIP, 1, true]],\n 130549933: [[\"Actors\", IFCAPPROVALACTORRELATIONSHIP, 1, true], [\"IsRelatedWith\", IFCAPPROVALRELATIONSHIP, 0, true], [\"Relates\", IFCAPPROVALRELATIONSHIP, 1, true]],\n 747523909: [[\"Contains\", IFCCLASSIFICATIONITEM, 1, true]],\n 1767535486: [[\"IsClassifiedItemIn\", IFCCLASSIFICATIONITEMRELATIONSHIP, 1, true], [\"IsClassifyingItemIn\", IFCCLASSIFICATIONITEMRELATIONSHIP, 0, true]],\n 1959218052: [[\"ClassifiedAs\", IFCCONSTRAINTCLASSIFICATIONRELATIONSHIP, 0, true], [\"RelatesConstraints\", IFCCONSTRAINTRELATIONSHIP, 2, true], [\"IsRelatedWith\", IFCCONSTRAINTRELATIONSHIP, 3, true], [\"PropertiesForConstraint\", IFCPROPERTYCONSTRAINTRELATIONSHIP, 0, true], [\"Aggregates\", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 2, true], [\"IsAggregatedIn\", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 3, true]],\n 602808272: [[\"ValuesReferenced\", IFCREFERENCESVALUEDOCUMENT, 1, true], [\"ValueOfComponents\", IFCAPPLIEDVALUERELATIONSHIP, 0, true], [\"IsComponentIn\", IFCAPPLIEDVALUERELATIONSHIP, 1, true]],\n 1154170062: [[\"IsPointedTo\", IFCDOCUMENTINFORMATIONRELATIONSHIP, 1, true], [\"IsPointer\", IFCDOCUMENTINFORMATIONRELATIONSHIP, 0, true]],\n 1648886627: [[\"ValuesReferenced\", IFCREFERENCESVALUEDOCUMENT, 1, true], [\"ValueOfComponents\", IFCAPPLIEDVALUERELATIONSHIP, 0, true], [\"IsComponentIn\", IFCAPPLIEDVALUERELATIONSHIP, 1, true]],\n 852622518: [[\"PartOfW\", IFCGRID, 9, true], [\"PartOfV\", IFCGRID, 8, true], [\"PartOfU\", IFCGRID, 7, true], [\"HasIntersections\", IFCVIRTUALGRIDINTERSECTION, 0, true]],\n 3452421091: [[\"ReferenceIntoLibrary\", IFCLIBRARYINFORMATION, 4, true]],\n 1838606355: [[\"HasRepresentation\", IFCMATERIALDEFINITIONREPRESENTATION, 3, true], [\"ClassifiedAs\", IFCMATERIALCLASSIFICATIONRELATIONSHIP, 1, true]],\n 248100487: [[\"ToMaterialLayerSet\", IFCMATERIALLAYERSET, 0, false]],\n 3368373690: [[\"ClassifiedAs\", IFCCONSTRAINTCLASSIFICATIONRELATIONSHIP, 0, true], [\"RelatesConstraints\", IFCCONSTRAINTRELATIONSHIP, 2, true], [\"IsRelatedWith\", IFCCONSTRAINTRELATIONSHIP, 3, true], [\"PropertiesForConstraint\", IFCPROPERTYCONSTRAINTRELATIONSHIP, 0, true], [\"Aggregates\", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 2, true], [\"IsAggregatedIn\", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 3, true]],\n 3701648758: [[\"PlacesObject\", IFCPRODUCT, 5, true], [\"ReferencedByPlacements\", IFCLOCALPLACEMENT, 0, true]],\n 2251480897: [[\"ClassifiedAs\", IFCCONSTRAINTCLASSIFICATIONRELATIONSHIP, 0, true], [\"RelatesConstraints\", IFCCONSTRAINTRELATIONSHIP, 2, true], [\"IsRelatedWith\", IFCCONSTRAINTRELATIONSHIP, 3, true], [\"PropertiesForConstraint\", IFCPROPERTYCONSTRAINTRELATIONSHIP, 0, true], [\"Aggregates\", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 2, true], [\"IsAggregatedIn\", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 3, true]],\n 4251960020: [[\"IsRelatedBy\", IFCORGANIZATIONRELATIONSHIP, 3, true], [\"Relates\", IFCORGANIZATIONRELATIONSHIP, 2, true], [\"Engages\", IFCPERSONANDORGANIZATION, 1, true]],\n 2077209135: [[\"EngagedIn\", IFCPERSONANDORGANIZATION, 0, true]],\n 2483315170: [[\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n 2226359599: [[\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n 3355820592: [[\"OfPerson\", IFCPERSON, 7, true], [\"OfOrganization\", IFCORGANIZATION, 4, true]],\n 2598011224: [[\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true]],\n 2044713172: [[\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n 2093928680: [[\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n 931644368: [[\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n 3252649465: [[\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n 2405470396: [[\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n 825690147: [[\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n 1076942058: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true]],\n 3377609919: [[\"RepresentationsInContext\", IFCREPRESENTATION, 0, true]],\n 3008791417: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1660063152: [[\"MapUsage\", IFCMAPPEDITEM, 0, true]],\n 3982875396: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true], [\"OfShapeAspect\", IFCSHAPEASPECT, 0, true]],\n 4240577450: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true], [\"OfShapeAspect\", IFCSHAPEASPECT, 0, true]],\n 3692461612: [[\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true]],\n 2830218821: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true]],\n 3958052878: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3049322572: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true]],\n 531007025: [[\"OfTable\", IFCTABLE, 1, false]],\n 912023232: [[\"OfPerson\", IFCPERSON, 7, true], [\"OfOrganization\", IFCORGANIZATION, 4, true]],\n 280115917: [[\"AnnotatedSurface\", IFCANNOTATIONSURFACE, 1, true]],\n 1742049831: [[\"AnnotatedSurface\", IFCANNOTATIONSURFACE, 1, true]],\n 2552916305: [[\"AnnotatedSurface\", IFCANNOTATIONSURFACE, 1, true]],\n 3101149627: [[\"DocumentedBy\", IFCTIMESERIESREFERENCERELATIONSHIP, 0, true]],\n 1377556343: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1735638870: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true], [\"OfShapeAspect\", IFCSHAPEASPECT, 0, true]],\n 2799835756: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1907098498: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2442683028: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 962685235: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3612888222: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2297822566: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2542286263: [[\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true]],\n 370225590: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3732053477: [[\"ReferenceToDocument\", IFCDOCUMENTINFORMATION, 3, true]],\n 3900360178: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 476780140: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2556980723: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1809719519: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 803316827: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3008276851: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3448662350: [[\"RepresentationsInContext\", IFCREPRESENTATION, 0, true], [\"HasSubContexts\", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true]],\n 2453401579: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4142052618: [[\"RepresentationsInContext\", IFCREPRESENTATION, 0, true], [\"HasSubContexts\", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true]],\n 3590301190: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 178086475: [[\"PlacesObject\", IFCPRODUCT, 5, true], [\"ReferencedByPlacements\", IFCLOCALPLACEMENT, 0, true]],\n 812098782: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3741457305: [[\"DocumentedBy\", IFCTIMESERIESREFERENCERELATIONSHIP, 0, true]],\n 1402838566: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 125510826: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2604431987: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4266656042: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1520743889: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3422422726: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2624227202: [[\"PlacesObject\", IFCPRODUCT, 5, true], [\"ReferencedByPlacements\", IFCLOCALPLACEMENT, 0, true]],\n 1008929658: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2347385850: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 219451334: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true]],\n 2833995503: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2665983363: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1029017970: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2519244187: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3021840470: [[\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n 2004835150: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1663979128: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2067069095: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4022376103: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1423911732: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2924175390: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2775532180: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 673634403: [[\"ShapeOfProduct\", IFCPRODUCT, 6, true], [\"HasShapeAspects\", IFCSHAPEASPECT, 4, true]],\n 871118103: [[\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true]],\n 1680319473: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true]],\n 4166981789: [[\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true]],\n 2752243245: [[\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true]],\n 941946838: [[\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true]],\n 3357820518: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n 3650150729: [[\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true]],\n 110355661: [[\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true]],\n 3413951693: [[\"DocumentedBy\", IFCTIMESERIESREFERENCERELATIONSHIP, 0, true]],\n 3765753017: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n 1509187699: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2411513650: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n 4124623270: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 723233188: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2485662743: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n 1202362311: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n 390701378: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n 2233826070: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2513912981: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2247615214: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1260650574: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 230924584: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3028897424: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4282788508: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3124975700: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1345879162: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1628702193: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 2347495698: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1417489154: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2759199220: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 336235671: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n 512836454: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n 1299126871: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 3288037868: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 669184980: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2265737646: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1302238472: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4261334040: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3125803723: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2740243338: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2736907675: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4182860854: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2581212453: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2713105998: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1123145078: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 59481748: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3749851601: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3486308946: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3331915920: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1416205885: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2205249479: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2485617015: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"UsingCurves\", IFCCOMPOSITECURVE, 0, true]],\n 2506170314: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2147822146: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2601014836: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2827736869: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 693772133: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 606661476: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"AnnotatedBySymbols\", IFCTERMINATORSYMBOL, 3, true]],\n 4054601972: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 32440307: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2963535650: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n 1714330368: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n 526551008: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 3073041342: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"IsRelatedFromCallout\", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], [\"IsRelatedToCallout\", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]],\n 1472233963: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1883228015: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n 339256511: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 2777663545: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 80994333: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n 477187591: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2047409740: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 374418227: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4203026998: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 315944413: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3455213021: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n 4238390223: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1268542332: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 987898635: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1281925730: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1425443689: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3888040117: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true]],\n 3388369263: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3505215534: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3566463478: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n 603570806: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 220341763: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2945172077: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true], [\"IsSuccessorFrom\", IFCRELSEQUENCE, 5, true], [\"IsPredecessorTo\", IFCRELSEQUENCE, 4, true]],\n 4208778838: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 103090709: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true]],\n 4194566429: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1451395588: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n 3219374653: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2798486643: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3454111270: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2914609552: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 1856042241: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4158566097: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3626867408: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2706606064: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true]],\n 3893378262: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 451544542: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3544373492: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]],\n 3136571912: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true]],\n 530289379: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ReferencesElement\", IFCRELCONNECTSSTRUCTURALELEMENT, 5, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n 3689010777: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false], [\"Causes\", IFCSTRUCTURALACTION, 10, true]],\n 3979015343: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ReferencesElement\", IFCRELCONNECTSSTRUCTURALELEMENT, 5, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n 2218152070: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ReferencesElement\", IFCRELCONNECTSSTRUCTURALELEMENT, 5, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n 4070609034: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"IsRelatedFromCallout\", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], [\"IsRelatedToCallout\", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]],\n 2028607225: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2809605785: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4124788165: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1580310250: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 3473067441: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true], [\"IsSuccessorFrom\", IFCRELSEQUENCE, 5, true], [\"IsPredecessorTo\", IFCRELSEQUENCE, 4, true]],\n 2097647324: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 2296667514: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"IsActingUpon\", IFCRELASSIGNSTOACTOR, 6, true]],\n 1674181508: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 1334484129: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3649129432: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1260505505: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4031249490: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true]],\n 1950629157: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 3124254112: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true]],\n 300633059: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 3732776249: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2510884976: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2559216714: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 3293443760: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 3895139033: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 1419761937: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 1916426348: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 3295246426: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 1457835157: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 681481545: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"IsRelatedFromCallout\", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], [\"IsRelatedToCallout\", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]],\n 3256556792: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 3849074793: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 360485395: [[\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PropertyDefinitionOf\", IFCRELDEFINESBYPROPERTIES, 5, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true]],\n 1758889154: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 4123344466: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 1623761950: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 2590856083: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1704287377: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2107101300: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1962604670: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 3272907226: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 3174744832: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 3390157468: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 807026263: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3737207727: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 647756555: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 2489546625: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 2827207264: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 2143335405: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"ProjectsElements\", IFCRELPROJECTSELEMENT, 5, false]],\n 1287392070: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"VoidsElements\", IFCRELVOIDSELEMENT, 5, false]],\n 3907093117: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 3198132628: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 3815607619: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1482959167: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1834744321: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1339347760: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 2297155007: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 3009222698: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 263784265: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 814719939: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 200128114: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 3009204131: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 2706460486: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, false]],\n 1251058090: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1806887404: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 2391368822: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, false]],\n 4288270099: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 3827777499: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 1051575348: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1161773419: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 2506943328: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"IsRelatedFromCallout\", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], [\"IsRelatedToCallout\", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]],\n 377706215: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 2108223431: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 3181161470: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 977012517: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1916936684: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true], [\"IsSuccessorFrom\", IFCRELSEQUENCE, 5, true], [\"IsPredecessorTo\", IFCRELSEQUENCE, 4, true]],\n 4143007308: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"IsActingUpon\", IFCRELASSIGNSTOACTOR, 6, true]],\n 3588315303: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"VoidsElements\", IFCRELVOIDSELEMENT, 5, false], [\"HasFillings\", IFCRELFILLSELEMENT, 4, true]],\n 3425660407: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true], [\"IsSuccessorFrom\", IFCRELSEQUENCE, 5, true], [\"IsPredecessorTo\", IFCRELSEQUENCE, 4, true]],\n 2837617999: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 2382730787: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 3327091369: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 804291784: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 4231323485: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 4017108033: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 3724593414: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3740093272: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainedIn\", IFCRELCONNECTSPORTTOELEMENT, 4, false], [\"ConnectedFrom\", IFCRELCONNECTSPORTS, 5, true], [\"ConnectedTo\", IFCRELCONNECTSPORTS, 4, true]],\n 2744685151: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true], [\"IsSuccessorFrom\", IFCRELSEQUENCE, 5, true], [\"IsPredecessorTo\", IFCRELSEQUENCE, 4, true]],\n 2904328755: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 3642467123: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 3651124850: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"ProjectsElements\", IFCRELPROJECTSELEMENT, 5, false]],\n 1842657554: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 2250791053: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 3248260540: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"IsRelatedFromCallout\", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], [\"IsRelatedToCallout\", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]],\n 2893384427: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 2324767716: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1768891740: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 3517283431: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true], [\"ScheduleTimeControlAssigned\", IFCRELASSIGNSTASKS, 7, false]],\n 4105383287: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 4097777520: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true]],\n 2533589738: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 3856911033: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"HasCoverings\", IFCRELCOVERSSPACES, 4, true], [\"BoundedBy\", IFCRELSPACEBOUNDARY, 4, true]],\n 1305183839: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 652456506: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true], [\"HasInteractionReqsFrom\", IFCRELINTERACTIONREQUIREMENTS, 7, true], [\"HasInteractionReqsTo\", IFCRELINTERACTIONREQUIREMENTS, 8, true]],\n 3812236995: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 3112655638: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1039846685: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 682877961: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]],\n 1179482911: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectsStructuralMembers\", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],\n 4243806635: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectsStructuralMembers\", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],\n 214636428: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ReferencesElement\", IFCRELCONNECTSSTRUCTURALELEMENT, 5, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n 2445595289: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ReferencesElement\", IFCRELCONNECTSSTRUCTURALELEMENT, 5, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n 1807405624: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]],\n 1721250024: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]],\n 1252848954: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, false], [\"SourceOfResultGroup\", IFCSTRUCTURALRESULTGROUP, 6, true], [\"LoadGroupFor\", IFCSTRUCTURALANALYSISMODEL, 7, true]],\n 1621171031: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]],\n 3987759626: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]],\n 2082059205: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]],\n 734778138: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectsStructuralMembers\", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],\n 1235345126: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false], [\"Causes\", IFCSTRUCTURALACTION, 10, true]],\n 2986769608: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, false], [\"ResultGroupFor\", IFCSTRUCTURALANALYSISMODEL, 8, true]],\n 1975003073: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectsStructuralMembers\", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],\n 148013059: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 2315554128: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 2254336722: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, false], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true]],\n 5716631: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1637806684: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 1692211062: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1620046519: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 3593883385: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1600972822: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1911125066: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 728799441: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 2769231204: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 1898987631: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1133259667: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1028945134: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 4218914973: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 3342526732: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 1033361043: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, false]],\n 1213861670: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3821786052: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 1411407467: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 3352864051: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1871374353: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 2470393545: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"IsRelatedFromCallout\", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], [\"IsRelatedToCallout\", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]],\n 3460190687: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, false]],\n 1967976161: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 819618141: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1916977116: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 231477066: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 3299480353: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 52481810: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 2979338954: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 1095909175: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 1909888760: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 395041908: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 3293546465: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1285652485: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 2951183804: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 2611217952: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2301859152: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 843113511: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 3850581409: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 2816379211: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 2188551683: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, false]],\n 1163958913: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 3898045240: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 1060000209: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 488727124: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 335055490: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 2954562838: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1973544240: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"CoversSpaces\", IFCRELCOVERSSPACES, 5, true], [\"Covers\", IFCRELCOVERSBLDGELEMENTS, 5, true]],\n 3495092785: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 3961806047: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 4147604152: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"IsRelatedFromCallout\", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], [\"IsRelatedToCallout\", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]],\n 1335981549: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 2635815018: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1599208980: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 2063403501: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1945004755: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 3040386961: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3041715199: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainedIn\", IFCRELCONNECTSPORTTOELEMENT, 4, false], [\"ConnectedFrom\", IFCRELCONNECTSPORTS, 5, true], [\"ConnectedTo\", IFCRELCONNECTSPORTS, 4, true]],\n 395920057: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 869906466: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 3760055223: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 2030761528: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 855621170: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"VoidsElements\", IFCRELVOIDSELEMENT, 5, false]],\n 663422040: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 3277789161: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1534661035: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1365060375: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1217240411: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 712377611: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1634875225: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, false], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true]],\n 857184966: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 1658829314: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 346874300: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1810631287: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 4222183408: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 2058353004: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 4278956645: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 4037862832: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 3132237377: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 987401354: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 707683696: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 2223149337: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3508470533: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 900683007: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 1073191201: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 1687234759: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 3171933400: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 2262370178: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 3024970846: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 3283111854: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 3055160366: [[\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3027567501: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 2320036040: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 2016517767: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 1376911519: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"VoidsElements\", IFCRELVOIDSELEMENT, 5, false]],\n 1783015770: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1529196076: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 331165859: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 4252922144: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 2515109513: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, false], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true]],\n 3824725483: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 2347447852: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 3313531582: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 2391406946: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 3512223829: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 3304561284: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 2874132201: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 3001207471: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 753842376: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 2454782716: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"VoidsElements\", IFCRELVOIDSELEMENT, 5, false]],\n 578613899: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"ObjectTypeOf\", IFCRELDEFINESBYTYPE, 5, true]],\n 1052013943: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1062813311: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n 3700593921: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 979691226: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"IsDecomposedBy\", IFCRELDECOMPOSES, 4, true], [\"Decomposes\", IFCRELDECOMPOSES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"HasStructuralMember\", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]]\n};\nConstructors[1] = {\n 3630933823: (a) => new IFC2X3.IfcActorRole(a[0], a[1], a[2]),\n 618182010: (a) => new IFC2X3.IfcAddress(a[0], a[1], a[2]),\n 639542469: (a) => new IFC2X3.IfcApplication(a[0], a[1], a[2], a[3]),\n 411424972: (a) => new IFC2X3.IfcAppliedValue(a[0], a[1], a[2], a[3], a[4], a[5]),\n 1110488051: (a) => new IFC2X3.IfcAppliedValueRelationship(a[0], a[1], a[2], a[3], a[4]),\n 130549933: (a) => new IFC2X3.IfcApproval(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 2080292479: (a) => new IFC2X3.IfcApprovalActorRelationship(a[0], a[1], a[2]),\n 390851274: (a) => new IFC2X3.IfcApprovalPropertyRelationship(a[0], a[1]),\n 3869604511: (a) => new IFC2X3.IfcApprovalRelationship(a[0], a[1], a[2], a[3]),\n 4037036970: (a) => new IFC2X3.IfcBoundaryCondition(a[0]),\n 1560379544: (a) => new IFC2X3.IfcBoundaryEdgeCondition(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3367102660: (a) => new IFC2X3.IfcBoundaryFaceCondition(a[0], a[1], a[2], a[3]),\n 1387855156: (a) => new IFC2X3.IfcBoundaryNodeCondition(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 2069777674: (a) => new IFC2X3.IfcBoundaryNodeConditionWarping(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 622194075: (a) => new IFC2X3.IfcCalendarDate(a[0], a[1], a[2]),\n 747523909: (a) => new IFC2X3.IfcClassification(a[0], a[1], a[2], a[3]),\n 1767535486: (a) => new IFC2X3.IfcClassificationItem(a[0], a[1], a[2]),\n 1098599126: (a) => new IFC2X3.IfcClassificationItemRelationship(a[0], a[1]),\n 938368621: (a) => new IFC2X3.IfcClassificationNotation(a[0]),\n 3639012971: (a) => new IFC2X3.IfcClassificationNotationFacet(a[0]),\n 3264961684: (a) => new IFC2X3.IfcColourSpecification(a[0]),\n 2859738748: (_) => new IFC2X3.IfcConnectionGeometry(),\n 2614616156: (a) => new IFC2X3.IfcConnectionPointGeometry(a[0], a[1]),\n 4257277454: (a) => new IFC2X3.IfcConnectionPortGeometry(a[0], a[1], a[2]),\n 2732653382: (a) => new IFC2X3.IfcConnectionSurfaceGeometry(a[0], a[1]),\n 1959218052: (a) => new IFC2X3.IfcConstraint(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1658513725: (a) => new IFC2X3.IfcConstraintAggregationRelationship(a[0], a[1], a[2], a[3], a[4]),\n 613356794: (a) => new IFC2X3.IfcConstraintClassificationRelationship(a[0], a[1]),\n 347226245: (a) => new IFC2X3.IfcConstraintRelationship(a[0], a[1], a[2], a[3]),\n 1065062679: (a) => new IFC2X3.IfcCoordinatedUniversalTimeOffset(a[0], a[1], a[2]),\n 602808272: (a) => new IFC2X3.IfcCostValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 539742890: (a) => new IFC2X3.IfcCurrencyRelationship(a[0], a[1], a[2], a[3], a[4]),\n 1105321065: (a) => new IFC2X3.IfcCurveStyleFont(a[0], a[1]),\n 2367409068: (a) => new IFC2X3.IfcCurveStyleFontAndScaling(a[0], a[1], a[2]),\n 3510044353: (a) => new IFC2X3.IfcCurveStyleFontPattern(a[0], a[1]),\n 1072939445: (a) => new IFC2X3.IfcDateAndTime(a[0], a[1]),\n 1765591967: (a) => new IFC2X3.IfcDerivedUnit(a[0], a[1], a[2]),\n 1045800335: (a) => new IFC2X3.IfcDerivedUnitElement(a[0], a[1]),\n 2949456006: (a) => new IFC2X3.IfcDimensionalExponents(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1376555844: (a) => new IFC2X3.IfcDocumentElectronicFormat(a[0], a[1], a[2]),\n 1154170062: (a) => new IFC2X3.IfcDocumentInformation(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]),\n 770865208: (a) => new IFC2X3.IfcDocumentInformationRelationship(a[0], a[1], a[2]),\n 3796139169: (a) => new IFC2X3.IfcDraughtingCalloutRelationship(a[0], a[1], a[2], a[3]),\n 1648886627: (a) => new IFC2X3.IfcEnvironmentalImpactValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3200245327: (a) => new IFC2X3.IfcExternalReference(a[0], a[1], a[2]),\n 2242383968: (a) => new IFC2X3.IfcExternallyDefinedHatchStyle(a[0], a[1], a[2]),\n 1040185647: (a) => new IFC2X3.IfcExternallyDefinedSurfaceStyle(a[0], a[1], a[2]),\n 3207319532: (a) => new IFC2X3.IfcExternallyDefinedSymbol(a[0], a[1], a[2]),\n 3548104201: (a) => new IFC2X3.IfcExternallyDefinedTextFont(a[0], a[1], a[2]),\n 852622518: (a) => new IFC2X3.IfcGridAxis(a[0], a[1], a[2]),\n 3020489413: (a) => new IFC2X3.IfcIrregularTimeSeriesValue(a[0], a[1]),\n 2655187982: (a) => new IFC2X3.IfcLibraryInformation(a[0], a[1], a[2], a[3], a[4]),\n 3452421091: (a) => new IFC2X3.IfcLibraryReference(a[0], a[1], a[2]),\n 4162380809: (a) => new IFC2X3.IfcLightDistributionData(a[0], a[1], a[2]),\n 1566485204: (a) => new IFC2X3.IfcLightIntensityDistribution(a[0], a[1]),\n 30780891: (a) => new IFC2X3.IfcLocalTime(a[0], a[1], a[2], a[3], a[4]),\n 1838606355: (a) => new IFC2X3.IfcMaterial(a[0]),\n 1847130766: (a) => new IFC2X3.IfcMaterialClassificationRelationship(a[0], a[1]),\n 248100487: (a) => new IFC2X3.IfcMaterialLayer(a[0], a[1], a[2]),\n 3303938423: (a) => new IFC2X3.IfcMaterialLayerSet(a[0], a[1]),\n 1303795690: (a) => new IFC2X3.IfcMaterialLayerSetUsage(a[0], a[1], a[2], a[3]),\n 2199411900: (a) => new IFC2X3.IfcMaterialList(a[0]),\n 3265635763: (a) => new IFC2X3.IfcMaterialProperties(a[0]),\n 2597039031: (a) => new IFC2X3.IfcMeasureWithUnit(a[0], a[1]),\n 4256014907: (a) => new IFC2X3.IfcMechanicalMaterialProperties(a[0], a[1], a[2], a[3], a[4], a[5]),\n 677618848: (a) => new IFC2X3.IfcMechanicalSteelMaterialProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n 3368373690: (a) => new IFC2X3.IfcMetric(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2706619895: (a) => new IFC2X3.IfcMonetaryUnit(a[0]),\n 1918398963: (a) => new IFC2X3.IfcNamedUnit(a[0], a[1]),\n 3701648758: (_) => new IFC2X3.IfcObjectPlacement(),\n 2251480897: (a) => new IFC2X3.IfcObjective(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 1227763645: (a) => new IFC2X3.IfcOpticalMaterialProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 4251960020: (a) => new IFC2X3.IfcOrganization(a[0], a[1], a[2], a[3], a[4]),\n 1411181986: (a) => new IFC2X3.IfcOrganizationRelationship(a[0], a[1], a[2], a[3]),\n 1207048766: (a) => new IFC2X3.IfcOwnerHistory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2077209135: (a) => new IFC2X3.IfcPerson(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 101040310: (a) => new IFC2X3.IfcPersonAndOrganization(a[0], a[1], a[2]),\n 2483315170: (a) => new IFC2X3.IfcPhysicalQuantity(a[0], a[1]),\n 2226359599: (a) => new IFC2X3.IfcPhysicalSimpleQuantity(a[0], a[1], a[2]),\n 3355820592: (a) => new IFC2X3.IfcPostalAddress(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3727388367: (a) => new IFC2X3.IfcPreDefinedItem(a[0]),\n 990879717: (a) => new IFC2X3.IfcPreDefinedSymbol(a[0]),\n 3213052703: (a) => new IFC2X3.IfcPreDefinedTerminatorSymbol(a[0]),\n 1775413392: (a) => new IFC2X3.IfcPreDefinedTextFont(a[0]),\n 2022622350: (a) => new IFC2X3.IfcPresentationLayerAssignment(a[0], a[1], a[2], a[3]),\n 1304840413: (a) => new IFC2X3.IfcPresentationLayerWithStyle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3119450353: (a) => new IFC2X3.IfcPresentationStyle(a[0]),\n 2417041796: (a) => new IFC2X3.IfcPresentationStyleAssignment(a[0]),\n 2095639259: (a) => new IFC2X3.IfcProductRepresentation(a[0], a[1], a[2]),\n 2267347899: (a) => new IFC2X3.IfcProductsOfCombustionProperties(a[0], a[1], a[2], a[3], a[4]),\n 3958567839: (a) => new IFC2X3.IfcProfileDef(a[0], a[1]),\n 2802850158: (a) => new IFC2X3.IfcProfileProperties(a[0], a[1]),\n 2598011224: (a) => new IFC2X3.IfcProperty(a[0], a[1]),\n 3896028662: (a) => new IFC2X3.IfcPropertyConstraintRelationship(a[0], a[1], a[2], a[3]),\n 148025276: (a) => new IFC2X3.IfcPropertyDependencyRelationship(a[0], a[1], a[2], a[3], a[4]),\n 3710013099: (a) => new IFC2X3.IfcPropertyEnumeration(a[0], a[1], a[2]),\n 2044713172: (a) => new IFC2X3.IfcQuantityArea(a[0], a[1], a[2], a[3]),\n 2093928680: (a) => new IFC2X3.IfcQuantityCount(a[0], a[1], a[2], a[3]),\n 931644368: (a) => new IFC2X3.IfcQuantityLength(a[0], a[1], a[2], a[3]),\n 3252649465: (a) => new IFC2X3.IfcQuantityTime(a[0], a[1], a[2], a[3]),\n 2405470396: (a) => new IFC2X3.IfcQuantityVolume(a[0], a[1], a[2], a[3]),\n 825690147: (a) => new IFC2X3.IfcQuantityWeight(a[0], a[1], a[2], a[3]),\n 2692823254: (a) => new IFC2X3.IfcReferencesValueDocument(a[0], a[1], a[2], a[3]),\n 1580146022: (a) => new IFC2X3.IfcReinforcementBarProperties(a[0], a[1], a[2], a[3], a[4], a[5]),\n 1222501353: (a) => new IFC2X3.IfcRelaxation(a[0], a[1]),\n 1076942058: (a) => new IFC2X3.IfcRepresentation(a[0], a[1], a[2], a[3]),\n 3377609919: (a) => new IFC2X3.IfcRepresentationContext(a[0], a[1]),\n 3008791417: (_) => new IFC2X3.IfcRepresentationItem(),\n 1660063152: (a) => new IFC2X3.IfcRepresentationMap(a[0], a[1]),\n 3679540991: (a) => new IFC2X3.IfcRibPlateProfileProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 2341007311: (a) => new IFC2X3.IfcRoot(a[0], a[1], a[2], a[3]),\n 448429030: (a) => new IFC2X3.IfcSIUnit(a[0], a[1], a[2]),\n 2042790032: (a) => new IFC2X3.IfcSectionProperties(a[0], a[1], a[2]),\n 4165799628: (a) => new IFC2X3.IfcSectionReinforcementProperties(a[0], a[1], a[2], a[3], a[4], a[5]),\n 867548509: (a) => new IFC2X3.IfcShapeAspect(a[0], a[1], a[2], a[3], a[4]),\n 3982875396: (a) => new IFC2X3.IfcShapeModel(a[0], a[1], a[2], a[3]),\n 4240577450: (a) => new IFC2X3.IfcShapeRepresentation(a[0], a[1], a[2], a[3]),\n 3692461612: (a) => new IFC2X3.IfcSimpleProperty(a[0], a[1]),\n 2273995522: (a) => new IFC2X3.IfcStructuralConnectionCondition(a[0]),\n 2162789131: (a) => new IFC2X3.IfcStructuralLoad(a[0]),\n 2525727697: (a) => new IFC2X3.IfcStructuralLoadStatic(a[0]),\n 3408363356: (a) => new IFC2X3.IfcStructuralLoadTemperature(a[0], a[1], a[2], a[3]),\n 2830218821: (a) => new IFC2X3.IfcStyleModel(a[0], a[1], a[2], a[3]),\n 3958052878: (a) => new IFC2X3.IfcStyledItem(a[0], a[1], a[2]),\n 3049322572: (a) => new IFC2X3.IfcStyledRepresentation(a[0], a[1], a[2], a[3]),\n 1300840506: (a) => new IFC2X3.IfcSurfaceStyle(a[0], a[1], a[2]),\n 3303107099: (a) => new IFC2X3.IfcSurfaceStyleLighting(a[0], a[1], a[2], a[3]),\n 1607154358: (a) => new IFC2X3.IfcSurfaceStyleRefraction(a[0], a[1]),\n 846575682: (a) => new IFC2X3.IfcSurfaceStyleShading(a[0]),\n 1351298697: (a) => new IFC2X3.IfcSurfaceStyleWithTextures(a[0]),\n 626085974: (a) => new IFC2X3.IfcSurfaceTexture(a[0], a[1], a[2], a[3]),\n 1290481447: (a) => new IFC2X3.IfcSymbolStyle(a[0], a[1]),\n 985171141: (a) => new IFC2X3.IfcTable(a[0], a[1]),\n 531007025: (a) => new IFC2X3.IfcTableRow(a[0], a[1]),\n 912023232: (a) => new IFC2X3.IfcTelecomAddress(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1447204868: (a) => new IFC2X3.IfcTextStyle(a[0], a[1], a[2], a[3]),\n 1983826977: (a) => new IFC2X3.IfcTextStyleFontModel(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2636378356: (a) => new IFC2X3.IfcTextStyleForDefinedFont(a[0], a[1]),\n 1640371178: (a) => new IFC2X3.IfcTextStyleTextModel(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1484833681: (a) => new IFC2X3.IfcTextStyleWithBoxCharacteristics(a[0], a[1], a[2], a[3], a[4]),\n 280115917: (_) => new IFC2X3.IfcTextureCoordinate(),\n 1742049831: (a) => new IFC2X3.IfcTextureCoordinateGenerator(a[0], a[1]),\n 2552916305: (a) => new IFC2X3.IfcTextureMap(a[0]),\n 1210645708: (a) => new IFC2X3.IfcTextureVertex(a[0]),\n 3317419933: (a) => new IFC2X3.IfcThermalMaterialProperties(a[0], a[1], a[2], a[3], a[4]),\n 3101149627: (a) => new IFC2X3.IfcTimeSeries(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1718945513: (a) => new IFC2X3.IfcTimeSeriesReferenceRelationship(a[0], a[1]),\n 581633288: (a) => new IFC2X3.IfcTimeSeriesValue(a[0]),\n 1377556343: (_) => new IFC2X3.IfcTopologicalRepresentationItem(),\n 1735638870: (a) => new IFC2X3.IfcTopologyRepresentation(a[0], a[1], a[2], a[3]),\n 180925521: (a) => new IFC2X3.IfcUnitAssignment(a[0]),\n 2799835756: (_) => new IFC2X3.IfcVertex(),\n 3304826586: (a) => new IFC2X3.IfcVertexBasedTextureMap(a[0], a[1]),\n 1907098498: (a) => new IFC2X3.IfcVertexPoint(a[0]),\n 891718957: (a) => new IFC2X3.IfcVirtualGridIntersection(a[0], a[1]),\n 1065908215: (a) => new IFC2X3.IfcWaterProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2442683028: (a) => new IFC2X3.IfcAnnotationOccurrence(a[0], a[1], a[2]),\n 962685235: (a) => new IFC2X3.IfcAnnotationSurfaceOccurrence(a[0], a[1], a[2]),\n 3612888222: (a) => new IFC2X3.IfcAnnotationSymbolOccurrence(a[0], a[1], a[2]),\n 2297822566: (a) => new IFC2X3.IfcAnnotationTextOccurrence(a[0], a[1], a[2]),\n 3798115385: (a) => new IFC2X3.IfcArbitraryClosedProfileDef(a[0], a[1], a[2]),\n 1310608509: (a) => new IFC2X3.IfcArbitraryOpenProfileDef(a[0], a[1], a[2]),\n 2705031697: (a) => new IFC2X3.IfcArbitraryProfileDefWithVoids(a[0], a[1], a[2], a[3]),\n 616511568: (a) => new IFC2X3.IfcBlobTexture(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3150382593: (a) => new IFC2X3.IfcCenterLineProfileDef(a[0], a[1], a[2], a[3]),\n 647927063: (a) => new IFC2X3.IfcClassificationReference(a[0], a[1], a[2], a[3]),\n 776857604: (a) => new IFC2X3.IfcColourRgb(a[0], a[1], a[2], a[3]),\n 2542286263: (a) => new IFC2X3.IfcComplexProperty(a[0], a[1], a[2], a[3]),\n 1485152156: (a) => new IFC2X3.IfcCompositeProfileDef(a[0], a[1], a[2], a[3]),\n 370225590: (a) => new IFC2X3.IfcConnectedFaceSet(a[0]),\n 1981873012: (a) => new IFC2X3.IfcConnectionCurveGeometry(a[0], a[1]),\n 45288368: (a) => new IFC2X3.IfcConnectionPointEccentricity(a[0], a[1], a[2], a[3], a[4]),\n 3050246964: (a) => new IFC2X3.IfcContextDependentUnit(a[0], a[1], a[2]),\n 2889183280: (a) => new IFC2X3.IfcConversionBasedUnit(a[0], a[1], a[2], a[3]),\n 3800577675: (a) => new IFC2X3.IfcCurveStyle(a[0], a[1], a[2], a[3]),\n 3632507154: (a) => new IFC2X3.IfcDerivedProfileDef(a[0], a[1], a[2], a[3], a[4]),\n 2273265877: (a) => new IFC2X3.IfcDimensionCalloutRelationship(a[0], a[1], a[2], a[3]),\n 1694125774: (a) => new IFC2X3.IfcDimensionPair(a[0], a[1], a[2], a[3]),\n 3732053477: (a) => new IFC2X3.IfcDocumentReference(a[0], a[1], a[2]),\n 4170525392: (a) => new IFC2X3.IfcDraughtingPreDefinedTextFont(a[0]),\n 3900360178: (a) => new IFC2X3.IfcEdge(a[0], a[1]),\n 476780140: (a) => new IFC2X3.IfcEdgeCurve(a[0], a[1], a[2], a[3]),\n 1860660968: (a) => new IFC2X3.IfcExtendedMaterialProperties(a[0], a[1], a[2], a[3]),\n 2556980723: (a) => new IFC2X3.IfcFace(a[0]),\n 1809719519: (a) => new IFC2X3.IfcFaceBound(a[0], a[1]),\n 803316827: (a) => new IFC2X3.IfcFaceOuterBound(a[0], a[1]),\n 3008276851: (a) => new IFC2X3.IfcFaceSurface(a[0], a[1], a[2]),\n 4219587988: (a) => new IFC2X3.IfcFailureConnectionCondition(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 738692330: (a) => new IFC2X3.IfcFillAreaStyle(a[0], a[1]),\n 3857492461: (a) => new IFC2X3.IfcFuelProperties(a[0], a[1], a[2], a[3], a[4]),\n 803998398: (a) => new IFC2X3.IfcGeneralMaterialProperties(a[0], a[1], a[2], a[3]),\n 1446786286: (a) => new IFC2X3.IfcGeneralProfileProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3448662350: (a) => new IFC2X3.IfcGeometricRepresentationContext(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2453401579: (_) => new IFC2X3.IfcGeometricRepresentationItem(),\n 4142052618: (a) => new IFC2X3.IfcGeometricRepresentationSubContext(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3590301190: (a) => new IFC2X3.IfcGeometricSet(a[0]),\n 178086475: (a) => new IFC2X3.IfcGridPlacement(a[0], a[1]),\n 812098782: (a) => new IFC2X3.IfcHalfSpaceSolid(a[0], a[1]),\n 2445078500: (a) => new IFC2X3.IfcHygroscopicMaterialProperties(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3905492369: (a) => new IFC2X3.IfcImageTexture(a[0], a[1], a[2], a[3], a[4]),\n 3741457305: (a) => new IFC2X3.IfcIrregularTimeSeries(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1402838566: (a) => new IFC2X3.IfcLightSource(a[0], a[1], a[2], a[3]),\n 125510826: (a) => new IFC2X3.IfcLightSourceAmbient(a[0], a[1], a[2], a[3]),\n 2604431987: (a) => new IFC2X3.IfcLightSourceDirectional(a[0], a[1], a[2], a[3], a[4]),\n 4266656042: (a) => new IFC2X3.IfcLightSourceGoniometric(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1520743889: (a) => new IFC2X3.IfcLightSourcePositional(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3422422726: (a) => new IFC2X3.IfcLightSourceSpot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n 2624227202: (a) => new IFC2X3.IfcLocalPlacement(a[0], a[1]),\n 1008929658: (_) => new IFC2X3.IfcLoop(),\n 2347385850: (a) => new IFC2X3.IfcMappedItem(a[0], a[1]),\n 2022407955: (a) => new IFC2X3.IfcMaterialDefinitionRepresentation(a[0], a[1], a[2], a[3]),\n 1430189142: (a) => new IFC2X3.IfcMechanicalConcreteMaterialProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 219451334: (a) => new IFC2X3.IfcObjectDefinition(a[0], a[1], a[2], a[3]),\n 2833995503: (a) => new IFC2X3.IfcOneDirectionRepeatFactor(a[0]),\n 2665983363: (a) => new IFC2X3.IfcOpenShell(a[0]),\n 1029017970: (a) => new IFC2X3.IfcOrientedEdge(a[0], a[1]),\n 2529465313: (a) => new IFC2X3.IfcParameterizedProfileDef(a[0], a[1], a[2]),\n 2519244187: (a) => new IFC2X3.IfcPath(a[0]),\n 3021840470: (a) => new IFC2X3.IfcPhysicalComplexQuantity(a[0], a[1], a[2], a[3], a[4], a[5]),\n 597895409: (a) => new IFC2X3.IfcPixelTexture(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2004835150: (a) => new IFC2X3.IfcPlacement(a[0]),\n 1663979128: (a) => new IFC2X3.IfcPlanarExtent(a[0], a[1]),\n 2067069095: (_) => new IFC2X3.IfcPoint(),\n 4022376103: (a) => new IFC2X3.IfcPointOnCurve(a[0], a[1]),\n 1423911732: (a) => new IFC2X3.IfcPointOnSurface(a[0], a[1], a[2]),\n 2924175390: (a) => new IFC2X3.IfcPolyLoop(a[0]),\n 2775532180: (a) => new IFC2X3.IfcPolygonalBoundedHalfSpace(a[0], a[1], a[2], a[3]),\n 759155922: (a) => new IFC2X3.IfcPreDefinedColour(a[0]),\n 2559016684: (a) => new IFC2X3.IfcPreDefinedCurveFont(a[0]),\n 433424934: (a) => new IFC2X3.IfcPreDefinedDimensionSymbol(a[0]),\n 179317114: (a) => new IFC2X3.IfcPreDefinedPointMarkerSymbol(a[0]),\n 673634403: (a) => new IFC2X3.IfcProductDefinitionShape(a[0], a[1], a[2]),\n 871118103: (a) => new IFC2X3.IfcPropertyBoundedValue(a[0], a[1], a[2], a[3], a[4]),\n 1680319473: (a) => new IFC2X3.IfcPropertyDefinition(a[0], a[1], a[2], a[3]),\n 4166981789: (a) => new IFC2X3.IfcPropertyEnumeratedValue(a[0], a[1], a[2], a[3]),\n 2752243245: (a) => new IFC2X3.IfcPropertyListValue(a[0], a[1], a[2], a[3]),\n 941946838: (a) => new IFC2X3.IfcPropertyReferenceValue(a[0], a[1], a[2], a[3]),\n 3357820518: (a) => new IFC2X3.IfcPropertySetDefinition(a[0], a[1], a[2], a[3]),\n 3650150729: (a) => new IFC2X3.IfcPropertySingleValue(a[0], a[1], a[2], a[3]),\n 110355661: (a) => new IFC2X3.IfcPropertyTableValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3615266464: (a) => new IFC2X3.IfcRectangleProfileDef(a[0], a[1], a[2], a[3], a[4]),\n 3413951693: (a) => new IFC2X3.IfcRegularTimeSeries(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3765753017: (a) => new IFC2X3.IfcReinforcementDefinitionProperties(a[0], a[1], a[2], a[3], a[4], a[5]),\n 478536968: (a) => new IFC2X3.IfcRelationship(a[0], a[1], a[2], a[3]),\n 2778083089: (a) => new IFC2X3.IfcRoundedRectangleProfileDef(a[0], a[1], a[2], a[3], a[4], a[5]),\n 1509187699: (a) => new IFC2X3.IfcSectionedSpine(a[0], a[1], a[2]),\n 2411513650: (a) => new IFC2X3.IfcServiceLifeFactor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 4124623270: (a) => new IFC2X3.IfcShellBasedSurfaceModel(a[0]),\n 2609359061: (a) => new IFC2X3.IfcSlippageConnectionCondition(a[0], a[1], a[2], a[3]),\n 723233188: (_) => new IFC2X3.IfcSolidModel(),\n 2485662743: (a) => new IFC2X3.IfcSoundProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1202362311: (a) => new IFC2X3.IfcSoundValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 390701378: (a) => new IFC2X3.IfcSpaceThermalLoadProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n 1595516126: (a) => new IFC2X3.IfcStructuralLoadLinearForce(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 2668620305: (a) => new IFC2X3.IfcStructuralLoadPlanarForce(a[0], a[1], a[2], a[3]),\n 2473145415: (a) => new IFC2X3.IfcStructuralLoadSingleDisplacement(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1973038258: (a) => new IFC2X3.IfcStructuralLoadSingleDisplacementDistortion(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1597423693: (a) => new IFC2X3.IfcStructuralLoadSingleForce(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1190533807: (a) => new IFC2X3.IfcStructuralLoadSingleForceWarping(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3843319758: (a) => new IFC2X3.IfcStructuralProfileProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20], a[21], a[22]),\n 3653947884: (a) => new IFC2X3.IfcStructuralSteelProfileProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20], a[21], a[22], a[23], a[24], a[25], a[26]),\n 2233826070: (a) => new IFC2X3.IfcSubedge(a[0], a[1], a[2]),\n 2513912981: (_) => new IFC2X3.IfcSurface(),\n 1878645084: (a) => new IFC2X3.IfcSurfaceStyleRendering(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2247615214: (a) => new IFC2X3.IfcSweptAreaSolid(a[0], a[1]),\n 1260650574: (a) => new IFC2X3.IfcSweptDiskSolid(a[0], a[1], a[2], a[3], a[4]),\n 230924584: (a) => new IFC2X3.IfcSweptSurface(a[0], a[1]),\n 3071757647: (a) => new IFC2X3.IfcTShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n 3028897424: (a) => new IFC2X3.IfcTerminatorSymbol(a[0], a[1], a[2], a[3]),\n 4282788508: (a) => new IFC2X3.IfcTextLiteral(a[0], a[1], a[2]),\n 3124975700: (a) => new IFC2X3.IfcTextLiteralWithExtent(a[0], a[1], a[2], a[3], a[4]),\n 2715220739: (a) => new IFC2X3.IfcTrapeziumProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1345879162: (a) => new IFC2X3.IfcTwoDirectionRepeatFactor(a[0], a[1]),\n 1628702193: (a) => new IFC2X3.IfcTypeObject(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2347495698: (a) => new IFC2X3.IfcTypeProduct(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 427810014: (a) => new IFC2X3.IfcUShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 1417489154: (a) => new IFC2X3.IfcVector(a[0], a[1]),\n 2759199220: (a) => new IFC2X3.IfcVertexLoop(a[0]),\n 336235671: (a) => new IFC2X3.IfcWindowLiningProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n 512836454: (a) => new IFC2X3.IfcWindowPanelProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1299126871: (a) => new IFC2X3.IfcWindowStyle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 2543172580: (a) => new IFC2X3.IfcZShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3288037868: (a) => new IFC2X3.IfcAnnotationCurveOccurrence(a[0], a[1], a[2]),\n 669184980: (a) => new IFC2X3.IfcAnnotationFillArea(a[0], a[1]),\n 2265737646: (a) => new IFC2X3.IfcAnnotationFillAreaOccurrence(a[0], a[1], a[2], a[3], a[4]),\n 1302238472: (a) => new IFC2X3.IfcAnnotationSurface(a[0], a[1]),\n 4261334040: (a) => new IFC2X3.IfcAxis1Placement(a[0], a[1]),\n 3125803723: (a) => new IFC2X3.IfcAxis2Placement2D(a[0], a[1]),\n 2740243338: (a) => new IFC2X3.IfcAxis2Placement3D(a[0], a[1], a[2]),\n 2736907675: (a) => new IFC2X3.IfcBooleanResult(a[0], a[1], a[2]),\n 4182860854: (_) => new IFC2X3.IfcBoundedSurface(),\n 2581212453: (a) => new IFC2X3.IfcBoundingBox(a[0], a[1], a[2], a[3]),\n 2713105998: (a) => new IFC2X3.IfcBoxedHalfSpace(a[0], a[1], a[2]),\n 2898889636: (a) => new IFC2X3.IfcCShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1123145078: (a) => new IFC2X3.IfcCartesianPoint(a[0]),\n 59481748: (a) => new IFC2X3.IfcCartesianTransformationOperator(a[0], a[1], a[2], a[3]),\n 3749851601: (a) => new IFC2X3.IfcCartesianTransformationOperator2D(a[0], a[1], a[2], a[3]),\n 3486308946: (a) => new IFC2X3.IfcCartesianTransformationOperator2DnonUniform(a[0], a[1], a[2], a[3], a[4]),\n 3331915920: (a) => new IFC2X3.IfcCartesianTransformationOperator3D(a[0], a[1], a[2], a[3], a[4]),\n 1416205885: (a) => new IFC2X3.IfcCartesianTransformationOperator3DnonUniform(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1383045692: (a) => new IFC2X3.IfcCircleProfileDef(a[0], a[1], a[2], a[3]),\n 2205249479: (a) => new IFC2X3.IfcClosedShell(a[0]),\n 2485617015: (a) => new IFC2X3.IfcCompositeCurveSegment(a[0], a[1], a[2]),\n 4133800736: (a) => new IFC2X3.IfcCraneRailAShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]),\n 194851669: (a) => new IFC2X3.IfcCraneRailFShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 2506170314: (a) => new IFC2X3.IfcCsgPrimitive3D(a[0]),\n 2147822146: (a) => new IFC2X3.IfcCsgSolid(a[0]),\n 2601014836: (_) => new IFC2X3.IfcCurve(),\n 2827736869: (a) => new IFC2X3.IfcCurveBoundedPlane(a[0], a[1], a[2]),\n 693772133: (a) => new IFC2X3.IfcDefinedSymbol(a[0], a[1]),\n 606661476: (a) => new IFC2X3.IfcDimensionCurve(a[0], a[1], a[2]),\n 4054601972: (a) => new IFC2X3.IfcDimensionCurveTerminator(a[0], a[1], a[2], a[3], a[4]),\n 32440307: (a) => new IFC2X3.IfcDirection(a[0]),\n 2963535650: (a) => new IFC2X3.IfcDoorLiningProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]),\n 1714330368: (a) => new IFC2X3.IfcDoorPanelProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 526551008: (a) => new IFC2X3.IfcDoorStyle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 3073041342: (a) => new IFC2X3.IfcDraughtingCallout(a[0]),\n 445594917: (a) => new IFC2X3.IfcDraughtingPreDefinedColour(a[0]),\n 4006246654: (a) => new IFC2X3.IfcDraughtingPreDefinedCurveFont(a[0]),\n 1472233963: (a) => new IFC2X3.IfcEdgeLoop(a[0]),\n 1883228015: (a) => new IFC2X3.IfcElementQuantity(a[0], a[1], a[2], a[3], a[4], a[5]),\n 339256511: (a) => new IFC2X3.IfcElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2777663545: (a) => new IFC2X3.IfcElementarySurface(a[0]),\n 2835456948: (a) => new IFC2X3.IfcEllipseProfileDef(a[0], a[1], a[2], a[3], a[4]),\n 80994333: (a) => new IFC2X3.IfcEnergyProperties(a[0], a[1], a[2], a[3], a[4], a[5]),\n 477187591: (a) => new IFC2X3.IfcExtrudedAreaSolid(a[0], a[1], a[2], a[3]),\n 2047409740: (a) => new IFC2X3.IfcFaceBasedSurfaceModel(a[0]),\n 374418227: (a) => new IFC2X3.IfcFillAreaStyleHatching(a[0], a[1], a[2], a[3], a[4]),\n 4203026998: (a) => new IFC2X3.IfcFillAreaStyleTileSymbolWithStyle(a[0]),\n 315944413: (a) => new IFC2X3.IfcFillAreaStyleTiles(a[0], a[1], a[2]),\n 3455213021: (a) => new IFC2X3.IfcFluidFlowProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18]),\n 4238390223: (a) => new IFC2X3.IfcFurnishingElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1268542332: (a) => new IFC2X3.IfcFurnitureType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 987898635: (a) => new IFC2X3.IfcGeometricCurveSet(a[0]),\n 1484403080: (a) => new IFC2X3.IfcIShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 572779678: (a) => new IFC2X3.IfcLShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 1281925730: (a) => new IFC2X3.IfcLine(a[0], a[1]),\n 1425443689: (a) => new IFC2X3.IfcManifoldSolidBrep(a[0]),\n 3888040117: (a) => new IFC2X3.IfcObject(a[0], a[1], a[2], a[3], a[4]),\n 3388369263: (a) => new IFC2X3.IfcOffsetCurve2D(a[0], a[1], a[2]),\n 3505215534: (a) => new IFC2X3.IfcOffsetCurve3D(a[0], a[1], a[2], a[3]),\n 3566463478: (a) => new IFC2X3.IfcPermeableCoveringProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 603570806: (a) => new IFC2X3.IfcPlanarBox(a[0], a[1], a[2]),\n 220341763: (a) => new IFC2X3.IfcPlane(a[0]),\n 2945172077: (a) => new IFC2X3.IfcProcess(a[0], a[1], a[2], a[3], a[4]),\n 4208778838: (a) => new IFC2X3.IfcProduct(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 103090709: (a) => new IFC2X3.IfcProject(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 4194566429: (a) => new IFC2X3.IfcProjectionCurve(a[0], a[1], a[2]),\n 1451395588: (a) => new IFC2X3.IfcPropertySet(a[0], a[1], a[2], a[3], a[4]),\n 3219374653: (a) => new IFC2X3.IfcProxy(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2770003689: (a) => new IFC2X3.IfcRectangleHollowProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2798486643: (a) => new IFC2X3.IfcRectangularPyramid(a[0], a[1], a[2], a[3]),\n 3454111270: (a) => new IFC2X3.IfcRectangularTrimmedSurface(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3939117080: (a) => new IFC2X3.IfcRelAssigns(a[0], a[1], a[2], a[3], a[4], a[5]),\n 1683148259: (a) => new IFC2X3.IfcRelAssignsToActor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2495723537: (a) => new IFC2X3.IfcRelAssignsToControl(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1307041759: (a) => new IFC2X3.IfcRelAssignsToGroup(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 4278684876: (a) => new IFC2X3.IfcRelAssignsToProcess(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2857406711: (a) => new IFC2X3.IfcRelAssignsToProduct(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3372526763: (a) => new IFC2X3.IfcRelAssignsToProjectOrder(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 205026976: (a) => new IFC2X3.IfcRelAssignsToResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1865459582: (a) => new IFC2X3.IfcRelAssociates(a[0], a[1], a[2], a[3], a[4]),\n 1327628568: (a) => new IFC2X3.IfcRelAssociatesAppliedValue(a[0], a[1], a[2], a[3], a[4], a[5]),\n 4095574036: (a) => new IFC2X3.IfcRelAssociatesApproval(a[0], a[1], a[2], a[3], a[4], a[5]),\n 919958153: (a) => new IFC2X3.IfcRelAssociatesClassification(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2728634034: (a) => new IFC2X3.IfcRelAssociatesConstraint(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 982818633: (a) => new IFC2X3.IfcRelAssociatesDocument(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3840914261: (a) => new IFC2X3.IfcRelAssociatesLibrary(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2655215786: (a) => new IFC2X3.IfcRelAssociatesMaterial(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2851387026: (a) => new IFC2X3.IfcRelAssociatesProfileProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 826625072: (a) => new IFC2X3.IfcRelConnects(a[0], a[1], a[2], a[3]),\n 1204542856: (a) => new IFC2X3.IfcRelConnectsElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3945020480: (a) => new IFC2X3.IfcRelConnectsPathElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 4201705270: (a) => new IFC2X3.IfcRelConnectsPortToElement(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3190031847: (a) => new IFC2X3.IfcRelConnectsPorts(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 2127690289: (a) => new IFC2X3.IfcRelConnectsStructuralActivity(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3912681535: (a) => new IFC2X3.IfcRelConnectsStructuralElement(a[0], a[1], a[2], a[3], a[4], a[5]),\n 1638771189: (a) => new IFC2X3.IfcRelConnectsStructuralMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 504942748: (a) => new IFC2X3.IfcRelConnectsWithEccentricity(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 3678494232: (a) => new IFC2X3.IfcRelConnectsWithRealizingElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3242617779: (a) => new IFC2X3.IfcRelContainedInSpatialStructure(a[0], a[1], a[2], a[3], a[4], a[5]),\n 886880790: (a) => new IFC2X3.IfcRelCoversBldgElements(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2802773753: (a) => new IFC2X3.IfcRelCoversSpaces(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2551354335: (a) => new IFC2X3.IfcRelDecomposes(a[0], a[1], a[2], a[3], a[4], a[5]),\n 693640335: (a) => new IFC2X3.IfcRelDefines(a[0], a[1], a[2], a[3], a[4]),\n 4186316022: (a) => new IFC2X3.IfcRelDefinesByProperties(a[0], a[1], a[2], a[3], a[4], a[5]),\n 781010003: (a) => new IFC2X3.IfcRelDefinesByType(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3940055652: (a) => new IFC2X3.IfcRelFillsElement(a[0], a[1], a[2], a[3], a[4], a[5]),\n 279856033: (a) => new IFC2X3.IfcRelFlowControlElements(a[0], a[1], a[2], a[3], a[4], a[5]),\n 4189434867: (a) => new IFC2X3.IfcRelInteractionRequirements(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3268803585: (a) => new IFC2X3.IfcRelNests(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2051452291: (a) => new IFC2X3.IfcRelOccupiesSpaces(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 202636808: (a) => new IFC2X3.IfcRelOverridesProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 750771296: (a) => new IFC2X3.IfcRelProjectsElement(a[0], a[1], a[2], a[3], a[4], a[5]),\n 1245217292: (a) => new IFC2X3.IfcRelReferencedInSpatialStructure(a[0], a[1], a[2], a[3], a[4], a[5]),\n 1058617721: (a) => new IFC2X3.IfcRelSchedulesCostItems(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 4122056220: (a) => new IFC2X3.IfcRelSequence(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 366585022: (a) => new IFC2X3.IfcRelServicesBuildings(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3451746338: (a) => new IFC2X3.IfcRelSpaceBoundary(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1401173127: (a) => new IFC2X3.IfcRelVoidsElement(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2914609552: (a) => new IFC2X3.IfcResource(a[0], a[1], a[2], a[3], a[4]),\n 1856042241: (a) => new IFC2X3.IfcRevolvedAreaSolid(a[0], a[1], a[2], a[3]),\n 4158566097: (a) => new IFC2X3.IfcRightCircularCone(a[0], a[1], a[2]),\n 3626867408: (a) => new IFC2X3.IfcRightCircularCylinder(a[0], a[1], a[2]),\n 2706606064: (a) => new IFC2X3.IfcSpatialStructureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3893378262: (a) => new IFC2X3.IfcSpatialStructureElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 451544542: (a) => new IFC2X3.IfcSphere(a[0], a[1]),\n 3544373492: (a) => new IFC2X3.IfcStructuralActivity(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3136571912: (a) => new IFC2X3.IfcStructuralItem(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 530289379: (a) => new IFC2X3.IfcStructuralMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3689010777: (a) => new IFC2X3.IfcStructuralReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3979015343: (a) => new IFC2X3.IfcStructuralSurfaceMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2218152070: (a) => new IFC2X3.IfcStructuralSurfaceMemberVarying(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 4070609034: (a) => new IFC2X3.IfcStructuredDimensionCallout(a[0]),\n 2028607225: (a) => new IFC2X3.IfcSurfaceCurveSweptAreaSolid(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2809605785: (a) => new IFC2X3.IfcSurfaceOfLinearExtrusion(a[0], a[1], a[2], a[3]),\n 4124788165: (a) => new IFC2X3.IfcSurfaceOfRevolution(a[0], a[1], a[2]),\n 1580310250: (a) => new IFC2X3.IfcSystemFurnitureElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3473067441: (a) => new IFC2X3.IfcTask(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2097647324: (a) => new IFC2X3.IfcTransportElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2296667514: (a) => new IFC2X3.IfcActor(a[0], a[1], a[2], a[3], a[4], a[5]),\n 1674181508: (a) => new IFC2X3.IfcAnnotation(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3207858831: (a) => new IFC2X3.IfcAsymmetricIShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 1334484129: (a) => new IFC2X3.IfcBlock(a[0], a[1], a[2], a[3]),\n 3649129432: (a) => new IFC2X3.IfcBooleanClippingResult(a[0], a[1], a[2]),\n 1260505505: (_) => new IFC2X3.IfcBoundedCurve(),\n 4031249490: (a) => new IFC2X3.IfcBuilding(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 1950629157: (a) => new IFC2X3.IfcBuildingElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3124254112: (a) => new IFC2X3.IfcBuildingStorey(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2937912522: (a) => new IFC2X3.IfcCircleHollowProfileDef(a[0], a[1], a[2], a[3], a[4]),\n 300633059: (a) => new IFC2X3.IfcColumnType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3732776249: (a) => new IFC2X3.IfcCompositeCurve(a[0], a[1]),\n 2510884976: (a) => new IFC2X3.IfcConic(a[0]),\n 2559216714: (a) => new IFC2X3.IfcConstructionResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3293443760: (a) => new IFC2X3.IfcControl(a[0], a[1], a[2], a[3], a[4]),\n 3895139033: (a) => new IFC2X3.IfcCostItem(a[0], a[1], a[2], a[3], a[4]),\n 1419761937: (a) => new IFC2X3.IfcCostSchedule(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n 1916426348: (a) => new IFC2X3.IfcCoveringType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3295246426: (a) => new IFC2X3.IfcCrewResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1457835157: (a) => new IFC2X3.IfcCurtainWallType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 681481545: (a) => new IFC2X3.IfcDimensionCurveDirectedCallout(a[0]),\n 3256556792: (a) => new IFC2X3.IfcDistributionElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3849074793: (a) => new IFC2X3.IfcDistributionFlowElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 360485395: (a) => new IFC2X3.IfcElectricalBaseProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n 1758889154: (a) => new IFC2X3.IfcElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 4123344466: (a) => new IFC2X3.IfcElementAssembly(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1623761950: (a) => new IFC2X3.IfcElementComponent(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2590856083: (a) => new IFC2X3.IfcElementComponentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1704287377: (a) => new IFC2X3.IfcEllipse(a[0], a[1], a[2]),\n 2107101300: (a) => new IFC2X3.IfcEnergyConversionDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1962604670: (a) => new IFC2X3.IfcEquipmentElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3272907226: (a) => new IFC2X3.IfcEquipmentStandard(a[0], a[1], a[2], a[3], a[4]),\n 3174744832: (a) => new IFC2X3.IfcEvaporativeCoolerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3390157468: (a) => new IFC2X3.IfcEvaporatorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 807026263: (a) => new IFC2X3.IfcFacetedBrep(a[0]),\n 3737207727: (a) => new IFC2X3.IfcFacetedBrepWithVoids(a[0], a[1]),\n 647756555: (a) => new IFC2X3.IfcFastener(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2489546625: (a) => new IFC2X3.IfcFastenerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2827207264: (a) => new IFC2X3.IfcFeatureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2143335405: (a) => new IFC2X3.IfcFeatureElementAddition(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1287392070: (a) => new IFC2X3.IfcFeatureElementSubtraction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3907093117: (a) => new IFC2X3.IfcFlowControllerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3198132628: (a) => new IFC2X3.IfcFlowFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3815607619: (a) => new IFC2X3.IfcFlowMeterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1482959167: (a) => new IFC2X3.IfcFlowMovingDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1834744321: (a) => new IFC2X3.IfcFlowSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1339347760: (a) => new IFC2X3.IfcFlowStorageDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2297155007: (a) => new IFC2X3.IfcFlowTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3009222698: (a) => new IFC2X3.IfcFlowTreatmentDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 263784265: (a) => new IFC2X3.IfcFurnishingElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 814719939: (a) => new IFC2X3.IfcFurnitureStandard(a[0], a[1], a[2], a[3], a[4]),\n 200128114: (a) => new IFC2X3.IfcGasTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3009204131: (a) => new IFC2X3.IfcGrid(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2706460486: (a) => new IFC2X3.IfcGroup(a[0], a[1], a[2], a[3], a[4]),\n 1251058090: (a) => new IFC2X3.IfcHeatExchangerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1806887404: (a) => new IFC2X3.IfcHumidifierType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2391368822: (a) => new IFC2X3.IfcInventory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 4288270099: (a) => new IFC2X3.IfcJunctionBoxType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3827777499: (a) => new IFC2X3.IfcLaborResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1051575348: (a) => new IFC2X3.IfcLampType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1161773419: (a) => new IFC2X3.IfcLightFixtureType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2506943328: (a) => new IFC2X3.IfcLinearDimension(a[0]),\n 377706215: (a) => new IFC2X3.IfcMechanicalFastener(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2108223431: (a) => new IFC2X3.IfcMechanicalFastenerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3181161470: (a) => new IFC2X3.IfcMemberType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 977012517: (a) => new IFC2X3.IfcMotorConnectionType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1916936684: (a) => new IFC2X3.IfcMove(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n 4143007308: (a) => new IFC2X3.IfcOccupant(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3588315303: (a) => new IFC2X3.IfcOpeningElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3425660407: (a) => new IFC2X3.IfcOrderAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 2837617999: (a) => new IFC2X3.IfcOutletType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2382730787: (a) => new IFC2X3.IfcPerformanceHistory(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3327091369: (a) => new IFC2X3.IfcPermit(a[0], a[1], a[2], a[3], a[4], a[5]),\n 804291784: (a) => new IFC2X3.IfcPipeFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 4231323485: (a) => new IFC2X3.IfcPipeSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 4017108033: (a) => new IFC2X3.IfcPlateType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3724593414: (a) => new IFC2X3.IfcPolyline(a[0]),\n 3740093272: (a) => new IFC2X3.IfcPort(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 2744685151: (a) => new IFC2X3.IfcProcedure(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2904328755: (a) => new IFC2X3.IfcProjectOrder(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3642467123: (a) => new IFC2X3.IfcProjectOrderRecord(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3651124850: (a) => new IFC2X3.IfcProjectionElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1842657554: (a) => new IFC2X3.IfcProtectiveDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2250791053: (a) => new IFC2X3.IfcPumpType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3248260540: (a) => new IFC2X3.IfcRadiusDimension(a[0]),\n 2893384427: (a) => new IFC2X3.IfcRailingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2324767716: (a) => new IFC2X3.IfcRampFlightType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 160246688: (a) => new IFC2X3.IfcRelAggregates(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2863920197: (a) => new IFC2X3.IfcRelAssignsTasks(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1768891740: (a) => new IFC2X3.IfcSanitaryTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3517283431: (a) => new IFC2X3.IfcScheduleTimeControl(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20], a[21], a[22]),\n 4105383287: (a) => new IFC2X3.IfcServiceLife(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 4097777520: (a) => new IFC2X3.IfcSite(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n 2533589738: (a) => new IFC2X3.IfcSlabType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3856911033: (a) => new IFC2X3.IfcSpace(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 1305183839: (a) => new IFC2X3.IfcSpaceHeaterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 652456506: (a) => new IFC2X3.IfcSpaceProgram(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3812236995: (a) => new IFC2X3.IfcSpaceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3112655638: (a) => new IFC2X3.IfcStackTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1039846685: (a) => new IFC2X3.IfcStairFlightType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 682877961: (a) => new IFC2X3.IfcStructuralAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 1179482911: (a) => new IFC2X3.IfcStructuralConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 4243806635: (a) => new IFC2X3.IfcStructuralCurveConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 214636428: (a) => new IFC2X3.IfcStructuralCurveMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2445595289: (a) => new IFC2X3.IfcStructuralCurveMemberVarying(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1807405624: (a) => new IFC2X3.IfcStructuralLinearAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 1721250024: (a) => new IFC2X3.IfcStructuralLinearActionVarying(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n 1252848954: (a) => new IFC2X3.IfcStructuralLoadGroup(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1621171031: (a) => new IFC2X3.IfcStructuralPlanarAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 3987759626: (a) => new IFC2X3.IfcStructuralPlanarActionVarying(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n 2082059205: (a) => new IFC2X3.IfcStructuralPointAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 734778138: (a) => new IFC2X3.IfcStructuralPointConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1235345126: (a) => new IFC2X3.IfcStructuralPointReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2986769608: (a) => new IFC2X3.IfcStructuralResultGroup(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1975003073: (a) => new IFC2X3.IfcStructuralSurfaceConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 148013059: (a) => new IFC2X3.IfcSubContractResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 2315554128: (a) => new IFC2X3.IfcSwitchingDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2254336722: (a) => new IFC2X3.IfcSystem(a[0], a[1], a[2], a[3], a[4]),\n 5716631: (a) => new IFC2X3.IfcTankType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1637806684: (a) => new IFC2X3.IfcTimeSeriesSchedule(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1692211062: (a) => new IFC2X3.IfcTransformerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1620046519: (a) => new IFC2X3.IfcTransportElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 3593883385: (a) => new IFC2X3.IfcTrimmedCurve(a[0], a[1], a[2], a[3], a[4]),\n 1600972822: (a) => new IFC2X3.IfcTubeBundleType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1911125066: (a) => new IFC2X3.IfcUnitaryEquipmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 728799441: (a) => new IFC2X3.IfcValveType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2769231204: (a) => new IFC2X3.IfcVirtualElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1898987631: (a) => new IFC2X3.IfcWallType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1133259667: (a) => new IFC2X3.IfcWasteTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1028945134: (a) => new IFC2X3.IfcWorkControl(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]),\n 4218914973: (a) => new IFC2X3.IfcWorkPlan(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]),\n 3342526732: (a) => new IFC2X3.IfcWorkSchedule(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]),\n 1033361043: (a) => new IFC2X3.IfcZone(a[0], a[1], a[2], a[3], a[4]),\n 1213861670: (a) => new IFC2X3.Ifc2DCompositeCurve(a[0], a[1]),\n 3821786052: (a) => new IFC2X3.IfcActionRequest(a[0], a[1], a[2], a[3], a[4], a[5]),\n 1411407467: (a) => new IFC2X3.IfcAirTerminalBoxType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3352864051: (a) => new IFC2X3.IfcAirTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1871374353: (a) => new IFC2X3.IfcAirToAirHeatRecoveryType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2470393545: (a) => new IFC2X3.IfcAngularDimension(a[0]),\n 3460190687: (a) => new IFC2X3.IfcAsset(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n 1967976161: (a) => new IFC2X3.IfcBSplineCurve(a[0], a[1], a[2], a[3], a[4]),\n 819618141: (a) => new IFC2X3.IfcBeamType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1916977116: (a) => new IFC2X3.IfcBezierCurve(a[0], a[1], a[2], a[3], a[4]),\n 231477066: (a) => new IFC2X3.IfcBoilerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3299480353: (a) => new IFC2X3.IfcBuildingElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 52481810: (a) => new IFC2X3.IfcBuildingElementComponent(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2979338954: (a) => new IFC2X3.IfcBuildingElementPart(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1095909175: (a) => new IFC2X3.IfcBuildingElementProxy(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1909888760: (a) => new IFC2X3.IfcBuildingElementProxyType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 395041908: (a) => new IFC2X3.IfcCableCarrierFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3293546465: (a) => new IFC2X3.IfcCableCarrierSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1285652485: (a) => new IFC2X3.IfcCableSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2951183804: (a) => new IFC2X3.IfcChillerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2611217952: (a) => new IFC2X3.IfcCircle(a[0], a[1]),\n 2301859152: (a) => new IFC2X3.IfcCoilType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 843113511: (a) => new IFC2X3.IfcColumn(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3850581409: (a) => new IFC2X3.IfcCompressorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2816379211: (a) => new IFC2X3.IfcCondenserType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2188551683: (a) => new IFC2X3.IfcCondition(a[0], a[1], a[2], a[3], a[4]),\n 1163958913: (a) => new IFC2X3.IfcConditionCriterion(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3898045240: (a) => new IFC2X3.IfcConstructionEquipmentResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1060000209: (a) => new IFC2X3.IfcConstructionMaterialResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 488727124: (a) => new IFC2X3.IfcConstructionProductResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 335055490: (a) => new IFC2X3.IfcCooledBeamType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2954562838: (a) => new IFC2X3.IfcCoolingTowerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1973544240: (a) => new IFC2X3.IfcCovering(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3495092785: (a) => new IFC2X3.IfcCurtainWall(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3961806047: (a) => new IFC2X3.IfcDamperType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 4147604152: (a) => new IFC2X3.IfcDiameterDimension(a[0]),\n 1335981549: (a) => new IFC2X3.IfcDiscreteAccessory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2635815018: (a) => new IFC2X3.IfcDiscreteAccessoryType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1599208980: (a) => new IFC2X3.IfcDistributionChamberElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2063403501: (a) => new IFC2X3.IfcDistributionControlElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1945004755: (a) => new IFC2X3.IfcDistributionElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3040386961: (a) => new IFC2X3.IfcDistributionFlowElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3041715199: (a) => new IFC2X3.IfcDistributionPort(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 395920057: (a) => new IFC2X3.IfcDoor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 869906466: (a) => new IFC2X3.IfcDuctFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3760055223: (a) => new IFC2X3.IfcDuctSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2030761528: (a) => new IFC2X3.IfcDuctSilencerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 855621170: (a) => new IFC2X3.IfcEdgeFeature(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 663422040: (a) => new IFC2X3.IfcElectricApplianceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3277789161: (a) => new IFC2X3.IfcElectricFlowStorageDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1534661035: (a) => new IFC2X3.IfcElectricGeneratorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1365060375: (a) => new IFC2X3.IfcElectricHeaterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1217240411: (a) => new IFC2X3.IfcElectricMotorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 712377611: (a) => new IFC2X3.IfcElectricTimeControlType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1634875225: (a) => new IFC2X3.IfcElectricalCircuit(a[0], a[1], a[2], a[3], a[4]),\n 857184966: (a) => new IFC2X3.IfcElectricalElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1658829314: (a) => new IFC2X3.IfcEnergyConversionDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 346874300: (a) => new IFC2X3.IfcFanType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1810631287: (a) => new IFC2X3.IfcFilterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 4222183408: (a) => new IFC2X3.IfcFireSuppressionTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2058353004: (a) => new IFC2X3.IfcFlowController(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 4278956645: (a) => new IFC2X3.IfcFlowFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 4037862832: (a) => new IFC2X3.IfcFlowInstrumentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3132237377: (a) => new IFC2X3.IfcFlowMovingDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 987401354: (a) => new IFC2X3.IfcFlowSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 707683696: (a) => new IFC2X3.IfcFlowStorageDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2223149337: (a) => new IFC2X3.IfcFlowTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3508470533: (a) => new IFC2X3.IfcFlowTreatmentDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 900683007: (a) => new IFC2X3.IfcFooting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1073191201: (a) => new IFC2X3.IfcMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1687234759: (a) => new IFC2X3.IfcPile(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3171933400: (a) => new IFC2X3.IfcPlate(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2262370178: (a) => new IFC2X3.IfcRailing(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3024970846: (a) => new IFC2X3.IfcRamp(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3283111854: (a) => new IFC2X3.IfcRampFlight(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3055160366: (a) => new IFC2X3.IfcRationalBezierCurve(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3027567501: (a) => new IFC2X3.IfcReinforcingElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2320036040: (a) => new IFC2X3.IfcReinforcingMesh(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]),\n 2016517767: (a) => new IFC2X3.IfcRoof(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1376911519: (a) => new IFC2X3.IfcRoundedEdgeFeature(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1783015770: (a) => new IFC2X3.IfcSensorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1529196076: (a) => new IFC2X3.IfcSlab(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 331165859: (a) => new IFC2X3.IfcStair(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 4252922144: (a) => new IFC2X3.IfcStairFlight(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 2515109513: (a) => new IFC2X3.IfcStructuralAnalysisModel(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3824725483: (a) => new IFC2X3.IfcTendon(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]),\n 2347447852: (a) => new IFC2X3.IfcTendonAnchor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3313531582: (a) => new IFC2X3.IfcVibrationIsolatorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2391406946: (a) => new IFC2X3.IfcWall(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3512223829: (a) => new IFC2X3.IfcWallStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3304561284: (a) => new IFC2X3.IfcWindow(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2874132201: (a) => new IFC2X3.IfcActuatorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3001207471: (a) => new IFC2X3.IfcAlarmType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 753842376: (a) => new IFC2X3.IfcBeam(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2454782716: (a) => new IFC2X3.IfcChamferEdgeFeature(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 578613899: (a) => new IFC2X3.IfcControllerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1052013943: (a) => new IFC2X3.IfcDistributionChamberElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1062813311: (a) => new IFC2X3.IfcDistributionControlElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3700593921: (a) => new IFC2X3.IfcElectricDistributionPoint(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 979691226: (a) => new IFC2X3.IfcReinforcingBar(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13])\n};\nToRawLineData[1] = {\n 3630933823: (i) => [i.Role, i.UserDefinedRole, i.Description],\n 618182010: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose],\n 639542469: (i) => [i.ApplicationDeveloper, i.Version, i.ApplicationFullName, i.ApplicationIdentifier],\n 411424972: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate],\n 1110488051: (i) => [i.ComponentOfTotal, i.Components, i.ArithmeticOperator, i.Name, i.Description],\n 130549933: (i) => [i.Description, i.ApprovalDateTime, i.ApprovalStatus, i.ApprovalLevel, i.ApprovalQualifier, i.Name, i.Identifier],\n 2080292479: (i) => [i.Actor, i.Approval, i.Role],\n 390851274: (i) => [i.ApprovedProperties, i.Approval],\n 3869604511: (i) => [i.RelatedApproval, i.RelatingApproval, i.Description, i.Name],\n 4037036970: (i) => [i.Name],\n 1560379544: (i) => [i.Name, i.LinearStiffnessByLengthX, i.LinearStiffnessByLengthY, i.LinearStiffnessByLengthZ, i.RotationalStiffnessByLengthX, i.RotationalStiffnessByLengthY, i.RotationalStiffnessByLengthZ],\n 3367102660: (i) => [i.Name, i.LinearStiffnessByAreaX, i.LinearStiffnessByAreaY, i.LinearStiffnessByAreaZ],\n 1387855156: (i) => [i.Name, i.LinearStiffnessX, i.LinearStiffnessY, i.LinearStiffnessZ, i.RotationalStiffnessX, i.RotationalStiffnessY, i.RotationalStiffnessZ],\n 2069777674: (i) => [i.Name, i.LinearStiffnessX, i.LinearStiffnessY, i.LinearStiffnessZ, i.RotationalStiffnessX, i.RotationalStiffnessY, i.RotationalStiffnessZ, i.WarpingStiffness],\n 622194075: (i) => [i.DayComponent, i.MonthComponent, i.YearComponent],\n 747523909: (i) => [i.Source, i.Edition, i.EditionDate, i.Name],\n 1767535486: (i) => [i.Notation, i.ItemOf, i.Title],\n 1098599126: (i) => [i.RelatingItem, i.RelatedItems],\n 938368621: (i) => [i.NotationFacets],\n 3639012971: (i) => [i.NotationValue],\n 3264961684: (i) => [i.Name],\n 2859738748: (_) => [],\n 2614616156: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement],\n 4257277454: (i) => [i.LocationAtRelatingElement, i.LocationAtRelatedElement, i.ProfileOfPort],\n 2732653382: (i) => [i.SurfaceOnRelatingElement, i.SurfaceOnRelatedElement],\n 1959218052: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade],\n 1658513725: (i) => [i.Name, i.Description, i.RelatingConstraint, i.RelatedConstraints, i.LogicalAggregator],\n 613356794: (i) => [i.ClassifiedConstraint, i.RelatedClassifications],\n 347226245: (i) => [i.Name, i.Description, i.RelatingConstraint, i.RelatedConstraints],\n 1065062679: (i) => [i.HourOffset, i.MinuteOffset, i.Sense],\n 602808272: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.CostType, i.Condition],\n 539742890: (i) => [i.RelatingMonetaryUnit, i.RelatedMonetaryUnit, i.ExchangeRate, i.RateDateTime, i.RateSource],\n 1105321065: (i) => [i.Name, i.PatternList],\n 2367409068: (i) => [i.Name, i.CurveFont, i.CurveFontScaling],\n 3510044353: (i) => [i.VisibleSegmentLength, i.InvisibleSegmentLength],\n 1072939445: (i) => [i.DateComponent, i.TimeComponent],\n 1765591967: (i) => [i.Elements, i.UnitType, i.UserDefinedType],\n 1045800335: (i) => [i.Unit, i.Exponent],\n 2949456006: (i) => [i.LengthExponent, i.MassExponent, i.TimeExponent, i.ElectricCurrentExponent, i.ThermodynamicTemperatureExponent, i.AmountOfSubstanceExponent, i.LuminousIntensityExponent],\n 1376555844: (i) => [i.FileExtension, i.MimeContentType, i.MimeSubtype],\n 1154170062: (i) => [i.DocumentId, i.Name, i.Description, i.DocumentReferences, i.Purpose, i.IntendedUse, i.Scope, i.Revision, i.DocumentOwner, i.Editors, i.CreationTime, i.LastRevisionTime, i.ElectronicFormat, i.ValidFrom, i.ValidUntil, i.Confidentiality, i.Status],\n 770865208: (i) => [i.RelatingDocument, i.RelatedDocuments, i.RelationshipType],\n 3796139169: (i) => [i.Name, i.Description, i.RelatingDraughtingCallout, i.RelatedDraughtingCallout],\n 1648886627: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.ImpactType, i.Category, i.UserDefinedCategory],\n 3200245327: (i) => [i.Location, i.ItemReference, i.Name],\n 2242383968: (i) => [i.Location, i.ItemReference, i.Name],\n 1040185647: (i) => [i.Location, i.ItemReference, i.Name],\n 3207319532: (i) => [i.Location, i.ItemReference, i.Name],\n 3548104201: (i) => [i.Location, i.ItemReference, i.Name],\n 852622518: (i) => [i.AxisTag, i.AxisCurve, { type: 3, value: BooleanConvert(i.SameSense.value) }],\n 3020489413: (i) => [i.TimeStamp, i.ListValues.map((p) => Labelise(p))],\n 2655187982: (i) => [i.Name, i.Version, i.Publisher, i.VersionDate, i.LibraryReference],\n 3452421091: (i) => [i.Location, i.ItemReference, i.Name],\n 4162380809: (i) => [i.MainPlaneAngle, i.SecondaryPlaneAngle, i.LuminousIntensity],\n 1566485204: (i) => [i.LightDistributionCurve, i.DistributionData],\n 30780891: (i) => [i.HourComponent, i.MinuteComponent, i.SecondComponent, i.Zone, i.DaylightSavingOffset],\n 1838606355: (i) => [i.Name],\n 1847130766: (i) => [i.MaterialClassifications, i.ClassifiedMaterial],\n 248100487: (i) => [i.Material, i.LayerThickness, i.IsVentilated == null ? null : { type: 3, value: BooleanConvert(i.IsVentilated.value) }],\n 3303938423: (i) => [i.MaterialLayers, i.LayerSetName],\n 1303795690: (i) => [i.ForLayerSet, i.LayerSetDirection, i.DirectionSense, i.OffsetFromReferenceLine],\n 2199411900: (i) => [i.Materials],\n 3265635763: (i) => [i.Material],\n 2597039031: (i) => [Labelise(i.ValueComponent), i.UnitComponent],\n 4256014907: (i) => [i.Material, i.DynamicViscosity, i.YoungModulus, i.ShearModulus, i.PoissonRatio, i.ThermalExpansionCoefficient],\n 677618848: (i) => [i.Material, i.DynamicViscosity, i.YoungModulus, i.ShearModulus, i.PoissonRatio, i.ThermalExpansionCoefficient, i.YieldStress, i.UltimateStress, i.UltimateStrain, i.HardeningModule, i.ProportionalStress, i.PlasticStrain, i.Relaxations],\n 3368373690: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.Benchmark, i.ValueSource, i.DataValue],\n 2706619895: (i) => [i.Currency],\n 1918398963: (i) => [i.Dimensions, i.UnitType],\n 3701648758: (_) => [],\n 2251480897: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.BenchmarkValues, i.ResultValues, i.ObjectiveQualifier, i.UserDefinedQualifier],\n 1227763645: (i) => [i.Material, i.VisibleTransmittance, i.SolarTransmittance, i.ThermalIrTransmittance, i.ThermalIrEmissivityBack, i.ThermalIrEmissivityFront, i.VisibleReflectanceBack, i.VisibleReflectanceFront, i.SolarReflectanceFront, i.SolarReflectanceBack],\n 4251960020: (i) => [i.Id, i.Name, i.Description, i.Roles, i.Addresses],\n 1411181986: (i) => [i.Name, i.Description, i.RelatingOrganization, i.RelatedOrganizations],\n 1207048766: (i) => [i.OwningUser, i.OwningApplication, i.State, i.ChangeAction, i.LastModifiedDate, i.LastModifyingUser, i.LastModifyingApplication, i.CreationDate],\n 2077209135: (i) => [i.Id, i.FamilyName, i.GivenName, i.MiddleNames, i.PrefixTitles, i.SuffixTitles, i.Roles, i.Addresses],\n 101040310: (i) => [i.ThePerson, i.TheOrganization, i.Roles],\n 2483315170: (i) => [i.Name, i.Description],\n 2226359599: (i) => [i.Name, i.Description, i.Unit],\n 3355820592: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.InternalLocation, i.AddressLines, i.PostalBox, i.Town, i.Region, i.PostalCode, i.Country],\n 3727388367: (i) => [i.Name],\n 990879717: (i) => [i.Name],\n 3213052703: (i) => [i.Name],\n 1775413392: (i) => [i.Name],\n 2022622350: (i) => [i.Name, i.Description, i.AssignedItems, i.Identifier],\n 1304840413: (i) => [i.Name, i.Description, i.AssignedItems, i.Identifier, i.LayerOn, i.LayerFrozen, i.LayerBlocked, i.LayerStyles],\n 3119450353: (i) => [i.Name],\n 2417041796: (i) => [i.Styles],\n 2095639259: (i) => [i.Name, i.Description, i.Representations],\n 2267347899: (i) => [i.Material, i.SpecificHeatCapacity, i.N20Content, i.COContent, i.CO2Content],\n 3958567839: (i) => [i.ProfileType, i.ProfileName],\n 2802850158: (i) => [i.ProfileName, i.ProfileDefinition],\n 2598011224: (i) => [i.Name, i.Description],\n 3896028662: (i) => [i.RelatingConstraint, i.RelatedProperties, i.Name, i.Description],\n 148025276: (i) => [i.DependingProperty, i.DependantProperty, i.Name, i.Description, i.Expression],\n 3710013099: (i) => [i.Name, i.EnumerationValues.map((p) => Labelise(p)), i.Unit],\n 2044713172: (i) => [i.Name, i.Description, i.Unit, i.AreaValue],\n 2093928680: (i) => [i.Name, i.Description, i.Unit, i.CountValue],\n 931644368: (i) => [i.Name, i.Description, i.Unit, i.LengthValue],\n 3252649465: (i) => [i.Name, i.Description, i.Unit, i.TimeValue],\n 2405470396: (i) => [i.Name, i.Description, i.Unit, i.VolumeValue],\n 825690147: (i) => [i.Name, i.Description, i.Unit, i.WeightValue],\n 2692823254: (i) => [i.ReferencedDocument, i.ReferencingValues, i.Name, i.Description],\n 1580146022: (i) => [i.TotalCrossSectionArea, i.SteelGrade, i.BarSurface, i.EffectiveDepth, i.NominalBarDiameter, i.BarCount],\n 1222501353: (i) => [i.RelaxationValue, i.InitialStress],\n 1076942058: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n 3377609919: (i) => [i.ContextIdentifier, i.ContextType],\n 3008791417: (_) => [],\n 1660063152: (i) => [i.MappingOrigin, i.MappedRepresentation],\n 3679540991: (i) => [i.ProfileName, i.ProfileDefinition, i.Thickness, i.RibHeight, i.RibWidth, i.RibSpacing, i.Direction],\n 2341007311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 448429030: (i) => [i.Dimensions, i.UnitType, i.Prefix, i.Name],\n 2042790032: (i) => [i.SectionType, i.StartProfile, i.EndProfile],\n 4165799628: (i) => [i.LongitudinalStartPosition, i.LongitudinalEndPosition, i.TransversePosition, i.ReinforcementRole, i.SectionDefinition, i.CrossSectionReinforcementDefinitions],\n 867548509: (i) => [i.ShapeRepresentations, i.Name, i.Description, i.ProductDefinitional, i.PartOfProductDefinitionShape],\n 3982875396: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n 4240577450: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n 3692461612: (i) => [i.Name, i.Description],\n 2273995522: (i) => [i.Name],\n 2162789131: (i) => [i.Name],\n 2525727697: (i) => [i.Name],\n 3408363356: (i) => [i.Name, i.DeltaT_Constant, i.DeltaT_Y, i.DeltaT_Z],\n 2830218821: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n 3958052878: (i) => [i.Item, i.Styles, i.Name],\n 3049322572: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n 1300840506: (i) => [i.Name, i.Side, i.Styles],\n 3303107099: (i) => [i.DiffuseTransmissionColour, i.DiffuseReflectionColour, i.TransmissionColour, i.ReflectanceColour],\n 1607154358: (i) => [i.RefractionIndex, i.DispersionFactor],\n 846575682: (i) => [i.SurfaceColour],\n 1351298697: (i) => [i.Textures],\n 626085974: (i) => [i.RepeatS, i.RepeatT, i.TextureType, i.TextureTransform],\n 1290481447: (i) => [i.Name, Labelise(i.StyleOfSymbol)],\n 985171141: (i) => [i.Name, i.Rows],\n 531007025: (i) => [i.RowCells.map((p) => Labelise(p)), i.IsHeading],\n 912023232: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.TelephoneNumbers, i.FacsimileNumbers, i.PagerNumber, i.ElectronicMailAddresses, i.WWWHomePageURL],\n 1447204868: (i) => [i.Name, i.TextCharacterAppearance, i.TextStyle, i.TextFontStyle],\n 1983826977: (i) => [i.Name, i.FontFamily, i.FontStyle, i.FontVariant, i.FontWeight, Labelise(i.FontSize)],\n 2636378356: (i) => [i.Colour, i.BackgroundColour],\n 1640371178: (i) => [!i.TextIndent ? null : Labelise(i.TextIndent), i.TextAlign, i.TextDecoration, !i.LetterSpacing ? null : Labelise(i.LetterSpacing), !i.WordSpacing ? null : Labelise(i.WordSpacing), i.TextTransform, !i.LineHeight ? null : Labelise(i.LineHeight)],\n 1484833681: (i) => [i.BoxHeight, i.BoxWidth, i.BoxSlantAngle, i.BoxRotateAngle, !i.CharacterSpacing ? null : Labelise(i.CharacterSpacing)],\n 280115917: (_) => [],\n 1742049831: (i) => [i.Mode, i.Parameter.map((p) => Labelise(p))],\n 2552916305: (i) => [i.TextureMaps],\n 1210645708: (i) => [i.Coordinates],\n 3317419933: (i) => [i.Material, i.SpecificHeatCapacity, i.BoilingPoint, i.FreezingPoint, i.ThermalConductivity],\n 3101149627: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit],\n 1718945513: (i) => [i.ReferencedTimeSeries, i.TimeSeriesReferences],\n 581633288: (i) => [i.ListValues.map((p) => Labelise(p))],\n 1377556343: (_) => [],\n 1735638870: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n 180925521: (i) => [i.Units],\n 2799835756: (_) => [],\n 3304826586: (i) => [i.TextureVertices, i.TexturePoints],\n 1907098498: (i) => [i.VertexGeometry],\n 891718957: (i) => [i.IntersectingAxes, i.OffsetDistances],\n 1065908215: (i) => [i.Material, i.IsPotable, i.Hardness, i.AlkalinityConcentration, i.AcidityConcentration, i.ImpuritiesContent, i.PHLevel, i.DissolvedSolidsContent],\n 2442683028: (i) => [i.Item, i.Styles, i.Name],\n 962685235: (i) => [i.Item, i.Styles, i.Name],\n 3612888222: (i) => [i.Item, i.Styles, i.Name],\n 2297822566: (i) => [i.Item, i.Styles, i.Name],\n 3798115385: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve],\n 1310608509: (i) => [i.ProfileType, i.ProfileName, i.Curve],\n 2705031697: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve, i.InnerCurves],\n 616511568: (i) => [i.RepeatS, i.RepeatT, i.TextureType, i.TextureTransform, i.RasterFormat, i.RasterCode],\n 3150382593: (i) => [i.ProfileType, i.ProfileName, i.Curve, i.Thickness],\n 647927063: (i) => [i.Location, i.ItemReference, i.Name, i.ReferencedSource],\n 776857604: (i) => [i.Name, i.Red, i.Green, i.Blue],\n 2542286263: (i) => [i.Name, i.Description, i.UsageName, i.HasProperties],\n 1485152156: (i) => [i.ProfileType, i.ProfileName, i.Profiles, i.Label],\n 370225590: (i) => [i.CfsFaces],\n 1981873012: (i) => [i.CurveOnRelatingElement, i.CurveOnRelatedElement],\n 45288368: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement, i.EccentricityInX, i.EccentricityInY, i.EccentricityInZ],\n 3050246964: (i) => [i.Dimensions, i.UnitType, i.Name],\n 2889183280: (i) => [i.Dimensions, i.UnitType, i.Name, i.ConversionFactor],\n 3800577675: (i) => [i.Name, i.CurveFont, !i.CurveWidth ? null : Labelise(i.CurveWidth), i.CurveColour],\n 3632507154: (i) => [i.ProfileType, i.ProfileName, i.ParentProfile, i.Operator, i.Label],\n 2273265877: (i) => [i.Name, i.Description, i.RelatingDraughtingCallout, i.RelatedDraughtingCallout],\n 1694125774: (i) => [i.Name, i.Description, i.RelatingDraughtingCallout, i.RelatedDraughtingCallout],\n 3732053477: (i) => [i.Location, i.ItemReference, i.Name],\n 4170525392: (i) => [i.Name],\n 3900360178: (i) => [i.EdgeStart, i.EdgeEnd],\n 476780140: (i) => [i.EdgeStart, i.EdgeEnd, i.EdgeGeometry, i.SameSense],\n 1860660968: (i) => [i.Material, i.ExtendedProperties, i.Description, i.Name],\n 2556980723: (i) => [i.Bounds],\n 1809719519: (i) => [i.Bound, i.Orientation],\n 803316827: (i) => [i.Bound, i.Orientation],\n 3008276851: (i) => [i.Bounds, i.FaceSurface, i.SameSense],\n 4219587988: (i) => [i.Name, i.TensionFailureX, i.TensionFailureY, i.TensionFailureZ, i.CompressionFailureX, i.CompressionFailureY, i.CompressionFailureZ],\n 738692330: (i) => [i.Name, i.FillStyles],\n 3857492461: (i) => [i.Material, i.CombustionTemperature, i.CarbonContent, i.LowerHeatingValue, i.HigherHeatingValue],\n 803998398: (i) => [i.Material, i.MolecularWeight, i.Porosity, i.MassDensity],\n 1446786286: (i) => [i.ProfileName, i.ProfileDefinition, i.PhysicalWeight, i.Perimeter, i.MinimumPlateThickness, i.MaximumPlateThickness, i.CrossSectionArea],\n 3448662350: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth],\n 2453401579: (_) => [],\n 4142052618: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth, i.ParentContext, i.TargetScale, i.TargetView, i.UserDefinedTargetView],\n 3590301190: (i) => [i.Elements],\n 178086475: (i) => [i.PlacementLocation, i.PlacementRefDirection],\n 812098782: (i) => [i.BaseSurface, i.AgreementFlag],\n 2445078500: (i) => [i.Material, i.UpperVaporResistanceFactor, i.LowerVaporResistanceFactor, i.IsothermalMoistureCapacity, i.VaporPermeability, i.MoistureDiffusivity],\n 3905492369: (i) => [i.RepeatS, i.RepeatT, i.TextureType, i.TextureTransform, i.UrlReference],\n 3741457305: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.Values],\n 1402838566: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity],\n 125510826: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity],\n 2604431987: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Orientation],\n 4266656042: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.ColourAppearance, i.ColourTemperature, i.LuminousFlux, i.LightEmissionSource, i.LightDistributionDataSource],\n 1520743889: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation],\n 3422422726: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation, i.Orientation, i.ConcentrationExponent, i.SpreadAngle, i.BeamWidthAngle],\n 2624227202: (i) => [i.PlacementRelTo, i.RelativePlacement],\n 1008929658: (_) => [],\n 2347385850: (i) => [i.MappingSource, i.MappingTarget],\n 2022407955: (i) => [i.Name, i.Description, i.Representations, i.RepresentedMaterial],\n 1430189142: (i) => [i.Material, i.DynamicViscosity, i.YoungModulus, i.ShearModulus, i.PoissonRatio, i.ThermalExpansionCoefficient, i.CompressiveStrength, i.MaxAggregateSize, i.AdmixturesDescription, i.Workability, i.ProtectivePoreRatio, i.WaterImpermeability],\n 219451334: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 2833995503: (i) => [i.RepeatFactor],\n 2665983363: (i) => [i.CfsFaces],\n 1029017970: (i) => [i.EdgeStart, i.EdgeEnd, i.EdgeElement, i.Orientation],\n 2529465313: (i) => [i.ProfileType, i.ProfileName, i.Position],\n 2519244187: (i) => [i.EdgeList],\n 3021840470: (i) => [i.Name, i.Description, i.HasQuantities, i.Discrimination, i.Quality, i.Usage],\n 597895409: (i) => [i.RepeatS, i.RepeatT, i.TextureType, i.TextureTransform, i.Width, i.Height, i.ColourComponents, i.Pixel],\n 2004835150: (i) => [i.Location],\n 1663979128: (i) => [i.SizeInX, i.SizeInY],\n 2067069095: (_) => [],\n 4022376103: (i) => [i.BasisCurve, i.PointParameter],\n 1423911732: (i) => [i.BasisSurface, i.PointParameterU, i.PointParameterV],\n 2924175390: (i) => [i.Polygon],\n 2775532180: (i) => [i.BaseSurface, i.AgreementFlag, i.Position, i.PolygonalBoundary],\n 759155922: (i) => [i.Name],\n 2559016684: (i) => [i.Name],\n 433424934: (i) => [i.Name],\n 179317114: (i) => [i.Name],\n 673634403: (i) => [i.Name, i.Description, i.Representations],\n 871118103: (i) => [i.Name, i.Description, !i.UpperBoundValue ? null : Labelise(i.UpperBoundValue), !i.LowerBoundValue ? null : Labelise(i.LowerBoundValue), i.Unit],\n 1680319473: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 4166981789: (i) => [i.Name, i.Description, i.EnumerationValues.map((p) => Labelise(p)), i.EnumerationReference],\n 2752243245: (i) => [i.Name, i.Description, i.ListValues.map((p) => Labelise(p)), i.Unit],\n 941946838: (i) => [i.Name, i.Description, i.UsageName, i.PropertyReference],\n 3357820518: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 3650150729: (i) => [i.Name, i.Description, !i.NominalValue ? null : Labelise(i.NominalValue), i.Unit],\n 110355661: (i) => [i.Name, i.Description, i.DefiningValues.map((p) => Labelise(p)), i.DefinedValues.map((p) => Labelise(p)), i.Expression, i.DefiningUnit, i.DefinedUnit],\n 3615266464: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim],\n 3413951693: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.TimeStep, i.Values],\n 3765753017: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.DefinitionType, i.ReinforcementSectionDefinitions],\n 478536968: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 2778083089: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.RoundingRadius],\n 1509187699: (i) => [i.SpineCurve, i.CrossSections, i.CrossSectionPositions],\n 2411513650: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.PredefinedType, !i.UpperValue ? null : Labelise(i.UpperValue), Labelise(i.MostUsedValue), !i.LowerValue ? null : Labelise(i.LowerValue)],\n 4124623270: (i) => [i.SbsmBoundary],\n 2609359061: (i) => [i.Name, i.SlippageX, i.SlippageY, i.SlippageZ],\n 723233188: (_) => [],\n 2485662743: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, { type: 3, value: BooleanConvert(i.IsAttenuating.value) }, i.SoundScale, i.SoundValues],\n 1202362311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.SoundLevelTimeSeries, i.Frequency, !i.SoundLevelSingleValue ? null : Labelise(i.SoundLevelSingleValue)],\n 390701378: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableValueRatio, i.ThermalLoadSource, i.PropertySource, i.SourceDescription, i.MaximumValue, i.MinimumValue, i.ThermalLoadTimeSeriesValues, i.UserDefinedThermalLoadSource, i.UserDefinedPropertySource, i.ThermalLoadType],\n 1595516126: (i) => [i.Name, i.LinearForceX, i.LinearForceY, i.LinearForceZ, i.LinearMomentX, i.LinearMomentY, i.LinearMomentZ],\n 2668620305: (i) => [i.Name, i.PlanarForceX, i.PlanarForceY, i.PlanarForceZ],\n 2473145415: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ],\n 1973038258: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ, i.Distortion],\n 1597423693: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ],\n 1190533807: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ, i.WarpingMoment],\n 3843319758: (i) => [i.ProfileName, i.ProfileDefinition, i.PhysicalWeight, i.Perimeter, i.MinimumPlateThickness, i.MaximumPlateThickness, i.CrossSectionArea, i.TorsionalConstantX, i.MomentOfInertiaYZ, i.MomentOfInertiaY, i.MomentOfInertiaZ, i.WarpingConstant, i.ShearCentreZ, i.ShearCentreY, i.ShearDeformationAreaZ, i.ShearDeformationAreaY, i.MaximumSectionModulusY, i.MinimumSectionModulusY, i.MaximumSectionModulusZ, i.MinimumSectionModulusZ, i.TorsionalSectionModulus, i.CentreOfGravityInX, i.CentreOfGravityInY],\n 3653947884: (i) => [i.ProfileName, i.ProfileDefinition, i.PhysicalWeight, i.Perimeter, i.MinimumPlateThickness, i.MaximumPlateThickness, i.CrossSectionArea, i.TorsionalConstantX, i.MomentOfInertiaYZ, i.MomentOfInertiaY, i.MomentOfInertiaZ, i.WarpingConstant, i.ShearCentreZ, i.ShearCentreY, i.ShearDeformationAreaZ, i.ShearDeformationAreaY, i.MaximumSectionModulusY, i.MinimumSectionModulusY, i.MaximumSectionModulusZ, i.MinimumSectionModulusZ, i.TorsionalSectionModulus, i.CentreOfGravityInX, i.CentreOfGravityInY, i.ShearAreaZ, i.ShearAreaY, i.PlasticShapeFactorY, i.PlasticShapeFactorZ],\n 2233826070: (i) => [i.EdgeStart, i.EdgeEnd, i.ParentEdge],\n 2513912981: (_) => [],\n 1878645084: (i) => [i.SurfaceColour, i.Transparency, i.DiffuseColour, i.TransmissionColour, i.DiffuseTransmissionColour, i.ReflectionColour, i.SpecularColour, !i.SpecularHighlight ? null : Labelise(i.SpecularHighlight), i.ReflectanceMethod],\n 2247615214: (i) => [i.SweptArea, i.Position],\n 1260650574: (i) => [i.Directrix, i.Radius, i.InnerRadius, i.StartParam, i.EndParam],\n 230924584: (i) => [i.SweptCurve, i.Position],\n 3071757647: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.FlangeEdgeRadius, i.WebEdgeRadius, i.WebSlope, i.FlangeSlope, i.CentreOfGravityInY],\n 3028897424: (i) => [i.Item, i.Styles, i.Name, i.AnnotatedCurve],\n 4282788508: (i) => [i.Literal, i.Placement, i.Path],\n 3124975700: (i) => [i.Literal, i.Placement, i.Path, i.Extent, i.BoxAlignment],\n 2715220739: (i) => [i.ProfileType, i.ProfileName, i.Position, i.BottomXDim, i.TopXDim, i.YDim, i.TopXOffset],\n 1345879162: (i) => [i.RepeatFactor, i.SecondRepeatFactor],\n 1628702193: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets],\n 2347495698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag],\n 427810014: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius, i.FlangeSlope, i.CentreOfGravityInX],\n 1417489154: (i) => [i.Orientation, i.Magnitude],\n 2759199220: (i) => [i.LoopVertex],\n 336235671: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.TransomThickness, i.MullionThickness, i.FirstTransomOffset, i.SecondTransomOffset, i.FirstMullionOffset, i.SecondMullionOffset, i.ShapeAspectStyle],\n 512836454: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle],\n 1299126871: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ConstructionType, i.OperationType, i.ParameterTakesPrecedence, i.Sizeable],\n 2543172580: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius],\n 3288037868: (i) => [i.Item, i.Styles, i.Name],\n 669184980: (i) => [i.OuterBoundary, i.InnerBoundaries],\n 2265737646: (i) => [i.Item, i.Styles, i.Name, i.FillStyleTarget, i.GlobalOrLocal],\n 1302238472: (i) => [i.Item, i.TextureCoordinates],\n 4261334040: (i) => [i.Location, i.Axis],\n 3125803723: (i) => [i.Location, i.RefDirection],\n 2740243338: (i) => [i.Location, i.Axis, i.RefDirection],\n 2736907675: (i) => [i.Operator, i.FirstOperand, i.SecondOperand],\n 4182860854: (_) => [],\n 2581212453: (i) => [i.Corner, i.XDim, i.YDim, i.ZDim],\n 2713105998: (i) => [i.BaseSurface, i.AgreementFlag, i.Enclosure],\n 2898889636: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.WallThickness, i.Girth, i.InternalFilletRadius, i.CentreOfGravityInX],\n 1123145078: (i) => [i.Coordinates],\n 59481748: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale],\n 3749851601: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale],\n 3486308946: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Scale2],\n 3331915920: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3],\n 1416205885: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3, i.Scale2, i.Scale3],\n 1383045692: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius],\n 2205249479: (i) => [i.CfsFaces],\n 2485617015: (i) => [i.Transition, i.SameSense, i.ParentCurve],\n 4133800736: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallHeight, i.BaseWidth2, i.Radius, i.HeadWidth, i.HeadDepth2, i.HeadDepth3, i.WebThickness, i.BaseWidth4, i.BaseDepth1, i.BaseDepth2, i.BaseDepth3, i.CentreOfGravityInY],\n 194851669: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallHeight, i.HeadWidth, i.Radius, i.HeadDepth2, i.HeadDepth3, i.WebThickness, i.BaseDepth1, i.BaseDepth2, i.CentreOfGravityInY],\n 2506170314: (i) => [i.Position],\n 2147822146: (i) => [i.TreeRootExpression],\n 2601014836: (_) => [],\n 2827736869: (i) => [i.BasisSurface, i.OuterBoundary, i.InnerBoundaries],\n 693772133: (i) => [i.Definition, i.Target],\n 606661476: (i) => [i.Item, i.Styles, i.Name],\n 4054601972: (i) => [i.Item, i.Styles, i.Name, i.AnnotatedCurve, i.Role],\n 32440307: (i) => [i.DirectionRatios],\n 2963535650: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.ThresholdDepth, i.ThresholdThickness, i.TransomThickness, i.TransomOffset, i.LiningOffset, i.ThresholdOffset, i.CasingThickness, i.CasingDepth, i.ShapeAspectStyle],\n 1714330368: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.PanelDepth, i.PanelOperation, i.PanelWidth, i.PanelPosition, i.ShapeAspectStyle],\n 526551008: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.OperationType, i.ConstructionType, i.ParameterTakesPrecedence, i.Sizeable],\n 3073041342: (i) => [i.Contents],\n 445594917: (i) => [i.Name],\n 4006246654: (i) => [i.Name],\n 1472233963: (i) => [i.EdgeList],\n 1883228015: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.MethodOfMeasurement, i.Quantities],\n 339256511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 2777663545: (i) => [i.Position],\n 2835456948: (i) => [i.ProfileType, i.ProfileName, i.Position, i.SemiAxis1, i.SemiAxis2],\n 80994333: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.EnergySequence, i.UserDefinedEnergySequence],\n 477187591: (i) => [i.SweptArea, i.Position, i.ExtrudedDirection, i.Depth],\n 2047409740: (i) => [i.FbsmFaces],\n 374418227: (i) => [i.HatchLineAppearance, i.StartOfNextHatchLine, i.PointOfReferenceHatchLine, i.PatternStart, i.HatchLineAngle],\n 4203026998: (i) => [i.Symbol],\n 315944413: (i) => [i.TilingPattern, i.Tiles, i.TilingScale],\n 3455213021: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.PropertySource, i.FlowConditionTimeSeries, i.VelocityTimeSeries, i.FlowrateTimeSeries, i.Fluid, i.PressureTimeSeries, i.UserDefinedPropertySource, i.TemperatureSingleValue, i.WetBulbTemperatureSingleValue, i.WetBulbTemperatureTimeSeries, i.TemperatureTimeSeries, !i.FlowrateSingleValue ? null : Labelise(i.FlowrateSingleValue), i.FlowConditionSingleValue, i.VelocitySingleValue, i.PressureSingleValue],\n 4238390223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 1268542332: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.AssemblyPlace],\n 987898635: (i) => [i.Elements],\n 1484403080: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallWidth, i.OverallDepth, i.WebThickness, i.FlangeThickness, i.FilletRadius],\n 572779678: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.Thickness, i.FilletRadius, i.EdgeRadius, i.LegSlope, i.CentreOfGravityInX, i.CentreOfGravityInY],\n 1281925730: (i) => [i.Pnt, i.Dir],\n 1425443689: (i) => [i.Outer],\n 3888040117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n 3388369263: (i) => [i.BasisCurve, i.Distance, i.SelfIntersect],\n 3505215534: (i) => [i.BasisCurve, i.Distance, i.SelfIntersect, i.RefDirection],\n 3566463478: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle],\n 603570806: (i) => [i.SizeInX, i.SizeInY, i.Placement],\n 220341763: (i) => [i.Position],\n 2945172077: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n 4208778838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n 103090709: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext],\n 4194566429: (i) => [i.Item, i.Styles, i.Name],\n 1451395588: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.HasProperties],\n 3219374653: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.ProxyType, i.Tag],\n 2770003689: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.WallThickness, i.InnerFilletRadius, i.OuterFilletRadius],\n 2798486643: (i) => [i.Position, i.XLength, i.YLength, i.Height],\n 3454111270: (i) => [i.BasisSurface, i.U1, i.V1, i.U2, i.V2, i.Usense, i.Vsense],\n 3939117080: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType],\n 1683148259: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingActor, i.ActingRole],\n 2495723537: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl],\n 1307041759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingGroup],\n 4278684876: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProcess, i.QuantityInProcess],\n 2857406711: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProduct],\n 3372526763: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl],\n 205026976: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingResource],\n 1865459582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects],\n 1327628568: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingAppliedValue],\n 4095574036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingApproval],\n 919958153: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingClassification],\n 2728634034: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.Intent, i.RelatingConstraint],\n 982818633: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingDocument],\n 3840914261: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingLibrary],\n 2655215786: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingMaterial],\n 2851387026: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingProfileProperties, i.ProfileSectionLocation, i.ProfileOrientation],\n 826625072: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 1204542856: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement],\n 3945020480: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RelatingPriorities, i.RelatedPriorities, i.RelatedConnectionType, i.RelatingConnectionType],\n 4201705270: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedElement],\n 3190031847: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedPort, i.RealizingElement],\n 2127690289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedStructuralActivity],\n 3912681535: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedStructuralMember],\n 1638771189: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem],\n 504942748: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem, i.ConnectionConstraint],\n 3678494232: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RealizingElements, i.ConnectionType],\n 3242617779: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure],\n 886880790: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedCoverings],\n 2802773753: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedSpace, i.RelatedCoverings],\n 2551354335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects],\n 693640335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects],\n 4186316022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingPropertyDefinition],\n 781010003: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingType],\n 3940055652: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingOpeningElement, i.RelatedBuildingElement],\n 279856033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedControlElements, i.RelatingFlowElement],\n 4189434867: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.DailyInteraction, i.ImportanceRating, i.LocationOfInteraction, i.RelatedSpaceProgram, i.RelatingSpaceProgram],\n 3268803585: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects],\n 2051452291: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingActor, i.ActingRole],\n 202636808: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingPropertyDefinition, i.OverridingProperties],\n 750771296: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedFeatureElement],\n 1245217292: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure],\n 1058617721: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl],\n 4122056220: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingProcess, i.RelatedProcess, i.TimeLag, i.SequenceType],\n 366585022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSystem, i.RelatedBuildings],\n 3451746338: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary],\n 1401173127: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedOpeningElement],\n 2914609552: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n 1856042241: (i) => [i.SweptArea, i.Position, i.Axis, i.Angle],\n 4158566097: (i) => [i.Position, i.Height, i.BottomRadius],\n 3626867408: (i) => [i.Position, i.Height, i.Radius],\n 2706606064: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType],\n 3893378262: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 451544542: (i) => [i.Position, i.Radius],\n 3544373492: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal],\n 3136571912: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n 530289379: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n 3689010777: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal],\n 3979015343: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness],\n 2218152070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness, i.SubsequentThickness, i.VaryingThicknessLocation],\n 4070609034: (i) => [i.Contents],\n 2028607225: (i) => [i.SweptArea, i.Position, i.Directrix, i.StartParam, i.EndParam, i.ReferenceSurface],\n 2809605785: (i) => [i.SweptCurve, i.Position, i.ExtrudedDirection, i.Depth],\n 4124788165: (i) => [i.SweptCurve, i.Position, i.AxisPosition],\n 1580310250: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 3473067441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TaskId, i.Status, i.WorkMethod, i.IsMilestone, i.Priority],\n 2097647324: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2296667514: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor],\n 1674181508: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n 3207858831: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallWidth, i.OverallDepth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.TopFlangeWidth, i.TopFlangeThickness, i.TopFlangeFilletRadius, i.CentreOfGravityInY],\n 1334484129: (i) => [i.Position, i.XLength, i.YLength, i.ZLength],\n 3649129432: (i) => [i.Operator, i.FirstOperand, i.SecondOperand],\n 1260505505: (_) => [],\n 4031249490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.ElevationOfRefHeight, i.ElevationOfTerrain, i.BuildingAddress],\n 1950629157: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 3124254112: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.Elevation],\n 2937912522: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius, i.WallThickness],\n 300633059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3732776249: (i) => [i.Segments, i.SelfIntersect],\n 2510884976: (i) => [i.Position],\n 2559216714: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity],\n 3293443760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n 3895139033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n 1419761937: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.SubmittedBy, i.PreparedBy, i.SubmittedOn, i.Status, i.TargetUsers, i.UpdateDate, i.ID, i.PredefinedType],\n 1916426348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3295246426: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity],\n 1457835157: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 681481545: (i) => [i.Contents],\n 3256556792: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 3849074793: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 360485395: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.EnergySequence, i.UserDefinedEnergySequence, i.ElectricCurrentType, i.InputVoltage, i.InputFrequency, i.FullLoadCurrent, i.MinimumCircuitCurrent, i.MaximumPowerInput, i.RatedPowerInput, i.InputPhase],\n 1758889154: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 4123344466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.AssemblyPlace, i.PredefinedType],\n 1623761950: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 2590856083: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 1704287377: (i) => [i.Position, i.SemiAxis1, i.SemiAxis2],\n 2107101300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 1962604670: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 3272907226: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n 3174744832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3390157468: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 807026263: (i) => [i.Outer],\n 3737207727: (i) => [i.Outer, i.Voids],\n 647756555: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 2489546625: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 2827207264: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 2143335405: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 1287392070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 3907093117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 3198132628: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 3815607619: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1482959167: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 1834744321: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 1339347760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 2297155007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 3009222698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 263784265: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 814719939: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n 200128114: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3009204131: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.UAxes, i.VAxes, i.WAxes],\n 2706460486: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n 1251058090: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1806887404: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2391368822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.InventoryType, i.Jurisdiction, i.ResponsiblePersons, i.LastUpdateDate, i.CurrentValue, i.OriginalValue],\n 4288270099: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3827777499: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity, i.SkillSet],\n 1051575348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1161773419: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2506943328: (i) => [i.Contents],\n 377706215: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NominalDiameter, i.NominalLength],\n 2108223431: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 3181161470: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 977012517: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1916936684: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TaskId, i.Status, i.WorkMethod, i.IsMilestone, i.Priority, i.MoveFrom, i.MoveTo, i.PunchList],\n 4143007308: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor, i.PredefinedType],\n 3588315303: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 3425660407: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TaskId, i.Status, i.WorkMethod, i.IsMilestone, i.Priority, i.ActionID],\n 2837617999: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2382730787: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LifeCyclePhase],\n 3327091369: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PermitID],\n 804291784: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 4231323485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 4017108033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3724593414: (i) => [i.Points],\n 3740093272: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n 2744685151: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ProcedureID, i.ProcedureType, i.UserDefinedProcedureType],\n 2904328755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ID, i.PredefinedType, i.Status],\n 3642467123: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Records, i.PredefinedType],\n 3651124850: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 1842657554: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2250791053: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3248260540: (i) => [i.Contents],\n 2893384427: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2324767716: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 160246688: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects],\n 2863920197: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl, i.TimeForTask],\n 1768891740: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3517283431: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ActualStart, i.EarlyStart, i.LateStart, i.ScheduleStart, i.ActualFinish, i.EarlyFinish, i.LateFinish, i.ScheduleFinish, i.ScheduleDuration, i.ActualDuration, i.RemainingTime, i.FreeFloat, i.TotalFloat, i.IsCritical, i.StatusTime, i.StartFloat, i.FinishFloat, i.Completion],\n 4105383287: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ServiceLifeType, i.ServiceLifeDuration],\n 4097777520: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.RefLatitude, i.RefLongitude, i.RefElevation, i.LandTitleNumber, i.SiteAddress],\n 2533589738: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3856911033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.InteriorOrExteriorSpace, i.ElevationWithFlooring],\n 1305183839: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 652456506: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.SpaceProgramIdentifier, i.MaxRequiredArea, i.MinRequiredArea, i.RequestedLocation, i.StandardRequiredArea],\n 3812236995: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3112655638: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1039846685: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 682877961: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy],\n 1179482911: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition],\n 4243806635: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition],\n 214636428: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType],\n 2445595289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType],\n 1807405624: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy, i.ProjectedOrTrue],\n 1721250024: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy, i.ProjectedOrTrue, i.VaryingAppliedLoadLocation, i.SubsequentAppliedLoads],\n 1252848954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.ActionType, i.ActionSource, i.Coefficient, i.Purpose],\n 1621171031: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy, i.ProjectedOrTrue],\n 3987759626: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy, i.ProjectedOrTrue, i.VaryingAppliedLoadLocation, i.SubsequentAppliedLoads],\n 2082059205: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy],\n 734778138: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition],\n 1235345126: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal],\n 2986769608: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheoryType, i.ResultForLoadGroup, i.IsLinear],\n 1975003073: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition],\n 148013059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity, i.SubContractor, i.JobDescription],\n 2315554128: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2254336722: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n 5716631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1637806684: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ApplicableDates, i.TimeSeriesScheduleType, i.TimeSeries],\n 1692211062: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1620046519: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OperationType, i.CapacityByWeight, i.CapacityByNumber],\n 3593883385: (i) => [i.BasisCurve, i.Trim1, i.Trim2, i.SenseAgreement, i.MasterRepresentation],\n 1600972822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1911125066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 728799441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2769231204: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 1898987631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1133259667: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1028945134: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identifier, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.WorkControlType, i.UserDefinedControlType],\n 4218914973: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identifier, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.WorkControlType, i.UserDefinedControlType],\n 3342526732: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identifier, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.WorkControlType, i.UserDefinedControlType],\n 1033361043: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n 1213861670: (i) => [i.Segments, i.SelfIntersect],\n 3821786052: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.RequestID],\n 1411407467: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3352864051: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1871374353: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2470393545: (i) => [i.Contents],\n 3460190687: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.AssetID, i.OriginalValue, i.CurrentValue, i.TotalReplacementCost, i.Owner, i.User, i.ResponsiblePerson, i.IncorporationDate, i.DepreciatedValue],\n 1967976161: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, i.ClosedCurve, i.SelfIntersect],\n 819618141: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1916977116: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, i.ClosedCurve, i.SelfIntersect],\n 231477066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3299480353: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 52481810: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 2979338954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 1095909175: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.CompositionType],\n 1909888760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 395041908: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3293546465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1285652485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2951183804: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2611217952: (i) => [i.Position, i.Radius],\n 2301859152: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 843113511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 3850581409: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2816379211: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2188551683: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n 1163958913: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Criterion, i.CriterionDateTime],\n 3898045240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity],\n 1060000209: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity, i.Suppliers, i.UsageRatio],\n 488727124: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity],\n 335055490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2954562838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1973544240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3495092785: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 3961806047: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 4147604152: (i) => [i.Contents],\n 1335981549: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 2635815018: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 1599208980: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2063403501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 1945004755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 3040386961: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 3041715199: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.FlowDirection],\n 395920057: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth],\n 869906466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3760055223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2030761528: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 855621170: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.FeatureLength],\n 663422040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3277789161: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1534661035: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1365060375: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1217240411: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 712377611: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1634875225: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n 857184966: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 1658829314: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 346874300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1810631287: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 4222183408: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2058353004: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 4278956645: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 4037862832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3132237377: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 987401354: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 707683696: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 2223149337: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 3508470533: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 900683007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1073191201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 1687234759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType, i.ConstructionType],\n 3171933400: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 2262370178: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3024970846: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.ShapeType],\n 3283111854: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 3055160366: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, i.ClosedCurve, i.SelfIntersect, i.WeightsData],\n 3027567501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade],\n 2320036040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.MeshLength, i.MeshWidth, i.LongitudinalBarNominalDiameter, i.TransverseBarNominalDiameter, i.LongitudinalBarCrossSectionArea, i.TransverseBarCrossSectionArea, i.LongitudinalBarSpacing, i.TransverseBarSpacing],\n 2016517767: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.ShapeType],\n 1376911519: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.FeatureLength, i.Radius],\n 1783015770: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1529196076: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 331165859: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.ShapeType],\n 4252922144: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NumberOfRiser, i.NumberOfTreads, i.RiserHeight, i.TreadLength],\n 2515109513: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.OrientationOf2DPlane, i.LoadedBy, i.HasResults],\n 3824725483: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.TensionForce, i.PreStress, i.FrictionCoefficient, i.AnchorageSlip, i.MinCurvatureRadius],\n 2347447852: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade],\n 3313531582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2391406946: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 3512223829: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 3304561284: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth],\n 2874132201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3001207471: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 753842376: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 2454782716: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.FeatureLength, i.Width, i.Height],\n 578613899: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1052013943: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 1062813311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.ControlElementId],\n 3700593921: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.DistributionPointFunction, i.UserDefinedFunction],\n 979691226: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.NominalDiameter, i.CrossSectionArea, i.BarLength, i.BarRole, i.BarSurface]\n};\nTypeInitialisers[1] = {\n 3699917729: (v) => new IFC2X3.IfcAbsorbedDoseMeasure(v),\n 4182062534: (v) => new IFC2X3.IfcAccelerationMeasure(v),\n 360377573: (v) => new IFC2X3.IfcAmountOfSubstanceMeasure(v),\n 632304761: (v) => new IFC2X3.IfcAngularVelocityMeasure(v),\n 2650437152: (v) => new IFC2X3.IfcAreaMeasure(v),\n 2735952531: (v) => new IFC2X3.IfcBoolean(v),\n 1867003952: (v) => new IFC2X3.IfcBoxAlignment(v),\n 2991860651: (v) => new IFC2X3.IfcComplexNumber(v.map((x) => x.value)),\n 3812528620: (v) => new IFC2X3.IfcCompoundPlaneAngleMeasure(v.map((x) => x.value)),\n 3238673880: (v) => new IFC2X3.IfcContextDependentMeasure(v),\n 1778710042: (v) => new IFC2X3.IfcCountMeasure(v),\n 94842927: (v) => new IFC2X3.IfcCurvatureMeasure(v),\n 86635668: (v) => new IFC2X3.IfcDayInMonthNumber(v),\n 300323983: (v) => new IFC2X3.IfcDaylightSavingHour(v),\n 1514641115: (v) => new IFC2X3.IfcDescriptiveMeasure(v),\n 4134073009: (v) => new IFC2X3.IfcDimensionCount(v),\n 524656162: (v) => new IFC2X3.IfcDoseEquivalentMeasure(v),\n 69416015: (v) => new IFC2X3.IfcDynamicViscosityMeasure(v),\n 1827137117: (v) => new IFC2X3.IfcElectricCapacitanceMeasure(v),\n 3818826038: (v) => new IFC2X3.IfcElectricChargeMeasure(v),\n 2093906313: (v) => new IFC2X3.IfcElectricConductanceMeasure(v),\n 3790457270: (v) => new IFC2X3.IfcElectricCurrentMeasure(v),\n 2951915441: (v) => new IFC2X3.IfcElectricResistanceMeasure(v),\n 2506197118: (v) => new IFC2X3.IfcElectricVoltageMeasure(v),\n 2078135608: (v) => new IFC2X3.IfcEnergyMeasure(v),\n 1102727119: (v) => new IFC2X3.IfcFontStyle(v),\n 2715512545: (v) => new IFC2X3.IfcFontVariant(v),\n 2590844177: (v) => new IFC2X3.IfcFontWeight(v),\n 1361398929: (v) => new IFC2X3.IfcForceMeasure(v),\n 3044325142: (v) => new IFC2X3.IfcFrequencyMeasure(v),\n 3064340077: (v) => new IFC2X3.IfcGloballyUniqueId(v),\n 3113092358: (v) => new IFC2X3.IfcHeatFluxDensityMeasure(v),\n 1158859006: (v) => new IFC2X3.IfcHeatingValueMeasure(v),\n 2589826445: (v) => new IFC2X3.IfcHourInDay(v),\n 983778844: (v) => new IFC2X3.IfcIdentifier(v),\n 3358199106: (v) => new IFC2X3.IfcIlluminanceMeasure(v),\n 2679005408: (v) => new IFC2X3.IfcInductanceMeasure(v),\n 1939436016: (v) => new IFC2X3.IfcInteger(v),\n 3809634241: (v) => new IFC2X3.IfcIntegerCountRateMeasure(v),\n 3686016028: (v) => new IFC2X3.IfcIonConcentrationMeasure(v),\n 3192672207: (v) => new IFC2X3.IfcIsothermalMoistureCapacityMeasure(v),\n 2054016361: (v) => new IFC2X3.IfcKinematicViscosityMeasure(v),\n 3258342251: (v) => new IFC2X3.IfcLabel(v),\n 1243674935: (v) => new IFC2X3.IfcLengthMeasure(v),\n 191860431: (v) => new IFC2X3.IfcLinearForceMeasure(v),\n 2128979029: (v) => new IFC2X3.IfcLinearMomentMeasure(v),\n 1307019551: (v) => new IFC2X3.IfcLinearStiffnessMeasure(v),\n 3086160713: (v) => new IFC2X3.IfcLinearVelocityMeasure(v),\n 503418787: (v) => new IFC2X3.IfcLogical(v),\n 2095003142: (v) => new IFC2X3.IfcLuminousFluxMeasure(v),\n 2755797622: (v) => new IFC2X3.IfcLuminousIntensityDistributionMeasure(v),\n 151039812: (v) => new IFC2X3.IfcLuminousIntensityMeasure(v),\n 286949696: (v) => new IFC2X3.IfcMagneticFluxDensityMeasure(v),\n 2486716878: (v) => new IFC2X3.IfcMagneticFluxMeasure(v),\n 1477762836: (v) => new IFC2X3.IfcMassDensityMeasure(v),\n 4017473158: (v) => new IFC2X3.IfcMassFlowRateMeasure(v),\n 3124614049: (v) => new IFC2X3.IfcMassMeasure(v),\n 3531705166: (v) => new IFC2X3.IfcMassPerLengthMeasure(v),\n 102610177: (v) => new IFC2X3.IfcMinuteInHour(v),\n 3341486342: (v) => new IFC2X3.IfcModulusOfElasticityMeasure(v),\n 2173214787: (v) => new IFC2X3.IfcModulusOfLinearSubgradeReactionMeasure(v),\n 1052454078: (v) => new IFC2X3.IfcModulusOfRotationalSubgradeReactionMeasure(v),\n 1753493141: (v) => new IFC2X3.IfcModulusOfSubgradeReactionMeasure(v),\n 3177669450: (v) => new IFC2X3.IfcMoistureDiffusivityMeasure(v),\n 1648970520: (v) => new IFC2X3.IfcMolecularWeightMeasure(v),\n 3114022597: (v) => new IFC2X3.IfcMomentOfInertiaMeasure(v),\n 2615040989: (v) => new IFC2X3.IfcMonetaryMeasure(v),\n 765770214: (v) => new IFC2X3.IfcMonthInYearNumber(v),\n 2095195183: (v) => new IFC2X3.IfcNormalisedRatioMeasure(v),\n 2395907400: (v) => new IFC2X3.IfcNumericMeasure(v),\n 929793134: (v) => new IFC2X3.IfcPHMeasure(v),\n 2260317790: (v) => new IFC2X3.IfcParameterValue(v),\n 2642773653: (v) => new IFC2X3.IfcPlanarForceMeasure(v),\n 4042175685: (v) => new IFC2X3.IfcPlaneAngleMeasure(v),\n 2815919920: (v) => new IFC2X3.IfcPositiveLengthMeasure(v),\n 3054510233: (v) => new IFC2X3.IfcPositivePlaneAngleMeasure(v),\n 1245737093: (v) => new IFC2X3.IfcPositiveRatioMeasure(v),\n 1364037233: (v) => new IFC2X3.IfcPowerMeasure(v),\n 2169031380: (v) => new IFC2X3.IfcPresentableText(v),\n 3665567075: (v) => new IFC2X3.IfcPressureMeasure(v),\n 3972513137: (v) => new IFC2X3.IfcRadioActivityMeasure(v),\n 96294661: (v) => new IFC2X3.IfcRatioMeasure(v),\n 200335297: (v) => new IFC2X3.IfcReal(v),\n 2133746277: (v) => new IFC2X3.IfcRotationalFrequencyMeasure(v),\n 1755127002: (v) => new IFC2X3.IfcRotationalMassMeasure(v),\n 3211557302: (v) => new IFC2X3.IfcRotationalStiffnessMeasure(v),\n 2766185779: (v) => new IFC2X3.IfcSecondInMinute(v),\n 3467162246: (v) => new IFC2X3.IfcSectionModulusMeasure(v),\n 2190458107: (v) => new IFC2X3.IfcSectionalAreaIntegralMeasure(v),\n 408310005: (v) => new IFC2X3.IfcShearModulusMeasure(v),\n 3471399674: (v) => new IFC2X3.IfcSolidAngleMeasure(v),\n 846465480: (v) => new IFC2X3.IfcSoundPowerMeasure(v),\n 993287707: (v) => new IFC2X3.IfcSoundPressureMeasure(v),\n 3477203348: (v) => new IFC2X3.IfcSpecificHeatCapacityMeasure(v),\n 2757832317: (v) => new IFC2X3.IfcSpecularExponent(v),\n 361837227: (v) => new IFC2X3.IfcSpecularRoughness(v),\n 58845555: (v) => new IFC2X3.IfcTemperatureGradientMeasure(v),\n 2801250643: (v) => new IFC2X3.IfcText(v),\n 1460886941: (v) => new IFC2X3.IfcTextAlignment(v),\n 3490877962: (v) => new IFC2X3.IfcTextDecoration(v),\n 603696268: (v) => new IFC2X3.IfcTextFontName(v),\n 296282323: (v) => new IFC2X3.IfcTextTransformation(v),\n 232962298: (v) => new IFC2X3.IfcThermalAdmittanceMeasure(v),\n 2645777649: (v) => new IFC2X3.IfcThermalConductivityMeasure(v),\n 2281867870: (v) => new IFC2X3.IfcThermalExpansionCoefficientMeasure(v),\n 857959152: (v) => new IFC2X3.IfcThermalResistanceMeasure(v),\n 2016195849: (v) => new IFC2X3.IfcThermalTransmittanceMeasure(v),\n 743184107: (v) => new IFC2X3.IfcThermodynamicTemperatureMeasure(v),\n 2726807636: (v) => new IFC2X3.IfcTimeMeasure(v),\n 2591213694: (v) => new IFC2X3.IfcTimeStamp(v),\n 1278329552: (v) => new IFC2X3.IfcTorqueMeasure(v),\n 3345633955: (v) => new IFC2X3.IfcVaporPermeabilityMeasure(v),\n 3458127941: (v) => new IFC2X3.IfcVolumeMeasure(v),\n 2593997549: (v) => new IFC2X3.IfcVolumetricFlowRateMeasure(v),\n 51269191: (v) => new IFC2X3.IfcWarpingConstantMeasure(v),\n 1718600412: (v) => new IFC2X3.IfcWarpingMomentMeasure(v),\n 4065007721: (v) => new IFC2X3.IfcYearNumber(v)\n};\nvar IFC2X3;\n(function(IFC2X32) {\n class IfcAbsorbedDoseMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCABSORBEDDOSEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcAbsorbedDoseMeasure = IfcAbsorbedDoseMeasure;\n class IfcAccelerationMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCACCELERATIONMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcAccelerationMeasure = IfcAccelerationMeasure;\n class IfcAmountOfSubstanceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCAMOUNTOFSUBSTANCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcAmountOfSubstanceMeasure = IfcAmountOfSubstanceMeasure;\n class IfcAngularVelocityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCANGULARVELOCITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcAngularVelocityMeasure = IfcAngularVelocityMeasure;\n class IfcAreaMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCAREAMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcAreaMeasure = IfcAreaMeasure;\n class IfcBoolean {\n constructor(v) {\n this.type = 3;\n this.name = \"IFCBOOLEAN\";\n this.value = v === null ? v : v == \"T\" ? true : false;\n }\n }\n IFC2X32.IfcBoolean = IfcBoolean;\n class IfcBoxAlignment {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCBOXALIGNMENT\";\n }\n }\n IFC2X32.IfcBoxAlignment = IfcBoxAlignment;\n class IfcComplexNumber {\n constructor(value) {\n this.value = value;\n this.type = 4;\n }\n }\n IFC2X32.IfcComplexNumber = IfcComplexNumber;\n ;\n class IfcCompoundPlaneAngleMeasure {\n constructor(value) {\n this.value = value;\n this.type = 10;\n }\n }\n IFC2X32.IfcCompoundPlaneAngleMeasure = IfcCompoundPlaneAngleMeasure;\n ;\n class IfcContextDependentMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCCONTEXTDEPENDENTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcContextDependentMeasure = IfcContextDependentMeasure;\n class IfcCountMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCCOUNTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcCountMeasure = IfcCountMeasure;\n class IfcCurvatureMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCCURVATUREMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcCurvatureMeasure = IfcCurvatureMeasure;\n class IfcDayInMonthNumber {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCDAYINMONTHNUMBER\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcDayInMonthNumber = IfcDayInMonthNumber;\n class IfcDaylightSavingHour {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCDAYLIGHTSAVINGHOUR\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcDaylightSavingHour = IfcDaylightSavingHour;\n class IfcDescriptiveMeasure {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCDESCRIPTIVEMEASURE\";\n }\n }\n IFC2X32.IfcDescriptiveMeasure = IfcDescriptiveMeasure;\n class IfcDimensionCount {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCDIMENSIONCOUNT\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcDimensionCount = IfcDimensionCount;\n class IfcDoseEquivalentMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCDOSEEQUIVALENTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcDoseEquivalentMeasure = IfcDoseEquivalentMeasure;\n class IfcDynamicViscosityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCDYNAMICVISCOSITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcDynamicViscosityMeasure = IfcDynamicViscosityMeasure;\n class IfcElectricCapacitanceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCELECTRICCAPACITANCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcElectricCapacitanceMeasure = IfcElectricCapacitanceMeasure;\n class IfcElectricChargeMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCELECTRICCHARGEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcElectricChargeMeasure = IfcElectricChargeMeasure;\n class IfcElectricConductanceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCELECTRICCONDUCTANCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcElectricConductanceMeasure = IfcElectricConductanceMeasure;\n class IfcElectricCurrentMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCELECTRICCURRENTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcElectricCurrentMeasure = IfcElectricCurrentMeasure;\n class IfcElectricResistanceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCELECTRICRESISTANCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcElectricResistanceMeasure = IfcElectricResistanceMeasure;\n class IfcElectricVoltageMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCELECTRICVOLTAGEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcElectricVoltageMeasure = IfcElectricVoltageMeasure;\n class IfcEnergyMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCENERGYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcEnergyMeasure = IfcEnergyMeasure;\n class IfcFontStyle {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCFONTSTYLE\";\n }\n }\n IFC2X32.IfcFontStyle = IfcFontStyle;\n class IfcFontVariant {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCFONTVARIANT\";\n }\n }\n IFC2X32.IfcFontVariant = IfcFontVariant;\n class IfcFontWeight {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCFONTWEIGHT\";\n }\n }\n IFC2X32.IfcFontWeight = IfcFontWeight;\n class IfcForceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCFORCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcForceMeasure = IfcForceMeasure;\n class IfcFrequencyMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCFREQUENCYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcFrequencyMeasure = IfcFrequencyMeasure;\n class IfcGloballyUniqueId {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCGLOBALLYUNIQUEID\";\n }\n }\n IFC2X32.IfcGloballyUniqueId = IfcGloballyUniqueId;\n class IfcHeatFluxDensityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCHEATFLUXDENSITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcHeatFluxDensityMeasure = IfcHeatFluxDensityMeasure;\n class IfcHeatingValueMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCHEATINGVALUEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcHeatingValueMeasure = IfcHeatingValueMeasure;\n class IfcHourInDay {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCHOURINDAY\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcHourInDay = IfcHourInDay;\n class IfcIdentifier {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCIDENTIFIER\";\n }\n }\n IFC2X32.IfcIdentifier = IfcIdentifier;\n class IfcIlluminanceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCILLUMINANCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcIlluminanceMeasure = IfcIlluminanceMeasure;\n class IfcInductanceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCINDUCTANCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcInductanceMeasure = IfcInductanceMeasure;\n class IfcInteger {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCINTEGER\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcInteger = IfcInteger;\n class IfcIntegerCountRateMeasure {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCINTEGERCOUNTRATEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcIntegerCountRateMeasure = IfcIntegerCountRateMeasure;\n class IfcIonConcentrationMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCIONCONCENTRATIONMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcIonConcentrationMeasure = IfcIonConcentrationMeasure;\n class IfcIsothermalMoistureCapacityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCISOTHERMALMOISTURECAPACITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcIsothermalMoistureCapacityMeasure = IfcIsothermalMoistureCapacityMeasure;\n class IfcKinematicViscosityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCKINEMATICVISCOSITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcKinematicViscosityMeasure = IfcKinematicViscosityMeasure;\n class IfcLabel {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCLABEL\";\n }\n }\n IFC2X32.IfcLabel = IfcLabel;\n class IfcLengthMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCLENGTHMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcLengthMeasure = IfcLengthMeasure;\n class IfcLinearForceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCLINEARFORCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcLinearForceMeasure = IfcLinearForceMeasure;\n class IfcLinearMomentMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCLINEARMOMENTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcLinearMomentMeasure = IfcLinearMomentMeasure;\n class IfcLinearStiffnessMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCLINEARSTIFFNESSMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcLinearStiffnessMeasure = IfcLinearStiffnessMeasure;\n class IfcLinearVelocityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCLINEARVELOCITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcLinearVelocityMeasure = IfcLinearVelocityMeasure;\n class IfcLogical {\n constructor(v) {\n this.type = 3;\n this.name = \"IFCLOGICAL\";\n this.value = v === null ? v : v == \"T\" ? 1 : v == \"F\" ? 0 : 2;\n }\n }\n IFC2X32.IfcLogical = IfcLogical;\n class IfcLuminousFluxMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCLUMINOUSFLUXMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcLuminousFluxMeasure = IfcLuminousFluxMeasure;\n class IfcLuminousIntensityDistributionMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCLUMINOUSINTENSITYDISTRIBUTIONMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcLuminousIntensityDistributionMeasure = IfcLuminousIntensityDistributionMeasure;\n class IfcLuminousIntensityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCLUMINOUSINTENSITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcLuminousIntensityMeasure = IfcLuminousIntensityMeasure;\n class IfcMagneticFluxDensityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMAGNETICFLUXDENSITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcMagneticFluxDensityMeasure = IfcMagneticFluxDensityMeasure;\n class IfcMagneticFluxMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMAGNETICFLUXMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcMagneticFluxMeasure = IfcMagneticFluxMeasure;\n class IfcMassDensityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMASSDENSITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcMassDensityMeasure = IfcMassDensityMeasure;\n class IfcMassFlowRateMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMASSFLOWRATEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcMassFlowRateMeasure = IfcMassFlowRateMeasure;\n class IfcMassMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMASSMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcMassMeasure = IfcMassMeasure;\n class IfcMassPerLengthMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMASSPERLENGTHMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcMassPerLengthMeasure = IfcMassPerLengthMeasure;\n class IfcMinuteInHour {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCMINUTEINHOUR\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcMinuteInHour = IfcMinuteInHour;\n class IfcModulusOfElasticityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMODULUSOFELASTICITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcModulusOfElasticityMeasure = IfcModulusOfElasticityMeasure;\n class IfcModulusOfLinearSubgradeReactionMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMODULUSOFLINEARSUBGRADEREACTIONMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcModulusOfLinearSubgradeReactionMeasure = IfcModulusOfLinearSubgradeReactionMeasure;\n class IfcModulusOfRotationalSubgradeReactionMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMODULUSOFROTATIONALSUBGRADEREACTIONMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcModulusOfRotationalSubgradeReactionMeasure = IfcModulusOfRotationalSubgradeReactionMeasure;\n class IfcModulusOfSubgradeReactionMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMODULUSOFSUBGRADEREACTIONMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcModulusOfSubgradeReactionMeasure = IfcModulusOfSubgradeReactionMeasure;\n class IfcMoistureDiffusivityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMOISTUREDIFFUSIVITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcMoistureDiffusivityMeasure = IfcMoistureDiffusivityMeasure;\n class IfcMolecularWeightMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMOLECULARWEIGHTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcMolecularWeightMeasure = IfcMolecularWeightMeasure;\n class IfcMomentOfInertiaMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMOMENTOFINERTIAMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcMomentOfInertiaMeasure = IfcMomentOfInertiaMeasure;\n class IfcMonetaryMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMONETARYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcMonetaryMeasure = IfcMonetaryMeasure;\n class IfcMonthInYearNumber {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCMONTHINYEARNUMBER\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcMonthInYearNumber = IfcMonthInYearNumber;\n class IfcNormalisedRatioMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCNORMALISEDRATIOMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcNormalisedRatioMeasure = IfcNormalisedRatioMeasure;\n class IfcNumericMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCNUMERICMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcNumericMeasure = IfcNumericMeasure;\n class IfcPHMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCPHMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcPHMeasure = IfcPHMeasure;\n class IfcParameterValue {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCPARAMETERVALUE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcParameterValue = IfcParameterValue;\n class IfcPlanarForceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCPLANARFORCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcPlanarForceMeasure = IfcPlanarForceMeasure;\n class IfcPlaneAngleMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCPLANEANGLEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcPlaneAngleMeasure = IfcPlaneAngleMeasure;\n class IfcPositiveLengthMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCPOSITIVELENGTHMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcPositiveLengthMeasure = IfcPositiveLengthMeasure;\n class IfcPositivePlaneAngleMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCPOSITIVEPLANEANGLEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcPositivePlaneAngleMeasure = IfcPositivePlaneAngleMeasure;\n class IfcPositiveRatioMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCPOSITIVERATIOMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcPositiveRatioMeasure = IfcPositiveRatioMeasure;\n class IfcPowerMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCPOWERMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcPowerMeasure = IfcPowerMeasure;\n class IfcPresentableText {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCPRESENTABLETEXT\";\n }\n }\n IFC2X32.IfcPresentableText = IfcPresentableText;\n class IfcPressureMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCPRESSUREMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcPressureMeasure = IfcPressureMeasure;\n class IfcRadioActivityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCRADIOACTIVITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcRadioActivityMeasure = IfcRadioActivityMeasure;\n class IfcRatioMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCRATIOMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcRatioMeasure = IfcRatioMeasure;\n class IfcReal {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCREAL\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcReal = IfcReal;\n class IfcRotationalFrequencyMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCROTATIONALFREQUENCYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcRotationalFrequencyMeasure = IfcRotationalFrequencyMeasure;\n class IfcRotationalMassMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCROTATIONALMASSMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcRotationalMassMeasure = IfcRotationalMassMeasure;\n class IfcRotationalStiffnessMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCROTATIONALSTIFFNESSMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcRotationalStiffnessMeasure = IfcRotationalStiffnessMeasure;\n class IfcSecondInMinute {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSECONDINMINUTE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcSecondInMinute = IfcSecondInMinute;\n class IfcSectionModulusMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSECTIONMODULUSMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcSectionModulusMeasure = IfcSectionModulusMeasure;\n class IfcSectionalAreaIntegralMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSECTIONALAREAINTEGRALMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcSectionalAreaIntegralMeasure = IfcSectionalAreaIntegralMeasure;\n class IfcShearModulusMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSHEARMODULUSMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcShearModulusMeasure = IfcShearModulusMeasure;\n class IfcSolidAngleMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSOLIDANGLEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcSolidAngleMeasure = IfcSolidAngleMeasure;\n class IfcSoundPowerMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSOUNDPOWERMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcSoundPowerMeasure = IfcSoundPowerMeasure;\n class IfcSoundPressureMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSOUNDPRESSUREMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcSoundPressureMeasure = IfcSoundPressureMeasure;\n class IfcSpecificHeatCapacityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSPECIFICHEATCAPACITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcSpecificHeatCapacityMeasure = IfcSpecificHeatCapacityMeasure;\n class IfcSpecularExponent {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSPECULAREXPONENT\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcSpecularExponent = IfcSpecularExponent;\n class IfcSpecularRoughness {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSPECULARROUGHNESS\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcSpecularRoughness = IfcSpecularRoughness;\n class IfcTemperatureGradientMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTEMPERATUREGRADIENTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcTemperatureGradientMeasure = IfcTemperatureGradientMeasure;\n class IfcText {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCTEXT\";\n }\n }\n IFC2X32.IfcText = IfcText;\n class IfcTextAlignment {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCTEXTALIGNMENT\";\n }\n }\n IFC2X32.IfcTextAlignment = IfcTextAlignment;\n class IfcTextDecoration {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCTEXTDECORATION\";\n }\n }\n IFC2X32.IfcTextDecoration = IfcTextDecoration;\n class IfcTextFontName {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCTEXTFONTNAME\";\n }\n }\n IFC2X32.IfcTextFontName = IfcTextFontName;\n class IfcTextTransformation {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCTEXTTRANSFORMATION\";\n }\n }\n IFC2X32.IfcTextTransformation = IfcTextTransformation;\n class IfcThermalAdmittanceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTHERMALADMITTANCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcThermalAdmittanceMeasure = IfcThermalAdmittanceMeasure;\n class IfcThermalConductivityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTHERMALCONDUCTIVITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcThermalConductivityMeasure = IfcThermalConductivityMeasure;\n class IfcThermalExpansionCoefficientMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTHERMALEXPANSIONCOEFFICIENTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcThermalExpansionCoefficientMeasure = IfcThermalExpansionCoefficientMeasure;\n class IfcThermalResistanceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTHERMALRESISTANCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcThermalResistanceMeasure = IfcThermalResistanceMeasure;\n class IfcThermalTransmittanceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTHERMALTRANSMITTANCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcThermalTransmittanceMeasure = IfcThermalTransmittanceMeasure;\n class IfcThermodynamicTemperatureMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTHERMODYNAMICTEMPERATUREMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcThermodynamicTemperatureMeasure = IfcThermodynamicTemperatureMeasure;\n class IfcTimeMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTIMEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcTimeMeasure = IfcTimeMeasure;\n class IfcTimeStamp {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCTIMESTAMP\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcTimeStamp = IfcTimeStamp;\n class IfcTorqueMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTORQUEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcTorqueMeasure = IfcTorqueMeasure;\n class IfcVaporPermeabilityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCVAPORPERMEABILITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcVaporPermeabilityMeasure = IfcVaporPermeabilityMeasure;\n class IfcVolumeMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCVOLUMEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcVolumeMeasure = IfcVolumeMeasure;\n class IfcVolumetricFlowRateMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCVOLUMETRICFLOWRATEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcVolumetricFlowRateMeasure = IfcVolumetricFlowRateMeasure;\n class IfcWarpingConstantMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCWARPINGCONSTANTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcWarpingConstantMeasure = IfcWarpingConstantMeasure;\n class IfcWarpingMomentMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCWARPINGMOMENTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcWarpingMomentMeasure = IfcWarpingMomentMeasure;\n class IfcYearNumber {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCYEARNUMBER\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC2X32.IfcYearNumber = IfcYearNumber;\n class IfcActionSourceTypeEnum {\n }\n IfcActionSourceTypeEnum.DEAD_LOAD_G = { type: 3, value: \"DEAD_LOAD_G\" };\n IfcActionSourceTypeEnum.COMPLETION_G1 = { type: 3, value: \"COMPLETION_G1\" };\n IfcActionSourceTypeEnum.LIVE_LOAD_Q = { type: 3, value: \"LIVE_LOAD_Q\" };\n IfcActionSourceTypeEnum.SNOW_S = { type: 3, value: \"SNOW_S\" };\n IfcActionSourceTypeEnum.WIND_W = { type: 3, value: \"WIND_W\" };\n IfcActionSourceTypeEnum.PRESTRESSING_P = { type: 3, value: \"PRESTRESSING_P\" };\n IfcActionSourceTypeEnum.SETTLEMENT_U = { type: 3, value: \"SETTLEMENT_U\" };\n IfcActionSourceTypeEnum.TEMPERATURE_T = { type: 3, value: \"TEMPERATURE_T\" };\n IfcActionSourceTypeEnum.EARTHQUAKE_E = { type: 3, value: \"EARTHQUAKE_E\" };\n IfcActionSourceTypeEnum.FIRE = { type: 3, value: \"FIRE\" };\n IfcActionSourceTypeEnum.IMPULSE = { type: 3, value: \"IMPULSE\" };\n IfcActionSourceTypeEnum.IMPACT = { type: 3, value: \"IMPACT\" };\n IfcActionSourceTypeEnum.TRANSPORT = { type: 3, value: \"TRANSPORT\" };\n IfcActionSourceTypeEnum.ERECTION = { type: 3, value: \"ERECTION\" };\n IfcActionSourceTypeEnum.PROPPING = { type: 3, value: \"PROPPING\" };\n IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION = { type: 3, value: \"SYSTEM_IMPERFECTION\" };\n IfcActionSourceTypeEnum.SHRINKAGE = { type: 3, value: \"SHRINKAGE\" };\n IfcActionSourceTypeEnum.CREEP = { type: 3, value: \"CREEP\" };\n IfcActionSourceTypeEnum.LACK_OF_FIT = { type: 3, value: \"LACK_OF_FIT\" };\n IfcActionSourceTypeEnum.BUOYANCY = { type: 3, value: \"BUOYANCY\" };\n IfcActionSourceTypeEnum.ICE = { type: 3, value: \"ICE\" };\n IfcActionSourceTypeEnum.CURRENT = { type: 3, value: \"CURRENT\" };\n IfcActionSourceTypeEnum.WAVE = { type: 3, value: \"WAVE\" };\n IfcActionSourceTypeEnum.RAIN = { type: 3, value: \"RAIN\" };\n IfcActionSourceTypeEnum.BRAKES = { type: 3, value: \"BRAKES\" };\n IfcActionSourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcActionSourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcActionSourceTypeEnum = IfcActionSourceTypeEnum;\n class IfcActionTypeEnum {\n }\n IfcActionTypeEnum.PERMANENT_G = { type: 3, value: \"PERMANENT_G\" };\n IfcActionTypeEnum.VARIABLE_Q = { type: 3, value: \"VARIABLE_Q\" };\n IfcActionTypeEnum.EXTRAORDINARY_A = { type: 3, value: \"EXTRAORDINARY_A\" };\n IfcActionTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcActionTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcActionTypeEnum = IfcActionTypeEnum;\n class IfcActuatorTypeEnum {\n }\n IfcActuatorTypeEnum.ELECTRICACTUATOR = { type: 3, value: \"ELECTRICACTUATOR\" };\n IfcActuatorTypeEnum.HANDOPERATEDACTUATOR = { type: 3, value: \"HANDOPERATEDACTUATOR\" };\n IfcActuatorTypeEnum.HYDRAULICACTUATOR = { type: 3, value: \"HYDRAULICACTUATOR\" };\n IfcActuatorTypeEnum.PNEUMATICACTUATOR = { type: 3, value: \"PNEUMATICACTUATOR\" };\n IfcActuatorTypeEnum.THERMOSTATICACTUATOR = { type: 3, value: \"THERMOSTATICACTUATOR\" };\n IfcActuatorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcActuatorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcActuatorTypeEnum = IfcActuatorTypeEnum;\n class IfcAddressTypeEnum {\n }\n IfcAddressTypeEnum.OFFICE = { type: 3, value: \"OFFICE\" };\n IfcAddressTypeEnum.SITE = { type: 3, value: \"SITE\" };\n IfcAddressTypeEnum.HOME = { type: 3, value: \"HOME\" };\n IfcAddressTypeEnum.DISTRIBUTIONPOINT = { type: 3, value: \"DISTRIBUTIONPOINT\" };\n IfcAddressTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IFC2X32.IfcAddressTypeEnum = IfcAddressTypeEnum;\n class IfcAheadOrBehind {\n }\n IfcAheadOrBehind.AHEAD = { type: 3, value: \"AHEAD\" };\n IfcAheadOrBehind.BEHIND = { type: 3, value: \"BEHIND\" };\n IFC2X32.IfcAheadOrBehind = IfcAheadOrBehind;\n class IfcAirTerminalBoxTypeEnum {\n }\n IfcAirTerminalBoxTypeEnum.CONSTANTFLOW = { type: 3, value: \"CONSTANTFLOW\" };\n IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT = { type: 3, value: \"VARIABLEFLOWPRESSUREDEPENDANT\" };\n IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT = { type: 3, value: \"VARIABLEFLOWPRESSUREINDEPENDANT\" };\n IfcAirTerminalBoxTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcAirTerminalBoxTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcAirTerminalBoxTypeEnum = IfcAirTerminalBoxTypeEnum;\n class IfcAirTerminalTypeEnum {\n }\n IfcAirTerminalTypeEnum.GRILLE = { type: 3, value: \"GRILLE\" };\n IfcAirTerminalTypeEnum.REGISTER = { type: 3, value: \"REGISTER\" };\n IfcAirTerminalTypeEnum.DIFFUSER = { type: 3, value: \"DIFFUSER\" };\n IfcAirTerminalTypeEnum.EYEBALL = { type: 3, value: \"EYEBALL\" };\n IfcAirTerminalTypeEnum.IRIS = { type: 3, value: \"IRIS\" };\n IfcAirTerminalTypeEnum.LINEARGRILLE = { type: 3, value: \"LINEARGRILLE\" };\n IfcAirTerminalTypeEnum.LINEARDIFFUSER = { type: 3, value: \"LINEARDIFFUSER\" };\n IfcAirTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcAirTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcAirTerminalTypeEnum = IfcAirTerminalTypeEnum;\n class IfcAirToAirHeatRecoveryTypeEnum {\n }\n IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER = { type: 3, value: \"FIXEDPLATECOUNTERFLOWEXCHANGER\" };\n IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER = { type: 3, value: \"FIXEDPLATECROSSFLOWEXCHANGER\" };\n IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER = { type: 3, value: \"FIXEDPLATEPARALLELFLOWEXCHANGER\" };\n IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL = { type: 3, value: \"ROTARYWHEEL\" };\n IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP = { type: 3, value: \"RUNAROUNDCOILLOOP\" };\n IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE = { type: 3, value: \"HEATPIPE\" };\n IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS = { type: 3, value: \"TWINTOWERENTHALPYRECOVERYLOOPS\" };\n IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS = { type: 3, value: \"THERMOSIPHONSEALEDTUBEHEATEXCHANGERS\" };\n IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS = { type: 3, value: \"THERMOSIPHONCOILTYPEHEATEXCHANGERS\" };\n IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcAirToAirHeatRecoveryTypeEnum = IfcAirToAirHeatRecoveryTypeEnum;\n class IfcAlarmTypeEnum {\n }\n IfcAlarmTypeEnum.BELL = { type: 3, value: \"BELL\" };\n IfcAlarmTypeEnum.BREAKGLASSBUTTON = { type: 3, value: \"BREAKGLASSBUTTON\" };\n IfcAlarmTypeEnum.LIGHT = { type: 3, value: \"LIGHT\" };\n IfcAlarmTypeEnum.MANUALPULLBOX = { type: 3, value: \"MANUALPULLBOX\" };\n IfcAlarmTypeEnum.SIREN = { type: 3, value: \"SIREN\" };\n IfcAlarmTypeEnum.WHISTLE = { type: 3, value: \"WHISTLE\" };\n IfcAlarmTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcAlarmTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcAlarmTypeEnum = IfcAlarmTypeEnum;\n class IfcAnalysisModelTypeEnum {\n }\n IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D = { type: 3, value: \"IN_PLANE_LOADING_2D\" };\n IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D = { type: 3, value: \"OUT_PLANE_LOADING_2D\" };\n IfcAnalysisModelTypeEnum.LOADING_3D = { type: 3, value: \"LOADING_3D\" };\n IfcAnalysisModelTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcAnalysisModelTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcAnalysisModelTypeEnum = IfcAnalysisModelTypeEnum;\n class IfcAnalysisTheoryTypeEnum {\n }\n IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY = { type: 3, value: \"FIRST_ORDER_THEORY\" };\n IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY = { type: 3, value: \"SECOND_ORDER_THEORY\" };\n IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY = { type: 3, value: \"THIRD_ORDER_THEORY\" };\n IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY = { type: 3, value: \"FULL_NONLINEAR_THEORY\" };\n IfcAnalysisTheoryTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcAnalysisTheoryTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcAnalysisTheoryTypeEnum = IfcAnalysisTheoryTypeEnum;\n class IfcArithmeticOperatorEnum {\n }\n IfcArithmeticOperatorEnum.ADD = { type: 3, value: \"ADD\" };\n IfcArithmeticOperatorEnum.DIVIDE = { type: 3, value: \"DIVIDE\" };\n IfcArithmeticOperatorEnum.MULTIPLY = { type: 3, value: \"MULTIPLY\" };\n IfcArithmeticOperatorEnum.SUBTRACT = { type: 3, value: \"SUBTRACT\" };\n IFC2X32.IfcArithmeticOperatorEnum = IfcArithmeticOperatorEnum;\n class IfcAssemblyPlaceEnum {\n }\n IfcAssemblyPlaceEnum.SITE = { type: 3, value: \"SITE\" };\n IfcAssemblyPlaceEnum.FACTORY = { type: 3, value: \"FACTORY\" };\n IfcAssemblyPlaceEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcAssemblyPlaceEnum = IfcAssemblyPlaceEnum;\n class IfcBSplineCurveForm {\n }\n IfcBSplineCurveForm.POLYLINE_FORM = { type: 3, value: \"POLYLINE_FORM\" };\n IfcBSplineCurveForm.CIRCULAR_ARC = { type: 3, value: \"CIRCULAR_ARC\" };\n IfcBSplineCurveForm.ELLIPTIC_ARC = { type: 3, value: \"ELLIPTIC_ARC\" };\n IfcBSplineCurveForm.PARABOLIC_ARC = { type: 3, value: \"PARABOLIC_ARC\" };\n IfcBSplineCurveForm.HYPERBOLIC_ARC = { type: 3, value: \"HYPERBOLIC_ARC\" };\n IfcBSplineCurveForm.UNSPECIFIED = { type: 3, value: \"UNSPECIFIED\" };\n IFC2X32.IfcBSplineCurveForm = IfcBSplineCurveForm;\n class IfcBeamTypeEnum {\n }\n IfcBeamTypeEnum.BEAM = { type: 3, value: \"BEAM\" };\n IfcBeamTypeEnum.JOIST = { type: 3, value: \"JOIST\" };\n IfcBeamTypeEnum.LINTEL = { type: 3, value: \"LINTEL\" };\n IfcBeamTypeEnum.T_BEAM = { type: 3, value: \"T_BEAM\" };\n IfcBeamTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcBeamTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcBeamTypeEnum = IfcBeamTypeEnum;\n class IfcBenchmarkEnum {\n }\n IfcBenchmarkEnum.GREATERTHAN = { type: 3, value: \"GREATERTHAN\" };\n IfcBenchmarkEnum.GREATERTHANOREQUALTO = { type: 3, value: \"GREATERTHANOREQUALTO\" };\n IfcBenchmarkEnum.LESSTHAN = { type: 3, value: \"LESSTHAN\" };\n IfcBenchmarkEnum.LESSTHANOREQUALTO = { type: 3, value: \"LESSTHANOREQUALTO\" };\n IfcBenchmarkEnum.EQUALTO = { type: 3, value: \"EQUALTO\" };\n IfcBenchmarkEnum.NOTEQUALTO = { type: 3, value: \"NOTEQUALTO\" };\n IFC2X32.IfcBenchmarkEnum = IfcBenchmarkEnum;\n class IfcBoilerTypeEnum {\n }\n IfcBoilerTypeEnum.WATER = { type: 3, value: \"WATER\" };\n IfcBoilerTypeEnum.STEAM = { type: 3, value: \"STEAM\" };\n IfcBoilerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcBoilerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcBoilerTypeEnum = IfcBoilerTypeEnum;\n class IfcBooleanOperator {\n }\n IfcBooleanOperator.UNION = { type: 3, value: \"UNION\" };\n IfcBooleanOperator.INTERSECTION = { type: 3, value: \"INTERSECTION\" };\n IfcBooleanOperator.DIFFERENCE = { type: 3, value: \"DIFFERENCE\" };\n IFC2X32.IfcBooleanOperator = IfcBooleanOperator;\n class IfcBuildingElementProxyTypeEnum {\n }\n IfcBuildingElementProxyTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcBuildingElementProxyTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcBuildingElementProxyTypeEnum = IfcBuildingElementProxyTypeEnum;\n class IfcCableCarrierFittingTypeEnum {\n }\n IfcCableCarrierFittingTypeEnum.BEND = { type: 3, value: \"BEND\" };\n IfcCableCarrierFittingTypeEnum.CROSS = { type: 3, value: \"CROSS\" };\n IfcCableCarrierFittingTypeEnum.REDUCER = { type: 3, value: \"REDUCER\" };\n IfcCableCarrierFittingTypeEnum.TEE = { type: 3, value: \"TEE\" };\n IfcCableCarrierFittingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCableCarrierFittingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcCableCarrierFittingTypeEnum = IfcCableCarrierFittingTypeEnum;\n class IfcCableCarrierSegmentTypeEnum {\n }\n IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT = { type: 3, value: \"CABLELADDERSEGMENT\" };\n IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT = { type: 3, value: \"CABLETRAYSEGMENT\" };\n IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT = { type: 3, value: \"CABLETRUNKINGSEGMENT\" };\n IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT = { type: 3, value: \"CONDUITSEGMENT\" };\n IfcCableCarrierSegmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCableCarrierSegmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcCableCarrierSegmentTypeEnum = IfcCableCarrierSegmentTypeEnum;\n class IfcCableSegmentTypeEnum {\n }\n IfcCableSegmentTypeEnum.CABLESEGMENT = { type: 3, value: \"CABLESEGMENT\" };\n IfcCableSegmentTypeEnum.CONDUCTORSEGMENT = { type: 3, value: \"CONDUCTORSEGMENT\" };\n IfcCableSegmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCableSegmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcCableSegmentTypeEnum = IfcCableSegmentTypeEnum;\n class IfcChangeActionEnum {\n }\n IfcChangeActionEnum.NOCHANGE = { type: 3, value: \"NOCHANGE\" };\n IfcChangeActionEnum.MODIFIED = { type: 3, value: \"MODIFIED\" };\n IfcChangeActionEnum.ADDED = { type: 3, value: \"ADDED\" };\n IfcChangeActionEnum.DELETED = { type: 3, value: \"DELETED\" };\n IfcChangeActionEnum.MODIFIEDADDED = { type: 3, value: \"MODIFIEDADDED\" };\n IfcChangeActionEnum.MODIFIEDDELETED = { type: 3, value: \"MODIFIEDDELETED\" };\n IFC2X32.IfcChangeActionEnum = IfcChangeActionEnum;\n class IfcChillerTypeEnum {\n }\n IfcChillerTypeEnum.AIRCOOLED = { type: 3, value: \"AIRCOOLED\" };\n IfcChillerTypeEnum.WATERCOOLED = { type: 3, value: \"WATERCOOLED\" };\n IfcChillerTypeEnum.HEATRECOVERY = { type: 3, value: \"HEATRECOVERY\" };\n IfcChillerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcChillerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcChillerTypeEnum = IfcChillerTypeEnum;\n class IfcCoilTypeEnum {\n }\n IfcCoilTypeEnum.DXCOOLINGCOIL = { type: 3, value: \"DXCOOLINGCOIL\" };\n IfcCoilTypeEnum.WATERCOOLINGCOIL = { type: 3, value: \"WATERCOOLINGCOIL\" };\n IfcCoilTypeEnum.STEAMHEATINGCOIL = { type: 3, value: \"STEAMHEATINGCOIL\" };\n IfcCoilTypeEnum.WATERHEATINGCOIL = { type: 3, value: \"WATERHEATINGCOIL\" };\n IfcCoilTypeEnum.ELECTRICHEATINGCOIL = { type: 3, value: \"ELECTRICHEATINGCOIL\" };\n IfcCoilTypeEnum.GASHEATINGCOIL = { type: 3, value: \"GASHEATINGCOIL\" };\n IfcCoilTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCoilTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcCoilTypeEnum = IfcCoilTypeEnum;\n class IfcColumnTypeEnum {\n }\n IfcColumnTypeEnum.COLUMN = { type: 3, value: \"COLUMN\" };\n IfcColumnTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcColumnTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcColumnTypeEnum = IfcColumnTypeEnum;\n class IfcCompressorTypeEnum {\n }\n IfcCompressorTypeEnum.DYNAMIC = { type: 3, value: \"DYNAMIC\" };\n IfcCompressorTypeEnum.RECIPROCATING = { type: 3, value: \"RECIPROCATING\" };\n IfcCompressorTypeEnum.ROTARY = { type: 3, value: \"ROTARY\" };\n IfcCompressorTypeEnum.SCROLL = { type: 3, value: \"SCROLL\" };\n IfcCompressorTypeEnum.TROCHOIDAL = { type: 3, value: \"TROCHOIDAL\" };\n IfcCompressorTypeEnum.SINGLESTAGE = { type: 3, value: \"SINGLESTAGE\" };\n IfcCompressorTypeEnum.BOOSTER = { type: 3, value: \"BOOSTER\" };\n IfcCompressorTypeEnum.OPENTYPE = { type: 3, value: \"OPENTYPE\" };\n IfcCompressorTypeEnum.HERMETIC = { type: 3, value: \"HERMETIC\" };\n IfcCompressorTypeEnum.SEMIHERMETIC = { type: 3, value: \"SEMIHERMETIC\" };\n IfcCompressorTypeEnum.WELDEDSHELLHERMETIC = { type: 3, value: \"WELDEDSHELLHERMETIC\" };\n IfcCompressorTypeEnum.ROLLINGPISTON = { type: 3, value: \"ROLLINGPISTON\" };\n IfcCompressorTypeEnum.ROTARYVANE = { type: 3, value: \"ROTARYVANE\" };\n IfcCompressorTypeEnum.SINGLESCREW = { type: 3, value: \"SINGLESCREW\" };\n IfcCompressorTypeEnum.TWINSCREW = { type: 3, value: \"TWINSCREW\" };\n IfcCompressorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCompressorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcCompressorTypeEnum = IfcCompressorTypeEnum;\n class IfcCondenserTypeEnum {\n }\n IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE = { type: 3, value: \"WATERCOOLEDSHELLTUBE\" };\n IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL = { type: 3, value: \"WATERCOOLEDSHELLCOIL\" };\n IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE = { type: 3, value: \"WATERCOOLEDTUBEINTUBE\" };\n IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE = { type: 3, value: \"WATERCOOLEDBRAZEDPLATE\" };\n IfcCondenserTypeEnum.AIRCOOLED = { type: 3, value: \"AIRCOOLED\" };\n IfcCondenserTypeEnum.EVAPORATIVECOOLED = { type: 3, value: \"EVAPORATIVECOOLED\" };\n IfcCondenserTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCondenserTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcCondenserTypeEnum = IfcCondenserTypeEnum;\n class IfcConnectionTypeEnum {\n }\n IfcConnectionTypeEnum.ATPATH = { type: 3, value: \"ATPATH\" };\n IfcConnectionTypeEnum.ATSTART = { type: 3, value: \"ATSTART\" };\n IfcConnectionTypeEnum.ATEND = { type: 3, value: \"ATEND\" };\n IfcConnectionTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcConnectionTypeEnum = IfcConnectionTypeEnum;\n class IfcConstraintEnum {\n }\n IfcConstraintEnum.HARD = { type: 3, value: \"HARD\" };\n IfcConstraintEnum.SOFT = { type: 3, value: \"SOFT\" };\n IfcConstraintEnum.ADVISORY = { type: 3, value: \"ADVISORY\" };\n IfcConstraintEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcConstraintEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcConstraintEnum = IfcConstraintEnum;\n class IfcControllerTypeEnum {\n }\n IfcControllerTypeEnum.FLOATING = { type: 3, value: \"FLOATING\" };\n IfcControllerTypeEnum.PROPORTIONAL = { type: 3, value: \"PROPORTIONAL\" };\n IfcControllerTypeEnum.PROPORTIONALINTEGRAL = { type: 3, value: \"PROPORTIONALINTEGRAL\" };\n IfcControllerTypeEnum.PROPORTIONALINTEGRALDERIVATIVE = { type: 3, value: \"PROPORTIONALINTEGRALDERIVATIVE\" };\n IfcControllerTypeEnum.TIMEDTWOPOSITION = { type: 3, value: \"TIMEDTWOPOSITION\" };\n IfcControllerTypeEnum.TWOPOSITION = { type: 3, value: \"TWOPOSITION\" };\n IfcControllerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcControllerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcControllerTypeEnum = IfcControllerTypeEnum;\n class IfcCooledBeamTypeEnum {\n }\n IfcCooledBeamTypeEnum.ACTIVE = { type: 3, value: \"ACTIVE\" };\n IfcCooledBeamTypeEnum.PASSIVE = { type: 3, value: \"PASSIVE\" };\n IfcCooledBeamTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCooledBeamTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcCooledBeamTypeEnum = IfcCooledBeamTypeEnum;\n class IfcCoolingTowerTypeEnum {\n }\n IfcCoolingTowerTypeEnum.NATURALDRAFT = { type: 3, value: \"NATURALDRAFT\" };\n IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT = { type: 3, value: \"MECHANICALINDUCEDDRAFT\" };\n IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT = { type: 3, value: \"MECHANICALFORCEDDRAFT\" };\n IfcCoolingTowerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCoolingTowerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcCoolingTowerTypeEnum = IfcCoolingTowerTypeEnum;\n class IfcCostScheduleTypeEnum {\n }\n IfcCostScheduleTypeEnum.BUDGET = { type: 3, value: \"BUDGET\" };\n IfcCostScheduleTypeEnum.COSTPLAN = { type: 3, value: \"COSTPLAN\" };\n IfcCostScheduleTypeEnum.ESTIMATE = { type: 3, value: \"ESTIMATE\" };\n IfcCostScheduleTypeEnum.TENDER = { type: 3, value: \"TENDER\" };\n IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES = { type: 3, value: \"PRICEDBILLOFQUANTITIES\" };\n IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES = { type: 3, value: \"UNPRICEDBILLOFQUANTITIES\" };\n IfcCostScheduleTypeEnum.SCHEDULEOFRATES = { type: 3, value: \"SCHEDULEOFRATES\" };\n IfcCostScheduleTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCostScheduleTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcCostScheduleTypeEnum = IfcCostScheduleTypeEnum;\n class IfcCoveringTypeEnum {\n }\n IfcCoveringTypeEnum.CEILING = { type: 3, value: \"CEILING\" };\n IfcCoveringTypeEnum.FLOORING = { type: 3, value: \"FLOORING\" };\n IfcCoveringTypeEnum.CLADDING = { type: 3, value: \"CLADDING\" };\n IfcCoveringTypeEnum.ROOFING = { type: 3, value: \"ROOFING\" };\n IfcCoveringTypeEnum.INSULATION = { type: 3, value: \"INSULATION\" };\n IfcCoveringTypeEnum.MEMBRANE = { type: 3, value: \"MEMBRANE\" };\n IfcCoveringTypeEnum.SLEEVING = { type: 3, value: \"SLEEVING\" };\n IfcCoveringTypeEnum.WRAPPING = { type: 3, value: \"WRAPPING\" };\n IfcCoveringTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCoveringTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcCoveringTypeEnum = IfcCoveringTypeEnum;\n class IfcCurrencyEnum {\n }\n IfcCurrencyEnum.AED = { type: 3, value: \"AED\" };\n IfcCurrencyEnum.AES = { type: 3, value: \"AES\" };\n IfcCurrencyEnum.ATS = { type: 3, value: \"ATS\" };\n IfcCurrencyEnum.AUD = { type: 3, value: \"AUD\" };\n IfcCurrencyEnum.BBD = { type: 3, value: \"BBD\" };\n IfcCurrencyEnum.BEG = { type: 3, value: \"BEG\" };\n IfcCurrencyEnum.BGL = { type: 3, value: \"BGL\" };\n IfcCurrencyEnum.BHD = { type: 3, value: \"BHD\" };\n IfcCurrencyEnum.BMD = { type: 3, value: \"BMD\" };\n IfcCurrencyEnum.BND = { type: 3, value: \"BND\" };\n IfcCurrencyEnum.BRL = { type: 3, value: \"BRL\" };\n IfcCurrencyEnum.BSD = { type: 3, value: \"BSD\" };\n IfcCurrencyEnum.BWP = { type: 3, value: \"BWP\" };\n IfcCurrencyEnum.BZD = { type: 3, value: \"BZD\" };\n IfcCurrencyEnum.CAD = { type: 3, value: \"CAD\" };\n IfcCurrencyEnum.CBD = { type: 3, value: \"CBD\" };\n IfcCurrencyEnum.CHF = { type: 3, value: \"CHF\" };\n IfcCurrencyEnum.CLP = { type: 3, value: \"CLP\" };\n IfcCurrencyEnum.CNY = { type: 3, value: \"CNY\" };\n IfcCurrencyEnum.CYS = { type: 3, value: \"CYS\" };\n IfcCurrencyEnum.CZK = { type: 3, value: \"CZK\" };\n IfcCurrencyEnum.DDP = { type: 3, value: \"DDP\" };\n IfcCurrencyEnum.DEM = { type: 3, value: \"DEM\" };\n IfcCurrencyEnum.DKK = { type: 3, value: \"DKK\" };\n IfcCurrencyEnum.EGL = { type: 3, value: \"EGL\" };\n IfcCurrencyEnum.EST = { type: 3, value: \"EST\" };\n IfcCurrencyEnum.EUR = { type: 3, value: \"EUR\" };\n IfcCurrencyEnum.FAK = { type: 3, value: \"FAK\" };\n IfcCurrencyEnum.FIM = { type: 3, value: \"FIM\" };\n IfcCurrencyEnum.FJD = { type: 3, value: \"FJD\" };\n IfcCurrencyEnum.FKP = { type: 3, value: \"FKP\" };\n IfcCurrencyEnum.FRF = { type: 3, value: \"FRF\" };\n IfcCurrencyEnum.GBP = { type: 3, value: \"GBP\" };\n IfcCurrencyEnum.GIP = { type: 3, value: \"GIP\" };\n IfcCurrencyEnum.GMD = { type: 3, value: \"GMD\" };\n IfcCurrencyEnum.GRX = { type: 3, value: \"GRX\" };\n IfcCurrencyEnum.HKD = { type: 3, value: \"HKD\" };\n IfcCurrencyEnum.HUF = { type: 3, value: \"HUF\" };\n IfcCurrencyEnum.ICK = { type: 3, value: \"ICK\" };\n IfcCurrencyEnum.IDR = { type: 3, value: \"IDR\" };\n IfcCurrencyEnum.ILS = { type: 3, value: \"ILS\" };\n IfcCurrencyEnum.INR = { type: 3, value: \"INR\" };\n IfcCurrencyEnum.IRP = { type: 3, value: \"IRP\" };\n IfcCurrencyEnum.ITL = { type: 3, value: \"ITL\" };\n IfcCurrencyEnum.JMD = { type: 3, value: \"JMD\" };\n IfcCurrencyEnum.JOD = { type: 3, value: \"JOD\" };\n IfcCurrencyEnum.JPY = { type: 3, value: \"JPY\" };\n IfcCurrencyEnum.KES = { type: 3, value: \"KES\" };\n IfcCurrencyEnum.KRW = { type: 3, value: \"KRW\" };\n IfcCurrencyEnum.KWD = { type: 3, value: \"KWD\" };\n IfcCurrencyEnum.KYD = { type: 3, value: \"KYD\" };\n IfcCurrencyEnum.LKR = { type: 3, value: \"LKR\" };\n IfcCurrencyEnum.LUF = { type: 3, value: \"LUF\" };\n IfcCurrencyEnum.MTL = { type: 3, value: \"MTL\" };\n IfcCurrencyEnum.MUR = { type: 3, value: \"MUR\" };\n IfcCurrencyEnum.MXN = { type: 3, value: \"MXN\" };\n IfcCurrencyEnum.MYR = { type: 3, value: \"MYR\" };\n IfcCurrencyEnum.NLG = { type: 3, value: \"NLG\" };\n IfcCurrencyEnum.NZD = { type: 3, value: \"NZD\" };\n IfcCurrencyEnum.OMR = { type: 3, value: \"OMR\" };\n IfcCurrencyEnum.PGK = { type: 3, value: \"PGK\" };\n IfcCurrencyEnum.PHP = { type: 3, value: \"PHP\" };\n IfcCurrencyEnum.PKR = { type: 3, value: \"PKR\" };\n IfcCurrencyEnum.PLN = { type: 3, value: \"PLN\" };\n IfcCurrencyEnum.PTN = { type: 3, value: \"PTN\" };\n IfcCurrencyEnum.QAR = { type: 3, value: \"QAR\" };\n IfcCurrencyEnum.RUR = { type: 3, value: \"RUR\" };\n IfcCurrencyEnum.SAR = { type: 3, value: \"SAR\" };\n IfcCurrencyEnum.SCR = { type: 3, value: \"SCR\" };\n IfcCurrencyEnum.SEK = { type: 3, value: \"SEK\" };\n IfcCurrencyEnum.SGD = { type: 3, value: \"SGD\" };\n IfcCurrencyEnum.SKP = { type: 3, value: \"SKP\" };\n IfcCurrencyEnum.THB = { type: 3, value: \"THB\" };\n IfcCurrencyEnum.TRL = { type: 3, value: \"TRL\" };\n IfcCurrencyEnum.TTD = { type: 3, value: \"TTD\" };\n IfcCurrencyEnum.TWD = { type: 3, value: \"TWD\" };\n IfcCurrencyEnum.USD = { type: 3, value: \"USD\" };\n IfcCurrencyEnum.VEB = { type: 3, value: \"VEB\" };\n IfcCurrencyEnum.VND = { type: 3, value: \"VND\" };\n IfcCurrencyEnum.XEU = { type: 3, value: \"XEU\" };\n IfcCurrencyEnum.ZAR = { type: 3, value: \"ZAR\" };\n IfcCurrencyEnum.ZWD = { type: 3, value: \"ZWD\" };\n IfcCurrencyEnum.NOK = { type: 3, value: \"NOK\" };\n IFC2X32.IfcCurrencyEnum = IfcCurrencyEnum;\n class IfcCurtainWallTypeEnum {\n }\n IfcCurtainWallTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCurtainWallTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcCurtainWallTypeEnum = IfcCurtainWallTypeEnum;\n class IfcDamperTypeEnum {\n }\n IfcDamperTypeEnum.CONTROLDAMPER = { type: 3, value: \"CONTROLDAMPER\" };\n IfcDamperTypeEnum.FIREDAMPER = { type: 3, value: \"FIREDAMPER\" };\n IfcDamperTypeEnum.SMOKEDAMPER = { type: 3, value: \"SMOKEDAMPER\" };\n IfcDamperTypeEnum.FIRESMOKEDAMPER = { type: 3, value: \"FIRESMOKEDAMPER\" };\n IfcDamperTypeEnum.BACKDRAFTDAMPER = { type: 3, value: \"BACKDRAFTDAMPER\" };\n IfcDamperTypeEnum.RELIEFDAMPER = { type: 3, value: \"RELIEFDAMPER\" };\n IfcDamperTypeEnum.BLASTDAMPER = { type: 3, value: \"BLASTDAMPER\" };\n IfcDamperTypeEnum.GRAVITYDAMPER = { type: 3, value: \"GRAVITYDAMPER\" };\n IfcDamperTypeEnum.GRAVITYRELIEFDAMPER = { type: 3, value: \"GRAVITYRELIEFDAMPER\" };\n IfcDamperTypeEnum.BALANCINGDAMPER = { type: 3, value: \"BALANCINGDAMPER\" };\n IfcDamperTypeEnum.FUMEHOODEXHAUST = { type: 3, value: \"FUMEHOODEXHAUST\" };\n IfcDamperTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDamperTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcDamperTypeEnum = IfcDamperTypeEnum;\n class IfcDataOriginEnum {\n }\n IfcDataOriginEnum.MEASURED = { type: 3, value: \"MEASURED\" };\n IfcDataOriginEnum.PREDICTED = { type: 3, value: \"PREDICTED\" };\n IfcDataOriginEnum.SIMULATED = { type: 3, value: \"SIMULATED\" };\n IfcDataOriginEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDataOriginEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcDataOriginEnum = IfcDataOriginEnum;\n class IfcDerivedUnitEnum {\n }\n IfcDerivedUnitEnum.ANGULARVELOCITYUNIT = { type: 3, value: \"ANGULARVELOCITYUNIT\" };\n IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT = { type: 3, value: \"COMPOUNDPLANEANGLEUNIT\" };\n IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT = { type: 3, value: \"DYNAMICVISCOSITYUNIT\" };\n IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT = { type: 3, value: \"HEATFLUXDENSITYUNIT\" };\n IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT = { type: 3, value: \"INTEGERCOUNTRATEUNIT\" };\n IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT = { type: 3, value: \"ISOTHERMALMOISTURECAPACITYUNIT\" };\n IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT = { type: 3, value: \"KINEMATICVISCOSITYUNIT\" };\n IfcDerivedUnitEnum.LINEARVELOCITYUNIT = { type: 3, value: \"LINEARVELOCITYUNIT\" };\n IfcDerivedUnitEnum.MASSDENSITYUNIT = { type: 3, value: \"MASSDENSITYUNIT\" };\n IfcDerivedUnitEnum.MASSFLOWRATEUNIT = { type: 3, value: \"MASSFLOWRATEUNIT\" };\n IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT = { type: 3, value: \"MOISTUREDIFFUSIVITYUNIT\" };\n IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT = { type: 3, value: \"MOLECULARWEIGHTUNIT\" };\n IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT = { type: 3, value: \"SPECIFICHEATCAPACITYUNIT\" };\n IfcDerivedUnitEnum.THERMALADMITTANCEUNIT = { type: 3, value: \"THERMALADMITTANCEUNIT\" };\n IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT = { type: 3, value: \"THERMALCONDUCTANCEUNIT\" };\n IfcDerivedUnitEnum.THERMALRESISTANCEUNIT = { type: 3, value: \"THERMALRESISTANCEUNIT\" };\n IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT = { type: 3, value: \"THERMALTRANSMITTANCEUNIT\" };\n IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT = { type: 3, value: \"VAPORPERMEABILITYUNIT\" };\n IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT = { type: 3, value: \"VOLUMETRICFLOWRATEUNIT\" };\n IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT = { type: 3, value: \"ROTATIONALFREQUENCYUNIT\" };\n IfcDerivedUnitEnum.TORQUEUNIT = { type: 3, value: \"TORQUEUNIT\" };\n IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT = { type: 3, value: \"MOMENTOFINERTIAUNIT\" };\n IfcDerivedUnitEnum.LINEARMOMENTUNIT = { type: 3, value: \"LINEARMOMENTUNIT\" };\n IfcDerivedUnitEnum.LINEARFORCEUNIT = { type: 3, value: \"LINEARFORCEUNIT\" };\n IfcDerivedUnitEnum.PLANARFORCEUNIT = { type: 3, value: \"PLANARFORCEUNIT\" };\n IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT = { type: 3, value: \"MODULUSOFELASTICITYUNIT\" };\n IfcDerivedUnitEnum.SHEARMODULUSUNIT = { type: 3, value: \"SHEARMODULUSUNIT\" };\n IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT = { type: 3, value: \"LINEARSTIFFNESSUNIT\" };\n IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT = { type: 3, value: \"ROTATIONALSTIFFNESSUNIT\" };\n IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT = { type: 3, value: \"MODULUSOFSUBGRADEREACTIONUNIT\" };\n IfcDerivedUnitEnum.ACCELERATIONUNIT = { type: 3, value: \"ACCELERATIONUNIT\" };\n IfcDerivedUnitEnum.CURVATUREUNIT = { type: 3, value: \"CURVATUREUNIT\" };\n IfcDerivedUnitEnum.HEATINGVALUEUNIT = { type: 3, value: \"HEATINGVALUEUNIT\" };\n IfcDerivedUnitEnum.IONCONCENTRATIONUNIT = { type: 3, value: \"IONCONCENTRATIONUNIT\" };\n IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT = { type: 3, value: \"LUMINOUSINTENSITYDISTRIBUTIONUNIT\" };\n IfcDerivedUnitEnum.MASSPERLENGTHUNIT = { type: 3, value: \"MASSPERLENGTHUNIT\" };\n IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT = { type: 3, value: \"MODULUSOFLINEARSUBGRADEREACTIONUNIT\" };\n IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT = { type: 3, value: \"MODULUSOFROTATIONALSUBGRADEREACTIONUNIT\" };\n IfcDerivedUnitEnum.PHUNIT = { type: 3, value: \"PHUNIT\" };\n IfcDerivedUnitEnum.ROTATIONALMASSUNIT = { type: 3, value: \"ROTATIONALMASSUNIT\" };\n IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT = { type: 3, value: \"SECTIONAREAINTEGRALUNIT\" };\n IfcDerivedUnitEnum.SECTIONMODULUSUNIT = { type: 3, value: \"SECTIONMODULUSUNIT\" };\n IfcDerivedUnitEnum.SOUNDPOWERUNIT = { type: 3, value: \"SOUNDPOWERUNIT\" };\n IfcDerivedUnitEnum.SOUNDPRESSUREUNIT = { type: 3, value: \"SOUNDPRESSUREUNIT\" };\n IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT = { type: 3, value: \"TEMPERATUREGRADIENTUNIT\" };\n IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT = { type: 3, value: \"THERMALEXPANSIONCOEFFICIENTUNIT\" };\n IfcDerivedUnitEnum.WARPINGCONSTANTUNIT = { type: 3, value: \"WARPINGCONSTANTUNIT\" };\n IfcDerivedUnitEnum.WARPINGMOMENTUNIT = { type: 3, value: \"WARPINGMOMENTUNIT\" };\n IfcDerivedUnitEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IFC2X32.IfcDerivedUnitEnum = IfcDerivedUnitEnum;\n class IfcDimensionExtentUsage {\n }\n IfcDimensionExtentUsage.ORIGIN = { type: 3, value: \"ORIGIN\" };\n IfcDimensionExtentUsage.TARGET = { type: 3, value: \"TARGET\" };\n IFC2X32.IfcDimensionExtentUsage = IfcDimensionExtentUsage;\n class IfcDirectionSenseEnum {\n }\n IfcDirectionSenseEnum.POSITIVE = { type: 3, value: \"POSITIVE\" };\n IfcDirectionSenseEnum.NEGATIVE = { type: 3, value: \"NEGATIVE\" };\n IFC2X32.IfcDirectionSenseEnum = IfcDirectionSenseEnum;\n class IfcDistributionChamberElementTypeEnum {\n }\n IfcDistributionChamberElementTypeEnum.FORMEDDUCT = { type: 3, value: \"FORMEDDUCT\" };\n IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER = { type: 3, value: \"INSPECTIONCHAMBER\" };\n IfcDistributionChamberElementTypeEnum.INSPECTIONPIT = { type: 3, value: \"INSPECTIONPIT\" };\n IfcDistributionChamberElementTypeEnum.MANHOLE = { type: 3, value: \"MANHOLE\" };\n IfcDistributionChamberElementTypeEnum.METERCHAMBER = { type: 3, value: \"METERCHAMBER\" };\n IfcDistributionChamberElementTypeEnum.SUMP = { type: 3, value: \"SUMP\" };\n IfcDistributionChamberElementTypeEnum.TRENCH = { type: 3, value: \"TRENCH\" };\n IfcDistributionChamberElementTypeEnum.VALVECHAMBER = { type: 3, value: \"VALVECHAMBER\" };\n IfcDistributionChamberElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDistributionChamberElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcDistributionChamberElementTypeEnum = IfcDistributionChamberElementTypeEnum;\n class IfcDocumentConfidentialityEnum {\n }\n IfcDocumentConfidentialityEnum.PUBLIC = { type: 3, value: \"PUBLIC\" };\n IfcDocumentConfidentialityEnum.RESTRICTED = { type: 3, value: \"RESTRICTED\" };\n IfcDocumentConfidentialityEnum.CONFIDENTIAL = { type: 3, value: \"CONFIDENTIAL\" };\n IfcDocumentConfidentialityEnum.PERSONAL = { type: 3, value: \"PERSONAL\" };\n IfcDocumentConfidentialityEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDocumentConfidentialityEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcDocumentConfidentialityEnum = IfcDocumentConfidentialityEnum;\n class IfcDocumentStatusEnum {\n }\n IfcDocumentStatusEnum.DRAFT = { type: 3, value: \"DRAFT\" };\n IfcDocumentStatusEnum.FINALDRAFT = { type: 3, value: \"FINALDRAFT\" };\n IfcDocumentStatusEnum.FINAL = { type: 3, value: \"FINAL\" };\n IfcDocumentStatusEnum.REVISION = { type: 3, value: \"REVISION\" };\n IfcDocumentStatusEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcDocumentStatusEnum = IfcDocumentStatusEnum;\n class IfcDoorPanelOperationEnum {\n }\n IfcDoorPanelOperationEnum.SWINGING = { type: 3, value: \"SWINGING\" };\n IfcDoorPanelOperationEnum.DOUBLE_ACTING = { type: 3, value: \"DOUBLE_ACTING\" };\n IfcDoorPanelOperationEnum.SLIDING = { type: 3, value: \"SLIDING\" };\n IfcDoorPanelOperationEnum.FOLDING = { type: 3, value: \"FOLDING\" };\n IfcDoorPanelOperationEnum.REVOLVING = { type: 3, value: \"REVOLVING\" };\n IfcDoorPanelOperationEnum.ROLLINGUP = { type: 3, value: \"ROLLINGUP\" };\n IfcDoorPanelOperationEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDoorPanelOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcDoorPanelOperationEnum = IfcDoorPanelOperationEnum;\n class IfcDoorPanelPositionEnum {\n }\n IfcDoorPanelPositionEnum.LEFT = { type: 3, value: \"LEFT\" };\n IfcDoorPanelPositionEnum.MIDDLE = { type: 3, value: \"MIDDLE\" };\n IfcDoorPanelPositionEnum.RIGHT = { type: 3, value: \"RIGHT\" };\n IfcDoorPanelPositionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcDoorPanelPositionEnum = IfcDoorPanelPositionEnum;\n class IfcDoorStyleConstructionEnum {\n }\n IfcDoorStyleConstructionEnum.ALUMINIUM = { type: 3, value: \"ALUMINIUM\" };\n IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: \"HIGH_GRADE_STEEL\" };\n IfcDoorStyleConstructionEnum.STEEL = { type: 3, value: \"STEEL\" };\n IfcDoorStyleConstructionEnum.WOOD = { type: 3, value: \"WOOD\" };\n IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: \"ALUMINIUM_WOOD\" };\n IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC = { type: 3, value: \"ALUMINIUM_PLASTIC\" };\n IfcDoorStyleConstructionEnum.PLASTIC = { type: 3, value: \"PLASTIC\" };\n IfcDoorStyleConstructionEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDoorStyleConstructionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcDoorStyleConstructionEnum = IfcDoorStyleConstructionEnum;\n class IfcDoorStyleOperationEnum {\n }\n IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: \"SINGLE_SWING_LEFT\" };\n IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: \"SINGLE_SWING_RIGHT\" };\n IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: \"DOUBLE_DOOR_SINGLE_SWING\" };\n IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: \"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT\" };\n IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: \"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT\" };\n IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: \"DOUBLE_SWING_LEFT\" };\n IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: \"DOUBLE_SWING_RIGHT\" };\n IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: \"DOUBLE_DOOR_DOUBLE_SWING\" };\n IfcDoorStyleOperationEnum.SLIDING_TO_LEFT = { type: 3, value: \"SLIDING_TO_LEFT\" };\n IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: \"SLIDING_TO_RIGHT\" };\n IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: \"DOUBLE_DOOR_SLIDING\" };\n IfcDoorStyleOperationEnum.FOLDING_TO_LEFT = { type: 3, value: \"FOLDING_TO_LEFT\" };\n IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: \"FOLDING_TO_RIGHT\" };\n IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: \"DOUBLE_DOOR_FOLDING\" };\n IfcDoorStyleOperationEnum.REVOLVING = { type: 3, value: \"REVOLVING\" };\n IfcDoorStyleOperationEnum.ROLLINGUP = { type: 3, value: \"ROLLINGUP\" };\n IfcDoorStyleOperationEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDoorStyleOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcDoorStyleOperationEnum = IfcDoorStyleOperationEnum;\n class IfcDuctFittingTypeEnum {\n }\n IfcDuctFittingTypeEnum.BEND = { type: 3, value: \"BEND\" };\n IfcDuctFittingTypeEnum.CONNECTOR = { type: 3, value: \"CONNECTOR\" };\n IfcDuctFittingTypeEnum.ENTRY = { type: 3, value: \"ENTRY\" };\n IfcDuctFittingTypeEnum.EXIT = { type: 3, value: \"EXIT\" };\n IfcDuctFittingTypeEnum.JUNCTION = { type: 3, value: \"JUNCTION\" };\n IfcDuctFittingTypeEnum.OBSTRUCTION = { type: 3, value: \"OBSTRUCTION\" };\n IfcDuctFittingTypeEnum.TRANSITION = { type: 3, value: \"TRANSITION\" };\n IfcDuctFittingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDuctFittingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcDuctFittingTypeEnum = IfcDuctFittingTypeEnum;\n class IfcDuctSegmentTypeEnum {\n }\n IfcDuctSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: \"RIGIDSEGMENT\" };\n IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: \"FLEXIBLESEGMENT\" };\n IfcDuctSegmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDuctSegmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcDuctSegmentTypeEnum = IfcDuctSegmentTypeEnum;\n class IfcDuctSilencerTypeEnum {\n }\n IfcDuctSilencerTypeEnum.FLATOVAL = { type: 3, value: \"FLATOVAL\" };\n IfcDuctSilencerTypeEnum.RECTANGULAR = { type: 3, value: \"RECTANGULAR\" };\n IfcDuctSilencerTypeEnum.ROUND = { type: 3, value: \"ROUND\" };\n IfcDuctSilencerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDuctSilencerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcDuctSilencerTypeEnum = IfcDuctSilencerTypeEnum;\n class IfcElectricApplianceTypeEnum {\n }\n IfcElectricApplianceTypeEnum.COMPUTER = { type: 3, value: \"COMPUTER\" };\n IfcElectricApplianceTypeEnum.DIRECTWATERHEATER = { type: 3, value: \"DIRECTWATERHEATER\" };\n IfcElectricApplianceTypeEnum.DISHWASHER = { type: 3, value: \"DISHWASHER\" };\n IfcElectricApplianceTypeEnum.ELECTRICCOOKER = { type: 3, value: \"ELECTRICCOOKER\" };\n IfcElectricApplianceTypeEnum.ELECTRICHEATER = { type: 3, value: \"ELECTRICHEATER\" };\n IfcElectricApplianceTypeEnum.FACSIMILE = { type: 3, value: \"FACSIMILE\" };\n IfcElectricApplianceTypeEnum.FREESTANDINGFAN = { type: 3, value: \"FREESTANDINGFAN\" };\n IfcElectricApplianceTypeEnum.FREEZER = { type: 3, value: \"FREEZER\" };\n IfcElectricApplianceTypeEnum.FRIDGE_FREEZER = { type: 3, value: \"FRIDGE_FREEZER\" };\n IfcElectricApplianceTypeEnum.HANDDRYER = { type: 3, value: \"HANDDRYER\" };\n IfcElectricApplianceTypeEnum.INDIRECTWATERHEATER = { type: 3, value: \"INDIRECTWATERHEATER\" };\n IfcElectricApplianceTypeEnum.MICROWAVE = { type: 3, value: \"MICROWAVE\" };\n IfcElectricApplianceTypeEnum.PHOTOCOPIER = { type: 3, value: \"PHOTOCOPIER\" };\n IfcElectricApplianceTypeEnum.PRINTER = { type: 3, value: \"PRINTER\" };\n IfcElectricApplianceTypeEnum.REFRIGERATOR = { type: 3, value: \"REFRIGERATOR\" };\n IfcElectricApplianceTypeEnum.RADIANTHEATER = { type: 3, value: \"RADIANTHEATER\" };\n IfcElectricApplianceTypeEnum.SCANNER = { type: 3, value: \"SCANNER\" };\n IfcElectricApplianceTypeEnum.TELEPHONE = { type: 3, value: \"TELEPHONE\" };\n IfcElectricApplianceTypeEnum.TUMBLEDRYER = { type: 3, value: \"TUMBLEDRYER\" };\n IfcElectricApplianceTypeEnum.TV = { type: 3, value: \"TV\" };\n IfcElectricApplianceTypeEnum.VENDINGMACHINE = { type: 3, value: \"VENDINGMACHINE\" };\n IfcElectricApplianceTypeEnum.WASHINGMACHINE = { type: 3, value: \"WASHINGMACHINE\" };\n IfcElectricApplianceTypeEnum.WATERHEATER = { type: 3, value: \"WATERHEATER\" };\n IfcElectricApplianceTypeEnum.WATERCOOLER = { type: 3, value: \"WATERCOOLER\" };\n IfcElectricApplianceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcElectricApplianceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcElectricApplianceTypeEnum = IfcElectricApplianceTypeEnum;\n class IfcElectricCurrentEnum {\n }\n IfcElectricCurrentEnum.ALTERNATING = { type: 3, value: \"ALTERNATING\" };\n IfcElectricCurrentEnum.DIRECT = { type: 3, value: \"DIRECT\" };\n IfcElectricCurrentEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcElectricCurrentEnum = IfcElectricCurrentEnum;\n class IfcElectricDistributionPointFunctionEnum {\n }\n IfcElectricDistributionPointFunctionEnum.ALARMPANEL = { type: 3, value: \"ALARMPANEL\" };\n IfcElectricDistributionPointFunctionEnum.CONSUMERUNIT = { type: 3, value: \"CONSUMERUNIT\" };\n IfcElectricDistributionPointFunctionEnum.CONTROLPANEL = { type: 3, value: \"CONTROLPANEL\" };\n IfcElectricDistributionPointFunctionEnum.DISTRIBUTIONBOARD = { type: 3, value: \"DISTRIBUTIONBOARD\" };\n IfcElectricDistributionPointFunctionEnum.GASDETECTORPANEL = { type: 3, value: \"GASDETECTORPANEL\" };\n IfcElectricDistributionPointFunctionEnum.INDICATORPANEL = { type: 3, value: \"INDICATORPANEL\" };\n IfcElectricDistributionPointFunctionEnum.MIMICPANEL = { type: 3, value: \"MIMICPANEL\" };\n IfcElectricDistributionPointFunctionEnum.MOTORCONTROLCENTRE = { type: 3, value: \"MOTORCONTROLCENTRE\" };\n IfcElectricDistributionPointFunctionEnum.SWITCHBOARD = { type: 3, value: \"SWITCHBOARD\" };\n IfcElectricDistributionPointFunctionEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcElectricDistributionPointFunctionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcElectricDistributionPointFunctionEnum = IfcElectricDistributionPointFunctionEnum;\n class IfcElectricFlowStorageDeviceTypeEnum {\n }\n IfcElectricFlowStorageDeviceTypeEnum.BATTERY = { type: 3, value: \"BATTERY\" };\n IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK = { type: 3, value: \"CAPACITORBANK\" };\n IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER = { type: 3, value: \"HARMONICFILTER\" };\n IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK = { type: 3, value: \"INDUCTORBANK\" };\n IfcElectricFlowStorageDeviceTypeEnum.UPS = { type: 3, value: \"UPS\" };\n IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcElectricFlowStorageDeviceTypeEnum = IfcElectricFlowStorageDeviceTypeEnum;\n class IfcElectricGeneratorTypeEnum {\n }\n IfcElectricGeneratorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcElectricGeneratorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcElectricGeneratorTypeEnum = IfcElectricGeneratorTypeEnum;\n class IfcElectricHeaterTypeEnum {\n }\n IfcElectricHeaterTypeEnum.ELECTRICPOINTHEATER = { type: 3, value: \"ELECTRICPOINTHEATER\" };\n IfcElectricHeaterTypeEnum.ELECTRICCABLEHEATER = { type: 3, value: \"ELECTRICCABLEHEATER\" };\n IfcElectricHeaterTypeEnum.ELECTRICMATHEATER = { type: 3, value: \"ELECTRICMATHEATER\" };\n IfcElectricHeaterTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcElectricHeaterTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcElectricHeaterTypeEnum = IfcElectricHeaterTypeEnum;\n class IfcElectricMotorTypeEnum {\n }\n IfcElectricMotorTypeEnum.DC = { type: 3, value: \"DC\" };\n IfcElectricMotorTypeEnum.INDUCTION = { type: 3, value: \"INDUCTION\" };\n IfcElectricMotorTypeEnum.POLYPHASE = { type: 3, value: \"POLYPHASE\" };\n IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS = { type: 3, value: \"RELUCTANCESYNCHRONOUS\" };\n IfcElectricMotorTypeEnum.SYNCHRONOUS = { type: 3, value: \"SYNCHRONOUS\" };\n IfcElectricMotorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcElectricMotorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcElectricMotorTypeEnum = IfcElectricMotorTypeEnum;\n class IfcElectricTimeControlTypeEnum {\n }\n IfcElectricTimeControlTypeEnum.TIMECLOCK = { type: 3, value: \"TIMECLOCK\" };\n IfcElectricTimeControlTypeEnum.TIMEDELAY = { type: 3, value: \"TIMEDELAY\" };\n IfcElectricTimeControlTypeEnum.RELAY = { type: 3, value: \"RELAY\" };\n IfcElectricTimeControlTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcElectricTimeControlTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcElectricTimeControlTypeEnum = IfcElectricTimeControlTypeEnum;\n class IfcElementAssemblyTypeEnum {\n }\n IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY = { type: 3, value: \"ACCESSORY_ASSEMBLY\" };\n IfcElementAssemblyTypeEnum.ARCH = { type: 3, value: \"ARCH\" };\n IfcElementAssemblyTypeEnum.BEAM_GRID = { type: 3, value: \"BEAM_GRID\" };\n IfcElementAssemblyTypeEnum.BRACED_FRAME = { type: 3, value: \"BRACED_FRAME\" };\n IfcElementAssemblyTypeEnum.GIRDER = { type: 3, value: \"GIRDER\" };\n IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT = { type: 3, value: \"REINFORCEMENT_UNIT\" };\n IfcElementAssemblyTypeEnum.RIGID_FRAME = { type: 3, value: \"RIGID_FRAME\" };\n IfcElementAssemblyTypeEnum.SLAB_FIELD = { type: 3, value: \"SLAB_FIELD\" };\n IfcElementAssemblyTypeEnum.TRUSS = { type: 3, value: \"TRUSS\" };\n IfcElementAssemblyTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcElementAssemblyTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcElementAssemblyTypeEnum = IfcElementAssemblyTypeEnum;\n class IfcElementCompositionEnum {\n }\n IfcElementCompositionEnum.COMPLEX = { type: 3, value: \"COMPLEX\" };\n IfcElementCompositionEnum.ELEMENT = { type: 3, value: \"ELEMENT\" };\n IfcElementCompositionEnum.PARTIAL = { type: 3, value: \"PARTIAL\" };\n IFC2X32.IfcElementCompositionEnum = IfcElementCompositionEnum;\n class IfcEnergySequenceEnum {\n }\n IfcEnergySequenceEnum.PRIMARY = { type: 3, value: \"PRIMARY\" };\n IfcEnergySequenceEnum.SECONDARY = { type: 3, value: \"SECONDARY\" };\n IfcEnergySequenceEnum.TERTIARY = { type: 3, value: \"TERTIARY\" };\n IfcEnergySequenceEnum.AUXILIARY = { type: 3, value: \"AUXILIARY\" };\n IfcEnergySequenceEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcEnergySequenceEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcEnergySequenceEnum = IfcEnergySequenceEnum;\n class IfcEnvironmentalImpactCategoryEnum {\n }\n IfcEnvironmentalImpactCategoryEnum.COMBINEDVALUE = { type: 3, value: \"COMBINEDVALUE\" };\n IfcEnvironmentalImpactCategoryEnum.DISPOSAL = { type: 3, value: \"DISPOSAL\" };\n IfcEnvironmentalImpactCategoryEnum.EXTRACTION = { type: 3, value: \"EXTRACTION\" };\n IfcEnvironmentalImpactCategoryEnum.INSTALLATION = { type: 3, value: \"INSTALLATION\" };\n IfcEnvironmentalImpactCategoryEnum.MANUFACTURE = { type: 3, value: \"MANUFACTURE\" };\n IfcEnvironmentalImpactCategoryEnum.TRANSPORTATION = { type: 3, value: \"TRANSPORTATION\" };\n IfcEnvironmentalImpactCategoryEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcEnvironmentalImpactCategoryEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcEnvironmentalImpactCategoryEnum = IfcEnvironmentalImpactCategoryEnum;\n class IfcEvaporativeCoolerTypeEnum {\n }\n IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER = { type: 3, value: \"DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER\" };\n IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER = { type: 3, value: \"DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER\" };\n IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER = { type: 3, value: \"DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER\" };\n IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER = { type: 3, value: \"DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER\" };\n IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER = { type: 3, value: \"DIRECTEVAPORATIVEAIRWASHER\" };\n IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER = { type: 3, value: \"INDIRECTEVAPORATIVEPACKAGEAIRCOOLER\" };\n IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL = { type: 3, value: \"INDIRECTEVAPORATIVEWETCOIL\" };\n IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER = { type: 3, value: \"INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER\" };\n IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION = { type: 3, value: \"INDIRECTDIRECTCOMBINATION\" };\n IfcEvaporativeCoolerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcEvaporativeCoolerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcEvaporativeCoolerTypeEnum = IfcEvaporativeCoolerTypeEnum;\n class IfcEvaporatorTypeEnum {\n }\n IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE = { type: 3, value: \"DIRECTEXPANSIONSHELLANDTUBE\" };\n IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE = { type: 3, value: \"DIRECTEXPANSIONTUBEINTUBE\" };\n IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE = { type: 3, value: \"DIRECTEXPANSIONBRAZEDPLATE\" };\n IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE = { type: 3, value: \"FLOODEDSHELLANDTUBE\" };\n IfcEvaporatorTypeEnum.SHELLANDCOIL = { type: 3, value: \"SHELLANDCOIL\" };\n IfcEvaporatorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcEvaporatorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcEvaporatorTypeEnum = IfcEvaporatorTypeEnum;\n class IfcFanTypeEnum {\n }\n IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED = { type: 3, value: \"CENTRIFUGALFORWARDCURVED\" };\n IfcFanTypeEnum.CENTRIFUGALRADIAL = { type: 3, value: \"CENTRIFUGALRADIAL\" };\n IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED = { type: 3, value: \"CENTRIFUGALBACKWARDINCLINEDCURVED\" };\n IfcFanTypeEnum.CENTRIFUGALAIRFOIL = { type: 3, value: \"CENTRIFUGALAIRFOIL\" };\n IfcFanTypeEnum.TUBEAXIAL = { type: 3, value: \"TUBEAXIAL\" };\n IfcFanTypeEnum.VANEAXIAL = { type: 3, value: \"VANEAXIAL\" };\n IfcFanTypeEnum.PROPELLORAXIAL = { type: 3, value: \"PROPELLORAXIAL\" };\n IfcFanTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcFanTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcFanTypeEnum = IfcFanTypeEnum;\n class IfcFilterTypeEnum {\n }\n IfcFilterTypeEnum.AIRPARTICLEFILTER = { type: 3, value: \"AIRPARTICLEFILTER\" };\n IfcFilterTypeEnum.ODORFILTER = { type: 3, value: \"ODORFILTER\" };\n IfcFilterTypeEnum.OILFILTER = { type: 3, value: \"OILFILTER\" };\n IfcFilterTypeEnum.STRAINER = { type: 3, value: \"STRAINER\" };\n IfcFilterTypeEnum.WATERFILTER = { type: 3, value: \"WATERFILTER\" };\n IfcFilterTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcFilterTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcFilterTypeEnum = IfcFilterTypeEnum;\n class IfcFireSuppressionTerminalTypeEnum {\n }\n IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET = { type: 3, value: \"BREECHINGINLET\" };\n IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT = { type: 3, value: \"FIREHYDRANT\" };\n IfcFireSuppressionTerminalTypeEnum.HOSEREEL = { type: 3, value: \"HOSEREEL\" };\n IfcFireSuppressionTerminalTypeEnum.SPRINKLER = { type: 3, value: \"SPRINKLER\" };\n IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR = { type: 3, value: \"SPRINKLERDEFLECTOR\" };\n IfcFireSuppressionTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcFireSuppressionTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcFireSuppressionTerminalTypeEnum = IfcFireSuppressionTerminalTypeEnum;\n class IfcFlowDirectionEnum {\n }\n IfcFlowDirectionEnum.SOURCE = { type: 3, value: \"SOURCE\" };\n IfcFlowDirectionEnum.SINK = { type: 3, value: \"SINK\" };\n IfcFlowDirectionEnum.SOURCEANDSINK = { type: 3, value: \"SOURCEANDSINK\" };\n IfcFlowDirectionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcFlowDirectionEnum = IfcFlowDirectionEnum;\n class IfcFlowInstrumentTypeEnum {\n }\n IfcFlowInstrumentTypeEnum.PRESSUREGAUGE = { type: 3, value: \"PRESSUREGAUGE\" };\n IfcFlowInstrumentTypeEnum.THERMOMETER = { type: 3, value: \"THERMOMETER\" };\n IfcFlowInstrumentTypeEnum.AMMETER = { type: 3, value: \"AMMETER\" };\n IfcFlowInstrumentTypeEnum.FREQUENCYMETER = { type: 3, value: \"FREQUENCYMETER\" };\n IfcFlowInstrumentTypeEnum.POWERFACTORMETER = { type: 3, value: \"POWERFACTORMETER\" };\n IfcFlowInstrumentTypeEnum.PHASEANGLEMETER = { type: 3, value: \"PHASEANGLEMETER\" };\n IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK = { type: 3, value: \"VOLTMETER_PEAK\" };\n IfcFlowInstrumentTypeEnum.VOLTMETER_RMS = { type: 3, value: \"VOLTMETER_RMS\" };\n IfcFlowInstrumentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcFlowInstrumentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcFlowInstrumentTypeEnum = IfcFlowInstrumentTypeEnum;\n class IfcFlowMeterTypeEnum {\n }\n IfcFlowMeterTypeEnum.ELECTRICMETER = { type: 3, value: \"ELECTRICMETER\" };\n IfcFlowMeterTypeEnum.ENERGYMETER = { type: 3, value: \"ENERGYMETER\" };\n IfcFlowMeterTypeEnum.FLOWMETER = { type: 3, value: \"FLOWMETER\" };\n IfcFlowMeterTypeEnum.GASMETER = { type: 3, value: \"GASMETER\" };\n IfcFlowMeterTypeEnum.OILMETER = { type: 3, value: \"OILMETER\" };\n IfcFlowMeterTypeEnum.WATERMETER = { type: 3, value: \"WATERMETER\" };\n IfcFlowMeterTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcFlowMeterTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcFlowMeterTypeEnum = IfcFlowMeterTypeEnum;\n class IfcFootingTypeEnum {\n }\n IfcFootingTypeEnum.FOOTING_BEAM = { type: 3, value: \"FOOTING_BEAM\" };\n IfcFootingTypeEnum.PAD_FOOTING = { type: 3, value: \"PAD_FOOTING\" };\n IfcFootingTypeEnum.PILE_CAP = { type: 3, value: \"PILE_CAP\" };\n IfcFootingTypeEnum.STRIP_FOOTING = { type: 3, value: \"STRIP_FOOTING\" };\n IfcFootingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcFootingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcFootingTypeEnum = IfcFootingTypeEnum;\n class IfcGasTerminalTypeEnum {\n }\n IfcGasTerminalTypeEnum.GASAPPLIANCE = { type: 3, value: \"GASAPPLIANCE\" };\n IfcGasTerminalTypeEnum.GASBOOSTER = { type: 3, value: \"GASBOOSTER\" };\n IfcGasTerminalTypeEnum.GASBURNER = { type: 3, value: \"GASBURNER\" };\n IfcGasTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcGasTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcGasTerminalTypeEnum = IfcGasTerminalTypeEnum;\n class IfcGeometricProjectionEnum {\n }\n IfcGeometricProjectionEnum.GRAPH_VIEW = { type: 3, value: \"GRAPH_VIEW\" };\n IfcGeometricProjectionEnum.SKETCH_VIEW = { type: 3, value: \"SKETCH_VIEW\" };\n IfcGeometricProjectionEnum.MODEL_VIEW = { type: 3, value: \"MODEL_VIEW\" };\n IfcGeometricProjectionEnum.PLAN_VIEW = { type: 3, value: \"PLAN_VIEW\" };\n IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW = { type: 3, value: \"REFLECTED_PLAN_VIEW\" };\n IfcGeometricProjectionEnum.SECTION_VIEW = { type: 3, value: \"SECTION_VIEW\" };\n IfcGeometricProjectionEnum.ELEVATION_VIEW = { type: 3, value: \"ELEVATION_VIEW\" };\n IfcGeometricProjectionEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcGeometricProjectionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcGeometricProjectionEnum = IfcGeometricProjectionEnum;\n class IfcGlobalOrLocalEnum {\n }\n IfcGlobalOrLocalEnum.GLOBAL_COORDS = { type: 3, value: \"GLOBAL_COORDS\" };\n IfcGlobalOrLocalEnum.LOCAL_COORDS = { type: 3, value: \"LOCAL_COORDS\" };\n IFC2X32.IfcGlobalOrLocalEnum = IfcGlobalOrLocalEnum;\n class IfcHeatExchangerTypeEnum {\n }\n IfcHeatExchangerTypeEnum.PLATE = { type: 3, value: \"PLATE\" };\n IfcHeatExchangerTypeEnum.SHELLANDTUBE = { type: 3, value: \"SHELLANDTUBE\" };\n IfcHeatExchangerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcHeatExchangerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcHeatExchangerTypeEnum = IfcHeatExchangerTypeEnum;\n class IfcHumidifierTypeEnum {\n }\n IfcHumidifierTypeEnum.STEAMINJECTION = { type: 3, value: \"STEAMINJECTION\" };\n IfcHumidifierTypeEnum.ADIABATICAIRWASHER = { type: 3, value: \"ADIABATICAIRWASHER\" };\n IfcHumidifierTypeEnum.ADIABATICPAN = { type: 3, value: \"ADIABATICPAN\" };\n IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT = { type: 3, value: \"ADIABATICWETTEDELEMENT\" };\n IfcHumidifierTypeEnum.ADIABATICATOMIZING = { type: 3, value: \"ADIABATICATOMIZING\" };\n IfcHumidifierTypeEnum.ADIABATICULTRASONIC = { type: 3, value: \"ADIABATICULTRASONIC\" };\n IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA = { type: 3, value: \"ADIABATICRIGIDMEDIA\" };\n IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE = { type: 3, value: \"ADIABATICCOMPRESSEDAIRNOZZLE\" };\n IfcHumidifierTypeEnum.ASSISTEDELECTRIC = { type: 3, value: \"ASSISTEDELECTRIC\" };\n IfcHumidifierTypeEnum.ASSISTEDNATURALGAS = { type: 3, value: \"ASSISTEDNATURALGAS\" };\n IfcHumidifierTypeEnum.ASSISTEDPROPANE = { type: 3, value: \"ASSISTEDPROPANE\" };\n IfcHumidifierTypeEnum.ASSISTEDBUTANE = { type: 3, value: \"ASSISTEDBUTANE\" };\n IfcHumidifierTypeEnum.ASSISTEDSTEAM = { type: 3, value: \"ASSISTEDSTEAM\" };\n IfcHumidifierTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcHumidifierTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcHumidifierTypeEnum = IfcHumidifierTypeEnum;\n class IfcInternalOrExternalEnum {\n }\n IfcInternalOrExternalEnum.INTERNAL = { type: 3, value: \"INTERNAL\" };\n IfcInternalOrExternalEnum.EXTERNAL = { type: 3, value: \"EXTERNAL\" };\n IfcInternalOrExternalEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcInternalOrExternalEnum = IfcInternalOrExternalEnum;\n class IfcInventoryTypeEnum {\n }\n IfcInventoryTypeEnum.ASSETINVENTORY = { type: 3, value: \"ASSETINVENTORY\" };\n IfcInventoryTypeEnum.SPACEINVENTORY = { type: 3, value: \"SPACEINVENTORY\" };\n IfcInventoryTypeEnum.FURNITUREINVENTORY = { type: 3, value: \"FURNITUREINVENTORY\" };\n IfcInventoryTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcInventoryTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcInventoryTypeEnum = IfcInventoryTypeEnum;\n class IfcJunctionBoxTypeEnum {\n }\n IfcJunctionBoxTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcJunctionBoxTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcJunctionBoxTypeEnum = IfcJunctionBoxTypeEnum;\n class IfcLampTypeEnum {\n }\n IfcLampTypeEnum.COMPACTFLUORESCENT = { type: 3, value: \"COMPACTFLUORESCENT\" };\n IfcLampTypeEnum.FLUORESCENT = { type: 3, value: \"FLUORESCENT\" };\n IfcLampTypeEnum.HIGHPRESSUREMERCURY = { type: 3, value: \"HIGHPRESSUREMERCURY\" };\n IfcLampTypeEnum.HIGHPRESSURESODIUM = { type: 3, value: \"HIGHPRESSURESODIUM\" };\n IfcLampTypeEnum.METALHALIDE = { type: 3, value: \"METALHALIDE\" };\n IfcLampTypeEnum.TUNGSTENFILAMENT = { type: 3, value: \"TUNGSTENFILAMENT\" };\n IfcLampTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcLampTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcLampTypeEnum = IfcLampTypeEnum;\n class IfcLayerSetDirectionEnum {\n }\n IfcLayerSetDirectionEnum.AXIS1 = { type: 3, value: \"AXIS1\" };\n IfcLayerSetDirectionEnum.AXIS2 = { type: 3, value: \"AXIS2\" };\n IfcLayerSetDirectionEnum.AXIS3 = { type: 3, value: \"AXIS3\" };\n IFC2X32.IfcLayerSetDirectionEnum = IfcLayerSetDirectionEnum;\n class IfcLightDistributionCurveEnum {\n }\n IfcLightDistributionCurveEnum.TYPE_A = { type: 3, value: \"TYPE_A\" };\n IfcLightDistributionCurveEnum.TYPE_B = { type: 3, value: \"TYPE_B\" };\n IfcLightDistributionCurveEnum.TYPE_C = { type: 3, value: \"TYPE_C\" };\n IfcLightDistributionCurveEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcLightDistributionCurveEnum = IfcLightDistributionCurveEnum;\n class IfcLightEmissionSourceEnum {\n }\n IfcLightEmissionSourceEnum.COMPACTFLUORESCENT = { type: 3, value: \"COMPACTFLUORESCENT\" };\n IfcLightEmissionSourceEnum.FLUORESCENT = { type: 3, value: \"FLUORESCENT\" };\n IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY = { type: 3, value: \"HIGHPRESSUREMERCURY\" };\n IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM = { type: 3, value: \"HIGHPRESSURESODIUM\" };\n IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE = { type: 3, value: \"LIGHTEMITTINGDIODE\" };\n IfcLightEmissionSourceEnum.LOWPRESSURESODIUM = { type: 3, value: \"LOWPRESSURESODIUM\" };\n IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN = { type: 3, value: \"LOWVOLTAGEHALOGEN\" };\n IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN = { type: 3, value: \"MAINVOLTAGEHALOGEN\" };\n IfcLightEmissionSourceEnum.METALHALIDE = { type: 3, value: \"METALHALIDE\" };\n IfcLightEmissionSourceEnum.TUNGSTENFILAMENT = { type: 3, value: \"TUNGSTENFILAMENT\" };\n IfcLightEmissionSourceEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcLightEmissionSourceEnum = IfcLightEmissionSourceEnum;\n class IfcLightFixtureTypeEnum {\n }\n IfcLightFixtureTypeEnum.POINTSOURCE = { type: 3, value: \"POINTSOURCE\" };\n IfcLightFixtureTypeEnum.DIRECTIONSOURCE = { type: 3, value: \"DIRECTIONSOURCE\" };\n IfcLightFixtureTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcLightFixtureTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcLightFixtureTypeEnum = IfcLightFixtureTypeEnum;\n class IfcLoadGroupTypeEnum {\n }\n IfcLoadGroupTypeEnum.LOAD_GROUP = { type: 3, value: \"LOAD_GROUP\" };\n IfcLoadGroupTypeEnum.LOAD_CASE = { type: 3, value: \"LOAD_CASE\" };\n IfcLoadGroupTypeEnum.LOAD_COMBINATION_GROUP = { type: 3, value: \"LOAD_COMBINATION_GROUP\" };\n IfcLoadGroupTypeEnum.LOAD_COMBINATION = { type: 3, value: \"LOAD_COMBINATION\" };\n IfcLoadGroupTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcLoadGroupTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcLoadGroupTypeEnum = IfcLoadGroupTypeEnum;\n class IfcLogicalOperatorEnum {\n }\n IfcLogicalOperatorEnum.LOGICALAND = { type: 3, value: \"LOGICALAND\" };\n IfcLogicalOperatorEnum.LOGICALOR = { type: 3, value: \"LOGICALOR\" };\n IFC2X32.IfcLogicalOperatorEnum = IfcLogicalOperatorEnum;\n class IfcMemberTypeEnum {\n }\n IfcMemberTypeEnum.BRACE = { type: 3, value: \"BRACE\" };\n IfcMemberTypeEnum.CHORD = { type: 3, value: \"CHORD\" };\n IfcMemberTypeEnum.COLLAR = { type: 3, value: \"COLLAR\" };\n IfcMemberTypeEnum.MEMBER = { type: 3, value: \"MEMBER\" };\n IfcMemberTypeEnum.MULLION = { type: 3, value: \"MULLION\" };\n IfcMemberTypeEnum.PLATE = { type: 3, value: \"PLATE\" };\n IfcMemberTypeEnum.POST = { type: 3, value: \"POST\" };\n IfcMemberTypeEnum.PURLIN = { type: 3, value: \"PURLIN\" };\n IfcMemberTypeEnum.RAFTER = { type: 3, value: \"RAFTER\" };\n IfcMemberTypeEnum.STRINGER = { type: 3, value: \"STRINGER\" };\n IfcMemberTypeEnum.STRUT = { type: 3, value: \"STRUT\" };\n IfcMemberTypeEnum.STUD = { type: 3, value: \"STUD\" };\n IfcMemberTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcMemberTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcMemberTypeEnum = IfcMemberTypeEnum;\n class IfcMotorConnectionTypeEnum {\n }\n IfcMotorConnectionTypeEnum.BELTDRIVE = { type: 3, value: \"BELTDRIVE\" };\n IfcMotorConnectionTypeEnum.COUPLING = { type: 3, value: \"COUPLING\" };\n IfcMotorConnectionTypeEnum.DIRECTDRIVE = { type: 3, value: \"DIRECTDRIVE\" };\n IfcMotorConnectionTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcMotorConnectionTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcMotorConnectionTypeEnum = IfcMotorConnectionTypeEnum;\n class IfcNullStyle {\n }\n IfcNullStyle.NULL = { type: 3, value: \"NULL\" };\n IFC2X32.IfcNullStyle = IfcNullStyle;\n class IfcObjectTypeEnum {\n }\n IfcObjectTypeEnum.PRODUCT = { type: 3, value: \"PRODUCT\" };\n IfcObjectTypeEnum.PROCESS = { type: 3, value: \"PROCESS\" };\n IfcObjectTypeEnum.CONTROL = { type: 3, value: \"CONTROL\" };\n IfcObjectTypeEnum.RESOURCE = { type: 3, value: \"RESOURCE\" };\n IfcObjectTypeEnum.ACTOR = { type: 3, value: \"ACTOR\" };\n IfcObjectTypeEnum.GROUP = { type: 3, value: \"GROUP\" };\n IfcObjectTypeEnum.PROJECT = { type: 3, value: \"PROJECT\" };\n IfcObjectTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcObjectTypeEnum = IfcObjectTypeEnum;\n class IfcObjectiveEnum {\n }\n IfcObjectiveEnum.CODECOMPLIANCE = { type: 3, value: \"CODECOMPLIANCE\" };\n IfcObjectiveEnum.DESIGNINTENT = { type: 3, value: \"DESIGNINTENT\" };\n IfcObjectiveEnum.HEALTHANDSAFETY = { type: 3, value: \"HEALTHANDSAFETY\" };\n IfcObjectiveEnum.REQUIREMENT = { type: 3, value: \"REQUIREMENT\" };\n IfcObjectiveEnum.SPECIFICATION = { type: 3, value: \"SPECIFICATION\" };\n IfcObjectiveEnum.TRIGGERCONDITION = { type: 3, value: \"TRIGGERCONDITION\" };\n IfcObjectiveEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcObjectiveEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcObjectiveEnum = IfcObjectiveEnum;\n class IfcOccupantTypeEnum {\n }\n IfcOccupantTypeEnum.ASSIGNEE = { type: 3, value: \"ASSIGNEE\" };\n IfcOccupantTypeEnum.ASSIGNOR = { type: 3, value: \"ASSIGNOR\" };\n IfcOccupantTypeEnum.LESSEE = { type: 3, value: \"LESSEE\" };\n IfcOccupantTypeEnum.LESSOR = { type: 3, value: \"LESSOR\" };\n IfcOccupantTypeEnum.LETTINGAGENT = { type: 3, value: \"LETTINGAGENT\" };\n IfcOccupantTypeEnum.OWNER = { type: 3, value: \"OWNER\" };\n IfcOccupantTypeEnum.TENANT = { type: 3, value: \"TENANT\" };\n IfcOccupantTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcOccupantTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcOccupantTypeEnum = IfcOccupantTypeEnum;\n class IfcOutletTypeEnum {\n }\n IfcOutletTypeEnum.AUDIOVISUALOUTLET = { type: 3, value: \"AUDIOVISUALOUTLET\" };\n IfcOutletTypeEnum.COMMUNICATIONSOUTLET = { type: 3, value: \"COMMUNICATIONSOUTLET\" };\n IfcOutletTypeEnum.POWEROUTLET = { type: 3, value: \"POWEROUTLET\" };\n IfcOutletTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcOutletTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcOutletTypeEnum = IfcOutletTypeEnum;\n class IfcPermeableCoveringOperationEnum {\n }\n IfcPermeableCoveringOperationEnum.GRILL = { type: 3, value: \"GRILL\" };\n IfcPermeableCoveringOperationEnum.LOUVER = { type: 3, value: \"LOUVER\" };\n IfcPermeableCoveringOperationEnum.SCREEN = { type: 3, value: \"SCREEN\" };\n IfcPermeableCoveringOperationEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcPermeableCoveringOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcPermeableCoveringOperationEnum = IfcPermeableCoveringOperationEnum;\n class IfcPhysicalOrVirtualEnum {\n }\n IfcPhysicalOrVirtualEnum.PHYSICAL = { type: 3, value: \"PHYSICAL\" };\n IfcPhysicalOrVirtualEnum.VIRTUAL = { type: 3, value: \"VIRTUAL\" };\n IfcPhysicalOrVirtualEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcPhysicalOrVirtualEnum = IfcPhysicalOrVirtualEnum;\n class IfcPileConstructionEnum {\n }\n IfcPileConstructionEnum.CAST_IN_PLACE = { type: 3, value: \"CAST_IN_PLACE\" };\n IfcPileConstructionEnum.COMPOSITE = { type: 3, value: \"COMPOSITE\" };\n IfcPileConstructionEnum.PRECAST_CONCRETE = { type: 3, value: \"PRECAST_CONCRETE\" };\n IfcPileConstructionEnum.PREFAB_STEEL = { type: 3, value: \"PREFAB_STEEL\" };\n IfcPileConstructionEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcPileConstructionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcPileConstructionEnum = IfcPileConstructionEnum;\n class IfcPileTypeEnum {\n }\n IfcPileTypeEnum.COHESION = { type: 3, value: \"COHESION\" };\n IfcPileTypeEnum.FRICTION = { type: 3, value: \"FRICTION\" };\n IfcPileTypeEnum.SUPPORT = { type: 3, value: \"SUPPORT\" };\n IfcPileTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcPileTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcPileTypeEnum = IfcPileTypeEnum;\n class IfcPipeFittingTypeEnum {\n }\n IfcPipeFittingTypeEnum.BEND = { type: 3, value: \"BEND\" };\n IfcPipeFittingTypeEnum.CONNECTOR = { type: 3, value: \"CONNECTOR\" };\n IfcPipeFittingTypeEnum.ENTRY = { type: 3, value: \"ENTRY\" };\n IfcPipeFittingTypeEnum.EXIT = { type: 3, value: \"EXIT\" };\n IfcPipeFittingTypeEnum.JUNCTION = { type: 3, value: \"JUNCTION\" };\n IfcPipeFittingTypeEnum.OBSTRUCTION = { type: 3, value: \"OBSTRUCTION\" };\n IfcPipeFittingTypeEnum.TRANSITION = { type: 3, value: \"TRANSITION\" };\n IfcPipeFittingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcPipeFittingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcPipeFittingTypeEnum = IfcPipeFittingTypeEnum;\n class IfcPipeSegmentTypeEnum {\n }\n IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: \"FLEXIBLESEGMENT\" };\n IfcPipeSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: \"RIGIDSEGMENT\" };\n IfcPipeSegmentTypeEnum.GUTTER = { type: 3, value: \"GUTTER\" };\n IfcPipeSegmentTypeEnum.SPOOL = { type: 3, value: \"SPOOL\" };\n IfcPipeSegmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcPipeSegmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcPipeSegmentTypeEnum = IfcPipeSegmentTypeEnum;\n class IfcPlateTypeEnum {\n }\n IfcPlateTypeEnum.CURTAIN_PANEL = { type: 3, value: \"CURTAIN_PANEL\" };\n IfcPlateTypeEnum.SHEET = { type: 3, value: \"SHEET\" };\n IfcPlateTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcPlateTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcPlateTypeEnum = IfcPlateTypeEnum;\n class IfcProcedureTypeEnum {\n }\n IfcProcedureTypeEnum.ADVICE_CAUTION = { type: 3, value: \"ADVICE_CAUTION\" };\n IfcProcedureTypeEnum.ADVICE_NOTE = { type: 3, value: \"ADVICE_NOTE\" };\n IfcProcedureTypeEnum.ADVICE_WARNING = { type: 3, value: \"ADVICE_WARNING\" };\n IfcProcedureTypeEnum.CALIBRATION = { type: 3, value: \"CALIBRATION\" };\n IfcProcedureTypeEnum.DIAGNOSTIC = { type: 3, value: \"DIAGNOSTIC\" };\n IfcProcedureTypeEnum.SHUTDOWN = { type: 3, value: \"SHUTDOWN\" };\n IfcProcedureTypeEnum.STARTUP = { type: 3, value: \"STARTUP\" };\n IfcProcedureTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcProcedureTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcProcedureTypeEnum = IfcProcedureTypeEnum;\n class IfcProfileTypeEnum {\n }\n IfcProfileTypeEnum.CURVE = { type: 3, value: \"CURVE\" };\n IfcProfileTypeEnum.AREA = { type: 3, value: \"AREA\" };\n IFC2X32.IfcProfileTypeEnum = IfcProfileTypeEnum;\n class IfcProjectOrderRecordTypeEnum {\n }\n IfcProjectOrderRecordTypeEnum.CHANGE = { type: 3, value: \"CHANGE\" };\n IfcProjectOrderRecordTypeEnum.MAINTENANCE = { type: 3, value: \"MAINTENANCE\" };\n IfcProjectOrderRecordTypeEnum.MOVE = { type: 3, value: \"MOVE\" };\n IfcProjectOrderRecordTypeEnum.PURCHASE = { type: 3, value: \"PURCHASE\" };\n IfcProjectOrderRecordTypeEnum.WORK = { type: 3, value: \"WORK\" };\n IfcProjectOrderRecordTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcProjectOrderRecordTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcProjectOrderRecordTypeEnum = IfcProjectOrderRecordTypeEnum;\n class IfcProjectOrderTypeEnum {\n }\n IfcProjectOrderTypeEnum.CHANGEORDER = { type: 3, value: \"CHANGEORDER\" };\n IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER = { type: 3, value: \"MAINTENANCEWORKORDER\" };\n IfcProjectOrderTypeEnum.MOVEORDER = { type: 3, value: \"MOVEORDER\" };\n IfcProjectOrderTypeEnum.PURCHASEORDER = { type: 3, value: \"PURCHASEORDER\" };\n IfcProjectOrderTypeEnum.WORKORDER = { type: 3, value: \"WORKORDER\" };\n IfcProjectOrderTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcProjectOrderTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcProjectOrderTypeEnum = IfcProjectOrderTypeEnum;\n class IfcProjectedOrTrueLengthEnum {\n }\n IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH = { type: 3, value: \"PROJECTED_LENGTH\" };\n IfcProjectedOrTrueLengthEnum.TRUE_LENGTH = { type: 3, value: \"TRUE_LENGTH\" };\n IFC2X32.IfcProjectedOrTrueLengthEnum = IfcProjectedOrTrueLengthEnum;\n class IfcPropertySourceEnum {\n }\n IfcPropertySourceEnum.DESIGN = { type: 3, value: \"DESIGN\" };\n IfcPropertySourceEnum.DESIGNMAXIMUM = { type: 3, value: \"DESIGNMAXIMUM\" };\n IfcPropertySourceEnum.DESIGNMINIMUM = { type: 3, value: \"DESIGNMINIMUM\" };\n IfcPropertySourceEnum.SIMULATED = { type: 3, value: \"SIMULATED\" };\n IfcPropertySourceEnum.ASBUILT = { type: 3, value: \"ASBUILT\" };\n IfcPropertySourceEnum.COMMISSIONING = { type: 3, value: \"COMMISSIONING\" };\n IfcPropertySourceEnum.MEASURED = { type: 3, value: \"MEASURED\" };\n IfcPropertySourceEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcPropertySourceEnum.NOTKNOWN = { type: 3, value: \"NOTKNOWN\" };\n IFC2X32.IfcPropertySourceEnum = IfcPropertySourceEnum;\n class IfcProtectiveDeviceTypeEnum {\n }\n IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR = { type: 3, value: \"FUSEDISCONNECTOR\" };\n IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER = { type: 3, value: \"CIRCUITBREAKER\" };\n IfcProtectiveDeviceTypeEnum.EARTHFAILUREDEVICE = { type: 3, value: \"EARTHFAILUREDEVICE\" };\n IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER = { type: 3, value: \"RESIDUALCURRENTCIRCUITBREAKER\" };\n IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH = { type: 3, value: \"RESIDUALCURRENTSWITCH\" };\n IfcProtectiveDeviceTypeEnum.VARISTOR = { type: 3, value: \"VARISTOR\" };\n IfcProtectiveDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcProtectiveDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcProtectiveDeviceTypeEnum = IfcProtectiveDeviceTypeEnum;\n class IfcPumpTypeEnum {\n }\n IfcPumpTypeEnum.CIRCULATOR = { type: 3, value: \"CIRCULATOR\" };\n IfcPumpTypeEnum.ENDSUCTION = { type: 3, value: \"ENDSUCTION\" };\n IfcPumpTypeEnum.SPLITCASE = { type: 3, value: \"SPLITCASE\" };\n IfcPumpTypeEnum.VERTICALINLINE = { type: 3, value: \"VERTICALINLINE\" };\n IfcPumpTypeEnum.VERTICALTURBINE = { type: 3, value: \"VERTICALTURBINE\" };\n IfcPumpTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcPumpTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcPumpTypeEnum = IfcPumpTypeEnum;\n class IfcRailingTypeEnum {\n }\n IfcRailingTypeEnum.HANDRAIL = { type: 3, value: \"HANDRAIL\" };\n IfcRailingTypeEnum.GUARDRAIL = { type: 3, value: \"GUARDRAIL\" };\n IfcRailingTypeEnum.BALUSTRADE = { type: 3, value: \"BALUSTRADE\" };\n IfcRailingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcRailingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcRailingTypeEnum = IfcRailingTypeEnum;\n class IfcRampFlightTypeEnum {\n }\n IfcRampFlightTypeEnum.STRAIGHT = { type: 3, value: \"STRAIGHT\" };\n IfcRampFlightTypeEnum.SPIRAL = { type: 3, value: \"SPIRAL\" };\n IfcRampFlightTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcRampFlightTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcRampFlightTypeEnum = IfcRampFlightTypeEnum;\n class IfcRampTypeEnum {\n }\n IfcRampTypeEnum.STRAIGHT_RUN_RAMP = { type: 3, value: \"STRAIGHT_RUN_RAMP\" };\n IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP = { type: 3, value: \"TWO_STRAIGHT_RUN_RAMP\" };\n IfcRampTypeEnum.QUARTER_TURN_RAMP = { type: 3, value: \"QUARTER_TURN_RAMP\" };\n IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP = { type: 3, value: \"TWO_QUARTER_TURN_RAMP\" };\n IfcRampTypeEnum.HALF_TURN_RAMP = { type: 3, value: \"HALF_TURN_RAMP\" };\n IfcRampTypeEnum.SPIRAL_RAMP = { type: 3, value: \"SPIRAL_RAMP\" };\n IfcRampTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcRampTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcRampTypeEnum = IfcRampTypeEnum;\n class IfcReflectanceMethodEnum {\n }\n IfcReflectanceMethodEnum.BLINN = { type: 3, value: \"BLINN\" };\n IfcReflectanceMethodEnum.FLAT = { type: 3, value: \"FLAT\" };\n IfcReflectanceMethodEnum.GLASS = { type: 3, value: \"GLASS\" };\n IfcReflectanceMethodEnum.MATT = { type: 3, value: \"MATT\" };\n IfcReflectanceMethodEnum.METAL = { type: 3, value: \"METAL\" };\n IfcReflectanceMethodEnum.MIRROR = { type: 3, value: \"MIRROR\" };\n IfcReflectanceMethodEnum.PHONG = { type: 3, value: \"PHONG\" };\n IfcReflectanceMethodEnum.PLASTIC = { type: 3, value: \"PLASTIC\" };\n IfcReflectanceMethodEnum.STRAUSS = { type: 3, value: \"STRAUSS\" };\n IfcReflectanceMethodEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcReflectanceMethodEnum = IfcReflectanceMethodEnum;\n class IfcReinforcingBarRoleEnum {\n }\n IfcReinforcingBarRoleEnum.MAIN = { type: 3, value: \"MAIN\" };\n IfcReinforcingBarRoleEnum.SHEAR = { type: 3, value: \"SHEAR\" };\n IfcReinforcingBarRoleEnum.LIGATURE = { type: 3, value: \"LIGATURE\" };\n IfcReinforcingBarRoleEnum.STUD = { type: 3, value: \"STUD\" };\n IfcReinforcingBarRoleEnum.PUNCHING = { type: 3, value: \"PUNCHING\" };\n IfcReinforcingBarRoleEnum.EDGE = { type: 3, value: \"EDGE\" };\n IfcReinforcingBarRoleEnum.RING = { type: 3, value: \"RING\" };\n IfcReinforcingBarRoleEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcReinforcingBarRoleEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcReinforcingBarRoleEnum = IfcReinforcingBarRoleEnum;\n class IfcReinforcingBarSurfaceEnum {\n }\n IfcReinforcingBarSurfaceEnum.PLAIN = { type: 3, value: \"PLAIN\" };\n IfcReinforcingBarSurfaceEnum.TEXTURED = { type: 3, value: \"TEXTURED\" };\n IFC2X32.IfcReinforcingBarSurfaceEnum = IfcReinforcingBarSurfaceEnum;\n class IfcResourceConsumptionEnum {\n }\n IfcResourceConsumptionEnum.CONSUMED = { type: 3, value: \"CONSUMED\" };\n IfcResourceConsumptionEnum.PARTIALLYCONSUMED = { type: 3, value: \"PARTIALLYCONSUMED\" };\n IfcResourceConsumptionEnum.NOTCONSUMED = { type: 3, value: \"NOTCONSUMED\" };\n IfcResourceConsumptionEnum.OCCUPIED = { type: 3, value: \"OCCUPIED\" };\n IfcResourceConsumptionEnum.PARTIALLYOCCUPIED = { type: 3, value: \"PARTIALLYOCCUPIED\" };\n IfcResourceConsumptionEnum.NOTOCCUPIED = { type: 3, value: \"NOTOCCUPIED\" };\n IfcResourceConsumptionEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcResourceConsumptionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcResourceConsumptionEnum = IfcResourceConsumptionEnum;\n class IfcRibPlateDirectionEnum {\n }\n IfcRibPlateDirectionEnum.DIRECTION_X = { type: 3, value: \"DIRECTION_X\" };\n IfcRibPlateDirectionEnum.DIRECTION_Y = { type: 3, value: \"DIRECTION_Y\" };\n IFC2X32.IfcRibPlateDirectionEnum = IfcRibPlateDirectionEnum;\n class IfcRoleEnum {\n }\n IfcRoleEnum.SUPPLIER = { type: 3, value: \"SUPPLIER\" };\n IfcRoleEnum.MANUFACTURER = { type: 3, value: \"MANUFACTURER\" };\n IfcRoleEnum.CONTRACTOR = { type: 3, value: \"CONTRACTOR\" };\n IfcRoleEnum.SUBCONTRACTOR = { type: 3, value: \"SUBCONTRACTOR\" };\n IfcRoleEnum.ARCHITECT = { type: 3, value: \"ARCHITECT\" };\n IfcRoleEnum.STRUCTURALENGINEER = { type: 3, value: \"STRUCTURALENGINEER\" };\n IfcRoleEnum.COSTENGINEER = { type: 3, value: \"COSTENGINEER\" };\n IfcRoleEnum.CLIENT = { type: 3, value: \"CLIENT\" };\n IfcRoleEnum.BUILDINGOWNER = { type: 3, value: \"BUILDINGOWNER\" };\n IfcRoleEnum.BUILDINGOPERATOR = { type: 3, value: \"BUILDINGOPERATOR\" };\n IfcRoleEnum.MECHANICALENGINEER = { type: 3, value: \"MECHANICALENGINEER\" };\n IfcRoleEnum.ELECTRICALENGINEER = { type: 3, value: \"ELECTRICALENGINEER\" };\n IfcRoleEnum.PROJECTMANAGER = { type: 3, value: \"PROJECTMANAGER\" };\n IfcRoleEnum.FACILITIESMANAGER = { type: 3, value: \"FACILITIESMANAGER\" };\n IfcRoleEnum.CIVILENGINEER = { type: 3, value: \"CIVILENGINEER\" };\n IfcRoleEnum.COMISSIONINGENGINEER = { type: 3, value: \"COMISSIONINGENGINEER\" };\n IfcRoleEnum.ENGINEER = { type: 3, value: \"ENGINEER\" };\n IfcRoleEnum.OWNER = { type: 3, value: \"OWNER\" };\n IfcRoleEnum.CONSULTANT = { type: 3, value: \"CONSULTANT\" };\n IfcRoleEnum.CONSTRUCTIONMANAGER = { type: 3, value: \"CONSTRUCTIONMANAGER\" };\n IfcRoleEnum.FIELDCONSTRUCTIONMANAGER = { type: 3, value: \"FIELDCONSTRUCTIONMANAGER\" };\n IfcRoleEnum.RESELLER = { type: 3, value: \"RESELLER\" };\n IfcRoleEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IFC2X32.IfcRoleEnum = IfcRoleEnum;\n class IfcRoofTypeEnum {\n }\n IfcRoofTypeEnum.FLAT_ROOF = { type: 3, value: \"FLAT_ROOF\" };\n IfcRoofTypeEnum.SHED_ROOF = { type: 3, value: \"SHED_ROOF\" };\n IfcRoofTypeEnum.GABLE_ROOF = { type: 3, value: \"GABLE_ROOF\" };\n IfcRoofTypeEnum.HIP_ROOF = { type: 3, value: \"HIP_ROOF\" };\n IfcRoofTypeEnum.HIPPED_GABLE_ROOF = { type: 3, value: \"HIPPED_GABLE_ROOF\" };\n IfcRoofTypeEnum.GAMBREL_ROOF = { type: 3, value: \"GAMBREL_ROOF\" };\n IfcRoofTypeEnum.MANSARD_ROOF = { type: 3, value: \"MANSARD_ROOF\" };\n IfcRoofTypeEnum.BARREL_ROOF = { type: 3, value: \"BARREL_ROOF\" };\n IfcRoofTypeEnum.RAINBOW_ROOF = { type: 3, value: \"RAINBOW_ROOF\" };\n IfcRoofTypeEnum.BUTTERFLY_ROOF = { type: 3, value: \"BUTTERFLY_ROOF\" };\n IfcRoofTypeEnum.PAVILION_ROOF = { type: 3, value: \"PAVILION_ROOF\" };\n IfcRoofTypeEnum.DOME_ROOF = { type: 3, value: \"DOME_ROOF\" };\n IfcRoofTypeEnum.FREEFORM = { type: 3, value: \"FREEFORM\" };\n IfcRoofTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcRoofTypeEnum = IfcRoofTypeEnum;\n class IfcSIPrefix {\n }\n IfcSIPrefix.EXA = { type: 3, value: \"EXA\" };\n IfcSIPrefix.PETA = { type: 3, value: \"PETA\" };\n IfcSIPrefix.TERA = { type: 3, value: \"TERA\" };\n IfcSIPrefix.GIGA = { type: 3, value: \"GIGA\" };\n IfcSIPrefix.MEGA = { type: 3, value: \"MEGA\" };\n IfcSIPrefix.KILO = { type: 3, value: \"KILO\" };\n IfcSIPrefix.HECTO = { type: 3, value: \"HECTO\" };\n IfcSIPrefix.DECA = { type: 3, value: \"DECA\" };\n IfcSIPrefix.DECI = { type: 3, value: \"DECI\" };\n IfcSIPrefix.CENTI = { type: 3, value: \"CENTI\" };\n IfcSIPrefix.MILLI = { type: 3, value: \"MILLI\" };\n IfcSIPrefix.MICRO = { type: 3, value: \"MICRO\" };\n IfcSIPrefix.NANO = { type: 3, value: \"NANO\" };\n IfcSIPrefix.PICO = { type: 3, value: \"PICO\" };\n IfcSIPrefix.FEMTO = { type: 3, value: \"FEMTO\" };\n IfcSIPrefix.ATTO = { type: 3, value: \"ATTO\" };\n IFC2X32.IfcSIPrefix = IfcSIPrefix;\n class IfcSIUnitName {\n }\n IfcSIUnitName.AMPERE = { type: 3, value: \"AMPERE\" };\n IfcSIUnitName.BECQUEREL = { type: 3, value: \"BECQUEREL\" };\n IfcSIUnitName.CANDELA = { type: 3, value: \"CANDELA\" };\n IfcSIUnitName.COULOMB = { type: 3, value: \"COULOMB\" };\n IfcSIUnitName.CUBIC_METRE = { type: 3, value: \"CUBIC_METRE\" };\n IfcSIUnitName.DEGREE_CELSIUS = { type: 3, value: \"DEGREE_CELSIUS\" };\n IfcSIUnitName.FARAD = { type: 3, value: \"FARAD\" };\n IfcSIUnitName.GRAM = { type: 3, value: \"GRAM\" };\n IfcSIUnitName.GRAY = { type: 3, value: \"GRAY\" };\n IfcSIUnitName.HENRY = { type: 3, value: \"HENRY\" };\n IfcSIUnitName.HERTZ = { type: 3, value: \"HERTZ\" };\n IfcSIUnitName.JOULE = { type: 3, value: \"JOULE\" };\n IfcSIUnitName.KELVIN = { type: 3, value: \"KELVIN\" };\n IfcSIUnitName.LUMEN = { type: 3, value: \"LUMEN\" };\n IfcSIUnitName.LUX = { type: 3, value: \"LUX\" };\n IfcSIUnitName.METRE = { type: 3, value: \"METRE\" };\n IfcSIUnitName.MOLE = { type: 3, value: \"MOLE\" };\n IfcSIUnitName.NEWTON = { type: 3, value: \"NEWTON\" };\n IfcSIUnitName.OHM = { type: 3, value: \"OHM\" };\n IfcSIUnitName.PASCAL = { type: 3, value: \"PASCAL\" };\n IfcSIUnitName.RADIAN = { type: 3, value: \"RADIAN\" };\n IfcSIUnitName.SECOND = { type: 3, value: \"SECOND\" };\n IfcSIUnitName.SIEMENS = { type: 3, value: \"SIEMENS\" };\n IfcSIUnitName.SIEVERT = { type: 3, value: \"SIEVERT\" };\n IfcSIUnitName.SQUARE_METRE = { type: 3, value: \"SQUARE_METRE\" };\n IfcSIUnitName.STERADIAN = { type: 3, value: \"STERADIAN\" };\n IfcSIUnitName.TESLA = { type: 3, value: \"TESLA\" };\n IfcSIUnitName.VOLT = { type: 3, value: \"VOLT\" };\n IfcSIUnitName.WATT = { type: 3, value: \"WATT\" };\n IfcSIUnitName.WEBER = { type: 3, value: \"WEBER\" };\n IFC2X32.IfcSIUnitName = IfcSIUnitName;\n class IfcSanitaryTerminalTypeEnum {\n }\n IfcSanitaryTerminalTypeEnum.BATH = { type: 3, value: \"BATH\" };\n IfcSanitaryTerminalTypeEnum.BIDET = { type: 3, value: \"BIDET\" };\n IfcSanitaryTerminalTypeEnum.CISTERN = { type: 3, value: \"CISTERN\" };\n IfcSanitaryTerminalTypeEnum.SHOWER = { type: 3, value: \"SHOWER\" };\n IfcSanitaryTerminalTypeEnum.SINK = { type: 3, value: \"SINK\" };\n IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN = { type: 3, value: \"SANITARYFOUNTAIN\" };\n IfcSanitaryTerminalTypeEnum.TOILETPAN = { type: 3, value: \"TOILETPAN\" };\n IfcSanitaryTerminalTypeEnum.URINAL = { type: 3, value: \"URINAL\" };\n IfcSanitaryTerminalTypeEnum.WASHHANDBASIN = { type: 3, value: \"WASHHANDBASIN\" };\n IfcSanitaryTerminalTypeEnum.WCSEAT = { type: 3, value: \"WCSEAT\" };\n IfcSanitaryTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSanitaryTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcSanitaryTerminalTypeEnum = IfcSanitaryTerminalTypeEnum;\n class IfcSectionTypeEnum {\n }\n IfcSectionTypeEnum.UNIFORM = { type: 3, value: \"UNIFORM\" };\n IfcSectionTypeEnum.TAPERED = { type: 3, value: \"TAPERED\" };\n IFC2X32.IfcSectionTypeEnum = IfcSectionTypeEnum;\n class IfcSensorTypeEnum {\n }\n IfcSensorTypeEnum.CO2SENSOR = { type: 3, value: \"CO2SENSOR\" };\n IfcSensorTypeEnum.FIRESENSOR = { type: 3, value: \"FIRESENSOR\" };\n IfcSensorTypeEnum.FLOWSENSOR = { type: 3, value: \"FLOWSENSOR\" };\n IfcSensorTypeEnum.GASSENSOR = { type: 3, value: \"GASSENSOR\" };\n IfcSensorTypeEnum.HEATSENSOR = { type: 3, value: \"HEATSENSOR\" };\n IfcSensorTypeEnum.HUMIDITYSENSOR = { type: 3, value: \"HUMIDITYSENSOR\" };\n IfcSensorTypeEnum.LIGHTSENSOR = { type: 3, value: \"LIGHTSENSOR\" };\n IfcSensorTypeEnum.MOISTURESENSOR = { type: 3, value: \"MOISTURESENSOR\" };\n IfcSensorTypeEnum.MOVEMENTSENSOR = { type: 3, value: \"MOVEMENTSENSOR\" };\n IfcSensorTypeEnum.PRESSURESENSOR = { type: 3, value: \"PRESSURESENSOR\" };\n IfcSensorTypeEnum.SMOKESENSOR = { type: 3, value: \"SMOKESENSOR\" };\n IfcSensorTypeEnum.SOUNDSENSOR = { type: 3, value: \"SOUNDSENSOR\" };\n IfcSensorTypeEnum.TEMPERATURESENSOR = { type: 3, value: \"TEMPERATURESENSOR\" };\n IfcSensorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSensorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcSensorTypeEnum = IfcSensorTypeEnum;\n class IfcSequenceEnum {\n }\n IfcSequenceEnum.START_START = { type: 3, value: \"START_START\" };\n IfcSequenceEnum.START_FINISH = { type: 3, value: \"START_FINISH\" };\n IfcSequenceEnum.FINISH_START = { type: 3, value: \"FINISH_START\" };\n IfcSequenceEnum.FINISH_FINISH = { type: 3, value: \"FINISH_FINISH\" };\n IfcSequenceEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcSequenceEnum = IfcSequenceEnum;\n class IfcServiceLifeFactorTypeEnum {\n }\n IfcServiceLifeFactorTypeEnum.A_QUALITYOFCOMPONENTS = { type: 3, value: \"A_QUALITYOFCOMPONENTS\" };\n IfcServiceLifeFactorTypeEnum.B_DESIGNLEVEL = { type: 3, value: \"B_DESIGNLEVEL\" };\n IfcServiceLifeFactorTypeEnum.C_WORKEXECUTIONLEVEL = { type: 3, value: \"C_WORKEXECUTIONLEVEL\" };\n IfcServiceLifeFactorTypeEnum.D_INDOORENVIRONMENT = { type: 3, value: \"D_INDOORENVIRONMENT\" };\n IfcServiceLifeFactorTypeEnum.E_OUTDOORENVIRONMENT = { type: 3, value: \"E_OUTDOORENVIRONMENT\" };\n IfcServiceLifeFactorTypeEnum.F_INUSECONDITIONS = { type: 3, value: \"F_INUSECONDITIONS\" };\n IfcServiceLifeFactorTypeEnum.G_MAINTENANCELEVEL = { type: 3, value: \"G_MAINTENANCELEVEL\" };\n IfcServiceLifeFactorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcServiceLifeFactorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcServiceLifeFactorTypeEnum = IfcServiceLifeFactorTypeEnum;\n class IfcServiceLifeTypeEnum {\n }\n IfcServiceLifeTypeEnum.ACTUALSERVICELIFE = { type: 3, value: \"ACTUALSERVICELIFE\" };\n IfcServiceLifeTypeEnum.EXPECTEDSERVICELIFE = { type: 3, value: \"EXPECTEDSERVICELIFE\" };\n IfcServiceLifeTypeEnum.OPTIMISTICREFERENCESERVICELIFE = { type: 3, value: \"OPTIMISTICREFERENCESERVICELIFE\" };\n IfcServiceLifeTypeEnum.PESSIMISTICREFERENCESERVICELIFE = { type: 3, value: \"PESSIMISTICREFERENCESERVICELIFE\" };\n IfcServiceLifeTypeEnum.REFERENCESERVICELIFE = { type: 3, value: \"REFERENCESERVICELIFE\" };\n IFC2X32.IfcServiceLifeTypeEnum = IfcServiceLifeTypeEnum;\n class IfcSlabTypeEnum {\n }\n IfcSlabTypeEnum.FLOOR = { type: 3, value: \"FLOOR\" };\n IfcSlabTypeEnum.ROOF = { type: 3, value: \"ROOF\" };\n IfcSlabTypeEnum.LANDING = { type: 3, value: \"LANDING\" };\n IfcSlabTypeEnum.BASESLAB = { type: 3, value: \"BASESLAB\" };\n IfcSlabTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSlabTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcSlabTypeEnum = IfcSlabTypeEnum;\n class IfcSoundScaleEnum {\n }\n IfcSoundScaleEnum.DBA = { type: 3, value: \"DBA\" };\n IfcSoundScaleEnum.DBB = { type: 3, value: \"DBB\" };\n IfcSoundScaleEnum.DBC = { type: 3, value: \"DBC\" };\n IfcSoundScaleEnum.NC = { type: 3, value: \"NC\" };\n IfcSoundScaleEnum.NR = { type: 3, value: \"NR\" };\n IfcSoundScaleEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSoundScaleEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcSoundScaleEnum = IfcSoundScaleEnum;\n class IfcSpaceHeaterTypeEnum {\n }\n IfcSpaceHeaterTypeEnum.SECTIONALRADIATOR = { type: 3, value: \"SECTIONALRADIATOR\" };\n IfcSpaceHeaterTypeEnum.PANELRADIATOR = { type: 3, value: \"PANELRADIATOR\" };\n IfcSpaceHeaterTypeEnum.TUBULARRADIATOR = { type: 3, value: \"TUBULARRADIATOR\" };\n IfcSpaceHeaterTypeEnum.CONVECTOR = { type: 3, value: \"CONVECTOR\" };\n IfcSpaceHeaterTypeEnum.BASEBOARDHEATER = { type: 3, value: \"BASEBOARDHEATER\" };\n IfcSpaceHeaterTypeEnum.FINNEDTUBEUNIT = { type: 3, value: \"FINNEDTUBEUNIT\" };\n IfcSpaceHeaterTypeEnum.UNITHEATER = { type: 3, value: \"UNITHEATER\" };\n IfcSpaceHeaterTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSpaceHeaterTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcSpaceHeaterTypeEnum = IfcSpaceHeaterTypeEnum;\n class IfcSpaceTypeEnum {\n }\n IfcSpaceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSpaceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcSpaceTypeEnum = IfcSpaceTypeEnum;\n class IfcStackTerminalTypeEnum {\n }\n IfcStackTerminalTypeEnum.BIRDCAGE = { type: 3, value: \"BIRDCAGE\" };\n IfcStackTerminalTypeEnum.COWL = { type: 3, value: \"COWL\" };\n IfcStackTerminalTypeEnum.RAINWATERHOPPER = { type: 3, value: \"RAINWATERHOPPER\" };\n IfcStackTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcStackTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcStackTerminalTypeEnum = IfcStackTerminalTypeEnum;\n class IfcStairFlightTypeEnum {\n }\n IfcStairFlightTypeEnum.STRAIGHT = { type: 3, value: \"STRAIGHT\" };\n IfcStairFlightTypeEnum.WINDER = { type: 3, value: \"WINDER\" };\n IfcStairFlightTypeEnum.SPIRAL = { type: 3, value: \"SPIRAL\" };\n IfcStairFlightTypeEnum.CURVED = { type: 3, value: \"CURVED\" };\n IfcStairFlightTypeEnum.FREEFORM = { type: 3, value: \"FREEFORM\" };\n IfcStairFlightTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcStairFlightTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcStairFlightTypeEnum = IfcStairFlightTypeEnum;\n class IfcStairTypeEnum {\n }\n IfcStairTypeEnum.STRAIGHT_RUN_STAIR = { type: 3, value: \"STRAIGHT_RUN_STAIR\" };\n IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR = { type: 3, value: \"TWO_STRAIGHT_RUN_STAIR\" };\n IfcStairTypeEnum.QUARTER_WINDING_STAIR = { type: 3, value: \"QUARTER_WINDING_STAIR\" };\n IfcStairTypeEnum.QUARTER_TURN_STAIR = { type: 3, value: \"QUARTER_TURN_STAIR\" };\n IfcStairTypeEnum.HALF_WINDING_STAIR = { type: 3, value: \"HALF_WINDING_STAIR\" };\n IfcStairTypeEnum.HALF_TURN_STAIR = { type: 3, value: \"HALF_TURN_STAIR\" };\n IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR = { type: 3, value: \"TWO_QUARTER_WINDING_STAIR\" };\n IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR = { type: 3, value: \"TWO_QUARTER_TURN_STAIR\" };\n IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR = { type: 3, value: \"THREE_QUARTER_WINDING_STAIR\" };\n IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR = { type: 3, value: \"THREE_QUARTER_TURN_STAIR\" };\n IfcStairTypeEnum.SPIRAL_STAIR = { type: 3, value: \"SPIRAL_STAIR\" };\n IfcStairTypeEnum.DOUBLE_RETURN_STAIR = { type: 3, value: \"DOUBLE_RETURN_STAIR\" };\n IfcStairTypeEnum.CURVED_RUN_STAIR = { type: 3, value: \"CURVED_RUN_STAIR\" };\n IfcStairTypeEnum.TWO_CURVED_RUN_STAIR = { type: 3, value: \"TWO_CURVED_RUN_STAIR\" };\n IfcStairTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcStairTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcStairTypeEnum = IfcStairTypeEnum;\n class IfcStateEnum {\n }\n IfcStateEnum.READWRITE = { type: 3, value: \"READWRITE\" };\n IfcStateEnum.READONLY = { type: 3, value: \"READONLY\" };\n IfcStateEnum.LOCKED = { type: 3, value: \"LOCKED\" };\n IfcStateEnum.READWRITELOCKED = { type: 3, value: \"READWRITELOCKED\" };\n IfcStateEnum.READONLYLOCKED = { type: 3, value: \"READONLYLOCKED\" };\n IFC2X32.IfcStateEnum = IfcStateEnum;\n class IfcStructuralCurveTypeEnum {\n }\n IfcStructuralCurveTypeEnum.RIGID_JOINED_MEMBER = { type: 3, value: \"RIGID_JOINED_MEMBER\" };\n IfcStructuralCurveTypeEnum.PIN_JOINED_MEMBER = { type: 3, value: \"PIN_JOINED_MEMBER\" };\n IfcStructuralCurveTypeEnum.CABLE = { type: 3, value: \"CABLE\" };\n IfcStructuralCurveTypeEnum.TENSION_MEMBER = { type: 3, value: \"TENSION_MEMBER\" };\n IfcStructuralCurveTypeEnum.COMPRESSION_MEMBER = { type: 3, value: \"COMPRESSION_MEMBER\" };\n IfcStructuralCurveTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcStructuralCurveTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcStructuralCurveTypeEnum = IfcStructuralCurveTypeEnum;\n class IfcStructuralSurfaceTypeEnum {\n }\n IfcStructuralSurfaceTypeEnum.BENDING_ELEMENT = { type: 3, value: \"BENDING_ELEMENT\" };\n IfcStructuralSurfaceTypeEnum.MEMBRANE_ELEMENT = { type: 3, value: \"MEMBRANE_ELEMENT\" };\n IfcStructuralSurfaceTypeEnum.SHELL = { type: 3, value: \"SHELL\" };\n IfcStructuralSurfaceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcStructuralSurfaceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcStructuralSurfaceTypeEnum = IfcStructuralSurfaceTypeEnum;\n class IfcSurfaceSide {\n }\n IfcSurfaceSide.POSITIVE = { type: 3, value: \"POSITIVE\" };\n IfcSurfaceSide.NEGATIVE = { type: 3, value: \"NEGATIVE\" };\n IfcSurfaceSide.BOTH = { type: 3, value: \"BOTH\" };\n IFC2X32.IfcSurfaceSide = IfcSurfaceSide;\n class IfcSurfaceTextureEnum {\n }\n IfcSurfaceTextureEnum.BUMP = { type: 3, value: \"BUMP\" };\n IfcSurfaceTextureEnum.OPACITY = { type: 3, value: \"OPACITY\" };\n IfcSurfaceTextureEnum.REFLECTION = { type: 3, value: \"REFLECTION\" };\n IfcSurfaceTextureEnum.SELFILLUMINATION = { type: 3, value: \"SELFILLUMINATION\" };\n IfcSurfaceTextureEnum.SHININESS = { type: 3, value: \"SHININESS\" };\n IfcSurfaceTextureEnum.SPECULAR = { type: 3, value: \"SPECULAR\" };\n IfcSurfaceTextureEnum.TEXTURE = { type: 3, value: \"TEXTURE\" };\n IfcSurfaceTextureEnum.TRANSPARENCYMAP = { type: 3, value: \"TRANSPARENCYMAP\" };\n IfcSurfaceTextureEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcSurfaceTextureEnum = IfcSurfaceTextureEnum;\n class IfcSwitchingDeviceTypeEnum {\n }\n IfcSwitchingDeviceTypeEnum.CONTACTOR = { type: 3, value: \"CONTACTOR\" };\n IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP = { type: 3, value: \"EMERGENCYSTOP\" };\n IfcSwitchingDeviceTypeEnum.STARTER = { type: 3, value: \"STARTER\" };\n IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR = { type: 3, value: \"SWITCHDISCONNECTOR\" };\n IfcSwitchingDeviceTypeEnum.TOGGLESWITCH = { type: 3, value: \"TOGGLESWITCH\" };\n IfcSwitchingDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSwitchingDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcSwitchingDeviceTypeEnum = IfcSwitchingDeviceTypeEnum;\n class IfcTankTypeEnum {\n }\n IfcTankTypeEnum.PREFORMED = { type: 3, value: \"PREFORMED\" };\n IfcTankTypeEnum.SECTIONAL = { type: 3, value: \"SECTIONAL\" };\n IfcTankTypeEnum.EXPANSION = { type: 3, value: \"EXPANSION\" };\n IfcTankTypeEnum.PRESSUREVESSEL = { type: 3, value: \"PRESSUREVESSEL\" };\n IfcTankTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcTankTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcTankTypeEnum = IfcTankTypeEnum;\n class IfcTendonTypeEnum {\n }\n IfcTendonTypeEnum.STRAND = { type: 3, value: \"STRAND\" };\n IfcTendonTypeEnum.WIRE = { type: 3, value: \"WIRE\" };\n IfcTendonTypeEnum.BAR = { type: 3, value: \"BAR\" };\n IfcTendonTypeEnum.COATED = { type: 3, value: \"COATED\" };\n IfcTendonTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcTendonTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcTendonTypeEnum = IfcTendonTypeEnum;\n class IfcTextPath {\n }\n IfcTextPath.LEFT = { type: 3, value: \"LEFT\" };\n IfcTextPath.RIGHT = { type: 3, value: \"RIGHT\" };\n IfcTextPath.UP = { type: 3, value: \"UP\" };\n IfcTextPath.DOWN = { type: 3, value: \"DOWN\" };\n IFC2X32.IfcTextPath = IfcTextPath;\n class IfcThermalLoadSourceEnum {\n }\n IfcThermalLoadSourceEnum.PEOPLE = { type: 3, value: \"PEOPLE\" };\n IfcThermalLoadSourceEnum.LIGHTING = { type: 3, value: \"LIGHTING\" };\n IfcThermalLoadSourceEnum.EQUIPMENT = { type: 3, value: \"EQUIPMENT\" };\n IfcThermalLoadSourceEnum.VENTILATIONINDOORAIR = { type: 3, value: \"VENTILATIONINDOORAIR\" };\n IfcThermalLoadSourceEnum.VENTILATIONOUTSIDEAIR = { type: 3, value: \"VENTILATIONOUTSIDEAIR\" };\n IfcThermalLoadSourceEnum.RECIRCULATEDAIR = { type: 3, value: \"RECIRCULATEDAIR\" };\n IfcThermalLoadSourceEnum.EXHAUSTAIR = { type: 3, value: \"EXHAUSTAIR\" };\n IfcThermalLoadSourceEnum.AIREXCHANGERATE = { type: 3, value: \"AIREXCHANGERATE\" };\n IfcThermalLoadSourceEnum.DRYBULBTEMPERATURE = { type: 3, value: \"DRYBULBTEMPERATURE\" };\n IfcThermalLoadSourceEnum.RELATIVEHUMIDITY = { type: 3, value: \"RELATIVEHUMIDITY\" };\n IfcThermalLoadSourceEnum.INFILTRATION = { type: 3, value: \"INFILTRATION\" };\n IfcThermalLoadSourceEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcThermalLoadSourceEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcThermalLoadSourceEnum = IfcThermalLoadSourceEnum;\n class IfcThermalLoadTypeEnum {\n }\n IfcThermalLoadTypeEnum.SENSIBLE = { type: 3, value: \"SENSIBLE\" };\n IfcThermalLoadTypeEnum.LATENT = { type: 3, value: \"LATENT\" };\n IfcThermalLoadTypeEnum.RADIANT = { type: 3, value: \"RADIANT\" };\n IfcThermalLoadTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcThermalLoadTypeEnum = IfcThermalLoadTypeEnum;\n class IfcTimeSeriesDataTypeEnum {\n }\n IfcTimeSeriesDataTypeEnum.CONTINUOUS = { type: 3, value: \"CONTINUOUS\" };\n IfcTimeSeriesDataTypeEnum.DISCRETE = { type: 3, value: \"DISCRETE\" };\n IfcTimeSeriesDataTypeEnum.DISCRETEBINARY = { type: 3, value: \"DISCRETEBINARY\" };\n IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY = { type: 3, value: \"PIECEWISEBINARY\" };\n IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT = { type: 3, value: \"PIECEWISECONSTANT\" };\n IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS = { type: 3, value: \"PIECEWISECONTINUOUS\" };\n IfcTimeSeriesDataTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcTimeSeriesDataTypeEnum = IfcTimeSeriesDataTypeEnum;\n class IfcTimeSeriesScheduleTypeEnum {\n }\n IfcTimeSeriesScheduleTypeEnum.ANNUAL = { type: 3, value: \"ANNUAL\" };\n IfcTimeSeriesScheduleTypeEnum.MONTHLY = { type: 3, value: \"MONTHLY\" };\n IfcTimeSeriesScheduleTypeEnum.WEEKLY = { type: 3, value: \"WEEKLY\" };\n IfcTimeSeriesScheduleTypeEnum.DAILY = { type: 3, value: \"DAILY\" };\n IfcTimeSeriesScheduleTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcTimeSeriesScheduleTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcTimeSeriesScheduleTypeEnum = IfcTimeSeriesScheduleTypeEnum;\n class IfcTransformerTypeEnum {\n }\n IfcTransformerTypeEnum.CURRENT = { type: 3, value: \"CURRENT\" };\n IfcTransformerTypeEnum.FREQUENCY = { type: 3, value: \"FREQUENCY\" };\n IfcTransformerTypeEnum.VOLTAGE = { type: 3, value: \"VOLTAGE\" };\n IfcTransformerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcTransformerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcTransformerTypeEnum = IfcTransformerTypeEnum;\n class IfcTransitionCode {\n }\n IfcTransitionCode.DISCONTINUOUS = { type: 3, value: \"DISCONTINUOUS\" };\n IfcTransitionCode.CONTINUOUS = { type: 3, value: \"CONTINUOUS\" };\n IfcTransitionCode.CONTSAMEGRADIENT = { type: 3, value: \"CONTSAMEGRADIENT\" };\n IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE = { type: 3, value: \"CONTSAMEGRADIENTSAMECURVATURE\" };\n IFC2X32.IfcTransitionCode = IfcTransitionCode;\n class IfcTransportElementTypeEnum {\n }\n IfcTransportElementTypeEnum.ELEVATOR = { type: 3, value: \"ELEVATOR\" };\n IfcTransportElementTypeEnum.ESCALATOR = { type: 3, value: \"ESCALATOR\" };\n IfcTransportElementTypeEnum.MOVINGWALKWAY = { type: 3, value: \"MOVINGWALKWAY\" };\n IfcTransportElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcTransportElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcTransportElementTypeEnum = IfcTransportElementTypeEnum;\n class IfcTrimmingPreference {\n }\n IfcTrimmingPreference.CARTESIAN = { type: 3, value: \"CARTESIAN\" };\n IfcTrimmingPreference.PARAMETER = { type: 3, value: \"PARAMETER\" };\n IfcTrimmingPreference.UNSPECIFIED = { type: 3, value: \"UNSPECIFIED\" };\n IFC2X32.IfcTrimmingPreference = IfcTrimmingPreference;\n class IfcTubeBundleTypeEnum {\n }\n IfcTubeBundleTypeEnum.FINNED = { type: 3, value: \"FINNED\" };\n IfcTubeBundleTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcTubeBundleTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcTubeBundleTypeEnum = IfcTubeBundleTypeEnum;\n class IfcUnitEnum {\n }\n IfcUnitEnum.ABSORBEDDOSEUNIT = { type: 3, value: \"ABSORBEDDOSEUNIT\" };\n IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT = { type: 3, value: \"AMOUNTOFSUBSTANCEUNIT\" };\n IfcUnitEnum.AREAUNIT = { type: 3, value: \"AREAUNIT\" };\n IfcUnitEnum.DOSEEQUIVALENTUNIT = { type: 3, value: \"DOSEEQUIVALENTUNIT\" };\n IfcUnitEnum.ELECTRICCAPACITANCEUNIT = { type: 3, value: \"ELECTRICCAPACITANCEUNIT\" };\n IfcUnitEnum.ELECTRICCHARGEUNIT = { type: 3, value: \"ELECTRICCHARGEUNIT\" };\n IfcUnitEnum.ELECTRICCONDUCTANCEUNIT = { type: 3, value: \"ELECTRICCONDUCTANCEUNIT\" };\n IfcUnitEnum.ELECTRICCURRENTUNIT = { type: 3, value: \"ELECTRICCURRENTUNIT\" };\n IfcUnitEnum.ELECTRICRESISTANCEUNIT = { type: 3, value: \"ELECTRICRESISTANCEUNIT\" };\n IfcUnitEnum.ELECTRICVOLTAGEUNIT = { type: 3, value: \"ELECTRICVOLTAGEUNIT\" };\n IfcUnitEnum.ENERGYUNIT = { type: 3, value: \"ENERGYUNIT\" };\n IfcUnitEnum.FORCEUNIT = { type: 3, value: \"FORCEUNIT\" };\n IfcUnitEnum.FREQUENCYUNIT = { type: 3, value: \"FREQUENCYUNIT\" };\n IfcUnitEnum.ILLUMINANCEUNIT = { type: 3, value: \"ILLUMINANCEUNIT\" };\n IfcUnitEnum.INDUCTANCEUNIT = { type: 3, value: \"INDUCTANCEUNIT\" };\n IfcUnitEnum.LENGTHUNIT = { type: 3, value: \"LENGTHUNIT\" };\n IfcUnitEnum.LUMINOUSFLUXUNIT = { type: 3, value: \"LUMINOUSFLUXUNIT\" };\n IfcUnitEnum.LUMINOUSINTENSITYUNIT = { type: 3, value: \"LUMINOUSINTENSITYUNIT\" };\n IfcUnitEnum.MAGNETICFLUXDENSITYUNIT = { type: 3, value: \"MAGNETICFLUXDENSITYUNIT\" };\n IfcUnitEnum.MAGNETICFLUXUNIT = { type: 3, value: \"MAGNETICFLUXUNIT\" };\n IfcUnitEnum.MASSUNIT = { type: 3, value: \"MASSUNIT\" };\n IfcUnitEnum.PLANEANGLEUNIT = { type: 3, value: \"PLANEANGLEUNIT\" };\n IfcUnitEnum.POWERUNIT = { type: 3, value: \"POWERUNIT\" };\n IfcUnitEnum.PRESSUREUNIT = { type: 3, value: \"PRESSUREUNIT\" };\n IfcUnitEnum.RADIOACTIVITYUNIT = { type: 3, value: \"RADIOACTIVITYUNIT\" };\n IfcUnitEnum.SOLIDANGLEUNIT = { type: 3, value: \"SOLIDANGLEUNIT\" };\n IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT = { type: 3, value: \"THERMODYNAMICTEMPERATUREUNIT\" };\n IfcUnitEnum.TIMEUNIT = { type: 3, value: \"TIMEUNIT\" };\n IfcUnitEnum.VOLUMEUNIT = { type: 3, value: \"VOLUMEUNIT\" };\n IfcUnitEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IFC2X32.IfcUnitEnum = IfcUnitEnum;\n class IfcUnitaryEquipmentTypeEnum {\n }\n IfcUnitaryEquipmentTypeEnum.AIRHANDLER = { type: 3, value: \"AIRHANDLER\" };\n IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT = { type: 3, value: \"AIRCONDITIONINGUNIT\" };\n IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM = { type: 3, value: \"SPLITSYSTEM\" };\n IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT = { type: 3, value: \"ROOFTOPUNIT\" };\n IfcUnitaryEquipmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcUnitaryEquipmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcUnitaryEquipmentTypeEnum = IfcUnitaryEquipmentTypeEnum;\n class IfcValveTypeEnum {\n }\n IfcValveTypeEnum.AIRRELEASE = { type: 3, value: \"AIRRELEASE\" };\n IfcValveTypeEnum.ANTIVACUUM = { type: 3, value: \"ANTIVACUUM\" };\n IfcValveTypeEnum.CHANGEOVER = { type: 3, value: \"CHANGEOVER\" };\n IfcValveTypeEnum.CHECK = { type: 3, value: \"CHECK\" };\n IfcValveTypeEnum.COMMISSIONING = { type: 3, value: \"COMMISSIONING\" };\n IfcValveTypeEnum.DIVERTING = { type: 3, value: \"DIVERTING\" };\n IfcValveTypeEnum.DRAWOFFCOCK = { type: 3, value: \"DRAWOFFCOCK\" };\n IfcValveTypeEnum.DOUBLECHECK = { type: 3, value: \"DOUBLECHECK\" };\n IfcValveTypeEnum.DOUBLEREGULATING = { type: 3, value: \"DOUBLEREGULATING\" };\n IfcValveTypeEnum.FAUCET = { type: 3, value: \"FAUCET\" };\n IfcValveTypeEnum.FLUSHING = { type: 3, value: \"FLUSHING\" };\n IfcValveTypeEnum.GASCOCK = { type: 3, value: \"GASCOCK\" };\n IfcValveTypeEnum.GASTAP = { type: 3, value: \"GASTAP\" };\n IfcValveTypeEnum.ISOLATING = { type: 3, value: \"ISOLATING\" };\n IfcValveTypeEnum.MIXING = { type: 3, value: \"MIXING\" };\n IfcValveTypeEnum.PRESSUREREDUCING = { type: 3, value: \"PRESSUREREDUCING\" };\n IfcValveTypeEnum.PRESSURERELIEF = { type: 3, value: \"PRESSURERELIEF\" };\n IfcValveTypeEnum.REGULATING = { type: 3, value: \"REGULATING\" };\n IfcValveTypeEnum.SAFETYCUTOFF = { type: 3, value: \"SAFETYCUTOFF\" };\n IfcValveTypeEnum.STEAMTRAP = { type: 3, value: \"STEAMTRAP\" };\n IfcValveTypeEnum.STOPCOCK = { type: 3, value: \"STOPCOCK\" };\n IfcValveTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcValveTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcValveTypeEnum = IfcValveTypeEnum;\n class IfcVibrationIsolatorTypeEnum {\n }\n IfcVibrationIsolatorTypeEnum.COMPRESSION = { type: 3, value: \"COMPRESSION\" };\n IfcVibrationIsolatorTypeEnum.SPRING = { type: 3, value: \"SPRING\" };\n IfcVibrationIsolatorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcVibrationIsolatorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcVibrationIsolatorTypeEnum = IfcVibrationIsolatorTypeEnum;\n class IfcWallTypeEnum {\n }\n IfcWallTypeEnum.STANDARD = { type: 3, value: \"STANDARD\" };\n IfcWallTypeEnum.POLYGONAL = { type: 3, value: \"POLYGONAL\" };\n IfcWallTypeEnum.SHEAR = { type: 3, value: \"SHEAR\" };\n IfcWallTypeEnum.ELEMENTEDWALL = { type: 3, value: \"ELEMENTEDWALL\" };\n IfcWallTypeEnum.PLUMBINGWALL = { type: 3, value: \"PLUMBINGWALL\" };\n IfcWallTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcWallTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcWallTypeEnum = IfcWallTypeEnum;\n class IfcWasteTerminalTypeEnum {\n }\n IfcWasteTerminalTypeEnum.FLOORTRAP = { type: 3, value: \"FLOORTRAP\" };\n IfcWasteTerminalTypeEnum.FLOORWASTE = { type: 3, value: \"FLOORWASTE\" };\n IfcWasteTerminalTypeEnum.GULLYSUMP = { type: 3, value: \"GULLYSUMP\" };\n IfcWasteTerminalTypeEnum.GULLYTRAP = { type: 3, value: \"GULLYTRAP\" };\n IfcWasteTerminalTypeEnum.GREASEINTERCEPTOR = { type: 3, value: \"GREASEINTERCEPTOR\" };\n IfcWasteTerminalTypeEnum.OILINTERCEPTOR = { type: 3, value: \"OILINTERCEPTOR\" };\n IfcWasteTerminalTypeEnum.PETROLINTERCEPTOR = { type: 3, value: \"PETROLINTERCEPTOR\" };\n IfcWasteTerminalTypeEnum.ROOFDRAIN = { type: 3, value: \"ROOFDRAIN\" };\n IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT = { type: 3, value: \"WASTEDISPOSALUNIT\" };\n IfcWasteTerminalTypeEnum.WASTETRAP = { type: 3, value: \"WASTETRAP\" };\n IfcWasteTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcWasteTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcWasteTerminalTypeEnum = IfcWasteTerminalTypeEnum;\n class IfcWindowPanelOperationEnum {\n }\n IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND = { type: 3, value: \"SIDEHUNGRIGHTHAND\" };\n IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND = { type: 3, value: \"SIDEHUNGLEFTHAND\" };\n IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND = { type: 3, value: \"TILTANDTURNRIGHTHAND\" };\n IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND = { type: 3, value: \"TILTANDTURNLEFTHAND\" };\n IfcWindowPanelOperationEnum.TOPHUNG = { type: 3, value: \"TOPHUNG\" };\n IfcWindowPanelOperationEnum.BOTTOMHUNG = { type: 3, value: \"BOTTOMHUNG\" };\n IfcWindowPanelOperationEnum.PIVOTHORIZONTAL = { type: 3, value: \"PIVOTHORIZONTAL\" };\n IfcWindowPanelOperationEnum.PIVOTVERTICAL = { type: 3, value: \"PIVOTVERTICAL\" };\n IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL = { type: 3, value: \"SLIDINGHORIZONTAL\" };\n IfcWindowPanelOperationEnum.SLIDINGVERTICAL = { type: 3, value: \"SLIDINGVERTICAL\" };\n IfcWindowPanelOperationEnum.REMOVABLECASEMENT = { type: 3, value: \"REMOVABLECASEMENT\" };\n IfcWindowPanelOperationEnum.FIXEDCASEMENT = { type: 3, value: \"FIXEDCASEMENT\" };\n IfcWindowPanelOperationEnum.OTHEROPERATION = { type: 3, value: \"OTHEROPERATION\" };\n IfcWindowPanelOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcWindowPanelOperationEnum = IfcWindowPanelOperationEnum;\n class IfcWindowPanelPositionEnum {\n }\n IfcWindowPanelPositionEnum.LEFT = { type: 3, value: \"LEFT\" };\n IfcWindowPanelPositionEnum.MIDDLE = { type: 3, value: \"MIDDLE\" };\n IfcWindowPanelPositionEnum.RIGHT = { type: 3, value: \"RIGHT\" };\n IfcWindowPanelPositionEnum.BOTTOM = { type: 3, value: \"BOTTOM\" };\n IfcWindowPanelPositionEnum.TOP = { type: 3, value: \"TOP\" };\n IfcWindowPanelPositionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcWindowPanelPositionEnum = IfcWindowPanelPositionEnum;\n class IfcWindowStyleConstructionEnum {\n }\n IfcWindowStyleConstructionEnum.ALUMINIUM = { type: 3, value: \"ALUMINIUM\" };\n IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: \"HIGH_GRADE_STEEL\" };\n IfcWindowStyleConstructionEnum.STEEL = { type: 3, value: \"STEEL\" };\n IfcWindowStyleConstructionEnum.WOOD = { type: 3, value: \"WOOD\" };\n IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: \"ALUMINIUM_WOOD\" };\n IfcWindowStyleConstructionEnum.PLASTIC = { type: 3, value: \"PLASTIC\" };\n IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION = { type: 3, value: \"OTHER_CONSTRUCTION\" };\n IfcWindowStyleConstructionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcWindowStyleConstructionEnum = IfcWindowStyleConstructionEnum;\n class IfcWindowStyleOperationEnum {\n }\n IfcWindowStyleOperationEnum.SINGLE_PANEL = { type: 3, value: \"SINGLE_PANEL\" };\n IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: \"DOUBLE_PANEL_VERTICAL\" };\n IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: \"DOUBLE_PANEL_HORIZONTAL\" };\n IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: \"TRIPLE_PANEL_VERTICAL\" };\n IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: \"TRIPLE_PANEL_BOTTOM\" };\n IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP = { type: 3, value: \"TRIPLE_PANEL_TOP\" };\n IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT = { type: 3, value: \"TRIPLE_PANEL_LEFT\" };\n IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: \"TRIPLE_PANEL_RIGHT\" };\n IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: \"TRIPLE_PANEL_HORIZONTAL\" };\n IfcWindowStyleOperationEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcWindowStyleOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcWindowStyleOperationEnum = IfcWindowStyleOperationEnum;\n class IfcWorkControlTypeEnum {\n }\n IfcWorkControlTypeEnum.ACTUAL = { type: 3, value: \"ACTUAL\" };\n IfcWorkControlTypeEnum.BASELINE = { type: 3, value: \"BASELINE\" };\n IfcWorkControlTypeEnum.PLANNED = { type: 3, value: \"PLANNED\" };\n IfcWorkControlTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcWorkControlTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC2X32.IfcWorkControlTypeEnum = IfcWorkControlTypeEnum;\n class IfcActorRole extends IfcLineObject {\n constructor(Role, UserDefinedRole, Description) {\n super();\n this.Role = Role;\n this.UserDefinedRole = UserDefinedRole;\n this.Description = Description;\n this.type = 3630933823;\n }\n }\n IFC2X32.IfcActorRole = IfcActorRole;\n class IfcAddress extends IfcLineObject {\n constructor(Purpose, Description, UserDefinedPurpose) {\n super();\n this.Purpose = Purpose;\n this.Description = Description;\n this.UserDefinedPurpose = UserDefinedPurpose;\n this.type = 618182010;\n }\n }\n IFC2X32.IfcAddress = IfcAddress;\n class IfcApplication extends IfcLineObject {\n constructor(ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier) {\n super();\n this.ApplicationDeveloper = ApplicationDeveloper;\n this.Version = Version;\n this.ApplicationFullName = ApplicationFullName;\n this.ApplicationIdentifier = ApplicationIdentifier;\n this.type = 639542469;\n }\n }\n IFC2X32.IfcApplication = IfcApplication;\n class IfcAppliedValue extends IfcLineObject {\n constructor(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.AppliedValue = AppliedValue;\n this.UnitBasis = UnitBasis;\n this.ApplicableDate = ApplicableDate;\n this.FixedUntilDate = FixedUntilDate;\n this.type = 411424972;\n }\n }\n IFC2X32.IfcAppliedValue = IfcAppliedValue;\n class IfcAppliedValueRelationship extends IfcLineObject {\n constructor(ComponentOfTotal, Components, ArithmeticOperator, Name, Description) {\n super();\n this.ComponentOfTotal = ComponentOfTotal;\n this.Components = Components;\n this.ArithmeticOperator = ArithmeticOperator;\n this.Name = Name;\n this.Description = Description;\n this.type = 1110488051;\n }\n }\n IFC2X32.IfcAppliedValueRelationship = IfcAppliedValueRelationship;\n class IfcApproval extends IfcLineObject {\n constructor(Description, ApprovalDateTime, ApprovalStatus, ApprovalLevel, ApprovalQualifier, Name, Identifier) {\n super();\n this.Description = Description;\n this.ApprovalDateTime = ApprovalDateTime;\n this.ApprovalStatus = ApprovalStatus;\n this.ApprovalLevel = ApprovalLevel;\n this.ApprovalQualifier = ApprovalQualifier;\n this.Name = Name;\n this.Identifier = Identifier;\n this.type = 130549933;\n }\n }\n IFC2X32.IfcApproval = IfcApproval;\n class IfcApprovalActorRelationship extends IfcLineObject {\n constructor(Actor, Approval, Role) {\n super();\n this.Actor = Actor;\n this.Approval = Approval;\n this.Role = Role;\n this.type = 2080292479;\n }\n }\n IFC2X32.IfcApprovalActorRelationship = IfcApprovalActorRelationship;\n class IfcApprovalPropertyRelationship extends IfcLineObject {\n constructor(ApprovedProperties, Approval) {\n super();\n this.ApprovedProperties = ApprovedProperties;\n this.Approval = Approval;\n this.type = 390851274;\n }\n }\n IFC2X32.IfcApprovalPropertyRelationship = IfcApprovalPropertyRelationship;\n class IfcApprovalRelationship extends IfcLineObject {\n constructor(RelatedApproval, RelatingApproval, Description, Name) {\n super();\n this.RelatedApproval = RelatedApproval;\n this.RelatingApproval = RelatingApproval;\n this.Description = Description;\n this.Name = Name;\n this.type = 3869604511;\n }\n }\n IFC2X32.IfcApprovalRelationship = IfcApprovalRelationship;\n class IfcBoundaryCondition extends IfcLineObject {\n constructor(Name) {\n super();\n this.Name = Name;\n this.type = 4037036970;\n }\n }\n IFC2X32.IfcBoundaryCondition = IfcBoundaryCondition;\n class IfcBoundaryEdgeCondition extends IfcBoundaryCondition {\n constructor(Name, LinearStiffnessByLengthX, LinearStiffnessByLengthY, LinearStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ) {\n super(Name);\n this.Name = Name;\n this.LinearStiffnessByLengthX = LinearStiffnessByLengthX;\n this.LinearStiffnessByLengthY = LinearStiffnessByLengthY;\n this.LinearStiffnessByLengthZ = LinearStiffnessByLengthZ;\n this.RotationalStiffnessByLengthX = RotationalStiffnessByLengthX;\n this.RotationalStiffnessByLengthY = RotationalStiffnessByLengthY;\n this.RotationalStiffnessByLengthZ = RotationalStiffnessByLengthZ;\n this.type = 1560379544;\n }\n }\n IFC2X32.IfcBoundaryEdgeCondition = IfcBoundaryEdgeCondition;\n class IfcBoundaryFaceCondition extends IfcBoundaryCondition {\n constructor(Name, LinearStiffnessByAreaX, LinearStiffnessByAreaY, LinearStiffnessByAreaZ) {\n super(Name);\n this.Name = Name;\n this.LinearStiffnessByAreaX = LinearStiffnessByAreaX;\n this.LinearStiffnessByAreaY = LinearStiffnessByAreaY;\n this.LinearStiffnessByAreaZ = LinearStiffnessByAreaZ;\n this.type = 3367102660;\n }\n }\n IFC2X32.IfcBoundaryFaceCondition = IfcBoundaryFaceCondition;\n class IfcBoundaryNodeCondition extends IfcBoundaryCondition {\n constructor(Name, LinearStiffnessX, LinearStiffnessY, LinearStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ) {\n super(Name);\n this.Name = Name;\n this.LinearStiffnessX = LinearStiffnessX;\n this.LinearStiffnessY = LinearStiffnessY;\n this.LinearStiffnessZ = LinearStiffnessZ;\n this.RotationalStiffnessX = RotationalStiffnessX;\n this.RotationalStiffnessY = RotationalStiffnessY;\n this.RotationalStiffnessZ = RotationalStiffnessZ;\n this.type = 1387855156;\n }\n }\n IFC2X32.IfcBoundaryNodeCondition = IfcBoundaryNodeCondition;\n class IfcBoundaryNodeConditionWarping extends IfcBoundaryNodeCondition {\n constructor(Name, LinearStiffnessX, LinearStiffnessY, LinearStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness) {\n super(Name, LinearStiffnessX, LinearStiffnessY, LinearStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ);\n this.Name = Name;\n this.LinearStiffnessX = LinearStiffnessX;\n this.LinearStiffnessY = LinearStiffnessY;\n this.LinearStiffnessZ = LinearStiffnessZ;\n this.RotationalStiffnessX = RotationalStiffnessX;\n this.RotationalStiffnessY = RotationalStiffnessY;\n this.RotationalStiffnessZ = RotationalStiffnessZ;\n this.WarpingStiffness = WarpingStiffness;\n this.type = 2069777674;\n }\n }\n IFC2X32.IfcBoundaryNodeConditionWarping = IfcBoundaryNodeConditionWarping;\n class IfcCalendarDate extends IfcLineObject {\n constructor(DayComponent, MonthComponent, YearComponent) {\n super();\n this.DayComponent = DayComponent;\n this.MonthComponent = MonthComponent;\n this.YearComponent = YearComponent;\n this.type = 622194075;\n }\n }\n IFC2X32.IfcCalendarDate = IfcCalendarDate;\n class IfcClassification extends IfcLineObject {\n constructor(Source, Edition, EditionDate, Name) {\n super();\n this.Source = Source;\n this.Edition = Edition;\n this.EditionDate = EditionDate;\n this.Name = Name;\n this.type = 747523909;\n }\n }\n IFC2X32.IfcClassification = IfcClassification;\n class IfcClassificationItem extends IfcLineObject {\n constructor(Notation, ItemOf, Title) {\n super();\n this.Notation = Notation;\n this.ItemOf = ItemOf;\n this.Title = Title;\n this.type = 1767535486;\n }\n }\n IFC2X32.IfcClassificationItem = IfcClassificationItem;\n class IfcClassificationItemRelationship extends IfcLineObject {\n constructor(RelatingItem, RelatedItems) {\n super();\n this.RelatingItem = RelatingItem;\n this.RelatedItems = RelatedItems;\n this.type = 1098599126;\n }\n }\n IFC2X32.IfcClassificationItemRelationship = IfcClassificationItemRelationship;\n class IfcClassificationNotation extends IfcLineObject {\n constructor(NotationFacets) {\n super();\n this.NotationFacets = NotationFacets;\n this.type = 938368621;\n }\n }\n IFC2X32.IfcClassificationNotation = IfcClassificationNotation;\n class IfcClassificationNotationFacet extends IfcLineObject {\n constructor(NotationValue) {\n super();\n this.NotationValue = NotationValue;\n this.type = 3639012971;\n }\n }\n IFC2X32.IfcClassificationNotationFacet = IfcClassificationNotationFacet;\n class IfcColourSpecification extends IfcLineObject {\n constructor(Name) {\n super();\n this.Name = Name;\n this.type = 3264961684;\n }\n }\n IFC2X32.IfcColourSpecification = IfcColourSpecification;\n class IfcConnectionGeometry extends IfcLineObject {\n constructor() {\n super();\n this.type = 2859738748;\n }\n }\n IFC2X32.IfcConnectionGeometry = IfcConnectionGeometry;\n class IfcConnectionPointGeometry extends IfcConnectionGeometry {\n constructor(PointOnRelatingElement, PointOnRelatedElement) {\n super();\n this.PointOnRelatingElement = PointOnRelatingElement;\n this.PointOnRelatedElement = PointOnRelatedElement;\n this.type = 2614616156;\n }\n }\n IFC2X32.IfcConnectionPointGeometry = IfcConnectionPointGeometry;\n class IfcConnectionPortGeometry extends IfcConnectionGeometry {\n constructor(LocationAtRelatingElement, LocationAtRelatedElement, ProfileOfPort) {\n super();\n this.LocationAtRelatingElement = LocationAtRelatingElement;\n this.LocationAtRelatedElement = LocationAtRelatedElement;\n this.ProfileOfPort = ProfileOfPort;\n this.type = 4257277454;\n }\n }\n IFC2X32.IfcConnectionPortGeometry = IfcConnectionPortGeometry;\n class IfcConnectionSurfaceGeometry extends IfcConnectionGeometry {\n constructor(SurfaceOnRelatingElement, SurfaceOnRelatedElement) {\n super();\n this.SurfaceOnRelatingElement = SurfaceOnRelatingElement;\n this.SurfaceOnRelatedElement = SurfaceOnRelatedElement;\n this.type = 2732653382;\n }\n }\n IFC2X32.IfcConnectionSurfaceGeometry = IfcConnectionSurfaceGeometry;\n class IfcConstraint extends IfcLineObject {\n constructor(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.ConstraintGrade = ConstraintGrade;\n this.ConstraintSource = ConstraintSource;\n this.CreatingActor = CreatingActor;\n this.CreationTime = CreationTime;\n this.UserDefinedGrade = UserDefinedGrade;\n this.type = 1959218052;\n }\n }\n IFC2X32.IfcConstraint = IfcConstraint;\n class IfcConstraintAggregationRelationship extends IfcLineObject {\n constructor(Name, Description, RelatingConstraint, RelatedConstraints, LogicalAggregator) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.RelatingConstraint = RelatingConstraint;\n this.RelatedConstraints = RelatedConstraints;\n this.LogicalAggregator = LogicalAggregator;\n this.type = 1658513725;\n }\n }\n IFC2X32.IfcConstraintAggregationRelationship = IfcConstraintAggregationRelationship;\n class IfcConstraintClassificationRelationship extends IfcLineObject {\n constructor(ClassifiedConstraint, RelatedClassifications) {\n super();\n this.ClassifiedConstraint = ClassifiedConstraint;\n this.RelatedClassifications = RelatedClassifications;\n this.type = 613356794;\n }\n }\n IFC2X32.IfcConstraintClassificationRelationship = IfcConstraintClassificationRelationship;\n class IfcConstraintRelationship extends IfcLineObject {\n constructor(Name, Description, RelatingConstraint, RelatedConstraints) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.RelatingConstraint = RelatingConstraint;\n this.RelatedConstraints = RelatedConstraints;\n this.type = 347226245;\n }\n }\n IFC2X32.IfcConstraintRelationship = IfcConstraintRelationship;\n class IfcCoordinatedUniversalTimeOffset extends IfcLineObject {\n constructor(HourOffset, MinuteOffset, Sense) {\n super();\n this.HourOffset = HourOffset;\n this.MinuteOffset = MinuteOffset;\n this.Sense = Sense;\n this.type = 1065062679;\n }\n }\n IFC2X32.IfcCoordinatedUniversalTimeOffset = IfcCoordinatedUniversalTimeOffset;\n class IfcCostValue extends IfcAppliedValue {\n constructor(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, CostType, Condition) {\n super(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate);\n this.Name = Name;\n this.Description = Description;\n this.AppliedValue = AppliedValue;\n this.UnitBasis = UnitBasis;\n this.ApplicableDate = ApplicableDate;\n this.FixedUntilDate = FixedUntilDate;\n this.CostType = CostType;\n this.Condition = Condition;\n this.type = 602808272;\n }\n }\n IFC2X32.IfcCostValue = IfcCostValue;\n class IfcCurrencyRelationship extends IfcLineObject {\n constructor(RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource) {\n super();\n this.RelatingMonetaryUnit = RelatingMonetaryUnit;\n this.RelatedMonetaryUnit = RelatedMonetaryUnit;\n this.ExchangeRate = ExchangeRate;\n this.RateDateTime = RateDateTime;\n this.RateSource = RateSource;\n this.type = 539742890;\n }\n }\n IFC2X32.IfcCurrencyRelationship = IfcCurrencyRelationship;\n class IfcCurveStyleFont extends IfcLineObject {\n constructor(Name, PatternList) {\n super();\n this.Name = Name;\n this.PatternList = PatternList;\n this.type = 1105321065;\n }\n }\n IFC2X32.IfcCurveStyleFont = IfcCurveStyleFont;\n class IfcCurveStyleFontAndScaling extends IfcLineObject {\n constructor(Name, CurveFont, CurveFontScaling) {\n super();\n this.Name = Name;\n this.CurveFont = CurveFont;\n this.CurveFontScaling = CurveFontScaling;\n this.type = 2367409068;\n }\n }\n IFC2X32.IfcCurveStyleFontAndScaling = IfcCurveStyleFontAndScaling;\n class IfcCurveStyleFontPattern extends IfcLineObject {\n constructor(VisibleSegmentLength, InvisibleSegmentLength) {\n super();\n this.VisibleSegmentLength = VisibleSegmentLength;\n this.InvisibleSegmentLength = InvisibleSegmentLength;\n this.type = 3510044353;\n }\n }\n IFC2X32.IfcCurveStyleFontPattern = IfcCurveStyleFontPattern;\n class IfcDateAndTime extends IfcLineObject {\n constructor(DateComponent, TimeComponent) {\n super();\n this.DateComponent = DateComponent;\n this.TimeComponent = TimeComponent;\n this.type = 1072939445;\n }\n }\n IFC2X32.IfcDateAndTime = IfcDateAndTime;\n class IfcDerivedUnit extends IfcLineObject {\n constructor(Elements, UnitType, UserDefinedType) {\n super();\n this.Elements = Elements;\n this.UnitType = UnitType;\n this.UserDefinedType = UserDefinedType;\n this.type = 1765591967;\n }\n }\n IFC2X32.IfcDerivedUnit = IfcDerivedUnit;\n class IfcDerivedUnitElement extends IfcLineObject {\n constructor(Unit, Exponent) {\n super();\n this.Unit = Unit;\n this.Exponent = Exponent;\n this.type = 1045800335;\n }\n }\n IFC2X32.IfcDerivedUnitElement = IfcDerivedUnitElement;\n class IfcDimensionalExponents extends IfcLineObject {\n constructor(LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent) {\n super();\n this.LengthExponent = LengthExponent;\n this.MassExponent = MassExponent;\n this.TimeExponent = TimeExponent;\n this.ElectricCurrentExponent = ElectricCurrentExponent;\n this.ThermodynamicTemperatureExponent = ThermodynamicTemperatureExponent;\n this.AmountOfSubstanceExponent = AmountOfSubstanceExponent;\n this.LuminousIntensityExponent = LuminousIntensityExponent;\n this.type = 2949456006;\n }\n }\n IFC2X32.IfcDimensionalExponents = IfcDimensionalExponents;\n class IfcDocumentElectronicFormat extends IfcLineObject {\n constructor(FileExtension, MimeContentType, MimeSubtype) {\n super();\n this.FileExtension = FileExtension;\n this.MimeContentType = MimeContentType;\n this.MimeSubtype = MimeSubtype;\n this.type = 1376555844;\n }\n }\n IFC2X32.IfcDocumentElectronicFormat = IfcDocumentElectronicFormat;\n class IfcDocumentInformation extends IfcLineObject {\n constructor(DocumentId, Name, Description, DocumentReferences, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status) {\n super();\n this.DocumentId = DocumentId;\n this.Name = Name;\n this.Description = Description;\n this.DocumentReferences = DocumentReferences;\n this.Purpose = Purpose;\n this.IntendedUse = IntendedUse;\n this.Scope = Scope;\n this.Revision = Revision;\n this.DocumentOwner = DocumentOwner;\n this.Editors = Editors;\n this.CreationTime = CreationTime;\n this.LastRevisionTime = LastRevisionTime;\n this.ElectronicFormat = ElectronicFormat;\n this.ValidFrom = ValidFrom;\n this.ValidUntil = ValidUntil;\n this.Confidentiality = Confidentiality;\n this.Status = Status;\n this.type = 1154170062;\n }\n }\n IFC2X32.IfcDocumentInformation = IfcDocumentInformation;\n class IfcDocumentInformationRelationship extends IfcLineObject {\n constructor(RelatingDocument, RelatedDocuments, RelationshipType) {\n super();\n this.RelatingDocument = RelatingDocument;\n this.RelatedDocuments = RelatedDocuments;\n this.RelationshipType = RelationshipType;\n this.type = 770865208;\n }\n }\n IFC2X32.IfcDocumentInformationRelationship = IfcDocumentInformationRelationship;\n class IfcDraughtingCalloutRelationship extends IfcLineObject {\n constructor(Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.RelatingDraughtingCallout = RelatingDraughtingCallout;\n this.RelatedDraughtingCallout = RelatedDraughtingCallout;\n this.type = 3796139169;\n }\n }\n IFC2X32.IfcDraughtingCalloutRelationship = IfcDraughtingCalloutRelationship;\n class IfcEnvironmentalImpactValue extends IfcAppliedValue {\n constructor(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, ImpactType, Category, UserDefinedCategory) {\n super(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate);\n this.Name = Name;\n this.Description = Description;\n this.AppliedValue = AppliedValue;\n this.UnitBasis = UnitBasis;\n this.ApplicableDate = ApplicableDate;\n this.FixedUntilDate = FixedUntilDate;\n this.ImpactType = ImpactType;\n this.Category = Category;\n this.UserDefinedCategory = UserDefinedCategory;\n this.type = 1648886627;\n }\n }\n IFC2X32.IfcEnvironmentalImpactValue = IfcEnvironmentalImpactValue;\n class IfcExternalReference extends IfcLineObject {\n constructor(Location, ItemReference, Name) {\n super();\n this.Location = Location;\n this.ItemReference = ItemReference;\n this.Name = Name;\n this.type = 3200245327;\n }\n }\n IFC2X32.IfcExternalReference = IfcExternalReference;\n class IfcExternallyDefinedHatchStyle extends IfcExternalReference {\n constructor(Location, ItemReference, Name) {\n super(Location, ItemReference, Name);\n this.Location = Location;\n this.ItemReference = ItemReference;\n this.Name = Name;\n this.type = 2242383968;\n }\n }\n IFC2X32.IfcExternallyDefinedHatchStyle = IfcExternallyDefinedHatchStyle;\n class IfcExternallyDefinedSurfaceStyle extends IfcExternalReference {\n constructor(Location, ItemReference, Name) {\n super(Location, ItemReference, Name);\n this.Location = Location;\n this.ItemReference = ItemReference;\n this.Name = Name;\n this.type = 1040185647;\n }\n }\n IFC2X32.IfcExternallyDefinedSurfaceStyle = IfcExternallyDefinedSurfaceStyle;\n class IfcExternallyDefinedSymbol extends IfcExternalReference {\n constructor(Location, ItemReference, Name) {\n super(Location, ItemReference, Name);\n this.Location = Location;\n this.ItemReference = ItemReference;\n this.Name = Name;\n this.type = 3207319532;\n }\n }\n IFC2X32.IfcExternallyDefinedSymbol = IfcExternallyDefinedSymbol;\n class IfcExternallyDefinedTextFont extends IfcExternalReference {\n constructor(Location, ItemReference, Name) {\n super(Location, ItemReference, Name);\n this.Location = Location;\n this.ItemReference = ItemReference;\n this.Name = Name;\n this.type = 3548104201;\n }\n }\n IFC2X32.IfcExternallyDefinedTextFont = IfcExternallyDefinedTextFont;\n class IfcGridAxis extends IfcLineObject {\n constructor(AxisTag, AxisCurve, SameSense) {\n super();\n this.AxisTag = AxisTag;\n this.AxisCurve = AxisCurve;\n this.SameSense = SameSense;\n this.type = 852622518;\n }\n }\n IFC2X32.IfcGridAxis = IfcGridAxis;\n class IfcIrregularTimeSeriesValue extends IfcLineObject {\n constructor(TimeStamp, ListValues) {\n super();\n this.TimeStamp = TimeStamp;\n this.ListValues = ListValues;\n this.type = 3020489413;\n }\n }\n IFC2X32.IfcIrregularTimeSeriesValue = IfcIrregularTimeSeriesValue;\n class IfcLibraryInformation extends IfcLineObject {\n constructor(Name, Version, Publisher, VersionDate, LibraryReference) {\n super();\n this.Name = Name;\n this.Version = Version;\n this.Publisher = Publisher;\n this.VersionDate = VersionDate;\n this.LibraryReference = LibraryReference;\n this.type = 2655187982;\n }\n }\n IFC2X32.IfcLibraryInformation = IfcLibraryInformation;\n class IfcLibraryReference extends IfcExternalReference {\n constructor(Location, ItemReference, Name) {\n super(Location, ItemReference, Name);\n this.Location = Location;\n this.ItemReference = ItemReference;\n this.Name = Name;\n this.type = 3452421091;\n }\n }\n IFC2X32.IfcLibraryReference = IfcLibraryReference;\n class IfcLightDistributionData extends IfcLineObject {\n constructor(MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity) {\n super();\n this.MainPlaneAngle = MainPlaneAngle;\n this.SecondaryPlaneAngle = SecondaryPlaneAngle;\n this.LuminousIntensity = LuminousIntensity;\n this.type = 4162380809;\n }\n }\n IFC2X32.IfcLightDistributionData = IfcLightDistributionData;\n class IfcLightIntensityDistribution extends IfcLineObject {\n constructor(LightDistributionCurve, DistributionData) {\n super();\n this.LightDistributionCurve = LightDistributionCurve;\n this.DistributionData = DistributionData;\n this.type = 1566485204;\n }\n }\n IFC2X32.IfcLightIntensityDistribution = IfcLightIntensityDistribution;\n class IfcLocalTime extends IfcLineObject {\n constructor(HourComponent, MinuteComponent, SecondComponent, Zone, DaylightSavingOffset) {\n super();\n this.HourComponent = HourComponent;\n this.MinuteComponent = MinuteComponent;\n this.SecondComponent = SecondComponent;\n this.Zone = Zone;\n this.DaylightSavingOffset = DaylightSavingOffset;\n this.type = 30780891;\n }\n }\n IFC2X32.IfcLocalTime = IfcLocalTime;\n class IfcMaterial extends IfcLineObject {\n constructor(Name) {\n super();\n this.Name = Name;\n this.type = 1838606355;\n }\n }\n IFC2X32.IfcMaterial = IfcMaterial;\n class IfcMaterialClassificationRelationship extends IfcLineObject {\n constructor(MaterialClassifications, ClassifiedMaterial) {\n super();\n this.MaterialClassifications = MaterialClassifications;\n this.ClassifiedMaterial = ClassifiedMaterial;\n this.type = 1847130766;\n }\n }\n IFC2X32.IfcMaterialClassificationRelationship = IfcMaterialClassificationRelationship;\n class IfcMaterialLayer extends IfcLineObject {\n constructor(Material, LayerThickness, IsVentilated) {\n super();\n this.Material = Material;\n this.LayerThickness = LayerThickness;\n this.IsVentilated = IsVentilated;\n this.type = 248100487;\n }\n }\n IFC2X32.IfcMaterialLayer = IfcMaterialLayer;\n class IfcMaterialLayerSet extends IfcLineObject {\n constructor(MaterialLayers, LayerSetName) {\n super();\n this.MaterialLayers = MaterialLayers;\n this.LayerSetName = LayerSetName;\n this.type = 3303938423;\n }\n }\n IFC2X32.IfcMaterialLayerSet = IfcMaterialLayerSet;\n class IfcMaterialLayerSetUsage extends IfcLineObject {\n constructor(ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine) {\n super();\n this.ForLayerSet = ForLayerSet;\n this.LayerSetDirection = LayerSetDirection;\n this.DirectionSense = DirectionSense;\n this.OffsetFromReferenceLine = OffsetFromReferenceLine;\n this.type = 1303795690;\n }\n }\n IFC2X32.IfcMaterialLayerSetUsage = IfcMaterialLayerSetUsage;\n class IfcMaterialList extends IfcLineObject {\n constructor(Materials) {\n super();\n this.Materials = Materials;\n this.type = 2199411900;\n }\n }\n IFC2X32.IfcMaterialList = IfcMaterialList;\n class IfcMaterialProperties extends IfcLineObject {\n constructor(Material) {\n super();\n this.Material = Material;\n this.type = 3265635763;\n }\n }\n IFC2X32.IfcMaterialProperties = IfcMaterialProperties;\n class IfcMeasureWithUnit extends IfcLineObject {\n constructor(ValueComponent, UnitComponent) {\n super();\n this.ValueComponent = ValueComponent;\n this.UnitComponent = UnitComponent;\n this.type = 2597039031;\n }\n }\n IFC2X32.IfcMeasureWithUnit = IfcMeasureWithUnit;\n class IfcMechanicalMaterialProperties extends IfcMaterialProperties {\n constructor(Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient) {\n super(Material);\n this.Material = Material;\n this.DynamicViscosity = DynamicViscosity;\n this.YoungModulus = YoungModulus;\n this.ShearModulus = ShearModulus;\n this.PoissonRatio = PoissonRatio;\n this.ThermalExpansionCoefficient = ThermalExpansionCoefficient;\n this.type = 4256014907;\n }\n }\n IFC2X32.IfcMechanicalMaterialProperties = IfcMechanicalMaterialProperties;\n class IfcMechanicalSteelMaterialProperties extends IfcMechanicalMaterialProperties {\n constructor(Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient, YieldStress, UltimateStress, UltimateStrain, HardeningModule, ProportionalStress, PlasticStrain, Relaxations) {\n super(Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient);\n this.Material = Material;\n this.DynamicViscosity = DynamicViscosity;\n this.YoungModulus = YoungModulus;\n this.ShearModulus = ShearModulus;\n this.PoissonRatio = PoissonRatio;\n this.ThermalExpansionCoefficient = ThermalExpansionCoefficient;\n this.YieldStress = YieldStress;\n this.UltimateStress = UltimateStress;\n this.UltimateStrain = UltimateStrain;\n this.HardeningModule = HardeningModule;\n this.ProportionalStress = ProportionalStress;\n this.PlasticStrain = PlasticStrain;\n this.Relaxations = Relaxations;\n this.type = 677618848;\n }\n }\n IFC2X32.IfcMechanicalSteelMaterialProperties = IfcMechanicalSteelMaterialProperties;\n class IfcMetric extends IfcConstraint {\n constructor(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue) {\n super(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade);\n this.Name = Name;\n this.Description = Description;\n this.ConstraintGrade = ConstraintGrade;\n this.ConstraintSource = ConstraintSource;\n this.CreatingActor = CreatingActor;\n this.CreationTime = CreationTime;\n this.UserDefinedGrade = UserDefinedGrade;\n this.Benchmark = Benchmark;\n this.ValueSource = ValueSource;\n this.DataValue = DataValue;\n this.type = 3368373690;\n }\n }\n IFC2X32.IfcMetric = IfcMetric;\n class IfcMonetaryUnit extends IfcLineObject {\n constructor(Currency) {\n super();\n this.Currency = Currency;\n this.type = 2706619895;\n }\n }\n IFC2X32.IfcMonetaryUnit = IfcMonetaryUnit;\n class IfcNamedUnit extends IfcLineObject {\n constructor(Dimensions, UnitType) {\n super();\n this.Dimensions = Dimensions;\n this.UnitType = UnitType;\n this.type = 1918398963;\n }\n }\n IFC2X32.IfcNamedUnit = IfcNamedUnit;\n class IfcObjectPlacement extends IfcLineObject {\n constructor() {\n super();\n this.type = 3701648758;\n }\n }\n IFC2X32.IfcObjectPlacement = IfcObjectPlacement;\n class IfcObjective extends IfcConstraint {\n constructor(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, ResultValues, ObjectiveQualifier, UserDefinedQualifier) {\n super(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade);\n this.Name = Name;\n this.Description = Description;\n this.ConstraintGrade = ConstraintGrade;\n this.ConstraintSource = ConstraintSource;\n this.CreatingActor = CreatingActor;\n this.CreationTime = CreationTime;\n this.UserDefinedGrade = UserDefinedGrade;\n this.BenchmarkValues = BenchmarkValues;\n this.ResultValues = ResultValues;\n this.ObjectiveQualifier = ObjectiveQualifier;\n this.UserDefinedQualifier = UserDefinedQualifier;\n this.type = 2251480897;\n }\n }\n IFC2X32.IfcObjective = IfcObjective;\n class IfcOpticalMaterialProperties extends IfcMaterialProperties {\n constructor(Material, VisibleTransmittance, SolarTransmittance, ThermalIrTransmittance, ThermalIrEmissivityBack, ThermalIrEmissivityFront, VisibleReflectanceBack, VisibleReflectanceFront, SolarReflectanceFront, SolarReflectanceBack) {\n super(Material);\n this.Material = Material;\n this.VisibleTransmittance = VisibleTransmittance;\n this.SolarTransmittance = SolarTransmittance;\n this.ThermalIrTransmittance = ThermalIrTransmittance;\n this.ThermalIrEmissivityBack = ThermalIrEmissivityBack;\n this.ThermalIrEmissivityFront = ThermalIrEmissivityFront;\n this.VisibleReflectanceBack = VisibleReflectanceBack;\n this.VisibleReflectanceFront = VisibleReflectanceFront;\n this.SolarReflectanceFront = SolarReflectanceFront;\n this.SolarReflectanceBack = SolarReflectanceBack;\n this.type = 1227763645;\n }\n }\n IFC2X32.IfcOpticalMaterialProperties = IfcOpticalMaterialProperties;\n class IfcOrganization extends IfcLineObject {\n constructor(Id, Name, Description, Roles, Addresses) {\n super();\n this.Id = Id;\n this.Name = Name;\n this.Description = Description;\n this.Roles = Roles;\n this.Addresses = Addresses;\n this.type = 4251960020;\n }\n }\n IFC2X32.IfcOrganization = IfcOrganization;\n class IfcOrganizationRelationship extends IfcLineObject {\n constructor(Name, Description, RelatingOrganization, RelatedOrganizations) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.RelatingOrganization = RelatingOrganization;\n this.RelatedOrganizations = RelatedOrganizations;\n this.type = 1411181986;\n }\n }\n IFC2X32.IfcOrganizationRelationship = IfcOrganizationRelationship;\n class IfcOwnerHistory extends IfcLineObject {\n constructor(OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate) {\n super();\n this.OwningUser = OwningUser;\n this.OwningApplication = OwningApplication;\n this.State = State;\n this.ChangeAction = ChangeAction;\n this.LastModifiedDate = LastModifiedDate;\n this.LastModifyingUser = LastModifyingUser;\n this.LastModifyingApplication = LastModifyingApplication;\n this.CreationDate = CreationDate;\n this.type = 1207048766;\n }\n }\n IFC2X32.IfcOwnerHistory = IfcOwnerHistory;\n class IfcPerson extends IfcLineObject {\n constructor(Id, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses) {\n super();\n this.Id = Id;\n this.FamilyName = FamilyName;\n this.GivenName = GivenName;\n this.MiddleNames = MiddleNames;\n this.PrefixTitles = PrefixTitles;\n this.SuffixTitles = SuffixTitles;\n this.Roles = Roles;\n this.Addresses = Addresses;\n this.type = 2077209135;\n }\n }\n IFC2X32.IfcPerson = IfcPerson;\n class IfcPersonAndOrganization extends IfcLineObject {\n constructor(ThePerson, TheOrganization, Roles) {\n super();\n this.ThePerson = ThePerson;\n this.TheOrganization = TheOrganization;\n this.Roles = Roles;\n this.type = 101040310;\n }\n }\n IFC2X32.IfcPersonAndOrganization = IfcPersonAndOrganization;\n class IfcPhysicalQuantity extends IfcLineObject {\n constructor(Name, Description) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.type = 2483315170;\n }\n }\n IFC2X32.IfcPhysicalQuantity = IfcPhysicalQuantity;\n class IfcPhysicalSimpleQuantity extends IfcPhysicalQuantity {\n constructor(Name, Description, Unit) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.Unit = Unit;\n this.type = 2226359599;\n }\n }\n IFC2X32.IfcPhysicalSimpleQuantity = IfcPhysicalSimpleQuantity;\n class IfcPostalAddress extends IfcAddress {\n constructor(Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country) {\n super(Purpose, Description, UserDefinedPurpose);\n this.Purpose = Purpose;\n this.Description = Description;\n this.UserDefinedPurpose = UserDefinedPurpose;\n this.InternalLocation = InternalLocation;\n this.AddressLines = AddressLines;\n this.PostalBox = PostalBox;\n this.Town = Town;\n this.Region = Region;\n this.PostalCode = PostalCode;\n this.Country = Country;\n this.type = 3355820592;\n }\n }\n IFC2X32.IfcPostalAddress = IfcPostalAddress;\n class IfcPreDefinedItem extends IfcLineObject {\n constructor(Name) {\n super();\n this.Name = Name;\n this.type = 3727388367;\n }\n }\n IFC2X32.IfcPreDefinedItem = IfcPreDefinedItem;\n class IfcPreDefinedSymbol extends IfcPreDefinedItem {\n constructor(Name) {\n super(Name);\n this.Name = Name;\n this.type = 990879717;\n }\n }\n IFC2X32.IfcPreDefinedSymbol = IfcPreDefinedSymbol;\n class IfcPreDefinedTerminatorSymbol extends IfcPreDefinedSymbol {\n constructor(Name) {\n super(Name);\n this.Name = Name;\n this.type = 3213052703;\n }\n }\n IFC2X32.IfcPreDefinedTerminatorSymbol = IfcPreDefinedTerminatorSymbol;\n class IfcPreDefinedTextFont extends IfcPreDefinedItem {\n constructor(Name) {\n super(Name);\n this.Name = Name;\n this.type = 1775413392;\n }\n }\n IFC2X32.IfcPreDefinedTextFont = IfcPreDefinedTextFont;\n class IfcPresentationLayerAssignment extends IfcLineObject {\n constructor(Name, Description, AssignedItems, Identifier) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.AssignedItems = AssignedItems;\n this.Identifier = Identifier;\n this.type = 2022622350;\n }\n }\n IFC2X32.IfcPresentationLayerAssignment = IfcPresentationLayerAssignment;\n class IfcPresentationLayerWithStyle extends IfcPresentationLayerAssignment {\n constructor(Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles) {\n super(Name, Description, AssignedItems, Identifier);\n this.Name = Name;\n this.Description = Description;\n this.AssignedItems = AssignedItems;\n this.Identifier = Identifier;\n this.LayerOn = LayerOn;\n this.LayerFrozen = LayerFrozen;\n this.LayerBlocked = LayerBlocked;\n this.LayerStyles = LayerStyles;\n this.type = 1304840413;\n }\n }\n IFC2X32.IfcPresentationLayerWithStyle = IfcPresentationLayerWithStyle;\n class IfcPresentationStyle extends IfcLineObject {\n constructor(Name) {\n super();\n this.Name = Name;\n this.type = 3119450353;\n }\n }\n IFC2X32.IfcPresentationStyle = IfcPresentationStyle;\n class IfcPresentationStyleAssignment extends IfcLineObject {\n constructor(Styles) {\n super();\n this.Styles = Styles;\n this.type = 2417041796;\n }\n }\n IFC2X32.IfcPresentationStyleAssignment = IfcPresentationStyleAssignment;\n class IfcProductRepresentation extends IfcLineObject {\n constructor(Name, Description, Representations) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.Representations = Representations;\n this.type = 2095639259;\n }\n }\n IFC2X32.IfcProductRepresentation = IfcProductRepresentation;\n class IfcProductsOfCombustionProperties extends IfcMaterialProperties {\n constructor(Material, SpecificHeatCapacity, N20Content, COContent, CO2Content) {\n super(Material);\n this.Material = Material;\n this.SpecificHeatCapacity = SpecificHeatCapacity;\n this.N20Content = N20Content;\n this.COContent = COContent;\n this.CO2Content = CO2Content;\n this.type = 2267347899;\n }\n }\n IFC2X32.IfcProductsOfCombustionProperties = IfcProductsOfCombustionProperties;\n class IfcProfileDef extends IfcLineObject {\n constructor(ProfileType, ProfileName) {\n super();\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.type = 3958567839;\n }\n }\n IFC2X32.IfcProfileDef = IfcProfileDef;\n class IfcProfileProperties extends IfcLineObject {\n constructor(ProfileName, ProfileDefinition) {\n super();\n this.ProfileName = ProfileName;\n this.ProfileDefinition = ProfileDefinition;\n this.type = 2802850158;\n }\n }\n IFC2X32.IfcProfileProperties = IfcProfileProperties;\n class IfcProperty extends IfcLineObject {\n constructor(Name, Description) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.type = 2598011224;\n }\n }\n IFC2X32.IfcProperty = IfcProperty;\n class IfcPropertyConstraintRelationship extends IfcLineObject {\n constructor(RelatingConstraint, RelatedProperties, Name, Description) {\n super();\n this.RelatingConstraint = RelatingConstraint;\n this.RelatedProperties = RelatedProperties;\n this.Name = Name;\n this.Description = Description;\n this.type = 3896028662;\n }\n }\n IFC2X32.IfcPropertyConstraintRelationship = IfcPropertyConstraintRelationship;\n class IfcPropertyDependencyRelationship extends IfcLineObject {\n constructor(DependingProperty, DependantProperty, Name, Description, Expression) {\n super();\n this.DependingProperty = DependingProperty;\n this.DependantProperty = DependantProperty;\n this.Name = Name;\n this.Description = Description;\n this.Expression = Expression;\n this.type = 148025276;\n }\n }\n IFC2X32.IfcPropertyDependencyRelationship = IfcPropertyDependencyRelationship;\n class IfcPropertyEnumeration extends IfcLineObject {\n constructor(Name, EnumerationValues, Unit) {\n super();\n this.Name = Name;\n this.EnumerationValues = EnumerationValues;\n this.Unit = Unit;\n this.type = 3710013099;\n }\n }\n IFC2X32.IfcPropertyEnumeration = IfcPropertyEnumeration;\n class IfcQuantityArea extends IfcPhysicalSimpleQuantity {\n constructor(Name, Description, Unit, AreaValue) {\n super(Name, Description, Unit);\n this.Name = Name;\n this.Description = Description;\n this.Unit = Unit;\n this.AreaValue = AreaValue;\n this.type = 2044713172;\n }\n }\n IFC2X32.IfcQuantityArea = IfcQuantityArea;\n class IfcQuantityCount extends IfcPhysicalSimpleQuantity {\n constructor(Name, Description, Unit, CountValue) {\n super(Name, Description, Unit);\n this.Name = Name;\n this.Description = Description;\n this.Unit = Unit;\n this.CountValue = CountValue;\n this.type = 2093928680;\n }\n }\n IFC2X32.IfcQuantityCount = IfcQuantityCount;\n class IfcQuantityLength extends IfcPhysicalSimpleQuantity {\n constructor(Name, Description, Unit, LengthValue) {\n super(Name, Description, Unit);\n this.Name = Name;\n this.Description = Description;\n this.Unit = Unit;\n this.LengthValue = LengthValue;\n this.type = 931644368;\n }\n }\n IFC2X32.IfcQuantityLength = IfcQuantityLength;\n class IfcQuantityTime extends IfcPhysicalSimpleQuantity {\n constructor(Name, Description, Unit, TimeValue) {\n super(Name, Description, Unit);\n this.Name = Name;\n this.Description = Description;\n this.Unit = Unit;\n this.TimeValue = TimeValue;\n this.type = 3252649465;\n }\n }\n IFC2X32.IfcQuantityTime = IfcQuantityTime;\n class IfcQuantityVolume extends IfcPhysicalSimpleQuantity {\n constructor(Name, Description, Unit, VolumeValue) {\n super(Name, Description, Unit);\n this.Name = Name;\n this.Description = Description;\n this.Unit = Unit;\n this.VolumeValue = VolumeValue;\n this.type = 2405470396;\n }\n }\n IFC2X32.IfcQuantityVolume = IfcQuantityVolume;\n class IfcQuantityWeight extends IfcPhysicalSimpleQuantity {\n constructor(Name, Description, Unit, WeightValue) {\n super(Name, Description, Unit);\n this.Name = Name;\n this.Description = Description;\n this.Unit = Unit;\n this.WeightValue = WeightValue;\n this.type = 825690147;\n }\n }\n IFC2X32.IfcQuantityWeight = IfcQuantityWeight;\n class IfcReferencesValueDocument extends IfcLineObject {\n constructor(ReferencedDocument, ReferencingValues, Name, Description) {\n super();\n this.ReferencedDocument = ReferencedDocument;\n this.ReferencingValues = ReferencingValues;\n this.Name = Name;\n this.Description = Description;\n this.type = 2692823254;\n }\n }\n IFC2X32.IfcReferencesValueDocument = IfcReferencesValueDocument;\n class IfcReinforcementBarProperties extends IfcLineObject {\n constructor(TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount) {\n super();\n this.TotalCrossSectionArea = TotalCrossSectionArea;\n this.SteelGrade = SteelGrade;\n this.BarSurface = BarSurface;\n this.EffectiveDepth = EffectiveDepth;\n this.NominalBarDiameter = NominalBarDiameter;\n this.BarCount = BarCount;\n this.type = 1580146022;\n }\n }\n IFC2X32.IfcReinforcementBarProperties = IfcReinforcementBarProperties;\n class IfcRelaxation extends IfcLineObject {\n constructor(RelaxationValue, InitialStress) {\n super();\n this.RelaxationValue = RelaxationValue;\n this.InitialStress = InitialStress;\n this.type = 1222501353;\n }\n }\n IFC2X32.IfcRelaxation = IfcRelaxation;\n class IfcRepresentation extends IfcLineObject {\n constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n super();\n this.ContextOfItems = ContextOfItems;\n this.RepresentationIdentifier = RepresentationIdentifier;\n this.RepresentationType = RepresentationType;\n this.Items = Items;\n this.type = 1076942058;\n }\n }\n IFC2X32.IfcRepresentation = IfcRepresentation;\n class IfcRepresentationContext extends IfcLineObject {\n constructor(ContextIdentifier, ContextType) {\n super();\n this.ContextIdentifier = ContextIdentifier;\n this.ContextType = ContextType;\n this.type = 3377609919;\n }\n }\n IFC2X32.IfcRepresentationContext = IfcRepresentationContext;\n class IfcRepresentationItem extends IfcLineObject {\n constructor() {\n super();\n this.type = 3008791417;\n }\n }\n IFC2X32.IfcRepresentationItem = IfcRepresentationItem;\n class IfcRepresentationMap extends IfcLineObject {\n constructor(MappingOrigin, MappedRepresentation) {\n super();\n this.MappingOrigin = MappingOrigin;\n this.MappedRepresentation = MappedRepresentation;\n this.type = 1660063152;\n }\n }\n IFC2X32.IfcRepresentationMap = IfcRepresentationMap;\n class IfcRibPlateProfileProperties extends IfcProfileProperties {\n constructor(ProfileName, ProfileDefinition, Thickness, RibHeight, RibWidth, RibSpacing, Direction) {\n super(ProfileName, ProfileDefinition);\n this.ProfileName = ProfileName;\n this.ProfileDefinition = ProfileDefinition;\n this.Thickness = Thickness;\n this.RibHeight = RibHeight;\n this.RibWidth = RibWidth;\n this.RibSpacing = RibSpacing;\n this.Direction = Direction;\n this.type = 3679540991;\n }\n }\n IFC2X32.IfcRibPlateProfileProperties = IfcRibPlateProfileProperties;\n class IfcRoot extends IfcLineObject {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super();\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 2341007311;\n }\n }\n IFC2X32.IfcRoot = IfcRoot;\n class IfcSIUnit extends IfcNamedUnit {\n constructor(UnitType, Prefix, Name) {\n super(new Handle(0), UnitType);\n this.UnitType = UnitType;\n this.Prefix = Prefix;\n this.Name = Name;\n this.type = 448429030;\n }\n }\n IFC2X32.IfcSIUnit = IfcSIUnit;\n class IfcSectionProperties extends IfcLineObject {\n constructor(SectionType, StartProfile, EndProfile) {\n super();\n this.SectionType = SectionType;\n this.StartProfile = StartProfile;\n this.EndProfile = EndProfile;\n this.type = 2042790032;\n }\n }\n IFC2X32.IfcSectionProperties = IfcSectionProperties;\n class IfcSectionReinforcementProperties extends IfcLineObject {\n constructor(LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions) {\n super();\n this.LongitudinalStartPosition = LongitudinalStartPosition;\n this.LongitudinalEndPosition = LongitudinalEndPosition;\n this.TransversePosition = TransversePosition;\n this.ReinforcementRole = ReinforcementRole;\n this.SectionDefinition = SectionDefinition;\n this.CrossSectionReinforcementDefinitions = CrossSectionReinforcementDefinitions;\n this.type = 4165799628;\n }\n }\n IFC2X32.IfcSectionReinforcementProperties = IfcSectionReinforcementProperties;\n class IfcShapeAspect extends IfcLineObject {\n constructor(ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape) {\n super();\n this.ShapeRepresentations = ShapeRepresentations;\n this.Name = Name;\n this.Description = Description;\n this.ProductDefinitional = ProductDefinitional;\n this.PartOfProductDefinitionShape = PartOfProductDefinitionShape;\n this.type = 867548509;\n }\n }\n IFC2X32.IfcShapeAspect = IfcShapeAspect;\n class IfcShapeModel extends IfcRepresentation {\n constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n this.ContextOfItems = ContextOfItems;\n this.RepresentationIdentifier = RepresentationIdentifier;\n this.RepresentationType = RepresentationType;\n this.Items = Items;\n this.type = 3982875396;\n }\n }\n IFC2X32.IfcShapeModel = IfcShapeModel;\n class IfcShapeRepresentation extends IfcShapeModel {\n constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n this.ContextOfItems = ContextOfItems;\n this.RepresentationIdentifier = RepresentationIdentifier;\n this.RepresentationType = RepresentationType;\n this.Items = Items;\n this.type = 4240577450;\n }\n }\n IFC2X32.IfcShapeRepresentation = IfcShapeRepresentation;\n class IfcSimpleProperty extends IfcProperty {\n constructor(Name, Description) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.type = 3692461612;\n }\n }\n IFC2X32.IfcSimpleProperty = IfcSimpleProperty;\n class IfcStructuralConnectionCondition extends IfcLineObject {\n constructor(Name) {\n super();\n this.Name = Name;\n this.type = 2273995522;\n }\n }\n IFC2X32.IfcStructuralConnectionCondition = IfcStructuralConnectionCondition;\n class IfcStructuralLoad extends IfcLineObject {\n constructor(Name) {\n super();\n this.Name = Name;\n this.type = 2162789131;\n }\n }\n IFC2X32.IfcStructuralLoad = IfcStructuralLoad;\n class IfcStructuralLoadStatic extends IfcStructuralLoad {\n constructor(Name) {\n super(Name);\n this.Name = Name;\n this.type = 2525727697;\n }\n }\n IFC2X32.IfcStructuralLoadStatic = IfcStructuralLoadStatic;\n class IfcStructuralLoadTemperature extends IfcStructuralLoadStatic {\n constructor(Name, DeltaT_Constant, DeltaT_Y, DeltaT_Z) {\n super(Name);\n this.Name = Name;\n this.DeltaT_Constant = DeltaT_Constant;\n this.DeltaT_Y = DeltaT_Y;\n this.DeltaT_Z = DeltaT_Z;\n this.type = 3408363356;\n }\n }\n IFC2X32.IfcStructuralLoadTemperature = IfcStructuralLoadTemperature;\n class IfcStyleModel extends IfcRepresentation {\n constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n this.ContextOfItems = ContextOfItems;\n this.RepresentationIdentifier = RepresentationIdentifier;\n this.RepresentationType = RepresentationType;\n this.Items = Items;\n this.type = 2830218821;\n }\n }\n IFC2X32.IfcStyleModel = IfcStyleModel;\n class IfcStyledItem extends IfcRepresentationItem {\n constructor(Item, Styles, Name) {\n super();\n this.Item = Item;\n this.Styles = Styles;\n this.Name = Name;\n this.type = 3958052878;\n }\n }\n IFC2X32.IfcStyledItem = IfcStyledItem;\n class IfcStyledRepresentation extends IfcStyleModel {\n constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n this.ContextOfItems = ContextOfItems;\n this.RepresentationIdentifier = RepresentationIdentifier;\n this.RepresentationType = RepresentationType;\n this.Items = Items;\n this.type = 3049322572;\n }\n }\n IFC2X32.IfcStyledRepresentation = IfcStyledRepresentation;\n class IfcSurfaceStyle extends IfcPresentationStyle {\n constructor(Name, Side, Styles) {\n super(Name);\n this.Name = Name;\n this.Side = Side;\n this.Styles = Styles;\n this.type = 1300840506;\n }\n }\n IFC2X32.IfcSurfaceStyle = IfcSurfaceStyle;\n class IfcSurfaceStyleLighting extends IfcLineObject {\n constructor(DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour) {\n super();\n this.DiffuseTransmissionColour = DiffuseTransmissionColour;\n this.DiffuseReflectionColour = DiffuseReflectionColour;\n this.TransmissionColour = TransmissionColour;\n this.ReflectanceColour = ReflectanceColour;\n this.type = 3303107099;\n }\n }\n IFC2X32.IfcSurfaceStyleLighting = IfcSurfaceStyleLighting;\n class IfcSurfaceStyleRefraction extends IfcLineObject {\n constructor(RefractionIndex, DispersionFactor) {\n super();\n this.RefractionIndex = RefractionIndex;\n this.DispersionFactor = DispersionFactor;\n this.type = 1607154358;\n }\n }\n IFC2X32.IfcSurfaceStyleRefraction = IfcSurfaceStyleRefraction;\n class IfcSurfaceStyleShading extends IfcLineObject {\n constructor(SurfaceColour) {\n super();\n this.SurfaceColour = SurfaceColour;\n this.type = 846575682;\n }\n }\n IFC2X32.IfcSurfaceStyleShading = IfcSurfaceStyleShading;\n class IfcSurfaceStyleWithTextures extends IfcLineObject {\n constructor(Textures) {\n super();\n this.Textures = Textures;\n this.type = 1351298697;\n }\n }\n IFC2X32.IfcSurfaceStyleWithTextures = IfcSurfaceStyleWithTextures;\n class IfcSurfaceTexture extends IfcLineObject {\n constructor(RepeatS, RepeatT, TextureType, TextureTransform) {\n super();\n this.RepeatS = RepeatS;\n this.RepeatT = RepeatT;\n this.TextureType = TextureType;\n this.TextureTransform = TextureTransform;\n this.type = 626085974;\n }\n }\n IFC2X32.IfcSurfaceTexture = IfcSurfaceTexture;\n class IfcSymbolStyle extends IfcPresentationStyle {\n constructor(Name, StyleOfSymbol) {\n super(Name);\n this.Name = Name;\n this.StyleOfSymbol = StyleOfSymbol;\n this.type = 1290481447;\n }\n }\n IFC2X32.IfcSymbolStyle = IfcSymbolStyle;\n class IfcTable extends IfcLineObject {\n constructor(Name, Rows) {\n super();\n this.Name = Name;\n this.Rows = Rows;\n this.type = 985171141;\n }\n }\n IFC2X32.IfcTable = IfcTable;\n class IfcTableRow extends IfcLineObject {\n constructor(RowCells, IsHeading) {\n super();\n this.RowCells = RowCells;\n this.IsHeading = IsHeading;\n this.type = 531007025;\n }\n }\n IFC2X32.IfcTableRow = IfcTableRow;\n class IfcTelecomAddress extends IfcAddress {\n constructor(Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL) {\n super(Purpose, Description, UserDefinedPurpose);\n this.Purpose = Purpose;\n this.Description = Description;\n this.UserDefinedPurpose = UserDefinedPurpose;\n this.TelephoneNumbers = TelephoneNumbers;\n this.FacsimileNumbers = FacsimileNumbers;\n this.PagerNumber = PagerNumber;\n this.ElectronicMailAddresses = ElectronicMailAddresses;\n this.WWWHomePageURL = WWWHomePageURL;\n this.type = 912023232;\n }\n }\n IFC2X32.IfcTelecomAddress = IfcTelecomAddress;\n class IfcTextStyle extends IfcPresentationStyle {\n constructor(Name, TextCharacterAppearance, TextStyle, TextFontStyle) {\n super(Name);\n this.Name = Name;\n this.TextCharacterAppearance = TextCharacterAppearance;\n this.TextStyle = TextStyle;\n this.TextFontStyle = TextFontStyle;\n this.type = 1447204868;\n }\n }\n IFC2X32.IfcTextStyle = IfcTextStyle;\n class IfcTextStyleFontModel extends IfcPreDefinedTextFont {\n constructor(Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize) {\n super(Name);\n this.Name = Name;\n this.FontFamily = FontFamily;\n this.FontStyle = FontStyle;\n this.FontVariant = FontVariant;\n this.FontWeight = FontWeight;\n this.FontSize = FontSize;\n this.type = 1983826977;\n }\n }\n IFC2X32.IfcTextStyleFontModel = IfcTextStyleFontModel;\n class IfcTextStyleForDefinedFont extends IfcLineObject {\n constructor(Colour, BackgroundColour) {\n super();\n this.Colour = Colour;\n this.BackgroundColour = BackgroundColour;\n this.type = 2636378356;\n }\n }\n IFC2X32.IfcTextStyleForDefinedFont = IfcTextStyleForDefinedFont;\n class IfcTextStyleTextModel extends IfcLineObject {\n constructor(TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight) {\n super();\n this.TextIndent = TextIndent;\n this.TextAlign = TextAlign;\n this.TextDecoration = TextDecoration;\n this.LetterSpacing = LetterSpacing;\n this.WordSpacing = WordSpacing;\n this.TextTransform = TextTransform;\n this.LineHeight = LineHeight;\n this.type = 1640371178;\n }\n }\n IFC2X32.IfcTextStyleTextModel = IfcTextStyleTextModel;\n class IfcTextStyleWithBoxCharacteristics extends IfcLineObject {\n constructor(BoxHeight, BoxWidth, BoxSlantAngle, BoxRotateAngle, CharacterSpacing) {\n super();\n this.BoxHeight = BoxHeight;\n this.BoxWidth = BoxWidth;\n this.BoxSlantAngle = BoxSlantAngle;\n this.BoxRotateAngle = BoxRotateAngle;\n this.CharacterSpacing = CharacterSpacing;\n this.type = 1484833681;\n }\n }\n IFC2X32.IfcTextStyleWithBoxCharacteristics = IfcTextStyleWithBoxCharacteristics;\n class IfcTextureCoordinate extends IfcLineObject {\n constructor() {\n super();\n this.type = 280115917;\n }\n }\n IFC2X32.IfcTextureCoordinate = IfcTextureCoordinate;\n class IfcTextureCoordinateGenerator extends IfcTextureCoordinate {\n constructor(Mode, Parameter) {\n super();\n this.Mode = Mode;\n this.Parameter = Parameter;\n this.type = 1742049831;\n }\n }\n IFC2X32.IfcTextureCoordinateGenerator = IfcTextureCoordinateGenerator;\n class IfcTextureMap extends IfcTextureCoordinate {\n constructor(TextureMaps) {\n super();\n this.TextureMaps = TextureMaps;\n this.type = 2552916305;\n }\n }\n IFC2X32.IfcTextureMap = IfcTextureMap;\n class IfcTextureVertex extends IfcLineObject {\n constructor(Coordinates) {\n super();\n this.Coordinates = Coordinates;\n this.type = 1210645708;\n }\n }\n IFC2X32.IfcTextureVertex = IfcTextureVertex;\n class IfcThermalMaterialProperties extends IfcMaterialProperties {\n constructor(Material, SpecificHeatCapacity, BoilingPoint, FreezingPoint, ThermalConductivity) {\n super(Material);\n this.Material = Material;\n this.SpecificHeatCapacity = SpecificHeatCapacity;\n this.BoilingPoint = BoilingPoint;\n this.FreezingPoint = FreezingPoint;\n this.ThermalConductivity = ThermalConductivity;\n this.type = 3317419933;\n }\n }\n IFC2X32.IfcThermalMaterialProperties = IfcThermalMaterialProperties;\n class IfcTimeSeries extends IfcLineObject {\n constructor(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.StartTime = StartTime;\n this.EndTime = EndTime;\n this.TimeSeriesDataType = TimeSeriesDataType;\n this.DataOrigin = DataOrigin;\n this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n this.Unit = Unit;\n this.type = 3101149627;\n }\n }\n IFC2X32.IfcTimeSeries = IfcTimeSeries;\n class IfcTimeSeriesReferenceRelationship extends IfcLineObject {\n constructor(ReferencedTimeSeries, TimeSeriesReferences) {\n super();\n this.ReferencedTimeSeries = ReferencedTimeSeries;\n this.TimeSeriesReferences = TimeSeriesReferences;\n this.type = 1718945513;\n }\n }\n IFC2X32.IfcTimeSeriesReferenceRelationship = IfcTimeSeriesReferenceRelationship;\n class IfcTimeSeriesValue extends IfcLineObject {\n constructor(ListValues) {\n super();\n this.ListValues = ListValues;\n this.type = 581633288;\n }\n }\n IFC2X32.IfcTimeSeriesValue = IfcTimeSeriesValue;\n class IfcTopologicalRepresentationItem extends IfcRepresentationItem {\n constructor() {\n super();\n this.type = 1377556343;\n }\n }\n IFC2X32.IfcTopologicalRepresentationItem = IfcTopologicalRepresentationItem;\n class IfcTopologyRepresentation extends IfcShapeModel {\n constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n this.ContextOfItems = ContextOfItems;\n this.RepresentationIdentifier = RepresentationIdentifier;\n this.RepresentationType = RepresentationType;\n this.Items = Items;\n this.type = 1735638870;\n }\n }\n IFC2X32.IfcTopologyRepresentation = IfcTopologyRepresentation;\n class IfcUnitAssignment extends IfcLineObject {\n constructor(Units) {\n super();\n this.Units = Units;\n this.type = 180925521;\n }\n }\n IFC2X32.IfcUnitAssignment = IfcUnitAssignment;\n class IfcVertex extends IfcTopologicalRepresentationItem {\n constructor() {\n super();\n this.type = 2799835756;\n }\n }\n IFC2X32.IfcVertex = IfcVertex;\n class IfcVertexBasedTextureMap extends IfcLineObject {\n constructor(TextureVertices, TexturePoints) {\n super();\n this.TextureVertices = TextureVertices;\n this.TexturePoints = TexturePoints;\n this.type = 3304826586;\n }\n }\n IFC2X32.IfcVertexBasedTextureMap = IfcVertexBasedTextureMap;\n class IfcVertexPoint extends IfcVertex {\n constructor(VertexGeometry) {\n super();\n this.VertexGeometry = VertexGeometry;\n this.type = 1907098498;\n }\n }\n IFC2X32.IfcVertexPoint = IfcVertexPoint;\n class IfcVirtualGridIntersection extends IfcLineObject {\n constructor(IntersectingAxes, OffsetDistances) {\n super();\n this.IntersectingAxes = IntersectingAxes;\n this.OffsetDistances = OffsetDistances;\n this.type = 891718957;\n }\n }\n IFC2X32.IfcVirtualGridIntersection = IfcVirtualGridIntersection;\n class IfcWaterProperties extends IfcMaterialProperties {\n constructor(Material, IsPotable, Hardness, AlkalinityConcentration, AcidityConcentration, ImpuritiesContent, PHLevel, DissolvedSolidsContent) {\n super(Material);\n this.Material = Material;\n this.IsPotable = IsPotable;\n this.Hardness = Hardness;\n this.AlkalinityConcentration = AlkalinityConcentration;\n this.AcidityConcentration = AcidityConcentration;\n this.ImpuritiesContent = ImpuritiesContent;\n this.PHLevel = PHLevel;\n this.DissolvedSolidsContent = DissolvedSolidsContent;\n this.type = 1065908215;\n }\n }\n IFC2X32.IfcWaterProperties = IfcWaterProperties;\n class IfcAnnotationOccurrence extends IfcStyledItem {\n constructor(Item, Styles, Name) {\n super(Item, Styles, Name);\n this.Item = Item;\n this.Styles = Styles;\n this.Name = Name;\n this.type = 2442683028;\n }\n }\n IFC2X32.IfcAnnotationOccurrence = IfcAnnotationOccurrence;\n class IfcAnnotationSurfaceOccurrence extends IfcAnnotationOccurrence {\n constructor(Item, Styles, Name) {\n super(Item, Styles, Name);\n this.Item = Item;\n this.Styles = Styles;\n this.Name = Name;\n this.type = 962685235;\n }\n }\n IFC2X32.IfcAnnotationSurfaceOccurrence = IfcAnnotationSurfaceOccurrence;\n class IfcAnnotationSymbolOccurrence extends IfcAnnotationOccurrence {\n constructor(Item, Styles, Name) {\n super(Item, Styles, Name);\n this.Item = Item;\n this.Styles = Styles;\n this.Name = Name;\n this.type = 3612888222;\n }\n }\n IFC2X32.IfcAnnotationSymbolOccurrence = IfcAnnotationSymbolOccurrence;\n class IfcAnnotationTextOccurrence extends IfcAnnotationOccurrence {\n constructor(Item, Styles, Name) {\n super(Item, Styles, Name);\n this.Item = Item;\n this.Styles = Styles;\n this.Name = Name;\n this.type = 2297822566;\n }\n }\n IFC2X32.IfcAnnotationTextOccurrence = IfcAnnotationTextOccurrence;\n class IfcArbitraryClosedProfileDef extends IfcProfileDef {\n constructor(ProfileType, ProfileName, OuterCurve) {\n super(ProfileType, ProfileName);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.OuterCurve = OuterCurve;\n this.type = 3798115385;\n }\n }\n IFC2X32.IfcArbitraryClosedProfileDef = IfcArbitraryClosedProfileDef;\n class IfcArbitraryOpenProfileDef extends IfcProfileDef {\n constructor(ProfileType, ProfileName, Curve) {\n super(ProfileType, ProfileName);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Curve = Curve;\n this.type = 1310608509;\n }\n }\n IFC2X32.IfcArbitraryOpenProfileDef = IfcArbitraryOpenProfileDef;\n class IfcArbitraryProfileDefWithVoids extends IfcArbitraryClosedProfileDef {\n constructor(ProfileType, ProfileName, OuterCurve, InnerCurves) {\n super(ProfileType, ProfileName, OuterCurve);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.OuterCurve = OuterCurve;\n this.InnerCurves = InnerCurves;\n this.type = 2705031697;\n }\n }\n IFC2X32.IfcArbitraryProfileDefWithVoids = IfcArbitraryProfileDefWithVoids;\n class IfcBlobTexture extends IfcSurfaceTexture {\n constructor(RepeatS, RepeatT, TextureType, TextureTransform, RasterFormat, RasterCode) {\n super(RepeatS, RepeatT, TextureType, TextureTransform);\n this.RepeatS = RepeatS;\n this.RepeatT = RepeatT;\n this.TextureType = TextureType;\n this.TextureTransform = TextureTransform;\n this.RasterFormat = RasterFormat;\n this.RasterCode = RasterCode;\n this.type = 616511568;\n }\n }\n IFC2X32.IfcBlobTexture = IfcBlobTexture;\n class IfcCenterLineProfileDef extends IfcArbitraryOpenProfileDef {\n constructor(ProfileType, ProfileName, Curve, Thickness) {\n super(ProfileType, ProfileName, Curve);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Curve = Curve;\n this.Thickness = Thickness;\n this.type = 3150382593;\n }\n }\n IFC2X32.IfcCenterLineProfileDef = IfcCenterLineProfileDef;\n class IfcClassificationReference extends IfcExternalReference {\n constructor(Location, ItemReference, Name, ReferencedSource) {\n super(Location, ItemReference, Name);\n this.Location = Location;\n this.ItemReference = ItemReference;\n this.Name = Name;\n this.ReferencedSource = ReferencedSource;\n this.type = 647927063;\n }\n }\n IFC2X32.IfcClassificationReference = IfcClassificationReference;\n class IfcColourRgb extends IfcColourSpecification {\n constructor(Name, Red, Green, Blue) {\n super(Name);\n this.Name = Name;\n this.Red = Red;\n this.Green = Green;\n this.Blue = Blue;\n this.type = 776857604;\n }\n }\n IFC2X32.IfcColourRgb = IfcColourRgb;\n class IfcComplexProperty extends IfcProperty {\n constructor(Name, Description, UsageName, HasProperties) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.UsageName = UsageName;\n this.HasProperties = HasProperties;\n this.type = 2542286263;\n }\n }\n IFC2X32.IfcComplexProperty = IfcComplexProperty;\n class IfcCompositeProfileDef extends IfcProfileDef {\n constructor(ProfileType, ProfileName, Profiles, Label) {\n super(ProfileType, ProfileName);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Profiles = Profiles;\n this.Label = Label;\n this.type = 1485152156;\n }\n }\n IFC2X32.IfcCompositeProfileDef = IfcCompositeProfileDef;\n class IfcConnectedFaceSet extends IfcTopologicalRepresentationItem {\n constructor(CfsFaces) {\n super();\n this.CfsFaces = CfsFaces;\n this.type = 370225590;\n }\n }\n IFC2X32.IfcConnectedFaceSet = IfcConnectedFaceSet;\n class IfcConnectionCurveGeometry extends IfcConnectionGeometry {\n constructor(CurveOnRelatingElement, CurveOnRelatedElement) {\n super();\n this.CurveOnRelatingElement = CurveOnRelatingElement;\n this.CurveOnRelatedElement = CurveOnRelatedElement;\n this.type = 1981873012;\n }\n }\n IFC2X32.IfcConnectionCurveGeometry = IfcConnectionCurveGeometry;\n class IfcConnectionPointEccentricity extends IfcConnectionPointGeometry {\n constructor(PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ) {\n super(PointOnRelatingElement, PointOnRelatedElement);\n this.PointOnRelatingElement = PointOnRelatingElement;\n this.PointOnRelatedElement = PointOnRelatedElement;\n this.EccentricityInX = EccentricityInX;\n this.EccentricityInY = EccentricityInY;\n this.EccentricityInZ = EccentricityInZ;\n this.type = 45288368;\n }\n }\n IFC2X32.IfcConnectionPointEccentricity = IfcConnectionPointEccentricity;\n class IfcContextDependentUnit extends IfcNamedUnit {\n constructor(Dimensions, UnitType, Name) {\n super(Dimensions, UnitType);\n this.Dimensions = Dimensions;\n this.UnitType = UnitType;\n this.Name = Name;\n this.type = 3050246964;\n }\n }\n IFC2X32.IfcContextDependentUnit = IfcContextDependentUnit;\n class IfcConversionBasedUnit extends IfcNamedUnit {\n constructor(Dimensions, UnitType, Name, ConversionFactor) {\n super(Dimensions, UnitType);\n this.Dimensions = Dimensions;\n this.UnitType = UnitType;\n this.Name = Name;\n this.ConversionFactor = ConversionFactor;\n this.type = 2889183280;\n }\n }\n IFC2X32.IfcConversionBasedUnit = IfcConversionBasedUnit;\n class IfcCurveStyle extends IfcPresentationStyle {\n constructor(Name, CurveFont, CurveWidth, CurveColour) {\n super(Name);\n this.Name = Name;\n this.CurveFont = CurveFont;\n this.CurveWidth = CurveWidth;\n this.CurveColour = CurveColour;\n this.type = 3800577675;\n }\n }\n IFC2X32.IfcCurveStyle = IfcCurveStyle;\n class IfcDerivedProfileDef extends IfcProfileDef {\n constructor(ProfileType, ProfileName, ParentProfile, Operator, Label) {\n super(ProfileType, ProfileName);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.ParentProfile = ParentProfile;\n this.Operator = Operator;\n this.Label = Label;\n this.type = 3632507154;\n }\n }\n IFC2X32.IfcDerivedProfileDef = IfcDerivedProfileDef;\n class IfcDimensionCalloutRelationship extends IfcDraughtingCalloutRelationship {\n constructor(Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout) {\n super(Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout);\n this.Name = Name;\n this.Description = Description;\n this.RelatingDraughtingCallout = RelatingDraughtingCallout;\n this.RelatedDraughtingCallout = RelatedDraughtingCallout;\n this.type = 2273265877;\n }\n }\n IFC2X32.IfcDimensionCalloutRelationship = IfcDimensionCalloutRelationship;\n class IfcDimensionPair extends IfcDraughtingCalloutRelationship {\n constructor(Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout) {\n super(Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout);\n this.Name = Name;\n this.Description = Description;\n this.RelatingDraughtingCallout = RelatingDraughtingCallout;\n this.RelatedDraughtingCallout = RelatedDraughtingCallout;\n this.type = 1694125774;\n }\n }\n IFC2X32.IfcDimensionPair = IfcDimensionPair;\n class IfcDocumentReference extends IfcExternalReference {\n constructor(Location, ItemReference, Name) {\n super(Location, ItemReference, Name);\n this.Location = Location;\n this.ItemReference = ItemReference;\n this.Name = Name;\n this.type = 3732053477;\n }\n }\n IFC2X32.IfcDocumentReference = IfcDocumentReference;\n class IfcDraughtingPreDefinedTextFont extends IfcPreDefinedTextFont {\n constructor(Name) {\n super(Name);\n this.Name = Name;\n this.type = 4170525392;\n }\n }\n IFC2X32.IfcDraughtingPreDefinedTextFont = IfcDraughtingPreDefinedTextFont;\n class IfcEdge extends IfcTopologicalRepresentationItem {\n constructor(EdgeStart, EdgeEnd) {\n super();\n this.EdgeStart = EdgeStart;\n this.EdgeEnd = EdgeEnd;\n this.type = 3900360178;\n }\n }\n IFC2X32.IfcEdge = IfcEdge;\n class IfcEdgeCurve extends IfcEdge {\n constructor(EdgeStart, EdgeEnd, EdgeGeometry, SameSense) {\n super(EdgeStart, EdgeEnd);\n this.EdgeStart = EdgeStart;\n this.EdgeEnd = EdgeEnd;\n this.EdgeGeometry = EdgeGeometry;\n this.SameSense = SameSense;\n this.type = 476780140;\n }\n }\n IFC2X32.IfcEdgeCurve = IfcEdgeCurve;\n class IfcExtendedMaterialProperties extends IfcMaterialProperties {\n constructor(Material, ExtendedProperties, Description, Name) {\n super(Material);\n this.Material = Material;\n this.ExtendedProperties = ExtendedProperties;\n this.Description = Description;\n this.Name = Name;\n this.type = 1860660968;\n }\n }\n IFC2X32.IfcExtendedMaterialProperties = IfcExtendedMaterialProperties;\n class IfcFace extends IfcTopologicalRepresentationItem {\n constructor(Bounds) {\n super();\n this.Bounds = Bounds;\n this.type = 2556980723;\n }\n }\n IFC2X32.IfcFace = IfcFace;\n class IfcFaceBound extends IfcTopologicalRepresentationItem {\n constructor(Bound, Orientation) {\n super();\n this.Bound = Bound;\n this.Orientation = Orientation;\n this.type = 1809719519;\n }\n }\n IFC2X32.IfcFaceBound = IfcFaceBound;\n class IfcFaceOuterBound extends IfcFaceBound {\n constructor(Bound, Orientation) {\n super(Bound, Orientation);\n this.Bound = Bound;\n this.Orientation = Orientation;\n this.type = 803316827;\n }\n }\n IFC2X32.IfcFaceOuterBound = IfcFaceOuterBound;\n class IfcFaceSurface extends IfcFace {\n constructor(Bounds, FaceSurface, SameSense) {\n super(Bounds);\n this.Bounds = Bounds;\n this.FaceSurface = FaceSurface;\n this.SameSense = SameSense;\n this.type = 3008276851;\n }\n }\n IFC2X32.IfcFaceSurface = IfcFaceSurface;\n class IfcFailureConnectionCondition extends IfcStructuralConnectionCondition {\n constructor(Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ) {\n super(Name);\n this.Name = Name;\n this.TensionFailureX = TensionFailureX;\n this.TensionFailureY = TensionFailureY;\n this.TensionFailureZ = TensionFailureZ;\n this.CompressionFailureX = CompressionFailureX;\n this.CompressionFailureY = CompressionFailureY;\n this.CompressionFailureZ = CompressionFailureZ;\n this.type = 4219587988;\n }\n }\n IFC2X32.IfcFailureConnectionCondition = IfcFailureConnectionCondition;\n class IfcFillAreaStyle extends IfcPresentationStyle {\n constructor(Name, FillStyles) {\n super(Name);\n this.Name = Name;\n this.FillStyles = FillStyles;\n this.type = 738692330;\n }\n }\n IFC2X32.IfcFillAreaStyle = IfcFillAreaStyle;\n class IfcFuelProperties extends IfcMaterialProperties {\n constructor(Material, CombustionTemperature, CarbonContent, LowerHeatingValue, HigherHeatingValue) {\n super(Material);\n this.Material = Material;\n this.CombustionTemperature = CombustionTemperature;\n this.CarbonContent = CarbonContent;\n this.LowerHeatingValue = LowerHeatingValue;\n this.HigherHeatingValue = HigherHeatingValue;\n this.type = 3857492461;\n }\n }\n IFC2X32.IfcFuelProperties = IfcFuelProperties;\n class IfcGeneralMaterialProperties extends IfcMaterialProperties {\n constructor(Material, MolecularWeight, Porosity, MassDensity) {\n super(Material);\n this.Material = Material;\n this.MolecularWeight = MolecularWeight;\n this.Porosity = Porosity;\n this.MassDensity = MassDensity;\n this.type = 803998398;\n }\n }\n IFC2X32.IfcGeneralMaterialProperties = IfcGeneralMaterialProperties;\n class IfcGeneralProfileProperties extends IfcProfileProperties {\n constructor(ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea) {\n super(ProfileName, ProfileDefinition);\n this.ProfileName = ProfileName;\n this.ProfileDefinition = ProfileDefinition;\n this.PhysicalWeight = PhysicalWeight;\n this.Perimeter = Perimeter;\n this.MinimumPlateThickness = MinimumPlateThickness;\n this.MaximumPlateThickness = MaximumPlateThickness;\n this.CrossSectionArea = CrossSectionArea;\n this.type = 1446786286;\n }\n }\n IFC2X32.IfcGeneralProfileProperties = IfcGeneralProfileProperties;\n class IfcGeometricRepresentationContext extends IfcRepresentationContext {\n constructor(ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth) {\n super(ContextIdentifier, ContextType);\n this.ContextIdentifier = ContextIdentifier;\n this.ContextType = ContextType;\n this.CoordinateSpaceDimension = CoordinateSpaceDimension;\n this.Precision = Precision;\n this.WorldCoordinateSystem = WorldCoordinateSystem;\n this.TrueNorth = TrueNorth;\n this.type = 3448662350;\n }\n }\n IFC2X32.IfcGeometricRepresentationContext = IfcGeometricRepresentationContext;\n class IfcGeometricRepresentationItem extends IfcRepresentationItem {\n constructor() {\n super();\n this.type = 2453401579;\n }\n }\n IFC2X32.IfcGeometricRepresentationItem = IfcGeometricRepresentationItem;\n class IfcGeometricRepresentationSubContext extends IfcGeometricRepresentationContext {\n constructor(ContextIdentifier, ContextType, ParentContext, TargetScale, TargetView, UserDefinedTargetView) {\n super(ContextIdentifier, ContextType, new IfcDimensionCount(0), null, new Handle(0), null);\n this.ContextIdentifier = ContextIdentifier;\n this.ContextType = ContextType;\n this.ParentContext = ParentContext;\n this.TargetScale = TargetScale;\n this.TargetView = TargetView;\n this.UserDefinedTargetView = UserDefinedTargetView;\n this.type = 4142052618;\n }\n }\n IFC2X32.IfcGeometricRepresentationSubContext = IfcGeometricRepresentationSubContext;\n class IfcGeometricSet extends IfcGeometricRepresentationItem {\n constructor(Elements) {\n super();\n this.Elements = Elements;\n this.type = 3590301190;\n }\n }\n IFC2X32.IfcGeometricSet = IfcGeometricSet;\n class IfcGridPlacement extends IfcObjectPlacement {\n constructor(PlacementLocation, PlacementRefDirection) {\n super();\n this.PlacementLocation = PlacementLocation;\n this.PlacementRefDirection = PlacementRefDirection;\n this.type = 178086475;\n }\n }\n IFC2X32.IfcGridPlacement = IfcGridPlacement;\n class IfcHalfSpaceSolid extends IfcGeometricRepresentationItem {\n constructor(BaseSurface, AgreementFlag) {\n super();\n this.BaseSurface = BaseSurface;\n this.AgreementFlag = AgreementFlag;\n this.type = 812098782;\n }\n }\n IFC2X32.IfcHalfSpaceSolid = IfcHalfSpaceSolid;\n class IfcHygroscopicMaterialProperties extends IfcMaterialProperties {\n constructor(Material, UpperVaporResistanceFactor, LowerVaporResistanceFactor, IsothermalMoistureCapacity, VaporPermeability, MoistureDiffusivity) {\n super(Material);\n this.Material = Material;\n this.UpperVaporResistanceFactor = UpperVaporResistanceFactor;\n this.LowerVaporResistanceFactor = LowerVaporResistanceFactor;\n this.IsothermalMoistureCapacity = IsothermalMoistureCapacity;\n this.VaporPermeability = VaporPermeability;\n this.MoistureDiffusivity = MoistureDiffusivity;\n this.type = 2445078500;\n }\n }\n IFC2X32.IfcHygroscopicMaterialProperties = IfcHygroscopicMaterialProperties;\n class IfcImageTexture extends IfcSurfaceTexture {\n constructor(RepeatS, RepeatT, TextureType, TextureTransform, UrlReference) {\n super(RepeatS, RepeatT, TextureType, TextureTransform);\n this.RepeatS = RepeatS;\n this.RepeatT = RepeatT;\n this.TextureType = TextureType;\n this.TextureTransform = TextureTransform;\n this.UrlReference = UrlReference;\n this.type = 3905492369;\n }\n }\n IFC2X32.IfcImageTexture = IfcImageTexture;\n class IfcIrregularTimeSeries extends IfcTimeSeries {\n constructor(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values) {\n super(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit);\n this.Name = Name;\n this.Description = Description;\n this.StartTime = StartTime;\n this.EndTime = EndTime;\n this.TimeSeriesDataType = TimeSeriesDataType;\n this.DataOrigin = DataOrigin;\n this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n this.Unit = Unit;\n this.Values = Values;\n this.type = 3741457305;\n }\n }\n IFC2X32.IfcIrregularTimeSeries = IfcIrregularTimeSeries;\n class IfcLightSource extends IfcGeometricRepresentationItem {\n constructor(Name, LightColour, AmbientIntensity, Intensity) {\n super();\n this.Name = Name;\n this.LightColour = LightColour;\n this.AmbientIntensity = AmbientIntensity;\n this.Intensity = Intensity;\n this.type = 1402838566;\n }\n }\n IFC2X32.IfcLightSource = IfcLightSource;\n class IfcLightSourceAmbient extends IfcLightSource {\n constructor(Name, LightColour, AmbientIntensity, Intensity) {\n super(Name, LightColour, AmbientIntensity, Intensity);\n this.Name = Name;\n this.LightColour = LightColour;\n this.AmbientIntensity = AmbientIntensity;\n this.Intensity = Intensity;\n this.type = 125510826;\n }\n }\n IFC2X32.IfcLightSourceAmbient = IfcLightSourceAmbient;\n class IfcLightSourceDirectional extends IfcLightSource {\n constructor(Name, LightColour, AmbientIntensity, Intensity, Orientation) {\n super(Name, LightColour, AmbientIntensity, Intensity);\n this.Name = Name;\n this.LightColour = LightColour;\n this.AmbientIntensity = AmbientIntensity;\n this.Intensity = Intensity;\n this.Orientation = Orientation;\n this.type = 2604431987;\n }\n }\n IFC2X32.IfcLightSourceDirectional = IfcLightSourceDirectional;\n class IfcLightSourceGoniometric extends IfcLightSource {\n constructor(Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource) {\n super(Name, LightColour, AmbientIntensity, Intensity);\n this.Name = Name;\n this.LightColour = LightColour;\n this.AmbientIntensity = AmbientIntensity;\n this.Intensity = Intensity;\n this.Position = Position;\n this.ColourAppearance = ColourAppearance;\n this.ColourTemperature = ColourTemperature;\n this.LuminousFlux = LuminousFlux;\n this.LightEmissionSource = LightEmissionSource;\n this.LightDistributionDataSource = LightDistributionDataSource;\n this.type = 4266656042;\n }\n }\n IFC2X32.IfcLightSourceGoniometric = IfcLightSourceGoniometric;\n class IfcLightSourcePositional extends IfcLightSource {\n constructor(Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation) {\n super(Name, LightColour, AmbientIntensity, Intensity);\n this.Name = Name;\n this.LightColour = LightColour;\n this.AmbientIntensity = AmbientIntensity;\n this.Intensity = Intensity;\n this.Position = Position;\n this.Radius = Radius;\n this.ConstantAttenuation = ConstantAttenuation;\n this.DistanceAttenuation = DistanceAttenuation;\n this.QuadricAttenuation = QuadricAttenuation;\n this.type = 1520743889;\n }\n }\n IFC2X32.IfcLightSourcePositional = IfcLightSourcePositional;\n class IfcLightSourceSpot extends IfcLightSourcePositional {\n constructor(Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle) {\n super(Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation);\n this.Name = Name;\n this.LightColour = LightColour;\n this.AmbientIntensity = AmbientIntensity;\n this.Intensity = Intensity;\n this.Position = Position;\n this.Radius = Radius;\n this.ConstantAttenuation = ConstantAttenuation;\n this.DistanceAttenuation = DistanceAttenuation;\n this.QuadricAttenuation = QuadricAttenuation;\n this.Orientation = Orientation;\n this.ConcentrationExponent = ConcentrationExponent;\n this.SpreadAngle = SpreadAngle;\n this.BeamWidthAngle = BeamWidthAngle;\n this.type = 3422422726;\n }\n }\n IFC2X32.IfcLightSourceSpot = IfcLightSourceSpot;\n class IfcLocalPlacement extends IfcObjectPlacement {\n constructor(PlacementRelTo, RelativePlacement) {\n super();\n this.PlacementRelTo = PlacementRelTo;\n this.RelativePlacement = RelativePlacement;\n this.type = 2624227202;\n }\n }\n IFC2X32.IfcLocalPlacement = IfcLocalPlacement;\n class IfcLoop extends IfcTopologicalRepresentationItem {\n constructor() {\n super();\n this.type = 1008929658;\n }\n }\n IFC2X32.IfcLoop = IfcLoop;\n class IfcMappedItem extends IfcRepresentationItem {\n constructor(MappingSource, MappingTarget) {\n super();\n this.MappingSource = MappingSource;\n this.MappingTarget = MappingTarget;\n this.type = 2347385850;\n }\n }\n IFC2X32.IfcMappedItem = IfcMappedItem;\n class IfcMaterialDefinitionRepresentation extends IfcProductRepresentation {\n constructor(Name, Description, Representations, RepresentedMaterial) {\n super(Name, Description, Representations);\n this.Name = Name;\n this.Description = Description;\n this.Representations = Representations;\n this.RepresentedMaterial = RepresentedMaterial;\n this.type = 2022407955;\n }\n }\n IFC2X32.IfcMaterialDefinitionRepresentation = IfcMaterialDefinitionRepresentation;\n class IfcMechanicalConcreteMaterialProperties extends IfcMechanicalMaterialProperties {\n constructor(Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient, CompressiveStrength, MaxAggregateSize, AdmixturesDescription, Workability, ProtectivePoreRatio, WaterImpermeability) {\n super(Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient);\n this.Material = Material;\n this.DynamicViscosity = DynamicViscosity;\n this.YoungModulus = YoungModulus;\n this.ShearModulus = ShearModulus;\n this.PoissonRatio = PoissonRatio;\n this.ThermalExpansionCoefficient = ThermalExpansionCoefficient;\n this.CompressiveStrength = CompressiveStrength;\n this.MaxAggregateSize = MaxAggregateSize;\n this.AdmixturesDescription = AdmixturesDescription;\n this.Workability = Workability;\n this.ProtectivePoreRatio = ProtectivePoreRatio;\n this.WaterImpermeability = WaterImpermeability;\n this.type = 1430189142;\n }\n }\n IFC2X32.IfcMechanicalConcreteMaterialProperties = IfcMechanicalConcreteMaterialProperties;\n class IfcObjectDefinition extends IfcRoot {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 219451334;\n }\n }\n IFC2X32.IfcObjectDefinition = IfcObjectDefinition;\n class IfcOneDirectionRepeatFactor extends IfcGeometricRepresentationItem {\n constructor(RepeatFactor) {\n super();\n this.RepeatFactor = RepeatFactor;\n this.type = 2833995503;\n }\n }\n IFC2X32.IfcOneDirectionRepeatFactor = IfcOneDirectionRepeatFactor;\n class IfcOpenShell extends IfcConnectedFaceSet {\n constructor(CfsFaces) {\n super(CfsFaces);\n this.CfsFaces = CfsFaces;\n this.type = 2665983363;\n }\n }\n IFC2X32.IfcOpenShell = IfcOpenShell;\n class IfcOrientedEdge extends IfcEdge {\n constructor(EdgeElement, Orientation) {\n super(new Handle(0), new Handle(0));\n this.EdgeElement = EdgeElement;\n this.Orientation = Orientation;\n this.type = 1029017970;\n }\n }\n IFC2X32.IfcOrientedEdge = IfcOrientedEdge;\n class IfcParameterizedProfileDef extends IfcProfileDef {\n constructor(ProfileType, ProfileName, Position) {\n super(ProfileType, ProfileName);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.type = 2529465313;\n }\n }\n IFC2X32.IfcParameterizedProfileDef = IfcParameterizedProfileDef;\n class IfcPath extends IfcTopologicalRepresentationItem {\n constructor(EdgeList) {\n super();\n this.EdgeList = EdgeList;\n this.type = 2519244187;\n }\n }\n IFC2X32.IfcPath = IfcPath;\n class IfcPhysicalComplexQuantity extends IfcPhysicalQuantity {\n constructor(Name, Description, HasQuantities, Discrimination, Quality, Usage) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.HasQuantities = HasQuantities;\n this.Discrimination = Discrimination;\n this.Quality = Quality;\n this.Usage = Usage;\n this.type = 3021840470;\n }\n }\n IFC2X32.IfcPhysicalComplexQuantity = IfcPhysicalComplexQuantity;\n class IfcPixelTexture extends IfcSurfaceTexture {\n constructor(RepeatS, RepeatT, TextureType, TextureTransform, Width, Height, ColourComponents, Pixel) {\n super(RepeatS, RepeatT, TextureType, TextureTransform);\n this.RepeatS = RepeatS;\n this.RepeatT = RepeatT;\n this.TextureType = TextureType;\n this.TextureTransform = TextureTransform;\n this.Width = Width;\n this.Height = Height;\n this.ColourComponents = ColourComponents;\n this.Pixel = Pixel;\n this.type = 597895409;\n }\n }\n IFC2X32.IfcPixelTexture = IfcPixelTexture;\n class IfcPlacement extends IfcGeometricRepresentationItem {\n constructor(Location) {\n super();\n this.Location = Location;\n this.type = 2004835150;\n }\n }\n IFC2X32.IfcPlacement = IfcPlacement;\n class IfcPlanarExtent extends IfcGeometricRepresentationItem {\n constructor(SizeInX, SizeInY) {\n super();\n this.SizeInX = SizeInX;\n this.SizeInY = SizeInY;\n this.type = 1663979128;\n }\n }\n IFC2X32.IfcPlanarExtent = IfcPlanarExtent;\n class IfcPoint extends IfcGeometricRepresentationItem {\n constructor() {\n super();\n this.type = 2067069095;\n }\n }\n IFC2X32.IfcPoint = IfcPoint;\n class IfcPointOnCurve extends IfcPoint {\n constructor(BasisCurve, PointParameter) {\n super();\n this.BasisCurve = BasisCurve;\n this.PointParameter = PointParameter;\n this.type = 4022376103;\n }\n }\n IFC2X32.IfcPointOnCurve = IfcPointOnCurve;\n class IfcPointOnSurface extends IfcPoint {\n constructor(BasisSurface, PointParameterU, PointParameterV) {\n super();\n this.BasisSurface = BasisSurface;\n this.PointParameterU = PointParameterU;\n this.PointParameterV = PointParameterV;\n this.type = 1423911732;\n }\n }\n IFC2X32.IfcPointOnSurface = IfcPointOnSurface;\n class IfcPolyLoop extends IfcLoop {\n constructor(Polygon) {\n super();\n this.Polygon = Polygon;\n this.type = 2924175390;\n }\n }\n IFC2X32.IfcPolyLoop = IfcPolyLoop;\n class IfcPolygonalBoundedHalfSpace extends IfcHalfSpaceSolid {\n constructor(BaseSurface, AgreementFlag, Position, PolygonalBoundary) {\n super(BaseSurface, AgreementFlag);\n this.BaseSurface = BaseSurface;\n this.AgreementFlag = AgreementFlag;\n this.Position = Position;\n this.PolygonalBoundary = PolygonalBoundary;\n this.type = 2775532180;\n }\n }\n IFC2X32.IfcPolygonalBoundedHalfSpace = IfcPolygonalBoundedHalfSpace;\n class IfcPreDefinedColour extends IfcPreDefinedItem {\n constructor(Name) {\n super(Name);\n this.Name = Name;\n this.type = 759155922;\n }\n }\n IFC2X32.IfcPreDefinedColour = IfcPreDefinedColour;\n class IfcPreDefinedCurveFont extends IfcPreDefinedItem {\n constructor(Name) {\n super(Name);\n this.Name = Name;\n this.type = 2559016684;\n }\n }\n IFC2X32.IfcPreDefinedCurveFont = IfcPreDefinedCurveFont;\n class IfcPreDefinedDimensionSymbol extends IfcPreDefinedSymbol {\n constructor(Name) {\n super(Name);\n this.Name = Name;\n this.type = 433424934;\n }\n }\n IFC2X32.IfcPreDefinedDimensionSymbol = IfcPreDefinedDimensionSymbol;\n class IfcPreDefinedPointMarkerSymbol extends IfcPreDefinedSymbol {\n constructor(Name) {\n super(Name);\n this.Name = Name;\n this.type = 179317114;\n }\n }\n IFC2X32.IfcPreDefinedPointMarkerSymbol = IfcPreDefinedPointMarkerSymbol;\n class IfcProductDefinitionShape extends IfcProductRepresentation {\n constructor(Name, Description, Representations) {\n super(Name, Description, Representations);\n this.Name = Name;\n this.Description = Description;\n this.Representations = Representations;\n this.type = 673634403;\n }\n }\n IFC2X32.IfcProductDefinitionShape = IfcProductDefinitionShape;\n class IfcPropertyBoundedValue extends IfcSimpleProperty {\n constructor(Name, Description, UpperBoundValue, LowerBoundValue, Unit) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.UpperBoundValue = UpperBoundValue;\n this.LowerBoundValue = LowerBoundValue;\n this.Unit = Unit;\n this.type = 871118103;\n }\n }\n IFC2X32.IfcPropertyBoundedValue = IfcPropertyBoundedValue;\n class IfcPropertyDefinition extends IfcRoot {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 1680319473;\n }\n }\n IFC2X32.IfcPropertyDefinition = IfcPropertyDefinition;\n class IfcPropertyEnumeratedValue extends IfcSimpleProperty {\n constructor(Name, Description, EnumerationValues, EnumerationReference) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.EnumerationValues = EnumerationValues;\n this.EnumerationReference = EnumerationReference;\n this.type = 4166981789;\n }\n }\n IFC2X32.IfcPropertyEnumeratedValue = IfcPropertyEnumeratedValue;\n class IfcPropertyListValue extends IfcSimpleProperty {\n constructor(Name, Description, ListValues, Unit) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.ListValues = ListValues;\n this.Unit = Unit;\n this.type = 2752243245;\n }\n }\n IFC2X32.IfcPropertyListValue = IfcPropertyListValue;\n class IfcPropertyReferenceValue extends IfcSimpleProperty {\n constructor(Name, Description, UsageName, PropertyReference) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.UsageName = UsageName;\n this.PropertyReference = PropertyReference;\n this.type = 941946838;\n }\n }\n IFC2X32.IfcPropertyReferenceValue = IfcPropertyReferenceValue;\n class IfcPropertySetDefinition extends IfcPropertyDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 3357820518;\n }\n }\n IFC2X32.IfcPropertySetDefinition = IfcPropertySetDefinition;\n class IfcPropertySingleValue extends IfcSimpleProperty {\n constructor(Name, Description, NominalValue, Unit) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.NominalValue = NominalValue;\n this.Unit = Unit;\n this.type = 3650150729;\n }\n }\n IFC2X32.IfcPropertySingleValue = IfcPropertySingleValue;\n class IfcPropertyTableValue extends IfcSimpleProperty {\n constructor(Name, Description, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.DefiningValues = DefiningValues;\n this.DefinedValues = DefinedValues;\n this.Expression = Expression;\n this.DefiningUnit = DefiningUnit;\n this.DefinedUnit = DefinedUnit;\n this.type = 110355661;\n }\n }\n IFC2X32.IfcPropertyTableValue = IfcPropertyTableValue;\n class IfcRectangleProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, XDim, YDim) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.XDim = XDim;\n this.YDim = YDim;\n this.type = 3615266464;\n }\n }\n IFC2X32.IfcRectangleProfileDef = IfcRectangleProfileDef;\n class IfcRegularTimeSeries extends IfcTimeSeries {\n constructor(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values) {\n super(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit);\n this.Name = Name;\n this.Description = Description;\n this.StartTime = StartTime;\n this.EndTime = EndTime;\n this.TimeSeriesDataType = TimeSeriesDataType;\n this.DataOrigin = DataOrigin;\n this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n this.Unit = Unit;\n this.TimeStep = TimeStep;\n this.Values = Values;\n this.type = 3413951693;\n }\n }\n IFC2X32.IfcRegularTimeSeries = IfcRegularTimeSeries;\n class IfcReinforcementDefinitionProperties extends IfcPropertySetDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.DefinitionType = DefinitionType;\n this.ReinforcementSectionDefinitions = ReinforcementSectionDefinitions;\n this.type = 3765753017;\n }\n }\n IFC2X32.IfcReinforcementDefinitionProperties = IfcReinforcementDefinitionProperties;\n class IfcRelationship extends IfcRoot {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 478536968;\n }\n }\n IFC2X32.IfcRelationship = IfcRelationship;\n class IfcRoundedRectangleProfileDef extends IfcRectangleProfileDef {\n constructor(ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius) {\n super(ProfileType, ProfileName, Position, XDim, YDim);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.XDim = XDim;\n this.YDim = YDim;\n this.RoundingRadius = RoundingRadius;\n this.type = 2778083089;\n }\n }\n IFC2X32.IfcRoundedRectangleProfileDef = IfcRoundedRectangleProfileDef;\n class IfcSectionedSpine extends IfcGeometricRepresentationItem {\n constructor(SpineCurve, CrossSections, CrossSectionPositions) {\n super();\n this.SpineCurve = SpineCurve;\n this.CrossSections = CrossSections;\n this.CrossSectionPositions = CrossSectionPositions;\n this.type = 1509187699;\n }\n }\n IFC2X32.IfcSectionedSpine = IfcSectionedSpine;\n class IfcServiceLifeFactor extends IfcPropertySetDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description, PredefinedType, UpperValue, MostUsedValue, LowerValue) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.PredefinedType = PredefinedType;\n this.UpperValue = UpperValue;\n this.MostUsedValue = MostUsedValue;\n this.LowerValue = LowerValue;\n this.type = 2411513650;\n }\n }\n IFC2X32.IfcServiceLifeFactor = IfcServiceLifeFactor;\n class IfcShellBasedSurfaceModel extends IfcGeometricRepresentationItem {\n constructor(SbsmBoundary) {\n super();\n this.SbsmBoundary = SbsmBoundary;\n this.type = 4124623270;\n }\n }\n IFC2X32.IfcShellBasedSurfaceModel = IfcShellBasedSurfaceModel;\n class IfcSlippageConnectionCondition extends IfcStructuralConnectionCondition {\n constructor(Name, SlippageX, SlippageY, SlippageZ) {\n super(Name);\n this.Name = Name;\n this.SlippageX = SlippageX;\n this.SlippageY = SlippageY;\n this.SlippageZ = SlippageZ;\n this.type = 2609359061;\n }\n }\n IFC2X32.IfcSlippageConnectionCondition = IfcSlippageConnectionCondition;\n class IfcSolidModel extends IfcGeometricRepresentationItem {\n constructor() {\n super();\n this.type = 723233188;\n }\n }\n IFC2X32.IfcSolidModel = IfcSolidModel;\n class IfcSoundProperties extends IfcPropertySetDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description, IsAttenuating, SoundScale, SoundValues) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.IsAttenuating = IsAttenuating;\n this.SoundScale = SoundScale;\n this.SoundValues = SoundValues;\n this.type = 2485662743;\n }\n }\n IFC2X32.IfcSoundProperties = IfcSoundProperties;\n class IfcSoundValue extends IfcPropertySetDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description, SoundLevelTimeSeries, Frequency, SoundLevelSingleValue) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.SoundLevelTimeSeries = SoundLevelTimeSeries;\n this.Frequency = Frequency;\n this.SoundLevelSingleValue = SoundLevelSingleValue;\n this.type = 1202362311;\n }\n }\n IFC2X32.IfcSoundValue = IfcSoundValue;\n class IfcSpaceThermalLoadProperties extends IfcPropertySetDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableValueRatio, ThermalLoadSource, PropertySource, SourceDescription, MaximumValue, MinimumValue, ThermalLoadTimeSeriesValues, UserDefinedThermalLoadSource, UserDefinedPropertySource, ThermalLoadType) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableValueRatio = ApplicableValueRatio;\n this.ThermalLoadSource = ThermalLoadSource;\n this.PropertySource = PropertySource;\n this.SourceDescription = SourceDescription;\n this.MaximumValue = MaximumValue;\n this.MinimumValue = MinimumValue;\n this.ThermalLoadTimeSeriesValues = ThermalLoadTimeSeriesValues;\n this.UserDefinedThermalLoadSource = UserDefinedThermalLoadSource;\n this.UserDefinedPropertySource = UserDefinedPropertySource;\n this.ThermalLoadType = ThermalLoadType;\n this.type = 390701378;\n }\n }\n IFC2X32.IfcSpaceThermalLoadProperties = IfcSpaceThermalLoadProperties;\n class IfcStructuralLoadLinearForce extends IfcStructuralLoadStatic {\n constructor(Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ) {\n super(Name);\n this.Name = Name;\n this.LinearForceX = LinearForceX;\n this.LinearForceY = LinearForceY;\n this.LinearForceZ = LinearForceZ;\n this.LinearMomentX = LinearMomentX;\n this.LinearMomentY = LinearMomentY;\n this.LinearMomentZ = LinearMomentZ;\n this.type = 1595516126;\n }\n }\n IFC2X32.IfcStructuralLoadLinearForce = IfcStructuralLoadLinearForce;\n class IfcStructuralLoadPlanarForce extends IfcStructuralLoadStatic {\n constructor(Name, PlanarForceX, PlanarForceY, PlanarForceZ) {\n super(Name);\n this.Name = Name;\n this.PlanarForceX = PlanarForceX;\n this.PlanarForceY = PlanarForceY;\n this.PlanarForceZ = PlanarForceZ;\n this.type = 2668620305;\n }\n }\n IFC2X32.IfcStructuralLoadPlanarForce = IfcStructuralLoadPlanarForce;\n class IfcStructuralLoadSingleDisplacement extends IfcStructuralLoadStatic {\n constructor(Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ) {\n super(Name);\n this.Name = Name;\n this.DisplacementX = DisplacementX;\n this.DisplacementY = DisplacementY;\n this.DisplacementZ = DisplacementZ;\n this.RotationalDisplacementRX = RotationalDisplacementRX;\n this.RotationalDisplacementRY = RotationalDisplacementRY;\n this.RotationalDisplacementRZ = RotationalDisplacementRZ;\n this.type = 2473145415;\n }\n }\n IFC2X32.IfcStructuralLoadSingleDisplacement = IfcStructuralLoadSingleDisplacement;\n class IfcStructuralLoadSingleDisplacementDistortion extends IfcStructuralLoadSingleDisplacement {\n constructor(Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion) {\n super(Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ);\n this.Name = Name;\n this.DisplacementX = DisplacementX;\n this.DisplacementY = DisplacementY;\n this.DisplacementZ = DisplacementZ;\n this.RotationalDisplacementRX = RotationalDisplacementRX;\n this.RotationalDisplacementRY = RotationalDisplacementRY;\n this.RotationalDisplacementRZ = RotationalDisplacementRZ;\n this.Distortion = Distortion;\n this.type = 1973038258;\n }\n }\n IFC2X32.IfcStructuralLoadSingleDisplacementDistortion = IfcStructuralLoadSingleDisplacementDistortion;\n class IfcStructuralLoadSingleForce extends IfcStructuralLoadStatic {\n constructor(Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ) {\n super(Name);\n this.Name = Name;\n this.ForceX = ForceX;\n this.ForceY = ForceY;\n this.ForceZ = ForceZ;\n this.MomentX = MomentX;\n this.MomentY = MomentY;\n this.MomentZ = MomentZ;\n this.type = 1597423693;\n }\n }\n IFC2X32.IfcStructuralLoadSingleForce = IfcStructuralLoadSingleForce;\n class IfcStructuralLoadSingleForceWarping extends IfcStructuralLoadSingleForce {\n constructor(Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment) {\n super(Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ);\n this.Name = Name;\n this.ForceX = ForceX;\n this.ForceY = ForceY;\n this.ForceZ = ForceZ;\n this.MomentX = MomentX;\n this.MomentY = MomentY;\n this.MomentZ = MomentZ;\n this.WarpingMoment = WarpingMoment;\n this.type = 1190533807;\n }\n }\n IFC2X32.IfcStructuralLoadSingleForceWarping = IfcStructuralLoadSingleForceWarping;\n class IfcStructuralProfileProperties extends IfcGeneralProfileProperties {\n constructor(ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea, TorsionalConstantX, MomentOfInertiaYZ, MomentOfInertiaY, MomentOfInertiaZ, WarpingConstant, ShearCentreZ, ShearCentreY, ShearDeformationAreaZ, ShearDeformationAreaY, MaximumSectionModulusY, MinimumSectionModulusY, MaximumSectionModulusZ, MinimumSectionModulusZ, TorsionalSectionModulus, CentreOfGravityInX, CentreOfGravityInY) {\n super(ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea);\n this.ProfileName = ProfileName;\n this.ProfileDefinition = ProfileDefinition;\n this.PhysicalWeight = PhysicalWeight;\n this.Perimeter = Perimeter;\n this.MinimumPlateThickness = MinimumPlateThickness;\n this.MaximumPlateThickness = MaximumPlateThickness;\n this.CrossSectionArea = CrossSectionArea;\n this.TorsionalConstantX = TorsionalConstantX;\n this.MomentOfInertiaYZ = MomentOfInertiaYZ;\n this.MomentOfInertiaY = MomentOfInertiaY;\n this.MomentOfInertiaZ = MomentOfInertiaZ;\n this.WarpingConstant = WarpingConstant;\n this.ShearCentreZ = ShearCentreZ;\n this.ShearCentreY = ShearCentreY;\n this.ShearDeformationAreaZ = ShearDeformationAreaZ;\n this.ShearDeformationAreaY = ShearDeformationAreaY;\n this.MaximumSectionModulusY = MaximumSectionModulusY;\n this.MinimumSectionModulusY = MinimumSectionModulusY;\n this.MaximumSectionModulusZ = MaximumSectionModulusZ;\n this.MinimumSectionModulusZ = MinimumSectionModulusZ;\n this.TorsionalSectionModulus = TorsionalSectionModulus;\n this.CentreOfGravityInX = CentreOfGravityInX;\n this.CentreOfGravityInY = CentreOfGravityInY;\n this.type = 3843319758;\n }\n }\n IFC2X32.IfcStructuralProfileProperties = IfcStructuralProfileProperties;\n class IfcStructuralSteelProfileProperties extends IfcStructuralProfileProperties {\n constructor(ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea, TorsionalConstantX, MomentOfInertiaYZ, MomentOfInertiaY, MomentOfInertiaZ, WarpingConstant, ShearCentreZ, ShearCentreY, ShearDeformationAreaZ, ShearDeformationAreaY, MaximumSectionModulusY, MinimumSectionModulusY, MaximumSectionModulusZ, MinimumSectionModulusZ, TorsionalSectionModulus, CentreOfGravityInX, CentreOfGravityInY, ShearAreaZ, ShearAreaY, PlasticShapeFactorY, PlasticShapeFactorZ) {\n super(ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea, TorsionalConstantX, MomentOfInertiaYZ, MomentOfInertiaY, MomentOfInertiaZ, WarpingConstant, ShearCentreZ, ShearCentreY, ShearDeformationAreaZ, ShearDeformationAreaY, MaximumSectionModulusY, MinimumSectionModulusY, MaximumSectionModulusZ, MinimumSectionModulusZ, TorsionalSectionModulus, CentreOfGravityInX, CentreOfGravityInY);\n this.ProfileName = ProfileName;\n this.ProfileDefinition = ProfileDefinition;\n this.PhysicalWeight = PhysicalWeight;\n this.Perimeter = Perimeter;\n this.MinimumPlateThickness = MinimumPlateThickness;\n this.MaximumPlateThickness = MaximumPlateThickness;\n this.CrossSectionArea = CrossSectionArea;\n this.TorsionalConstantX = TorsionalConstantX;\n this.MomentOfInertiaYZ = MomentOfInertiaYZ;\n this.MomentOfInertiaY = MomentOfInertiaY;\n this.MomentOfInertiaZ = MomentOfInertiaZ;\n this.WarpingConstant = WarpingConstant;\n this.ShearCentreZ = ShearCentreZ;\n this.ShearCentreY = ShearCentreY;\n this.ShearDeformationAreaZ = ShearDeformationAreaZ;\n this.ShearDeformationAreaY = ShearDeformationAreaY;\n this.MaximumSectionModulusY = MaximumSectionModulusY;\n this.MinimumSectionModulusY = MinimumSectionModulusY;\n this.MaximumSectionModulusZ = MaximumSectionModulusZ;\n this.MinimumSectionModulusZ = MinimumSectionModulusZ;\n this.TorsionalSectionModulus = TorsionalSectionModulus;\n this.CentreOfGravityInX = CentreOfGravityInX;\n this.CentreOfGravityInY = CentreOfGravityInY;\n this.ShearAreaZ = ShearAreaZ;\n this.ShearAreaY = ShearAreaY;\n this.PlasticShapeFactorY = PlasticShapeFactorY;\n this.PlasticShapeFactorZ = PlasticShapeFactorZ;\n this.type = 3653947884;\n }\n }\n IFC2X32.IfcStructuralSteelProfileProperties = IfcStructuralSteelProfileProperties;\n class IfcSubedge extends IfcEdge {\n constructor(EdgeStart, EdgeEnd, ParentEdge) {\n super(EdgeStart, EdgeEnd);\n this.EdgeStart = EdgeStart;\n this.EdgeEnd = EdgeEnd;\n this.ParentEdge = ParentEdge;\n this.type = 2233826070;\n }\n }\n IFC2X32.IfcSubedge = IfcSubedge;\n class IfcSurface extends IfcGeometricRepresentationItem {\n constructor() {\n super();\n this.type = 2513912981;\n }\n }\n IFC2X32.IfcSurface = IfcSurface;\n class IfcSurfaceStyleRendering extends IfcSurfaceStyleShading {\n constructor(SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod) {\n super(SurfaceColour);\n this.SurfaceColour = SurfaceColour;\n this.Transparency = Transparency;\n this.DiffuseColour = DiffuseColour;\n this.TransmissionColour = TransmissionColour;\n this.DiffuseTransmissionColour = DiffuseTransmissionColour;\n this.ReflectionColour = ReflectionColour;\n this.SpecularColour = SpecularColour;\n this.SpecularHighlight = SpecularHighlight;\n this.ReflectanceMethod = ReflectanceMethod;\n this.type = 1878645084;\n }\n }\n IFC2X32.IfcSurfaceStyleRendering = IfcSurfaceStyleRendering;\n class IfcSweptAreaSolid extends IfcSolidModel {\n constructor(SweptArea, Position) {\n super();\n this.SweptArea = SweptArea;\n this.Position = Position;\n this.type = 2247615214;\n }\n }\n IFC2X32.IfcSweptAreaSolid = IfcSweptAreaSolid;\n class IfcSweptDiskSolid extends IfcSolidModel {\n constructor(Directrix, Radius, InnerRadius, StartParam, EndParam) {\n super();\n this.Directrix = Directrix;\n this.Radius = Radius;\n this.InnerRadius = InnerRadius;\n this.StartParam = StartParam;\n this.EndParam = EndParam;\n this.type = 1260650574;\n }\n }\n IFC2X32.IfcSweptDiskSolid = IfcSweptDiskSolid;\n class IfcSweptSurface extends IfcSurface {\n constructor(SweptCurve, Position) {\n super();\n this.SweptCurve = SweptCurve;\n this.Position = Position;\n this.type = 230924584;\n }\n }\n IFC2X32.IfcSweptSurface = IfcSweptSurface;\n class IfcTShapeProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope, CentreOfGravityInY) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.Depth = Depth;\n this.FlangeWidth = FlangeWidth;\n this.WebThickness = WebThickness;\n this.FlangeThickness = FlangeThickness;\n this.FilletRadius = FilletRadius;\n this.FlangeEdgeRadius = FlangeEdgeRadius;\n this.WebEdgeRadius = WebEdgeRadius;\n this.WebSlope = WebSlope;\n this.FlangeSlope = FlangeSlope;\n this.CentreOfGravityInY = CentreOfGravityInY;\n this.type = 3071757647;\n }\n }\n IFC2X32.IfcTShapeProfileDef = IfcTShapeProfileDef;\n class IfcTerminatorSymbol extends IfcAnnotationSymbolOccurrence {\n constructor(Item, Styles, Name, AnnotatedCurve) {\n super(Item, Styles, Name);\n this.Item = Item;\n this.Styles = Styles;\n this.Name = Name;\n this.AnnotatedCurve = AnnotatedCurve;\n this.type = 3028897424;\n }\n }\n IFC2X32.IfcTerminatorSymbol = IfcTerminatorSymbol;\n class IfcTextLiteral extends IfcGeometricRepresentationItem {\n constructor(Literal, Placement, Path) {\n super();\n this.Literal = Literal;\n this.Placement = Placement;\n this.Path = Path;\n this.type = 4282788508;\n }\n }\n IFC2X32.IfcTextLiteral = IfcTextLiteral;\n class IfcTextLiteralWithExtent extends IfcTextLiteral {\n constructor(Literal, Placement, Path, Extent, BoxAlignment) {\n super(Literal, Placement, Path);\n this.Literal = Literal;\n this.Placement = Placement;\n this.Path = Path;\n this.Extent = Extent;\n this.BoxAlignment = BoxAlignment;\n this.type = 3124975700;\n }\n }\n IFC2X32.IfcTextLiteralWithExtent = IfcTextLiteralWithExtent;\n class IfcTrapeziumProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.BottomXDim = BottomXDim;\n this.TopXDim = TopXDim;\n this.YDim = YDim;\n this.TopXOffset = TopXOffset;\n this.type = 2715220739;\n }\n }\n IFC2X32.IfcTrapeziumProfileDef = IfcTrapeziumProfileDef;\n class IfcTwoDirectionRepeatFactor extends IfcOneDirectionRepeatFactor {\n constructor(RepeatFactor, SecondRepeatFactor) {\n super(RepeatFactor);\n this.RepeatFactor = RepeatFactor;\n this.SecondRepeatFactor = SecondRepeatFactor;\n this.type = 1345879162;\n }\n }\n IFC2X32.IfcTwoDirectionRepeatFactor = IfcTwoDirectionRepeatFactor;\n class IfcTypeObject extends IfcObjectDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.type = 1628702193;\n }\n }\n IFC2X32.IfcTypeObject = IfcTypeObject;\n class IfcTypeProduct extends IfcTypeObject {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.type = 2347495698;\n }\n }\n IFC2X32.IfcTypeProduct = IfcTypeProduct;\n class IfcUShapeProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope, CentreOfGravityInX) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.Depth = Depth;\n this.FlangeWidth = FlangeWidth;\n this.WebThickness = WebThickness;\n this.FlangeThickness = FlangeThickness;\n this.FilletRadius = FilletRadius;\n this.EdgeRadius = EdgeRadius;\n this.FlangeSlope = FlangeSlope;\n this.CentreOfGravityInX = CentreOfGravityInX;\n this.type = 427810014;\n }\n }\n IFC2X32.IfcUShapeProfileDef = IfcUShapeProfileDef;\n class IfcVector extends IfcGeometricRepresentationItem {\n constructor(Orientation, Magnitude) {\n super();\n this.Orientation = Orientation;\n this.Magnitude = Magnitude;\n this.type = 1417489154;\n }\n }\n IFC2X32.IfcVector = IfcVector;\n class IfcVertexLoop extends IfcLoop {\n constructor(LoopVertex) {\n super();\n this.LoopVertex = LoopVertex;\n this.type = 2759199220;\n }\n }\n IFC2X32.IfcVertexLoop = IfcVertexLoop;\n class IfcWindowLiningProperties extends IfcPropertySetDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.LiningDepth = LiningDepth;\n this.LiningThickness = LiningThickness;\n this.TransomThickness = TransomThickness;\n this.MullionThickness = MullionThickness;\n this.FirstTransomOffset = FirstTransomOffset;\n this.SecondTransomOffset = SecondTransomOffset;\n this.FirstMullionOffset = FirstMullionOffset;\n this.SecondMullionOffset = SecondMullionOffset;\n this.ShapeAspectStyle = ShapeAspectStyle;\n this.type = 336235671;\n }\n }\n IFC2X32.IfcWindowLiningProperties = IfcWindowLiningProperties;\n class IfcWindowPanelProperties extends IfcPropertySetDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.OperationType = OperationType;\n this.PanelPosition = PanelPosition;\n this.FrameDepth = FrameDepth;\n this.FrameThickness = FrameThickness;\n this.ShapeAspectStyle = ShapeAspectStyle;\n this.type = 512836454;\n }\n }\n IFC2X32.IfcWindowPanelProperties = IfcWindowPanelProperties;\n class IfcWindowStyle extends IfcTypeProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ConstructionType, OperationType, ParameterTakesPrecedence, Sizeable) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ConstructionType = ConstructionType;\n this.OperationType = OperationType;\n this.ParameterTakesPrecedence = ParameterTakesPrecedence;\n this.Sizeable = Sizeable;\n this.type = 1299126871;\n }\n }\n IFC2X32.IfcWindowStyle = IfcWindowStyle;\n class IfcZShapeProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.Depth = Depth;\n this.FlangeWidth = FlangeWidth;\n this.WebThickness = WebThickness;\n this.FlangeThickness = FlangeThickness;\n this.FilletRadius = FilletRadius;\n this.EdgeRadius = EdgeRadius;\n this.type = 2543172580;\n }\n }\n IFC2X32.IfcZShapeProfileDef = IfcZShapeProfileDef;\n class IfcAnnotationCurveOccurrence extends IfcAnnotationOccurrence {\n constructor(Item, Styles, Name) {\n super(Item, Styles, Name);\n this.Item = Item;\n this.Styles = Styles;\n this.Name = Name;\n this.type = 3288037868;\n }\n }\n IFC2X32.IfcAnnotationCurveOccurrence = IfcAnnotationCurveOccurrence;\n class IfcAnnotationFillArea extends IfcGeometricRepresentationItem {\n constructor(OuterBoundary, InnerBoundaries) {\n super();\n this.OuterBoundary = OuterBoundary;\n this.InnerBoundaries = InnerBoundaries;\n this.type = 669184980;\n }\n }\n IFC2X32.IfcAnnotationFillArea = IfcAnnotationFillArea;\n class IfcAnnotationFillAreaOccurrence extends IfcAnnotationOccurrence {\n constructor(Item, Styles, Name, FillStyleTarget, GlobalOrLocal) {\n super(Item, Styles, Name);\n this.Item = Item;\n this.Styles = Styles;\n this.Name = Name;\n this.FillStyleTarget = FillStyleTarget;\n this.GlobalOrLocal = GlobalOrLocal;\n this.type = 2265737646;\n }\n }\n IFC2X32.IfcAnnotationFillAreaOccurrence = IfcAnnotationFillAreaOccurrence;\n class IfcAnnotationSurface extends IfcGeometricRepresentationItem {\n constructor(Item, TextureCoordinates) {\n super();\n this.Item = Item;\n this.TextureCoordinates = TextureCoordinates;\n this.type = 1302238472;\n }\n }\n IFC2X32.IfcAnnotationSurface = IfcAnnotationSurface;\n class IfcAxis1Placement extends IfcPlacement {\n constructor(Location, Axis) {\n super(Location);\n this.Location = Location;\n this.Axis = Axis;\n this.type = 4261334040;\n }\n }\n IFC2X32.IfcAxis1Placement = IfcAxis1Placement;\n class IfcAxis2Placement2D extends IfcPlacement {\n constructor(Location, RefDirection) {\n super(Location);\n this.Location = Location;\n this.RefDirection = RefDirection;\n this.type = 3125803723;\n }\n }\n IFC2X32.IfcAxis2Placement2D = IfcAxis2Placement2D;\n class IfcAxis2Placement3D extends IfcPlacement {\n constructor(Location, Axis, RefDirection) {\n super(Location);\n this.Location = Location;\n this.Axis = Axis;\n this.RefDirection = RefDirection;\n this.type = 2740243338;\n }\n }\n IFC2X32.IfcAxis2Placement3D = IfcAxis2Placement3D;\n class IfcBooleanResult extends IfcGeometricRepresentationItem {\n constructor(Operator, FirstOperand, SecondOperand) {\n super();\n this.Operator = Operator;\n this.FirstOperand = FirstOperand;\n this.SecondOperand = SecondOperand;\n this.type = 2736907675;\n }\n }\n IFC2X32.IfcBooleanResult = IfcBooleanResult;\n class IfcBoundedSurface extends IfcSurface {\n constructor() {\n super();\n this.type = 4182860854;\n }\n }\n IFC2X32.IfcBoundedSurface = IfcBoundedSurface;\n class IfcBoundingBox extends IfcGeometricRepresentationItem {\n constructor(Corner, XDim, YDim, ZDim) {\n super();\n this.Corner = Corner;\n this.XDim = XDim;\n this.YDim = YDim;\n this.ZDim = ZDim;\n this.type = 2581212453;\n }\n }\n IFC2X32.IfcBoundingBox = IfcBoundingBox;\n class IfcBoxedHalfSpace extends IfcHalfSpaceSolid {\n constructor(BaseSurface, AgreementFlag, Enclosure) {\n super(BaseSurface, AgreementFlag);\n this.BaseSurface = BaseSurface;\n this.AgreementFlag = AgreementFlag;\n this.Enclosure = Enclosure;\n this.type = 2713105998;\n }\n }\n IFC2X32.IfcBoxedHalfSpace = IfcBoxedHalfSpace;\n class IfcCShapeProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius, CentreOfGravityInX) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.Depth = Depth;\n this.Width = Width;\n this.WallThickness = WallThickness;\n this.Girth = Girth;\n this.InternalFilletRadius = InternalFilletRadius;\n this.CentreOfGravityInX = CentreOfGravityInX;\n this.type = 2898889636;\n }\n }\n IFC2X32.IfcCShapeProfileDef = IfcCShapeProfileDef;\n class IfcCartesianPoint extends IfcPoint {\n constructor(Coordinates) {\n super();\n this.Coordinates = Coordinates;\n this.type = 1123145078;\n }\n }\n IFC2X32.IfcCartesianPoint = IfcCartesianPoint;\n class IfcCartesianTransformationOperator extends IfcGeometricRepresentationItem {\n constructor(Axis1, Axis2, LocalOrigin, Scale) {\n super();\n this.Axis1 = Axis1;\n this.Axis2 = Axis2;\n this.LocalOrigin = LocalOrigin;\n this.Scale = Scale;\n this.type = 59481748;\n }\n }\n IFC2X32.IfcCartesianTransformationOperator = IfcCartesianTransformationOperator;\n class IfcCartesianTransformationOperator2D extends IfcCartesianTransformationOperator {\n constructor(Axis1, Axis2, LocalOrigin, Scale) {\n super(Axis1, Axis2, LocalOrigin, Scale);\n this.Axis1 = Axis1;\n this.Axis2 = Axis2;\n this.LocalOrigin = LocalOrigin;\n this.Scale = Scale;\n this.type = 3749851601;\n }\n }\n IFC2X32.IfcCartesianTransformationOperator2D = IfcCartesianTransformationOperator2D;\n class IfcCartesianTransformationOperator2DnonUniform extends IfcCartesianTransformationOperator2D {\n constructor(Axis1, Axis2, LocalOrigin, Scale, Scale2) {\n super(Axis1, Axis2, LocalOrigin, Scale);\n this.Axis1 = Axis1;\n this.Axis2 = Axis2;\n this.LocalOrigin = LocalOrigin;\n this.Scale = Scale;\n this.Scale2 = Scale2;\n this.type = 3486308946;\n }\n }\n IFC2X32.IfcCartesianTransformationOperator2DnonUniform = IfcCartesianTransformationOperator2DnonUniform;\n class IfcCartesianTransformationOperator3D extends IfcCartesianTransformationOperator {\n constructor(Axis1, Axis2, LocalOrigin, Scale, Axis3) {\n super(Axis1, Axis2, LocalOrigin, Scale);\n this.Axis1 = Axis1;\n this.Axis2 = Axis2;\n this.LocalOrigin = LocalOrigin;\n this.Scale = Scale;\n this.Axis3 = Axis3;\n this.type = 3331915920;\n }\n }\n IFC2X32.IfcCartesianTransformationOperator3D = IfcCartesianTransformationOperator3D;\n class IfcCartesianTransformationOperator3DnonUniform extends IfcCartesianTransformationOperator3D {\n constructor(Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3) {\n super(Axis1, Axis2, LocalOrigin, Scale, Axis3);\n this.Axis1 = Axis1;\n this.Axis2 = Axis2;\n this.LocalOrigin = LocalOrigin;\n this.Scale = Scale;\n this.Axis3 = Axis3;\n this.Scale2 = Scale2;\n this.Scale3 = Scale3;\n this.type = 1416205885;\n }\n }\n IFC2X32.IfcCartesianTransformationOperator3DnonUniform = IfcCartesianTransformationOperator3DnonUniform;\n class IfcCircleProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, Radius) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.Radius = Radius;\n this.type = 1383045692;\n }\n }\n IFC2X32.IfcCircleProfileDef = IfcCircleProfileDef;\n class IfcClosedShell extends IfcConnectedFaceSet {\n constructor(CfsFaces) {\n super(CfsFaces);\n this.CfsFaces = CfsFaces;\n this.type = 2205249479;\n }\n }\n IFC2X32.IfcClosedShell = IfcClosedShell;\n class IfcCompositeCurveSegment extends IfcGeometricRepresentationItem {\n constructor(Transition, SameSense, ParentCurve) {\n super();\n this.Transition = Transition;\n this.SameSense = SameSense;\n this.ParentCurve = ParentCurve;\n this.type = 2485617015;\n }\n }\n IFC2X32.IfcCompositeCurveSegment = IfcCompositeCurveSegment;\n class IfcCraneRailAShapeProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, OverallHeight, BaseWidth2, Radius, HeadWidth, HeadDepth2, HeadDepth3, WebThickness, BaseWidth4, BaseDepth1, BaseDepth2, BaseDepth3, CentreOfGravityInY) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.OverallHeight = OverallHeight;\n this.BaseWidth2 = BaseWidth2;\n this.Radius = Radius;\n this.HeadWidth = HeadWidth;\n this.HeadDepth2 = HeadDepth2;\n this.HeadDepth3 = HeadDepth3;\n this.WebThickness = WebThickness;\n this.BaseWidth4 = BaseWidth4;\n this.BaseDepth1 = BaseDepth1;\n this.BaseDepth2 = BaseDepth2;\n this.BaseDepth3 = BaseDepth3;\n this.CentreOfGravityInY = CentreOfGravityInY;\n this.type = 4133800736;\n }\n }\n IFC2X32.IfcCraneRailAShapeProfileDef = IfcCraneRailAShapeProfileDef;\n class IfcCraneRailFShapeProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, OverallHeight, HeadWidth, Radius, HeadDepth2, HeadDepth3, WebThickness, BaseDepth1, BaseDepth2, CentreOfGravityInY) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.OverallHeight = OverallHeight;\n this.HeadWidth = HeadWidth;\n this.Radius = Radius;\n this.HeadDepth2 = HeadDepth2;\n this.HeadDepth3 = HeadDepth3;\n this.WebThickness = WebThickness;\n this.BaseDepth1 = BaseDepth1;\n this.BaseDepth2 = BaseDepth2;\n this.CentreOfGravityInY = CentreOfGravityInY;\n this.type = 194851669;\n }\n }\n IFC2X32.IfcCraneRailFShapeProfileDef = IfcCraneRailFShapeProfileDef;\n class IfcCsgPrimitive3D extends IfcGeometricRepresentationItem {\n constructor(Position) {\n super();\n this.Position = Position;\n this.type = 2506170314;\n }\n }\n IFC2X32.IfcCsgPrimitive3D = IfcCsgPrimitive3D;\n class IfcCsgSolid extends IfcSolidModel {\n constructor(TreeRootExpression) {\n super();\n this.TreeRootExpression = TreeRootExpression;\n this.type = 2147822146;\n }\n }\n IFC2X32.IfcCsgSolid = IfcCsgSolid;\n class IfcCurve extends IfcGeometricRepresentationItem {\n constructor() {\n super();\n this.type = 2601014836;\n }\n }\n IFC2X32.IfcCurve = IfcCurve;\n class IfcCurveBoundedPlane extends IfcBoundedSurface {\n constructor(BasisSurface, OuterBoundary, InnerBoundaries) {\n super();\n this.BasisSurface = BasisSurface;\n this.OuterBoundary = OuterBoundary;\n this.InnerBoundaries = InnerBoundaries;\n this.type = 2827736869;\n }\n }\n IFC2X32.IfcCurveBoundedPlane = IfcCurveBoundedPlane;\n class IfcDefinedSymbol extends IfcGeometricRepresentationItem {\n constructor(Definition, Target) {\n super();\n this.Definition = Definition;\n this.Target = Target;\n this.type = 693772133;\n }\n }\n IFC2X32.IfcDefinedSymbol = IfcDefinedSymbol;\n class IfcDimensionCurve extends IfcAnnotationCurveOccurrence {\n constructor(Item, Styles, Name) {\n super(Item, Styles, Name);\n this.Item = Item;\n this.Styles = Styles;\n this.Name = Name;\n this.type = 606661476;\n }\n }\n IFC2X32.IfcDimensionCurve = IfcDimensionCurve;\n class IfcDimensionCurveTerminator extends IfcTerminatorSymbol {\n constructor(Item, Styles, Name, AnnotatedCurve, Role) {\n super(Item, Styles, Name, AnnotatedCurve);\n this.Item = Item;\n this.Styles = Styles;\n this.Name = Name;\n this.AnnotatedCurve = AnnotatedCurve;\n this.Role = Role;\n this.type = 4054601972;\n }\n }\n IFC2X32.IfcDimensionCurveTerminator = IfcDimensionCurveTerminator;\n class IfcDirection extends IfcGeometricRepresentationItem {\n constructor(DirectionRatios) {\n super();\n this.DirectionRatios = DirectionRatios;\n this.type = 32440307;\n }\n }\n IFC2X32.IfcDirection = IfcDirection;\n class IfcDoorLiningProperties extends IfcPropertySetDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.LiningDepth = LiningDepth;\n this.LiningThickness = LiningThickness;\n this.ThresholdDepth = ThresholdDepth;\n this.ThresholdThickness = ThresholdThickness;\n this.TransomThickness = TransomThickness;\n this.TransomOffset = TransomOffset;\n this.LiningOffset = LiningOffset;\n this.ThresholdOffset = ThresholdOffset;\n this.CasingThickness = CasingThickness;\n this.CasingDepth = CasingDepth;\n this.ShapeAspectStyle = ShapeAspectStyle;\n this.type = 2963535650;\n }\n }\n IFC2X32.IfcDoorLiningProperties = IfcDoorLiningProperties;\n class IfcDoorPanelProperties extends IfcPropertySetDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.PanelDepth = PanelDepth;\n this.PanelOperation = PanelOperation;\n this.PanelWidth = PanelWidth;\n this.PanelPosition = PanelPosition;\n this.ShapeAspectStyle = ShapeAspectStyle;\n this.type = 1714330368;\n }\n }\n IFC2X32.IfcDoorPanelProperties = IfcDoorPanelProperties;\n class IfcDoorStyle extends IfcTypeProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, OperationType, ConstructionType, ParameterTakesPrecedence, Sizeable) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.OperationType = OperationType;\n this.ConstructionType = ConstructionType;\n this.ParameterTakesPrecedence = ParameterTakesPrecedence;\n this.Sizeable = Sizeable;\n this.type = 526551008;\n }\n }\n IFC2X32.IfcDoorStyle = IfcDoorStyle;\n class IfcDraughtingCallout extends IfcGeometricRepresentationItem {\n constructor(Contents) {\n super();\n this.Contents = Contents;\n this.type = 3073041342;\n }\n }\n IFC2X32.IfcDraughtingCallout = IfcDraughtingCallout;\n class IfcDraughtingPreDefinedColour extends IfcPreDefinedColour {\n constructor(Name) {\n super(Name);\n this.Name = Name;\n this.type = 445594917;\n }\n }\n IFC2X32.IfcDraughtingPreDefinedColour = IfcDraughtingPreDefinedColour;\n class IfcDraughtingPreDefinedCurveFont extends IfcPreDefinedCurveFont {\n constructor(Name) {\n super(Name);\n this.Name = Name;\n this.type = 4006246654;\n }\n }\n IFC2X32.IfcDraughtingPreDefinedCurveFont = IfcDraughtingPreDefinedCurveFont;\n class IfcEdgeLoop extends IfcLoop {\n constructor(EdgeList) {\n super();\n this.EdgeList = EdgeList;\n this.type = 1472233963;\n }\n }\n IFC2X32.IfcEdgeLoop = IfcEdgeLoop;\n class IfcElementQuantity extends IfcPropertySetDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.MethodOfMeasurement = MethodOfMeasurement;\n this.Quantities = Quantities;\n this.type = 1883228015;\n }\n }\n IFC2X32.IfcElementQuantity = IfcElementQuantity;\n class IfcElementType extends IfcTypeProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 339256511;\n }\n }\n IFC2X32.IfcElementType = IfcElementType;\n class IfcElementarySurface extends IfcSurface {\n constructor(Position) {\n super();\n this.Position = Position;\n this.type = 2777663545;\n }\n }\n IFC2X32.IfcElementarySurface = IfcElementarySurface;\n class IfcEllipseProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.SemiAxis1 = SemiAxis1;\n this.SemiAxis2 = SemiAxis2;\n this.type = 2835456948;\n }\n }\n IFC2X32.IfcEllipseProfileDef = IfcEllipseProfileDef;\n class IfcEnergyProperties extends IfcPropertySetDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description, EnergySequence, UserDefinedEnergySequence) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.EnergySequence = EnergySequence;\n this.UserDefinedEnergySequence = UserDefinedEnergySequence;\n this.type = 80994333;\n }\n }\n IFC2X32.IfcEnergyProperties = IfcEnergyProperties;\n class IfcExtrudedAreaSolid extends IfcSweptAreaSolid {\n constructor(SweptArea, Position, ExtrudedDirection, Depth) {\n super(SweptArea, Position);\n this.SweptArea = SweptArea;\n this.Position = Position;\n this.ExtrudedDirection = ExtrudedDirection;\n this.Depth = Depth;\n this.type = 477187591;\n }\n }\n IFC2X32.IfcExtrudedAreaSolid = IfcExtrudedAreaSolid;\n class IfcFaceBasedSurfaceModel extends IfcGeometricRepresentationItem {\n constructor(FbsmFaces) {\n super();\n this.FbsmFaces = FbsmFaces;\n this.type = 2047409740;\n }\n }\n IFC2X32.IfcFaceBasedSurfaceModel = IfcFaceBasedSurfaceModel;\n class IfcFillAreaStyleHatching extends IfcGeometricRepresentationItem {\n constructor(HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle) {\n super();\n this.HatchLineAppearance = HatchLineAppearance;\n this.StartOfNextHatchLine = StartOfNextHatchLine;\n this.PointOfReferenceHatchLine = PointOfReferenceHatchLine;\n this.PatternStart = PatternStart;\n this.HatchLineAngle = HatchLineAngle;\n this.type = 374418227;\n }\n }\n IFC2X32.IfcFillAreaStyleHatching = IfcFillAreaStyleHatching;\n class IfcFillAreaStyleTileSymbolWithStyle extends IfcGeometricRepresentationItem {\n constructor(Symbol2) {\n super();\n this.Symbol = Symbol2;\n this.type = 4203026998;\n }\n }\n IFC2X32.IfcFillAreaStyleTileSymbolWithStyle = IfcFillAreaStyleTileSymbolWithStyle;\n class IfcFillAreaStyleTiles extends IfcGeometricRepresentationItem {\n constructor(TilingPattern, Tiles, TilingScale) {\n super();\n this.TilingPattern = TilingPattern;\n this.Tiles = Tiles;\n this.TilingScale = TilingScale;\n this.type = 315944413;\n }\n }\n IFC2X32.IfcFillAreaStyleTiles = IfcFillAreaStyleTiles;\n class IfcFluidFlowProperties extends IfcPropertySetDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description, PropertySource, FlowConditionTimeSeries, VelocityTimeSeries, FlowrateTimeSeries, Fluid, PressureTimeSeries, UserDefinedPropertySource, TemperatureSingleValue, WetBulbTemperatureSingleValue, WetBulbTemperatureTimeSeries, TemperatureTimeSeries, FlowrateSingleValue, FlowConditionSingleValue, VelocitySingleValue, PressureSingleValue) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.PropertySource = PropertySource;\n this.FlowConditionTimeSeries = FlowConditionTimeSeries;\n this.VelocityTimeSeries = VelocityTimeSeries;\n this.FlowrateTimeSeries = FlowrateTimeSeries;\n this.Fluid = Fluid;\n this.PressureTimeSeries = PressureTimeSeries;\n this.UserDefinedPropertySource = UserDefinedPropertySource;\n this.TemperatureSingleValue = TemperatureSingleValue;\n this.WetBulbTemperatureSingleValue = WetBulbTemperatureSingleValue;\n this.WetBulbTemperatureTimeSeries = WetBulbTemperatureTimeSeries;\n this.TemperatureTimeSeries = TemperatureTimeSeries;\n this.FlowrateSingleValue = FlowrateSingleValue;\n this.FlowConditionSingleValue = FlowConditionSingleValue;\n this.VelocitySingleValue = VelocitySingleValue;\n this.PressureSingleValue = PressureSingleValue;\n this.type = 3455213021;\n }\n }\n IFC2X32.IfcFluidFlowProperties = IfcFluidFlowProperties;\n class IfcFurnishingElementType extends IfcElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 4238390223;\n }\n }\n IFC2X32.IfcFurnishingElementType = IfcFurnishingElementType;\n class IfcFurnitureType extends IfcFurnishingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.AssemblyPlace = AssemblyPlace;\n this.type = 1268542332;\n }\n }\n IFC2X32.IfcFurnitureType = IfcFurnitureType;\n class IfcGeometricCurveSet extends IfcGeometricSet {\n constructor(Elements) {\n super(Elements);\n this.Elements = Elements;\n this.type = 987898635;\n }\n }\n IFC2X32.IfcGeometricCurveSet = IfcGeometricCurveSet;\n class IfcIShapeProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.OverallWidth = OverallWidth;\n this.OverallDepth = OverallDepth;\n this.WebThickness = WebThickness;\n this.FlangeThickness = FlangeThickness;\n this.FilletRadius = FilletRadius;\n this.type = 1484403080;\n }\n }\n IFC2X32.IfcIShapeProfileDef = IfcIShapeProfileDef;\n class IfcLShapeProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope, CentreOfGravityInX, CentreOfGravityInY) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.Depth = Depth;\n this.Width = Width;\n this.Thickness = Thickness;\n this.FilletRadius = FilletRadius;\n this.EdgeRadius = EdgeRadius;\n this.LegSlope = LegSlope;\n this.CentreOfGravityInX = CentreOfGravityInX;\n this.CentreOfGravityInY = CentreOfGravityInY;\n this.type = 572779678;\n }\n }\n IFC2X32.IfcLShapeProfileDef = IfcLShapeProfileDef;\n class IfcLine extends IfcCurve {\n constructor(Pnt, Dir) {\n super();\n this.Pnt = Pnt;\n this.Dir = Dir;\n this.type = 1281925730;\n }\n }\n IFC2X32.IfcLine = IfcLine;\n class IfcManifoldSolidBrep extends IfcSolidModel {\n constructor(Outer) {\n super();\n this.Outer = Outer;\n this.type = 1425443689;\n }\n }\n IFC2X32.IfcManifoldSolidBrep = IfcManifoldSolidBrep;\n class IfcObject extends IfcObjectDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.type = 3888040117;\n }\n }\n IFC2X32.IfcObject = IfcObject;\n class IfcOffsetCurve2D extends IfcCurve {\n constructor(BasisCurve, Distance, SelfIntersect) {\n super();\n this.BasisCurve = BasisCurve;\n this.Distance = Distance;\n this.SelfIntersect = SelfIntersect;\n this.type = 3388369263;\n }\n }\n IFC2X32.IfcOffsetCurve2D = IfcOffsetCurve2D;\n class IfcOffsetCurve3D extends IfcCurve {\n constructor(BasisCurve, Distance, SelfIntersect, RefDirection) {\n super();\n this.BasisCurve = BasisCurve;\n this.Distance = Distance;\n this.SelfIntersect = SelfIntersect;\n this.RefDirection = RefDirection;\n this.type = 3505215534;\n }\n }\n IFC2X32.IfcOffsetCurve3D = IfcOffsetCurve3D;\n class IfcPermeableCoveringProperties extends IfcPropertySetDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.OperationType = OperationType;\n this.PanelPosition = PanelPosition;\n this.FrameDepth = FrameDepth;\n this.FrameThickness = FrameThickness;\n this.ShapeAspectStyle = ShapeAspectStyle;\n this.type = 3566463478;\n }\n }\n IFC2X32.IfcPermeableCoveringProperties = IfcPermeableCoveringProperties;\n class IfcPlanarBox extends IfcPlanarExtent {\n constructor(SizeInX, SizeInY, Placement) {\n super(SizeInX, SizeInY);\n this.SizeInX = SizeInX;\n this.SizeInY = SizeInY;\n this.Placement = Placement;\n this.type = 603570806;\n }\n }\n IFC2X32.IfcPlanarBox = IfcPlanarBox;\n class IfcPlane extends IfcElementarySurface {\n constructor(Position) {\n super(Position);\n this.Position = Position;\n this.type = 220341763;\n }\n }\n IFC2X32.IfcPlane = IfcPlane;\n class IfcProcess extends IfcObject {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.type = 2945172077;\n }\n }\n IFC2X32.IfcProcess = IfcProcess;\n class IfcProduct extends IfcObject {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.type = 4208778838;\n }\n }\n IFC2X32.IfcProduct = IfcProduct;\n class IfcProject extends IfcObject {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.LongName = LongName;\n this.Phase = Phase;\n this.RepresentationContexts = RepresentationContexts;\n this.UnitsInContext = UnitsInContext;\n this.type = 103090709;\n }\n }\n IFC2X32.IfcProject = IfcProject;\n class IfcProjectionCurve extends IfcAnnotationCurveOccurrence {\n constructor(Item, Styles, Name) {\n super(Item, Styles, Name);\n this.Item = Item;\n this.Styles = Styles;\n this.Name = Name;\n this.type = 4194566429;\n }\n }\n IFC2X32.IfcProjectionCurve = IfcProjectionCurve;\n class IfcPropertySet extends IfcPropertySetDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description, HasProperties) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.HasProperties = HasProperties;\n this.type = 1451395588;\n }\n }\n IFC2X32.IfcPropertySet = IfcPropertySet;\n class IfcProxy extends IfcProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, ProxyType, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.ProxyType = ProxyType;\n this.Tag = Tag;\n this.type = 3219374653;\n }\n }\n IFC2X32.IfcProxy = IfcProxy;\n class IfcRectangleHollowProfileDef extends IfcRectangleProfileDef {\n constructor(ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius) {\n super(ProfileType, ProfileName, Position, XDim, YDim);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.XDim = XDim;\n this.YDim = YDim;\n this.WallThickness = WallThickness;\n this.InnerFilletRadius = InnerFilletRadius;\n this.OuterFilletRadius = OuterFilletRadius;\n this.type = 2770003689;\n }\n }\n IFC2X32.IfcRectangleHollowProfileDef = IfcRectangleHollowProfileDef;\n class IfcRectangularPyramid extends IfcCsgPrimitive3D {\n constructor(Position, XLength, YLength, Height) {\n super(Position);\n this.Position = Position;\n this.XLength = XLength;\n this.YLength = YLength;\n this.Height = Height;\n this.type = 2798486643;\n }\n }\n IFC2X32.IfcRectangularPyramid = IfcRectangularPyramid;\n class IfcRectangularTrimmedSurface extends IfcBoundedSurface {\n constructor(BasisSurface, U1, V1, U2, V2, Usense, Vsense) {\n super();\n this.BasisSurface = BasisSurface;\n this.U1 = U1;\n this.V1 = V1;\n this.U2 = U2;\n this.V2 = V2;\n this.Usense = Usense;\n this.Vsense = Vsense;\n this.type = 3454111270;\n }\n }\n IFC2X32.IfcRectangularTrimmedSurface = IfcRectangularTrimmedSurface;\n class IfcRelAssigns extends IfcRelationship {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatedObjectsType = RelatedObjectsType;\n this.type = 3939117080;\n }\n }\n IFC2X32.IfcRelAssigns = IfcRelAssigns;\n class IfcRelAssignsToActor extends IfcRelAssigns {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatedObjectsType = RelatedObjectsType;\n this.RelatingActor = RelatingActor;\n this.ActingRole = ActingRole;\n this.type = 1683148259;\n }\n }\n IFC2X32.IfcRelAssignsToActor = IfcRelAssignsToActor;\n class IfcRelAssignsToControl extends IfcRelAssigns {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatedObjectsType = RelatedObjectsType;\n this.RelatingControl = RelatingControl;\n this.type = 2495723537;\n }\n }\n IFC2X32.IfcRelAssignsToControl = IfcRelAssignsToControl;\n class IfcRelAssignsToGroup extends IfcRelAssigns {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatedObjectsType = RelatedObjectsType;\n this.RelatingGroup = RelatingGroup;\n this.type = 1307041759;\n }\n }\n IFC2X32.IfcRelAssignsToGroup = IfcRelAssignsToGroup;\n class IfcRelAssignsToProcess extends IfcRelAssigns {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatedObjectsType = RelatedObjectsType;\n this.RelatingProcess = RelatingProcess;\n this.QuantityInProcess = QuantityInProcess;\n this.type = 4278684876;\n }\n }\n IFC2X32.IfcRelAssignsToProcess = IfcRelAssignsToProcess;\n class IfcRelAssignsToProduct extends IfcRelAssigns {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatedObjectsType = RelatedObjectsType;\n this.RelatingProduct = RelatingProduct;\n this.type = 2857406711;\n }\n }\n IFC2X32.IfcRelAssignsToProduct = IfcRelAssignsToProduct;\n class IfcRelAssignsToProjectOrder extends IfcRelAssignsToControl {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatedObjectsType = RelatedObjectsType;\n this.RelatingControl = RelatingControl;\n this.type = 3372526763;\n }\n }\n IFC2X32.IfcRelAssignsToProjectOrder = IfcRelAssignsToProjectOrder;\n class IfcRelAssignsToResource extends IfcRelAssigns {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatedObjectsType = RelatedObjectsType;\n this.RelatingResource = RelatingResource;\n this.type = 205026976;\n }\n }\n IFC2X32.IfcRelAssignsToResource = IfcRelAssignsToResource;\n class IfcRelAssociates extends IfcRelationship {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.type = 1865459582;\n }\n }\n IFC2X32.IfcRelAssociates = IfcRelAssociates;\n class IfcRelAssociatesAppliedValue extends IfcRelAssociates {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingAppliedValue) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatingAppliedValue = RelatingAppliedValue;\n this.type = 1327628568;\n }\n }\n IFC2X32.IfcRelAssociatesAppliedValue = IfcRelAssociatesAppliedValue;\n class IfcRelAssociatesApproval extends IfcRelAssociates {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatingApproval = RelatingApproval;\n this.type = 4095574036;\n }\n }\n IFC2X32.IfcRelAssociatesApproval = IfcRelAssociatesApproval;\n class IfcRelAssociatesClassification extends IfcRelAssociates {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatingClassification = RelatingClassification;\n this.type = 919958153;\n }\n }\n IFC2X32.IfcRelAssociatesClassification = IfcRelAssociatesClassification;\n class IfcRelAssociatesConstraint extends IfcRelAssociates {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.Intent = Intent;\n this.RelatingConstraint = RelatingConstraint;\n this.type = 2728634034;\n }\n }\n IFC2X32.IfcRelAssociatesConstraint = IfcRelAssociatesConstraint;\n class IfcRelAssociatesDocument extends IfcRelAssociates {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatingDocument = RelatingDocument;\n this.type = 982818633;\n }\n }\n IFC2X32.IfcRelAssociatesDocument = IfcRelAssociatesDocument;\n class IfcRelAssociatesLibrary extends IfcRelAssociates {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatingLibrary = RelatingLibrary;\n this.type = 3840914261;\n }\n }\n IFC2X32.IfcRelAssociatesLibrary = IfcRelAssociatesLibrary;\n class IfcRelAssociatesMaterial extends IfcRelAssociates {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatingMaterial = RelatingMaterial;\n this.type = 2655215786;\n }\n }\n IFC2X32.IfcRelAssociatesMaterial = IfcRelAssociatesMaterial;\n class IfcRelAssociatesProfileProperties extends IfcRelAssociates {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingProfileProperties, ProfileSectionLocation, ProfileOrientation) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatingProfileProperties = RelatingProfileProperties;\n this.ProfileSectionLocation = ProfileSectionLocation;\n this.ProfileOrientation = ProfileOrientation;\n this.type = 2851387026;\n }\n }\n IFC2X32.IfcRelAssociatesProfileProperties = IfcRelAssociatesProfileProperties;\n class IfcRelConnects extends IfcRelationship {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 826625072;\n }\n }\n IFC2X32.IfcRelConnects = IfcRelConnects;\n class IfcRelConnectsElements extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ConnectionGeometry = ConnectionGeometry;\n this.RelatingElement = RelatingElement;\n this.RelatedElement = RelatedElement;\n this.type = 1204542856;\n }\n }\n IFC2X32.IfcRelConnectsElements = IfcRelConnectsElements;\n class IfcRelConnectsPathElements extends IfcRelConnectsElements {\n constructor(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType) {\n super(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ConnectionGeometry = ConnectionGeometry;\n this.RelatingElement = RelatingElement;\n this.RelatedElement = RelatedElement;\n this.RelatingPriorities = RelatingPriorities;\n this.RelatedPriorities = RelatedPriorities;\n this.RelatedConnectionType = RelatedConnectionType;\n this.RelatingConnectionType = RelatingConnectionType;\n this.type = 3945020480;\n }\n }\n IFC2X32.IfcRelConnectsPathElements = IfcRelConnectsPathElements;\n class IfcRelConnectsPortToElement extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingPort = RelatingPort;\n this.RelatedElement = RelatedElement;\n this.type = 4201705270;\n }\n }\n IFC2X32.IfcRelConnectsPortToElement = IfcRelConnectsPortToElement;\n class IfcRelConnectsPorts extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingPort = RelatingPort;\n this.RelatedPort = RelatedPort;\n this.RealizingElement = RealizingElement;\n this.type = 3190031847;\n }\n }\n IFC2X32.IfcRelConnectsPorts = IfcRelConnectsPorts;\n class IfcRelConnectsStructuralActivity extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingElement = RelatingElement;\n this.RelatedStructuralActivity = RelatedStructuralActivity;\n this.type = 2127690289;\n }\n }\n IFC2X32.IfcRelConnectsStructuralActivity = IfcRelConnectsStructuralActivity;\n class IfcRelConnectsStructuralElement extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralMember) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingElement = RelatingElement;\n this.RelatedStructuralMember = RelatedStructuralMember;\n this.type = 3912681535;\n }\n }\n IFC2X32.IfcRelConnectsStructuralElement = IfcRelConnectsStructuralElement;\n class IfcRelConnectsStructuralMember extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingStructuralMember = RelatingStructuralMember;\n this.RelatedStructuralConnection = RelatedStructuralConnection;\n this.AppliedCondition = AppliedCondition;\n this.AdditionalConditions = AdditionalConditions;\n this.SupportedLength = SupportedLength;\n this.ConditionCoordinateSystem = ConditionCoordinateSystem;\n this.type = 1638771189;\n }\n }\n IFC2X32.IfcRelConnectsStructuralMember = IfcRelConnectsStructuralMember;\n class IfcRelConnectsWithEccentricity extends IfcRelConnectsStructuralMember {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint) {\n super(GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingStructuralMember = RelatingStructuralMember;\n this.RelatedStructuralConnection = RelatedStructuralConnection;\n this.AppliedCondition = AppliedCondition;\n this.AdditionalConditions = AdditionalConditions;\n this.SupportedLength = SupportedLength;\n this.ConditionCoordinateSystem = ConditionCoordinateSystem;\n this.ConnectionConstraint = ConnectionConstraint;\n this.type = 504942748;\n }\n }\n IFC2X32.IfcRelConnectsWithEccentricity = IfcRelConnectsWithEccentricity;\n class IfcRelConnectsWithRealizingElements extends IfcRelConnectsElements {\n constructor(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType) {\n super(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ConnectionGeometry = ConnectionGeometry;\n this.RelatingElement = RelatingElement;\n this.RelatedElement = RelatedElement;\n this.RealizingElements = RealizingElements;\n this.ConnectionType = ConnectionType;\n this.type = 3678494232;\n }\n }\n IFC2X32.IfcRelConnectsWithRealizingElements = IfcRelConnectsWithRealizingElements;\n class IfcRelContainedInSpatialStructure extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedElements = RelatedElements;\n this.RelatingStructure = RelatingStructure;\n this.type = 3242617779;\n }\n }\n IFC2X32.IfcRelContainedInSpatialStructure = IfcRelContainedInSpatialStructure;\n class IfcRelCoversBldgElements extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingBuildingElement = RelatingBuildingElement;\n this.RelatedCoverings = RelatedCoverings;\n this.type = 886880790;\n }\n }\n IFC2X32.IfcRelCoversBldgElements = IfcRelCoversBldgElements;\n class IfcRelCoversSpaces extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedSpace, RelatedCoverings) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedSpace = RelatedSpace;\n this.RelatedCoverings = RelatedCoverings;\n this.type = 2802773753;\n }\n }\n IFC2X32.IfcRelCoversSpaces = IfcRelCoversSpaces;\n class IfcRelDecomposes extends IfcRelationship {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingObject = RelatingObject;\n this.RelatedObjects = RelatedObjects;\n this.type = 2551354335;\n }\n }\n IFC2X32.IfcRelDecomposes = IfcRelDecomposes;\n class IfcRelDefines extends IfcRelationship {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.type = 693640335;\n }\n }\n IFC2X32.IfcRelDefines = IfcRelDefines;\n class IfcRelDefinesByProperties extends IfcRelDefines {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatingPropertyDefinition = RelatingPropertyDefinition;\n this.type = 4186316022;\n }\n }\n IFC2X32.IfcRelDefinesByProperties = IfcRelDefinesByProperties;\n class IfcRelDefinesByType extends IfcRelDefines {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatingType = RelatingType;\n this.type = 781010003;\n }\n }\n IFC2X32.IfcRelDefinesByType = IfcRelDefinesByType;\n class IfcRelFillsElement extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingOpeningElement = RelatingOpeningElement;\n this.RelatedBuildingElement = RelatedBuildingElement;\n this.type = 3940055652;\n }\n }\n IFC2X32.IfcRelFillsElement = IfcRelFillsElement;\n class IfcRelFlowControlElements extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedControlElements = RelatedControlElements;\n this.RelatingFlowElement = RelatingFlowElement;\n this.type = 279856033;\n }\n }\n IFC2X32.IfcRelFlowControlElements = IfcRelFlowControlElements;\n class IfcRelInteractionRequirements extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, DailyInteraction, ImportanceRating, LocationOfInteraction, RelatedSpaceProgram, RelatingSpaceProgram) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.DailyInteraction = DailyInteraction;\n this.ImportanceRating = ImportanceRating;\n this.LocationOfInteraction = LocationOfInteraction;\n this.RelatedSpaceProgram = RelatedSpaceProgram;\n this.RelatingSpaceProgram = RelatingSpaceProgram;\n this.type = 4189434867;\n }\n }\n IFC2X32.IfcRelInteractionRequirements = IfcRelInteractionRequirements;\n class IfcRelNests extends IfcRelDecomposes {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) {\n super(GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingObject = RelatingObject;\n this.RelatedObjects = RelatedObjects;\n this.type = 3268803585;\n }\n }\n IFC2X32.IfcRelNests = IfcRelNests;\n class IfcRelOccupiesSpaces extends IfcRelAssignsToActor {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatedObjectsType = RelatedObjectsType;\n this.RelatingActor = RelatingActor;\n this.ActingRole = ActingRole;\n this.type = 2051452291;\n }\n }\n IFC2X32.IfcRelOccupiesSpaces = IfcRelOccupiesSpaces;\n class IfcRelOverridesProperties extends IfcRelDefinesByProperties {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition, OverridingProperties) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatingPropertyDefinition = RelatingPropertyDefinition;\n this.OverridingProperties = OverridingProperties;\n this.type = 202636808;\n }\n }\n IFC2X32.IfcRelOverridesProperties = IfcRelOverridesProperties;\n class IfcRelProjectsElement extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingElement = RelatingElement;\n this.RelatedFeatureElement = RelatedFeatureElement;\n this.type = 750771296;\n }\n }\n IFC2X32.IfcRelProjectsElement = IfcRelProjectsElement;\n class IfcRelReferencedInSpatialStructure extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedElements = RelatedElements;\n this.RelatingStructure = RelatingStructure;\n this.type = 1245217292;\n }\n }\n IFC2X32.IfcRelReferencedInSpatialStructure = IfcRelReferencedInSpatialStructure;\n class IfcRelSchedulesCostItems extends IfcRelAssignsToControl {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatedObjectsType = RelatedObjectsType;\n this.RelatingControl = RelatingControl;\n this.type = 1058617721;\n }\n }\n IFC2X32.IfcRelSchedulesCostItems = IfcRelSchedulesCostItems;\n class IfcRelSequence extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingProcess = RelatingProcess;\n this.RelatedProcess = RelatedProcess;\n this.TimeLag = TimeLag;\n this.SequenceType = SequenceType;\n this.type = 4122056220;\n }\n }\n IFC2X32.IfcRelSequence = IfcRelSequence;\n class IfcRelServicesBuildings extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingSystem = RelatingSystem;\n this.RelatedBuildings = RelatedBuildings;\n this.type = 366585022;\n }\n }\n IFC2X32.IfcRelServicesBuildings = IfcRelServicesBuildings;\n class IfcRelSpaceBoundary extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingSpace = RelatingSpace;\n this.RelatedBuildingElement = RelatedBuildingElement;\n this.ConnectionGeometry = ConnectionGeometry;\n this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary;\n this.InternalOrExternalBoundary = InternalOrExternalBoundary;\n this.type = 3451746338;\n }\n }\n IFC2X32.IfcRelSpaceBoundary = IfcRelSpaceBoundary;\n class IfcRelVoidsElement extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingBuildingElement = RelatingBuildingElement;\n this.RelatedOpeningElement = RelatedOpeningElement;\n this.type = 1401173127;\n }\n }\n IFC2X32.IfcRelVoidsElement = IfcRelVoidsElement;\n class IfcResource extends IfcObject {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.type = 2914609552;\n }\n }\n IFC2X32.IfcResource = IfcResource;\n class IfcRevolvedAreaSolid extends IfcSweptAreaSolid {\n constructor(SweptArea, Position, Axis, Angle) {\n super(SweptArea, Position);\n this.SweptArea = SweptArea;\n this.Position = Position;\n this.Axis = Axis;\n this.Angle = Angle;\n this.type = 1856042241;\n }\n }\n IFC2X32.IfcRevolvedAreaSolid = IfcRevolvedAreaSolid;\n class IfcRightCircularCone extends IfcCsgPrimitive3D {\n constructor(Position, Height, BottomRadius) {\n super(Position);\n this.Position = Position;\n this.Height = Height;\n this.BottomRadius = BottomRadius;\n this.type = 4158566097;\n }\n }\n IFC2X32.IfcRightCircularCone = IfcRightCircularCone;\n class IfcRightCircularCylinder extends IfcCsgPrimitive3D {\n constructor(Position, Height, Radius) {\n super(Position);\n this.Position = Position;\n this.Height = Height;\n this.Radius = Radius;\n this.type = 3626867408;\n }\n }\n IFC2X32.IfcRightCircularCylinder = IfcRightCircularCylinder;\n class IfcSpatialStructureElement extends IfcProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.CompositionType = CompositionType;\n this.type = 2706606064;\n }\n }\n IFC2X32.IfcSpatialStructureElement = IfcSpatialStructureElement;\n class IfcSpatialStructureElementType extends IfcElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 3893378262;\n }\n }\n IFC2X32.IfcSpatialStructureElementType = IfcSpatialStructureElementType;\n class IfcSphere extends IfcCsgPrimitive3D {\n constructor(Position, Radius) {\n super(Position);\n this.Position = Position;\n this.Radius = Radius;\n this.type = 451544542;\n }\n }\n IFC2X32.IfcSphere = IfcSphere;\n class IfcStructuralActivity extends IfcProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.type = 3544373492;\n }\n }\n IFC2X32.IfcStructuralActivity = IfcStructuralActivity;\n class IfcStructuralItem extends IfcProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.type = 3136571912;\n }\n }\n IFC2X32.IfcStructuralItem = IfcStructuralItem;\n class IfcStructuralMember extends IfcStructuralItem {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.type = 530289379;\n }\n }\n IFC2X32.IfcStructuralMember = IfcStructuralMember;\n class IfcStructuralReaction extends IfcStructuralActivity {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.type = 3689010777;\n }\n }\n IFC2X32.IfcStructuralReaction = IfcStructuralReaction;\n class IfcStructuralSurfaceMember extends IfcStructuralMember {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.PredefinedType = PredefinedType;\n this.Thickness = Thickness;\n this.type = 3979015343;\n }\n }\n IFC2X32.IfcStructuralSurfaceMember = IfcStructuralSurfaceMember;\n class IfcStructuralSurfaceMemberVarying extends IfcStructuralSurfaceMember {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness, SubsequentThickness, VaryingThicknessLocation) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.PredefinedType = PredefinedType;\n this.Thickness = Thickness;\n this.SubsequentThickness = SubsequentThickness;\n this.VaryingThicknessLocation = VaryingThicknessLocation;\n this.type = 2218152070;\n }\n }\n IFC2X32.IfcStructuralSurfaceMemberVarying = IfcStructuralSurfaceMemberVarying;\n class IfcStructuredDimensionCallout extends IfcDraughtingCallout {\n constructor(Contents) {\n super(Contents);\n this.Contents = Contents;\n this.type = 4070609034;\n }\n }\n IFC2X32.IfcStructuredDimensionCallout = IfcStructuredDimensionCallout;\n class IfcSurfaceCurveSweptAreaSolid extends IfcSweptAreaSolid {\n constructor(SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface) {\n super(SweptArea, Position);\n this.SweptArea = SweptArea;\n this.Position = Position;\n this.Directrix = Directrix;\n this.StartParam = StartParam;\n this.EndParam = EndParam;\n this.ReferenceSurface = ReferenceSurface;\n this.type = 2028607225;\n }\n }\n IFC2X32.IfcSurfaceCurveSweptAreaSolid = IfcSurfaceCurveSweptAreaSolid;\n class IfcSurfaceOfLinearExtrusion extends IfcSweptSurface {\n constructor(SweptCurve, Position, ExtrudedDirection, Depth) {\n super(SweptCurve, Position);\n this.SweptCurve = SweptCurve;\n this.Position = Position;\n this.ExtrudedDirection = ExtrudedDirection;\n this.Depth = Depth;\n this.type = 2809605785;\n }\n }\n IFC2X32.IfcSurfaceOfLinearExtrusion = IfcSurfaceOfLinearExtrusion;\n class IfcSurfaceOfRevolution extends IfcSweptSurface {\n constructor(SweptCurve, Position, AxisPosition) {\n super(SweptCurve, Position);\n this.SweptCurve = SweptCurve;\n this.Position = Position;\n this.AxisPosition = AxisPosition;\n this.type = 4124788165;\n }\n }\n IFC2X32.IfcSurfaceOfRevolution = IfcSurfaceOfRevolution;\n class IfcSystemFurnitureElementType extends IfcFurnishingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 1580310250;\n }\n }\n IFC2X32.IfcSystemFurnitureElementType = IfcSystemFurnitureElementType;\n class IfcTask extends IfcProcess {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.TaskId = TaskId;\n this.Status = Status;\n this.WorkMethod = WorkMethod;\n this.IsMilestone = IsMilestone;\n this.Priority = Priority;\n this.type = 3473067441;\n }\n }\n IFC2X32.IfcTask = IfcTask;\n class IfcTransportElementType extends IfcElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2097647324;\n }\n }\n IFC2X32.IfcTransportElementType = IfcTransportElementType;\n class IfcActor extends IfcObject {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.TheActor = TheActor;\n this.type = 2296667514;\n }\n }\n IFC2X32.IfcActor = IfcActor;\n class IfcAnnotation extends IfcProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.type = 1674181508;\n }\n }\n IFC2X32.IfcAnnotation = IfcAnnotation;\n class IfcAsymmetricIShapeProfileDef extends IfcIShapeProfileDef {\n constructor(ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, CentreOfGravityInY) {\n super(ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.OverallWidth = OverallWidth;\n this.OverallDepth = OverallDepth;\n this.WebThickness = WebThickness;\n this.FlangeThickness = FlangeThickness;\n this.FilletRadius = FilletRadius;\n this.TopFlangeWidth = TopFlangeWidth;\n this.TopFlangeThickness = TopFlangeThickness;\n this.TopFlangeFilletRadius = TopFlangeFilletRadius;\n this.CentreOfGravityInY = CentreOfGravityInY;\n this.type = 3207858831;\n }\n }\n IFC2X32.IfcAsymmetricIShapeProfileDef = IfcAsymmetricIShapeProfileDef;\n class IfcBlock extends IfcCsgPrimitive3D {\n constructor(Position, XLength, YLength, ZLength) {\n super(Position);\n this.Position = Position;\n this.XLength = XLength;\n this.YLength = YLength;\n this.ZLength = ZLength;\n this.type = 1334484129;\n }\n }\n IFC2X32.IfcBlock = IfcBlock;\n class IfcBooleanClippingResult extends IfcBooleanResult {\n constructor(Operator, FirstOperand, SecondOperand) {\n super(Operator, FirstOperand, SecondOperand);\n this.Operator = Operator;\n this.FirstOperand = FirstOperand;\n this.SecondOperand = SecondOperand;\n this.type = 3649129432;\n }\n }\n IFC2X32.IfcBooleanClippingResult = IfcBooleanClippingResult;\n class IfcBoundedCurve extends IfcCurve {\n constructor() {\n super();\n this.type = 1260505505;\n }\n }\n IFC2X32.IfcBoundedCurve = IfcBoundedCurve;\n class IfcBuilding extends IfcSpatialStructureElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.CompositionType = CompositionType;\n this.ElevationOfRefHeight = ElevationOfRefHeight;\n this.ElevationOfTerrain = ElevationOfTerrain;\n this.BuildingAddress = BuildingAddress;\n this.type = 4031249490;\n }\n }\n IFC2X32.IfcBuilding = IfcBuilding;\n class IfcBuildingElementType extends IfcElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 1950629157;\n }\n }\n IFC2X32.IfcBuildingElementType = IfcBuildingElementType;\n class IfcBuildingStorey extends IfcSpatialStructureElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.CompositionType = CompositionType;\n this.Elevation = Elevation;\n this.type = 3124254112;\n }\n }\n IFC2X32.IfcBuildingStorey = IfcBuildingStorey;\n class IfcCircleHollowProfileDef extends IfcCircleProfileDef {\n constructor(ProfileType, ProfileName, Position, Radius, WallThickness) {\n super(ProfileType, ProfileName, Position, Radius);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.Radius = Radius;\n this.WallThickness = WallThickness;\n this.type = 2937912522;\n }\n }\n IFC2X32.IfcCircleHollowProfileDef = IfcCircleHollowProfileDef;\n class IfcColumnType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 300633059;\n }\n }\n IFC2X32.IfcColumnType = IfcColumnType;\n class IfcCompositeCurve extends IfcBoundedCurve {\n constructor(Segments, SelfIntersect) {\n super();\n this.Segments = Segments;\n this.SelfIntersect = SelfIntersect;\n this.type = 3732776249;\n }\n }\n IFC2X32.IfcCompositeCurve = IfcCompositeCurve;\n class IfcConic extends IfcCurve {\n constructor(Position) {\n super();\n this.Position = Position;\n this.type = 2510884976;\n }\n }\n IFC2X32.IfcConic = IfcConic;\n class IfcConstructionResource extends IfcResource {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ResourceIdentifier = ResourceIdentifier;\n this.ResourceGroup = ResourceGroup;\n this.ResourceConsumption = ResourceConsumption;\n this.BaseQuantity = BaseQuantity;\n this.type = 2559216714;\n }\n }\n IFC2X32.IfcConstructionResource = IfcConstructionResource;\n class IfcControl extends IfcObject {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.type = 3293443760;\n }\n }\n IFC2X32.IfcControl = IfcControl;\n class IfcCostItem extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.type = 3895139033;\n }\n }\n IFC2X32.IfcCostItem = IfcCostItem;\n class IfcCostSchedule extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, SubmittedBy, PreparedBy, SubmittedOn, Status, TargetUsers, UpdateDate, ID, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.SubmittedBy = SubmittedBy;\n this.PreparedBy = PreparedBy;\n this.SubmittedOn = SubmittedOn;\n this.Status = Status;\n this.TargetUsers = TargetUsers;\n this.UpdateDate = UpdateDate;\n this.ID = ID;\n this.PredefinedType = PredefinedType;\n this.type = 1419761937;\n }\n }\n IFC2X32.IfcCostSchedule = IfcCostSchedule;\n class IfcCoveringType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1916426348;\n }\n }\n IFC2X32.IfcCoveringType = IfcCoveringType;\n class IfcCrewResource extends IfcConstructionResource {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ResourceIdentifier = ResourceIdentifier;\n this.ResourceGroup = ResourceGroup;\n this.ResourceConsumption = ResourceConsumption;\n this.BaseQuantity = BaseQuantity;\n this.type = 3295246426;\n }\n }\n IFC2X32.IfcCrewResource = IfcCrewResource;\n class IfcCurtainWallType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1457835157;\n }\n }\n IFC2X32.IfcCurtainWallType = IfcCurtainWallType;\n class IfcDimensionCurveDirectedCallout extends IfcDraughtingCallout {\n constructor(Contents) {\n super(Contents);\n this.Contents = Contents;\n this.type = 681481545;\n }\n }\n IFC2X32.IfcDimensionCurveDirectedCallout = IfcDimensionCurveDirectedCallout;\n class IfcDistributionElementType extends IfcElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 3256556792;\n }\n }\n IFC2X32.IfcDistributionElementType = IfcDistributionElementType;\n class IfcDistributionFlowElementType extends IfcDistributionElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 3849074793;\n }\n }\n IFC2X32.IfcDistributionFlowElementType = IfcDistributionFlowElementType;\n class IfcElectricalBaseProperties extends IfcEnergyProperties {\n constructor(GlobalId, OwnerHistory, Name, Description, EnergySequence, UserDefinedEnergySequence, ElectricCurrentType, InputVoltage, InputFrequency, FullLoadCurrent, MinimumCircuitCurrent, MaximumPowerInput, RatedPowerInput, InputPhase) {\n super(GlobalId, OwnerHistory, Name, Description, EnergySequence, UserDefinedEnergySequence);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.EnergySequence = EnergySequence;\n this.UserDefinedEnergySequence = UserDefinedEnergySequence;\n this.ElectricCurrentType = ElectricCurrentType;\n this.InputVoltage = InputVoltage;\n this.InputFrequency = InputFrequency;\n this.FullLoadCurrent = FullLoadCurrent;\n this.MinimumCircuitCurrent = MinimumCircuitCurrent;\n this.MaximumPowerInput = MaximumPowerInput;\n this.RatedPowerInput = RatedPowerInput;\n this.InputPhase = InputPhase;\n this.type = 360485395;\n }\n }\n IFC2X32.IfcElectricalBaseProperties = IfcElectricalBaseProperties;\n class IfcElement extends IfcProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 1758889154;\n }\n }\n IFC2X32.IfcElement = IfcElement;\n class IfcElementAssembly extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.AssemblyPlace = AssemblyPlace;\n this.PredefinedType = PredefinedType;\n this.type = 4123344466;\n }\n }\n IFC2X32.IfcElementAssembly = IfcElementAssembly;\n class IfcElementComponent extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 1623761950;\n }\n }\n IFC2X32.IfcElementComponent = IfcElementComponent;\n class IfcElementComponentType extends IfcElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 2590856083;\n }\n }\n IFC2X32.IfcElementComponentType = IfcElementComponentType;\n class IfcEllipse extends IfcConic {\n constructor(Position, SemiAxis1, SemiAxis2) {\n super(Position);\n this.Position = Position;\n this.SemiAxis1 = SemiAxis1;\n this.SemiAxis2 = SemiAxis2;\n this.type = 1704287377;\n }\n }\n IFC2X32.IfcEllipse = IfcEllipse;\n class IfcEnergyConversionDeviceType extends IfcDistributionFlowElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 2107101300;\n }\n }\n IFC2X32.IfcEnergyConversionDeviceType = IfcEnergyConversionDeviceType;\n class IfcEquipmentElement extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 1962604670;\n }\n }\n IFC2X32.IfcEquipmentElement = IfcEquipmentElement;\n class IfcEquipmentStandard extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.type = 3272907226;\n }\n }\n IFC2X32.IfcEquipmentStandard = IfcEquipmentStandard;\n class IfcEvaporativeCoolerType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3174744832;\n }\n }\n IFC2X32.IfcEvaporativeCoolerType = IfcEvaporativeCoolerType;\n class IfcEvaporatorType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3390157468;\n }\n }\n IFC2X32.IfcEvaporatorType = IfcEvaporatorType;\n class IfcFacetedBrep extends IfcManifoldSolidBrep {\n constructor(Outer) {\n super(Outer);\n this.Outer = Outer;\n this.type = 807026263;\n }\n }\n IFC2X32.IfcFacetedBrep = IfcFacetedBrep;\n class IfcFacetedBrepWithVoids extends IfcManifoldSolidBrep {\n constructor(Outer, Voids) {\n super(Outer);\n this.Outer = Outer;\n this.Voids = Voids;\n this.type = 3737207727;\n }\n }\n IFC2X32.IfcFacetedBrepWithVoids = IfcFacetedBrepWithVoids;\n class IfcFastener extends IfcElementComponent {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 647756555;\n }\n }\n IFC2X32.IfcFastener = IfcFastener;\n class IfcFastenerType extends IfcElementComponentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 2489546625;\n }\n }\n IFC2X32.IfcFastenerType = IfcFastenerType;\n class IfcFeatureElement extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 2827207264;\n }\n }\n IFC2X32.IfcFeatureElement = IfcFeatureElement;\n class IfcFeatureElementAddition extends IfcFeatureElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 2143335405;\n }\n }\n IFC2X32.IfcFeatureElementAddition = IfcFeatureElementAddition;\n class IfcFeatureElementSubtraction extends IfcFeatureElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 1287392070;\n }\n }\n IFC2X32.IfcFeatureElementSubtraction = IfcFeatureElementSubtraction;\n class IfcFlowControllerType extends IfcDistributionFlowElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 3907093117;\n }\n }\n IFC2X32.IfcFlowControllerType = IfcFlowControllerType;\n class IfcFlowFittingType extends IfcDistributionFlowElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 3198132628;\n }\n }\n IFC2X32.IfcFlowFittingType = IfcFlowFittingType;\n class IfcFlowMeterType extends IfcFlowControllerType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3815607619;\n }\n }\n IFC2X32.IfcFlowMeterType = IfcFlowMeterType;\n class IfcFlowMovingDeviceType extends IfcDistributionFlowElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 1482959167;\n }\n }\n IFC2X32.IfcFlowMovingDeviceType = IfcFlowMovingDeviceType;\n class IfcFlowSegmentType extends IfcDistributionFlowElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 1834744321;\n }\n }\n IFC2X32.IfcFlowSegmentType = IfcFlowSegmentType;\n class IfcFlowStorageDeviceType extends IfcDistributionFlowElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 1339347760;\n }\n }\n IFC2X32.IfcFlowStorageDeviceType = IfcFlowStorageDeviceType;\n class IfcFlowTerminalType extends IfcDistributionFlowElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 2297155007;\n }\n }\n IFC2X32.IfcFlowTerminalType = IfcFlowTerminalType;\n class IfcFlowTreatmentDeviceType extends IfcDistributionFlowElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 3009222698;\n }\n }\n IFC2X32.IfcFlowTreatmentDeviceType = IfcFlowTreatmentDeviceType;\n class IfcFurnishingElement extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 263784265;\n }\n }\n IFC2X32.IfcFurnishingElement = IfcFurnishingElement;\n class IfcFurnitureStandard extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.type = 814719939;\n }\n }\n IFC2X32.IfcFurnitureStandard = IfcFurnitureStandard;\n class IfcGasTerminalType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 200128114;\n }\n }\n IFC2X32.IfcGasTerminalType = IfcGasTerminalType;\n class IfcGrid extends IfcProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.UAxes = UAxes;\n this.VAxes = VAxes;\n this.WAxes = WAxes;\n this.type = 3009204131;\n }\n }\n IFC2X32.IfcGrid = IfcGrid;\n class IfcGroup extends IfcObject {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.type = 2706460486;\n }\n }\n IFC2X32.IfcGroup = IfcGroup;\n class IfcHeatExchangerType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1251058090;\n }\n }\n IFC2X32.IfcHeatExchangerType = IfcHeatExchangerType;\n class IfcHumidifierType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1806887404;\n }\n }\n IFC2X32.IfcHumidifierType = IfcHumidifierType;\n class IfcInventory extends IfcGroup {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, InventoryType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.InventoryType = InventoryType;\n this.Jurisdiction = Jurisdiction;\n this.ResponsiblePersons = ResponsiblePersons;\n this.LastUpdateDate = LastUpdateDate;\n this.CurrentValue = CurrentValue;\n this.OriginalValue = OriginalValue;\n this.type = 2391368822;\n }\n }\n IFC2X32.IfcInventory = IfcInventory;\n class IfcJunctionBoxType extends IfcFlowFittingType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 4288270099;\n }\n }\n IFC2X32.IfcJunctionBoxType = IfcJunctionBoxType;\n class IfcLaborResource extends IfcConstructionResource {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity, SkillSet) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ResourceIdentifier = ResourceIdentifier;\n this.ResourceGroup = ResourceGroup;\n this.ResourceConsumption = ResourceConsumption;\n this.BaseQuantity = BaseQuantity;\n this.SkillSet = SkillSet;\n this.type = 3827777499;\n }\n }\n IFC2X32.IfcLaborResource = IfcLaborResource;\n class IfcLampType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1051575348;\n }\n }\n IFC2X32.IfcLampType = IfcLampType;\n class IfcLightFixtureType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1161773419;\n }\n }\n IFC2X32.IfcLightFixtureType = IfcLightFixtureType;\n class IfcLinearDimension extends IfcDimensionCurveDirectedCallout {\n constructor(Contents) {\n super(Contents);\n this.Contents = Contents;\n this.type = 2506943328;\n }\n }\n IFC2X32.IfcLinearDimension = IfcLinearDimension;\n class IfcMechanicalFastener extends IfcFastener {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.NominalDiameter = NominalDiameter;\n this.NominalLength = NominalLength;\n this.type = 377706215;\n }\n }\n IFC2X32.IfcMechanicalFastener = IfcMechanicalFastener;\n class IfcMechanicalFastenerType extends IfcFastenerType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 2108223431;\n }\n }\n IFC2X32.IfcMechanicalFastenerType = IfcMechanicalFastenerType;\n class IfcMemberType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3181161470;\n }\n }\n IFC2X32.IfcMemberType = IfcMemberType;\n class IfcMotorConnectionType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 977012517;\n }\n }\n IFC2X32.IfcMotorConnectionType = IfcMotorConnectionType;\n class IfcMove extends IfcTask {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority, MoveFrom, MoveTo, PunchList) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.TaskId = TaskId;\n this.Status = Status;\n this.WorkMethod = WorkMethod;\n this.IsMilestone = IsMilestone;\n this.Priority = Priority;\n this.MoveFrom = MoveFrom;\n this.MoveTo = MoveTo;\n this.PunchList = PunchList;\n this.type = 1916936684;\n }\n }\n IFC2X32.IfcMove = IfcMove;\n class IfcOccupant extends IfcActor {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.TheActor = TheActor;\n this.PredefinedType = PredefinedType;\n this.type = 4143007308;\n }\n }\n IFC2X32.IfcOccupant = IfcOccupant;\n class IfcOpeningElement extends IfcFeatureElementSubtraction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 3588315303;\n }\n }\n IFC2X32.IfcOpeningElement = IfcOpeningElement;\n class IfcOrderAction extends IfcTask {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority, ActionID) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.TaskId = TaskId;\n this.Status = Status;\n this.WorkMethod = WorkMethod;\n this.IsMilestone = IsMilestone;\n this.Priority = Priority;\n this.ActionID = ActionID;\n this.type = 3425660407;\n }\n }\n IFC2X32.IfcOrderAction = IfcOrderAction;\n class IfcOutletType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2837617999;\n }\n }\n IFC2X32.IfcOutletType = IfcOutletType;\n class IfcPerformanceHistory extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LifeCyclePhase) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.LifeCyclePhase = LifeCyclePhase;\n this.type = 2382730787;\n }\n }\n IFC2X32.IfcPerformanceHistory = IfcPerformanceHistory;\n class IfcPermit extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PermitID) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.PermitID = PermitID;\n this.type = 3327091369;\n }\n }\n IFC2X32.IfcPermit = IfcPermit;\n class IfcPipeFittingType extends IfcFlowFittingType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 804291784;\n }\n }\n IFC2X32.IfcPipeFittingType = IfcPipeFittingType;\n class IfcPipeSegmentType extends IfcFlowSegmentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 4231323485;\n }\n }\n IFC2X32.IfcPipeSegmentType = IfcPipeSegmentType;\n class IfcPlateType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 4017108033;\n }\n }\n IFC2X32.IfcPlateType = IfcPlateType;\n class IfcPolyline extends IfcBoundedCurve {\n constructor(Points) {\n super();\n this.Points = Points;\n this.type = 3724593414;\n }\n }\n IFC2X32.IfcPolyline = IfcPolyline;\n class IfcPort extends IfcProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.type = 3740093272;\n }\n }\n IFC2X32.IfcPort = IfcPort;\n class IfcProcedure extends IfcProcess {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ProcedureID, ProcedureType, UserDefinedProcedureType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ProcedureID = ProcedureID;\n this.ProcedureType = ProcedureType;\n this.UserDefinedProcedureType = UserDefinedProcedureType;\n this.type = 2744685151;\n }\n }\n IFC2X32.IfcProcedure = IfcProcedure;\n class IfcProjectOrder extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ID, PredefinedType, Status) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ID = ID;\n this.PredefinedType = PredefinedType;\n this.Status = Status;\n this.type = 2904328755;\n }\n }\n IFC2X32.IfcProjectOrder = IfcProjectOrder;\n class IfcProjectOrderRecord extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Records, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Records = Records;\n this.PredefinedType = PredefinedType;\n this.type = 3642467123;\n }\n }\n IFC2X32.IfcProjectOrderRecord = IfcProjectOrderRecord;\n class IfcProjectionElement extends IfcFeatureElementAddition {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 3651124850;\n }\n }\n IFC2X32.IfcProjectionElement = IfcProjectionElement;\n class IfcProtectiveDeviceType extends IfcFlowControllerType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1842657554;\n }\n }\n IFC2X32.IfcProtectiveDeviceType = IfcProtectiveDeviceType;\n class IfcPumpType extends IfcFlowMovingDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2250791053;\n }\n }\n IFC2X32.IfcPumpType = IfcPumpType;\n class IfcRadiusDimension extends IfcDimensionCurveDirectedCallout {\n constructor(Contents) {\n super(Contents);\n this.Contents = Contents;\n this.type = 3248260540;\n }\n }\n IFC2X32.IfcRadiusDimension = IfcRadiusDimension;\n class IfcRailingType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2893384427;\n }\n }\n IFC2X32.IfcRailingType = IfcRailingType;\n class IfcRampFlightType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2324767716;\n }\n }\n IFC2X32.IfcRampFlightType = IfcRampFlightType;\n class IfcRelAggregates extends IfcRelDecomposes {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) {\n super(GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingObject = RelatingObject;\n this.RelatedObjects = RelatedObjects;\n this.type = 160246688;\n }\n }\n IFC2X32.IfcRelAggregates = IfcRelAggregates;\n class IfcRelAssignsTasks extends IfcRelAssignsToControl {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl, TimeForTask) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatedObjectsType = RelatedObjectsType;\n this.RelatingControl = RelatingControl;\n this.TimeForTask = TimeForTask;\n this.type = 2863920197;\n }\n }\n IFC2X32.IfcRelAssignsTasks = IfcRelAssignsTasks;\n class IfcSanitaryTerminalType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1768891740;\n }\n }\n IFC2X32.IfcSanitaryTerminalType = IfcSanitaryTerminalType;\n class IfcScheduleTimeControl extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ActualStart, EarlyStart, LateStart, ScheduleStart, ActualFinish, EarlyFinish, LateFinish, ScheduleFinish, ScheduleDuration, ActualDuration, RemainingTime, FreeFloat, TotalFloat, IsCritical, StatusTime, StartFloat, FinishFloat, Completion) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ActualStart = ActualStart;\n this.EarlyStart = EarlyStart;\n this.LateStart = LateStart;\n this.ScheduleStart = ScheduleStart;\n this.ActualFinish = ActualFinish;\n this.EarlyFinish = EarlyFinish;\n this.LateFinish = LateFinish;\n this.ScheduleFinish = ScheduleFinish;\n this.ScheduleDuration = ScheduleDuration;\n this.ActualDuration = ActualDuration;\n this.RemainingTime = RemainingTime;\n this.FreeFloat = FreeFloat;\n this.TotalFloat = TotalFloat;\n this.IsCritical = IsCritical;\n this.StatusTime = StatusTime;\n this.StartFloat = StartFloat;\n this.FinishFloat = FinishFloat;\n this.Completion = Completion;\n this.type = 3517283431;\n }\n }\n IFC2X32.IfcScheduleTimeControl = IfcScheduleTimeControl;\n class IfcServiceLife extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ServiceLifeType, ServiceLifeDuration) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ServiceLifeType = ServiceLifeType;\n this.ServiceLifeDuration = ServiceLifeDuration;\n this.type = 4105383287;\n }\n }\n IFC2X32.IfcServiceLife = IfcServiceLife;\n class IfcSite extends IfcSpatialStructureElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.CompositionType = CompositionType;\n this.RefLatitude = RefLatitude;\n this.RefLongitude = RefLongitude;\n this.RefElevation = RefElevation;\n this.LandTitleNumber = LandTitleNumber;\n this.SiteAddress = SiteAddress;\n this.type = 4097777520;\n }\n }\n IFC2X32.IfcSite = IfcSite;\n class IfcSlabType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2533589738;\n }\n }\n IFC2X32.IfcSlabType = IfcSlabType;\n class IfcSpace extends IfcSpatialStructureElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, InteriorOrExteriorSpace, ElevationWithFlooring) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.CompositionType = CompositionType;\n this.InteriorOrExteriorSpace = InteriorOrExteriorSpace;\n this.ElevationWithFlooring = ElevationWithFlooring;\n this.type = 3856911033;\n }\n }\n IFC2X32.IfcSpace = IfcSpace;\n class IfcSpaceHeaterType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1305183839;\n }\n }\n IFC2X32.IfcSpaceHeaterType = IfcSpaceHeaterType;\n class IfcSpaceProgram extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, SpaceProgramIdentifier, MaxRequiredArea, MinRequiredArea, RequestedLocation, StandardRequiredArea) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.SpaceProgramIdentifier = SpaceProgramIdentifier;\n this.MaxRequiredArea = MaxRequiredArea;\n this.MinRequiredArea = MinRequiredArea;\n this.RequestedLocation = RequestedLocation;\n this.StandardRequiredArea = StandardRequiredArea;\n this.type = 652456506;\n }\n }\n IFC2X32.IfcSpaceProgram = IfcSpaceProgram;\n class IfcSpaceType extends IfcSpatialStructureElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3812236995;\n }\n }\n IFC2X32.IfcSpaceType = IfcSpaceType;\n class IfcStackTerminalType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3112655638;\n }\n }\n IFC2X32.IfcStackTerminalType = IfcStackTerminalType;\n class IfcStairFlightType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1039846685;\n }\n }\n IFC2X32.IfcStairFlightType = IfcStairFlightType;\n class IfcStructuralAction extends IfcStructuralActivity {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.DestabilizingLoad = DestabilizingLoad;\n this.CausedBy = CausedBy;\n this.type = 682877961;\n }\n }\n IFC2X32.IfcStructuralAction = IfcStructuralAction;\n class IfcStructuralConnection extends IfcStructuralItem {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedCondition = AppliedCondition;\n this.type = 1179482911;\n }\n }\n IFC2X32.IfcStructuralConnection = IfcStructuralConnection;\n class IfcStructuralCurveConnection extends IfcStructuralConnection {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedCondition = AppliedCondition;\n this.type = 4243806635;\n }\n }\n IFC2X32.IfcStructuralCurveConnection = IfcStructuralCurveConnection;\n class IfcStructuralCurveMember extends IfcStructuralMember {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.PredefinedType = PredefinedType;\n this.type = 214636428;\n }\n }\n IFC2X32.IfcStructuralCurveMember = IfcStructuralCurveMember;\n class IfcStructuralCurveMemberVarying extends IfcStructuralCurveMember {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.PredefinedType = PredefinedType;\n this.type = 2445595289;\n }\n }\n IFC2X32.IfcStructuralCurveMemberVarying = IfcStructuralCurveMemberVarying;\n class IfcStructuralLinearAction extends IfcStructuralAction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.DestabilizingLoad = DestabilizingLoad;\n this.CausedBy = CausedBy;\n this.ProjectedOrTrue = ProjectedOrTrue;\n this.type = 1807405624;\n }\n }\n IFC2X32.IfcStructuralLinearAction = IfcStructuralLinearAction;\n class IfcStructuralLinearActionVarying extends IfcStructuralLinearAction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue, VaryingAppliedLoadLocation, SubsequentAppliedLoads) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.DestabilizingLoad = DestabilizingLoad;\n this.CausedBy = CausedBy;\n this.ProjectedOrTrue = ProjectedOrTrue;\n this.VaryingAppliedLoadLocation = VaryingAppliedLoadLocation;\n this.SubsequentAppliedLoads = SubsequentAppliedLoads;\n this.type = 1721250024;\n }\n }\n IFC2X32.IfcStructuralLinearActionVarying = IfcStructuralLinearActionVarying;\n class IfcStructuralLoadGroup extends IfcGroup {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.PredefinedType = PredefinedType;\n this.ActionType = ActionType;\n this.ActionSource = ActionSource;\n this.Coefficient = Coefficient;\n this.Purpose = Purpose;\n this.type = 1252848954;\n }\n }\n IFC2X32.IfcStructuralLoadGroup = IfcStructuralLoadGroup;\n class IfcStructuralPlanarAction extends IfcStructuralAction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.DestabilizingLoad = DestabilizingLoad;\n this.CausedBy = CausedBy;\n this.ProjectedOrTrue = ProjectedOrTrue;\n this.type = 1621171031;\n }\n }\n IFC2X32.IfcStructuralPlanarAction = IfcStructuralPlanarAction;\n class IfcStructuralPlanarActionVarying extends IfcStructuralPlanarAction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue, VaryingAppliedLoadLocation, SubsequentAppliedLoads) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.DestabilizingLoad = DestabilizingLoad;\n this.CausedBy = CausedBy;\n this.ProjectedOrTrue = ProjectedOrTrue;\n this.VaryingAppliedLoadLocation = VaryingAppliedLoadLocation;\n this.SubsequentAppliedLoads = SubsequentAppliedLoads;\n this.type = 3987759626;\n }\n }\n IFC2X32.IfcStructuralPlanarActionVarying = IfcStructuralPlanarActionVarying;\n class IfcStructuralPointAction extends IfcStructuralAction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.DestabilizingLoad = DestabilizingLoad;\n this.CausedBy = CausedBy;\n this.type = 2082059205;\n }\n }\n IFC2X32.IfcStructuralPointAction = IfcStructuralPointAction;\n class IfcStructuralPointConnection extends IfcStructuralConnection {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedCondition = AppliedCondition;\n this.type = 734778138;\n }\n }\n IFC2X32.IfcStructuralPointConnection = IfcStructuralPointConnection;\n class IfcStructuralPointReaction extends IfcStructuralReaction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.type = 1235345126;\n }\n }\n IFC2X32.IfcStructuralPointReaction = IfcStructuralPointReaction;\n class IfcStructuralResultGroup extends IfcGroup {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.TheoryType = TheoryType;\n this.ResultForLoadGroup = ResultForLoadGroup;\n this.IsLinear = IsLinear;\n this.type = 2986769608;\n }\n }\n IFC2X32.IfcStructuralResultGroup = IfcStructuralResultGroup;\n class IfcStructuralSurfaceConnection extends IfcStructuralConnection {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedCondition = AppliedCondition;\n this.type = 1975003073;\n }\n }\n IFC2X32.IfcStructuralSurfaceConnection = IfcStructuralSurfaceConnection;\n class IfcSubContractResource extends IfcConstructionResource {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity, SubContractor, JobDescription) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ResourceIdentifier = ResourceIdentifier;\n this.ResourceGroup = ResourceGroup;\n this.ResourceConsumption = ResourceConsumption;\n this.BaseQuantity = BaseQuantity;\n this.SubContractor = SubContractor;\n this.JobDescription = JobDescription;\n this.type = 148013059;\n }\n }\n IFC2X32.IfcSubContractResource = IfcSubContractResource;\n class IfcSwitchingDeviceType extends IfcFlowControllerType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2315554128;\n }\n }\n IFC2X32.IfcSwitchingDeviceType = IfcSwitchingDeviceType;\n class IfcSystem extends IfcGroup {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.type = 2254336722;\n }\n }\n IFC2X32.IfcSystem = IfcSystem;\n class IfcTankType extends IfcFlowStorageDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 5716631;\n }\n }\n IFC2X32.IfcTankType = IfcTankType;\n class IfcTimeSeriesSchedule extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ApplicableDates, TimeSeriesScheduleType, TimeSeries) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ApplicableDates = ApplicableDates;\n this.TimeSeriesScheduleType = TimeSeriesScheduleType;\n this.TimeSeries = TimeSeries;\n this.type = 1637806684;\n }\n }\n IFC2X32.IfcTimeSeriesSchedule = IfcTimeSeriesSchedule;\n class IfcTransformerType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1692211062;\n }\n }\n IFC2X32.IfcTransformerType = IfcTransformerType;\n class IfcTransportElement extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OperationType, CapacityByWeight, CapacityByNumber) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.OperationType = OperationType;\n this.CapacityByWeight = CapacityByWeight;\n this.CapacityByNumber = CapacityByNumber;\n this.type = 1620046519;\n }\n }\n IFC2X32.IfcTransportElement = IfcTransportElement;\n class IfcTrimmedCurve extends IfcBoundedCurve {\n constructor(BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation) {\n super();\n this.BasisCurve = BasisCurve;\n this.Trim1 = Trim1;\n this.Trim2 = Trim2;\n this.SenseAgreement = SenseAgreement;\n this.MasterRepresentation = MasterRepresentation;\n this.type = 3593883385;\n }\n }\n IFC2X32.IfcTrimmedCurve = IfcTrimmedCurve;\n class IfcTubeBundleType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1600972822;\n }\n }\n IFC2X32.IfcTubeBundleType = IfcTubeBundleType;\n class IfcUnitaryEquipmentType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1911125066;\n }\n }\n IFC2X32.IfcUnitaryEquipmentType = IfcUnitaryEquipmentType;\n class IfcValveType extends IfcFlowControllerType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 728799441;\n }\n }\n IFC2X32.IfcValveType = IfcValveType;\n class IfcVirtualElement extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 2769231204;\n }\n }\n IFC2X32.IfcVirtualElement = IfcVirtualElement;\n class IfcWallType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1898987631;\n }\n }\n IFC2X32.IfcWallType = IfcWallType;\n class IfcWasteTerminalType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1133259667;\n }\n }\n IFC2X32.IfcWasteTerminalType = IfcWasteTerminalType;\n class IfcWorkControl extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identifier = Identifier;\n this.CreationDate = CreationDate;\n this.Creators = Creators;\n this.Purpose = Purpose;\n this.Duration = Duration;\n this.TotalFloat = TotalFloat;\n this.StartTime = StartTime;\n this.FinishTime = FinishTime;\n this.WorkControlType = WorkControlType;\n this.UserDefinedControlType = UserDefinedControlType;\n this.type = 1028945134;\n }\n }\n IFC2X32.IfcWorkControl = IfcWorkControl;\n class IfcWorkPlan extends IfcWorkControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identifier = Identifier;\n this.CreationDate = CreationDate;\n this.Creators = Creators;\n this.Purpose = Purpose;\n this.Duration = Duration;\n this.TotalFloat = TotalFloat;\n this.StartTime = StartTime;\n this.FinishTime = FinishTime;\n this.WorkControlType = WorkControlType;\n this.UserDefinedControlType = UserDefinedControlType;\n this.type = 4218914973;\n }\n }\n IFC2X32.IfcWorkPlan = IfcWorkPlan;\n class IfcWorkSchedule extends IfcWorkControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identifier = Identifier;\n this.CreationDate = CreationDate;\n this.Creators = Creators;\n this.Purpose = Purpose;\n this.Duration = Duration;\n this.TotalFloat = TotalFloat;\n this.StartTime = StartTime;\n this.FinishTime = FinishTime;\n this.WorkControlType = WorkControlType;\n this.UserDefinedControlType = UserDefinedControlType;\n this.type = 3342526732;\n }\n }\n IFC2X32.IfcWorkSchedule = IfcWorkSchedule;\n class IfcZone extends IfcGroup {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.type = 1033361043;\n }\n }\n IFC2X32.IfcZone = IfcZone;\n class Ifc2DCompositeCurve extends IfcCompositeCurve {\n constructor(Segments, SelfIntersect) {\n super(Segments, SelfIntersect);\n this.Segments = Segments;\n this.SelfIntersect = SelfIntersect;\n this.type = 1213861670;\n }\n }\n IFC2X32.Ifc2DCompositeCurve = Ifc2DCompositeCurve;\n class IfcActionRequest extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, RequestID) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.RequestID = RequestID;\n this.type = 3821786052;\n }\n }\n IFC2X32.IfcActionRequest = IfcActionRequest;\n class IfcAirTerminalBoxType extends IfcFlowControllerType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1411407467;\n }\n }\n IFC2X32.IfcAirTerminalBoxType = IfcAirTerminalBoxType;\n class IfcAirTerminalType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3352864051;\n }\n }\n IFC2X32.IfcAirTerminalType = IfcAirTerminalType;\n class IfcAirToAirHeatRecoveryType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1871374353;\n }\n }\n IFC2X32.IfcAirToAirHeatRecoveryType = IfcAirToAirHeatRecoveryType;\n class IfcAngularDimension extends IfcDimensionCurveDirectedCallout {\n constructor(Contents) {\n super(Contents);\n this.Contents = Contents;\n this.type = 2470393545;\n }\n }\n IFC2X32.IfcAngularDimension = IfcAngularDimension;\n class IfcAsset extends IfcGroup {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, AssetID, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.AssetID = AssetID;\n this.OriginalValue = OriginalValue;\n this.CurrentValue = CurrentValue;\n this.TotalReplacementCost = TotalReplacementCost;\n this.Owner = Owner;\n this.User = User;\n this.ResponsiblePerson = ResponsiblePerson;\n this.IncorporationDate = IncorporationDate;\n this.DepreciatedValue = DepreciatedValue;\n this.type = 3460190687;\n }\n }\n IFC2X32.IfcAsset = IfcAsset;\n class IfcBSplineCurve extends IfcBoundedCurve {\n constructor(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) {\n super();\n this.Degree = Degree;\n this.ControlPointsList = ControlPointsList;\n this.CurveForm = CurveForm;\n this.ClosedCurve = ClosedCurve;\n this.SelfIntersect = SelfIntersect;\n this.type = 1967976161;\n }\n }\n IFC2X32.IfcBSplineCurve = IfcBSplineCurve;\n class IfcBeamType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 819618141;\n }\n }\n IFC2X32.IfcBeamType = IfcBeamType;\n class IfcBezierCurve extends IfcBSplineCurve {\n constructor(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) {\n super(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect);\n this.Degree = Degree;\n this.ControlPointsList = ControlPointsList;\n this.CurveForm = CurveForm;\n this.ClosedCurve = ClosedCurve;\n this.SelfIntersect = SelfIntersect;\n this.type = 1916977116;\n }\n }\n IFC2X32.IfcBezierCurve = IfcBezierCurve;\n class IfcBoilerType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 231477066;\n }\n }\n IFC2X32.IfcBoilerType = IfcBoilerType;\n class IfcBuildingElement extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 3299480353;\n }\n }\n IFC2X32.IfcBuildingElement = IfcBuildingElement;\n class IfcBuildingElementComponent extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 52481810;\n }\n }\n IFC2X32.IfcBuildingElementComponent = IfcBuildingElementComponent;\n class IfcBuildingElementPart extends IfcBuildingElementComponent {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 2979338954;\n }\n }\n IFC2X32.IfcBuildingElementPart = IfcBuildingElementPart;\n class IfcBuildingElementProxy extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, CompositionType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.CompositionType = CompositionType;\n this.type = 1095909175;\n }\n }\n IFC2X32.IfcBuildingElementProxy = IfcBuildingElementProxy;\n class IfcBuildingElementProxyType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1909888760;\n }\n }\n IFC2X32.IfcBuildingElementProxyType = IfcBuildingElementProxyType;\n class IfcCableCarrierFittingType extends IfcFlowFittingType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 395041908;\n }\n }\n IFC2X32.IfcCableCarrierFittingType = IfcCableCarrierFittingType;\n class IfcCableCarrierSegmentType extends IfcFlowSegmentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3293546465;\n }\n }\n IFC2X32.IfcCableCarrierSegmentType = IfcCableCarrierSegmentType;\n class IfcCableSegmentType extends IfcFlowSegmentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1285652485;\n }\n }\n IFC2X32.IfcCableSegmentType = IfcCableSegmentType;\n class IfcChillerType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2951183804;\n }\n }\n IFC2X32.IfcChillerType = IfcChillerType;\n class IfcCircle extends IfcConic {\n constructor(Position, Radius) {\n super(Position);\n this.Position = Position;\n this.Radius = Radius;\n this.type = 2611217952;\n }\n }\n IFC2X32.IfcCircle = IfcCircle;\n class IfcCoilType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2301859152;\n }\n }\n IFC2X32.IfcCoilType = IfcCoilType;\n class IfcColumn extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 843113511;\n }\n }\n IFC2X32.IfcColumn = IfcColumn;\n class IfcCompressorType extends IfcFlowMovingDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3850581409;\n }\n }\n IFC2X32.IfcCompressorType = IfcCompressorType;\n class IfcCondenserType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2816379211;\n }\n }\n IFC2X32.IfcCondenserType = IfcCondenserType;\n class IfcCondition extends IfcGroup {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.type = 2188551683;\n }\n }\n IFC2X32.IfcCondition = IfcCondition;\n class IfcConditionCriterion extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Criterion, CriterionDateTime) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Criterion = Criterion;\n this.CriterionDateTime = CriterionDateTime;\n this.type = 1163958913;\n }\n }\n IFC2X32.IfcConditionCriterion = IfcConditionCriterion;\n class IfcConstructionEquipmentResource extends IfcConstructionResource {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ResourceIdentifier = ResourceIdentifier;\n this.ResourceGroup = ResourceGroup;\n this.ResourceConsumption = ResourceConsumption;\n this.BaseQuantity = BaseQuantity;\n this.type = 3898045240;\n }\n }\n IFC2X32.IfcConstructionEquipmentResource = IfcConstructionEquipmentResource;\n class IfcConstructionMaterialResource extends IfcConstructionResource {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity, Suppliers, UsageRatio) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ResourceIdentifier = ResourceIdentifier;\n this.ResourceGroup = ResourceGroup;\n this.ResourceConsumption = ResourceConsumption;\n this.BaseQuantity = BaseQuantity;\n this.Suppliers = Suppliers;\n this.UsageRatio = UsageRatio;\n this.type = 1060000209;\n }\n }\n IFC2X32.IfcConstructionMaterialResource = IfcConstructionMaterialResource;\n class IfcConstructionProductResource extends IfcConstructionResource {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ResourceIdentifier = ResourceIdentifier;\n this.ResourceGroup = ResourceGroup;\n this.ResourceConsumption = ResourceConsumption;\n this.BaseQuantity = BaseQuantity;\n this.type = 488727124;\n }\n }\n IFC2X32.IfcConstructionProductResource = IfcConstructionProductResource;\n class IfcCooledBeamType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 335055490;\n }\n }\n IFC2X32.IfcCooledBeamType = IfcCooledBeamType;\n class IfcCoolingTowerType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2954562838;\n }\n }\n IFC2X32.IfcCoolingTowerType = IfcCoolingTowerType;\n class IfcCovering extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1973544240;\n }\n }\n IFC2X32.IfcCovering = IfcCovering;\n class IfcCurtainWall extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 3495092785;\n }\n }\n IFC2X32.IfcCurtainWall = IfcCurtainWall;\n class IfcDamperType extends IfcFlowControllerType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3961806047;\n }\n }\n IFC2X32.IfcDamperType = IfcDamperType;\n class IfcDiameterDimension extends IfcDimensionCurveDirectedCallout {\n constructor(Contents) {\n super(Contents);\n this.Contents = Contents;\n this.type = 4147604152;\n }\n }\n IFC2X32.IfcDiameterDimension = IfcDiameterDimension;\n class IfcDiscreteAccessory extends IfcElementComponent {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 1335981549;\n }\n }\n IFC2X32.IfcDiscreteAccessory = IfcDiscreteAccessory;\n class IfcDiscreteAccessoryType extends IfcElementComponentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 2635815018;\n }\n }\n IFC2X32.IfcDiscreteAccessoryType = IfcDiscreteAccessoryType;\n class IfcDistributionChamberElementType extends IfcDistributionFlowElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1599208980;\n }\n }\n IFC2X32.IfcDistributionChamberElementType = IfcDistributionChamberElementType;\n class IfcDistributionControlElementType extends IfcDistributionElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 2063403501;\n }\n }\n IFC2X32.IfcDistributionControlElementType = IfcDistributionControlElementType;\n class IfcDistributionElement extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 1945004755;\n }\n }\n IFC2X32.IfcDistributionElement = IfcDistributionElement;\n class IfcDistributionFlowElement extends IfcDistributionElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 3040386961;\n }\n }\n IFC2X32.IfcDistributionFlowElement = IfcDistributionFlowElement;\n class IfcDistributionPort extends IfcPort {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.FlowDirection = FlowDirection;\n this.type = 3041715199;\n }\n }\n IFC2X32.IfcDistributionPort = IfcDistributionPort;\n class IfcDoor extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.OverallHeight = OverallHeight;\n this.OverallWidth = OverallWidth;\n this.type = 395920057;\n }\n }\n IFC2X32.IfcDoor = IfcDoor;\n class IfcDuctFittingType extends IfcFlowFittingType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 869906466;\n }\n }\n IFC2X32.IfcDuctFittingType = IfcDuctFittingType;\n class IfcDuctSegmentType extends IfcFlowSegmentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3760055223;\n }\n }\n IFC2X32.IfcDuctSegmentType = IfcDuctSegmentType;\n class IfcDuctSilencerType extends IfcFlowTreatmentDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2030761528;\n }\n }\n IFC2X32.IfcDuctSilencerType = IfcDuctSilencerType;\n class IfcEdgeFeature extends IfcFeatureElementSubtraction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.FeatureLength = FeatureLength;\n this.type = 855621170;\n }\n }\n IFC2X32.IfcEdgeFeature = IfcEdgeFeature;\n class IfcElectricApplianceType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 663422040;\n }\n }\n IFC2X32.IfcElectricApplianceType = IfcElectricApplianceType;\n class IfcElectricFlowStorageDeviceType extends IfcFlowStorageDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3277789161;\n }\n }\n IFC2X32.IfcElectricFlowStorageDeviceType = IfcElectricFlowStorageDeviceType;\n class IfcElectricGeneratorType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1534661035;\n }\n }\n IFC2X32.IfcElectricGeneratorType = IfcElectricGeneratorType;\n class IfcElectricHeaterType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1365060375;\n }\n }\n IFC2X32.IfcElectricHeaterType = IfcElectricHeaterType;\n class IfcElectricMotorType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1217240411;\n }\n }\n IFC2X32.IfcElectricMotorType = IfcElectricMotorType;\n class IfcElectricTimeControlType extends IfcFlowControllerType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 712377611;\n }\n }\n IFC2X32.IfcElectricTimeControlType = IfcElectricTimeControlType;\n class IfcElectricalCircuit extends IfcSystem {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.type = 1634875225;\n }\n }\n IFC2X32.IfcElectricalCircuit = IfcElectricalCircuit;\n class IfcElectricalElement extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 857184966;\n }\n }\n IFC2X32.IfcElectricalElement = IfcElectricalElement;\n class IfcEnergyConversionDevice extends IfcDistributionFlowElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 1658829314;\n }\n }\n IFC2X32.IfcEnergyConversionDevice = IfcEnergyConversionDevice;\n class IfcFanType extends IfcFlowMovingDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 346874300;\n }\n }\n IFC2X32.IfcFanType = IfcFanType;\n class IfcFilterType extends IfcFlowTreatmentDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1810631287;\n }\n }\n IFC2X32.IfcFilterType = IfcFilterType;\n class IfcFireSuppressionTerminalType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 4222183408;\n }\n }\n IFC2X32.IfcFireSuppressionTerminalType = IfcFireSuppressionTerminalType;\n class IfcFlowController extends IfcDistributionFlowElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 2058353004;\n }\n }\n IFC2X32.IfcFlowController = IfcFlowController;\n class IfcFlowFitting extends IfcDistributionFlowElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 4278956645;\n }\n }\n IFC2X32.IfcFlowFitting = IfcFlowFitting;\n class IfcFlowInstrumentType extends IfcDistributionControlElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 4037862832;\n }\n }\n IFC2X32.IfcFlowInstrumentType = IfcFlowInstrumentType;\n class IfcFlowMovingDevice extends IfcDistributionFlowElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 3132237377;\n }\n }\n IFC2X32.IfcFlowMovingDevice = IfcFlowMovingDevice;\n class IfcFlowSegment extends IfcDistributionFlowElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 987401354;\n }\n }\n IFC2X32.IfcFlowSegment = IfcFlowSegment;\n class IfcFlowStorageDevice extends IfcDistributionFlowElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 707683696;\n }\n }\n IFC2X32.IfcFlowStorageDevice = IfcFlowStorageDevice;\n class IfcFlowTerminal extends IfcDistributionFlowElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 2223149337;\n }\n }\n IFC2X32.IfcFlowTerminal = IfcFlowTerminal;\n class IfcFlowTreatmentDevice extends IfcDistributionFlowElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 3508470533;\n }\n }\n IFC2X32.IfcFlowTreatmentDevice = IfcFlowTreatmentDevice;\n class IfcFooting extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 900683007;\n }\n }\n IFC2X32.IfcFooting = IfcFooting;\n class IfcMember extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 1073191201;\n }\n }\n IFC2X32.IfcMember = IfcMember;\n class IfcPile extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.ConstructionType = ConstructionType;\n this.type = 1687234759;\n }\n }\n IFC2X32.IfcPile = IfcPile;\n class IfcPlate extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 3171933400;\n }\n }\n IFC2X32.IfcPlate = IfcPlate;\n class IfcRailing extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2262370178;\n }\n }\n IFC2X32.IfcRailing = IfcRailing;\n class IfcRamp extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ShapeType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.ShapeType = ShapeType;\n this.type = 3024970846;\n }\n }\n IFC2X32.IfcRamp = IfcRamp;\n class IfcRampFlight extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 3283111854;\n }\n }\n IFC2X32.IfcRampFlight = IfcRampFlight;\n class IfcRationalBezierCurve extends IfcBezierCurve {\n constructor(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, WeightsData) {\n super(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect);\n this.Degree = Degree;\n this.ControlPointsList = ControlPointsList;\n this.CurveForm = CurveForm;\n this.ClosedCurve = ClosedCurve;\n this.SelfIntersect = SelfIntersect;\n this.WeightsData = WeightsData;\n this.type = 3055160366;\n }\n }\n IFC2X32.IfcRationalBezierCurve = IfcRationalBezierCurve;\n class IfcReinforcingElement extends IfcBuildingElementComponent {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.SteelGrade = SteelGrade;\n this.type = 3027567501;\n }\n }\n IFC2X32.IfcReinforcingElement = IfcReinforcingElement;\n class IfcReinforcingMesh extends IfcReinforcingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.SteelGrade = SteelGrade;\n this.MeshLength = MeshLength;\n this.MeshWidth = MeshWidth;\n this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter;\n this.TransverseBarNominalDiameter = TransverseBarNominalDiameter;\n this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea;\n this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea;\n this.LongitudinalBarSpacing = LongitudinalBarSpacing;\n this.TransverseBarSpacing = TransverseBarSpacing;\n this.type = 2320036040;\n }\n }\n IFC2X32.IfcReinforcingMesh = IfcReinforcingMesh;\n class IfcRoof extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ShapeType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.ShapeType = ShapeType;\n this.type = 2016517767;\n }\n }\n IFC2X32.IfcRoof = IfcRoof;\n class IfcRoundedEdgeFeature extends IfcEdgeFeature {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength, Radius) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.FeatureLength = FeatureLength;\n this.Radius = Radius;\n this.type = 1376911519;\n }\n }\n IFC2X32.IfcRoundedEdgeFeature = IfcRoundedEdgeFeature;\n class IfcSensorType extends IfcDistributionControlElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1783015770;\n }\n }\n IFC2X32.IfcSensorType = IfcSensorType;\n class IfcSlab extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1529196076;\n }\n }\n IFC2X32.IfcSlab = IfcSlab;\n class IfcStair extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ShapeType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.ShapeType = ShapeType;\n this.type = 331165859;\n }\n }\n IFC2X32.IfcStair = IfcStair;\n class IfcStairFlight extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRiser, NumberOfTreads, RiserHeight, TreadLength) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.NumberOfRiser = NumberOfRiser;\n this.NumberOfTreads = NumberOfTreads;\n this.RiserHeight = RiserHeight;\n this.TreadLength = TreadLength;\n this.type = 4252922144;\n }\n }\n IFC2X32.IfcStairFlight = IfcStairFlight;\n class IfcStructuralAnalysisModel extends IfcSystem {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.PredefinedType = PredefinedType;\n this.OrientationOf2DPlane = OrientationOf2DPlane;\n this.LoadedBy = LoadedBy;\n this.HasResults = HasResults;\n this.type = 2515109513;\n }\n }\n IFC2X32.IfcStructuralAnalysisModel = IfcStructuralAnalysisModel;\n class IfcTendon extends IfcReinforcingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.SteelGrade = SteelGrade;\n this.PredefinedType = PredefinedType;\n this.NominalDiameter = NominalDiameter;\n this.CrossSectionArea = CrossSectionArea;\n this.TensionForce = TensionForce;\n this.PreStress = PreStress;\n this.FrictionCoefficient = FrictionCoefficient;\n this.AnchorageSlip = AnchorageSlip;\n this.MinCurvatureRadius = MinCurvatureRadius;\n this.type = 3824725483;\n }\n }\n IFC2X32.IfcTendon = IfcTendon;\n class IfcTendonAnchor extends IfcReinforcingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.SteelGrade = SteelGrade;\n this.type = 2347447852;\n }\n }\n IFC2X32.IfcTendonAnchor = IfcTendonAnchor;\n class IfcVibrationIsolatorType extends IfcDiscreteAccessoryType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3313531582;\n }\n }\n IFC2X32.IfcVibrationIsolatorType = IfcVibrationIsolatorType;\n class IfcWall extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 2391406946;\n }\n }\n IFC2X32.IfcWall = IfcWall;\n class IfcWallStandardCase extends IfcWall {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 3512223829;\n }\n }\n IFC2X32.IfcWallStandardCase = IfcWallStandardCase;\n class IfcWindow extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.OverallHeight = OverallHeight;\n this.OverallWidth = OverallWidth;\n this.type = 3304561284;\n }\n }\n IFC2X32.IfcWindow = IfcWindow;\n class IfcActuatorType extends IfcDistributionControlElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2874132201;\n }\n }\n IFC2X32.IfcActuatorType = IfcActuatorType;\n class IfcAlarmType extends IfcDistributionControlElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3001207471;\n }\n }\n IFC2X32.IfcAlarmType = IfcAlarmType;\n class IfcBeam extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 753842376;\n }\n }\n IFC2X32.IfcBeam = IfcBeam;\n class IfcChamferEdgeFeature extends IfcEdgeFeature {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength, Width, Height) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.FeatureLength = FeatureLength;\n this.Width = Width;\n this.Height = Height;\n this.type = 2454782716;\n }\n }\n IFC2X32.IfcChamferEdgeFeature = IfcChamferEdgeFeature;\n class IfcControllerType extends IfcDistributionControlElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 578613899;\n }\n }\n IFC2X32.IfcControllerType = IfcControllerType;\n class IfcDistributionChamberElement extends IfcDistributionFlowElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 1052013943;\n }\n }\n IFC2X32.IfcDistributionChamberElement = IfcDistributionChamberElement;\n class IfcDistributionControlElement extends IfcDistributionElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ControlElementId) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.ControlElementId = ControlElementId;\n this.type = 1062813311;\n }\n }\n IFC2X32.IfcDistributionControlElement = IfcDistributionControlElement;\n class IfcElectricDistributionPoint extends IfcFlowController {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, DistributionPointFunction, UserDefinedFunction) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.DistributionPointFunction = DistributionPointFunction;\n this.UserDefinedFunction = UserDefinedFunction;\n this.type = 3700593921;\n }\n }\n IFC2X32.IfcElectricDistributionPoint = IfcElectricDistributionPoint;\n class IfcReinforcingBar extends IfcReinforcingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, BarRole, BarSurface) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.SteelGrade = SteelGrade;\n this.NominalDiameter = NominalDiameter;\n this.CrossSectionArea = CrossSectionArea;\n this.BarLength = BarLength;\n this.BarRole = BarRole;\n this.BarSurface = BarSurface;\n this.type = 979691226;\n }\n }\n IFC2X32.IfcReinforcingBar = IfcReinforcingBar;\n})(IFC2X3 || (IFC2X3 = {}));\nSchemaNames[2] = [\"IFC4\", \"IFC4X1\", \"IFC4X2\"];\nFromRawLineData[2] = {\n 3630933823: (v) => new IFC4.IfcActorRole(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcText(!v[2] ? null : v[2].value)),\n 618182010: (v) => new IFC4.IfcAddress(v[0], !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value)),\n 639542469: (v) => new IFC4.IfcApplication(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcLabel(!v[1] ? null : v[1].value), new IFC4.IfcLabel(!v[2] ? null : v[2].value), new IFC4.IfcIdentifier(!v[3] ? null : v[3].value)),\n 411424972: (v) => {\n var _a;\n return new IFC4.IfcAppliedValue(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcDate(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcDate(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 130549933: (v) => new IFC4.IfcApproval(!v[0] ? null : new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcDateTime(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),\n 4037036970: (v) => new IFC4.IfcBoundaryCondition(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value)),\n 1560379544: (v) => new IFC4.IfcBoundaryEdgeCondition(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : TypeInitialiser(2, v[1]), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : TypeInitialiser(2, v[4]), !v[5] ? null : TypeInitialiser(2, v[5]), !v[6] ? null : TypeInitialiser(2, v[6])),\n 3367102660: (v) => new IFC4.IfcBoundaryFaceCondition(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : TypeInitialiser(2, v[1]), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : TypeInitialiser(2, v[3])),\n 1387855156: (v) => new IFC4.IfcBoundaryNodeCondition(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : TypeInitialiser(2, v[1]), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : TypeInitialiser(2, v[4]), !v[5] ? null : TypeInitialiser(2, v[5]), !v[6] ? null : TypeInitialiser(2, v[6])),\n 2069777674: (v) => new IFC4.IfcBoundaryNodeConditionWarping(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : TypeInitialiser(2, v[1]), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : TypeInitialiser(2, v[4]), !v[5] ? null : TypeInitialiser(2, v[5]), !v[6] ? null : TypeInitialiser(2, v[6]), !v[7] ? null : TypeInitialiser(2, v[7])),\n 2859738748: (_) => new IFC4.IfcConnectionGeometry(),\n 2614616156: (v) => new IFC4.IfcConnectionPointGeometry(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),\n 2732653382: (v) => new IFC4.IfcConnectionSurfaceGeometry(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),\n 775493141: (v) => new IFC4.IfcConnectionVolumeGeometry(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),\n 1959218052: (v) => new IFC4.IfcConstraint(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC4.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcLabel(!v[6] ? null : v[6].value)),\n 1785450214: (v) => new IFC4.IfcCoordinateOperation(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),\n 1466758467: (v) => new IFC4.IfcCoordinateReferenceSystem(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcIdentifier(!v[3] ? null : v[3].value)),\n 602808272: (v) => {\n var _a;\n return new IFC4.IfcCostValue(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcDate(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcDate(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1765591967: (v) => {\n var _a;\n return new IFC4.IfcDerivedUnit(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[1], !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value));\n },\n 1045800335: (v) => new IFC4.IfcDerivedUnitElement(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : v[1].value),\n 2949456006: (v) => new IFC4.IfcDimensionalExponents(!v[0] ? null : v[0].value, !v[1] ? null : v[1].value, !v[2] ? null : v[2].value, !v[3] ? null : v[3].value, !v[4] ? null : v[4].value, !v[5] ? null : v[5].value, !v[6] ? null : v[6].value),\n 4294318154: (_) => new IFC4.IfcExternalInformation(),\n 3200245327: (v) => new IFC4.IfcExternalReference(!v[0] ? null : new IFC4.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value)),\n 2242383968: (v) => new IFC4.IfcExternallyDefinedHatchStyle(!v[0] ? null : new IFC4.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value)),\n 1040185647: (v) => new IFC4.IfcExternallyDefinedSurfaceStyle(!v[0] ? null : new IFC4.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value)),\n 3548104201: (v) => new IFC4.IfcExternallyDefinedTextFont(!v[0] ? null : new IFC4.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value)),\n 852622518: (v) => new IFC4.IfcGridAxis(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new IFC4.IfcBoolean(!v[2] ? null : v[2].value)),\n 3020489413: (v) => {\n var _a;\n return new IFC4.IfcIrregularTimeSeriesValue(new IFC4.IfcDateTime(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || []);\n },\n 2655187982: (v) => new IFC4.IfcLibraryInformation(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcDateTime(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcURIReference(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcText(!v[5] ? null : v[5].value)),\n 3452421091: (v) => new IFC4.IfcLibraryReference(!v[0] ? null : new IFC4.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLanguageId(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value)),\n 4162380809: (v) => {\n var _a, _b;\n return new IFC4.IfcLightDistributionData(new IFC4.IfcPlaneAngleMeasure(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcPlaneAngleMeasure(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcLuminousIntensityDistributionMeasure(p.value) : null)) || []);\n },\n 1566485204: (v) => {\n var _a;\n return new IFC4.IfcLightIntensityDistribution(v[0], ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3057273783: (v) => new IFC4.IfcMapConversion(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new IFC4.IfcLengthMeasure(!v[2] ? null : v[2].value), new IFC4.IfcLengthMeasure(!v[3] ? null : v[3].value), new IFC4.IfcLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcReal(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcReal(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcReal(!v[7] ? null : v[7].value)),\n 1847130766: (v) => {\n var _a;\n return new IFC4.IfcMaterialClassificationRelationship(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value));\n },\n 760658860: (_) => new IFC4.IfcMaterialDefinition(),\n 248100487: (v) => new IFC4.IfcMaterialLayer(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new IFC4.IfcNonNegativeLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLogical(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcInteger(!v[6] ? null : v[6].value)),\n 3303938423: (v) => {\n var _a;\n return new IFC4.IfcMaterialLayerSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcText(!v[2] ? null : v[2].value));\n },\n 1847252529: (v) => new IFC4.IfcMaterialLayerWithOffsets(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new IFC4.IfcNonNegativeLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLogical(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcInteger(!v[6] ? null : v[6].value), v[7], new IFC4.IfcLengthMeasure(!v[8] ? null : v[8].value)),\n 2199411900: (v) => {\n var _a;\n return new IFC4.IfcMaterialList(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2235152071: (v) => new IFC4.IfcMaterialProfile(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcInteger(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value)),\n 164193824: (v) => {\n var _a;\n return new IFC4.IfcMaterialProfileSet(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[3] ? null : new Handle(!v[3] ? null : v[3].value));\n },\n 552965576: (v) => new IFC4.IfcMaterialProfileWithOffsets(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcInteger(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value), new IFC4.IfcLengthMeasure(!v[6] ? null : v[6].value)),\n 1507914824: (_) => new IFC4.IfcMaterialUsageDefinition(),\n 2597039031: (v) => new IFC4.IfcMeasureWithUnit(TypeInitialiser(2, v[0]), new Handle(!v[1] ? null : v[1].value)),\n 3368373690: (v) => new IFC4.IfcMetric(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC4.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new Handle(!v[10] ? null : v[10].value)),\n 2706619895: (v) => new IFC4.IfcMonetaryUnit(new IFC4.IfcLabel(!v[0] ? null : v[0].value)),\n 1918398963: (v) => new IFC4.IfcNamedUnit(new Handle(!v[0] ? null : v[0].value), v[1]),\n 3701648758: (_) => new IFC4.IfcObjectPlacement(),\n 2251480897: (v) => {\n var _a;\n return new IFC4.IfcObjective(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC4.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[8], v[9], !v[10] ? null : new IFC4.IfcLabel(!v[10] ? null : v[10].value));\n },\n 4251960020: (v) => {\n var _a, _b;\n return new IFC4.IfcOrganization(!v[0] ? null : new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[4] ? null : ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1207048766: (v) => new IFC4.IfcOwnerHistory(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), v[2], v[3], !v[4] ? null : new IFC4.IfcTimeStamp(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new IFC4.IfcTimeStamp(!v[7] ? null : v[7].value)),\n 2077209135: (v) => {\n var _a, _b, _c, _d, _e;\n return new IFC4.IfcPerson(!v[0] ? null : new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcLabel(p.value) : null)) || [], !v[4] ? null : ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcLabel(p.value) : null)) || [], !v[5] ? null : ((_c = v[5]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcLabel(p.value) : null)) || [], !v[6] ? null : ((_d = v[6]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : ((_e = v[7]) == null ? void 0 : _e.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 101040310: (v) => {\n var _a;\n return new IFC4.IfcPersonAndOrganization(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2483315170: (v) => new IFC4.IfcPhysicalQuantity(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value)),\n 2226359599: (v) => new IFC4.IfcPhysicalSimpleQuantity(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value)),\n 3355820592: (v) => {\n var _a;\n return new IFC4.IfcPostalAddress(v[0], !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcLabel(p.value) : null)) || [], !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcLabel(!v[9] ? null : v[9].value));\n },\n 677532197: (_) => new IFC4.IfcPresentationItem(),\n 2022622350: (v) => {\n var _a;\n return new IFC4.IfcPresentationLayerAssignment(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[3] ? null : new IFC4.IfcIdentifier(!v[3] ? null : v[3].value));\n },\n 1304840413: (v) => {\n var _a, _b;\n return new IFC4.IfcPresentationLayerWithStyle(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[3] ? null : new IFC4.IfcIdentifier(!v[3] ? null : v[3].value), new IFC4.IfcLogical(!v[4] ? null : v[4].value), new IFC4.IfcLogical(!v[5] ? null : v[5].value), new IFC4.IfcLogical(!v[6] ? null : v[6].value), !v[7] ? null : ((_b = v[7]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3119450353: (v) => new IFC4.IfcPresentationStyle(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value)),\n 2417041796: (v) => {\n var _a;\n return new IFC4.IfcPresentationStyleAssignment(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2095639259: (v) => {\n var _a;\n return new IFC4.IfcProductRepresentation(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3958567839: (v) => new IFC4.IfcProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value)),\n 3843373140: (v) => new IFC4.IfcProjectedCRS(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcIdentifier(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),\n 986844984: (_) => new IFC4.IfcPropertyAbstraction(),\n 3710013099: (v) => {\n var _a;\n return new IFC4.IfcPropertyEnumeration(new IFC4.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || [], !v[2] ? null : new Handle(!v[2] ? null : v[2].value));\n },\n 2044713172: (v) => new IFC4.IfcQuantityArea(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcAreaMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value)),\n 2093928680: (v) => new IFC4.IfcQuantityCount(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcCountMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value)),\n 931644368: (v) => new IFC4.IfcQuantityLength(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value)),\n 3252649465: (v) => new IFC4.IfcQuantityTime(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcTimeMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value)),\n 2405470396: (v) => new IFC4.IfcQuantityVolume(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcVolumeMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value)),\n 825690147: (v) => new IFC4.IfcQuantityWeight(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcMassMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value)),\n 3915482550: (v) => {\n var _a, _b, _c, _d;\n return new IFC4.IfcRecurrencePattern(v[0], !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcDayInMonthNumber(p.value) : null)) || [], !v[2] ? null : ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcDayInWeekNumber(p.value) : null)) || [], !v[3] ? null : ((_c = v[3]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcMonthInYearNumber(p.value) : null)) || [], !v[4] ? null : new IFC4.IfcInteger(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcInteger(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcInteger(!v[6] ? null : v[6].value), !v[7] ? null : ((_d = v[7]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2433181523: (v) => {\n var _a;\n return new IFC4.IfcReference(!v[0] ? null : new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcInteger(p.value) : null)) || [], !v[4] ? null : new Handle(!v[4] ? null : v[4].value));\n },\n 1076942058: (v) => {\n var _a;\n return new IFC4.IfcRepresentation(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3377609919: (v) => new IFC4.IfcRepresentationContext(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value)),\n 3008791417: (_) => new IFC4.IfcRepresentationItem(),\n 1660063152: (v) => new IFC4.IfcRepresentationMap(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),\n 2439245199: (v) => new IFC4.IfcResourceLevelRelationship(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value)),\n 2341007311: (v) => new IFC4.IfcRoot(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value)),\n 448429030: (v) => new IFC4.IfcSIUnit(v[0], v[1], v[2]),\n 1054537805: (v) => new IFC4.IfcSchedulingTime(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value)),\n 867548509: (v) => {\n var _a;\n return new IFC4.IfcShapeAspect(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcText(!v[2] ? null : v[2].value), new IFC4.IfcLogical(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value));\n },\n 3982875396: (v) => {\n var _a;\n return new IFC4.IfcShapeModel(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 4240577450: (v) => {\n var _a;\n return new IFC4.IfcShapeRepresentation(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2273995522: (v) => new IFC4.IfcStructuralConnectionCondition(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value)),\n 2162789131: (v) => new IFC4.IfcStructuralLoad(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value)),\n 3478079324: (v) => {\n var _a, _b;\n return new IFC4.IfcStructuralLoadConfiguration(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : (_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4.IfcLengthMeasure(p2.value) : null)) || []));\n },\n 609421318: (v) => new IFC4.IfcStructuralLoadOrResult(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value)),\n 2525727697: (v) => new IFC4.IfcStructuralLoadStatic(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value)),\n 3408363356: (v) => new IFC4.IfcStructuralLoadTemperature(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcThermodynamicTemperatureMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcThermodynamicTemperatureMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcThermodynamicTemperatureMeasure(!v[3] ? null : v[3].value)),\n 2830218821: (v) => {\n var _a;\n return new IFC4.IfcStyleModel(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3958052878: (v) => {\n var _a;\n return new IFC4.IfcStyledItem(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value));\n },\n 3049322572: (v) => {\n var _a;\n return new IFC4.IfcStyledRepresentation(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2934153892: (v) => {\n var _a, _b;\n return new IFC4.IfcSurfaceReinforcementArea(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcLengthMeasure(p.value) : null)) || [], !v[2] ? null : ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcLengthMeasure(p.value) : null)) || [], !v[3] ? null : new IFC4.IfcRatioMeasure(!v[3] ? null : v[3].value));\n },\n 1300840506: (v) => {\n var _a;\n return new IFC4.IfcSurfaceStyle(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), v[1], ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3303107099: (v) => new IFC4.IfcSurfaceStyleLighting(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),\n 1607154358: (v) => new IFC4.IfcSurfaceStyleRefraction(!v[0] ? null : new IFC4.IfcReal(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcReal(!v[1] ? null : v[1].value)),\n 846575682: (v) => new IFC4.IfcSurfaceStyleShading(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value)),\n 1351298697: (v) => {\n var _a;\n return new IFC4.IfcSurfaceStyleWithTextures(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 626085974: (v) => {\n var _a;\n return new IFC4.IfcSurfaceTexture(new IFC4.IfcBoolean(!v[0] ? null : v[0].value), new IFC4.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcIdentifier(p.value) : null)) || []);\n },\n 985171141: (v) => {\n var _a, _b;\n return new IFC4.IfcTable(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2043862942: (v) => new IFC4.IfcTableColumn(!v[0] ? null : new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value)),\n 531007025: (v) => {\n var _a;\n return new IFC4.IfcTableRow(!v[0] ? null : ((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || [], !v[1] ? null : new IFC4.IfcBoolean(!v[1] ? null : v[1].value));\n },\n 1549132990: (v) => new IFC4.IfcTaskTime(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), v[3], !v[4] ? null : new IFC4.IfcDuration(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcDateTime(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcDateTime(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcDateTime(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcDateTime(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcDuration(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcDuration(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4.IfcBoolean(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4.IfcDateTime(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4.IfcDuration(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4.IfcDateTime(!v[16] ? null : v[16].value), !v[17] ? null : new IFC4.IfcDateTime(!v[17] ? null : v[17].value), !v[18] ? null : new IFC4.IfcDuration(!v[18] ? null : v[18].value), !v[19] ? null : new IFC4.IfcPositiveRatioMeasure(!v[19] ? null : v[19].value)),\n 2771591690: (v) => new IFC4.IfcTaskTimeRecurring(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), v[3], !v[4] ? null : new IFC4.IfcDuration(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcDateTime(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcDateTime(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcDateTime(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcDateTime(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcDuration(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcDuration(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4.IfcBoolean(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4.IfcDateTime(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4.IfcDuration(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4.IfcDateTime(!v[16] ? null : v[16].value), !v[17] ? null : new IFC4.IfcDateTime(!v[17] ? null : v[17].value), !v[18] ? null : new IFC4.IfcDuration(!v[18] ? null : v[18].value), !v[19] ? null : new IFC4.IfcPositiveRatioMeasure(!v[19] ? null : v[19].value), new Handle(!v[20] ? null : v[20].value)),\n 912023232: (v) => {\n var _a, _b, _c, _d;\n return new IFC4.IfcTelecomAddress(v[0], !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcLabel(p.value) : null)) || [], !v[4] ? null : ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcLabel(p.value) : null)) || [], !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : ((_c = v[6]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcLabel(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcURIReference(!v[7] ? null : v[7].value), !v[8] ? null : ((_d = v[8]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcURIReference(p.value) : null)) || []);\n },\n 1447204868: (v) => new IFC4.IfcTextStyle(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcBoolean(!v[4] ? null : v[4].value)),\n 2636378356: (v) => new IFC4.IfcTextStyleForDefinedFont(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),\n 1640371178: (v) => new IFC4.IfcTextStyleTextModel(!v[0] ? null : TypeInitialiser(2, v[0]), !v[1] ? null : new IFC4.IfcTextAlignment(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcTextDecoration(!v[2] ? null : v[2].value), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : TypeInitialiser(2, v[4]), !v[5] ? null : new IFC4.IfcTextTransformation(!v[5] ? null : v[5].value), !v[6] ? null : TypeInitialiser(2, v[6])),\n 280115917: (v) => {\n var _a;\n return new IFC4.IfcTextureCoordinate(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1742049831: (v) => {\n var _a, _b;\n return new IFC4.IfcTextureCoordinateGenerator(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcReal(p.value) : null)) || []);\n },\n 2552916305: (v) => {\n var _a, _b;\n return new IFC4.IfcTextureMap(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[2] ? null : v[2].value));\n },\n 1210645708: (v) => {\n var _a;\n return new IFC4.IfcTextureVertex(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcParameterValue(p.value) : null)) || []);\n },\n 3611470254: (v) => {\n var _a;\n return new IFC4.IfcTextureVertexList((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4.IfcParameterValue(p2.value) : null)) || []));\n },\n 1199560280: (v) => new IFC4.IfcTimePeriod(new IFC4.IfcTime(!v[0] ? null : v[0].value), new IFC4.IfcTime(!v[1] ? null : v[1].value)),\n 3101149627: (v) => new IFC4.IfcTimeSeries(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), new IFC4.IfcDateTime(!v[2] ? null : v[2].value), new IFC4.IfcDateTime(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value)),\n 581633288: (v) => {\n var _a;\n return new IFC4.IfcTimeSeriesValue(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || []);\n },\n 1377556343: (_) => new IFC4.IfcTopologicalRepresentationItem(),\n 1735638870: (v) => {\n var _a;\n return new IFC4.IfcTopologyRepresentation(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 180925521: (v) => {\n var _a;\n return new IFC4.IfcUnitAssignment(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2799835756: (_) => new IFC4.IfcVertex(),\n 1907098498: (v) => new IFC4.IfcVertexPoint(new Handle(!v[0] ? null : v[0].value)),\n 891718957: (v) => {\n var _a, _b;\n return new IFC4.IfcVirtualGridIntersection(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcLengthMeasure(p.value) : null)) || []);\n },\n 1236880293: (v) => new IFC4.IfcWorkTime(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcDate(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcDate(!v[5] ? null : v[5].value)),\n 3869604511: (v) => {\n var _a;\n return new IFC4.IfcApprovalRelationship(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3798115385: (v) => new IFC4.IfcArbitraryClosedProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),\n 1310608509: (v) => new IFC4.IfcArbitraryOpenProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),\n 2705031697: (v) => {\n var _a;\n return new IFC4.IfcArbitraryProfileDefWithVoids(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 616511568: (v) => {\n var _a;\n return new IFC4.IfcBlobTexture(new IFC4.IfcBoolean(!v[0] ? null : v[0].value), new IFC4.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcIdentifier(p.value) : null)) || [], new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4.IfcBinary(!v[6] ? null : v[6].value));\n },\n 3150382593: (v) => new IFC4.IfcCenterLineProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),\n 747523909: (v) => {\n var _a;\n return new IFC4.IfcClassification(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcDate(!v[2] ? null : v[2].value), new IFC4.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcURIReference(!v[5] ? null : v[5].value), !v[6] ? null : ((_a = v[6]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcIdentifier(p.value) : null)) || []);\n },\n 647927063: (v) => new IFC4.IfcClassificationReference(!v[0] ? null : new IFC4.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value)),\n 3285139300: (v) => {\n var _a;\n return new IFC4.IfcColourRgbList((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4.IfcNormalisedRatioMeasure(p2.value) : null)) || []));\n },\n 3264961684: (v) => new IFC4.IfcColourSpecification(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value)),\n 1485152156: (v) => {\n var _a;\n return new IFC4.IfcCompositeProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[3] ? null : new IFC4.IfcLabel(!v[3] ? null : v[3].value));\n },\n 370225590: (v) => {\n var _a;\n return new IFC4.IfcConnectedFaceSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1981873012: (v) => new IFC4.IfcConnectionCurveGeometry(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),\n 45288368: (v) => new IFC4.IfcConnectionPointEccentricity(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLengthMeasure(!v[4] ? null : v[4].value)),\n 3050246964: (v) => new IFC4.IfcContextDependentUnit(new Handle(!v[0] ? null : v[0].value), v[1], new IFC4.IfcLabel(!v[2] ? null : v[2].value)),\n 2889183280: (v) => new IFC4.IfcConversionBasedUnit(new Handle(!v[0] ? null : v[0].value), v[1], new IFC4.IfcLabel(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),\n 2713554722: (v) => new IFC4.IfcConversionBasedUnitWithOffset(new Handle(!v[0] ? null : v[0].value), v[1], new IFC4.IfcLabel(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), new IFC4.IfcReal(!v[4] ? null : v[4].value)),\n 539742890: (v) => new IFC4.IfcCurrencyRelationship(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), new IFC4.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),\n 3800577675: (v) => new IFC4.IfcCurveStyle(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcBoolean(!v[4] ? null : v[4].value)),\n 1105321065: (v) => {\n var _a;\n return new IFC4.IfcCurveStyleFont(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2367409068: (v) => new IFC4.IfcCurveStyleFontAndScaling(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new IFC4.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value)),\n 3510044353: (v) => new IFC4.IfcCurveStyleFontPattern(new IFC4.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC4.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)),\n 3632507154: (v) => new IFC4.IfcDerivedProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value)),\n 1154170062: (v) => {\n var _a;\n return new IFC4.IfcDocumentInformation(new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcURIReference(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcText(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value), !v[9] ? null : ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new IFC4.IfcDateTime(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcDateTime(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcIdentifier(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4.IfcDate(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4.IfcDate(!v[14] ? null : v[14].value), v[15], v[16]);\n },\n 770865208: (v) => {\n var _a;\n return new IFC4.IfcDocumentInformationRelationship(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value));\n },\n 3732053477: (v) => new IFC4.IfcDocumentReference(!v[0] ? null : new IFC4.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value)),\n 3900360178: (v) => new IFC4.IfcEdge(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),\n 476780140: (v) => new IFC4.IfcEdgeCurve(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4.IfcBoolean(!v[3] ? null : v[3].value)),\n 211053100: (v) => new IFC4.IfcEventTime(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcDateTime(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcDateTime(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcDateTime(!v[6] ? null : v[6].value)),\n 297599258: (v) => {\n var _a;\n return new IFC4.IfcExtendedProperties(!v[0] ? null : new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1437805879: (v) => {\n var _a;\n return new IFC4.IfcExternalReferenceRelationship(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2556980723: (v) => {\n var _a;\n return new IFC4.IfcFace(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1809719519: (v) => new IFC4.IfcFaceBound(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcBoolean(!v[1] ? null : v[1].value)),\n 803316827: (v) => new IFC4.IfcFaceOuterBound(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcBoolean(!v[1] ? null : v[1].value)),\n 3008276851: (v) => {\n var _a;\n return new IFC4.IfcFaceSurface(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value), new IFC4.IfcBoolean(!v[2] ? null : v[2].value));\n },\n 4219587988: (v) => new IFC4.IfcFailureConnectionCondition(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcForceMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcForceMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcForceMeasure(!v[6] ? null : v[6].value)),\n 738692330: (v) => {\n var _a;\n return new IFC4.IfcFillAreaStyle(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC4.IfcBoolean(!v[2] ? null : v[2].value));\n },\n 3448662350: (v) => new IFC4.IfcGeometricRepresentationContext(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), new IFC4.IfcDimensionCount(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcReal(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value)),\n 2453401579: (_) => new IFC4.IfcGeometricRepresentationItem(),\n 4142052618: (v) => new IFC4.IfcGeometricRepresentationSubContext(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcPositiveRatioMeasure(!v[3] ? null : v[3].value), v[4], !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value)),\n 3590301190: (v) => {\n var _a;\n return new IFC4.IfcGeometricSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 178086475: (v) => new IFC4.IfcGridPlacement(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),\n 812098782: (v) => new IFC4.IfcHalfSpaceSolid(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcBoolean(!v[1] ? null : v[1].value)),\n 3905492369: (v) => {\n var _a;\n return new IFC4.IfcImageTexture(new IFC4.IfcBoolean(!v[0] ? null : v[0].value), new IFC4.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcIdentifier(p.value) : null)) || [], new IFC4.IfcURIReference(!v[5] ? null : v[5].value));\n },\n 3570813810: (v) => {\n var _a;\n return new IFC4.IfcIndexedColourMap(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcPositiveInteger(p.value) : null)) || []);\n },\n 1437953363: (v) => {\n var _a;\n return new IFC4.IfcIndexedTextureMap(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value));\n },\n 2133299955: (v) => {\n var _a, _b;\n return new IFC4.IfcIndexedTriangleTextureMap(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : (_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4.IfcPositiveInteger(p2.value) : null)) || []));\n },\n 3741457305: (v) => {\n var _a;\n return new IFC4.IfcIrregularTimeSeries(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), new IFC4.IfcDateTime(!v[2] ? null : v[2].value), new IFC4.IfcDateTime(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1585845231: (v) => new IFC4.IfcLagTime(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), TypeInitialiser(2, v[3]), v[4]),\n 1402838566: (v) => new IFC4.IfcLightSource(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value)),\n 125510826: (v) => new IFC4.IfcLightSourceAmbient(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value)),\n 2604431987: (v) => new IFC4.IfcLightSourceDirectional(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value)),\n 4266656042: (v) => new IFC4.IfcLightSourceGoniometric(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), new IFC4.IfcThermodynamicTemperatureMeasure(!v[6] ? null : v[6].value), new IFC4.IfcLuminousFluxMeasure(!v[7] ? null : v[7].value), v[8], new Handle(!v[9] ? null : v[9].value)),\n 1520743889: (v) => new IFC4.IfcLightSourcePositional(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new IFC4.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4.IfcReal(!v[6] ? null : v[6].value), new IFC4.IfcReal(!v[7] ? null : v[7].value), new IFC4.IfcReal(!v[8] ? null : v[8].value)),\n 3422422726: (v) => new IFC4.IfcLightSourceSpot(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new IFC4.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4.IfcReal(!v[6] ? null : v[6].value), new IFC4.IfcReal(!v[7] ? null : v[7].value), new IFC4.IfcReal(!v[8] ? null : v[8].value), new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcReal(!v[10] ? null : v[10].value), new IFC4.IfcPositivePlaneAngleMeasure(!v[11] ? null : v[11].value), new IFC4.IfcPositivePlaneAngleMeasure(!v[12] ? null : v[12].value)),\n 2624227202: (v) => new IFC4.IfcLocalPlacement(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),\n 1008929658: (_) => new IFC4.IfcLoop(),\n 2347385850: (v) => new IFC4.IfcMappedItem(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),\n 1838606355: (v) => new IFC4.IfcMaterial(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value)),\n 3708119e3: (v) => new IFC4.IfcMaterialConstituent(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value)),\n 2852063980: (v) => {\n var _a;\n return new IFC4.IfcMaterialConstituentSet(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2022407955: (v) => {\n var _a;\n return new IFC4.IfcMaterialDefinitionRepresentation(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[3] ? null : v[3].value));\n },\n 1303795690: (v) => new IFC4.IfcMaterialLayerSetUsage(new Handle(!v[0] ? null : v[0].value), v[1], v[2], new IFC4.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)),\n 3079605661: (v) => new IFC4.IfcMaterialProfileSetUsage(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcCardinalPointReference(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)),\n 3404854881: (v) => new IFC4.IfcMaterialProfileSetUsageTapering(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcCardinalPointReference(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcCardinalPointReference(!v[4] ? null : v[4].value)),\n 3265635763: (v) => {\n var _a;\n return new IFC4.IfcMaterialProperties(!v[0] ? null : new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[3] ? null : v[3].value));\n },\n 853536259: (v) => {\n var _a;\n return new IFC4.IfcMaterialRelationship(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value));\n },\n 2998442950: (v) => new IFC4.IfcMirroredProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcLabel(!v[3] ? null : v[3].value)),\n 219451334: (v) => new IFC4.IfcObjectDefinition(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value)),\n 2665983363: (v) => {\n var _a;\n return new IFC4.IfcOpenShell(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1411181986: (v) => {\n var _a;\n return new IFC4.IfcOrganizationRelationship(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1029017970: (v) => new IFC4.IfcOrientedEdge(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcBoolean(!v[1] ? null : v[1].value)),\n 2529465313: (v) => new IFC4.IfcParameterizedProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value)),\n 2519244187: (v) => {\n var _a;\n return new IFC4.IfcPath(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3021840470: (v) => {\n var _a;\n return new IFC4.IfcPhysicalComplexQuantity(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value));\n },\n 597895409: (v) => {\n var _a, _b;\n return new IFC4.IfcPixelTexture(new IFC4.IfcBoolean(!v[0] ? null : v[0].value), new IFC4.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcIdentifier(p.value) : null)) || [], new IFC4.IfcInteger(!v[5] ? null : v[5].value), new IFC4.IfcInteger(!v[6] ? null : v[6].value), new IFC4.IfcInteger(!v[7] ? null : v[7].value), ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcBinary(p.value) : null)) || []);\n },\n 2004835150: (v) => new IFC4.IfcPlacement(new Handle(!v[0] ? null : v[0].value)),\n 1663979128: (v) => new IFC4.IfcPlanarExtent(new IFC4.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC4.IfcLengthMeasure(!v[1] ? null : v[1].value)),\n 2067069095: (_) => new IFC4.IfcPoint(),\n 4022376103: (v) => new IFC4.IfcPointOnCurve(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcParameterValue(!v[1] ? null : v[1].value)),\n 1423911732: (v) => new IFC4.IfcPointOnSurface(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcParameterValue(!v[1] ? null : v[1].value), new IFC4.IfcParameterValue(!v[2] ? null : v[2].value)),\n 2924175390: (v) => {\n var _a;\n return new IFC4.IfcPolyLoop(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2775532180: (v) => new IFC4.IfcPolygonalBoundedHalfSpace(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcBoolean(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),\n 3727388367: (v) => new IFC4.IfcPreDefinedItem(new IFC4.IfcLabel(!v[0] ? null : v[0].value)),\n 3778827333: (_) => new IFC4.IfcPreDefinedProperties(),\n 1775413392: (v) => new IFC4.IfcPreDefinedTextFont(new IFC4.IfcLabel(!v[0] ? null : v[0].value)),\n 673634403: (v) => {\n var _a;\n return new IFC4.IfcProductDefinitionShape(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2802850158: (v) => {\n var _a;\n return new IFC4.IfcProfileProperties(!v[0] ? null : new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[3] ? null : v[3].value));\n },\n 2598011224: (v) => new IFC4.IfcProperty(new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value)),\n 1680319473: (v) => new IFC4.IfcPropertyDefinition(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value)),\n 148025276: (v) => new IFC4.IfcPropertyDependencyRelationship(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcText(!v[4] ? null : v[4].value)),\n 3357820518: (v) => new IFC4.IfcPropertySetDefinition(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value)),\n 1482703590: (v) => new IFC4.IfcPropertyTemplateDefinition(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value)),\n 2090586900: (v) => new IFC4.IfcQuantitySet(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value)),\n 3615266464: (v) => new IFC4.IfcRectangleProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)),\n 3413951693: (v) => {\n var _a;\n return new IFC4.IfcRegularTimeSeries(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), new IFC4.IfcDateTime(!v[2] ? null : v[2].value), new IFC4.IfcDateTime(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), new IFC4.IfcTimeMeasure(!v[8] ? null : v[8].value), ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1580146022: (v) => new IFC4.IfcReinforcementBarProperties(new IFC4.IfcAreaMeasure(!v[0] ? null : v[0].value), new IFC4.IfcLabel(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC4.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcCountMeasure(!v[5] ? null : v[5].value)),\n 478536968: (v) => new IFC4.IfcRelationship(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value)),\n 2943643501: (v) => {\n var _a;\n return new IFC4.IfcResourceApprovalRelationship(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[3] ? null : v[3].value));\n },\n 1608871552: (v) => {\n var _a;\n return new IFC4.IfcResourceConstraintRelationship(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1042787934: (v) => new IFC4.IfcResourceTime(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcDuration(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcDuration(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcBoolean(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcDateTime(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcDuration(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcPositiveRatioMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4.IfcDateTime(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4.IfcDateTime(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4.IfcDuration(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4.IfcPositiveRatioMeasure(!v[16] ? null : v[16].value), !v[17] ? null : new IFC4.IfcPositiveRatioMeasure(!v[17] ? null : v[17].value)),\n 2778083089: (v) => new IFC4.IfcRoundedRectangleProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value)),\n 2042790032: (v) => new IFC4.IfcSectionProperties(v[0], new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value)),\n 4165799628: (v) => {\n var _a;\n return new IFC4.IfcSectionReinforcementProperties(new IFC4.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC4.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLengthMeasure(!v[2] ? null : v[2].value), v[3], new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1509187699: (v) => {\n var _a, _b;\n return new IFC4.IfcSectionedSpine(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 4124623270: (v) => {\n var _a;\n return new IFC4.IfcShellBasedSurfaceModel(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3692461612: (v) => new IFC4.IfcSimpleProperty(new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value)),\n 2609359061: (v) => new IFC4.IfcSlippageConnectionCondition(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcLengthMeasure(!v[3] ? null : v[3].value)),\n 723233188: (_) => new IFC4.IfcSolidModel(),\n 1595516126: (v) => new IFC4.IfcStructuralLoadLinearForce(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLinearForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLinearForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcLinearForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLinearMomentMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcLinearMomentMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcLinearMomentMeasure(!v[6] ? null : v[6].value)),\n 2668620305: (v) => new IFC4.IfcStructuralLoadPlanarForce(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcPlanarForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcPlanarForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcPlanarForceMeasure(!v[3] ? null : v[3].value)),\n 2473145415: (v) => new IFC4.IfcStructuralLoadSingleDisplacement(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcPlaneAngleMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcPlaneAngleMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcPlaneAngleMeasure(!v[6] ? null : v[6].value)),\n 1973038258: (v) => new IFC4.IfcStructuralLoadSingleDisplacementDistortion(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcPlaneAngleMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcPlaneAngleMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcPlaneAngleMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcCurvatureMeasure(!v[7] ? null : v[7].value)),\n 1597423693: (v) => new IFC4.IfcStructuralLoadSingleForce(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcTorqueMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcTorqueMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcTorqueMeasure(!v[6] ? null : v[6].value)),\n 1190533807: (v) => new IFC4.IfcStructuralLoadSingleForceWarping(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcTorqueMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcTorqueMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcTorqueMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcWarpingMomentMeasure(!v[7] ? null : v[7].value)),\n 2233826070: (v) => new IFC4.IfcSubedge(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),\n 2513912981: (_) => new IFC4.IfcSurface(),\n 1878645084: (v) => new IFC4.IfcSurfaceStyleRendering(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : TypeInitialiser(2, v[7]), v[8]),\n 2247615214: (v) => new IFC4.IfcSweptAreaSolid(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),\n 1260650574: (v) => new IFC4.IfcSweptDiskSolid(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcParameterValue(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcParameterValue(!v[4] ? null : v[4].value)),\n 1096409881: (v) => new IFC4.IfcSweptDiskSolidPolygonal(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcParameterValue(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcParameterValue(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value)),\n 230924584: (v) => new IFC4.IfcSweptSurface(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),\n 3071757647: (v) => new IFC4.IfcTShapeProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcPlaneAngleMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcPlaneAngleMeasure(!v[11] ? null : v[11].value)),\n 901063453: (_) => new IFC4.IfcTessellatedItem(),\n 4282788508: (v) => new IFC4.IfcTextLiteral(new IFC4.IfcPresentableText(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), v[2]),\n 3124975700: (v) => new IFC4.IfcTextLiteralWithExtent(new IFC4.IfcPresentableText(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), v[2], new Handle(!v[3] ? null : v[3].value), new IFC4.IfcBoxAlignment(!v[4] ? null : v[4].value)),\n 1983826977: (v) => {\n var _a;\n return new IFC4.IfcTextStyleFontModel(new IFC4.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcTextFontName(p.value) : null)) || [], !v[2] ? null : new IFC4.IfcFontStyle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcFontVariant(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcFontWeight(!v[4] ? null : v[4].value), TypeInitialiser(2, v[5]));\n },\n 2715220739: (v) => new IFC4.IfcTrapeziumProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4.IfcLengthMeasure(!v[6] ? null : v[6].value)),\n 1628702193: (v) => {\n var _a;\n return new IFC4.IfcTypeObject(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3736923433: (v) => {\n var _a;\n return new IFC4.IfcTypeProcess(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));\n },\n 2347495698: (v) => {\n var _a, _b;\n return new IFC4.IfcTypeProduct(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value));\n },\n 3698973494: (v) => {\n var _a;\n return new IFC4.IfcTypeResource(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));\n },\n 427810014: (v) => new IFC4.IfcUShapeProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcPlaneAngleMeasure(!v[9] ? null : v[9].value)),\n 1417489154: (v) => new IFC4.IfcVector(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcLengthMeasure(!v[1] ? null : v[1].value)),\n 2759199220: (v) => new IFC4.IfcVertexLoop(new Handle(!v[0] ? null : v[0].value)),\n 1299126871: (v) => {\n var _a, _b;\n return new IFC4.IfcWindowStyle(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], new IFC4.IfcBoolean(!v[10] ? null : v[10].value), new IFC4.IfcBoolean(!v[11] ? null : v[11].value));\n },\n 2543172580: (v) => new IFC4.IfcZShapeProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value)),\n 3406155212: (v) => {\n var _a;\n return new IFC4.IfcAdvancedFace(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value), new IFC4.IfcBoolean(!v[2] ? null : v[2].value));\n },\n 669184980: (v) => {\n var _a;\n return new IFC4.IfcAnnotationFillArea(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3207858831: (v) => new IFC4.IfcAsymmetricIShapeProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), new IFC4.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcPlaneAngleMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4.IfcPlaneAngleMeasure(!v[14] ? null : v[14].value)),\n 4261334040: (v) => new IFC4.IfcAxis1Placement(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),\n 3125803723: (v) => new IFC4.IfcAxis2Placement2D(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),\n 2740243338: (v) => new IFC4.IfcAxis2Placement3D(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value)),\n 2736907675: (v) => new IFC4.IfcBooleanResult(v[0], new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),\n 4182860854: (_) => new IFC4.IfcBoundedSurface(),\n 2581212453: (v) => new IFC4.IfcBoundingBox(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),\n 2713105998: (v) => new IFC4.IfcBoxedHalfSpace(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcBoolean(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),\n 2898889636: (v) => new IFC4.IfcCShapeProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value)),\n 1123145078: (v) => {\n var _a;\n return new IFC4.IfcCartesianPoint(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcLengthMeasure(p.value) : null)) || []);\n },\n 574549367: (_) => new IFC4.IfcCartesianPointList(),\n 1675464909: (v) => {\n var _a;\n return new IFC4.IfcCartesianPointList2D((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4.IfcLengthMeasure(p2.value) : null)) || []));\n },\n 2059837836: (v) => {\n var _a;\n return new IFC4.IfcCartesianPointList3D((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4.IfcLengthMeasure(p2.value) : null)) || []));\n },\n 59481748: (v) => new IFC4.IfcCartesianTransformationOperator(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcReal(!v[3] ? null : v[3].value)),\n 3749851601: (v) => new IFC4.IfcCartesianTransformationOperator2D(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcReal(!v[3] ? null : v[3].value)),\n 3486308946: (v) => new IFC4.IfcCartesianTransformationOperator2DnonUniform(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcReal(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcReal(!v[4] ? null : v[4].value)),\n 3331915920: (v) => new IFC4.IfcCartesianTransformationOperator3D(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcReal(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value)),\n 1416205885: (v) => new IFC4.IfcCartesianTransformationOperator3DnonUniform(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcReal(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcReal(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcReal(!v[6] ? null : v[6].value)),\n 1383045692: (v) => new IFC4.IfcCircleProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),\n 2205249479: (v) => {\n var _a;\n return new IFC4.IfcClosedShell(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 776857604: (v) => new IFC4.IfcColourRgb(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), new IFC4.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value), new IFC4.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), new IFC4.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value)),\n 2542286263: (v) => {\n var _a;\n return new IFC4.IfcComplexProperty(new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), new IFC4.IfcIdentifier(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2485617015: (v) => new IFC4.IfcCompositeCurveSegment(v[0], new IFC4.IfcBoolean(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),\n 2574617495: (v) => {\n var _a, _b;\n return new IFC4.IfcConstructionResourceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value));\n },\n 3419103109: (v) => {\n var _a;\n return new IFC4.IfcContext(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new Handle(!v[8] ? null : v[8].value));\n },\n 1815067380: (v) => {\n var _a, _b;\n return new IFC4.IfcCrewResourceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11]);\n },\n 2506170314: (v) => new IFC4.IfcCsgPrimitive3D(new Handle(!v[0] ? null : v[0].value)),\n 2147822146: (v) => new IFC4.IfcCsgSolid(new Handle(!v[0] ? null : v[0].value)),\n 2601014836: (_) => new IFC4.IfcCurve(),\n 2827736869: (v) => {\n var _a;\n return new IFC4.IfcCurveBoundedPlane(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2629017746: (v) => {\n var _a;\n return new IFC4.IfcCurveBoundedSurface(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4.IfcBoolean(!v[2] ? null : v[2].value));\n },\n 32440307: (v) => {\n var _a;\n return new IFC4.IfcDirection(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcReal(p.value) : null)) || []);\n },\n 526551008: (v) => {\n var _a, _b;\n return new IFC4.IfcDoorStyle(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], new IFC4.IfcBoolean(!v[10] ? null : v[10].value), new IFC4.IfcBoolean(!v[11] ? null : v[11].value));\n },\n 1472233963: (v) => {\n var _a;\n return new IFC4.IfcEdgeLoop(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1883228015: (v) => {\n var _a;\n return new IFC4.IfcElementQuantity(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 339256511: (v) => {\n var _a, _b;\n return new IFC4.IfcElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));\n },\n 2777663545: (v) => new IFC4.IfcElementarySurface(new Handle(!v[0] ? null : v[0].value)),\n 2835456948: (v) => new IFC4.IfcEllipseProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)),\n 4024345920: (v) => {\n var _a;\n return new IFC4.IfcEventType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9], v[10], !v[11] ? null : new IFC4.IfcLabel(!v[11] ? null : v[11].value));\n },\n 477187591: (v) => new IFC4.IfcExtrudedAreaSolid(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),\n 2804161546: (v) => new IFC4.IfcExtrudedAreaSolidTapered(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value)),\n 2047409740: (v) => {\n var _a;\n return new IFC4.IfcFaceBasedSurfaceModel(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 374418227: (v) => new IFC4.IfcFillAreaStyleHatching(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), new IFC4.IfcPlaneAngleMeasure(!v[4] ? null : v[4].value)),\n 315944413: (v) => {\n var _a, _b;\n return new IFC4.IfcFillAreaStyleTiles(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value));\n },\n 2652556860: (v) => new IFC4.IfcFixedReferenceSweptAreaSolid(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcParameterValue(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcParameterValue(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),\n 4238390223: (v) => {\n var _a, _b;\n return new IFC4.IfcFurnishingElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));\n },\n 1268542332: (v) => {\n var _a, _b;\n return new IFC4.IfcFurnitureType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9], v[10]);\n },\n 4095422895: (v) => {\n var _a, _b;\n return new IFC4.IfcGeographicElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 987898635: (v) => {\n var _a;\n return new IFC4.IfcGeometricCurveSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1484403080: (v) => new IFC4.IfcIShapeProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcPlaneAngleMeasure(!v[9] ? null : v[9].value)),\n 178912537: (v) => {\n var _a;\n return new IFC4.IfcIndexedPolygonalFace(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcPositiveInteger(p.value) : null)) || []);\n },\n 2294589976: (v) => {\n var _a, _b;\n return new IFC4.IfcIndexedPolygonalFaceWithVoids(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcPositiveInteger(p.value) : null)) || [], (_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4.IfcPositiveInteger(p2.value) : null)) || []));\n },\n 572779678: (v) => new IFC4.IfcLShapeProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcPlaneAngleMeasure(!v[8] ? null : v[8].value)),\n 428585644: (v) => {\n var _a, _b;\n return new IFC4.IfcLaborResourceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11]);\n },\n 1281925730: (v) => new IFC4.IfcLine(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),\n 1425443689: (v) => new IFC4.IfcManifoldSolidBrep(new Handle(!v[0] ? null : v[0].value)),\n 3888040117: (v) => new IFC4.IfcObject(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value)),\n 3388369263: (v) => new IFC4.IfcOffsetCurve2D(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcLengthMeasure(!v[1] ? null : v[1].value), new IFC4.IfcLogical(!v[2] ? null : v[2].value)),\n 3505215534: (v) => new IFC4.IfcOffsetCurve3D(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcLengthMeasure(!v[1] ? null : v[1].value), new IFC4.IfcLogical(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),\n 1682466193: (v) => new IFC4.IfcPcurve(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),\n 603570806: (v) => new IFC4.IfcPlanarBox(new IFC4.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC4.IfcLengthMeasure(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),\n 220341763: (v) => new IFC4.IfcPlane(new Handle(!v[0] ? null : v[0].value)),\n 759155922: (v) => new IFC4.IfcPreDefinedColour(new IFC4.IfcLabel(!v[0] ? null : v[0].value)),\n 2559016684: (v) => new IFC4.IfcPreDefinedCurveFont(new IFC4.IfcLabel(!v[0] ? null : v[0].value)),\n 3967405729: (v) => new IFC4.IfcPreDefinedPropertySet(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value)),\n 569719735: (v) => {\n var _a;\n return new IFC4.IfcProcedureType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2945172077: (v) => new IFC4.IfcProcess(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcText(!v[6] ? null : v[6].value)),\n 4208778838: (v) => new IFC4.IfcProduct(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),\n 103090709: (v) => {\n var _a;\n return new IFC4.IfcProject(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new Handle(!v[8] ? null : v[8].value));\n },\n 653396225: (v) => {\n var _a;\n return new IFC4.IfcProjectLibrary(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new Handle(!v[8] ? null : v[8].value));\n },\n 871118103: (v) => new IFC4.IfcPropertyBoundedValue(new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : TypeInitialiser(2, v[5])),\n 4166981789: (v) => {\n var _a;\n return new IFC4.IfcPropertyEnumeratedValue(new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || [], !v[3] ? null : new Handle(!v[3] ? null : v[3].value));\n },\n 2752243245: (v) => {\n var _a;\n return new IFC4.IfcPropertyListValue(new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || [], !v[3] ? null : new Handle(!v[3] ? null : v[3].value));\n },\n 941946838: (v) => new IFC4.IfcPropertyReferenceValue(new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value)),\n 1451395588: (v) => {\n var _a;\n return new IFC4.IfcPropertySet(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 492091185: (v) => {\n var _a;\n return new IFC4.IfcPropertySetTemplate(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), v[4], !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), ((_a = v[6]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3650150729: (v) => new IFC4.IfcPropertySingleValue(new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : new Handle(!v[3] ? null : v[3].value)),\n 110355661: (v) => {\n var _a, _b;\n return new IFC4.IfcPropertyTableValue(new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || [], !v[3] ? null : ((_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || [], !v[4] ? null : new IFC4.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7]);\n },\n 3521284610: (v) => new IFC4.IfcPropertyTemplate(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value)),\n 3219374653: (v) => new IFC4.IfcProxy(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value)),\n 2770003689: (v) => new IFC4.IfcRectangleHollowProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value)),\n 2798486643: (v) => new IFC4.IfcRectangularPyramid(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),\n 3454111270: (v) => new IFC4.IfcRectangularTrimmedSurface(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcParameterValue(!v[1] ? null : v[1].value), new IFC4.IfcParameterValue(!v[2] ? null : v[2].value), new IFC4.IfcParameterValue(!v[3] ? null : v[3].value), new IFC4.IfcParameterValue(!v[4] ? null : v[4].value), new IFC4.IfcBoolean(!v[5] ? null : v[5].value), new IFC4.IfcBoolean(!v[6] ? null : v[6].value)),\n 3765753017: (v) => {\n var _a;\n return new IFC4.IfcReinforcementDefinitionProperties(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3939117080: (v) => {\n var _a;\n return new IFC4.IfcRelAssigns(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5]);\n },\n 1683148259: (v) => {\n var _a;\n return new IFC4.IfcRelAssignsToActor(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value));\n },\n 2495723537: (v) => {\n var _a;\n return new IFC4.IfcRelAssignsToControl(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value));\n },\n 1307041759: (v) => {\n var _a;\n return new IFC4.IfcRelAssignsToGroup(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value));\n },\n 1027710054: (v) => {\n var _a;\n return new IFC4.IfcRelAssignsToGroupByFactor(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value), new IFC4.IfcRatioMeasure(!v[7] ? null : v[7].value));\n },\n 4278684876: (v) => {\n var _a;\n return new IFC4.IfcRelAssignsToProcess(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value));\n },\n 2857406711: (v) => {\n var _a;\n return new IFC4.IfcRelAssignsToProduct(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value));\n },\n 205026976: (v) => {\n var _a;\n return new IFC4.IfcRelAssignsToResource(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value));\n },\n 1865459582: (v) => {\n var _a;\n return new IFC4.IfcRelAssociates(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 4095574036: (v) => {\n var _a;\n return new IFC4.IfcRelAssociatesApproval(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 919958153: (v) => {\n var _a;\n return new IFC4.IfcRelAssociatesClassification(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 2728634034: (v) => {\n var _a;\n return new IFC4.IfcRelAssociatesConstraint(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value));\n },\n 982818633: (v) => {\n var _a;\n return new IFC4.IfcRelAssociatesDocument(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 3840914261: (v) => {\n var _a;\n return new IFC4.IfcRelAssociatesLibrary(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 2655215786: (v) => {\n var _a;\n return new IFC4.IfcRelAssociatesMaterial(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 826625072: (v) => new IFC4.IfcRelConnects(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value)),\n 1204542856: (v) => new IFC4.IfcRelConnectsElements(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value)),\n 3945020480: (v) => {\n var _a, _b;\n return new IFC4.IfcRelConnectsPathElements(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcInteger(p.value) : null)) || [], !v[8] ? null : ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcInteger(p.value) : null)) || [], v[9], v[10]);\n },\n 4201705270: (v) => new IFC4.IfcRelConnectsPortToElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),\n 3190031847: (v) => new IFC4.IfcRelConnectsPorts(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),\n 2127690289: (v) => new IFC4.IfcRelConnectsStructuralActivity(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),\n 1638771189: (v) => new IFC4.IfcRelConnectsStructuralMember(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value)),\n 504942748: (v) => new IFC4.IfcRelConnectsWithEccentricity(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), new Handle(!v[10] ? null : v[10].value)),\n 3678494232: (v) => {\n var _a;\n return new IFC4.IfcRelConnectsWithRealizingElements(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value), ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));\n },\n 3242617779: (v) => {\n var _a;\n return new IFC4.IfcRelContainedInSpatialStructure(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 886880790: (v) => {\n var _a;\n return new IFC4.IfcRelCoversBldgElements(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2802773753: (v) => {\n var _a;\n return new IFC4.IfcRelCoversSpaces(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2565941209: (v) => {\n var _a;\n return new IFC4.IfcRelDeclares(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2551354335: (v) => new IFC4.IfcRelDecomposes(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value)),\n 693640335: (v) => new IFC4.IfcRelDefines(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value)),\n 1462361463: (v) => {\n var _a;\n return new IFC4.IfcRelDefinesByObject(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 4186316022: (v) => {\n var _a;\n return new IFC4.IfcRelDefinesByProperties(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 307848117: (v) => {\n var _a;\n return new IFC4.IfcRelDefinesByTemplate(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 781010003: (v) => {\n var _a;\n return new IFC4.IfcRelDefinesByType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 3940055652: (v) => new IFC4.IfcRelFillsElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),\n 279856033: (v) => {\n var _a;\n return new IFC4.IfcRelFlowControlElements(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 427948657: (v) => new IFC4.IfcRelInterferesElements(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : v[8].value),\n 3268803585: (v) => {\n var _a;\n return new IFC4.IfcRelNests(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 750771296: (v) => new IFC4.IfcRelProjectsElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),\n 1245217292: (v) => {\n var _a;\n return new IFC4.IfcRelReferencedInSpatialStructure(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 4122056220: (v) => new IFC4.IfcRelSequence(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value)),\n 366585022: (v) => {\n var _a;\n return new IFC4.IfcRelServicesBuildings(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3451746338: (v) => new IFC4.IfcRelSpaceBoundary(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], v[8]),\n 3523091289: (v) => new IFC4.IfcRelSpaceBoundary1stLevel(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], v[8], !v[9] ? null : new Handle(!v[9] ? null : v[9].value)),\n 1521410863: (v) => new IFC4.IfcRelSpaceBoundary2ndLevel(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], v[8], !v[9] ? null : new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new Handle(!v[10] ? null : v[10].value)),\n 1401173127: (v) => new IFC4.IfcRelVoidsElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),\n 816062949: (v) => new IFC4.IfcReparametrisedCompositeCurveSegment(v[0], new IFC4.IfcBoolean(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4.IfcParameterValue(!v[3] ? null : v[3].value)),\n 2914609552: (v) => new IFC4.IfcResource(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcText(!v[6] ? null : v[6].value)),\n 1856042241: (v) => new IFC4.IfcRevolvedAreaSolid(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPlaneAngleMeasure(!v[3] ? null : v[3].value)),\n 3243963512: (v) => new IFC4.IfcRevolvedAreaSolidTapered(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPlaneAngleMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value)),\n 4158566097: (v) => new IFC4.IfcRightCircularCone(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)),\n 3626867408: (v) => new IFC4.IfcRightCircularCylinder(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)),\n 3663146110: (v) => new IFC4.IfcSimplePropertyTemplate(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), v[4], !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcLabel(!v[10] ? null : v[10].value), v[11]),\n 1412071761: (v) => new IFC4.IfcSpatialElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value)),\n 710998568: (v) => {\n var _a, _b;\n return new IFC4.IfcSpatialElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));\n },\n 2706606064: (v) => new IFC4.IfcSpatialStructureElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), v[8]),\n 3893378262: (v) => {\n var _a, _b;\n return new IFC4.IfcSpatialStructureElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));\n },\n 463610769: (v) => new IFC4.IfcSpatialZone(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), v[8]),\n 2481509218: (v) => {\n var _a, _b;\n return new IFC4.IfcSpatialZoneType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4.IfcLabel(!v[10] ? null : v[10].value));\n },\n 451544542: (v) => new IFC4.IfcSphere(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)),\n 4015995234: (v) => new IFC4.IfcSphericalSurface(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)),\n 3544373492: (v) => new IFC4.IfcStructuralActivity(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8]),\n 3136571912: (v) => new IFC4.IfcStructuralItem(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),\n 530289379: (v) => new IFC4.IfcStructuralMember(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),\n 3689010777: (v) => new IFC4.IfcStructuralReaction(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8]),\n 3979015343: (v) => new IFC4.IfcStructuralSurfaceMember(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC4.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value)),\n 2218152070: (v) => new IFC4.IfcStructuralSurfaceMemberVarying(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC4.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value)),\n 603775116: (v) => new IFC4.IfcStructuralSurfaceReaction(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], v[9]),\n 4095615324: (v) => {\n var _a, _b;\n return new IFC4.IfcSubContractResourceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11]);\n },\n 699246055: (v) => {\n var _a;\n return new IFC4.IfcSurfaceCurve(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2]);\n },\n 2028607225: (v) => new IFC4.IfcSurfaceCurveSweptAreaSolid(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcParameterValue(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcParameterValue(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),\n 2809605785: (v) => new IFC4.IfcSurfaceOfLinearExtrusion(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4.IfcLengthMeasure(!v[3] ? null : v[3].value)),\n 4124788165: (v) => new IFC4.IfcSurfaceOfRevolution(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),\n 1580310250: (v) => {\n var _a, _b;\n return new IFC4.IfcSystemFurnitureElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3473067441: (v) => new IFC4.IfcTask(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), new IFC4.IfcBoolean(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcInteger(!v[10] ? null : v[10].value), !v[11] ? null : new Handle(!v[11] ? null : v[11].value), v[12]),\n 3206491090: (v) => {\n var _a;\n return new IFC4.IfcTaskType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4.IfcLabel(!v[10] ? null : v[10].value));\n },\n 2387106220: (v) => new IFC4.IfcTessellatedFaceSet(new Handle(!v[0] ? null : v[0].value)),\n 1935646853: (v) => new IFC4.IfcToroidalSurface(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)),\n 2097647324: (v) => {\n var _a, _b;\n return new IFC4.IfcTransportElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2916149573: (v) => {\n var _a, _b, _c;\n return new IFC4.IfcTriangulatedFaceSet(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : (_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4.IfcParameterValue(p2.value) : null)) || []), !v[2] ? null : new IFC4.IfcBoolean(!v[2] ? null : v[2].value), (_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4.IfcPositiveInteger(p2.value) : null)) || []), !v[4] ? null : ((_c = v[4]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcPositiveInteger(p.value) : null)) || []);\n },\n 336235671: (v) => new IFC4.IfcWindowLiningProperties(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new Handle(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4.IfcLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4.IfcLengthMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4.IfcLengthMeasure(!v[15] ? null : v[15].value)),\n 512836454: (v) => new IFC4.IfcWindowPanelProperties(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),\n 2296667514: (v) => new IFC4.IfcActor(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),\n 1635779807: (v) => new IFC4.IfcAdvancedBrep(new Handle(!v[0] ? null : v[0].value)),\n 2603310189: (v) => {\n var _a;\n return new IFC4.IfcAdvancedBrepWithVoids(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1674181508: (v) => new IFC4.IfcAnnotation(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),\n 2887950389: (v) => {\n var _a;\n return new IFC4.IfcBSplineSurface(new IFC4.IfcInteger(!v[0] ? null : v[0].value), new IFC4.IfcInteger(!v[1] ? null : v[1].value), (_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new Handle(p2.value) : null)) || []), v[3], new IFC4.IfcLogical(!v[4] ? null : v[4].value), new IFC4.IfcLogical(!v[5] ? null : v[5].value), new IFC4.IfcLogical(!v[6] ? null : v[6].value));\n },\n 167062518: (v) => {\n var _a, _b, _c, _d, _e;\n return new IFC4.IfcBSplineSurfaceWithKnots(new IFC4.IfcInteger(!v[0] ? null : v[0].value), new IFC4.IfcInteger(!v[1] ? null : v[1].value), (_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new Handle(p2.value) : null)) || []), v[3], new IFC4.IfcLogical(!v[4] ? null : v[4].value), new IFC4.IfcLogical(!v[5] ? null : v[5].value), new IFC4.IfcLogical(!v[6] ? null : v[6].value), ((_b = v[7]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcInteger(p.value) : null)) || [], ((_c = v[8]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcInteger(p.value) : null)) || [], ((_d = v[9]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcParameterValue(p.value) : null)) || [], ((_e = v[10]) == null ? void 0 : _e.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcParameterValue(p.value) : null)) || [], v[11]);\n },\n 1334484129: (v) => new IFC4.IfcBlock(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),\n 3649129432: (v) => new IFC4.IfcBooleanClippingResult(v[0], new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),\n 1260505505: (_) => new IFC4.IfcBoundedCurve(),\n 4031249490: (v) => new IFC4.IfcBuilding(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4.IfcLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new Handle(!v[11] ? null : v[11].value)),\n 1950629157: (v) => {\n var _a, _b;\n return new IFC4.IfcBuildingElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));\n },\n 3124254112: (v) => new IFC4.IfcBuildingStorey(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4.IfcLengthMeasure(!v[9] ? null : v[9].value)),\n 2197970202: (v) => {\n var _a, _b;\n return new IFC4.IfcChimneyType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2937912522: (v) => new IFC4.IfcCircleHollowProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)),\n 3893394355: (v) => {\n var _a, _b;\n return new IFC4.IfcCivilElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));\n },\n 300633059: (v) => {\n var _a, _b;\n return new IFC4.IfcColumnType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3875453745: (v) => {\n var _a;\n return new IFC4.IfcComplexPropertyTemplate(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : ((_a = v[6]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3732776249: (v) => {\n var _a;\n return new IFC4.IfcCompositeCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4.IfcLogical(!v[1] ? null : v[1].value));\n },\n 15328376: (v) => {\n var _a;\n return new IFC4.IfcCompositeCurveOnSurface(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4.IfcLogical(!v[1] ? null : v[1].value));\n },\n 2510884976: (v) => new IFC4.IfcConic(new Handle(!v[0] ? null : v[0].value)),\n 2185764099: (v) => {\n var _a, _b;\n return new IFC4.IfcConstructionEquipmentResourceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11]);\n },\n 4105962743: (v) => {\n var _a, _b;\n return new IFC4.IfcConstructionMaterialResourceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11]);\n },\n 1525564444: (v) => {\n var _a, _b;\n return new IFC4.IfcConstructionProductResourceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11]);\n },\n 2559216714: (v) => {\n var _a;\n return new IFC4.IfcConstructionResource(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value));\n },\n 3293443760: (v) => new IFC4.IfcControl(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value)),\n 3895139033: (v) => {\n var _a, _b;\n return new IFC4.IfcCostItem(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1419761937: (v) => new IFC4.IfcCostSchedule(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcDateTime(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcDateTime(!v[9] ? null : v[9].value)),\n 1916426348: (v) => {\n var _a, _b;\n return new IFC4.IfcCoveringType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3295246426: (v) => {\n var _a;\n return new IFC4.IfcCrewResource(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value), v[10]);\n },\n 1457835157: (v) => {\n var _a, _b;\n return new IFC4.IfcCurtainWallType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1213902940: (v) => new IFC4.IfcCylindricalSurface(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)),\n 3256556792: (v) => {\n var _a, _b;\n return new IFC4.IfcDistributionElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));\n },\n 3849074793: (v) => {\n var _a, _b;\n return new IFC4.IfcDistributionFlowElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));\n },\n 2963535650: (v) => new IFC4.IfcDoorLiningProperties(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4.IfcPositiveLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new Handle(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4.IfcLengthMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4.IfcLengthMeasure(!v[16] ? null : v[16].value)),\n 1714330368: (v) => new IFC4.IfcDoorPanelProperties(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),\n 2323601079: (v) => {\n var _a, _b;\n return new IFC4.IfcDoorType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9], v[10], !v[11] ? null : new IFC4.IfcBoolean(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcLabel(!v[12] ? null : v[12].value));\n },\n 445594917: (v) => new IFC4.IfcDraughtingPreDefinedColour(new IFC4.IfcLabel(!v[0] ? null : v[0].value)),\n 4006246654: (v) => new IFC4.IfcDraughtingPreDefinedCurveFont(new IFC4.IfcLabel(!v[0] ? null : v[0].value)),\n 1758889154: (v) => new IFC4.IfcElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),\n 4123344466: (v) => new IFC4.IfcElementAssembly(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8], v[9]),\n 2397081782: (v) => {\n var _a, _b;\n return new IFC4.IfcElementAssemblyType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1623761950: (v) => new IFC4.IfcElementComponent(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),\n 2590856083: (v) => {\n var _a, _b;\n return new IFC4.IfcElementComponentType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));\n },\n 1704287377: (v) => new IFC4.IfcEllipse(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)),\n 2107101300: (v) => {\n var _a, _b;\n return new IFC4.IfcEnergyConversionDeviceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));\n },\n 132023988: (v) => {\n var _a, _b;\n return new IFC4.IfcEngineType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3174744832: (v) => {\n var _a, _b;\n return new IFC4.IfcEvaporativeCoolerType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3390157468: (v) => {\n var _a, _b;\n return new IFC4.IfcEvaporatorType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 4148101412: (v) => new IFC4.IfcEvent(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcText(!v[6] ? null : v[6].value), v[7], v[8], !v[9] ? null : new IFC4.IfcLabel(!v[9] ? null : v[9].value), !v[10] ? null : new Handle(!v[10] ? null : v[10].value)),\n 2853485674: (v) => new IFC4.IfcExternalSpatialStructureElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value)),\n 807026263: (v) => new IFC4.IfcFacetedBrep(new Handle(!v[0] ? null : v[0].value)),\n 3737207727: (v) => {\n var _a;\n return new IFC4.IfcFacetedBrepWithVoids(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 647756555: (v) => new IFC4.IfcFastener(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2489546625: (v) => {\n var _a, _b;\n return new IFC4.IfcFastenerType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2827207264: (v) => new IFC4.IfcFeatureElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),\n 2143335405: (v) => new IFC4.IfcFeatureElementAddition(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),\n 1287392070: (v) => new IFC4.IfcFeatureElementSubtraction(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),\n 3907093117: (v) => {\n var _a, _b;\n return new IFC4.IfcFlowControllerType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));\n },\n 3198132628: (v) => {\n var _a, _b;\n return new IFC4.IfcFlowFittingType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));\n },\n 3815607619: (v) => {\n var _a, _b;\n return new IFC4.IfcFlowMeterType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1482959167: (v) => {\n var _a, _b;\n return new IFC4.IfcFlowMovingDeviceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));\n },\n 1834744321: (v) => {\n var _a, _b;\n return new IFC4.IfcFlowSegmentType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));\n },\n 1339347760: (v) => {\n var _a, _b;\n return new IFC4.IfcFlowStorageDeviceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));\n },\n 2297155007: (v) => {\n var _a, _b;\n return new IFC4.IfcFlowTerminalType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));\n },\n 3009222698: (v) => {\n var _a, _b;\n return new IFC4.IfcFlowTreatmentDeviceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));\n },\n 1893162501: (v) => {\n var _a, _b;\n return new IFC4.IfcFootingType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 263784265: (v) => new IFC4.IfcFurnishingElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),\n 1509553395: (v) => new IFC4.IfcFurniture(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3493046030: (v) => new IFC4.IfcGeographicElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3009204131: (v) => {\n var _a, _b, _c;\n return new IFC4.IfcGrid(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : ((_c = v[9]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[10]);\n },\n 2706460486: (v) => new IFC4.IfcGroup(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value)),\n 1251058090: (v) => {\n var _a, _b;\n return new IFC4.IfcHeatExchangerType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1806887404: (v) => {\n var _a, _b;\n return new IFC4.IfcHumidifierType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2571569899: (v) => {\n var _a;\n return new IFC4.IfcIndexedPolyCurve(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || [], !v[2] ? null : new IFC4.IfcBoolean(!v[2] ? null : v[2].value));\n },\n 3946677679: (v) => {\n var _a, _b;\n return new IFC4.IfcInterceptorType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3113134337: (v) => {\n var _a;\n return new IFC4.IfcIntersectionCurve(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2]);\n },\n 2391368822: (v) => {\n var _a;\n return new IFC4.IfcInventory(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new IFC4.IfcDate(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new Handle(!v[10] ? null : v[10].value));\n },\n 4288270099: (v) => {\n var _a, _b;\n return new IFC4.IfcJunctionBoxType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3827777499: (v) => {\n var _a;\n return new IFC4.IfcLaborResource(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value), v[10]);\n },\n 1051575348: (v) => {\n var _a, _b;\n return new IFC4.IfcLampType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1161773419: (v) => {\n var _a, _b;\n return new IFC4.IfcLightFixtureType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 377706215: (v) => new IFC4.IfcMechanicalFastener(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), v[10]),\n 2108223431: (v) => {\n var _a, _b;\n return new IFC4.IfcMechanicalFastenerType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value));\n },\n 1114901282: (v) => {\n var _a, _b;\n return new IFC4.IfcMedicalDeviceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3181161470: (v) => {\n var _a, _b;\n return new IFC4.IfcMemberType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 977012517: (v) => {\n var _a, _b;\n return new IFC4.IfcMotorConnectionType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 4143007308: (v) => new IFC4.IfcOccupant(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), v[6]),\n 3588315303: (v) => new IFC4.IfcOpeningElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3079942009: (v) => new IFC4.IfcOpeningStandardCase(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2837617999: (v) => {\n var _a, _b;\n return new IFC4.IfcOutletType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2382730787: (v) => new IFC4.IfcPerformanceHistory(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4.IfcLabel(!v[6] ? null : v[6].value), v[7]),\n 3566463478: (v) => new IFC4.IfcPermeableCoveringProperties(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),\n 3327091369: (v) => new IFC4.IfcPermit(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcText(!v[8] ? null : v[8].value)),\n 1158309216: (v) => {\n var _a, _b;\n return new IFC4.IfcPileType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 804291784: (v) => {\n var _a, _b;\n return new IFC4.IfcPipeFittingType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 4231323485: (v) => {\n var _a, _b;\n return new IFC4.IfcPipeSegmentType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 4017108033: (v) => {\n var _a, _b;\n return new IFC4.IfcPlateType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2839578677: (v) => {\n var _a, _b;\n return new IFC4.IfcPolygonalFaceSet(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcBoolean(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[3] ? null : ((_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcPositiveInteger(p.value) : null)) || []);\n },\n 3724593414: (v) => {\n var _a;\n return new IFC4.IfcPolyline(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3740093272: (v) => new IFC4.IfcPort(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),\n 2744685151: (v) => new IFC4.IfcProcedure(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcText(!v[6] ? null : v[6].value), v[7]),\n 2904328755: (v) => new IFC4.IfcProjectOrder(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcText(!v[8] ? null : v[8].value)),\n 3651124850: (v) => new IFC4.IfcProjectionElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1842657554: (v) => {\n var _a, _b;\n return new IFC4.IfcProtectiveDeviceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2250791053: (v) => {\n var _a, _b;\n return new IFC4.IfcPumpType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2893384427: (v) => {\n var _a, _b;\n return new IFC4.IfcRailingType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2324767716: (v) => {\n var _a, _b;\n return new IFC4.IfcRampFlightType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1469900589: (v) => {\n var _a, _b;\n return new IFC4.IfcRampType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 683857671: (v) => {\n var _a, _b, _c, _d, _e, _f;\n return new IFC4.IfcRationalBSplineSurfaceWithKnots(new IFC4.IfcInteger(!v[0] ? null : v[0].value), new IFC4.IfcInteger(!v[1] ? null : v[1].value), (_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new Handle(p2.value) : null)) || []), v[3], new IFC4.IfcLogical(!v[4] ? null : v[4].value), new IFC4.IfcLogical(!v[5] ? null : v[5].value), new IFC4.IfcLogical(!v[6] ? null : v[6].value), ((_b = v[7]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcInteger(p.value) : null)) || [], ((_c = v[8]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcInteger(p.value) : null)) || [], ((_d = v[9]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcParameterValue(p.value) : null)) || [], ((_e = v[10]) == null ? void 0 : _e.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcParameterValue(p.value) : null)) || [], v[11], (_f = v[12]) == null ? void 0 : _f.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4.IfcReal(p2.value) : null)) || []));\n },\n 3027567501: (v) => new IFC4.IfcReinforcingElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value)),\n 964333572: (v) => {\n var _a, _b;\n return new IFC4.IfcReinforcingElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));\n },\n 2320036040: (v) => new IFC4.IfcReinforcingMesh(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4.IfcAreaMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4.IfcAreaMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4.IfcPositiveLengthMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4.IfcPositiveLengthMeasure(!v[16] ? null : v[16].value), v[17]),\n 2310774935: (v) => {\n var _a, _b, _c;\n return new IFC4.IfcReinforcingMeshType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4.IfcPositiveLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4.IfcAreaMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4.IfcAreaMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4.IfcPositiveLengthMeasure(!v[16] ? null : v[16].value), !v[17] ? null : new IFC4.IfcPositiveLengthMeasure(!v[17] ? null : v[17].value), !v[18] ? null : new IFC4.IfcLabel(!v[18] ? null : v[18].value), !v[19] ? null : ((_c = v[19]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || []);\n },\n 160246688: (v) => {\n var _a;\n return new IFC4.IfcRelAggregates(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2781568857: (v) => {\n var _a, _b;\n return new IFC4.IfcRoofType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1768891740: (v) => {\n var _a, _b;\n return new IFC4.IfcSanitaryTerminalType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2157484638: (v) => {\n var _a;\n return new IFC4.IfcSeamCurve(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2]);\n },\n 4074543187: (v) => {\n var _a, _b;\n return new IFC4.IfcShadingDeviceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 4097777520: (v) => new IFC4.IfcSite(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4.IfcCompoundPlaneAngleMeasure(v[9].map((x) => x.value)), !v[10] ? null : new IFC4.IfcCompoundPlaneAngleMeasure(v[10].map((x) => x.value)), !v[11] ? null : new IFC4.IfcLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcLabel(!v[12] ? null : v[12].value), !v[13] ? null : new Handle(!v[13] ? null : v[13].value)),\n 2533589738: (v) => {\n var _a, _b;\n return new IFC4.IfcSlabType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1072016465: (v) => {\n var _a, _b;\n return new IFC4.IfcSolarDeviceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3856911033: (v) => new IFC4.IfcSpace(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], !v[10] ? null : new IFC4.IfcLengthMeasure(!v[10] ? null : v[10].value)),\n 1305183839: (v) => {\n var _a, _b;\n return new IFC4.IfcSpaceHeaterType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3812236995: (v) => {\n var _a, _b;\n return new IFC4.IfcSpaceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4.IfcLabel(!v[10] ? null : v[10].value));\n },\n 3112655638: (v) => {\n var _a, _b;\n return new IFC4.IfcStackTerminalType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1039846685: (v) => {\n var _a, _b;\n return new IFC4.IfcStairFlightType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 338393293: (v) => {\n var _a, _b;\n return new IFC4.IfcStairType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 682877961: (v) => new IFC4.IfcStructuralAction(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4.IfcBoolean(!v[9] ? null : v[9].value)),\n 1179482911: (v) => new IFC4.IfcStructuralConnection(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value)),\n 1004757350: (v) => new IFC4.IfcStructuralCurveAction(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4.IfcBoolean(!v[9] ? null : v[9].value), v[10], v[11]),\n 4243806635: (v) => new IFC4.IfcStructuralCurveConnection(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), new Handle(!v[8] ? null : v[8].value)),\n 214636428: (v) => new IFC4.IfcStructuralCurveMember(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], new Handle(!v[8] ? null : v[8].value)),\n 2445595289: (v) => new IFC4.IfcStructuralCurveMemberVarying(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], new Handle(!v[8] ? null : v[8].value)),\n 2757150158: (v) => new IFC4.IfcStructuralCurveReaction(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], v[9]),\n 1807405624: (v) => new IFC4.IfcStructuralLinearAction(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4.IfcBoolean(!v[9] ? null : v[9].value), v[10], v[11]),\n 1252848954: (v) => new IFC4.IfcStructuralLoadGroup(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), v[5], v[6], v[7], !v[8] ? null : new IFC4.IfcRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcLabel(!v[9] ? null : v[9].value)),\n 2082059205: (v) => new IFC4.IfcStructuralPointAction(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4.IfcBoolean(!v[9] ? null : v[9].value)),\n 734778138: (v) => new IFC4.IfcStructuralPointConnection(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),\n 1235345126: (v) => new IFC4.IfcStructuralPointReaction(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8]),\n 2986769608: (v) => new IFC4.IfcStructuralResultGroup(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new IFC4.IfcBoolean(!v[7] ? null : v[7].value)),\n 3657597509: (v) => new IFC4.IfcStructuralSurfaceAction(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4.IfcBoolean(!v[9] ? null : v[9].value), v[10], v[11]),\n 1975003073: (v) => new IFC4.IfcStructuralSurfaceConnection(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value)),\n 148013059: (v) => {\n var _a;\n return new IFC4.IfcSubContractResource(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value), v[10]);\n },\n 3101698114: (v) => new IFC4.IfcSurfaceFeature(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2315554128: (v) => {\n var _a, _b;\n return new IFC4.IfcSwitchingDeviceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2254336722: (v) => new IFC4.IfcSystem(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value)),\n 413509423: (v) => new IFC4.IfcSystemFurnitureElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 5716631: (v) => {\n var _a, _b;\n return new IFC4.IfcTankType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3824725483: (v) => new IFC4.IfcTendon(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcAreaMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcForceMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4.IfcPressureMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4.IfcPositiveLengthMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4.IfcPositiveLengthMeasure(!v[16] ? null : v[16].value)),\n 2347447852: (v) => new IFC4.IfcTendonAnchor(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]),\n 3081323446: (v) => {\n var _a, _b;\n return new IFC4.IfcTendonAnchorType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2415094496: (v) => {\n var _a, _b;\n return new IFC4.IfcTendonType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcAreaMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value));\n },\n 1692211062: (v) => {\n var _a, _b;\n return new IFC4.IfcTransformerType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1620046519: (v) => new IFC4.IfcTransportElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3593883385: (v) => {\n var _a, _b;\n return new IFC4.IfcTrimmedCurve(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4.IfcBoolean(!v[3] ? null : v[3].value), v[4]);\n },\n 1600972822: (v) => {\n var _a, _b;\n return new IFC4.IfcTubeBundleType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1911125066: (v) => {\n var _a, _b;\n return new IFC4.IfcUnitaryEquipmentType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 728799441: (v) => {\n var _a, _b;\n return new IFC4.IfcValveType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2391383451: (v) => new IFC4.IfcVibrationIsolator(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3313531582: (v) => {\n var _a, _b;\n return new IFC4.IfcVibrationIsolatorType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2769231204: (v) => new IFC4.IfcVirtualElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),\n 926996030: (v) => new IFC4.IfcVoidingFeature(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1898987631: (v) => {\n var _a, _b;\n return new IFC4.IfcWallType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1133259667: (v) => {\n var _a, _b;\n return new IFC4.IfcWasteTerminalType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 4009809668: (v) => {\n var _a, _b;\n return new IFC4.IfcWindowType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9], v[10], !v[11] ? null : new IFC4.IfcBoolean(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcLabel(!v[12] ? null : v[12].value));\n },\n 4088093105: (v) => {\n var _a, _b;\n return new IFC4.IfcWorkCalendar(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : ((_a = v[6]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : ((_b = v[7]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[8]);\n },\n 1028945134: (v) => {\n var _a;\n return new IFC4.IfcWorkControl(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcDuration(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcDuration(!v[10] ? null : v[10].value), new IFC4.IfcDateTime(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcDateTime(!v[12] ? null : v[12].value));\n },\n 4218914973: (v) => {\n var _a;\n return new IFC4.IfcWorkPlan(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcDuration(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcDuration(!v[10] ? null : v[10].value), new IFC4.IfcDateTime(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcDateTime(!v[12] ? null : v[12].value), v[13]);\n },\n 3342526732: (v) => {\n var _a;\n return new IFC4.IfcWorkSchedule(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcDuration(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcDuration(!v[10] ? null : v[10].value), new IFC4.IfcDateTime(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcDateTime(!v[12] ? null : v[12].value), v[13]);\n },\n 1033361043: (v) => new IFC4.IfcZone(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value)),\n 3821786052: (v) => new IFC4.IfcActionRequest(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcText(!v[8] ? null : v[8].value)),\n 1411407467: (v) => {\n var _a, _b;\n return new IFC4.IfcAirTerminalBoxType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3352864051: (v) => {\n var _a, _b;\n return new IFC4.IfcAirTerminalType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1871374353: (v) => {\n var _a, _b;\n return new IFC4.IfcAirToAirHeatRecoveryType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3460190687: (v) => new IFC4.IfcAsset(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new Handle(!v[10] ? null : v[10].value), !v[11] ? null : new Handle(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcDate(!v[12] ? null : v[12].value), !v[13] ? null : new Handle(!v[13] ? null : v[13].value)),\n 1532957894: (v) => {\n var _a, _b;\n return new IFC4.IfcAudioVisualApplianceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1967976161: (v) => {\n var _a;\n return new IFC4.IfcBSplineCurve(new IFC4.IfcInteger(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2], new IFC4.IfcLogical(!v[3] ? null : v[3].value), new IFC4.IfcLogical(!v[4] ? null : v[4].value));\n },\n 2461110595: (v) => {\n var _a, _b, _c;\n return new IFC4.IfcBSplineCurveWithKnots(new IFC4.IfcInteger(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2], new IFC4.IfcLogical(!v[3] ? null : v[3].value), new IFC4.IfcLogical(!v[4] ? null : v[4].value), ((_b = v[5]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcInteger(p.value) : null)) || [], ((_c = v[6]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcParameterValue(p.value) : null)) || [], v[7]);\n },\n 819618141: (v) => {\n var _a, _b;\n return new IFC4.IfcBeamType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 231477066: (v) => {\n var _a, _b;\n return new IFC4.IfcBoilerType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1136057603: (v) => {\n var _a;\n return new IFC4.IfcBoundaryCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4.IfcLogical(!v[1] ? null : v[1].value));\n },\n 3299480353: (v) => new IFC4.IfcBuildingElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),\n 2979338954: (v) => new IFC4.IfcBuildingElementPart(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 39481116: (v) => {\n var _a, _b;\n return new IFC4.IfcBuildingElementPartType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1095909175: (v) => new IFC4.IfcBuildingElementProxy(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1909888760: (v) => {\n var _a, _b;\n return new IFC4.IfcBuildingElementProxyType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1177604601: (v) => new IFC4.IfcBuildingSystem(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new IFC4.IfcLabel(!v[6] ? null : v[6].value)),\n 2188180465: (v) => {\n var _a, _b;\n return new IFC4.IfcBurnerType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 395041908: (v) => {\n var _a, _b;\n return new IFC4.IfcCableCarrierFittingType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3293546465: (v) => {\n var _a, _b;\n return new IFC4.IfcCableCarrierSegmentType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2674252688: (v) => {\n var _a, _b;\n return new IFC4.IfcCableFittingType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1285652485: (v) => {\n var _a, _b;\n return new IFC4.IfcCableSegmentType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2951183804: (v) => {\n var _a, _b;\n return new IFC4.IfcChillerType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3296154744: (v) => new IFC4.IfcChimney(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2611217952: (v) => new IFC4.IfcCircle(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)),\n 1677625105: (v) => new IFC4.IfcCivilElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),\n 2301859152: (v) => {\n var _a, _b;\n return new IFC4.IfcCoilType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 843113511: (v) => new IFC4.IfcColumn(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 905975707: (v) => new IFC4.IfcColumnStandardCase(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 400855858: (v) => {\n var _a, _b;\n return new IFC4.IfcCommunicationsApplianceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3850581409: (v) => {\n var _a, _b;\n return new IFC4.IfcCompressorType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2816379211: (v) => {\n var _a, _b;\n return new IFC4.IfcCondenserType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3898045240: (v) => {\n var _a;\n return new IFC4.IfcConstructionEquipmentResource(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value), v[10]);\n },\n 1060000209: (v) => {\n var _a;\n return new IFC4.IfcConstructionMaterialResource(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value), v[10]);\n },\n 488727124: (v) => {\n var _a;\n return new IFC4.IfcConstructionProductResource(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value), v[10]);\n },\n 335055490: (v) => {\n var _a, _b;\n return new IFC4.IfcCooledBeamType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2954562838: (v) => {\n var _a, _b;\n return new IFC4.IfcCoolingTowerType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1973544240: (v) => new IFC4.IfcCovering(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3495092785: (v) => new IFC4.IfcCurtainWall(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3961806047: (v) => {\n var _a, _b;\n return new IFC4.IfcDamperType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1335981549: (v) => new IFC4.IfcDiscreteAccessory(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2635815018: (v) => {\n var _a, _b;\n return new IFC4.IfcDiscreteAccessoryType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1599208980: (v) => {\n var _a, _b;\n return new IFC4.IfcDistributionChamberElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2063403501: (v) => {\n var _a, _b;\n return new IFC4.IfcDistributionControlElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));\n },\n 1945004755: (v) => new IFC4.IfcDistributionElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),\n 3040386961: (v) => new IFC4.IfcDistributionFlowElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),\n 3041715199: (v) => new IFC4.IfcDistributionPort(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], v[8], v[9]),\n 3205830791: (v) => new IFC4.IfcDistributionSystem(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value), v[6]),\n 395920057: (v) => new IFC4.IfcDoor(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), v[10], v[11], !v[12] ? null : new IFC4.IfcLabel(!v[12] ? null : v[12].value)),\n 3242481149: (v) => new IFC4.IfcDoorStandardCase(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), v[10], v[11], !v[12] ? null : new IFC4.IfcLabel(!v[12] ? null : v[12].value)),\n 869906466: (v) => {\n var _a, _b;\n return new IFC4.IfcDuctFittingType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3760055223: (v) => {\n var _a, _b;\n return new IFC4.IfcDuctSegmentType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2030761528: (v) => {\n var _a, _b;\n return new IFC4.IfcDuctSilencerType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 663422040: (v) => {\n var _a, _b;\n return new IFC4.IfcElectricApplianceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2417008758: (v) => {\n var _a, _b;\n return new IFC4.IfcElectricDistributionBoardType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3277789161: (v) => {\n var _a, _b;\n return new IFC4.IfcElectricFlowStorageDeviceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1534661035: (v) => {\n var _a, _b;\n return new IFC4.IfcElectricGeneratorType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1217240411: (v) => {\n var _a, _b;\n return new IFC4.IfcElectricMotorType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 712377611: (v) => {\n var _a, _b;\n return new IFC4.IfcElectricTimeControlType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1658829314: (v) => new IFC4.IfcEnergyConversionDevice(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),\n 2814081492: (v) => new IFC4.IfcEngine(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3747195512: (v) => new IFC4.IfcEvaporativeCooler(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 484807127: (v) => new IFC4.IfcEvaporator(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1209101575: (v) => new IFC4.IfcExternalSpatialElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), v[8]),\n 346874300: (v) => {\n var _a, _b;\n return new IFC4.IfcFanType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1810631287: (v) => {\n var _a, _b;\n return new IFC4.IfcFilterType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 4222183408: (v) => {\n var _a, _b;\n return new IFC4.IfcFireSuppressionTerminalType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2058353004: (v) => new IFC4.IfcFlowController(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),\n 4278956645: (v) => new IFC4.IfcFlowFitting(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),\n 4037862832: (v) => {\n var _a, _b;\n return new IFC4.IfcFlowInstrumentType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2188021234: (v) => new IFC4.IfcFlowMeter(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3132237377: (v) => new IFC4.IfcFlowMovingDevice(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),\n 987401354: (v) => new IFC4.IfcFlowSegment(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),\n 707683696: (v) => new IFC4.IfcFlowStorageDevice(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),\n 2223149337: (v) => new IFC4.IfcFlowTerminal(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),\n 3508470533: (v) => new IFC4.IfcFlowTreatmentDevice(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),\n 900683007: (v) => new IFC4.IfcFooting(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3319311131: (v) => new IFC4.IfcHeatExchanger(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2068733104: (v) => new IFC4.IfcHumidifier(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 4175244083: (v) => new IFC4.IfcInterceptor(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2176052936: (v) => new IFC4.IfcJunctionBox(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 76236018: (v) => new IFC4.IfcLamp(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 629592764: (v) => new IFC4.IfcLightFixture(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1437502449: (v) => new IFC4.IfcMedicalDevice(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1073191201: (v) => new IFC4.IfcMember(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1911478936: (v) => new IFC4.IfcMemberStandardCase(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2474470126: (v) => new IFC4.IfcMotorConnection(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 144952367: (v) => {\n var _a;\n return new IFC4.IfcOuterBoundaryCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4.IfcLogical(!v[1] ? null : v[1].value));\n },\n 3694346114: (v) => new IFC4.IfcOutlet(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1687234759: (v) => new IFC4.IfcPile(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8], v[9]),\n 310824031: (v) => new IFC4.IfcPipeFitting(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3612865200: (v) => new IFC4.IfcPipeSegment(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3171933400: (v) => new IFC4.IfcPlate(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1156407060: (v) => new IFC4.IfcPlateStandardCase(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 738039164: (v) => new IFC4.IfcProtectiveDevice(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 655969474: (v) => {\n var _a, _b;\n return new IFC4.IfcProtectiveDeviceTrippingUnitType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 90941305: (v) => new IFC4.IfcPump(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2262370178: (v) => new IFC4.IfcRailing(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3024970846: (v) => new IFC4.IfcRamp(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3283111854: (v) => new IFC4.IfcRampFlight(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1232101972: (v) => {\n var _a, _b, _c, _d;\n return new IFC4.IfcRationalBSplineCurveWithKnots(new IFC4.IfcInteger(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2], new IFC4.IfcLogical(!v[3] ? null : v[3].value), new IFC4.IfcLogical(!v[4] ? null : v[4].value), ((_b = v[5]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcInteger(p.value) : null)) || [], ((_c = v[6]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcParameterValue(p.value) : null)) || [], v[7], ((_d = v[8]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcReal(p.value) : null)) || []);\n },\n 979691226: (v) => new IFC4.IfcReinforcingBar(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcAreaMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), v[12], v[13]),\n 2572171363: (v) => {\n var _a, _b, _c;\n return new IFC4.IfcReinforcingBarType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcAreaMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), v[13], !v[14] ? null : new IFC4.IfcLabel(!v[14] ? null : v[14].value), !v[15] ? null : ((_c = v[15]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || []);\n },\n 2016517767: (v) => new IFC4.IfcRoof(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3053780830: (v) => new IFC4.IfcSanitaryTerminal(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1783015770: (v) => {\n var _a, _b;\n return new IFC4.IfcSensorType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1329646415: (v) => new IFC4.IfcShadingDevice(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1529196076: (v) => new IFC4.IfcSlab(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3127900445: (v) => new IFC4.IfcSlabElementedCase(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3027962421: (v) => new IFC4.IfcSlabStandardCase(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3420628829: (v) => new IFC4.IfcSolarDevice(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1999602285: (v) => new IFC4.IfcSpaceHeater(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1404847402: (v) => new IFC4.IfcStackTerminal(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 331165859: (v) => new IFC4.IfcStair(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 4252922144: (v) => new IFC4.IfcStairFlight(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcInteger(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcInteger(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), v[12]),\n 2515109513: (v) => {\n var _a, _b;\n return new IFC4.IfcStructuralAnalysisModel(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value));\n },\n 385403989: (v) => {\n var _a;\n return new IFC4.IfcStructuralLoadCase(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), v[5], v[6], v[7], !v[8] ? null : new IFC4.IfcRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcLabel(!v[9] ? null : v[9].value), !v[10] ? null : ((_a = v[10]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcRatioMeasure(p.value) : null)) || []);\n },\n 1621171031: (v) => new IFC4.IfcStructuralPlanarAction(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4.IfcBoolean(!v[9] ? null : v[9].value), v[10], v[11]),\n 1162798199: (v) => new IFC4.IfcSwitchingDevice(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 812556717: (v) => new IFC4.IfcTank(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3825984169: (v) => new IFC4.IfcTransformer(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3026737570: (v) => new IFC4.IfcTubeBundle(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3179687236: (v) => {\n var _a, _b;\n return new IFC4.IfcUnitaryControlElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 4292641817: (v) => new IFC4.IfcUnitaryEquipment(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 4207607924: (v) => new IFC4.IfcValve(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2391406946: (v) => new IFC4.IfcWall(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 4156078855: (v) => new IFC4.IfcWallElementedCase(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3512223829: (v) => new IFC4.IfcWallStandardCase(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 4237592921: (v) => new IFC4.IfcWasteTerminal(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3304561284: (v) => new IFC4.IfcWindow(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), v[10], v[11], !v[12] ? null : new IFC4.IfcLabel(!v[12] ? null : v[12].value)),\n 486154966: (v) => new IFC4.IfcWindowStandardCase(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), v[10], v[11], !v[12] ? null : new IFC4.IfcLabel(!v[12] ? null : v[12].value)),\n 2874132201: (v) => {\n var _a, _b;\n return new IFC4.IfcActuatorType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1634111441: (v) => new IFC4.IfcAirTerminal(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 177149247: (v) => new IFC4.IfcAirTerminalBox(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2056796094: (v) => new IFC4.IfcAirToAirHeatRecovery(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3001207471: (v) => {\n var _a, _b;\n return new IFC4.IfcAlarmType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 277319702: (v) => new IFC4.IfcAudioVisualAppliance(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 753842376: (v) => new IFC4.IfcBeam(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2906023776: (v) => new IFC4.IfcBeamStandardCase(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 32344328: (v) => new IFC4.IfcBoiler(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2938176219: (v) => new IFC4.IfcBurner(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 635142910: (v) => new IFC4.IfcCableCarrierFitting(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3758799889: (v) => new IFC4.IfcCableCarrierSegment(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1051757585: (v) => new IFC4.IfcCableFitting(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 4217484030: (v) => new IFC4.IfcCableSegment(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3902619387: (v) => new IFC4.IfcChiller(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 639361253: (v) => new IFC4.IfcCoil(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3221913625: (v) => new IFC4.IfcCommunicationsAppliance(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3571504051: (v) => new IFC4.IfcCompressor(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2272882330: (v) => new IFC4.IfcCondenser(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 578613899: (v) => {\n var _a, _b;\n return new IFC4.IfcControllerType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 4136498852: (v) => new IFC4.IfcCooledBeam(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3640358203: (v) => new IFC4.IfcCoolingTower(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 4074379575: (v) => new IFC4.IfcDamper(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1052013943: (v) => new IFC4.IfcDistributionChamberElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 562808652: (v) => new IFC4.IfcDistributionCircuit(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value), v[6]),\n 1062813311: (v) => new IFC4.IfcDistributionControlElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),\n 342316401: (v) => new IFC4.IfcDuctFitting(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3518393246: (v) => new IFC4.IfcDuctSegment(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1360408905: (v) => new IFC4.IfcDuctSilencer(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1904799276: (v) => new IFC4.IfcElectricAppliance(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 862014818: (v) => new IFC4.IfcElectricDistributionBoard(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3310460725: (v) => new IFC4.IfcElectricFlowStorageDevice(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 264262732: (v) => new IFC4.IfcElectricGenerator(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 402227799: (v) => new IFC4.IfcElectricMotor(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1003880860: (v) => new IFC4.IfcElectricTimeControl(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3415622556: (v) => new IFC4.IfcFan(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 819412036: (v) => new IFC4.IfcFilter(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1426591983: (v) => new IFC4.IfcFireSuppressionTerminal(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 182646315: (v) => new IFC4.IfcFlowInstrument(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2295281155: (v) => new IFC4.IfcProtectiveDeviceTrippingUnit(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 4086658281: (v) => new IFC4.IfcSensor(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 630975310: (v) => new IFC4.IfcUnitaryControlElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 4288193352: (v) => new IFC4.IfcActuator(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3087945054: (v) => new IFC4.IfcAlarm(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 25142252: (v) => new IFC4.IfcController(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8])\n};\nInheritanceDef[2] = {\n 618182010: [IFCTELECOMADDRESS, IFCPOSTALADDRESS],\n 411424972: [IFCCOSTVALUE],\n 4037036970: [IFCBOUNDARYNODECONDITIONWARPING, IFCBOUNDARYNODECONDITION, IFCBOUNDARYFACECONDITION, IFCBOUNDARYEDGECONDITION],\n 1387855156: [IFCBOUNDARYNODECONDITIONWARPING],\n 2859738748: [IFCCONNECTIONCURVEGEOMETRY, IFCCONNECTIONVOLUMEGEOMETRY, IFCCONNECTIONSURFACEGEOMETRY, IFCCONNECTIONPOINTECCENTRICITY, IFCCONNECTIONPOINTGEOMETRY],\n 2614616156: [IFCCONNECTIONPOINTECCENTRICITY],\n 1959218052: [IFCOBJECTIVE, IFCMETRIC],\n 1785450214: [IFCMAPCONVERSION],\n 1466758467: [IFCPROJECTEDCRS],\n 4294318154: [IFCDOCUMENTINFORMATION, IFCCLASSIFICATION, IFCLIBRARYINFORMATION],\n 3200245327: [IFCDOCUMENTREFERENCE, IFCCLASSIFICATIONREFERENCE, IFCLIBRARYREFERENCE, IFCEXTERNALLYDEFINEDTEXTFONT, IFCEXTERNALLYDEFINEDSURFACESTYLE, IFCEXTERNALLYDEFINEDHATCHSTYLE],\n 760658860: [IFCMATERIALCONSTITUENTSET, IFCMATERIALCONSTITUENT, IFCMATERIAL, IFCMATERIALPROFILESET, IFCMATERIALPROFILEWITHOFFSETS, IFCMATERIALPROFILE, IFCMATERIALLAYERSET, IFCMATERIALLAYERWITHOFFSETS, IFCMATERIALLAYER],\n 248100487: [IFCMATERIALLAYERWITHOFFSETS],\n 2235152071: [IFCMATERIALPROFILEWITHOFFSETS],\n 1507914824: [IFCMATERIALPROFILESETUSAGETAPERING, IFCMATERIALPROFILESETUSAGE, IFCMATERIALLAYERSETUSAGE],\n 1918398963: [IFCCONVERSIONBASEDUNITWITHOFFSET, IFCCONVERSIONBASEDUNIT, IFCCONTEXTDEPENDENTUNIT, IFCSIUNIT],\n 3701648758: [IFCLOCALPLACEMENT, IFCGRIDPLACEMENT],\n 2483315170: [IFCPHYSICALCOMPLEXQUANTITY, IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA, IFCPHYSICALSIMPLEQUANTITY],\n 2226359599: [IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA],\n 677532197: [IFCDRAUGHTINGPREDEFINEDCURVEFONT, IFCPREDEFINEDCURVEFONT, IFCDRAUGHTINGPREDEFINEDCOLOUR, IFCPREDEFINEDCOLOUR, IFCTEXTSTYLEFONTMODEL, IFCPREDEFINEDTEXTFONT, IFCPREDEFINEDITEM, IFCINDEXEDCOLOURMAP, IFCCURVESTYLEFONTPATTERN, IFCCURVESTYLEFONTANDSCALING, IFCCURVESTYLEFONT, IFCCOLOURRGB, IFCCOLOURSPECIFICATION, IFCCOLOURRGBLIST, IFCTEXTUREVERTEXLIST, IFCTEXTUREVERTEX, IFCINDEXEDTRIANGLETEXTUREMAP, IFCINDEXEDTEXTUREMAP, IFCTEXTUREMAP, IFCTEXTURECOORDINATEGENERATOR, IFCTEXTURECOORDINATE, IFCTEXTSTYLETEXTMODEL, IFCTEXTSTYLEFORDEFINEDFONT, IFCPIXELTEXTURE, IFCIMAGETEXTURE, IFCBLOBTEXTURE, IFCSURFACETEXTURE, IFCSURFACESTYLEWITHTEXTURES, IFCSURFACESTYLERENDERING, IFCSURFACESTYLESHADING, IFCSURFACESTYLEREFRACTION, IFCSURFACESTYLELIGHTING],\n 2022622350: [IFCPRESENTATIONLAYERWITHSTYLE],\n 3119450353: [IFCFILLAREASTYLE, IFCCURVESTYLE, IFCTEXTSTYLE, IFCSURFACESTYLE],\n 2095639259: [IFCPRODUCTDEFINITIONSHAPE, IFCMATERIALDEFINITIONREPRESENTATION],\n 3958567839: [IFCLSHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF, IFCPARAMETERIZEDPROFILEDEF, IFCMIRROREDPROFILEDEF, IFCDERIVEDPROFILEDEF, IFCCOMPOSITEPROFILEDEF, IFCCENTERLINEPROFILEDEF, IFCARBITRARYOPENPROFILEDEF, IFCARBITRARYPROFILEDEFWITHVOIDS, IFCARBITRARYCLOSEDPROFILEDEF],\n 986844984: [IFCCOMPLEXPROPERTY, IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE, IFCSIMPLEPROPERTY, IFCPROPERTY, IFCSECTIONREINFORCEMENTPROPERTIES, IFCSECTIONPROPERTIES, IFCREINFORCEMENTBARPROPERTIES, IFCPREDEFINEDPROPERTIES, IFCPROFILEPROPERTIES, IFCMATERIALPROPERTIES, IFCEXTENDEDPROPERTIES, IFCPROPERTYENUMERATION],\n 1076942058: [IFCSTYLEDREPRESENTATION, IFCSTYLEMODEL, IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION, IFCSHAPEMODEL],\n 3377609919: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT, IFCGEOMETRICREPRESENTATIONCONTEXT],\n 3008791417: [IFCMAPPEDITEM, IFCFILLAREASTYLETILES, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIRECTION, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCPCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCREPARAMETRISEDCOMPOSITECURVESEGMENT, IFCCOMPOSITECURVESEGMENT, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D, IFCCARTESIANPOINTLIST, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPOLYGONALFACESET, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE, IFCTESSELLATEDITEM, IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET, IFCGEOMETRICREPRESENTATIONITEM, IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCADVANCEDFACE, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX, IFCTOPOLOGICALREPRESENTATIONITEM, IFCSTYLEDITEM],\n 2439245199: [IFCRESOURCECONSTRAINTRELATIONSHIP, IFCRESOURCEAPPROVALRELATIONSHIP, IFCPROPERTYDEPENDENCYRELATIONSHIP, IFCORGANIZATIONRELATIONSHIP, IFCMATERIALRELATIONSHIP, IFCEXTERNALREFERENCERELATIONSHIP, IFCDOCUMENTINFORMATIONRELATIONSHIP, IFCCURRENCYRELATIONSHIP, IFCAPPROVALRELATIONSHIP],\n 2341007311: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELDECLARES, IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS, IFCRELATIONSHIP, IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE, IFCPROPERTYTEMPLATEDEFINITION, IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET, IFCPROPERTYSETDEFINITION, IFCPROPERTYDEFINITION, IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS, IFCOBJECT, IFCPROJECTLIBRARY, IFCPROJECT, IFCCONTEXT, IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS, IFCTYPEOBJECT, IFCOBJECTDEFINITION],\n 1054537805: [IFCRESOURCETIME, IFCLAGTIME, IFCEVENTTIME, IFCWORKTIME, IFCTASKTIMERECURRING, IFCTASKTIME],\n 3982875396: [IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION],\n 2273995522: [IFCSLIPPAGECONNECTIONCONDITION, IFCFAILURECONNECTIONCONDITION],\n 2162789131: [IFCSURFACEREINFORCEMENTAREA, IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE, IFCSTRUCTURALLOADSTATIC, IFCSTRUCTURALLOADORRESULT, IFCSTRUCTURALLOADCONFIGURATION],\n 609421318: [IFCSURFACEREINFORCEMENTAREA, IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE, IFCSTRUCTURALLOADSTATIC],\n 2525727697: [IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE],\n 2830218821: [IFCSTYLEDREPRESENTATION],\n 846575682: [IFCSURFACESTYLERENDERING],\n 626085974: [IFCPIXELTEXTURE, IFCIMAGETEXTURE, IFCBLOBTEXTURE],\n 1549132990: [IFCTASKTIMERECURRING],\n 280115917: [IFCINDEXEDTRIANGLETEXTUREMAP, IFCINDEXEDTEXTUREMAP, IFCTEXTUREMAP, IFCTEXTURECOORDINATEGENERATOR],\n 3101149627: [IFCREGULARTIMESERIES, IFCIRREGULARTIMESERIES],\n 1377556343: [IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCADVANCEDFACE, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX],\n 2799835756: [IFCVERTEXPOINT],\n 3798115385: [IFCARBITRARYPROFILEDEFWITHVOIDS],\n 1310608509: [IFCCENTERLINEPROFILEDEF],\n 3264961684: [IFCCOLOURRGB],\n 370225590: [IFCCLOSEDSHELL, IFCOPENSHELL],\n 2889183280: [IFCCONVERSIONBASEDUNITWITHOFFSET],\n 3632507154: [IFCMIRROREDPROFILEDEF],\n 3900360178: [IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE],\n 297599258: [IFCPROFILEPROPERTIES, IFCMATERIALPROPERTIES],\n 2556980723: [IFCADVANCEDFACE, IFCFACESURFACE],\n 1809719519: [IFCFACEOUTERBOUND],\n 3008276851: [IFCADVANCEDFACE],\n 3448662350: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT],\n 2453401579: [IFCFILLAREASTYLETILES, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIRECTION, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCPCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCREPARAMETRISEDCOMPOSITECURVESEGMENT, IFCCOMPOSITECURVESEGMENT, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D, IFCCARTESIANPOINTLIST, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPOLYGONALFACESET, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE, IFCTESSELLATEDITEM, IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET],\n 3590301190: [IFCGEOMETRICCURVESET],\n 812098782: [IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE],\n 1437953363: [IFCINDEXEDTRIANGLETEXTUREMAP],\n 1402838566: [IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT],\n 1520743889: [IFCLIGHTSOURCESPOT],\n 1008929658: [IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP],\n 3079605661: [IFCMATERIALPROFILESETUSAGETAPERING],\n 219451334: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS, IFCOBJECT, IFCPROJECTLIBRARY, IFCPROJECT, IFCCONTEXT, IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS, IFCTYPEOBJECT],\n 2529465313: [IFCLSHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF],\n 2004835150: [IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT],\n 1663979128: [IFCPLANARBOX],\n 2067069095: [IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE],\n 3727388367: [IFCDRAUGHTINGPREDEFINEDCURVEFONT, IFCPREDEFINEDCURVEFONT, IFCDRAUGHTINGPREDEFINEDCOLOUR, IFCPREDEFINEDCOLOUR, IFCTEXTSTYLEFONTMODEL, IFCPREDEFINEDTEXTFONT],\n 3778827333: [IFCSECTIONREINFORCEMENTPROPERTIES, IFCSECTIONPROPERTIES, IFCREINFORCEMENTBARPROPERTIES],\n 1775413392: [IFCTEXTSTYLEFONTMODEL],\n 2598011224: [IFCCOMPLEXPROPERTY, IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE, IFCSIMPLEPROPERTY],\n 1680319473: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE, IFCPROPERTYTEMPLATEDEFINITION, IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET, IFCPROPERTYSETDEFINITION],\n 3357820518: [IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET],\n 1482703590: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE],\n 2090586900: [IFCELEMENTQUANTITY],\n 3615266464: [IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF],\n 478536968: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELDECLARES, IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS],\n 3692461612: [IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE],\n 723233188: [IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID],\n 2473145415: [IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION],\n 1597423693: [IFCSTRUCTURALLOADSINGLEFORCEWARPING],\n 2513912981: [IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE],\n 2247615214: [IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID],\n 1260650574: [IFCSWEPTDISKSOLIDPOLYGONAL],\n 230924584: [IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION],\n 901063453: [IFCPOLYGONALFACESET, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE],\n 4282788508: [IFCTEXTLITERALWITHEXTENT],\n 1628702193: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS],\n 3736923433: [IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE],\n 2347495698: [IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE],\n 3698973494: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE],\n 2736907675: [IFCBOOLEANCLIPPINGRESULT],\n 4182860854: [IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE],\n 574549367: [IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D],\n 59481748: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D],\n 3749851601: [IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM],\n 3331915920: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM],\n 1383045692: [IFCCIRCLEHOLLOWPROFILEDEF],\n 2485617015: [IFCREPARAMETRISEDCOMPOSITECURVESEGMENT],\n 2574617495: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE],\n 3419103109: [IFCPROJECTLIBRARY, IFCPROJECT],\n 2506170314: [IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID],\n 2601014836: [IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCPCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE],\n 339256511: [IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE],\n 2777663545: [IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE],\n 477187591: [IFCEXTRUDEDAREASOLIDTAPERED],\n 4238390223: [IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE],\n 178912537: [IFCINDEXEDPOLYGONALFACEWITHVOIDS],\n 1425443689: [IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP],\n 3888040117: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS],\n 759155922: [IFCDRAUGHTINGPREDEFINEDCOLOUR],\n 2559016684: [IFCDRAUGHTINGPREDEFINEDCURVEFONT],\n 3967405729: [IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES],\n 2945172077: [IFCPROCEDURE, IFCEVENT, IFCTASK],\n 4208778838: [IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPROXY],\n 3521284610: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE],\n 3939117080: [IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR],\n 1307041759: [IFCRELASSIGNSTOGROUPBYFACTOR],\n 1865459582: [IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL],\n 826625072: [IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS],\n 1204542856: [IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS],\n 1638771189: [IFCRELCONNECTSWITHECCENTRICITY],\n 2551354335: [IFCRELAGGREGATES, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS],\n 693640335: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT],\n 3451746338: [IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL],\n 3523091289: [IFCRELSPACEBOUNDARY2NDLEVEL],\n 2914609552: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE],\n 1856042241: [IFCREVOLVEDAREASOLIDTAPERED],\n 1412071761: [IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT],\n 710998568: [IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE],\n 2706606064: [IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING],\n 3893378262: [IFCSPACETYPE],\n 3544373492: [IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION],\n 3136571912: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER],\n 530289379: [IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER],\n 3689010777: [IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION],\n 3979015343: [IFCSTRUCTURALSURFACEMEMBERVARYING],\n 699246055: [IFCSEAMCURVE, IFCINTERSECTIONCURVE],\n 2387106220: [IFCPOLYGONALFACESET, IFCTRIANGULATEDFACESET],\n 2296667514: [IFCOCCUPANT],\n 1635779807: [IFCADVANCEDBREPWITHVOIDS],\n 2887950389: [IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS],\n 167062518: [IFCRATIONALBSPLINESURFACEWITHKNOTS],\n 1260505505: [IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE],\n 1950629157: [IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE],\n 3732776249: [IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE],\n 15328376: [IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE],\n 2510884976: [IFCCIRCLE, IFCELLIPSE],\n 2559216714: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE],\n 3293443760: [IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM],\n 3256556792: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE],\n 3849074793: [IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE],\n 1758889154: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY],\n 1623761950: [IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER],\n 2590856083: [IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE],\n 2107101300: [IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE],\n 2853485674: [IFCEXTERNALSPATIALELEMENT],\n 807026263: [IFCFACETEDBREPWITHVOIDS],\n 2827207264: [IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION],\n 2143335405: [IFCPROJECTIONELEMENT],\n 1287392070: [IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT],\n 3907093117: [IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE],\n 3198132628: [IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE],\n 1482959167: [IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE],\n 1834744321: [IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE],\n 1339347760: [IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE],\n 2297155007: [IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE],\n 3009222698: [IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE],\n 263784265: [IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE],\n 2706460486: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY],\n 3588315303: [IFCOPENINGSTANDARDCASE],\n 3740093272: [IFCDISTRIBUTIONPORT],\n 3027567501: [IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH],\n 964333572: [IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE],\n 682877961: [IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION],\n 1179482911: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION],\n 1004757350: [IFCSTRUCTURALLINEARACTION],\n 214636428: [IFCSTRUCTURALCURVEMEMBERVARYING],\n 1252848954: [IFCSTRUCTURALLOADCASE],\n 3657597509: [IFCSTRUCTURALPLANARACTION],\n 2254336722: [IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILDINGSYSTEM, IFCZONE],\n 1028945134: [IFCWORKSCHEDULE, IFCWORKPLAN],\n 1967976161: [IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS],\n 2461110595: [IFCRATIONALBSPLINECURVEWITHKNOTS],\n 1136057603: [IFCOUTERBOUNDARYCURVE],\n 3299480353: [IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY],\n 843113511: [IFCCOLUMNSTANDARDCASE],\n 2063403501: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE],\n 1945004755: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT],\n 3040386961: [IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE],\n 3205830791: [IFCDISTRIBUTIONCIRCUIT],\n 395920057: [IFCDOORSTANDARDCASE],\n 1658829314: [IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE],\n 2058353004: [IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER],\n 4278956645: [IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX],\n 3132237377: [IFCFAN, IFCCOMPRESSOR, IFCPUMP],\n 987401354: [IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT],\n 707683696: [IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK],\n 2223149337: [IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP],\n 3508470533: [IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR],\n 1073191201: [IFCMEMBERSTANDARDCASE],\n 3171933400: [IFCPLATESTANDARDCASE],\n 1529196076: [IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE],\n 2391406946: [IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE],\n 3304561284: [IFCWINDOWSTANDARDCASE],\n 753842376: [IFCBEAMSTANDARDCASE],\n 1062813311: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT]\n};\nInversePropertyDef[2] = {\n 3630933823: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 618182010: [[\"OfPerson\", IFCPERSON, 7, true], [\"OfOrganization\", IFCORGANIZATION, 4, true]],\n 411424972: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 130549933: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"ApprovedObjects\", IFCRELASSOCIATESAPPROVAL, 5, true], [\"ApprovedResources\", IFCRESOURCEAPPROVALRELATIONSHIP, 3, true], [\"IsRelatedWith\", IFCAPPROVALRELATIONSHIP, 3, true], [\"Relates\", IFCAPPROVALRELATIONSHIP, 2, true]],\n 1959218052: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PropertiesForConstraint\", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]],\n 1466758467: [[\"HasCoordinateOperation\", IFCCOORDINATEOPERATION, 0, true]],\n 602808272: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 3200245327: [[\"ExternalReferenceForResources\", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]],\n 2242383968: [[\"ExternalReferenceForResources\", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]],\n 1040185647: [[\"ExternalReferenceForResources\", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]],\n 3548104201: [[\"ExternalReferenceForResources\", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]],\n 852622518: [[\"PartOfW\", IFCGRID, 9, true], [\"PartOfV\", IFCGRID, 8, true], [\"PartOfU\", IFCGRID, 7, true], [\"HasIntersections\", IFCVIRTUALGRIDINTERSECTION, 0, true]],\n 2655187982: [[\"LibraryInfoForObjects\", IFCRELASSOCIATESLIBRARY, 5, true], [\"HasLibraryReferences\", IFCLIBRARYREFERENCE, 5, true]],\n 3452421091: [[\"ExternalReferenceForResources\", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], [\"LibraryRefForObjects\", IFCRELASSOCIATESLIBRARY, 5, true]],\n 760658860: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true]],\n 248100487: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true], [\"ToMaterialLayerSet\", IFCMATERIALLAYERSET, 0, false]],\n 3303938423: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true]],\n 1847252529: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true], [\"ToMaterialLayerSet\", IFCMATERIALLAYERSET, 0, false]],\n 2235152071: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true], [\"ToMaterialProfileSet\", IFCMATERIALPROFILESET, 2, false]],\n 164193824: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true]],\n 552965576: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true], [\"ToMaterialProfileSet\", IFCMATERIALPROFILESET, 2, false]],\n 1507914824: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true]],\n 3368373690: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PropertiesForConstraint\", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]],\n 3701648758: [[\"PlacesObject\", IFCPRODUCT, 5, true], [\"ReferencedByPlacements\", IFCLOCALPLACEMENT, 0, true]],\n 2251480897: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PropertiesForConstraint\", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]],\n 4251960020: [[\"IsRelatedBy\", IFCORGANIZATIONRELATIONSHIP, 3, true], [\"Relates\", IFCORGANIZATIONRELATIONSHIP, 2, true], [\"Engages\", IFCPERSONANDORGANIZATION, 1, true]],\n 2077209135: [[\"EngagedIn\", IFCPERSONANDORGANIZATION, 0, true]],\n 2483315170: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n 2226359599: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n 3355820592: [[\"OfPerson\", IFCPERSON, 7, true], [\"OfOrganization\", IFCORGANIZATION, 4, true]],\n 3958567839: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 3843373140: [[\"HasCoordinateOperation\", IFCCOORDINATEOPERATION, 0, true]],\n 986844984: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 3710013099: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 2044713172: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n 2093928680: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n 931644368: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n 3252649465: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n 2405470396: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n 825690147: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n 1076942058: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true]],\n 3377609919: [[\"RepresentationsInContext\", IFCREPRESENTATION, 0, true]],\n 3008791417: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1660063152: [[\"HasShapeAspects\", IFCSHAPEASPECT, 4, true], [\"MapUsage\", IFCMAPPEDITEM, 0, true]],\n 3982875396: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true], [\"OfShapeAspect\", IFCSHAPEASPECT, 0, true]],\n 4240577450: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true], [\"OfShapeAspect\", IFCSHAPEASPECT, 0, true]],\n 2830218821: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true]],\n 3958052878: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3049322572: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true]],\n 626085974: [[\"IsMappedBy\", IFCTEXTURECOORDINATE, 0, true], [\"UsedInStyles\", IFCSURFACESTYLEWITHTEXTURES, 0, true]],\n 912023232: [[\"OfPerson\", IFCPERSON, 7, true], [\"OfOrganization\", IFCORGANIZATION, 4, true]],\n 3101149627: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 1377556343: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1735638870: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true], [\"OfShapeAspect\", IFCSHAPEASPECT, 0, true]],\n 2799835756: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1907098498: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3798115385: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 1310608509: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 2705031697: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 616511568: [[\"IsMappedBy\", IFCTEXTURECOORDINATE, 0, true], [\"UsedInStyles\", IFCSURFACESTYLEWITHTEXTURES, 0, true]],\n 3150382593: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 747523909: [[\"ClassificationForObjects\", IFCRELASSOCIATESCLASSIFICATION, 5, true], [\"HasReferences\", IFCCLASSIFICATIONREFERENCE, 3, true]],\n 647927063: [[\"ExternalReferenceForResources\", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], [\"ClassificationRefForObjects\", IFCRELASSOCIATESCLASSIFICATION, 5, true], [\"HasReferences\", IFCCLASSIFICATIONREFERENCE, 3, true]],\n 1485152156: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 370225590: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3050246964: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 2889183280: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 2713554722: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 3632507154: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 1154170062: [[\"DocumentInfoForObjects\", IFCRELASSOCIATESDOCUMENT, 5, true], [\"HasDocumentReferences\", IFCDOCUMENTREFERENCE, 4, true], [\"IsPointedTo\", IFCDOCUMENTINFORMATIONRELATIONSHIP, 3, true], [\"IsPointer\", IFCDOCUMENTINFORMATIONRELATIONSHIP, 2, true]],\n 3732053477: [[\"ExternalReferenceForResources\", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], [\"DocumentRefForObjects\", IFCRELASSOCIATESDOCUMENT, 5, true]],\n 3900360178: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 476780140: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 297599258: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 2556980723: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"HasTextureMaps\", IFCTEXTUREMAP, 2, true]],\n 1809719519: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 803316827: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3008276851: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"HasTextureMaps\", IFCTEXTUREMAP, 2, true]],\n 3448662350: [[\"RepresentationsInContext\", IFCREPRESENTATION, 0, true], [\"HasSubContexts\", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true], [\"HasCoordinateOperation\", IFCCOORDINATEOPERATION, 0, true]],\n 2453401579: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4142052618: [[\"RepresentationsInContext\", IFCREPRESENTATION, 0, true], [\"HasSubContexts\", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true], [\"HasCoordinateOperation\", IFCCOORDINATEOPERATION, 0, true]],\n 3590301190: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 178086475: [[\"PlacesObject\", IFCPRODUCT, 5, true], [\"ReferencedByPlacements\", IFCLOCALPLACEMENT, 0, true]],\n 812098782: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3905492369: [[\"IsMappedBy\", IFCTEXTURECOORDINATE, 0, true], [\"UsedInStyles\", IFCSURFACESTYLEWITHTEXTURES, 0, true]],\n 3741457305: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 1402838566: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 125510826: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2604431987: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4266656042: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1520743889: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3422422726: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2624227202: [[\"PlacesObject\", IFCPRODUCT, 5, true], [\"ReferencedByPlacements\", IFCLOCALPLACEMENT, 0, true]],\n 1008929658: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2347385850: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1838606355: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true], [\"HasRepresentation\", IFCMATERIALDEFINITIONREPRESENTATION, 3, true], [\"IsRelatedWith\", IFCMATERIALRELATIONSHIP, 3, true], [\"RelatesTo\", IFCMATERIALRELATIONSHIP, 2, true]],\n 3708119e3: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true], [\"ToMaterialConstituentSet\", IFCMATERIALCONSTITUENTSET, 2, false]],\n 2852063980: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true]],\n 1303795690: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true]],\n 3079605661: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true]],\n 3404854881: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true]],\n 3265635763: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 2998442950: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 219451334: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true]],\n 2665983363: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1029017970: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2529465313: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 2519244187: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3021840470: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n 597895409: [[\"IsMappedBy\", IFCTEXTURECOORDINATE, 0, true], [\"UsedInStyles\", IFCSURFACESTYLEWITHTEXTURES, 0, true]],\n 2004835150: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1663979128: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2067069095: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4022376103: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1423911732: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2924175390: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2775532180: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3778827333: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 673634403: [[\"ShapeOfProduct\", IFCPRODUCT, 6, true], [\"HasShapeAspects\", IFCSHAPEASPECT, 4, true]],\n 2802850158: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 2598011224: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n 1680319473: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true]],\n 3357820518: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n 1482703590: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true]],\n 2090586900: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n 3615266464: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 3413951693: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 1580146022: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 2778083089: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 2042790032: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 4165799628: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 1509187699: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4124623270: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3692461612: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n 723233188: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2233826070: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2513912981: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2247615214: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1260650574: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1096409881: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 230924584: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3071757647: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 901063453: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4282788508: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3124975700: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2715220739: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 1628702193: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true]],\n 3736923433: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n 2347495698: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3698973494: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 427810014: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 1417489154: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2759199220: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1299126871: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2543172580: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 3406155212: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"HasTextureMaps\", IFCTEXTUREMAP, 2, true]],\n 669184980: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3207858831: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 4261334040: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3125803723: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2740243338: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2736907675: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4182860854: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2581212453: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2713105998: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2898889636: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 1123145078: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 574549367: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1675464909: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2059837836: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 59481748: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3749851601: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3486308946: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3331915920: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1416205885: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1383045692: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 2205249479: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2542286263: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n 2485617015: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"UsingCurves\", IFCCOMPOSITECURVE, 0, true]],\n 2574617495: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 3419103109: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Declares\", IFCRELDECLARES, 4, true]],\n 1815067380: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 2506170314: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2147822146: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2601014836: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2827736869: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2629017746: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 32440307: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 526551008: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1472233963: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1883228015: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n 339256511: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2777663545: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2835456948: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 4024345920: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n 477187591: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2804161546: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2047409740: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 374418227: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 315944413: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2652556860: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4238390223: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1268542332: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 4095422895: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 987898635: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1484403080: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 178912537: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"ToFaceSet\", IFCPOLYGONALFACESET, 2, true]],\n 2294589976: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"ToFaceSet\", IFCPOLYGONALFACESET, 2, true]],\n 572779678: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 428585644: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 1281925730: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1425443689: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3888040117: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true]],\n 3388369263: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3505215534: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1682466193: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 603570806: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 220341763: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3967405729: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n 569719735: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n 2945172077: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsPredecessorTo\", IFCRELSEQUENCE, 4, true], [\"IsSuccessorFrom\", IFCRELSEQUENCE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n 4208778838: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 103090709: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Declares\", IFCRELDECLARES, 4, true]],\n 653396225: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Declares\", IFCRELDECLARES, 4, true]],\n 871118103: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n 4166981789: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n 2752243245: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n 941946838: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n 1451395588: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n 492091185: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Defines\", IFCRELDEFINESBYTEMPLATE, 5, true]],\n 3650150729: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n 110355661: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n 3521284610: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PartOfComplexTemplate\", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], [\"PartOfPsetTemplate\", IFCPROPERTYSETTEMPLATE, 6, true]],\n 3219374653: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2770003689: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 2798486643: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3454111270: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3765753017: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n 3523091289: [[\"InnerBoundaries\", IFCRELSPACEBOUNDARY1STLEVEL, 9, true]],\n 1521410863: [[\"InnerBoundaries\", IFCRELSPACEBOUNDARY1STLEVEL, 9, true], [\"Corresponds\", IFCRELSPACEBOUNDARY2NDLEVEL, 10, true]],\n 816062949: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"UsingCurves\", IFCCOMPOSITECURVE, 0, true]],\n 2914609552: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 1856042241: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3243963512: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4158566097: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3626867408: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3663146110: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PartOfComplexTemplate\", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], [\"PartOfPsetTemplate\", IFCPROPERTYSETTEMPLATE, 6, true]],\n 1412071761: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]],\n 710998568: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2706606064: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]],\n 3893378262: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 463610769: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]],\n 2481509218: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 451544542: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4015995234: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3544373492: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n 3136571912: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true]],\n 530289379: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n 3689010777: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n 3979015343: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n 2218152070: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n 603775116: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n 4095615324: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 699246055: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2028607225: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2809605785: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4124788165: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1580310250: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3473067441: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsPredecessorTo\", IFCRELSEQUENCE, 4, true], [\"IsSuccessorFrom\", IFCRELSEQUENCE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n 3206491090: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n 2387106220: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"HasColours\", IFCINDEXEDCOLOURMAP, 0, true], [\"HasTextures\", IFCINDEXEDTEXTUREMAP, 1, true]],\n 1935646853: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2097647324: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2916149573: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"HasColours\", IFCINDEXEDCOLOURMAP, 0, true], [\"HasTextures\", IFCINDEXEDTEXTUREMAP, 1, true]],\n 336235671: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n 512836454: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n 2296667514: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsActingUpon\", IFCRELASSIGNSTOACTOR, 6, true]],\n 1635779807: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2603310189: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1674181508: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 2887950389: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 167062518: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1334484129: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3649129432: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1260505505: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4031249490: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]],\n 1950629157: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3124254112: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]],\n 2197970202: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2937912522: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 3893394355: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 300633059: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3875453745: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PartOfComplexTemplate\", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], [\"PartOfPsetTemplate\", IFCPROPERTYSETTEMPLATE, 6, true]],\n 3732776249: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 15328376: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2510884976: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2185764099: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 4105962743: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 1525564444: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 2559216714: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 3293443760: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 3895139033: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 1419761937: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 1916426348: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3295246426: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 1457835157: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1213902940: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3256556792: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3849074793: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2963535650: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n 1714330368: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n 2323601079: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1758889154: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 4123344466: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 2397081782: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1623761950: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 2590856083: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1704287377: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2107101300: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 132023988: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3174744832: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3390157468: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 4148101412: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsPredecessorTo\", IFCRELSEQUENCE, 4, true], [\"IsSuccessorFrom\", IFCRELSEQUENCE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n 2853485674: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]],\n 807026263: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3737207727: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 647756555: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 2489546625: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2827207264: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 2143335405: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"ProjectsElements\", IFCRELPROJECTSELEMENT, 5, false]],\n 1287392070: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"VoidsElements\", IFCRELVOIDSELEMENT, 5, false]],\n 3907093117: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3198132628: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3815607619: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1482959167: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1834744321: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1339347760: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2297155007: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3009222698: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1893162501: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 263784265: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 1509553395: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 3493046030: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 3009204131: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 2706460486: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true]],\n 1251058090: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1806887404: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2571569899: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3946677679: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3113134337: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2391368822: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true]],\n 4288270099: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3827777499: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 1051575348: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1161773419: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 377706215: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 2108223431: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1114901282: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3181161470: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 977012517: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 4143007308: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsActingUpon\", IFCRELASSIGNSTOACTOR, 6, true]],\n 3588315303: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"VoidsElements\", IFCRELVOIDSELEMENT, 5, false], [\"HasFillings\", IFCRELFILLSELEMENT, 4, true]],\n 3079942009: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"VoidsElements\", IFCRELVOIDSELEMENT, 5, false], [\"HasFillings\", IFCRELFILLSELEMENT, 4, true]],\n 2837617999: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2382730787: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 3566463478: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n 3327091369: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 1158309216: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 804291784: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 4231323485: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 4017108033: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2839578677: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"HasColours\", IFCINDEXEDCOLOURMAP, 0, true], [\"HasTextures\", IFCINDEXEDTEXTUREMAP, 1, true]],\n 3724593414: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3740093272: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainedIn\", IFCRELCONNECTSPORTTOELEMENT, 4, true], [\"ConnectedFrom\", IFCRELCONNECTSPORTS, 5, true], [\"ConnectedTo\", IFCRELCONNECTSPORTS, 4, true]],\n 2744685151: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsPredecessorTo\", IFCRELSEQUENCE, 4, true], [\"IsSuccessorFrom\", IFCRELSEQUENCE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n 2904328755: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 3651124850: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"ProjectsElements\", IFCRELPROJECTSELEMENT, 5, false]],\n 1842657554: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2250791053: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2893384427: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2324767716: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1469900589: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 683857671: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3027567501: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 964333572: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2320036040: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 2310774935: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2781568857: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1768891740: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2157484638: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4074543187: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 4097777520: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]],\n 2533589738: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1072016465: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3856911033: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"HasCoverings\", IFCRELCOVERSSPACES, 4, true], [\"BoundedBy\", IFCRELSPACEBOUNDARY, 4, true]],\n 1305183839: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3812236995: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3112655638: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1039846685: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 338393293: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 682877961: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n 1179482911: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectsStructuralMembers\", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],\n 1004757350: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n 4243806635: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectsStructuralMembers\", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],\n 214636428: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n 2445595289: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n 2757150158: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n 1807405624: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n 1252848954: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"SourceOfResultGroup\", IFCSTRUCTURALRESULTGROUP, 6, true], [\"LoadGroupFor\", IFCSTRUCTURALANALYSISMODEL, 7, true]],\n 2082059205: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n 734778138: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectsStructuralMembers\", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],\n 1235345126: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n 2986769608: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ResultGroupFor\", IFCSTRUCTURALANALYSISMODEL, 8, true]],\n 3657597509: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n 1975003073: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectsStructuralMembers\", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],\n 148013059: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 3101698114: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 2315554128: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2254336722: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true]],\n 413509423: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 5716631: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3824725483: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 2347447852: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 3081323446: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2415094496: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1692211062: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1620046519: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 3593883385: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1600972822: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1911125066: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 728799441: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2391383451: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 3313531582: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2769231204: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 926996030: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"VoidsElements\", IFCRELVOIDSELEMENT, 5, false]],\n 1898987631: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1133259667: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 4009809668: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 4088093105: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 1028945134: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 4218914973: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 3342526732: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 1033361043: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true]],\n 3821786052: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 1411407467: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3352864051: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1871374353: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3460190687: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true]],\n 1532957894: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1967976161: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2461110595: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 819618141: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 231477066: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1136057603: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3299480353: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 2979338954: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 39481116: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1095909175: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 1909888760: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1177604601: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true]],\n 2188180465: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 395041908: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3293546465: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2674252688: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1285652485: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2951183804: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3296154744: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 2611217952: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1677625105: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 2301859152: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 843113511: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 905975707: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 400855858: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3850581409: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2816379211: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3898045240: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 1060000209: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 488727124: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 335055490: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2954562838: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1973544240: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"CoversSpaces\", IFCRELCOVERSSPACES, 5, true], [\"CoversElements\", IFCRELCOVERSBLDGELEMENTS, 5, true]],\n 3495092785: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 3961806047: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1335981549: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 2635815018: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1599208980: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2063403501: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1945004755: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true]],\n 3040386961: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3041715199: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainedIn\", IFCRELCONNECTSPORTTOELEMENT, 4, true], [\"ConnectedFrom\", IFCRELCONNECTSPORTS, 5, true], [\"ConnectedTo\", IFCRELCONNECTSPORTS, 4, true]],\n 3205830791: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true]],\n 395920057: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 3242481149: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 869906466: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3760055223: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2030761528: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 663422040: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2417008758: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3277789161: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1534661035: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1217240411: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 712377611: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1658829314: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 2814081492: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3747195512: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 484807127: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1209101575: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"BoundedBy\", IFCRELSPACEBOUNDARY, 4, true]],\n 346874300: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1810631287: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 4222183408: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2058353004: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 4278956645: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 4037862832: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2188021234: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3132237377: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 987401354: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 707683696: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 2223149337: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3508470533: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 900683007: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 3319311131: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 2068733104: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 4175244083: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 2176052936: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 76236018: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 629592764: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1437502449: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1073191201: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 1911478936: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 2474470126: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 144952367: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3694346114: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1687234759: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 310824031: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3612865200: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3171933400: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 1156407060: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 738039164: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 655969474: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 90941305: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 2262370178: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 3024970846: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 3283111854: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 1232101972: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 979691226: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 2572171363: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2016517767: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 3053780830: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1783015770: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1329646415: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 1529196076: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 3127900445: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 3027962421: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 3420628829: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1999602285: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1404847402: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 331165859: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 4252922144: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 2515109513: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true]],\n 385403989: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"SourceOfResultGroup\", IFCSTRUCTURALRESULTGROUP, 6, true], [\"LoadGroupFor\", IFCSTRUCTURALANALYSISMODEL, 7, true]],\n 1621171031: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n 1162798199: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 812556717: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3825984169: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3026737570: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3179687236: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 4292641817: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 4207607924: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 2391406946: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 4156078855: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 3512223829: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 4237592921: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3304561284: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 486154966: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 2874132201: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1634111441: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 177149247: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 2056796094: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3001207471: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 277319702: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 753842376: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 2906023776: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true]],\n 32344328: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 2938176219: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 635142910: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3758799889: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1051757585: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 4217484030: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3902619387: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 639361253: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3221913625: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3571504051: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 2272882330: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 578613899: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 4136498852: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3640358203: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 4074379575: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1052013943: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 562808652: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true]],\n 1062813311: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n 342316401: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3518393246: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1360408905: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1904799276: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 862014818: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3310460725: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 264262732: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 402227799: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1003880860: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3415622556: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 819412036: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1426591983: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 182646315: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n 2295281155: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n 4086658281: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n 630975310: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n 4288193352: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n 3087945054: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n 25142252: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]]\n};\nConstructors[2] = {\n 3630933823: (a) => new IFC4.IfcActorRole(a[0], a[1], a[2]),\n 618182010: (a) => new IFC4.IfcAddress(a[0], a[1], a[2]),\n 639542469: (a) => new IFC4.IfcApplication(a[0], a[1], a[2], a[3]),\n 411424972: (a) => new IFC4.IfcAppliedValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 130549933: (a) => new IFC4.IfcApproval(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 4037036970: (a) => new IFC4.IfcBoundaryCondition(a[0]),\n 1560379544: (a) => new IFC4.IfcBoundaryEdgeCondition(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3367102660: (a) => new IFC4.IfcBoundaryFaceCondition(a[0], a[1], a[2], a[3]),\n 1387855156: (a) => new IFC4.IfcBoundaryNodeCondition(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 2069777674: (a) => new IFC4.IfcBoundaryNodeConditionWarping(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2859738748: (_) => new IFC4.IfcConnectionGeometry(),\n 2614616156: (a) => new IFC4.IfcConnectionPointGeometry(a[0], a[1]),\n 2732653382: (a) => new IFC4.IfcConnectionSurfaceGeometry(a[0], a[1]),\n 775493141: (a) => new IFC4.IfcConnectionVolumeGeometry(a[0], a[1]),\n 1959218052: (a) => new IFC4.IfcConstraint(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1785450214: (a) => new IFC4.IfcCoordinateOperation(a[0], a[1]),\n 1466758467: (a) => new IFC4.IfcCoordinateReferenceSystem(a[0], a[1], a[2], a[3]),\n 602808272: (a) => new IFC4.IfcCostValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1765591967: (a) => new IFC4.IfcDerivedUnit(a[0], a[1], a[2]),\n 1045800335: (a) => new IFC4.IfcDerivedUnitElement(a[0], a[1]),\n 2949456006: (a) => new IFC4.IfcDimensionalExponents(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 4294318154: (_) => new IFC4.IfcExternalInformation(),\n 3200245327: (a) => new IFC4.IfcExternalReference(a[0], a[1], a[2]),\n 2242383968: (a) => new IFC4.IfcExternallyDefinedHatchStyle(a[0], a[1], a[2]),\n 1040185647: (a) => new IFC4.IfcExternallyDefinedSurfaceStyle(a[0], a[1], a[2]),\n 3548104201: (a) => new IFC4.IfcExternallyDefinedTextFont(a[0], a[1], a[2]),\n 852622518: (a) => new IFC4.IfcGridAxis(a[0], a[1], a[2]),\n 3020489413: (a) => new IFC4.IfcIrregularTimeSeriesValue(a[0], a[1]),\n 2655187982: (a) => new IFC4.IfcLibraryInformation(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3452421091: (a) => new IFC4.IfcLibraryReference(a[0], a[1], a[2], a[3], a[4], a[5]),\n 4162380809: (a) => new IFC4.IfcLightDistributionData(a[0], a[1], a[2]),\n 1566485204: (a) => new IFC4.IfcLightIntensityDistribution(a[0], a[1]),\n 3057273783: (a) => new IFC4.IfcMapConversion(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1847130766: (a) => new IFC4.IfcMaterialClassificationRelationship(a[0], a[1]),\n 760658860: (_) => new IFC4.IfcMaterialDefinition(),\n 248100487: (a) => new IFC4.IfcMaterialLayer(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3303938423: (a) => new IFC4.IfcMaterialLayerSet(a[0], a[1], a[2]),\n 1847252529: (a) => new IFC4.IfcMaterialLayerWithOffsets(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2199411900: (a) => new IFC4.IfcMaterialList(a[0]),\n 2235152071: (a) => new IFC4.IfcMaterialProfile(a[0], a[1], a[2], a[3], a[4], a[5]),\n 164193824: (a) => new IFC4.IfcMaterialProfileSet(a[0], a[1], a[2], a[3]),\n 552965576: (a) => new IFC4.IfcMaterialProfileWithOffsets(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1507914824: (_) => new IFC4.IfcMaterialUsageDefinition(),\n 2597039031: (a) => new IFC4.IfcMeasureWithUnit(a[0], a[1]),\n 3368373690: (a) => new IFC4.IfcMetric(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 2706619895: (a) => new IFC4.IfcMonetaryUnit(a[0]),\n 1918398963: (a) => new IFC4.IfcNamedUnit(a[0], a[1]),\n 3701648758: (_) => new IFC4.IfcObjectPlacement(),\n 2251480897: (a) => new IFC4.IfcObjective(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 4251960020: (a) => new IFC4.IfcOrganization(a[0], a[1], a[2], a[3], a[4]),\n 1207048766: (a) => new IFC4.IfcOwnerHistory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2077209135: (a) => new IFC4.IfcPerson(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 101040310: (a) => new IFC4.IfcPersonAndOrganization(a[0], a[1], a[2]),\n 2483315170: (a) => new IFC4.IfcPhysicalQuantity(a[0], a[1]),\n 2226359599: (a) => new IFC4.IfcPhysicalSimpleQuantity(a[0], a[1], a[2]),\n 3355820592: (a) => new IFC4.IfcPostalAddress(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 677532197: (_) => new IFC4.IfcPresentationItem(),\n 2022622350: (a) => new IFC4.IfcPresentationLayerAssignment(a[0], a[1], a[2], a[3]),\n 1304840413: (a) => new IFC4.IfcPresentationLayerWithStyle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3119450353: (a) => new IFC4.IfcPresentationStyle(a[0]),\n 2417041796: (a) => new IFC4.IfcPresentationStyleAssignment(a[0]),\n 2095639259: (a) => new IFC4.IfcProductRepresentation(a[0], a[1], a[2]),\n 3958567839: (a) => new IFC4.IfcProfileDef(a[0], a[1]),\n 3843373140: (a) => new IFC4.IfcProjectedCRS(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 986844984: (_) => new IFC4.IfcPropertyAbstraction(),\n 3710013099: (a) => new IFC4.IfcPropertyEnumeration(a[0], a[1], a[2]),\n 2044713172: (a) => new IFC4.IfcQuantityArea(a[0], a[1], a[2], a[3], a[4]),\n 2093928680: (a) => new IFC4.IfcQuantityCount(a[0], a[1], a[2], a[3], a[4]),\n 931644368: (a) => new IFC4.IfcQuantityLength(a[0], a[1], a[2], a[3], a[4]),\n 3252649465: (a) => new IFC4.IfcQuantityTime(a[0], a[1], a[2], a[3], a[4]),\n 2405470396: (a) => new IFC4.IfcQuantityVolume(a[0], a[1], a[2], a[3], a[4]),\n 825690147: (a) => new IFC4.IfcQuantityWeight(a[0], a[1], a[2], a[3], a[4]),\n 3915482550: (a) => new IFC4.IfcRecurrencePattern(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2433181523: (a) => new IFC4.IfcReference(a[0], a[1], a[2], a[3], a[4]),\n 1076942058: (a) => new IFC4.IfcRepresentation(a[0], a[1], a[2], a[3]),\n 3377609919: (a) => new IFC4.IfcRepresentationContext(a[0], a[1]),\n 3008791417: (_) => new IFC4.IfcRepresentationItem(),\n 1660063152: (a) => new IFC4.IfcRepresentationMap(a[0], a[1]),\n 2439245199: (a) => new IFC4.IfcResourceLevelRelationship(a[0], a[1]),\n 2341007311: (a) => new IFC4.IfcRoot(a[0], a[1], a[2], a[3]),\n 448429030: (a) => new IFC4.IfcSIUnit(a[0], a[1], a[2]),\n 1054537805: (a) => new IFC4.IfcSchedulingTime(a[0], a[1], a[2]),\n 867548509: (a) => new IFC4.IfcShapeAspect(a[0], a[1], a[2], a[3], a[4]),\n 3982875396: (a) => new IFC4.IfcShapeModel(a[0], a[1], a[2], a[3]),\n 4240577450: (a) => new IFC4.IfcShapeRepresentation(a[0], a[1], a[2], a[3]),\n 2273995522: (a) => new IFC4.IfcStructuralConnectionCondition(a[0]),\n 2162789131: (a) => new IFC4.IfcStructuralLoad(a[0]),\n 3478079324: (a) => new IFC4.IfcStructuralLoadConfiguration(a[0], a[1], a[2]),\n 609421318: (a) => new IFC4.IfcStructuralLoadOrResult(a[0]),\n 2525727697: (a) => new IFC4.IfcStructuralLoadStatic(a[0]),\n 3408363356: (a) => new IFC4.IfcStructuralLoadTemperature(a[0], a[1], a[2], a[3]),\n 2830218821: (a) => new IFC4.IfcStyleModel(a[0], a[1], a[2], a[3]),\n 3958052878: (a) => new IFC4.IfcStyledItem(a[0], a[1], a[2]),\n 3049322572: (a) => new IFC4.IfcStyledRepresentation(a[0], a[1], a[2], a[3]),\n 2934153892: (a) => new IFC4.IfcSurfaceReinforcementArea(a[0], a[1], a[2], a[3]),\n 1300840506: (a) => new IFC4.IfcSurfaceStyle(a[0], a[1], a[2]),\n 3303107099: (a) => new IFC4.IfcSurfaceStyleLighting(a[0], a[1], a[2], a[3]),\n 1607154358: (a) => new IFC4.IfcSurfaceStyleRefraction(a[0], a[1]),\n 846575682: (a) => new IFC4.IfcSurfaceStyleShading(a[0], a[1]),\n 1351298697: (a) => new IFC4.IfcSurfaceStyleWithTextures(a[0]),\n 626085974: (a) => new IFC4.IfcSurfaceTexture(a[0], a[1], a[2], a[3], a[4]),\n 985171141: (a) => new IFC4.IfcTable(a[0], a[1], a[2]),\n 2043862942: (a) => new IFC4.IfcTableColumn(a[0], a[1], a[2], a[3], a[4]),\n 531007025: (a) => new IFC4.IfcTableRow(a[0], a[1]),\n 1549132990: (a) => new IFC4.IfcTaskTime(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19]),\n 2771591690: (a) => new IFC4.IfcTaskTimeRecurring(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20]),\n 912023232: (a) => new IFC4.IfcTelecomAddress(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1447204868: (a) => new IFC4.IfcTextStyle(a[0], a[1], a[2], a[3], a[4]),\n 2636378356: (a) => new IFC4.IfcTextStyleForDefinedFont(a[0], a[1]),\n 1640371178: (a) => new IFC4.IfcTextStyleTextModel(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 280115917: (a) => new IFC4.IfcTextureCoordinate(a[0]),\n 1742049831: (a) => new IFC4.IfcTextureCoordinateGenerator(a[0], a[1], a[2]),\n 2552916305: (a) => new IFC4.IfcTextureMap(a[0], a[1], a[2]),\n 1210645708: (a) => new IFC4.IfcTextureVertex(a[0]),\n 3611470254: (a) => new IFC4.IfcTextureVertexList(a[0]),\n 1199560280: (a) => new IFC4.IfcTimePeriod(a[0], a[1]),\n 3101149627: (a) => new IFC4.IfcTimeSeries(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 581633288: (a) => new IFC4.IfcTimeSeriesValue(a[0]),\n 1377556343: (_) => new IFC4.IfcTopologicalRepresentationItem(),\n 1735638870: (a) => new IFC4.IfcTopologyRepresentation(a[0], a[1], a[2], a[3]),\n 180925521: (a) => new IFC4.IfcUnitAssignment(a[0]),\n 2799835756: (_) => new IFC4.IfcVertex(),\n 1907098498: (a) => new IFC4.IfcVertexPoint(a[0]),\n 891718957: (a) => new IFC4.IfcVirtualGridIntersection(a[0], a[1]),\n 1236880293: (a) => new IFC4.IfcWorkTime(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3869604511: (a) => new IFC4.IfcApprovalRelationship(a[0], a[1], a[2], a[3]),\n 3798115385: (a) => new IFC4.IfcArbitraryClosedProfileDef(a[0], a[1], a[2]),\n 1310608509: (a) => new IFC4.IfcArbitraryOpenProfileDef(a[0], a[1], a[2]),\n 2705031697: (a) => new IFC4.IfcArbitraryProfileDefWithVoids(a[0], a[1], a[2], a[3]),\n 616511568: (a) => new IFC4.IfcBlobTexture(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3150382593: (a) => new IFC4.IfcCenterLineProfileDef(a[0], a[1], a[2], a[3]),\n 747523909: (a) => new IFC4.IfcClassification(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 647927063: (a) => new IFC4.IfcClassificationReference(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3285139300: (a) => new IFC4.IfcColourRgbList(a[0]),\n 3264961684: (a) => new IFC4.IfcColourSpecification(a[0]),\n 1485152156: (a) => new IFC4.IfcCompositeProfileDef(a[0], a[1], a[2], a[3]),\n 370225590: (a) => new IFC4.IfcConnectedFaceSet(a[0]),\n 1981873012: (a) => new IFC4.IfcConnectionCurveGeometry(a[0], a[1]),\n 45288368: (a) => new IFC4.IfcConnectionPointEccentricity(a[0], a[1], a[2], a[3], a[4]),\n 3050246964: (a) => new IFC4.IfcContextDependentUnit(a[0], a[1], a[2]),\n 2889183280: (a) => new IFC4.IfcConversionBasedUnit(a[0], a[1], a[2], a[3]),\n 2713554722: (a) => new IFC4.IfcConversionBasedUnitWithOffset(a[0], a[1], a[2], a[3], a[4]),\n 539742890: (a) => new IFC4.IfcCurrencyRelationship(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3800577675: (a) => new IFC4.IfcCurveStyle(a[0], a[1], a[2], a[3], a[4]),\n 1105321065: (a) => new IFC4.IfcCurveStyleFont(a[0], a[1]),\n 2367409068: (a) => new IFC4.IfcCurveStyleFontAndScaling(a[0], a[1], a[2]),\n 3510044353: (a) => new IFC4.IfcCurveStyleFontPattern(a[0], a[1]),\n 3632507154: (a) => new IFC4.IfcDerivedProfileDef(a[0], a[1], a[2], a[3], a[4]),\n 1154170062: (a) => new IFC4.IfcDocumentInformation(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]),\n 770865208: (a) => new IFC4.IfcDocumentInformationRelationship(a[0], a[1], a[2], a[3], a[4]),\n 3732053477: (a) => new IFC4.IfcDocumentReference(a[0], a[1], a[2], a[3], a[4]),\n 3900360178: (a) => new IFC4.IfcEdge(a[0], a[1]),\n 476780140: (a) => new IFC4.IfcEdgeCurve(a[0], a[1], a[2], a[3]),\n 211053100: (a) => new IFC4.IfcEventTime(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 297599258: (a) => new IFC4.IfcExtendedProperties(a[0], a[1], a[2]),\n 1437805879: (a) => new IFC4.IfcExternalReferenceRelationship(a[0], a[1], a[2], a[3]),\n 2556980723: (a) => new IFC4.IfcFace(a[0]),\n 1809719519: (a) => new IFC4.IfcFaceBound(a[0], a[1]),\n 803316827: (a) => new IFC4.IfcFaceOuterBound(a[0], a[1]),\n 3008276851: (a) => new IFC4.IfcFaceSurface(a[0], a[1], a[2]),\n 4219587988: (a) => new IFC4.IfcFailureConnectionCondition(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 738692330: (a) => new IFC4.IfcFillAreaStyle(a[0], a[1], a[2]),\n 3448662350: (a) => new IFC4.IfcGeometricRepresentationContext(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2453401579: (_) => new IFC4.IfcGeometricRepresentationItem(),\n 4142052618: (a) => new IFC4.IfcGeometricRepresentationSubContext(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3590301190: (a) => new IFC4.IfcGeometricSet(a[0]),\n 178086475: (a) => new IFC4.IfcGridPlacement(a[0], a[1]),\n 812098782: (a) => new IFC4.IfcHalfSpaceSolid(a[0], a[1]),\n 3905492369: (a) => new IFC4.IfcImageTexture(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3570813810: (a) => new IFC4.IfcIndexedColourMap(a[0], a[1], a[2], a[3]),\n 1437953363: (a) => new IFC4.IfcIndexedTextureMap(a[0], a[1], a[2]),\n 2133299955: (a) => new IFC4.IfcIndexedTriangleTextureMap(a[0], a[1], a[2], a[3]),\n 3741457305: (a) => new IFC4.IfcIrregularTimeSeries(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1585845231: (a) => new IFC4.IfcLagTime(a[0], a[1], a[2], a[3], a[4]),\n 1402838566: (a) => new IFC4.IfcLightSource(a[0], a[1], a[2], a[3]),\n 125510826: (a) => new IFC4.IfcLightSourceAmbient(a[0], a[1], a[2], a[3]),\n 2604431987: (a) => new IFC4.IfcLightSourceDirectional(a[0], a[1], a[2], a[3], a[4]),\n 4266656042: (a) => new IFC4.IfcLightSourceGoniometric(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1520743889: (a) => new IFC4.IfcLightSourcePositional(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3422422726: (a) => new IFC4.IfcLightSourceSpot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n 2624227202: (a) => new IFC4.IfcLocalPlacement(a[0], a[1]),\n 1008929658: (_) => new IFC4.IfcLoop(),\n 2347385850: (a) => new IFC4.IfcMappedItem(a[0], a[1]),\n 1838606355: (a) => new IFC4.IfcMaterial(a[0], a[1], a[2]),\n 3708119e3: (a) => new IFC4.IfcMaterialConstituent(a[0], a[1], a[2], a[3], a[4]),\n 2852063980: (a) => new IFC4.IfcMaterialConstituentSet(a[0], a[1], a[2]),\n 2022407955: (a) => new IFC4.IfcMaterialDefinitionRepresentation(a[0], a[1], a[2], a[3]),\n 1303795690: (a) => new IFC4.IfcMaterialLayerSetUsage(a[0], a[1], a[2], a[3], a[4]),\n 3079605661: (a) => new IFC4.IfcMaterialProfileSetUsage(a[0], a[1], a[2]),\n 3404854881: (a) => new IFC4.IfcMaterialProfileSetUsageTapering(a[0], a[1], a[2], a[3], a[4]),\n 3265635763: (a) => new IFC4.IfcMaterialProperties(a[0], a[1], a[2], a[3]),\n 853536259: (a) => new IFC4.IfcMaterialRelationship(a[0], a[1], a[2], a[3], a[4]),\n 2998442950: (a) => new IFC4.IfcMirroredProfileDef(a[0], a[1], a[2], a[3]),\n 219451334: (a) => new IFC4.IfcObjectDefinition(a[0], a[1], a[2], a[3]),\n 2665983363: (a) => new IFC4.IfcOpenShell(a[0]),\n 1411181986: (a) => new IFC4.IfcOrganizationRelationship(a[0], a[1], a[2], a[3]),\n 1029017970: (a) => new IFC4.IfcOrientedEdge(a[0], a[1]),\n 2529465313: (a) => new IFC4.IfcParameterizedProfileDef(a[0], a[1], a[2]),\n 2519244187: (a) => new IFC4.IfcPath(a[0]),\n 3021840470: (a) => new IFC4.IfcPhysicalComplexQuantity(a[0], a[1], a[2], a[3], a[4], a[5]),\n 597895409: (a) => new IFC4.IfcPixelTexture(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2004835150: (a) => new IFC4.IfcPlacement(a[0]),\n 1663979128: (a) => new IFC4.IfcPlanarExtent(a[0], a[1]),\n 2067069095: (_) => new IFC4.IfcPoint(),\n 4022376103: (a) => new IFC4.IfcPointOnCurve(a[0], a[1]),\n 1423911732: (a) => new IFC4.IfcPointOnSurface(a[0], a[1], a[2]),\n 2924175390: (a) => new IFC4.IfcPolyLoop(a[0]),\n 2775532180: (a) => new IFC4.IfcPolygonalBoundedHalfSpace(a[0], a[1], a[2], a[3]),\n 3727388367: (a) => new IFC4.IfcPreDefinedItem(a[0]),\n 3778827333: (_) => new IFC4.IfcPreDefinedProperties(),\n 1775413392: (a) => new IFC4.IfcPreDefinedTextFont(a[0]),\n 673634403: (a) => new IFC4.IfcProductDefinitionShape(a[0], a[1], a[2]),\n 2802850158: (a) => new IFC4.IfcProfileProperties(a[0], a[1], a[2], a[3]),\n 2598011224: (a) => new IFC4.IfcProperty(a[0], a[1]),\n 1680319473: (a) => new IFC4.IfcPropertyDefinition(a[0], a[1], a[2], a[3]),\n 148025276: (a) => new IFC4.IfcPropertyDependencyRelationship(a[0], a[1], a[2], a[3], a[4]),\n 3357820518: (a) => new IFC4.IfcPropertySetDefinition(a[0], a[1], a[2], a[3]),\n 1482703590: (a) => new IFC4.IfcPropertyTemplateDefinition(a[0], a[1], a[2], a[3]),\n 2090586900: (a) => new IFC4.IfcQuantitySet(a[0], a[1], a[2], a[3]),\n 3615266464: (a) => new IFC4.IfcRectangleProfileDef(a[0], a[1], a[2], a[3], a[4]),\n 3413951693: (a) => new IFC4.IfcRegularTimeSeries(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1580146022: (a) => new IFC4.IfcReinforcementBarProperties(a[0], a[1], a[2], a[3], a[4], a[5]),\n 478536968: (a) => new IFC4.IfcRelationship(a[0], a[1], a[2], a[3]),\n 2943643501: (a) => new IFC4.IfcResourceApprovalRelationship(a[0], a[1], a[2], a[3]),\n 1608871552: (a) => new IFC4.IfcResourceConstraintRelationship(a[0], a[1], a[2], a[3]),\n 1042787934: (a) => new IFC4.IfcResourceTime(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17]),\n 2778083089: (a) => new IFC4.IfcRoundedRectangleProfileDef(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2042790032: (a) => new IFC4.IfcSectionProperties(a[0], a[1], a[2]),\n 4165799628: (a) => new IFC4.IfcSectionReinforcementProperties(a[0], a[1], a[2], a[3], a[4], a[5]),\n 1509187699: (a) => new IFC4.IfcSectionedSpine(a[0], a[1], a[2]),\n 4124623270: (a) => new IFC4.IfcShellBasedSurfaceModel(a[0]),\n 3692461612: (a) => new IFC4.IfcSimpleProperty(a[0], a[1]),\n 2609359061: (a) => new IFC4.IfcSlippageConnectionCondition(a[0], a[1], a[2], a[3]),\n 723233188: (_) => new IFC4.IfcSolidModel(),\n 1595516126: (a) => new IFC4.IfcStructuralLoadLinearForce(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 2668620305: (a) => new IFC4.IfcStructuralLoadPlanarForce(a[0], a[1], a[2], a[3]),\n 2473145415: (a) => new IFC4.IfcStructuralLoadSingleDisplacement(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1973038258: (a) => new IFC4.IfcStructuralLoadSingleDisplacementDistortion(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1597423693: (a) => new IFC4.IfcStructuralLoadSingleForce(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1190533807: (a) => new IFC4.IfcStructuralLoadSingleForceWarping(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2233826070: (a) => new IFC4.IfcSubedge(a[0], a[1], a[2]),\n 2513912981: (_) => new IFC4.IfcSurface(),\n 1878645084: (a) => new IFC4.IfcSurfaceStyleRendering(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2247615214: (a) => new IFC4.IfcSweptAreaSolid(a[0], a[1]),\n 1260650574: (a) => new IFC4.IfcSweptDiskSolid(a[0], a[1], a[2], a[3], a[4]),\n 1096409881: (a) => new IFC4.IfcSweptDiskSolidPolygonal(a[0], a[1], a[2], a[3], a[4], a[5]),\n 230924584: (a) => new IFC4.IfcSweptSurface(a[0], a[1]),\n 3071757647: (a) => new IFC4.IfcTShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 901063453: (_) => new IFC4.IfcTessellatedItem(),\n 4282788508: (a) => new IFC4.IfcTextLiteral(a[0], a[1], a[2]),\n 3124975700: (a) => new IFC4.IfcTextLiteralWithExtent(a[0], a[1], a[2], a[3], a[4]),\n 1983826977: (a) => new IFC4.IfcTextStyleFontModel(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2715220739: (a) => new IFC4.IfcTrapeziumProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1628702193: (a) => new IFC4.IfcTypeObject(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3736923433: (a) => new IFC4.IfcTypeProcess(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2347495698: (a) => new IFC4.IfcTypeProduct(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3698973494: (a) => new IFC4.IfcTypeResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 427810014: (a) => new IFC4.IfcUShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1417489154: (a) => new IFC4.IfcVector(a[0], a[1]),\n 2759199220: (a) => new IFC4.IfcVertexLoop(a[0]),\n 1299126871: (a) => new IFC4.IfcWindowStyle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 2543172580: (a) => new IFC4.IfcZShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3406155212: (a) => new IFC4.IfcAdvancedFace(a[0], a[1], a[2]),\n 669184980: (a) => new IFC4.IfcAnnotationFillArea(a[0], a[1]),\n 3207858831: (a) => new IFC4.IfcAsymmetricIShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]),\n 4261334040: (a) => new IFC4.IfcAxis1Placement(a[0], a[1]),\n 3125803723: (a) => new IFC4.IfcAxis2Placement2D(a[0], a[1]),\n 2740243338: (a) => new IFC4.IfcAxis2Placement3D(a[0], a[1], a[2]),\n 2736907675: (a) => new IFC4.IfcBooleanResult(a[0], a[1], a[2]),\n 4182860854: (_) => new IFC4.IfcBoundedSurface(),\n 2581212453: (a) => new IFC4.IfcBoundingBox(a[0], a[1], a[2], a[3]),\n 2713105998: (a) => new IFC4.IfcBoxedHalfSpace(a[0], a[1], a[2]),\n 2898889636: (a) => new IFC4.IfcCShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1123145078: (a) => new IFC4.IfcCartesianPoint(a[0]),\n 574549367: (_) => new IFC4.IfcCartesianPointList(),\n 1675464909: (a) => new IFC4.IfcCartesianPointList2D(a[0]),\n 2059837836: (a) => new IFC4.IfcCartesianPointList3D(a[0]),\n 59481748: (a) => new IFC4.IfcCartesianTransformationOperator(a[0], a[1], a[2], a[3]),\n 3749851601: (a) => new IFC4.IfcCartesianTransformationOperator2D(a[0], a[1], a[2], a[3]),\n 3486308946: (a) => new IFC4.IfcCartesianTransformationOperator2DnonUniform(a[0], a[1], a[2], a[3], a[4]),\n 3331915920: (a) => new IFC4.IfcCartesianTransformationOperator3D(a[0], a[1], a[2], a[3], a[4]),\n 1416205885: (a) => new IFC4.IfcCartesianTransformationOperator3DnonUniform(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1383045692: (a) => new IFC4.IfcCircleProfileDef(a[0], a[1], a[2], a[3]),\n 2205249479: (a) => new IFC4.IfcClosedShell(a[0]),\n 776857604: (a) => new IFC4.IfcColourRgb(a[0], a[1], a[2], a[3]),\n 2542286263: (a) => new IFC4.IfcComplexProperty(a[0], a[1], a[2], a[3]),\n 2485617015: (a) => new IFC4.IfcCompositeCurveSegment(a[0], a[1], a[2]),\n 2574617495: (a) => new IFC4.IfcConstructionResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 3419103109: (a) => new IFC4.IfcContext(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1815067380: (a) => new IFC4.IfcCrewResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 2506170314: (a) => new IFC4.IfcCsgPrimitive3D(a[0]),\n 2147822146: (a) => new IFC4.IfcCsgSolid(a[0]),\n 2601014836: (_) => new IFC4.IfcCurve(),\n 2827736869: (a) => new IFC4.IfcCurveBoundedPlane(a[0], a[1], a[2]),\n 2629017746: (a) => new IFC4.IfcCurveBoundedSurface(a[0], a[1], a[2]),\n 32440307: (a) => new IFC4.IfcDirection(a[0]),\n 526551008: (a) => new IFC4.IfcDoorStyle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 1472233963: (a) => new IFC4.IfcEdgeLoop(a[0]),\n 1883228015: (a) => new IFC4.IfcElementQuantity(a[0], a[1], a[2], a[3], a[4], a[5]),\n 339256511: (a) => new IFC4.IfcElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2777663545: (a) => new IFC4.IfcElementarySurface(a[0]),\n 2835456948: (a) => new IFC4.IfcEllipseProfileDef(a[0], a[1], a[2], a[3], a[4]),\n 4024345920: (a) => new IFC4.IfcEventType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 477187591: (a) => new IFC4.IfcExtrudedAreaSolid(a[0], a[1], a[2], a[3]),\n 2804161546: (a) => new IFC4.IfcExtrudedAreaSolidTapered(a[0], a[1], a[2], a[3], a[4]),\n 2047409740: (a) => new IFC4.IfcFaceBasedSurfaceModel(a[0]),\n 374418227: (a) => new IFC4.IfcFillAreaStyleHatching(a[0], a[1], a[2], a[3], a[4]),\n 315944413: (a) => new IFC4.IfcFillAreaStyleTiles(a[0], a[1], a[2]),\n 2652556860: (a) => new IFC4.IfcFixedReferenceSweptAreaSolid(a[0], a[1], a[2], a[3], a[4], a[5]),\n 4238390223: (a) => new IFC4.IfcFurnishingElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1268542332: (a) => new IFC4.IfcFurnitureType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 4095422895: (a) => new IFC4.IfcGeographicElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 987898635: (a) => new IFC4.IfcGeometricCurveSet(a[0]),\n 1484403080: (a) => new IFC4.IfcIShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 178912537: (a) => new IFC4.IfcIndexedPolygonalFace(a[0]),\n 2294589976: (a) => new IFC4.IfcIndexedPolygonalFaceWithVoids(a[0], a[1]),\n 572779678: (a) => new IFC4.IfcLShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 428585644: (a) => new IFC4.IfcLaborResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 1281925730: (a) => new IFC4.IfcLine(a[0], a[1]),\n 1425443689: (a) => new IFC4.IfcManifoldSolidBrep(a[0]),\n 3888040117: (a) => new IFC4.IfcObject(a[0], a[1], a[2], a[3], a[4]),\n 3388369263: (a) => new IFC4.IfcOffsetCurve2D(a[0], a[1], a[2]),\n 3505215534: (a) => new IFC4.IfcOffsetCurve3D(a[0], a[1], a[2], a[3]),\n 1682466193: (a) => new IFC4.IfcPcurve(a[0], a[1]),\n 603570806: (a) => new IFC4.IfcPlanarBox(a[0], a[1], a[2]),\n 220341763: (a) => new IFC4.IfcPlane(a[0]),\n 759155922: (a) => new IFC4.IfcPreDefinedColour(a[0]),\n 2559016684: (a) => new IFC4.IfcPreDefinedCurveFont(a[0]),\n 3967405729: (a) => new IFC4.IfcPreDefinedPropertySet(a[0], a[1], a[2], a[3]),\n 569719735: (a) => new IFC4.IfcProcedureType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2945172077: (a) => new IFC4.IfcProcess(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 4208778838: (a) => new IFC4.IfcProduct(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 103090709: (a) => new IFC4.IfcProject(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 653396225: (a) => new IFC4.IfcProjectLibrary(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 871118103: (a) => new IFC4.IfcPropertyBoundedValue(a[0], a[1], a[2], a[3], a[4], a[5]),\n 4166981789: (a) => new IFC4.IfcPropertyEnumeratedValue(a[0], a[1], a[2], a[3]),\n 2752243245: (a) => new IFC4.IfcPropertyListValue(a[0], a[1], a[2], a[3]),\n 941946838: (a) => new IFC4.IfcPropertyReferenceValue(a[0], a[1], a[2], a[3]),\n 1451395588: (a) => new IFC4.IfcPropertySet(a[0], a[1], a[2], a[3], a[4]),\n 492091185: (a) => new IFC4.IfcPropertySetTemplate(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3650150729: (a) => new IFC4.IfcPropertySingleValue(a[0], a[1], a[2], a[3]),\n 110355661: (a) => new IFC4.IfcPropertyTableValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3521284610: (a) => new IFC4.IfcPropertyTemplate(a[0], a[1], a[2], a[3]),\n 3219374653: (a) => new IFC4.IfcProxy(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2770003689: (a) => new IFC4.IfcRectangleHollowProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2798486643: (a) => new IFC4.IfcRectangularPyramid(a[0], a[1], a[2], a[3]),\n 3454111270: (a) => new IFC4.IfcRectangularTrimmedSurface(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3765753017: (a) => new IFC4.IfcReinforcementDefinitionProperties(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3939117080: (a) => new IFC4.IfcRelAssigns(a[0], a[1], a[2], a[3], a[4], a[5]),\n 1683148259: (a) => new IFC4.IfcRelAssignsToActor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2495723537: (a) => new IFC4.IfcRelAssignsToControl(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1307041759: (a) => new IFC4.IfcRelAssignsToGroup(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1027710054: (a) => new IFC4.IfcRelAssignsToGroupByFactor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 4278684876: (a) => new IFC4.IfcRelAssignsToProcess(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2857406711: (a) => new IFC4.IfcRelAssignsToProduct(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 205026976: (a) => new IFC4.IfcRelAssignsToResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1865459582: (a) => new IFC4.IfcRelAssociates(a[0], a[1], a[2], a[3], a[4]),\n 4095574036: (a) => new IFC4.IfcRelAssociatesApproval(a[0], a[1], a[2], a[3], a[4], a[5]),\n 919958153: (a) => new IFC4.IfcRelAssociatesClassification(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2728634034: (a) => new IFC4.IfcRelAssociatesConstraint(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 982818633: (a) => new IFC4.IfcRelAssociatesDocument(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3840914261: (a) => new IFC4.IfcRelAssociatesLibrary(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2655215786: (a) => new IFC4.IfcRelAssociatesMaterial(a[0], a[1], a[2], a[3], a[4], a[5]),\n 826625072: (a) => new IFC4.IfcRelConnects(a[0], a[1], a[2], a[3]),\n 1204542856: (a) => new IFC4.IfcRelConnectsElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3945020480: (a) => new IFC4.IfcRelConnectsPathElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 4201705270: (a) => new IFC4.IfcRelConnectsPortToElement(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3190031847: (a) => new IFC4.IfcRelConnectsPorts(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 2127690289: (a) => new IFC4.IfcRelConnectsStructuralActivity(a[0], a[1], a[2], a[3], a[4], a[5]),\n 1638771189: (a) => new IFC4.IfcRelConnectsStructuralMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 504942748: (a) => new IFC4.IfcRelConnectsWithEccentricity(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 3678494232: (a) => new IFC4.IfcRelConnectsWithRealizingElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3242617779: (a) => new IFC4.IfcRelContainedInSpatialStructure(a[0], a[1], a[2], a[3], a[4], a[5]),\n 886880790: (a) => new IFC4.IfcRelCoversBldgElements(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2802773753: (a) => new IFC4.IfcRelCoversSpaces(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2565941209: (a) => new IFC4.IfcRelDeclares(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2551354335: (a) => new IFC4.IfcRelDecomposes(a[0], a[1], a[2], a[3]),\n 693640335: (a) => new IFC4.IfcRelDefines(a[0], a[1], a[2], a[3]),\n 1462361463: (a) => new IFC4.IfcRelDefinesByObject(a[0], a[1], a[2], a[3], a[4], a[5]),\n 4186316022: (a) => new IFC4.IfcRelDefinesByProperties(a[0], a[1], a[2], a[3], a[4], a[5]),\n 307848117: (a) => new IFC4.IfcRelDefinesByTemplate(a[0], a[1], a[2], a[3], a[4], a[5]),\n 781010003: (a) => new IFC4.IfcRelDefinesByType(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3940055652: (a) => new IFC4.IfcRelFillsElement(a[0], a[1], a[2], a[3], a[4], a[5]),\n 279856033: (a) => new IFC4.IfcRelFlowControlElements(a[0], a[1], a[2], a[3], a[4], a[5]),\n 427948657: (a) => new IFC4.IfcRelInterferesElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3268803585: (a) => new IFC4.IfcRelNests(a[0], a[1], a[2], a[3], a[4], a[5]),\n 750771296: (a) => new IFC4.IfcRelProjectsElement(a[0], a[1], a[2], a[3], a[4], a[5]),\n 1245217292: (a) => new IFC4.IfcRelReferencedInSpatialStructure(a[0], a[1], a[2], a[3], a[4], a[5]),\n 4122056220: (a) => new IFC4.IfcRelSequence(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 366585022: (a) => new IFC4.IfcRelServicesBuildings(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3451746338: (a) => new IFC4.IfcRelSpaceBoundary(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3523091289: (a) => new IFC4.IfcRelSpaceBoundary1stLevel(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1521410863: (a) => new IFC4.IfcRelSpaceBoundary2ndLevel(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 1401173127: (a) => new IFC4.IfcRelVoidsElement(a[0], a[1], a[2], a[3], a[4], a[5]),\n 816062949: (a) => new IFC4.IfcReparametrisedCompositeCurveSegment(a[0], a[1], a[2], a[3]),\n 2914609552: (a) => new IFC4.IfcResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1856042241: (a) => new IFC4.IfcRevolvedAreaSolid(a[0], a[1], a[2], a[3]),\n 3243963512: (a) => new IFC4.IfcRevolvedAreaSolidTapered(a[0], a[1], a[2], a[3], a[4]),\n 4158566097: (a) => new IFC4.IfcRightCircularCone(a[0], a[1], a[2]),\n 3626867408: (a) => new IFC4.IfcRightCircularCylinder(a[0], a[1], a[2]),\n 3663146110: (a) => new IFC4.IfcSimplePropertyTemplate(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 1412071761: (a) => new IFC4.IfcSpatialElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 710998568: (a) => new IFC4.IfcSpatialElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2706606064: (a) => new IFC4.IfcSpatialStructureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3893378262: (a) => new IFC4.IfcSpatialStructureElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 463610769: (a) => new IFC4.IfcSpatialZone(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2481509218: (a) => new IFC4.IfcSpatialZoneType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 451544542: (a) => new IFC4.IfcSphere(a[0], a[1]),\n 4015995234: (a) => new IFC4.IfcSphericalSurface(a[0], a[1]),\n 3544373492: (a) => new IFC4.IfcStructuralActivity(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3136571912: (a) => new IFC4.IfcStructuralItem(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 530289379: (a) => new IFC4.IfcStructuralMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3689010777: (a) => new IFC4.IfcStructuralReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3979015343: (a) => new IFC4.IfcStructuralSurfaceMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2218152070: (a) => new IFC4.IfcStructuralSurfaceMemberVarying(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 603775116: (a) => new IFC4.IfcStructuralSurfaceReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 4095615324: (a) => new IFC4.IfcSubContractResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 699246055: (a) => new IFC4.IfcSurfaceCurve(a[0], a[1], a[2]),\n 2028607225: (a) => new IFC4.IfcSurfaceCurveSweptAreaSolid(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2809605785: (a) => new IFC4.IfcSurfaceOfLinearExtrusion(a[0], a[1], a[2], a[3]),\n 4124788165: (a) => new IFC4.IfcSurfaceOfRevolution(a[0], a[1], a[2]),\n 1580310250: (a) => new IFC4.IfcSystemFurnitureElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3473067441: (a) => new IFC4.IfcTask(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n 3206491090: (a) => new IFC4.IfcTaskType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 2387106220: (a) => new IFC4.IfcTessellatedFaceSet(a[0]),\n 1935646853: (a) => new IFC4.IfcToroidalSurface(a[0], a[1], a[2]),\n 2097647324: (a) => new IFC4.IfcTransportElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2916149573: (a) => new IFC4.IfcTriangulatedFaceSet(a[0], a[1], a[2], a[3], a[4]),\n 336235671: (a) => new IFC4.IfcWindowLiningProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]),\n 512836454: (a) => new IFC4.IfcWindowPanelProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2296667514: (a) => new IFC4.IfcActor(a[0], a[1], a[2], a[3], a[4], a[5]),\n 1635779807: (a) => new IFC4.IfcAdvancedBrep(a[0]),\n 2603310189: (a) => new IFC4.IfcAdvancedBrepWithVoids(a[0], a[1]),\n 1674181508: (a) => new IFC4.IfcAnnotation(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 2887950389: (a) => new IFC4.IfcBSplineSurface(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 167062518: (a) => new IFC4.IfcBSplineSurfaceWithKnots(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 1334484129: (a) => new IFC4.IfcBlock(a[0], a[1], a[2], a[3]),\n 3649129432: (a) => new IFC4.IfcBooleanClippingResult(a[0], a[1], a[2]),\n 1260505505: (_) => new IFC4.IfcBoundedCurve(),\n 4031249490: (a) => new IFC4.IfcBuilding(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 1950629157: (a) => new IFC4.IfcBuildingElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3124254112: (a) => new IFC4.IfcBuildingStorey(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2197970202: (a) => new IFC4.IfcChimneyType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2937912522: (a) => new IFC4.IfcCircleHollowProfileDef(a[0], a[1], a[2], a[3], a[4]),\n 3893394355: (a) => new IFC4.IfcCivilElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 300633059: (a) => new IFC4.IfcColumnType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3875453745: (a) => new IFC4.IfcComplexPropertyTemplate(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3732776249: (a) => new IFC4.IfcCompositeCurve(a[0], a[1]),\n 15328376: (a) => new IFC4.IfcCompositeCurveOnSurface(a[0], a[1]),\n 2510884976: (a) => new IFC4.IfcConic(a[0]),\n 2185764099: (a) => new IFC4.IfcConstructionEquipmentResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 4105962743: (a) => new IFC4.IfcConstructionMaterialResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 1525564444: (a) => new IFC4.IfcConstructionProductResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 2559216714: (a) => new IFC4.IfcConstructionResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3293443760: (a) => new IFC4.IfcControl(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3895139033: (a) => new IFC4.IfcCostItem(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1419761937: (a) => new IFC4.IfcCostSchedule(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1916426348: (a) => new IFC4.IfcCoveringType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3295246426: (a) => new IFC4.IfcCrewResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 1457835157: (a) => new IFC4.IfcCurtainWallType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1213902940: (a) => new IFC4.IfcCylindricalSurface(a[0], a[1]),\n 3256556792: (a) => new IFC4.IfcDistributionElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3849074793: (a) => new IFC4.IfcDistributionFlowElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2963535650: (a) => new IFC4.IfcDoorLiningProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]),\n 1714330368: (a) => new IFC4.IfcDoorPanelProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2323601079: (a) => new IFC4.IfcDoorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n 445594917: (a) => new IFC4.IfcDraughtingPreDefinedColour(a[0]),\n 4006246654: (a) => new IFC4.IfcDraughtingPreDefinedCurveFont(a[0]),\n 1758889154: (a) => new IFC4.IfcElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 4123344466: (a) => new IFC4.IfcElementAssembly(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2397081782: (a) => new IFC4.IfcElementAssemblyType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1623761950: (a) => new IFC4.IfcElementComponent(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2590856083: (a) => new IFC4.IfcElementComponentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1704287377: (a) => new IFC4.IfcEllipse(a[0], a[1], a[2]),\n 2107101300: (a) => new IFC4.IfcEnergyConversionDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 132023988: (a) => new IFC4.IfcEngineType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3174744832: (a) => new IFC4.IfcEvaporativeCoolerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3390157468: (a) => new IFC4.IfcEvaporatorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 4148101412: (a) => new IFC4.IfcEvent(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 2853485674: (a) => new IFC4.IfcExternalSpatialStructureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 807026263: (a) => new IFC4.IfcFacetedBrep(a[0]),\n 3737207727: (a) => new IFC4.IfcFacetedBrepWithVoids(a[0], a[1]),\n 647756555: (a) => new IFC4.IfcFastener(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2489546625: (a) => new IFC4.IfcFastenerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2827207264: (a) => new IFC4.IfcFeatureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2143335405: (a) => new IFC4.IfcFeatureElementAddition(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1287392070: (a) => new IFC4.IfcFeatureElementSubtraction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3907093117: (a) => new IFC4.IfcFlowControllerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3198132628: (a) => new IFC4.IfcFlowFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3815607619: (a) => new IFC4.IfcFlowMeterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1482959167: (a) => new IFC4.IfcFlowMovingDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1834744321: (a) => new IFC4.IfcFlowSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1339347760: (a) => new IFC4.IfcFlowStorageDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2297155007: (a) => new IFC4.IfcFlowTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3009222698: (a) => new IFC4.IfcFlowTreatmentDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1893162501: (a) => new IFC4.IfcFootingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 263784265: (a) => new IFC4.IfcFurnishingElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1509553395: (a) => new IFC4.IfcFurniture(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3493046030: (a) => new IFC4.IfcGeographicElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3009204131: (a) => new IFC4.IfcGrid(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 2706460486: (a) => new IFC4.IfcGroup(a[0], a[1], a[2], a[3], a[4]),\n 1251058090: (a) => new IFC4.IfcHeatExchangerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1806887404: (a) => new IFC4.IfcHumidifierType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2571569899: (a) => new IFC4.IfcIndexedPolyCurve(a[0], a[1], a[2]),\n 3946677679: (a) => new IFC4.IfcInterceptorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3113134337: (a) => new IFC4.IfcIntersectionCurve(a[0], a[1], a[2]),\n 2391368822: (a) => new IFC4.IfcInventory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 4288270099: (a) => new IFC4.IfcJunctionBoxType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3827777499: (a) => new IFC4.IfcLaborResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 1051575348: (a) => new IFC4.IfcLampType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1161773419: (a) => new IFC4.IfcLightFixtureType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 377706215: (a) => new IFC4.IfcMechanicalFastener(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 2108223431: (a) => new IFC4.IfcMechanicalFastenerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 1114901282: (a) => new IFC4.IfcMedicalDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3181161470: (a) => new IFC4.IfcMemberType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 977012517: (a) => new IFC4.IfcMotorConnectionType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 4143007308: (a) => new IFC4.IfcOccupant(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3588315303: (a) => new IFC4.IfcOpeningElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3079942009: (a) => new IFC4.IfcOpeningStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2837617999: (a) => new IFC4.IfcOutletType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2382730787: (a) => new IFC4.IfcPerformanceHistory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3566463478: (a) => new IFC4.IfcPermeableCoveringProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3327091369: (a) => new IFC4.IfcPermit(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1158309216: (a) => new IFC4.IfcPileType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 804291784: (a) => new IFC4.IfcPipeFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 4231323485: (a) => new IFC4.IfcPipeSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 4017108033: (a) => new IFC4.IfcPlateType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2839578677: (a) => new IFC4.IfcPolygonalFaceSet(a[0], a[1], a[2], a[3]),\n 3724593414: (a) => new IFC4.IfcPolyline(a[0]),\n 3740093272: (a) => new IFC4.IfcPort(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 2744685151: (a) => new IFC4.IfcProcedure(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2904328755: (a) => new IFC4.IfcProjectOrder(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3651124850: (a) => new IFC4.IfcProjectionElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1842657554: (a) => new IFC4.IfcProtectiveDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2250791053: (a) => new IFC4.IfcPumpType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2893384427: (a) => new IFC4.IfcRailingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2324767716: (a) => new IFC4.IfcRampFlightType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1469900589: (a) => new IFC4.IfcRampType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 683857671: (a) => new IFC4.IfcRationalBSplineSurfaceWithKnots(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n 3027567501: (a) => new IFC4.IfcReinforcingElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 964333572: (a) => new IFC4.IfcReinforcingElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2320036040: (a) => new IFC4.IfcReinforcingMesh(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17]),\n 2310774935: (a) => new IFC4.IfcReinforcingMeshType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19]),\n 160246688: (a) => new IFC4.IfcRelAggregates(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2781568857: (a) => new IFC4.IfcRoofType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1768891740: (a) => new IFC4.IfcSanitaryTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2157484638: (a) => new IFC4.IfcSeamCurve(a[0], a[1], a[2]),\n 4074543187: (a) => new IFC4.IfcShadingDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 4097777520: (a) => new IFC4.IfcSite(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n 2533589738: (a) => new IFC4.IfcSlabType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1072016465: (a) => new IFC4.IfcSolarDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3856911033: (a) => new IFC4.IfcSpace(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 1305183839: (a) => new IFC4.IfcSpaceHeaterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3812236995: (a) => new IFC4.IfcSpaceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 3112655638: (a) => new IFC4.IfcStackTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1039846685: (a) => new IFC4.IfcStairFlightType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 338393293: (a) => new IFC4.IfcStairType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 682877961: (a) => new IFC4.IfcStructuralAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1179482911: (a) => new IFC4.IfcStructuralConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1004757350: (a) => new IFC4.IfcStructuralCurveAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 4243806635: (a) => new IFC4.IfcStructuralCurveConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 214636428: (a) => new IFC4.IfcStructuralCurveMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2445595289: (a) => new IFC4.IfcStructuralCurveMemberVarying(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2757150158: (a) => new IFC4.IfcStructuralCurveReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1807405624: (a) => new IFC4.IfcStructuralLinearAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 1252848954: (a) => new IFC4.IfcStructuralLoadGroup(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2082059205: (a) => new IFC4.IfcStructuralPointAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 734778138: (a) => new IFC4.IfcStructuralPointConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1235345126: (a) => new IFC4.IfcStructuralPointReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2986769608: (a) => new IFC4.IfcStructuralResultGroup(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3657597509: (a) => new IFC4.IfcStructuralSurfaceAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 1975003073: (a) => new IFC4.IfcStructuralSurfaceConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 148013059: (a) => new IFC4.IfcSubContractResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 3101698114: (a) => new IFC4.IfcSurfaceFeature(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2315554128: (a) => new IFC4.IfcSwitchingDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2254336722: (a) => new IFC4.IfcSystem(a[0], a[1], a[2], a[3], a[4]),\n 413509423: (a) => new IFC4.IfcSystemFurnitureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 5716631: (a) => new IFC4.IfcTankType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3824725483: (a) => new IFC4.IfcTendon(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]),\n 2347447852: (a) => new IFC4.IfcTendonAnchor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3081323446: (a) => new IFC4.IfcTendonAnchorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2415094496: (a) => new IFC4.IfcTendonType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n 1692211062: (a) => new IFC4.IfcTransformerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1620046519: (a) => new IFC4.IfcTransportElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3593883385: (a) => new IFC4.IfcTrimmedCurve(a[0], a[1], a[2], a[3], a[4]),\n 1600972822: (a) => new IFC4.IfcTubeBundleType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1911125066: (a) => new IFC4.IfcUnitaryEquipmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 728799441: (a) => new IFC4.IfcValveType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2391383451: (a) => new IFC4.IfcVibrationIsolator(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3313531582: (a) => new IFC4.IfcVibrationIsolatorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2769231204: (a) => new IFC4.IfcVirtualElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 926996030: (a) => new IFC4.IfcVoidingFeature(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1898987631: (a) => new IFC4.IfcWallType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1133259667: (a) => new IFC4.IfcWasteTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 4009809668: (a) => new IFC4.IfcWindowType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n 4088093105: (a) => new IFC4.IfcWorkCalendar(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1028945134: (a) => new IFC4.IfcWorkControl(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n 4218914973: (a) => new IFC4.IfcWorkPlan(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n 3342526732: (a) => new IFC4.IfcWorkSchedule(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n 1033361043: (a) => new IFC4.IfcZone(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3821786052: (a) => new IFC4.IfcActionRequest(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1411407467: (a) => new IFC4.IfcAirTerminalBoxType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3352864051: (a) => new IFC4.IfcAirTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1871374353: (a) => new IFC4.IfcAirToAirHeatRecoveryType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3460190687: (a) => new IFC4.IfcAsset(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n 1532957894: (a) => new IFC4.IfcAudioVisualApplianceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1967976161: (a) => new IFC4.IfcBSplineCurve(a[0], a[1], a[2], a[3], a[4]),\n 2461110595: (a) => new IFC4.IfcBSplineCurveWithKnots(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 819618141: (a) => new IFC4.IfcBeamType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 231477066: (a) => new IFC4.IfcBoilerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1136057603: (a) => new IFC4.IfcBoundaryCurve(a[0], a[1]),\n 3299480353: (a) => new IFC4.IfcBuildingElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2979338954: (a) => new IFC4.IfcBuildingElementPart(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 39481116: (a) => new IFC4.IfcBuildingElementPartType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1095909175: (a) => new IFC4.IfcBuildingElementProxy(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1909888760: (a) => new IFC4.IfcBuildingElementProxyType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1177604601: (a) => new IFC4.IfcBuildingSystem(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 2188180465: (a) => new IFC4.IfcBurnerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 395041908: (a) => new IFC4.IfcCableCarrierFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3293546465: (a) => new IFC4.IfcCableCarrierSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2674252688: (a) => new IFC4.IfcCableFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1285652485: (a) => new IFC4.IfcCableSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2951183804: (a) => new IFC4.IfcChillerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3296154744: (a) => new IFC4.IfcChimney(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2611217952: (a) => new IFC4.IfcCircle(a[0], a[1]),\n 1677625105: (a) => new IFC4.IfcCivilElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2301859152: (a) => new IFC4.IfcCoilType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 843113511: (a) => new IFC4.IfcColumn(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 905975707: (a) => new IFC4.IfcColumnStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 400855858: (a) => new IFC4.IfcCommunicationsApplianceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3850581409: (a) => new IFC4.IfcCompressorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2816379211: (a) => new IFC4.IfcCondenserType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3898045240: (a) => new IFC4.IfcConstructionEquipmentResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 1060000209: (a) => new IFC4.IfcConstructionMaterialResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 488727124: (a) => new IFC4.IfcConstructionProductResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 335055490: (a) => new IFC4.IfcCooledBeamType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2954562838: (a) => new IFC4.IfcCoolingTowerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1973544240: (a) => new IFC4.IfcCovering(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3495092785: (a) => new IFC4.IfcCurtainWall(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3961806047: (a) => new IFC4.IfcDamperType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1335981549: (a) => new IFC4.IfcDiscreteAccessory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2635815018: (a) => new IFC4.IfcDiscreteAccessoryType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1599208980: (a) => new IFC4.IfcDistributionChamberElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2063403501: (a) => new IFC4.IfcDistributionControlElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1945004755: (a) => new IFC4.IfcDistributionElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3040386961: (a) => new IFC4.IfcDistributionFlowElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3041715199: (a) => new IFC4.IfcDistributionPort(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3205830791: (a) => new IFC4.IfcDistributionSystem(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 395920057: (a) => new IFC4.IfcDoor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n 3242481149: (a) => new IFC4.IfcDoorStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n 869906466: (a) => new IFC4.IfcDuctFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3760055223: (a) => new IFC4.IfcDuctSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2030761528: (a) => new IFC4.IfcDuctSilencerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 663422040: (a) => new IFC4.IfcElectricApplianceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2417008758: (a) => new IFC4.IfcElectricDistributionBoardType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3277789161: (a) => new IFC4.IfcElectricFlowStorageDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1534661035: (a) => new IFC4.IfcElectricGeneratorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1217240411: (a) => new IFC4.IfcElectricMotorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 712377611: (a) => new IFC4.IfcElectricTimeControlType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1658829314: (a) => new IFC4.IfcEnergyConversionDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2814081492: (a) => new IFC4.IfcEngine(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3747195512: (a) => new IFC4.IfcEvaporativeCooler(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 484807127: (a) => new IFC4.IfcEvaporator(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1209101575: (a) => new IFC4.IfcExternalSpatialElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 346874300: (a) => new IFC4.IfcFanType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1810631287: (a) => new IFC4.IfcFilterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 4222183408: (a) => new IFC4.IfcFireSuppressionTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2058353004: (a) => new IFC4.IfcFlowController(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 4278956645: (a) => new IFC4.IfcFlowFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 4037862832: (a) => new IFC4.IfcFlowInstrumentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2188021234: (a) => new IFC4.IfcFlowMeter(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3132237377: (a) => new IFC4.IfcFlowMovingDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 987401354: (a) => new IFC4.IfcFlowSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 707683696: (a) => new IFC4.IfcFlowStorageDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2223149337: (a) => new IFC4.IfcFlowTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3508470533: (a) => new IFC4.IfcFlowTreatmentDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 900683007: (a) => new IFC4.IfcFooting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3319311131: (a) => new IFC4.IfcHeatExchanger(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2068733104: (a) => new IFC4.IfcHumidifier(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 4175244083: (a) => new IFC4.IfcInterceptor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2176052936: (a) => new IFC4.IfcJunctionBox(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 76236018: (a) => new IFC4.IfcLamp(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 629592764: (a) => new IFC4.IfcLightFixture(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1437502449: (a) => new IFC4.IfcMedicalDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1073191201: (a) => new IFC4.IfcMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1911478936: (a) => new IFC4.IfcMemberStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2474470126: (a) => new IFC4.IfcMotorConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 144952367: (a) => new IFC4.IfcOuterBoundaryCurve(a[0], a[1]),\n 3694346114: (a) => new IFC4.IfcOutlet(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1687234759: (a) => new IFC4.IfcPile(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 310824031: (a) => new IFC4.IfcPipeFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3612865200: (a) => new IFC4.IfcPipeSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3171933400: (a) => new IFC4.IfcPlate(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1156407060: (a) => new IFC4.IfcPlateStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 738039164: (a) => new IFC4.IfcProtectiveDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 655969474: (a) => new IFC4.IfcProtectiveDeviceTrippingUnitType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 90941305: (a) => new IFC4.IfcPump(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2262370178: (a) => new IFC4.IfcRailing(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3024970846: (a) => new IFC4.IfcRamp(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3283111854: (a) => new IFC4.IfcRampFlight(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1232101972: (a) => new IFC4.IfcRationalBSplineCurveWithKnots(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 979691226: (a) => new IFC4.IfcReinforcingBar(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n 2572171363: (a) => new IFC4.IfcReinforcingBarType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]),\n 2016517767: (a) => new IFC4.IfcRoof(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3053780830: (a) => new IFC4.IfcSanitaryTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1783015770: (a) => new IFC4.IfcSensorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1329646415: (a) => new IFC4.IfcShadingDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1529196076: (a) => new IFC4.IfcSlab(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3127900445: (a) => new IFC4.IfcSlabElementedCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3027962421: (a) => new IFC4.IfcSlabStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3420628829: (a) => new IFC4.IfcSolarDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1999602285: (a) => new IFC4.IfcSpaceHeater(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1404847402: (a) => new IFC4.IfcStackTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 331165859: (a) => new IFC4.IfcStair(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 4252922144: (a) => new IFC4.IfcStairFlight(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n 2515109513: (a) => new IFC4.IfcStructuralAnalysisModel(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 385403989: (a) => new IFC4.IfcStructuralLoadCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 1621171031: (a) => new IFC4.IfcStructuralPlanarAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 1162798199: (a) => new IFC4.IfcSwitchingDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 812556717: (a) => new IFC4.IfcTank(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3825984169: (a) => new IFC4.IfcTransformer(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3026737570: (a) => new IFC4.IfcTubeBundle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3179687236: (a) => new IFC4.IfcUnitaryControlElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 4292641817: (a) => new IFC4.IfcUnitaryEquipment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 4207607924: (a) => new IFC4.IfcValve(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2391406946: (a) => new IFC4.IfcWall(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 4156078855: (a) => new IFC4.IfcWallElementedCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3512223829: (a) => new IFC4.IfcWallStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 4237592921: (a) => new IFC4.IfcWasteTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3304561284: (a) => new IFC4.IfcWindow(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n 486154966: (a) => new IFC4.IfcWindowStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n 2874132201: (a) => new IFC4.IfcActuatorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1634111441: (a) => new IFC4.IfcAirTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 177149247: (a) => new IFC4.IfcAirTerminalBox(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2056796094: (a) => new IFC4.IfcAirToAirHeatRecovery(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3001207471: (a) => new IFC4.IfcAlarmType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 277319702: (a) => new IFC4.IfcAudioVisualAppliance(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 753842376: (a) => new IFC4.IfcBeam(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2906023776: (a) => new IFC4.IfcBeamStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 32344328: (a) => new IFC4.IfcBoiler(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2938176219: (a) => new IFC4.IfcBurner(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 635142910: (a) => new IFC4.IfcCableCarrierFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3758799889: (a) => new IFC4.IfcCableCarrierSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1051757585: (a) => new IFC4.IfcCableFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 4217484030: (a) => new IFC4.IfcCableSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3902619387: (a) => new IFC4.IfcChiller(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 639361253: (a) => new IFC4.IfcCoil(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3221913625: (a) => new IFC4.IfcCommunicationsAppliance(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3571504051: (a) => new IFC4.IfcCompressor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2272882330: (a) => new IFC4.IfcCondenser(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 578613899: (a) => new IFC4.IfcControllerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 4136498852: (a) => new IFC4.IfcCooledBeam(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3640358203: (a) => new IFC4.IfcCoolingTower(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 4074379575: (a) => new IFC4.IfcDamper(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1052013943: (a) => new IFC4.IfcDistributionChamberElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 562808652: (a) => new IFC4.IfcDistributionCircuit(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1062813311: (a) => new IFC4.IfcDistributionControlElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 342316401: (a) => new IFC4.IfcDuctFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3518393246: (a) => new IFC4.IfcDuctSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1360408905: (a) => new IFC4.IfcDuctSilencer(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1904799276: (a) => new IFC4.IfcElectricAppliance(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 862014818: (a) => new IFC4.IfcElectricDistributionBoard(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3310460725: (a) => new IFC4.IfcElectricFlowStorageDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 264262732: (a) => new IFC4.IfcElectricGenerator(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 402227799: (a) => new IFC4.IfcElectricMotor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1003880860: (a) => new IFC4.IfcElectricTimeControl(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3415622556: (a) => new IFC4.IfcFan(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 819412036: (a) => new IFC4.IfcFilter(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1426591983: (a) => new IFC4.IfcFireSuppressionTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 182646315: (a) => new IFC4.IfcFlowInstrument(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2295281155: (a) => new IFC4.IfcProtectiveDeviceTrippingUnit(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 4086658281: (a) => new IFC4.IfcSensor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 630975310: (a) => new IFC4.IfcUnitaryControlElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 4288193352: (a) => new IFC4.IfcActuator(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3087945054: (a) => new IFC4.IfcAlarm(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 25142252: (a) => new IFC4.IfcController(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8])\n};\nToRawLineData[2] = {\n 3630933823: (i) => [i.Role, i.UserDefinedRole, i.Description],\n 618182010: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose],\n 639542469: (i) => [i.ApplicationDeveloper, i.Version, i.ApplicationFullName, i.ApplicationIdentifier],\n 411424972: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.Category, i.Condition, i.ArithmeticOperator, i.Components],\n 130549933: (i) => [i.Identifier, i.Name, i.Description, i.TimeOfApproval, i.Status, i.Level, i.Qualifier, i.RequestingApproval, i.GivingApproval],\n 4037036970: (i) => [i.Name],\n 1560379544: (i) => [i.Name, !i.TranslationalStiffnessByLengthX ? null : Labelise(i.TranslationalStiffnessByLengthX), !i.TranslationalStiffnessByLengthY ? null : Labelise(i.TranslationalStiffnessByLengthY), !i.TranslationalStiffnessByLengthZ ? null : Labelise(i.TranslationalStiffnessByLengthZ), !i.RotationalStiffnessByLengthX ? null : Labelise(i.RotationalStiffnessByLengthX), !i.RotationalStiffnessByLengthY ? null : Labelise(i.RotationalStiffnessByLengthY), !i.RotationalStiffnessByLengthZ ? null : Labelise(i.RotationalStiffnessByLengthZ)],\n 3367102660: (i) => [i.Name, !i.TranslationalStiffnessByAreaX ? null : Labelise(i.TranslationalStiffnessByAreaX), !i.TranslationalStiffnessByAreaY ? null : Labelise(i.TranslationalStiffnessByAreaY), !i.TranslationalStiffnessByAreaZ ? null : Labelise(i.TranslationalStiffnessByAreaZ)],\n 1387855156: (i) => [i.Name, !i.TranslationalStiffnessX ? null : Labelise(i.TranslationalStiffnessX), !i.TranslationalStiffnessY ? null : Labelise(i.TranslationalStiffnessY), !i.TranslationalStiffnessZ ? null : Labelise(i.TranslationalStiffnessZ), !i.RotationalStiffnessX ? null : Labelise(i.RotationalStiffnessX), !i.RotationalStiffnessY ? null : Labelise(i.RotationalStiffnessY), !i.RotationalStiffnessZ ? null : Labelise(i.RotationalStiffnessZ)],\n 2069777674: (i) => [i.Name, !i.TranslationalStiffnessX ? null : Labelise(i.TranslationalStiffnessX), !i.TranslationalStiffnessY ? null : Labelise(i.TranslationalStiffnessY), !i.TranslationalStiffnessZ ? null : Labelise(i.TranslationalStiffnessZ), !i.RotationalStiffnessX ? null : Labelise(i.RotationalStiffnessX), !i.RotationalStiffnessY ? null : Labelise(i.RotationalStiffnessY), !i.RotationalStiffnessZ ? null : Labelise(i.RotationalStiffnessZ), !i.WarpingStiffness ? null : Labelise(i.WarpingStiffness)],\n 2859738748: (_) => [],\n 2614616156: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement],\n 2732653382: (i) => [i.SurfaceOnRelatingElement, i.SurfaceOnRelatedElement],\n 775493141: (i) => [i.VolumeOnRelatingElement, i.VolumeOnRelatedElement],\n 1959218052: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade],\n 1785450214: (i) => [i.SourceCRS, i.TargetCRS],\n 1466758467: (i) => [i.Name, i.Description, i.GeodeticDatum, i.VerticalDatum],\n 602808272: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.Category, i.Condition, i.ArithmeticOperator, i.Components],\n 1765591967: (i) => [i.Elements, i.UnitType, i.UserDefinedType],\n 1045800335: (i) => [i.Unit, i.Exponent],\n 2949456006: (i) => [i.LengthExponent, i.MassExponent, i.TimeExponent, i.ElectricCurrentExponent, i.ThermodynamicTemperatureExponent, i.AmountOfSubstanceExponent, i.LuminousIntensityExponent],\n 4294318154: (_) => [],\n 3200245327: (i) => [i.Location, i.Identification, i.Name],\n 2242383968: (i) => [i.Location, i.Identification, i.Name],\n 1040185647: (i) => [i.Location, i.Identification, i.Name],\n 3548104201: (i) => [i.Location, i.Identification, i.Name],\n 852622518: (i) => [i.AxisTag, i.AxisCurve, { type: 3, value: BooleanConvert(i.SameSense.value) }],\n 3020489413: (i) => [i.TimeStamp, i.ListValues.map((p) => Labelise(p))],\n 2655187982: (i) => [i.Name, i.Version, i.Publisher, i.VersionDate, i.Location, i.Description],\n 3452421091: (i) => [i.Location, i.Identification, i.Name, i.Description, i.Language, i.ReferencedLibrary],\n 4162380809: (i) => [i.MainPlaneAngle, i.SecondaryPlaneAngle, i.LuminousIntensity],\n 1566485204: (i) => [i.LightDistributionCurve, i.DistributionData],\n 3057273783: (i) => [i.SourceCRS, i.TargetCRS, i.Eastings, i.Northings, i.OrthogonalHeight, i.XAxisAbscissa, i.XAxisOrdinate, i.Scale],\n 1847130766: (i) => [i.MaterialClassifications, i.ClassifiedMaterial],\n 760658860: (_) => [],\n 248100487: (i) => [i.Material, i.LayerThickness, i.IsVentilated == null ? null : { type: 3, value: BooleanConvert(i.IsVentilated.value) }, i.Name, i.Description, i.Category, i.Priority],\n 3303938423: (i) => [i.MaterialLayers, i.LayerSetName, i.Description],\n 1847252529: (i) => [i.Material, i.LayerThickness, i.IsVentilated == null ? null : { type: 3, value: BooleanConvert(i.IsVentilated.value) }, i.Name, i.Description, i.Category, i.Priority, i.OffsetDirection, i.OffsetValues],\n 2199411900: (i) => [i.Materials],\n 2235152071: (i) => [i.Name, i.Description, i.Material, i.Profile, i.Priority, i.Category],\n 164193824: (i) => [i.Name, i.Description, i.MaterialProfiles, i.CompositeProfile],\n 552965576: (i) => [i.Name, i.Description, i.Material, i.Profile, i.Priority, i.Category, i.OffsetValues],\n 1507914824: (_) => [],\n 2597039031: (i) => [Labelise(i.ValueComponent), i.UnitComponent],\n 3368373690: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.Benchmark, i.ValueSource, i.DataValue, i.ReferencePath],\n 2706619895: (i) => [i.Currency],\n 1918398963: (i) => [i.Dimensions, i.UnitType],\n 3701648758: (_) => [],\n 2251480897: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.BenchmarkValues, i.LogicalAggregator, i.ObjectiveQualifier, i.UserDefinedQualifier],\n 4251960020: (i) => [i.Identification, i.Name, i.Description, i.Roles, i.Addresses],\n 1207048766: (i) => [i.OwningUser, i.OwningApplication, i.State, i.ChangeAction, i.LastModifiedDate, i.LastModifyingUser, i.LastModifyingApplication, i.CreationDate],\n 2077209135: (i) => [i.Identification, i.FamilyName, i.GivenName, i.MiddleNames, i.PrefixTitles, i.SuffixTitles, i.Roles, i.Addresses],\n 101040310: (i) => [i.ThePerson, i.TheOrganization, i.Roles],\n 2483315170: (i) => [i.Name, i.Description],\n 2226359599: (i) => [i.Name, i.Description, i.Unit],\n 3355820592: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.InternalLocation, i.AddressLines, i.PostalBox, i.Town, i.Region, i.PostalCode, i.Country],\n 677532197: (_) => [],\n 2022622350: (i) => [i.Name, i.Description, i.AssignedItems, i.Identifier],\n 1304840413: (i) => [i.Name, i.Description, i.AssignedItems, i.Identifier, { type: 3, value: BooleanConvert(i.LayerOn.value) }, { type: 3, value: BooleanConvert(i.LayerFrozen.value) }, { type: 3, value: BooleanConvert(i.LayerBlocked.value) }, i.LayerStyles],\n 3119450353: (i) => [i.Name],\n 2417041796: (i) => [i.Styles],\n 2095639259: (i) => [i.Name, i.Description, i.Representations],\n 3958567839: (i) => [i.ProfileType, i.ProfileName],\n 3843373140: (i) => [i.Name, i.Description, i.GeodeticDatum, i.VerticalDatum, i.MapProjection, i.MapZone, i.MapUnit],\n 986844984: (_) => [],\n 3710013099: (i) => [i.Name, i.EnumerationValues.map((p) => Labelise(p)), i.Unit],\n 2044713172: (i) => [i.Name, i.Description, i.Unit, i.AreaValue, i.Formula],\n 2093928680: (i) => [i.Name, i.Description, i.Unit, i.CountValue, i.Formula],\n 931644368: (i) => [i.Name, i.Description, i.Unit, i.LengthValue, i.Formula],\n 3252649465: (i) => [i.Name, i.Description, i.Unit, i.TimeValue, i.Formula],\n 2405470396: (i) => [i.Name, i.Description, i.Unit, i.VolumeValue, i.Formula],\n 825690147: (i) => [i.Name, i.Description, i.Unit, i.WeightValue, i.Formula],\n 3915482550: (i) => [i.RecurrenceType, i.DayComponent, i.WeekdayComponent, i.MonthComponent, i.Position, i.Interval, i.Occurrences, i.TimePeriods],\n 2433181523: (i) => [i.TypeIdentifier, i.AttributeIdentifier, i.InstanceName, i.ListPositions, i.InnerReference],\n 1076942058: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n 3377609919: (i) => [i.ContextIdentifier, i.ContextType],\n 3008791417: (_) => [],\n 1660063152: (i) => [i.MappingOrigin, i.MappedRepresentation],\n 2439245199: (i) => [i.Name, i.Description],\n 2341007311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 448429030: (i) => [i.Dimensions, i.UnitType, i.Prefix, i.Name],\n 1054537805: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin],\n 867548509: (i) => [i.ShapeRepresentations, i.Name, i.Description, { type: 3, value: BooleanConvert(i.ProductDefinitional.value) }, i.PartOfProductDefinitionShape],\n 3982875396: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n 4240577450: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n 2273995522: (i) => [i.Name],\n 2162789131: (i) => [i.Name],\n 3478079324: (i) => [i.Name, i.Values, i.Locations],\n 609421318: (i) => [i.Name],\n 2525727697: (i) => [i.Name],\n 3408363356: (i) => [i.Name, i.DeltaTConstant, i.DeltaTY, i.DeltaTZ],\n 2830218821: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n 3958052878: (i) => [i.Item, i.Styles, i.Name],\n 3049322572: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n 2934153892: (i) => [i.Name, i.SurfaceReinforcement1, i.SurfaceReinforcement2, i.ShearReinforcement],\n 1300840506: (i) => [i.Name, i.Side, i.Styles],\n 3303107099: (i) => [i.DiffuseTransmissionColour, i.DiffuseReflectionColour, i.TransmissionColour, i.ReflectanceColour],\n 1607154358: (i) => [i.RefractionIndex, i.DispersionFactor],\n 846575682: (i) => [i.SurfaceColour, i.Transparency],\n 1351298697: (i) => [i.Textures],\n 626085974: (i) => [{ type: 3, value: BooleanConvert(i.RepeatS.value) }, { type: 3, value: BooleanConvert(i.RepeatT.value) }, i.Mode, i.TextureTransform, i.Parameter],\n 985171141: (i) => [i.Name, i.Rows, i.Columns],\n 2043862942: (i) => [i.Identifier, i.Name, i.Description, i.Unit, i.ReferencePath],\n 531007025: (i) => [!i.RowCells ? null : i.RowCells.map((p) => Labelise(p)), i.IsHeading == null ? null : { type: 3, value: BooleanConvert(i.IsHeading.value) }],\n 1549132990: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.DurationType, i.ScheduleDuration, i.ScheduleStart, i.ScheduleFinish, i.EarlyStart, i.EarlyFinish, i.LateStart, i.LateFinish, i.FreeFloat, i.TotalFloat, i.IsCritical == null ? null : { type: 3, value: BooleanConvert(i.IsCritical.value) }, i.StatusTime, i.ActualDuration, i.ActualStart, i.ActualFinish, i.RemainingTime, i.Completion],\n 2771591690: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.DurationType, i.ScheduleDuration, i.ScheduleStart, i.ScheduleFinish, i.EarlyStart, i.EarlyFinish, i.LateStart, i.LateFinish, i.FreeFloat, i.TotalFloat, i.IsCritical == null ? null : { type: 3, value: BooleanConvert(i.IsCritical.value) }, i.StatusTime, i.ActualDuration, i.ActualStart, i.ActualFinish, i.RemainingTime, i.Completion, i.Recurrence],\n 912023232: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.TelephoneNumbers, i.FacsimileNumbers, i.PagerNumber, i.ElectronicMailAddresses, i.WWWHomePageURL, i.MessagingIDs],\n 1447204868: (i) => [i.Name, i.TextCharacterAppearance, i.TextStyle, i.TextFontStyle, i.ModelOrDraughting == null ? null : { type: 3, value: BooleanConvert(i.ModelOrDraughting.value) }],\n 2636378356: (i) => [i.Colour, i.BackgroundColour],\n 1640371178: (i) => [!i.TextIndent ? null : Labelise(i.TextIndent), i.TextAlign, i.TextDecoration, !i.LetterSpacing ? null : Labelise(i.LetterSpacing), !i.WordSpacing ? null : Labelise(i.WordSpacing), i.TextTransform, !i.LineHeight ? null : Labelise(i.LineHeight)],\n 280115917: (i) => [i.Maps],\n 1742049831: (i) => [i.Maps, i.Mode, i.Parameter],\n 2552916305: (i) => [i.Maps, i.Vertices, i.MappedTo],\n 1210645708: (i) => [i.Coordinates],\n 3611470254: (i) => [i.TexCoordsList],\n 1199560280: (i) => [i.StartTime, i.EndTime],\n 3101149627: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit],\n 581633288: (i) => [i.ListValues.map((p) => Labelise(p))],\n 1377556343: (_) => [],\n 1735638870: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n 180925521: (i) => [i.Units],\n 2799835756: (_) => [],\n 1907098498: (i) => [i.VertexGeometry],\n 891718957: (i) => [i.IntersectingAxes, i.OffsetDistances],\n 1236880293: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.RecurrencePattern, i.Start, i.Finish],\n 3869604511: (i) => [i.Name, i.Description, i.RelatingApproval, i.RelatedApprovals],\n 3798115385: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve],\n 1310608509: (i) => [i.ProfileType, i.ProfileName, i.Curve],\n 2705031697: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve, i.InnerCurves],\n 616511568: (i) => [{ type: 3, value: BooleanConvert(i.RepeatS.value) }, { type: 3, value: BooleanConvert(i.RepeatT.value) }, i.Mode, i.TextureTransform, i.Parameter, i.RasterFormat, i.RasterCode],\n 3150382593: (i) => [i.ProfileType, i.ProfileName, i.Curve, i.Thickness],\n 747523909: (i) => [i.Source, i.Edition, i.EditionDate, i.Name, i.Description, i.Location, i.ReferenceTokens],\n 647927063: (i) => [i.Location, i.Identification, i.Name, i.ReferencedSource, i.Description, i.Sort],\n 3285139300: (i) => [i.ColourList],\n 3264961684: (i) => [i.Name],\n 1485152156: (i) => [i.ProfileType, i.ProfileName, i.Profiles, i.Label],\n 370225590: (i) => [i.CfsFaces],\n 1981873012: (i) => [i.CurveOnRelatingElement, i.CurveOnRelatedElement],\n 45288368: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement, i.EccentricityInX, i.EccentricityInY, i.EccentricityInZ],\n 3050246964: (i) => [i.Dimensions, i.UnitType, i.Name],\n 2889183280: (i) => [i.Dimensions, i.UnitType, i.Name, i.ConversionFactor],\n 2713554722: (i) => [i.Dimensions, i.UnitType, i.Name, i.ConversionFactor, i.ConversionOffset],\n 539742890: (i) => [i.Name, i.Description, i.RelatingMonetaryUnit, i.RelatedMonetaryUnit, i.ExchangeRate, i.RateDateTime, i.RateSource],\n 3800577675: (i) => [i.Name, i.CurveFont, !i.CurveWidth ? null : Labelise(i.CurveWidth), i.CurveColour, i.ModelOrDraughting == null ? null : { type: 3, value: BooleanConvert(i.ModelOrDraughting.value) }],\n 1105321065: (i) => [i.Name, i.PatternList],\n 2367409068: (i) => [i.Name, i.CurveFont, i.CurveFontScaling],\n 3510044353: (i) => [i.VisibleSegmentLength, i.InvisibleSegmentLength],\n 3632507154: (i) => [i.ProfileType, i.ProfileName, i.ParentProfile, i.Operator, i.Label],\n 1154170062: (i) => [i.Identification, i.Name, i.Description, i.Location, i.Purpose, i.IntendedUse, i.Scope, i.Revision, i.DocumentOwner, i.Editors, i.CreationTime, i.LastRevisionTime, i.ElectronicFormat, i.ValidFrom, i.ValidUntil, i.Confidentiality, i.Status],\n 770865208: (i) => [i.Name, i.Description, i.RelatingDocument, i.RelatedDocuments, i.RelationshipType],\n 3732053477: (i) => [i.Location, i.Identification, i.Name, i.Description, i.ReferencedDocument],\n 3900360178: (i) => [i.EdgeStart, i.EdgeEnd],\n 476780140: (i) => [i.EdgeStart, i.EdgeEnd, i.EdgeGeometry, { type: 3, value: BooleanConvert(i.SameSense.value) }],\n 211053100: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.ActualDate, i.EarlyDate, i.LateDate, i.ScheduleDate],\n 297599258: (i) => [i.Name, i.Description, i.Properties],\n 1437805879: (i) => [i.Name, i.Description, i.RelatingReference, i.RelatedResourceObjects],\n 2556980723: (i) => [i.Bounds],\n 1809719519: (i) => [i.Bound, { type: 3, value: BooleanConvert(i.Orientation.value) }],\n 803316827: (i) => [i.Bound, { type: 3, value: BooleanConvert(i.Orientation.value) }],\n 3008276851: (i) => [i.Bounds, i.FaceSurface, { type: 3, value: BooleanConvert(i.SameSense.value) }],\n 4219587988: (i) => [i.Name, i.TensionFailureX, i.TensionFailureY, i.TensionFailureZ, i.CompressionFailureX, i.CompressionFailureY, i.CompressionFailureZ],\n 738692330: (i) => [i.Name, i.FillStyles, i.ModelorDraughting == null ? null : { type: 3, value: BooleanConvert(i.ModelorDraughting.value) }],\n 3448662350: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth],\n 2453401579: (_) => [],\n 4142052618: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth, i.ParentContext, i.TargetScale, i.TargetView, i.UserDefinedTargetView],\n 3590301190: (i) => [i.Elements],\n 178086475: (i) => [i.PlacementLocation, i.PlacementRefDirection],\n 812098782: (i) => [i.BaseSurface, { type: 3, value: BooleanConvert(i.AgreementFlag.value) }],\n 3905492369: (i) => [{ type: 3, value: BooleanConvert(i.RepeatS.value) }, { type: 3, value: BooleanConvert(i.RepeatT.value) }, i.Mode, i.TextureTransform, i.Parameter, i.URLReference],\n 3570813810: (i) => [i.MappedTo, i.Opacity, i.Colours, i.ColourIndex],\n 1437953363: (i) => [i.Maps, i.MappedTo, i.TexCoords],\n 2133299955: (i) => [i.Maps, i.MappedTo, i.TexCoords, i.TexCoordIndex],\n 3741457305: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.Values],\n 1585845231: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, Labelise(i.LagValue), i.DurationType],\n 1402838566: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity],\n 125510826: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity],\n 2604431987: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Orientation],\n 4266656042: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.ColourAppearance, i.ColourTemperature, i.LuminousFlux, i.LightEmissionSource, i.LightDistributionDataSource],\n 1520743889: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation],\n 3422422726: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation, i.Orientation, i.ConcentrationExponent, i.SpreadAngle, i.BeamWidthAngle],\n 2624227202: (i) => [i.PlacementRelTo, i.RelativePlacement],\n 1008929658: (_) => [],\n 2347385850: (i) => [i.MappingSource, i.MappingTarget],\n 1838606355: (i) => [i.Name, i.Description, i.Category],\n 3708119e3: (i) => [i.Name, i.Description, i.Material, i.Fraction, i.Category],\n 2852063980: (i) => [i.Name, i.Description, i.MaterialConstituents],\n 2022407955: (i) => [i.Name, i.Description, i.Representations, i.RepresentedMaterial],\n 1303795690: (i) => [i.ForLayerSet, i.LayerSetDirection, i.DirectionSense, i.OffsetFromReferenceLine, i.ReferenceExtent],\n 3079605661: (i) => [i.ForProfileSet, i.CardinalPoint, i.ReferenceExtent],\n 3404854881: (i) => [i.ForProfileSet, i.CardinalPoint, i.ReferenceExtent, i.ForProfileEndSet, i.CardinalEndPoint],\n 3265635763: (i) => [i.Name, i.Description, i.Properties, i.Material],\n 853536259: (i) => [i.Name, i.Description, i.RelatingMaterial, i.RelatedMaterials, i.Expression],\n 2998442950: (i) => [i.ProfileType, i.ProfileName, i.ParentProfile, i.Operator, i.Label],\n 219451334: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 2665983363: (i) => [i.CfsFaces],\n 1411181986: (i) => [i.Name, i.Description, i.RelatingOrganization, i.RelatedOrganizations],\n 1029017970: (i) => [i.EdgeStart, i.EdgeEnd, i.EdgeElement, { type: 3, value: BooleanConvert(i.Orientation.value) }],\n 2529465313: (i) => [i.ProfileType, i.ProfileName, i.Position],\n 2519244187: (i) => [i.EdgeList],\n 3021840470: (i) => [i.Name, i.Description, i.HasQuantities, i.Discrimination, i.Quality, i.Usage],\n 597895409: (i) => [{ type: 3, value: BooleanConvert(i.RepeatS.value) }, { type: 3, value: BooleanConvert(i.RepeatT.value) }, i.Mode, i.TextureTransform, i.Parameter, i.Width, i.Height, i.ColourComponents, i.Pixel],\n 2004835150: (i) => [i.Location],\n 1663979128: (i) => [i.SizeInX, i.SizeInY],\n 2067069095: (_) => [],\n 4022376103: (i) => [i.BasisCurve, i.PointParameter],\n 1423911732: (i) => [i.BasisSurface, i.PointParameterU, i.PointParameterV],\n 2924175390: (i) => [i.Polygon],\n 2775532180: (i) => [i.BaseSurface, { type: 3, value: BooleanConvert(i.AgreementFlag.value) }, i.Position, i.PolygonalBoundary],\n 3727388367: (i) => [i.Name],\n 3778827333: (_) => [],\n 1775413392: (i) => [i.Name],\n 673634403: (i) => [i.Name, i.Description, i.Representations],\n 2802850158: (i) => [i.Name, i.Description, i.Properties, i.ProfileDefinition],\n 2598011224: (i) => [i.Name, i.Description],\n 1680319473: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 148025276: (i) => [i.Name, i.Description, i.DependingProperty, i.DependantProperty, i.Expression],\n 3357820518: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 1482703590: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 2090586900: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 3615266464: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim],\n 3413951693: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.TimeStep, i.Values],\n 1580146022: (i) => [i.TotalCrossSectionArea, i.SteelGrade, i.BarSurface, i.EffectiveDepth, i.NominalBarDiameter, i.BarCount],\n 478536968: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 2943643501: (i) => [i.Name, i.Description, i.RelatedResourceObjects, i.RelatingApproval],\n 1608871552: (i) => [i.Name, i.Description, i.RelatingConstraint, i.RelatedResourceObjects],\n 1042787934: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.ScheduleWork, i.ScheduleUsage, i.ScheduleStart, i.ScheduleFinish, i.ScheduleContour, i.LevelingDelay, i.IsOverAllocated == null ? null : { type: 3, value: BooleanConvert(i.IsOverAllocated.value) }, i.StatusTime, i.ActualWork, i.ActualUsage, i.ActualStart, i.ActualFinish, i.RemainingWork, i.RemainingUsage, i.Completion],\n 2778083089: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.RoundingRadius],\n 2042790032: (i) => [i.SectionType, i.StartProfile, i.EndProfile],\n 4165799628: (i) => [i.LongitudinalStartPosition, i.LongitudinalEndPosition, i.TransversePosition, i.ReinforcementRole, i.SectionDefinition, i.CrossSectionReinforcementDefinitions],\n 1509187699: (i) => [i.SpineCurve, i.CrossSections, i.CrossSectionPositions],\n 4124623270: (i) => [i.SbsmBoundary],\n 3692461612: (i) => [i.Name, i.Description],\n 2609359061: (i) => [i.Name, i.SlippageX, i.SlippageY, i.SlippageZ],\n 723233188: (_) => [],\n 1595516126: (i) => [i.Name, i.LinearForceX, i.LinearForceY, i.LinearForceZ, i.LinearMomentX, i.LinearMomentY, i.LinearMomentZ],\n 2668620305: (i) => [i.Name, i.PlanarForceX, i.PlanarForceY, i.PlanarForceZ],\n 2473145415: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ],\n 1973038258: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ, i.Distortion],\n 1597423693: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ],\n 1190533807: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ, i.WarpingMoment],\n 2233826070: (i) => [i.EdgeStart, i.EdgeEnd, i.ParentEdge],\n 2513912981: (_) => [],\n 1878645084: (i) => [i.SurfaceColour, i.Transparency, i.DiffuseColour, i.TransmissionColour, i.DiffuseTransmissionColour, i.ReflectionColour, i.SpecularColour, !i.SpecularHighlight ? null : Labelise(i.SpecularHighlight), i.ReflectanceMethod],\n 2247615214: (i) => [i.SweptArea, i.Position],\n 1260650574: (i) => [i.Directrix, i.Radius, i.InnerRadius, i.StartParam, i.EndParam],\n 1096409881: (i) => [i.Directrix, i.Radius, i.InnerRadius, i.StartParam, i.EndParam, i.FilletRadius],\n 230924584: (i) => [i.SweptCurve, i.Position],\n 3071757647: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.FlangeEdgeRadius, i.WebEdgeRadius, i.WebSlope, i.FlangeSlope],\n 901063453: (_) => [],\n 4282788508: (i) => [i.Literal, i.Placement, i.Path],\n 3124975700: (i) => [i.Literal, i.Placement, i.Path, i.Extent, i.BoxAlignment],\n 1983826977: (i) => [i.Name, i.FontFamily, i.FontStyle, i.FontVariant, i.FontWeight, Labelise(i.FontSize)],\n 2715220739: (i) => [i.ProfileType, i.ProfileName, i.Position, i.BottomXDim, i.TopXDim, i.YDim, i.TopXOffset],\n 1628702193: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets],\n 3736923433: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType],\n 2347495698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag],\n 3698973494: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType],\n 427810014: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius, i.FlangeSlope],\n 1417489154: (i) => [i.Orientation, i.Magnitude],\n 2759199220: (i) => [i.LoopVertex],\n 1299126871: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ConstructionType, i.OperationType, { type: 3, value: BooleanConvert(i.ParameterTakesPrecedence.value) }, { type: 3, value: BooleanConvert(i.Sizeable.value) }],\n 2543172580: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius],\n 3406155212: (i) => [i.Bounds, i.FaceSurface, { type: 3, value: BooleanConvert(i.SameSense.value) }],\n 669184980: (i) => [i.OuterBoundary, i.InnerBoundaries],\n 3207858831: (i) => [i.ProfileType, i.ProfileName, i.Position, i.BottomFlangeWidth, i.OverallDepth, i.WebThickness, i.BottomFlangeThickness, i.BottomFlangeFilletRadius, i.TopFlangeWidth, i.TopFlangeThickness, i.TopFlangeFilletRadius, i.BottomFlangeEdgeRadius, i.BottomFlangeSlope, i.TopFlangeEdgeRadius, i.TopFlangeSlope],\n 4261334040: (i) => [i.Location, i.Axis],\n 3125803723: (i) => [i.Location, i.RefDirection],\n 2740243338: (i) => [i.Location, i.Axis, i.RefDirection],\n 2736907675: (i) => [i.Operator, i.FirstOperand, i.SecondOperand],\n 4182860854: (_) => [],\n 2581212453: (i) => [i.Corner, i.XDim, i.YDim, i.ZDim],\n 2713105998: (i) => [i.BaseSurface, { type: 3, value: BooleanConvert(i.AgreementFlag.value) }, i.Enclosure],\n 2898889636: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.WallThickness, i.Girth, i.InternalFilletRadius],\n 1123145078: (i) => [i.Coordinates],\n 574549367: (_) => [],\n 1675464909: (i) => [i.CoordList],\n 2059837836: (i) => [i.CoordList],\n 59481748: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale],\n 3749851601: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale],\n 3486308946: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Scale2],\n 3331915920: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3],\n 1416205885: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3, i.Scale2, i.Scale3],\n 1383045692: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius],\n 2205249479: (i) => [i.CfsFaces],\n 776857604: (i) => [i.Name, i.Red, i.Green, i.Blue],\n 2542286263: (i) => [i.Name, i.Description, i.UsageName, i.HasProperties],\n 2485617015: (i) => [i.Transition, { type: 3, value: BooleanConvert(i.SameSense.value) }, i.ParentCurve],\n 2574617495: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity],\n 3419103109: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext],\n 1815067380: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n 2506170314: (i) => [i.Position],\n 2147822146: (i) => [i.TreeRootExpression],\n 2601014836: (_) => [],\n 2827736869: (i) => [i.BasisSurface, i.OuterBoundary, i.InnerBoundaries],\n 2629017746: (i) => [i.BasisSurface, i.Boundaries, { type: 3, value: BooleanConvert(i.ImplicitOuter.value) }],\n 32440307: (i) => [i.DirectionRatios],\n 526551008: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.OperationType, i.ConstructionType, { type: 3, value: BooleanConvert(i.ParameterTakesPrecedence.value) }, { type: 3, value: BooleanConvert(i.Sizeable.value) }],\n 1472233963: (i) => [i.EdgeList],\n 1883228015: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.MethodOfMeasurement, i.Quantities],\n 339256511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 2777663545: (i) => [i.Position],\n 2835456948: (i) => [i.ProfileType, i.ProfileName, i.Position, i.SemiAxis1, i.SemiAxis2],\n 4024345920: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType, i.EventTriggerType, i.UserDefinedEventTriggerType],\n 477187591: (i) => [i.SweptArea, i.Position, i.ExtrudedDirection, i.Depth],\n 2804161546: (i) => [i.SweptArea, i.Position, i.ExtrudedDirection, i.Depth, i.EndSweptArea],\n 2047409740: (i) => [i.FbsmFaces],\n 374418227: (i) => [i.HatchLineAppearance, i.StartOfNextHatchLine, i.PointOfReferenceHatchLine, i.PatternStart, i.HatchLineAngle],\n 315944413: (i) => [i.TilingPattern, i.Tiles, i.TilingScale],\n 2652556860: (i) => [i.SweptArea, i.Position, i.Directrix, i.StartParam, i.EndParam, i.FixedReference],\n 4238390223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 1268542332: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.AssemblyPlace, i.PredefinedType],\n 4095422895: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 987898635: (i) => [i.Elements],\n 1484403080: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallWidth, i.OverallDepth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.FlangeEdgeRadius, i.FlangeSlope],\n 178912537: (i) => [i.CoordIndex],\n 2294589976: (i) => [i.CoordIndex, i.InnerCoordIndices],\n 572779678: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.Thickness, i.FilletRadius, i.EdgeRadius, i.LegSlope],\n 428585644: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n 1281925730: (i) => [i.Pnt, i.Dir],\n 1425443689: (i) => [i.Outer],\n 3888040117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n 3388369263: (i) => [i.BasisCurve, i.Distance, { type: 3, value: BooleanConvert(i.SelfIntersect.value) }],\n 3505215534: (i) => [i.BasisCurve, i.Distance, { type: 3, value: BooleanConvert(i.SelfIntersect.value) }, i.RefDirection],\n 1682466193: (i) => [i.BasisSurface, i.ReferenceCurve],\n 603570806: (i) => [i.SizeInX, i.SizeInY, i.Placement],\n 220341763: (i) => [i.Position],\n 759155922: (i) => [i.Name],\n 2559016684: (i) => [i.Name],\n 3967405729: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 569719735: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType],\n 2945172077: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription],\n 4208778838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n 103090709: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext],\n 653396225: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext],\n 871118103: (i) => [i.Name, i.Description, !i.UpperBoundValue ? null : Labelise(i.UpperBoundValue), !i.LowerBoundValue ? null : Labelise(i.LowerBoundValue), i.Unit, !i.SetPointValue ? null : Labelise(i.SetPointValue)],\n 4166981789: (i) => [i.Name, i.Description, !i.EnumerationValues ? null : i.EnumerationValues.map((p) => Labelise(p)), i.EnumerationReference],\n 2752243245: (i) => [i.Name, i.Description, !i.ListValues ? null : i.ListValues.map((p) => Labelise(p)), i.Unit],\n 941946838: (i) => [i.Name, i.Description, i.UsageName, i.PropertyReference],\n 1451395588: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.HasProperties],\n 492091185: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.TemplateType, i.ApplicableEntity, i.HasPropertyTemplates],\n 3650150729: (i) => [i.Name, i.Description, !i.NominalValue ? null : Labelise(i.NominalValue), i.Unit],\n 110355661: (i) => [i.Name, i.Description, !i.DefiningValues ? null : i.DefiningValues.map((p) => Labelise(p)), !i.DefinedValues ? null : i.DefinedValues.map((p) => Labelise(p)), i.Expression, i.DefiningUnit, i.DefinedUnit, i.CurveInterpolation],\n 3521284610: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 3219374653: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.ProxyType, i.Tag],\n 2770003689: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.WallThickness, i.InnerFilletRadius, i.OuterFilletRadius],\n 2798486643: (i) => [i.Position, i.XLength, i.YLength, i.Height],\n 3454111270: (i) => [i.BasisSurface, i.U1, i.V1, i.U2, i.V2, { type: 3, value: BooleanConvert(i.Usense.value) }, { type: 3, value: BooleanConvert(i.Vsense.value) }],\n 3765753017: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.DefinitionType, i.ReinforcementSectionDefinitions],\n 3939117080: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType],\n 1683148259: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingActor, i.ActingRole],\n 2495723537: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl],\n 1307041759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingGroup],\n 1027710054: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingGroup, i.Factor],\n 4278684876: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProcess, i.QuantityInProcess],\n 2857406711: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProduct],\n 205026976: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingResource],\n 1865459582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects],\n 4095574036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingApproval],\n 919958153: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingClassification],\n 2728634034: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.Intent, i.RelatingConstraint],\n 982818633: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingDocument],\n 3840914261: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingLibrary],\n 2655215786: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingMaterial],\n 826625072: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 1204542856: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement],\n 3945020480: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RelatingPriorities, i.RelatedPriorities, i.RelatedConnectionType, i.RelatingConnectionType],\n 4201705270: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedElement],\n 3190031847: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedPort, i.RealizingElement],\n 2127690289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedStructuralActivity],\n 1638771189: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem],\n 504942748: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem, i.ConnectionConstraint],\n 3678494232: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RealizingElements, i.ConnectionType],\n 3242617779: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure],\n 886880790: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedCoverings],\n 2802773753: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedCoverings],\n 2565941209: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingContext, i.RelatedDefinitions],\n 2551354335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 693640335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 1462361463: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingObject],\n 4186316022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingPropertyDefinition],\n 307848117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedPropertySets, i.RelatingTemplate],\n 781010003: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingType],\n 3940055652: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingOpeningElement, i.RelatedBuildingElement],\n 279856033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedControlElements, i.RelatingFlowElement],\n 427948657: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedElement, i.InterferenceGeometry, i.InterferenceType, i.ImpliedOrder],\n 3268803585: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects],\n 750771296: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedFeatureElement],\n 1245217292: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure],\n 4122056220: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingProcess, i.RelatedProcess, i.TimeLag, i.SequenceType, i.UserDefinedSequenceType],\n 366585022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSystem, i.RelatedBuildings],\n 3451746338: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary],\n 3523091289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary, i.ParentBoundary],\n 1521410863: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary, i.ParentBoundary, i.CorrespondingBoundary],\n 1401173127: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedOpeningElement],\n 816062949: (i) => [i.Transition, { type: 3, value: BooleanConvert(i.SameSense.value) }, i.ParentCurve, i.ParamLength],\n 2914609552: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription],\n 1856042241: (i) => [i.SweptArea, i.Position, i.Axis, i.Angle],\n 3243963512: (i) => [i.SweptArea, i.Position, i.Axis, i.Angle, i.EndSweptArea],\n 4158566097: (i) => [i.Position, i.Height, i.BottomRadius],\n 3626867408: (i) => [i.Position, i.Height, i.Radius],\n 3663146110: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.TemplateType, i.PrimaryMeasureType, i.SecondaryMeasureType, i.Enumerators, i.PrimaryUnit, i.SecondaryUnit, i.Expression, i.AccessState],\n 1412071761: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName],\n 710998568: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 2706606064: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType],\n 3893378262: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 463610769: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.PredefinedType],\n 2481509218: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.LongName],\n 451544542: (i) => [i.Position, i.Radius],\n 4015995234: (i) => [i.Position, i.Radius],\n 3544373492: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal],\n 3136571912: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n 530289379: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n 3689010777: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal],\n 3979015343: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness],\n 2218152070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness],\n 603775116: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.PredefinedType],\n 4095615324: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n 699246055: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation],\n 2028607225: (i) => [i.SweptArea, i.Position, i.Directrix, i.StartParam, i.EndParam, i.ReferenceSurface],\n 2809605785: (i) => [i.SweptCurve, i.Position, i.ExtrudedDirection, i.Depth],\n 4124788165: (i) => [i.SweptCurve, i.Position, i.AxisPosition],\n 1580310250: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3473067441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Status, i.WorkMethod, { type: 3, value: BooleanConvert(i.IsMilestone.value) }, i.Priority, i.TaskTime, i.PredefinedType],\n 3206491090: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType, i.WorkMethod],\n 2387106220: (i) => [i.Coordinates],\n 1935646853: (i) => [i.Position, i.MajorRadius, i.MinorRadius],\n 2097647324: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2916149573: (i) => [i.Coordinates, i.Normals, i.Closed == null ? null : { type: 3, value: BooleanConvert(i.Closed.value) }, i.CoordIndex, i.PnIndex],\n 336235671: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.TransomThickness, i.MullionThickness, i.FirstTransomOffset, i.SecondTransomOffset, i.FirstMullionOffset, i.SecondMullionOffset, i.ShapeAspectStyle, i.LiningOffset, i.LiningToPanelOffsetX, i.LiningToPanelOffsetY],\n 512836454: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle],\n 2296667514: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor],\n 1635779807: (i) => [i.Outer],\n 2603310189: (i) => [i.Outer, i.Voids],\n 1674181508: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n 2887950389: (i) => [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, { type: 3, value: BooleanConvert(i.UClosed.value) }, { type: 3, value: BooleanConvert(i.VClosed.value) }, { type: 3, value: BooleanConvert(i.SelfIntersect.value) }],\n 167062518: (i) => [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, { type: 3, value: BooleanConvert(i.UClosed.value) }, { type: 3, value: BooleanConvert(i.VClosed.value) }, { type: 3, value: BooleanConvert(i.SelfIntersect.value) }, i.UMultiplicities, i.VMultiplicities, i.UKnots, i.VKnots, i.KnotSpec],\n 1334484129: (i) => [i.Position, i.XLength, i.YLength, i.ZLength],\n 3649129432: (i) => [i.Operator, i.FirstOperand, i.SecondOperand],\n 1260505505: (_) => [],\n 4031249490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.ElevationOfRefHeight, i.ElevationOfTerrain, i.BuildingAddress],\n 1950629157: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 3124254112: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.Elevation],\n 2197970202: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2937912522: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius, i.WallThickness],\n 3893394355: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 300633059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3875453745: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.UsageName, i.TemplateType, i.HasPropertyTemplates],\n 3732776249: (i) => [i.Segments, { type: 3, value: BooleanConvert(i.SelfIntersect.value) }],\n 15328376: (i) => [i.Segments, { type: 3, value: BooleanConvert(i.SelfIntersect.value) }],\n 2510884976: (i) => [i.Position],\n 2185764099: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n 4105962743: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n 1525564444: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n 2559216714: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity],\n 3293443760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification],\n 3895139033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.CostValues, i.CostQuantities],\n 1419761937: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.SubmittedOn, i.UpdateDate],\n 1916426348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3295246426: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n 1457835157: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1213902940: (i) => [i.Position, i.Radius],\n 3256556792: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 3849074793: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 2963535650: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.ThresholdDepth, i.ThresholdThickness, i.TransomThickness, i.TransomOffset, i.LiningOffset, i.ThresholdOffset, i.CasingThickness, i.CasingDepth, i.ShapeAspectStyle, i.LiningToPanelOffsetX, i.LiningToPanelOffsetY],\n 1714330368: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.PanelDepth, i.PanelOperation, i.PanelWidth, i.PanelPosition, i.ShapeAspectStyle],\n 2323601079: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.OperationType, i.ParameterTakesPrecedence == null ? null : { type: 3, value: BooleanConvert(i.ParameterTakesPrecedence.value) }, i.UserDefinedOperationType],\n 445594917: (i) => [i.Name],\n 4006246654: (i) => [i.Name],\n 1758889154: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 4123344466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.AssemblyPlace, i.PredefinedType],\n 2397081782: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1623761950: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 2590856083: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 1704287377: (i) => [i.Position, i.SemiAxis1, i.SemiAxis2],\n 2107101300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 132023988: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3174744832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3390157468: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 4148101412: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.PredefinedType, i.EventTriggerType, i.UserDefinedEventTriggerType, i.EventOccurenceTime],\n 2853485674: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName],\n 807026263: (i) => [i.Outer],\n 3737207727: (i) => [i.Outer, i.Voids],\n 647756555: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2489546625: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2827207264: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 2143335405: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 1287392070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 3907093117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 3198132628: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 3815607619: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1482959167: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 1834744321: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 1339347760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 2297155007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 3009222698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 1893162501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 263784265: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 1509553395: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3493046030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3009204131: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.UAxes, i.VAxes, i.WAxes, i.PredefinedType],\n 2706460486: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n 1251058090: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1806887404: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2571569899: (i) => [i.Points, !i.Segments ? null : i.Segments.map((p) => Labelise(p)), i.SelfIntersect == null ? null : { type: 3, value: BooleanConvert(i.SelfIntersect.value) }],\n 3946677679: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3113134337: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation],\n 2391368822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.Jurisdiction, i.ResponsiblePersons, i.LastUpdateDate, i.CurrentValue, i.OriginalValue],\n 4288270099: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3827777499: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n 1051575348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1161773419: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 377706215: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NominalDiameter, i.NominalLength, i.PredefinedType],\n 2108223431: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.NominalLength],\n 1114901282: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3181161470: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 977012517: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 4143007308: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor, i.PredefinedType],\n 3588315303: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3079942009: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2837617999: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2382730787: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LifeCyclePhase, i.PredefinedType],\n 3566463478: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle],\n 3327091369: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription],\n 1158309216: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 804291784: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 4231323485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 4017108033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2839578677: (i) => [i.Coordinates, i.Closed == null ? null : { type: 3, value: BooleanConvert(i.Closed.value) }, i.Faces, i.PnIndex],\n 3724593414: (i) => [i.Points],\n 3740093272: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n 2744685151: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.PredefinedType],\n 2904328755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription],\n 3651124850: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1842657554: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2250791053: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2893384427: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2324767716: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1469900589: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 683857671: (i) => [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, { type: 3, value: BooleanConvert(i.UClosed.value) }, { type: 3, value: BooleanConvert(i.VClosed.value) }, { type: 3, value: BooleanConvert(i.SelfIntersect.value) }, i.UMultiplicities, i.VMultiplicities, i.UKnots, i.VKnots, i.KnotSpec, i.WeightsData],\n 3027567501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade],\n 964333572: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 2320036040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.MeshLength, i.MeshWidth, i.LongitudinalBarNominalDiameter, i.TransverseBarNominalDiameter, i.LongitudinalBarCrossSectionArea, i.TransverseBarCrossSectionArea, i.LongitudinalBarSpacing, i.TransverseBarSpacing, i.PredefinedType],\n 2310774935: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.MeshLength, i.MeshWidth, i.LongitudinalBarNominalDiameter, i.TransverseBarNominalDiameter, i.LongitudinalBarCrossSectionArea, i.TransverseBarCrossSectionArea, i.LongitudinalBarSpacing, i.TransverseBarSpacing, i.BendingShapeCode, !i.BendingParameters ? null : i.BendingParameters.map((p) => Labelise(p))],\n 160246688: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects],\n 2781568857: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1768891740: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2157484638: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation],\n 4074543187: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 4097777520: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.RefLatitude, i.RefLongitude, i.RefElevation, i.LandTitleNumber, i.SiteAddress],\n 2533589738: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1072016465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3856911033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType, i.ElevationWithFlooring],\n 1305183839: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3812236995: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.LongName],\n 3112655638: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1039846685: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 338393293: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 682877961: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad == null ? null : { type: 3, value: BooleanConvert(i.DestabilizingLoad.value) }],\n 1179482911: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition],\n 1004757350: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad == null ? null : { type: 3, value: BooleanConvert(i.DestabilizingLoad.value) }, i.ProjectedOrTrue, i.PredefinedType],\n 4243806635: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition, i.Axis],\n 214636428: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Axis],\n 2445595289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Axis],\n 2757150158: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.PredefinedType],\n 1807405624: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad == null ? null : { type: 3, value: BooleanConvert(i.DestabilizingLoad.value) }, i.ProjectedOrTrue, i.PredefinedType],\n 1252848954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.ActionType, i.ActionSource, i.Coefficient, i.Purpose],\n 2082059205: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad == null ? null : { type: 3, value: BooleanConvert(i.DestabilizingLoad.value) }],\n 734778138: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition, i.ConditionCoordinateSystem],\n 1235345126: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal],\n 2986769608: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheoryType, i.ResultForLoadGroup, { type: 3, value: BooleanConvert(i.IsLinear.value) }],\n 3657597509: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad == null ? null : { type: 3, value: BooleanConvert(i.DestabilizingLoad.value) }, i.ProjectedOrTrue, i.PredefinedType],\n 1975003073: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition],\n 148013059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n 3101698114: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2315554128: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2254336722: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n 413509423: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 5716631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3824725483: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.TensionForce, i.PreStress, i.FrictionCoefficient, i.AnchorageSlip, i.MinCurvatureRadius],\n 2347447852: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType],\n 3081323446: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2415094496: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.SheathDiameter],\n 1692211062: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1620046519: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3593883385: (i) => [i.BasisCurve, i.Trim1, i.Trim2, { type: 3, value: BooleanConvert(i.SenseAgreement.value) }, i.MasterRepresentation],\n 1600972822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1911125066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 728799441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2391383451: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3313531582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2769231204: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 926996030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1898987631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1133259667: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 4009809668: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.PartitioningType, i.ParameterTakesPrecedence == null ? null : { type: 3, value: BooleanConvert(i.ParameterTakesPrecedence.value) }, i.UserDefinedPartitioningType],\n 4088093105: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.WorkingTimes, i.ExceptionTimes, i.PredefinedType],\n 1028945134: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime],\n 4218914973: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.PredefinedType],\n 3342526732: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.PredefinedType],\n 1033361043: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName],\n 3821786052: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription],\n 1411407467: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3352864051: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1871374353: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3460190687: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.OriginalValue, i.CurrentValue, i.TotalReplacementCost, i.Owner, i.User, i.ResponsiblePerson, i.IncorporationDate, i.DepreciatedValue],\n 1532957894: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1967976161: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, { type: 3, value: BooleanConvert(i.ClosedCurve.value) }, { type: 3, value: BooleanConvert(i.SelfIntersect.value) }],\n 2461110595: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, { type: 3, value: BooleanConvert(i.ClosedCurve.value) }, { type: 3, value: BooleanConvert(i.SelfIntersect.value) }, i.KnotMultiplicities, i.Knots, i.KnotSpec],\n 819618141: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 231477066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1136057603: (i) => [i.Segments, { type: 3, value: BooleanConvert(i.SelfIntersect.value) }],\n 3299480353: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 2979338954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 39481116: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1095909175: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1909888760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1177604601: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.LongName],\n 2188180465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 395041908: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3293546465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2674252688: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1285652485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2951183804: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3296154744: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2611217952: (i) => [i.Position, i.Radius],\n 1677625105: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 2301859152: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 843113511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 905975707: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 400855858: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3850581409: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2816379211: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3898045240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n 1060000209: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n 488727124: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n 335055490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2954562838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1973544240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3495092785: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3961806047: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1335981549: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2635815018: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1599208980: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2063403501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 1945004755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 3040386961: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 3041715199: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.FlowDirection, i.PredefinedType, i.SystemType],\n 3205830791: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.PredefinedType],\n 395920057: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.OperationType, i.UserDefinedOperationType],\n 3242481149: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.OperationType, i.UserDefinedOperationType],\n 869906466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3760055223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2030761528: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 663422040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2417008758: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3277789161: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1534661035: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1217240411: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 712377611: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1658829314: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 2814081492: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3747195512: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 484807127: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1209101575: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.PredefinedType],\n 346874300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1810631287: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 4222183408: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2058353004: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 4278956645: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 4037862832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2188021234: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3132237377: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 987401354: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 707683696: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 2223149337: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 3508470533: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 900683007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3319311131: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2068733104: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 4175244083: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2176052936: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 76236018: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 629592764: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1437502449: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1073191201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1911478936: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2474470126: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 144952367: (i) => [i.Segments, { type: 3, value: BooleanConvert(i.SelfIntersect.value) }],\n 3694346114: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1687234759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType, i.ConstructionType],\n 310824031: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3612865200: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3171933400: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1156407060: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 738039164: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 655969474: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 90941305: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2262370178: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3024970846: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3283111854: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1232101972: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, { type: 3, value: BooleanConvert(i.ClosedCurve.value) }, { type: 3, value: BooleanConvert(i.SelfIntersect.value) }, i.KnotMultiplicities, i.Knots, i.KnotSpec, i.WeightsData],\n 979691226: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.NominalDiameter, i.CrossSectionArea, i.BarLength, i.PredefinedType, i.BarSurface],\n 2572171363: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.BarLength, i.BarSurface, i.BendingShapeCode, !i.BendingParameters ? null : i.BendingParameters.map((p) => Labelise(p))],\n 2016517767: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3053780830: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1783015770: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1329646415: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1529196076: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3127900445: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3027962421: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3420628829: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1999602285: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1404847402: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 331165859: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 4252922144: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NumberOfRisers, i.NumberOfTreads, i.RiserHeight, i.TreadLength, i.PredefinedType],\n 2515109513: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.OrientationOf2DPlane, i.LoadedBy, i.HasResults, i.SharedPlacement],\n 385403989: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.ActionType, i.ActionSource, i.Coefficient, i.Purpose, i.SelfWeightCoefficients],\n 1621171031: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad == null ? null : { type: 3, value: BooleanConvert(i.DestabilizingLoad.value) }, i.ProjectedOrTrue, i.PredefinedType],\n 1162798199: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 812556717: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3825984169: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3026737570: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3179687236: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 4292641817: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 4207607924: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2391406946: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 4156078855: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3512223829: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 4237592921: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3304561284: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.PartitioningType, i.UserDefinedPartitioningType],\n 486154966: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.PartitioningType, i.UserDefinedPartitioningType],\n 2874132201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1634111441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 177149247: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2056796094: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3001207471: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 277319702: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 753842376: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2906023776: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 32344328: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2938176219: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 635142910: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3758799889: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1051757585: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 4217484030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3902619387: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 639361253: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3221913625: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3571504051: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2272882330: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 578613899: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 4136498852: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3640358203: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 4074379575: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1052013943: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 562808652: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.PredefinedType],\n 1062813311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 342316401: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3518393246: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1360408905: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1904799276: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 862014818: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3310460725: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 264262732: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 402227799: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1003880860: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3415622556: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 819412036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1426591983: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 182646315: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2295281155: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 4086658281: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 630975310: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 4288193352: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3087945054: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 25142252: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType]\n};\nTypeInitialisers[2] = {\n 3699917729: (v) => new IFC4.IfcAbsorbedDoseMeasure(v),\n 4182062534: (v) => new IFC4.IfcAccelerationMeasure(v),\n 360377573: (v) => new IFC4.IfcAmountOfSubstanceMeasure(v),\n 632304761: (v) => new IFC4.IfcAngularVelocityMeasure(v),\n 3683503648: (v) => new IFC4.IfcArcIndex(v.map((x) => x.value)),\n 1500781891: (v) => new IFC4.IfcAreaDensityMeasure(v),\n 2650437152: (v) => new IFC4.IfcAreaMeasure(v),\n 2314439260: (v) => new IFC4.IfcBinary(v),\n 2735952531: (v) => new IFC4.IfcBoolean(v),\n 1867003952: (v) => new IFC4.IfcBoxAlignment(v),\n 1683019596: (v) => new IFC4.IfcCardinalPointReference(v),\n 2991860651: (v) => new IFC4.IfcComplexNumber(v.map((x) => x.value)),\n 3812528620: (v) => new IFC4.IfcCompoundPlaneAngleMeasure(v.map((x) => x.value)),\n 3238673880: (v) => new IFC4.IfcContextDependentMeasure(v),\n 1778710042: (v) => new IFC4.IfcCountMeasure(v),\n 94842927: (v) => new IFC4.IfcCurvatureMeasure(v),\n 937566702: (v) => new IFC4.IfcDate(v),\n 2195413836: (v) => new IFC4.IfcDateTime(v),\n 86635668: (v) => new IFC4.IfcDayInMonthNumber(v),\n 3701338814: (v) => new IFC4.IfcDayInWeekNumber(v),\n 1514641115: (v) => new IFC4.IfcDescriptiveMeasure(v),\n 4134073009: (v) => new IFC4.IfcDimensionCount(v),\n 524656162: (v) => new IFC4.IfcDoseEquivalentMeasure(v),\n 2541165894: (v) => new IFC4.IfcDuration(v),\n 69416015: (v) => new IFC4.IfcDynamicViscosityMeasure(v),\n 1827137117: (v) => new IFC4.IfcElectricCapacitanceMeasure(v),\n 3818826038: (v) => new IFC4.IfcElectricChargeMeasure(v),\n 2093906313: (v) => new IFC4.IfcElectricConductanceMeasure(v),\n 3790457270: (v) => new IFC4.IfcElectricCurrentMeasure(v),\n 2951915441: (v) => new IFC4.IfcElectricResistanceMeasure(v),\n 2506197118: (v) => new IFC4.IfcElectricVoltageMeasure(v),\n 2078135608: (v) => new IFC4.IfcEnergyMeasure(v),\n 1102727119: (v) => new IFC4.IfcFontStyle(v),\n 2715512545: (v) => new IFC4.IfcFontVariant(v),\n 2590844177: (v) => new IFC4.IfcFontWeight(v),\n 1361398929: (v) => new IFC4.IfcForceMeasure(v),\n 3044325142: (v) => new IFC4.IfcFrequencyMeasure(v),\n 3064340077: (v) => new IFC4.IfcGloballyUniqueId(v),\n 3113092358: (v) => new IFC4.IfcHeatFluxDensityMeasure(v),\n 1158859006: (v) => new IFC4.IfcHeatingValueMeasure(v),\n 983778844: (v) => new IFC4.IfcIdentifier(v),\n 3358199106: (v) => new IFC4.IfcIlluminanceMeasure(v),\n 2679005408: (v) => new IFC4.IfcInductanceMeasure(v),\n 1939436016: (v) => new IFC4.IfcInteger(v),\n 3809634241: (v) => new IFC4.IfcIntegerCountRateMeasure(v),\n 3686016028: (v) => new IFC4.IfcIonConcentrationMeasure(v),\n 3192672207: (v) => new IFC4.IfcIsothermalMoistureCapacityMeasure(v),\n 2054016361: (v) => new IFC4.IfcKinematicViscosityMeasure(v),\n 3258342251: (v) => new IFC4.IfcLabel(v),\n 1275358634: (v) => new IFC4.IfcLanguageId(v),\n 1243674935: (v) => new IFC4.IfcLengthMeasure(v),\n 1774176899: (v) => new IFC4.IfcLineIndex(v.map((x) => x.value)),\n 191860431: (v) => new IFC4.IfcLinearForceMeasure(v),\n 2128979029: (v) => new IFC4.IfcLinearMomentMeasure(v),\n 1307019551: (v) => new IFC4.IfcLinearStiffnessMeasure(v),\n 3086160713: (v) => new IFC4.IfcLinearVelocityMeasure(v),\n 503418787: (v) => new IFC4.IfcLogical(v),\n 2095003142: (v) => new IFC4.IfcLuminousFluxMeasure(v),\n 2755797622: (v) => new IFC4.IfcLuminousIntensityDistributionMeasure(v),\n 151039812: (v) => new IFC4.IfcLuminousIntensityMeasure(v),\n 286949696: (v) => new IFC4.IfcMagneticFluxDensityMeasure(v),\n 2486716878: (v) => new IFC4.IfcMagneticFluxMeasure(v),\n 1477762836: (v) => new IFC4.IfcMassDensityMeasure(v),\n 4017473158: (v) => new IFC4.IfcMassFlowRateMeasure(v),\n 3124614049: (v) => new IFC4.IfcMassMeasure(v),\n 3531705166: (v) => new IFC4.IfcMassPerLengthMeasure(v),\n 3341486342: (v) => new IFC4.IfcModulusOfElasticityMeasure(v),\n 2173214787: (v) => new IFC4.IfcModulusOfLinearSubgradeReactionMeasure(v),\n 1052454078: (v) => new IFC4.IfcModulusOfRotationalSubgradeReactionMeasure(v),\n 1753493141: (v) => new IFC4.IfcModulusOfSubgradeReactionMeasure(v),\n 3177669450: (v) => new IFC4.IfcMoistureDiffusivityMeasure(v),\n 1648970520: (v) => new IFC4.IfcMolecularWeightMeasure(v),\n 3114022597: (v) => new IFC4.IfcMomentOfInertiaMeasure(v),\n 2615040989: (v) => new IFC4.IfcMonetaryMeasure(v),\n 765770214: (v) => new IFC4.IfcMonthInYearNumber(v),\n 525895558: (v) => new IFC4.IfcNonNegativeLengthMeasure(v),\n 2095195183: (v) => new IFC4.IfcNormalisedRatioMeasure(v),\n 2395907400: (v) => new IFC4.IfcNumericMeasure(v),\n 929793134: (v) => new IFC4.IfcPHMeasure(v),\n 2260317790: (v) => new IFC4.IfcParameterValue(v),\n 2642773653: (v) => new IFC4.IfcPlanarForceMeasure(v),\n 4042175685: (v) => new IFC4.IfcPlaneAngleMeasure(v),\n 1790229001: (v) => new IFC4.IfcPositiveInteger(v),\n 2815919920: (v) => new IFC4.IfcPositiveLengthMeasure(v),\n 3054510233: (v) => new IFC4.IfcPositivePlaneAngleMeasure(v),\n 1245737093: (v) => new IFC4.IfcPositiveRatioMeasure(v),\n 1364037233: (v) => new IFC4.IfcPowerMeasure(v),\n 2169031380: (v) => new IFC4.IfcPresentableText(v),\n 3665567075: (v) => new IFC4.IfcPressureMeasure(v),\n 2798247006: (v) => new IFC4.IfcPropertySetDefinitionSet(v.map((x) => x.value)),\n 3972513137: (v) => new IFC4.IfcRadioActivityMeasure(v),\n 96294661: (v) => new IFC4.IfcRatioMeasure(v),\n 200335297: (v) => new IFC4.IfcReal(v),\n 2133746277: (v) => new IFC4.IfcRotationalFrequencyMeasure(v),\n 1755127002: (v) => new IFC4.IfcRotationalMassMeasure(v),\n 3211557302: (v) => new IFC4.IfcRotationalStiffnessMeasure(v),\n 3467162246: (v) => new IFC4.IfcSectionModulusMeasure(v),\n 2190458107: (v) => new IFC4.IfcSectionalAreaIntegralMeasure(v),\n 408310005: (v) => new IFC4.IfcShearModulusMeasure(v),\n 3471399674: (v) => new IFC4.IfcSolidAngleMeasure(v),\n 4157543285: (v) => new IFC4.IfcSoundPowerLevelMeasure(v),\n 846465480: (v) => new IFC4.IfcSoundPowerMeasure(v),\n 3457685358: (v) => new IFC4.IfcSoundPressureLevelMeasure(v),\n 993287707: (v) => new IFC4.IfcSoundPressureMeasure(v),\n 3477203348: (v) => new IFC4.IfcSpecificHeatCapacityMeasure(v),\n 2757832317: (v) => new IFC4.IfcSpecularExponent(v),\n 361837227: (v) => new IFC4.IfcSpecularRoughness(v),\n 58845555: (v) => new IFC4.IfcTemperatureGradientMeasure(v),\n 1209108979: (v) => new IFC4.IfcTemperatureRateOfChangeMeasure(v),\n 2801250643: (v) => new IFC4.IfcText(v),\n 1460886941: (v) => new IFC4.IfcTextAlignment(v),\n 3490877962: (v) => new IFC4.IfcTextDecoration(v),\n 603696268: (v) => new IFC4.IfcTextFontName(v),\n 296282323: (v) => new IFC4.IfcTextTransformation(v),\n 232962298: (v) => new IFC4.IfcThermalAdmittanceMeasure(v),\n 2645777649: (v) => new IFC4.IfcThermalConductivityMeasure(v),\n 2281867870: (v) => new IFC4.IfcThermalExpansionCoefficientMeasure(v),\n 857959152: (v) => new IFC4.IfcThermalResistanceMeasure(v),\n 2016195849: (v) => new IFC4.IfcThermalTransmittanceMeasure(v),\n 743184107: (v) => new IFC4.IfcThermodynamicTemperatureMeasure(v),\n 4075327185: (v) => new IFC4.IfcTime(v),\n 2726807636: (v) => new IFC4.IfcTimeMeasure(v),\n 2591213694: (v) => new IFC4.IfcTimeStamp(v),\n 1278329552: (v) => new IFC4.IfcTorqueMeasure(v),\n 950732822: (v) => new IFC4.IfcURIReference(v),\n 3345633955: (v) => new IFC4.IfcVaporPermeabilityMeasure(v),\n 3458127941: (v) => new IFC4.IfcVolumeMeasure(v),\n 2593997549: (v) => new IFC4.IfcVolumetricFlowRateMeasure(v),\n 51269191: (v) => new IFC4.IfcWarpingConstantMeasure(v),\n 1718600412: (v) => new IFC4.IfcWarpingMomentMeasure(v)\n};\nvar IFC4;\n(function(IFC42) {\n class IfcAbsorbedDoseMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCABSORBEDDOSEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcAbsorbedDoseMeasure = IfcAbsorbedDoseMeasure;\n class IfcAccelerationMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCACCELERATIONMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcAccelerationMeasure = IfcAccelerationMeasure;\n class IfcAmountOfSubstanceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCAMOUNTOFSUBSTANCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcAmountOfSubstanceMeasure = IfcAmountOfSubstanceMeasure;\n class IfcAngularVelocityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCANGULARVELOCITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcAngularVelocityMeasure = IfcAngularVelocityMeasure;\n class IfcArcIndex {\n constructor(value) {\n this.value = value;\n this.type = 5;\n }\n }\n IFC42.IfcArcIndex = IfcArcIndex;\n ;\n class IfcAreaDensityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCAREADENSITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcAreaDensityMeasure = IfcAreaDensityMeasure;\n class IfcAreaMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCAREAMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcAreaMeasure = IfcAreaMeasure;\n class IfcBinary {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCBINARY\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcBinary = IfcBinary;\n class IfcBoolean {\n constructor(v) {\n this.type = 3;\n this.name = \"IFCBOOLEAN\";\n this.value = v === null ? v : v == \"T\" ? true : false;\n }\n }\n IFC42.IfcBoolean = IfcBoolean;\n class IfcBoxAlignment {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCBOXALIGNMENT\";\n }\n }\n IFC42.IfcBoxAlignment = IfcBoxAlignment;\n class IfcCardinalPointReference {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCCARDINALPOINTREFERENCE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcCardinalPointReference = IfcCardinalPointReference;\n class IfcComplexNumber {\n constructor(value) {\n this.value = value;\n this.type = 4;\n }\n }\n IFC42.IfcComplexNumber = IfcComplexNumber;\n ;\n class IfcCompoundPlaneAngleMeasure {\n constructor(value) {\n this.value = value;\n this.type = 10;\n }\n }\n IFC42.IfcCompoundPlaneAngleMeasure = IfcCompoundPlaneAngleMeasure;\n ;\n class IfcContextDependentMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCCONTEXTDEPENDENTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcContextDependentMeasure = IfcContextDependentMeasure;\n class IfcCountMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCCOUNTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcCountMeasure = IfcCountMeasure;\n class IfcCurvatureMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCCURVATUREMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcCurvatureMeasure = IfcCurvatureMeasure;\n class IfcDate {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCDATE\";\n }\n }\n IFC42.IfcDate = IfcDate;\n class IfcDateTime {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCDATETIME\";\n }\n }\n IFC42.IfcDateTime = IfcDateTime;\n class IfcDayInMonthNumber {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCDAYINMONTHNUMBER\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcDayInMonthNumber = IfcDayInMonthNumber;\n class IfcDayInWeekNumber {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCDAYINWEEKNUMBER\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcDayInWeekNumber = IfcDayInWeekNumber;\n class IfcDescriptiveMeasure {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCDESCRIPTIVEMEASURE\";\n }\n }\n IFC42.IfcDescriptiveMeasure = IfcDescriptiveMeasure;\n class IfcDimensionCount {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCDIMENSIONCOUNT\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcDimensionCount = IfcDimensionCount;\n class IfcDoseEquivalentMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCDOSEEQUIVALENTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcDoseEquivalentMeasure = IfcDoseEquivalentMeasure;\n class IfcDuration {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCDURATION\";\n }\n }\n IFC42.IfcDuration = IfcDuration;\n class IfcDynamicViscosityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCDYNAMICVISCOSITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcDynamicViscosityMeasure = IfcDynamicViscosityMeasure;\n class IfcElectricCapacitanceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCELECTRICCAPACITANCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcElectricCapacitanceMeasure = IfcElectricCapacitanceMeasure;\n class IfcElectricChargeMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCELECTRICCHARGEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcElectricChargeMeasure = IfcElectricChargeMeasure;\n class IfcElectricConductanceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCELECTRICCONDUCTANCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcElectricConductanceMeasure = IfcElectricConductanceMeasure;\n class IfcElectricCurrentMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCELECTRICCURRENTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcElectricCurrentMeasure = IfcElectricCurrentMeasure;\n class IfcElectricResistanceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCELECTRICRESISTANCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcElectricResistanceMeasure = IfcElectricResistanceMeasure;\n class IfcElectricVoltageMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCELECTRICVOLTAGEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcElectricVoltageMeasure = IfcElectricVoltageMeasure;\n class IfcEnergyMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCENERGYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcEnergyMeasure = IfcEnergyMeasure;\n class IfcFontStyle {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCFONTSTYLE\";\n }\n }\n IFC42.IfcFontStyle = IfcFontStyle;\n class IfcFontVariant {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCFONTVARIANT\";\n }\n }\n IFC42.IfcFontVariant = IfcFontVariant;\n class IfcFontWeight {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCFONTWEIGHT\";\n }\n }\n IFC42.IfcFontWeight = IfcFontWeight;\n class IfcForceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCFORCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcForceMeasure = IfcForceMeasure;\n class IfcFrequencyMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCFREQUENCYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcFrequencyMeasure = IfcFrequencyMeasure;\n class IfcGloballyUniqueId {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCGLOBALLYUNIQUEID\";\n }\n }\n IFC42.IfcGloballyUniqueId = IfcGloballyUniqueId;\n class IfcHeatFluxDensityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCHEATFLUXDENSITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcHeatFluxDensityMeasure = IfcHeatFluxDensityMeasure;\n class IfcHeatingValueMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCHEATINGVALUEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcHeatingValueMeasure = IfcHeatingValueMeasure;\n class IfcIdentifier {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCIDENTIFIER\";\n }\n }\n IFC42.IfcIdentifier = IfcIdentifier;\n class IfcIlluminanceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCILLUMINANCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcIlluminanceMeasure = IfcIlluminanceMeasure;\n class IfcInductanceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCINDUCTANCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcInductanceMeasure = IfcInductanceMeasure;\n class IfcInteger {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCINTEGER\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcInteger = IfcInteger;\n class IfcIntegerCountRateMeasure {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCINTEGERCOUNTRATEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcIntegerCountRateMeasure = IfcIntegerCountRateMeasure;\n class IfcIonConcentrationMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCIONCONCENTRATIONMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcIonConcentrationMeasure = IfcIonConcentrationMeasure;\n class IfcIsothermalMoistureCapacityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCISOTHERMALMOISTURECAPACITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcIsothermalMoistureCapacityMeasure = IfcIsothermalMoistureCapacityMeasure;\n class IfcKinematicViscosityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCKINEMATICVISCOSITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcKinematicViscosityMeasure = IfcKinematicViscosityMeasure;\n class IfcLabel {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCLABEL\";\n }\n }\n IFC42.IfcLabel = IfcLabel;\n class IfcLanguageId {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCLANGUAGEID\";\n }\n }\n IFC42.IfcLanguageId = IfcLanguageId;\n class IfcLengthMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCLENGTHMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcLengthMeasure = IfcLengthMeasure;\n class IfcLineIndex {\n constructor(value) {\n this.value = value;\n this.type = 5;\n }\n }\n IFC42.IfcLineIndex = IfcLineIndex;\n ;\n class IfcLinearForceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCLINEARFORCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcLinearForceMeasure = IfcLinearForceMeasure;\n class IfcLinearMomentMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCLINEARMOMENTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcLinearMomentMeasure = IfcLinearMomentMeasure;\n class IfcLinearStiffnessMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCLINEARSTIFFNESSMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcLinearStiffnessMeasure = IfcLinearStiffnessMeasure;\n class IfcLinearVelocityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCLINEARVELOCITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcLinearVelocityMeasure = IfcLinearVelocityMeasure;\n class IfcLogical {\n constructor(v) {\n this.type = 3;\n this.name = \"IFCLOGICAL\";\n this.value = v === null ? v : v == \"T\" ? 1 : v == \"F\" ? 0 : 2;\n }\n }\n IFC42.IfcLogical = IfcLogical;\n class IfcLuminousFluxMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCLUMINOUSFLUXMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcLuminousFluxMeasure = IfcLuminousFluxMeasure;\n class IfcLuminousIntensityDistributionMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCLUMINOUSINTENSITYDISTRIBUTIONMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcLuminousIntensityDistributionMeasure = IfcLuminousIntensityDistributionMeasure;\n class IfcLuminousIntensityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCLUMINOUSINTENSITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcLuminousIntensityMeasure = IfcLuminousIntensityMeasure;\n class IfcMagneticFluxDensityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMAGNETICFLUXDENSITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcMagneticFluxDensityMeasure = IfcMagneticFluxDensityMeasure;\n class IfcMagneticFluxMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMAGNETICFLUXMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcMagneticFluxMeasure = IfcMagneticFluxMeasure;\n class IfcMassDensityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMASSDENSITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcMassDensityMeasure = IfcMassDensityMeasure;\n class IfcMassFlowRateMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMASSFLOWRATEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcMassFlowRateMeasure = IfcMassFlowRateMeasure;\n class IfcMassMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMASSMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcMassMeasure = IfcMassMeasure;\n class IfcMassPerLengthMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMASSPERLENGTHMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcMassPerLengthMeasure = IfcMassPerLengthMeasure;\n class IfcModulusOfElasticityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMODULUSOFELASTICITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcModulusOfElasticityMeasure = IfcModulusOfElasticityMeasure;\n class IfcModulusOfLinearSubgradeReactionMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMODULUSOFLINEARSUBGRADEREACTIONMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcModulusOfLinearSubgradeReactionMeasure = IfcModulusOfLinearSubgradeReactionMeasure;\n class IfcModulusOfRotationalSubgradeReactionMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMODULUSOFROTATIONALSUBGRADEREACTIONMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcModulusOfRotationalSubgradeReactionMeasure = IfcModulusOfRotationalSubgradeReactionMeasure;\n class IfcModulusOfSubgradeReactionMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMODULUSOFSUBGRADEREACTIONMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcModulusOfSubgradeReactionMeasure = IfcModulusOfSubgradeReactionMeasure;\n class IfcMoistureDiffusivityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMOISTUREDIFFUSIVITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcMoistureDiffusivityMeasure = IfcMoistureDiffusivityMeasure;\n class IfcMolecularWeightMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMOLECULARWEIGHTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcMolecularWeightMeasure = IfcMolecularWeightMeasure;\n class IfcMomentOfInertiaMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMOMENTOFINERTIAMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcMomentOfInertiaMeasure = IfcMomentOfInertiaMeasure;\n class IfcMonetaryMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMONETARYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcMonetaryMeasure = IfcMonetaryMeasure;\n class IfcMonthInYearNumber {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCMONTHINYEARNUMBER\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcMonthInYearNumber = IfcMonthInYearNumber;\n class IfcNonNegativeLengthMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCNONNEGATIVELENGTHMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcNonNegativeLengthMeasure = IfcNonNegativeLengthMeasure;\n class IfcNormalisedRatioMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCNORMALISEDRATIOMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcNormalisedRatioMeasure = IfcNormalisedRatioMeasure;\n class IfcNumericMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCNUMERICMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcNumericMeasure = IfcNumericMeasure;\n class IfcPHMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCPHMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcPHMeasure = IfcPHMeasure;\n class IfcParameterValue {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCPARAMETERVALUE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcParameterValue = IfcParameterValue;\n class IfcPlanarForceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCPLANARFORCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcPlanarForceMeasure = IfcPlanarForceMeasure;\n class IfcPlaneAngleMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCPLANEANGLEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcPlaneAngleMeasure = IfcPlaneAngleMeasure;\n class IfcPositiveInteger {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCPOSITIVEINTEGER\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcPositiveInteger = IfcPositiveInteger;\n class IfcPositiveLengthMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCPOSITIVELENGTHMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcPositiveLengthMeasure = IfcPositiveLengthMeasure;\n class IfcPositivePlaneAngleMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCPOSITIVEPLANEANGLEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcPositivePlaneAngleMeasure = IfcPositivePlaneAngleMeasure;\n class IfcPositiveRatioMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCPOSITIVERATIOMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcPositiveRatioMeasure = IfcPositiveRatioMeasure;\n class IfcPowerMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCPOWERMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcPowerMeasure = IfcPowerMeasure;\n class IfcPresentableText {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCPRESENTABLETEXT\";\n }\n }\n IFC42.IfcPresentableText = IfcPresentableText;\n class IfcPressureMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCPRESSUREMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcPressureMeasure = IfcPressureMeasure;\n class IfcPropertySetDefinitionSet {\n constructor(value) {\n this.value = value;\n this.type = 5;\n }\n }\n IFC42.IfcPropertySetDefinitionSet = IfcPropertySetDefinitionSet;\n ;\n class IfcRadioActivityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCRADIOACTIVITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcRadioActivityMeasure = IfcRadioActivityMeasure;\n class IfcRatioMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCRATIOMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcRatioMeasure = IfcRatioMeasure;\n class IfcReal {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCREAL\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcReal = IfcReal;\n class IfcRotationalFrequencyMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCROTATIONALFREQUENCYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcRotationalFrequencyMeasure = IfcRotationalFrequencyMeasure;\n class IfcRotationalMassMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCROTATIONALMASSMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcRotationalMassMeasure = IfcRotationalMassMeasure;\n class IfcRotationalStiffnessMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCROTATIONALSTIFFNESSMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcRotationalStiffnessMeasure = IfcRotationalStiffnessMeasure;\n class IfcSectionModulusMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSECTIONMODULUSMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcSectionModulusMeasure = IfcSectionModulusMeasure;\n class IfcSectionalAreaIntegralMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSECTIONALAREAINTEGRALMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcSectionalAreaIntegralMeasure = IfcSectionalAreaIntegralMeasure;\n class IfcShearModulusMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSHEARMODULUSMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcShearModulusMeasure = IfcShearModulusMeasure;\n class IfcSolidAngleMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSOLIDANGLEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcSolidAngleMeasure = IfcSolidAngleMeasure;\n class IfcSoundPowerLevelMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSOUNDPOWERLEVELMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcSoundPowerLevelMeasure = IfcSoundPowerLevelMeasure;\n class IfcSoundPowerMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSOUNDPOWERMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcSoundPowerMeasure = IfcSoundPowerMeasure;\n class IfcSoundPressureLevelMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSOUNDPRESSURELEVELMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcSoundPressureLevelMeasure = IfcSoundPressureLevelMeasure;\n class IfcSoundPressureMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSOUNDPRESSUREMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcSoundPressureMeasure = IfcSoundPressureMeasure;\n class IfcSpecificHeatCapacityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSPECIFICHEATCAPACITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcSpecificHeatCapacityMeasure = IfcSpecificHeatCapacityMeasure;\n class IfcSpecularExponent {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSPECULAREXPONENT\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcSpecularExponent = IfcSpecularExponent;\n class IfcSpecularRoughness {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSPECULARROUGHNESS\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcSpecularRoughness = IfcSpecularRoughness;\n class IfcTemperatureGradientMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTEMPERATUREGRADIENTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcTemperatureGradientMeasure = IfcTemperatureGradientMeasure;\n class IfcTemperatureRateOfChangeMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTEMPERATURERATEOFCHANGEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcTemperatureRateOfChangeMeasure = IfcTemperatureRateOfChangeMeasure;\n class IfcText {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCTEXT\";\n }\n }\n IFC42.IfcText = IfcText;\n class IfcTextAlignment {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCTEXTALIGNMENT\";\n }\n }\n IFC42.IfcTextAlignment = IfcTextAlignment;\n class IfcTextDecoration {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCTEXTDECORATION\";\n }\n }\n IFC42.IfcTextDecoration = IfcTextDecoration;\n class IfcTextFontName {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCTEXTFONTNAME\";\n }\n }\n IFC42.IfcTextFontName = IfcTextFontName;\n class IfcTextTransformation {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCTEXTTRANSFORMATION\";\n }\n }\n IFC42.IfcTextTransformation = IfcTextTransformation;\n class IfcThermalAdmittanceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTHERMALADMITTANCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcThermalAdmittanceMeasure = IfcThermalAdmittanceMeasure;\n class IfcThermalConductivityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTHERMALCONDUCTIVITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcThermalConductivityMeasure = IfcThermalConductivityMeasure;\n class IfcThermalExpansionCoefficientMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTHERMALEXPANSIONCOEFFICIENTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcThermalExpansionCoefficientMeasure = IfcThermalExpansionCoefficientMeasure;\n class IfcThermalResistanceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTHERMALRESISTANCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcThermalResistanceMeasure = IfcThermalResistanceMeasure;\n class IfcThermalTransmittanceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTHERMALTRANSMITTANCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcThermalTransmittanceMeasure = IfcThermalTransmittanceMeasure;\n class IfcThermodynamicTemperatureMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTHERMODYNAMICTEMPERATUREMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcThermodynamicTemperatureMeasure = IfcThermodynamicTemperatureMeasure;\n class IfcTime {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCTIME\";\n }\n }\n IFC42.IfcTime = IfcTime;\n class IfcTimeMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTIMEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcTimeMeasure = IfcTimeMeasure;\n class IfcTimeStamp {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCTIMESTAMP\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcTimeStamp = IfcTimeStamp;\n class IfcTorqueMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTORQUEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcTorqueMeasure = IfcTorqueMeasure;\n class IfcURIReference {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCURIREFERENCE\";\n }\n }\n IFC42.IfcURIReference = IfcURIReference;\n class IfcVaporPermeabilityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCVAPORPERMEABILITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcVaporPermeabilityMeasure = IfcVaporPermeabilityMeasure;\n class IfcVolumeMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCVOLUMEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcVolumeMeasure = IfcVolumeMeasure;\n class IfcVolumetricFlowRateMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCVOLUMETRICFLOWRATEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcVolumetricFlowRateMeasure = IfcVolumetricFlowRateMeasure;\n class IfcWarpingConstantMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCWARPINGCONSTANTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcWarpingConstantMeasure = IfcWarpingConstantMeasure;\n class IfcWarpingMomentMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCWARPINGMOMENTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC42.IfcWarpingMomentMeasure = IfcWarpingMomentMeasure;\n class IfcActionRequestTypeEnum {\n }\n IfcActionRequestTypeEnum.EMAIL = { type: 3, value: \"EMAIL\" };\n IfcActionRequestTypeEnum.FAX = { type: 3, value: \"FAX\" };\n IfcActionRequestTypeEnum.PHONE = { type: 3, value: \"PHONE\" };\n IfcActionRequestTypeEnum.POST = { type: 3, value: \"POST\" };\n IfcActionRequestTypeEnum.VERBAL = { type: 3, value: \"VERBAL\" };\n IfcActionRequestTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcActionRequestTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcActionRequestTypeEnum = IfcActionRequestTypeEnum;\n class IfcActionSourceTypeEnum {\n }\n IfcActionSourceTypeEnum.DEAD_LOAD_G = { type: 3, value: \"DEAD_LOAD_G\" };\n IfcActionSourceTypeEnum.COMPLETION_G1 = { type: 3, value: \"COMPLETION_G1\" };\n IfcActionSourceTypeEnum.LIVE_LOAD_Q = { type: 3, value: \"LIVE_LOAD_Q\" };\n IfcActionSourceTypeEnum.SNOW_S = { type: 3, value: \"SNOW_S\" };\n IfcActionSourceTypeEnum.WIND_W = { type: 3, value: \"WIND_W\" };\n IfcActionSourceTypeEnum.PRESTRESSING_P = { type: 3, value: \"PRESTRESSING_P\" };\n IfcActionSourceTypeEnum.SETTLEMENT_U = { type: 3, value: \"SETTLEMENT_U\" };\n IfcActionSourceTypeEnum.TEMPERATURE_T = { type: 3, value: \"TEMPERATURE_T\" };\n IfcActionSourceTypeEnum.EARTHQUAKE_E = { type: 3, value: \"EARTHQUAKE_E\" };\n IfcActionSourceTypeEnum.FIRE = { type: 3, value: \"FIRE\" };\n IfcActionSourceTypeEnum.IMPULSE = { type: 3, value: \"IMPULSE\" };\n IfcActionSourceTypeEnum.IMPACT = { type: 3, value: \"IMPACT\" };\n IfcActionSourceTypeEnum.TRANSPORT = { type: 3, value: \"TRANSPORT\" };\n IfcActionSourceTypeEnum.ERECTION = { type: 3, value: \"ERECTION\" };\n IfcActionSourceTypeEnum.PROPPING = { type: 3, value: \"PROPPING\" };\n IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION = { type: 3, value: \"SYSTEM_IMPERFECTION\" };\n IfcActionSourceTypeEnum.SHRINKAGE = { type: 3, value: \"SHRINKAGE\" };\n IfcActionSourceTypeEnum.CREEP = { type: 3, value: \"CREEP\" };\n IfcActionSourceTypeEnum.LACK_OF_FIT = { type: 3, value: \"LACK_OF_FIT\" };\n IfcActionSourceTypeEnum.BUOYANCY = { type: 3, value: \"BUOYANCY\" };\n IfcActionSourceTypeEnum.ICE = { type: 3, value: \"ICE\" };\n IfcActionSourceTypeEnum.CURRENT = { type: 3, value: \"CURRENT\" };\n IfcActionSourceTypeEnum.WAVE = { type: 3, value: \"WAVE\" };\n IfcActionSourceTypeEnum.RAIN = { type: 3, value: \"RAIN\" };\n IfcActionSourceTypeEnum.BRAKES = { type: 3, value: \"BRAKES\" };\n IfcActionSourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcActionSourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcActionSourceTypeEnum = IfcActionSourceTypeEnum;\n class IfcActionTypeEnum {\n }\n IfcActionTypeEnum.PERMANENT_G = { type: 3, value: \"PERMANENT_G\" };\n IfcActionTypeEnum.VARIABLE_Q = { type: 3, value: \"VARIABLE_Q\" };\n IfcActionTypeEnum.EXTRAORDINARY_A = { type: 3, value: \"EXTRAORDINARY_A\" };\n IfcActionTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcActionTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcActionTypeEnum = IfcActionTypeEnum;\n class IfcActuatorTypeEnum {\n }\n IfcActuatorTypeEnum.ELECTRICACTUATOR = { type: 3, value: \"ELECTRICACTUATOR\" };\n IfcActuatorTypeEnum.HANDOPERATEDACTUATOR = { type: 3, value: \"HANDOPERATEDACTUATOR\" };\n IfcActuatorTypeEnum.HYDRAULICACTUATOR = { type: 3, value: \"HYDRAULICACTUATOR\" };\n IfcActuatorTypeEnum.PNEUMATICACTUATOR = { type: 3, value: \"PNEUMATICACTUATOR\" };\n IfcActuatorTypeEnum.THERMOSTATICACTUATOR = { type: 3, value: \"THERMOSTATICACTUATOR\" };\n IfcActuatorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcActuatorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcActuatorTypeEnum = IfcActuatorTypeEnum;\n class IfcAddressTypeEnum {\n }\n IfcAddressTypeEnum.OFFICE = { type: 3, value: \"OFFICE\" };\n IfcAddressTypeEnum.SITE = { type: 3, value: \"SITE\" };\n IfcAddressTypeEnum.HOME = { type: 3, value: \"HOME\" };\n IfcAddressTypeEnum.DISTRIBUTIONPOINT = { type: 3, value: \"DISTRIBUTIONPOINT\" };\n IfcAddressTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IFC42.IfcAddressTypeEnum = IfcAddressTypeEnum;\n class IfcAirTerminalBoxTypeEnum {\n }\n IfcAirTerminalBoxTypeEnum.CONSTANTFLOW = { type: 3, value: \"CONSTANTFLOW\" };\n IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT = { type: 3, value: \"VARIABLEFLOWPRESSUREDEPENDANT\" };\n IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT = { type: 3, value: \"VARIABLEFLOWPRESSUREINDEPENDANT\" };\n IfcAirTerminalBoxTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcAirTerminalBoxTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcAirTerminalBoxTypeEnum = IfcAirTerminalBoxTypeEnum;\n class IfcAirTerminalTypeEnum {\n }\n IfcAirTerminalTypeEnum.DIFFUSER = { type: 3, value: \"DIFFUSER\" };\n IfcAirTerminalTypeEnum.GRILLE = { type: 3, value: \"GRILLE\" };\n IfcAirTerminalTypeEnum.LOUVRE = { type: 3, value: \"LOUVRE\" };\n IfcAirTerminalTypeEnum.REGISTER = { type: 3, value: \"REGISTER\" };\n IfcAirTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcAirTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcAirTerminalTypeEnum = IfcAirTerminalTypeEnum;\n class IfcAirToAirHeatRecoveryTypeEnum {\n }\n IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER = { type: 3, value: \"FIXEDPLATECOUNTERFLOWEXCHANGER\" };\n IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER = { type: 3, value: \"FIXEDPLATECROSSFLOWEXCHANGER\" };\n IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER = { type: 3, value: \"FIXEDPLATEPARALLELFLOWEXCHANGER\" };\n IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL = { type: 3, value: \"ROTARYWHEEL\" };\n IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP = { type: 3, value: \"RUNAROUNDCOILLOOP\" };\n IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE = { type: 3, value: \"HEATPIPE\" };\n IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS = { type: 3, value: \"TWINTOWERENTHALPYRECOVERYLOOPS\" };\n IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS = { type: 3, value: \"THERMOSIPHONSEALEDTUBEHEATEXCHANGERS\" };\n IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS = { type: 3, value: \"THERMOSIPHONCOILTYPEHEATEXCHANGERS\" };\n IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcAirToAirHeatRecoveryTypeEnum = IfcAirToAirHeatRecoveryTypeEnum;\n class IfcAlarmTypeEnum {\n }\n IfcAlarmTypeEnum.BELL = { type: 3, value: \"BELL\" };\n IfcAlarmTypeEnum.BREAKGLASSBUTTON = { type: 3, value: \"BREAKGLASSBUTTON\" };\n IfcAlarmTypeEnum.LIGHT = { type: 3, value: \"LIGHT\" };\n IfcAlarmTypeEnum.MANUALPULLBOX = { type: 3, value: \"MANUALPULLBOX\" };\n IfcAlarmTypeEnum.SIREN = { type: 3, value: \"SIREN\" };\n IfcAlarmTypeEnum.WHISTLE = { type: 3, value: \"WHISTLE\" };\n IfcAlarmTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcAlarmTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcAlarmTypeEnum = IfcAlarmTypeEnum;\n class IfcAnalysisModelTypeEnum {\n }\n IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D = { type: 3, value: \"IN_PLANE_LOADING_2D\" };\n IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D = { type: 3, value: \"OUT_PLANE_LOADING_2D\" };\n IfcAnalysisModelTypeEnum.LOADING_3D = { type: 3, value: \"LOADING_3D\" };\n IfcAnalysisModelTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcAnalysisModelTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcAnalysisModelTypeEnum = IfcAnalysisModelTypeEnum;\n class IfcAnalysisTheoryTypeEnum {\n }\n IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY = { type: 3, value: \"FIRST_ORDER_THEORY\" };\n IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY = { type: 3, value: \"SECOND_ORDER_THEORY\" };\n IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY = { type: 3, value: \"THIRD_ORDER_THEORY\" };\n IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY = { type: 3, value: \"FULL_NONLINEAR_THEORY\" };\n IfcAnalysisTheoryTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcAnalysisTheoryTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcAnalysisTheoryTypeEnum = IfcAnalysisTheoryTypeEnum;\n class IfcArithmeticOperatorEnum {\n }\n IfcArithmeticOperatorEnum.ADD = { type: 3, value: \"ADD\" };\n IfcArithmeticOperatorEnum.DIVIDE = { type: 3, value: \"DIVIDE\" };\n IfcArithmeticOperatorEnum.MULTIPLY = { type: 3, value: \"MULTIPLY\" };\n IfcArithmeticOperatorEnum.SUBTRACT = { type: 3, value: \"SUBTRACT\" };\n IFC42.IfcArithmeticOperatorEnum = IfcArithmeticOperatorEnum;\n class IfcAssemblyPlaceEnum {\n }\n IfcAssemblyPlaceEnum.SITE = { type: 3, value: \"SITE\" };\n IfcAssemblyPlaceEnum.FACTORY = { type: 3, value: \"FACTORY\" };\n IfcAssemblyPlaceEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcAssemblyPlaceEnum = IfcAssemblyPlaceEnum;\n class IfcAudioVisualApplianceTypeEnum {\n }\n IfcAudioVisualApplianceTypeEnum.AMPLIFIER = { type: 3, value: \"AMPLIFIER\" };\n IfcAudioVisualApplianceTypeEnum.CAMERA = { type: 3, value: \"CAMERA\" };\n IfcAudioVisualApplianceTypeEnum.DISPLAY = { type: 3, value: \"DISPLAY\" };\n IfcAudioVisualApplianceTypeEnum.MICROPHONE = { type: 3, value: \"MICROPHONE\" };\n IfcAudioVisualApplianceTypeEnum.PLAYER = { type: 3, value: \"PLAYER\" };\n IfcAudioVisualApplianceTypeEnum.PROJECTOR = { type: 3, value: \"PROJECTOR\" };\n IfcAudioVisualApplianceTypeEnum.RECEIVER = { type: 3, value: \"RECEIVER\" };\n IfcAudioVisualApplianceTypeEnum.SPEAKER = { type: 3, value: \"SPEAKER\" };\n IfcAudioVisualApplianceTypeEnum.SWITCHER = { type: 3, value: \"SWITCHER\" };\n IfcAudioVisualApplianceTypeEnum.TELEPHONE = { type: 3, value: \"TELEPHONE\" };\n IfcAudioVisualApplianceTypeEnum.TUNER = { type: 3, value: \"TUNER\" };\n IfcAudioVisualApplianceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcAudioVisualApplianceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcAudioVisualApplianceTypeEnum = IfcAudioVisualApplianceTypeEnum;\n class IfcBSplineCurveForm {\n }\n IfcBSplineCurveForm.POLYLINE_FORM = { type: 3, value: \"POLYLINE_FORM\" };\n IfcBSplineCurveForm.CIRCULAR_ARC = { type: 3, value: \"CIRCULAR_ARC\" };\n IfcBSplineCurveForm.ELLIPTIC_ARC = { type: 3, value: \"ELLIPTIC_ARC\" };\n IfcBSplineCurveForm.PARABOLIC_ARC = { type: 3, value: \"PARABOLIC_ARC\" };\n IfcBSplineCurveForm.HYPERBOLIC_ARC = { type: 3, value: \"HYPERBOLIC_ARC\" };\n IfcBSplineCurveForm.UNSPECIFIED = { type: 3, value: \"UNSPECIFIED\" };\n IFC42.IfcBSplineCurveForm = IfcBSplineCurveForm;\n class IfcBSplineSurfaceForm {\n }\n IfcBSplineSurfaceForm.PLANE_SURF = { type: 3, value: \"PLANE_SURF\" };\n IfcBSplineSurfaceForm.CYLINDRICAL_SURF = { type: 3, value: \"CYLINDRICAL_SURF\" };\n IfcBSplineSurfaceForm.CONICAL_SURF = { type: 3, value: \"CONICAL_SURF\" };\n IfcBSplineSurfaceForm.SPHERICAL_SURF = { type: 3, value: \"SPHERICAL_SURF\" };\n IfcBSplineSurfaceForm.TOROIDAL_SURF = { type: 3, value: \"TOROIDAL_SURF\" };\n IfcBSplineSurfaceForm.SURF_OF_REVOLUTION = { type: 3, value: \"SURF_OF_REVOLUTION\" };\n IfcBSplineSurfaceForm.RULED_SURF = { type: 3, value: \"RULED_SURF\" };\n IfcBSplineSurfaceForm.GENERALISED_CONE = { type: 3, value: \"GENERALISED_CONE\" };\n IfcBSplineSurfaceForm.QUADRIC_SURF = { type: 3, value: \"QUADRIC_SURF\" };\n IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION = { type: 3, value: \"SURF_OF_LINEAR_EXTRUSION\" };\n IfcBSplineSurfaceForm.UNSPECIFIED = { type: 3, value: \"UNSPECIFIED\" };\n IFC42.IfcBSplineSurfaceForm = IfcBSplineSurfaceForm;\n class IfcBeamTypeEnum {\n }\n IfcBeamTypeEnum.BEAM = { type: 3, value: \"BEAM\" };\n IfcBeamTypeEnum.JOIST = { type: 3, value: \"JOIST\" };\n IfcBeamTypeEnum.HOLLOWCORE = { type: 3, value: \"HOLLOWCORE\" };\n IfcBeamTypeEnum.LINTEL = { type: 3, value: \"LINTEL\" };\n IfcBeamTypeEnum.SPANDREL = { type: 3, value: \"SPANDREL\" };\n IfcBeamTypeEnum.T_BEAM = { type: 3, value: \"T_BEAM\" };\n IfcBeamTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcBeamTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcBeamTypeEnum = IfcBeamTypeEnum;\n class IfcBenchmarkEnum {\n }\n IfcBenchmarkEnum.GREATERTHAN = { type: 3, value: \"GREATERTHAN\" };\n IfcBenchmarkEnum.GREATERTHANOREQUALTO = { type: 3, value: \"GREATERTHANOREQUALTO\" };\n IfcBenchmarkEnum.LESSTHAN = { type: 3, value: \"LESSTHAN\" };\n IfcBenchmarkEnum.LESSTHANOREQUALTO = { type: 3, value: \"LESSTHANOREQUALTO\" };\n IfcBenchmarkEnum.EQUALTO = { type: 3, value: \"EQUALTO\" };\n IfcBenchmarkEnum.NOTEQUALTO = { type: 3, value: \"NOTEQUALTO\" };\n IfcBenchmarkEnum.INCLUDES = { type: 3, value: \"INCLUDES\" };\n IfcBenchmarkEnum.NOTINCLUDES = { type: 3, value: \"NOTINCLUDES\" };\n IfcBenchmarkEnum.INCLUDEDIN = { type: 3, value: \"INCLUDEDIN\" };\n IfcBenchmarkEnum.NOTINCLUDEDIN = { type: 3, value: \"NOTINCLUDEDIN\" };\n IFC42.IfcBenchmarkEnum = IfcBenchmarkEnum;\n class IfcBoilerTypeEnum {\n }\n IfcBoilerTypeEnum.WATER = { type: 3, value: \"WATER\" };\n IfcBoilerTypeEnum.STEAM = { type: 3, value: \"STEAM\" };\n IfcBoilerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcBoilerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcBoilerTypeEnum = IfcBoilerTypeEnum;\n class IfcBooleanOperator {\n }\n IfcBooleanOperator.UNION = { type: 3, value: \"UNION\" };\n IfcBooleanOperator.INTERSECTION = { type: 3, value: \"INTERSECTION\" };\n IfcBooleanOperator.DIFFERENCE = { type: 3, value: \"DIFFERENCE\" };\n IFC42.IfcBooleanOperator = IfcBooleanOperator;\n class IfcBuildingElementPartTypeEnum {\n }\n IfcBuildingElementPartTypeEnum.INSULATION = { type: 3, value: \"INSULATION\" };\n IfcBuildingElementPartTypeEnum.PRECASTPANEL = { type: 3, value: \"PRECASTPANEL\" };\n IfcBuildingElementPartTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcBuildingElementPartTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcBuildingElementPartTypeEnum = IfcBuildingElementPartTypeEnum;\n class IfcBuildingElementProxyTypeEnum {\n }\n IfcBuildingElementProxyTypeEnum.COMPLEX = { type: 3, value: \"COMPLEX\" };\n IfcBuildingElementProxyTypeEnum.ELEMENT = { type: 3, value: \"ELEMENT\" };\n IfcBuildingElementProxyTypeEnum.PARTIAL = { type: 3, value: \"PARTIAL\" };\n IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID = { type: 3, value: \"PROVISIONFORVOID\" };\n IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE = { type: 3, value: \"PROVISIONFORSPACE\" };\n IfcBuildingElementProxyTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcBuildingElementProxyTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcBuildingElementProxyTypeEnum = IfcBuildingElementProxyTypeEnum;\n class IfcBuildingSystemTypeEnum {\n }\n IfcBuildingSystemTypeEnum.FENESTRATION = { type: 3, value: \"FENESTRATION\" };\n IfcBuildingSystemTypeEnum.FOUNDATION = { type: 3, value: \"FOUNDATION\" };\n IfcBuildingSystemTypeEnum.LOADBEARING = { type: 3, value: \"LOADBEARING\" };\n IfcBuildingSystemTypeEnum.OUTERSHELL = { type: 3, value: \"OUTERSHELL\" };\n IfcBuildingSystemTypeEnum.SHADING = { type: 3, value: \"SHADING\" };\n IfcBuildingSystemTypeEnum.TRANSPORT = { type: 3, value: \"TRANSPORT\" };\n IfcBuildingSystemTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcBuildingSystemTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcBuildingSystemTypeEnum = IfcBuildingSystemTypeEnum;\n class IfcBurnerTypeEnum {\n }\n IfcBurnerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcBurnerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcBurnerTypeEnum = IfcBurnerTypeEnum;\n class IfcCableCarrierFittingTypeEnum {\n }\n IfcCableCarrierFittingTypeEnum.BEND = { type: 3, value: \"BEND\" };\n IfcCableCarrierFittingTypeEnum.CROSS = { type: 3, value: \"CROSS\" };\n IfcCableCarrierFittingTypeEnum.REDUCER = { type: 3, value: \"REDUCER\" };\n IfcCableCarrierFittingTypeEnum.TEE = { type: 3, value: \"TEE\" };\n IfcCableCarrierFittingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCableCarrierFittingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcCableCarrierFittingTypeEnum = IfcCableCarrierFittingTypeEnum;\n class IfcCableCarrierSegmentTypeEnum {\n }\n IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT = { type: 3, value: \"CABLELADDERSEGMENT\" };\n IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT = { type: 3, value: \"CABLETRAYSEGMENT\" };\n IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT = { type: 3, value: \"CABLETRUNKINGSEGMENT\" };\n IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT = { type: 3, value: \"CONDUITSEGMENT\" };\n IfcCableCarrierSegmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCableCarrierSegmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcCableCarrierSegmentTypeEnum = IfcCableCarrierSegmentTypeEnum;\n class IfcCableFittingTypeEnum {\n }\n IfcCableFittingTypeEnum.CONNECTOR = { type: 3, value: \"CONNECTOR\" };\n IfcCableFittingTypeEnum.ENTRY = { type: 3, value: \"ENTRY\" };\n IfcCableFittingTypeEnum.EXIT = { type: 3, value: \"EXIT\" };\n IfcCableFittingTypeEnum.JUNCTION = { type: 3, value: \"JUNCTION\" };\n IfcCableFittingTypeEnum.TRANSITION = { type: 3, value: \"TRANSITION\" };\n IfcCableFittingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCableFittingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcCableFittingTypeEnum = IfcCableFittingTypeEnum;\n class IfcCableSegmentTypeEnum {\n }\n IfcCableSegmentTypeEnum.BUSBARSEGMENT = { type: 3, value: \"BUSBARSEGMENT\" };\n IfcCableSegmentTypeEnum.CABLESEGMENT = { type: 3, value: \"CABLESEGMENT\" };\n IfcCableSegmentTypeEnum.CONDUCTORSEGMENT = { type: 3, value: \"CONDUCTORSEGMENT\" };\n IfcCableSegmentTypeEnum.CORESEGMENT = { type: 3, value: \"CORESEGMENT\" };\n IfcCableSegmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCableSegmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcCableSegmentTypeEnum = IfcCableSegmentTypeEnum;\n class IfcChangeActionEnum {\n }\n IfcChangeActionEnum.NOCHANGE = { type: 3, value: \"NOCHANGE\" };\n IfcChangeActionEnum.MODIFIED = { type: 3, value: \"MODIFIED\" };\n IfcChangeActionEnum.ADDED = { type: 3, value: \"ADDED\" };\n IfcChangeActionEnum.DELETED = { type: 3, value: \"DELETED\" };\n IfcChangeActionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcChangeActionEnum = IfcChangeActionEnum;\n class IfcChillerTypeEnum {\n }\n IfcChillerTypeEnum.AIRCOOLED = { type: 3, value: \"AIRCOOLED\" };\n IfcChillerTypeEnum.WATERCOOLED = { type: 3, value: \"WATERCOOLED\" };\n IfcChillerTypeEnum.HEATRECOVERY = { type: 3, value: \"HEATRECOVERY\" };\n IfcChillerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcChillerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcChillerTypeEnum = IfcChillerTypeEnum;\n class IfcChimneyTypeEnum {\n }\n IfcChimneyTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcChimneyTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcChimneyTypeEnum = IfcChimneyTypeEnum;\n class IfcCoilTypeEnum {\n }\n IfcCoilTypeEnum.DXCOOLINGCOIL = { type: 3, value: \"DXCOOLINGCOIL\" };\n IfcCoilTypeEnum.ELECTRICHEATINGCOIL = { type: 3, value: \"ELECTRICHEATINGCOIL\" };\n IfcCoilTypeEnum.GASHEATINGCOIL = { type: 3, value: \"GASHEATINGCOIL\" };\n IfcCoilTypeEnum.HYDRONICCOIL = { type: 3, value: \"HYDRONICCOIL\" };\n IfcCoilTypeEnum.STEAMHEATINGCOIL = { type: 3, value: \"STEAMHEATINGCOIL\" };\n IfcCoilTypeEnum.WATERCOOLINGCOIL = { type: 3, value: \"WATERCOOLINGCOIL\" };\n IfcCoilTypeEnum.WATERHEATINGCOIL = { type: 3, value: \"WATERHEATINGCOIL\" };\n IfcCoilTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCoilTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcCoilTypeEnum = IfcCoilTypeEnum;\n class IfcColumnTypeEnum {\n }\n IfcColumnTypeEnum.COLUMN = { type: 3, value: \"COLUMN\" };\n IfcColumnTypeEnum.PILASTER = { type: 3, value: \"PILASTER\" };\n IfcColumnTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcColumnTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcColumnTypeEnum = IfcColumnTypeEnum;\n class IfcCommunicationsApplianceTypeEnum {\n }\n IfcCommunicationsApplianceTypeEnum.ANTENNA = { type: 3, value: \"ANTENNA\" };\n IfcCommunicationsApplianceTypeEnum.COMPUTER = { type: 3, value: \"COMPUTER\" };\n IfcCommunicationsApplianceTypeEnum.FAX = { type: 3, value: \"FAX\" };\n IfcCommunicationsApplianceTypeEnum.GATEWAY = { type: 3, value: \"GATEWAY\" };\n IfcCommunicationsApplianceTypeEnum.MODEM = { type: 3, value: \"MODEM\" };\n IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE = { type: 3, value: \"NETWORKAPPLIANCE\" };\n IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE = { type: 3, value: \"NETWORKBRIDGE\" };\n IfcCommunicationsApplianceTypeEnum.NETWORKHUB = { type: 3, value: \"NETWORKHUB\" };\n IfcCommunicationsApplianceTypeEnum.PRINTER = { type: 3, value: \"PRINTER\" };\n IfcCommunicationsApplianceTypeEnum.REPEATER = { type: 3, value: \"REPEATER\" };\n IfcCommunicationsApplianceTypeEnum.ROUTER = { type: 3, value: \"ROUTER\" };\n IfcCommunicationsApplianceTypeEnum.SCANNER = { type: 3, value: \"SCANNER\" };\n IfcCommunicationsApplianceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCommunicationsApplianceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcCommunicationsApplianceTypeEnum = IfcCommunicationsApplianceTypeEnum;\n class IfcComplexPropertyTemplateTypeEnum {\n }\n IfcComplexPropertyTemplateTypeEnum.P_COMPLEX = { type: 3, value: \"P_COMPLEX\" };\n IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX = { type: 3, value: \"Q_COMPLEX\" };\n IFC42.IfcComplexPropertyTemplateTypeEnum = IfcComplexPropertyTemplateTypeEnum;\n class IfcCompressorTypeEnum {\n }\n IfcCompressorTypeEnum.DYNAMIC = { type: 3, value: \"DYNAMIC\" };\n IfcCompressorTypeEnum.RECIPROCATING = { type: 3, value: \"RECIPROCATING\" };\n IfcCompressorTypeEnum.ROTARY = { type: 3, value: \"ROTARY\" };\n IfcCompressorTypeEnum.SCROLL = { type: 3, value: \"SCROLL\" };\n IfcCompressorTypeEnum.TROCHOIDAL = { type: 3, value: \"TROCHOIDAL\" };\n IfcCompressorTypeEnum.SINGLESTAGE = { type: 3, value: \"SINGLESTAGE\" };\n IfcCompressorTypeEnum.BOOSTER = { type: 3, value: \"BOOSTER\" };\n IfcCompressorTypeEnum.OPENTYPE = { type: 3, value: \"OPENTYPE\" };\n IfcCompressorTypeEnum.HERMETIC = { type: 3, value: \"HERMETIC\" };\n IfcCompressorTypeEnum.SEMIHERMETIC = { type: 3, value: \"SEMIHERMETIC\" };\n IfcCompressorTypeEnum.WELDEDSHELLHERMETIC = { type: 3, value: \"WELDEDSHELLHERMETIC\" };\n IfcCompressorTypeEnum.ROLLINGPISTON = { type: 3, value: \"ROLLINGPISTON\" };\n IfcCompressorTypeEnum.ROTARYVANE = { type: 3, value: \"ROTARYVANE\" };\n IfcCompressorTypeEnum.SINGLESCREW = { type: 3, value: \"SINGLESCREW\" };\n IfcCompressorTypeEnum.TWINSCREW = { type: 3, value: \"TWINSCREW\" };\n IfcCompressorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCompressorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcCompressorTypeEnum = IfcCompressorTypeEnum;\n class IfcCondenserTypeEnum {\n }\n IfcCondenserTypeEnum.AIRCOOLED = { type: 3, value: \"AIRCOOLED\" };\n IfcCondenserTypeEnum.EVAPORATIVECOOLED = { type: 3, value: \"EVAPORATIVECOOLED\" };\n IfcCondenserTypeEnum.WATERCOOLED = { type: 3, value: \"WATERCOOLED\" };\n IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE = { type: 3, value: \"WATERCOOLEDBRAZEDPLATE\" };\n IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL = { type: 3, value: \"WATERCOOLEDSHELLCOIL\" };\n IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE = { type: 3, value: \"WATERCOOLEDSHELLTUBE\" };\n IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE = { type: 3, value: \"WATERCOOLEDTUBEINTUBE\" };\n IfcCondenserTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCondenserTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcCondenserTypeEnum = IfcCondenserTypeEnum;\n class IfcConnectionTypeEnum {\n }\n IfcConnectionTypeEnum.ATPATH = { type: 3, value: \"ATPATH\" };\n IfcConnectionTypeEnum.ATSTART = { type: 3, value: \"ATSTART\" };\n IfcConnectionTypeEnum.ATEND = { type: 3, value: \"ATEND\" };\n IfcConnectionTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcConnectionTypeEnum = IfcConnectionTypeEnum;\n class IfcConstraintEnum {\n }\n IfcConstraintEnum.HARD = { type: 3, value: \"HARD\" };\n IfcConstraintEnum.SOFT = { type: 3, value: \"SOFT\" };\n IfcConstraintEnum.ADVISORY = { type: 3, value: \"ADVISORY\" };\n IfcConstraintEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcConstraintEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcConstraintEnum = IfcConstraintEnum;\n class IfcConstructionEquipmentResourceTypeEnum {\n }\n IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING = { type: 3, value: \"DEMOLISHING\" };\n IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING = { type: 3, value: \"EARTHMOVING\" };\n IfcConstructionEquipmentResourceTypeEnum.ERECTING = { type: 3, value: \"ERECTING\" };\n IfcConstructionEquipmentResourceTypeEnum.HEATING = { type: 3, value: \"HEATING\" };\n IfcConstructionEquipmentResourceTypeEnum.LIGHTING = { type: 3, value: \"LIGHTING\" };\n IfcConstructionEquipmentResourceTypeEnum.PAVING = { type: 3, value: \"PAVING\" };\n IfcConstructionEquipmentResourceTypeEnum.PUMPING = { type: 3, value: \"PUMPING\" };\n IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING = { type: 3, value: \"TRANSPORTING\" };\n IfcConstructionEquipmentResourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcConstructionEquipmentResourceTypeEnum = IfcConstructionEquipmentResourceTypeEnum;\n class IfcConstructionMaterialResourceTypeEnum {\n }\n IfcConstructionMaterialResourceTypeEnum.AGGREGATES = { type: 3, value: \"AGGREGATES\" };\n IfcConstructionMaterialResourceTypeEnum.CONCRETE = { type: 3, value: \"CONCRETE\" };\n IfcConstructionMaterialResourceTypeEnum.DRYWALL = { type: 3, value: \"DRYWALL\" };\n IfcConstructionMaterialResourceTypeEnum.FUEL = { type: 3, value: \"FUEL\" };\n IfcConstructionMaterialResourceTypeEnum.GYPSUM = { type: 3, value: \"GYPSUM\" };\n IfcConstructionMaterialResourceTypeEnum.MASONRY = { type: 3, value: \"MASONRY\" };\n IfcConstructionMaterialResourceTypeEnum.METAL = { type: 3, value: \"METAL\" };\n IfcConstructionMaterialResourceTypeEnum.PLASTIC = { type: 3, value: \"PLASTIC\" };\n IfcConstructionMaterialResourceTypeEnum.WOOD = { type: 3, value: \"WOOD\" };\n IfcConstructionMaterialResourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IfcConstructionMaterialResourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IFC42.IfcConstructionMaterialResourceTypeEnum = IfcConstructionMaterialResourceTypeEnum;\n class IfcConstructionProductResourceTypeEnum {\n }\n IfcConstructionProductResourceTypeEnum.ASSEMBLY = { type: 3, value: \"ASSEMBLY\" };\n IfcConstructionProductResourceTypeEnum.FORMWORK = { type: 3, value: \"FORMWORK\" };\n IfcConstructionProductResourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcConstructionProductResourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcConstructionProductResourceTypeEnum = IfcConstructionProductResourceTypeEnum;\n class IfcControllerTypeEnum {\n }\n IfcControllerTypeEnum.FLOATING = { type: 3, value: \"FLOATING\" };\n IfcControllerTypeEnum.PROGRAMMABLE = { type: 3, value: \"PROGRAMMABLE\" };\n IfcControllerTypeEnum.PROPORTIONAL = { type: 3, value: \"PROPORTIONAL\" };\n IfcControllerTypeEnum.MULTIPOSITION = { type: 3, value: \"MULTIPOSITION\" };\n IfcControllerTypeEnum.TWOPOSITION = { type: 3, value: \"TWOPOSITION\" };\n IfcControllerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcControllerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcControllerTypeEnum = IfcControllerTypeEnum;\n class IfcCooledBeamTypeEnum {\n }\n IfcCooledBeamTypeEnum.ACTIVE = { type: 3, value: \"ACTIVE\" };\n IfcCooledBeamTypeEnum.PASSIVE = { type: 3, value: \"PASSIVE\" };\n IfcCooledBeamTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCooledBeamTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcCooledBeamTypeEnum = IfcCooledBeamTypeEnum;\n class IfcCoolingTowerTypeEnum {\n }\n IfcCoolingTowerTypeEnum.NATURALDRAFT = { type: 3, value: \"NATURALDRAFT\" };\n IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT = { type: 3, value: \"MECHANICALINDUCEDDRAFT\" };\n IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT = { type: 3, value: \"MECHANICALFORCEDDRAFT\" };\n IfcCoolingTowerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCoolingTowerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcCoolingTowerTypeEnum = IfcCoolingTowerTypeEnum;\n class IfcCostItemTypeEnum {\n }\n IfcCostItemTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCostItemTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcCostItemTypeEnum = IfcCostItemTypeEnum;\n class IfcCostScheduleTypeEnum {\n }\n IfcCostScheduleTypeEnum.BUDGET = { type: 3, value: \"BUDGET\" };\n IfcCostScheduleTypeEnum.COSTPLAN = { type: 3, value: \"COSTPLAN\" };\n IfcCostScheduleTypeEnum.ESTIMATE = { type: 3, value: \"ESTIMATE\" };\n IfcCostScheduleTypeEnum.TENDER = { type: 3, value: \"TENDER\" };\n IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES = { type: 3, value: \"PRICEDBILLOFQUANTITIES\" };\n IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES = { type: 3, value: \"UNPRICEDBILLOFQUANTITIES\" };\n IfcCostScheduleTypeEnum.SCHEDULEOFRATES = { type: 3, value: \"SCHEDULEOFRATES\" };\n IfcCostScheduleTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCostScheduleTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcCostScheduleTypeEnum = IfcCostScheduleTypeEnum;\n class IfcCoveringTypeEnum {\n }\n IfcCoveringTypeEnum.CEILING = { type: 3, value: \"CEILING\" };\n IfcCoveringTypeEnum.FLOORING = { type: 3, value: \"FLOORING\" };\n IfcCoveringTypeEnum.CLADDING = { type: 3, value: \"CLADDING\" };\n IfcCoveringTypeEnum.ROOFING = { type: 3, value: \"ROOFING\" };\n IfcCoveringTypeEnum.MOLDING = { type: 3, value: \"MOLDING\" };\n IfcCoveringTypeEnum.SKIRTINGBOARD = { type: 3, value: \"SKIRTINGBOARD\" };\n IfcCoveringTypeEnum.INSULATION = { type: 3, value: \"INSULATION\" };\n IfcCoveringTypeEnum.MEMBRANE = { type: 3, value: \"MEMBRANE\" };\n IfcCoveringTypeEnum.SLEEVING = { type: 3, value: \"SLEEVING\" };\n IfcCoveringTypeEnum.WRAPPING = { type: 3, value: \"WRAPPING\" };\n IfcCoveringTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCoveringTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcCoveringTypeEnum = IfcCoveringTypeEnum;\n class IfcCrewResourceTypeEnum {\n }\n IfcCrewResourceTypeEnum.OFFICE = { type: 3, value: \"OFFICE\" };\n IfcCrewResourceTypeEnum.SITE = { type: 3, value: \"SITE\" };\n IfcCrewResourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCrewResourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcCrewResourceTypeEnum = IfcCrewResourceTypeEnum;\n class IfcCurtainWallTypeEnum {\n }\n IfcCurtainWallTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCurtainWallTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcCurtainWallTypeEnum = IfcCurtainWallTypeEnum;\n class IfcCurveInterpolationEnum {\n }\n IfcCurveInterpolationEnum.LINEAR = { type: 3, value: \"LINEAR\" };\n IfcCurveInterpolationEnum.LOG_LINEAR = { type: 3, value: \"LOG_LINEAR\" };\n IfcCurveInterpolationEnum.LOG_LOG = { type: 3, value: \"LOG_LOG\" };\n IfcCurveInterpolationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcCurveInterpolationEnum = IfcCurveInterpolationEnum;\n class IfcDamperTypeEnum {\n }\n IfcDamperTypeEnum.BACKDRAFTDAMPER = { type: 3, value: \"BACKDRAFTDAMPER\" };\n IfcDamperTypeEnum.BALANCINGDAMPER = { type: 3, value: \"BALANCINGDAMPER\" };\n IfcDamperTypeEnum.BLASTDAMPER = { type: 3, value: \"BLASTDAMPER\" };\n IfcDamperTypeEnum.CONTROLDAMPER = { type: 3, value: \"CONTROLDAMPER\" };\n IfcDamperTypeEnum.FIREDAMPER = { type: 3, value: \"FIREDAMPER\" };\n IfcDamperTypeEnum.FIRESMOKEDAMPER = { type: 3, value: \"FIRESMOKEDAMPER\" };\n IfcDamperTypeEnum.FUMEHOODEXHAUST = { type: 3, value: \"FUMEHOODEXHAUST\" };\n IfcDamperTypeEnum.GRAVITYDAMPER = { type: 3, value: \"GRAVITYDAMPER\" };\n IfcDamperTypeEnum.GRAVITYRELIEFDAMPER = { type: 3, value: \"GRAVITYRELIEFDAMPER\" };\n IfcDamperTypeEnum.RELIEFDAMPER = { type: 3, value: \"RELIEFDAMPER\" };\n IfcDamperTypeEnum.SMOKEDAMPER = { type: 3, value: \"SMOKEDAMPER\" };\n IfcDamperTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDamperTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcDamperTypeEnum = IfcDamperTypeEnum;\n class IfcDataOriginEnum {\n }\n IfcDataOriginEnum.MEASURED = { type: 3, value: \"MEASURED\" };\n IfcDataOriginEnum.PREDICTED = { type: 3, value: \"PREDICTED\" };\n IfcDataOriginEnum.SIMULATED = { type: 3, value: \"SIMULATED\" };\n IfcDataOriginEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDataOriginEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcDataOriginEnum = IfcDataOriginEnum;\n class IfcDerivedUnitEnum {\n }\n IfcDerivedUnitEnum.ANGULARVELOCITYUNIT = { type: 3, value: \"ANGULARVELOCITYUNIT\" };\n IfcDerivedUnitEnum.AREADENSITYUNIT = { type: 3, value: \"AREADENSITYUNIT\" };\n IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT = { type: 3, value: \"COMPOUNDPLANEANGLEUNIT\" };\n IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT = { type: 3, value: \"DYNAMICVISCOSITYUNIT\" };\n IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT = { type: 3, value: \"HEATFLUXDENSITYUNIT\" };\n IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT = { type: 3, value: \"INTEGERCOUNTRATEUNIT\" };\n IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT = { type: 3, value: \"ISOTHERMALMOISTURECAPACITYUNIT\" };\n IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT = { type: 3, value: \"KINEMATICVISCOSITYUNIT\" };\n IfcDerivedUnitEnum.LINEARVELOCITYUNIT = { type: 3, value: \"LINEARVELOCITYUNIT\" };\n IfcDerivedUnitEnum.MASSDENSITYUNIT = { type: 3, value: \"MASSDENSITYUNIT\" };\n IfcDerivedUnitEnum.MASSFLOWRATEUNIT = { type: 3, value: \"MASSFLOWRATEUNIT\" };\n IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT = { type: 3, value: \"MOISTUREDIFFUSIVITYUNIT\" };\n IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT = { type: 3, value: \"MOLECULARWEIGHTUNIT\" };\n IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT = { type: 3, value: \"SPECIFICHEATCAPACITYUNIT\" };\n IfcDerivedUnitEnum.THERMALADMITTANCEUNIT = { type: 3, value: \"THERMALADMITTANCEUNIT\" };\n IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT = { type: 3, value: \"THERMALCONDUCTANCEUNIT\" };\n IfcDerivedUnitEnum.THERMALRESISTANCEUNIT = { type: 3, value: \"THERMALRESISTANCEUNIT\" };\n IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT = { type: 3, value: \"THERMALTRANSMITTANCEUNIT\" };\n IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT = { type: 3, value: \"VAPORPERMEABILITYUNIT\" };\n IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT = { type: 3, value: \"VOLUMETRICFLOWRATEUNIT\" };\n IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT = { type: 3, value: \"ROTATIONALFREQUENCYUNIT\" };\n IfcDerivedUnitEnum.TORQUEUNIT = { type: 3, value: \"TORQUEUNIT\" };\n IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT = { type: 3, value: \"MOMENTOFINERTIAUNIT\" };\n IfcDerivedUnitEnum.LINEARMOMENTUNIT = { type: 3, value: \"LINEARMOMENTUNIT\" };\n IfcDerivedUnitEnum.LINEARFORCEUNIT = { type: 3, value: \"LINEARFORCEUNIT\" };\n IfcDerivedUnitEnum.PLANARFORCEUNIT = { type: 3, value: \"PLANARFORCEUNIT\" };\n IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT = { type: 3, value: \"MODULUSOFELASTICITYUNIT\" };\n IfcDerivedUnitEnum.SHEARMODULUSUNIT = { type: 3, value: \"SHEARMODULUSUNIT\" };\n IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT = { type: 3, value: \"LINEARSTIFFNESSUNIT\" };\n IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT = { type: 3, value: \"ROTATIONALSTIFFNESSUNIT\" };\n IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT = { type: 3, value: \"MODULUSOFSUBGRADEREACTIONUNIT\" };\n IfcDerivedUnitEnum.ACCELERATIONUNIT = { type: 3, value: \"ACCELERATIONUNIT\" };\n IfcDerivedUnitEnum.CURVATUREUNIT = { type: 3, value: \"CURVATUREUNIT\" };\n IfcDerivedUnitEnum.HEATINGVALUEUNIT = { type: 3, value: \"HEATINGVALUEUNIT\" };\n IfcDerivedUnitEnum.IONCONCENTRATIONUNIT = { type: 3, value: \"IONCONCENTRATIONUNIT\" };\n IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT = { type: 3, value: \"LUMINOUSINTENSITYDISTRIBUTIONUNIT\" };\n IfcDerivedUnitEnum.MASSPERLENGTHUNIT = { type: 3, value: \"MASSPERLENGTHUNIT\" };\n IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT = { type: 3, value: \"MODULUSOFLINEARSUBGRADEREACTIONUNIT\" };\n IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT = { type: 3, value: \"MODULUSOFROTATIONALSUBGRADEREACTIONUNIT\" };\n IfcDerivedUnitEnum.PHUNIT = { type: 3, value: \"PHUNIT\" };\n IfcDerivedUnitEnum.ROTATIONALMASSUNIT = { type: 3, value: \"ROTATIONALMASSUNIT\" };\n IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT = { type: 3, value: \"SECTIONAREAINTEGRALUNIT\" };\n IfcDerivedUnitEnum.SECTIONMODULUSUNIT = { type: 3, value: \"SECTIONMODULUSUNIT\" };\n IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT = { type: 3, value: \"SOUNDPOWERLEVELUNIT\" };\n IfcDerivedUnitEnum.SOUNDPOWERUNIT = { type: 3, value: \"SOUNDPOWERUNIT\" };\n IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT = { type: 3, value: \"SOUNDPRESSURELEVELUNIT\" };\n IfcDerivedUnitEnum.SOUNDPRESSUREUNIT = { type: 3, value: \"SOUNDPRESSUREUNIT\" };\n IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT = { type: 3, value: \"TEMPERATUREGRADIENTUNIT\" };\n IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT = { type: 3, value: \"TEMPERATURERATEOFCHANGEUNIT\" };\n IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT = { type: 3, value: \"THERMALEXPANSIONCOEFFICIENTUNIT\" };\n IfcDerivedUnitEnum.WARPINGCONSTANTUNIT = { type: 3, value: \"WARPINGCONSTANTUNIT\" };\n IfcDerivedUnitEnum.WARPINGMOMENTUNIT = { type: 3, value: \"WARPINGMOMENTUNIT\" };\n IfcDerivedUnitEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IFC42.IfcDerivedUnitEnum = IfcDerivedUnitEnum;\n class IfcDirectionSenseEnum {\n }\n IfcDirectionSenseEnum.POSITIVE = { type: 3, value: \"POSITIVE\" };\n IfcDirectionSenseEnum.NEGATIVE = { type: 3, value: \"NEGATIVE\" };\n IFC42.IfcDirectionSenseEnum = IfcDirectionSenseEnum;\n class IfcDiscreteAccessoryTypeEnum {\n }\n IfcDiscreteAccessoryTypeEnum.ANCHORPLATE = { type: 3, value: \"ANCHORPLATE\" };\n IfcDiscreteAccessoryTypeEnum.BRACKET = { type: 3, value: \"BRACKET\" };\n IfcDiscreteAccessoryTypeEnum.SHOE = { type: 3, value: \"SHOE\" };\n IfcDiscreteAccessoryTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDiscreteAccessoryTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcDiscreteAccessoryTypeEnum = IfcDiscreteAccessoryTypeEnum;\n class IfcDistributionChamberElementTypeEnum {\n }\n IfcDistributionChamberElementTypeEnum.FORMEDDUCT = { type: 3, value: \"FORMEDDUCT\" };\n IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER = { type: 3, value: \"INSPECTIONCHAMBER\" };\n IfcDistributionChamberElementTypeEnum.INSPECTIONPIT = { type: 3, value: \"INSPECTIONPIT\" };\n IfcDistributionChamberElementTypeEnum.MANHOLE = { type: 3, value: \"MANHOLE\" };\n IfcDistributionChamberElementTypeEnum.METERCHAMBER = { type: 3, value: \"METERCHAMBER\" };\n IfcDistributionChamberElementTypeEnum.SUMP = { type: 3, value: \"SUMP\" };\n IfcDistributionChamberElementTypeEnum.TRENCH = { type: 3, value: \"TRENCH\" };\n IfcDistributionChamberElementTypeEnum.VALVECHAMBER = { type: 3, value: \"VALVECHAMBER\" };\n IfcDistributionChamberElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDistributionChamberElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcDistributionChamberElementTypeEnum = IfcDistributionChamberElementTypeEnum;\n class IfcDistributionPortTypeEnum {\n }\n IfcDistributionPortTypeEnum.CABLE = { type: 3, value: \"CABLE\" };\n IfcDistributionPortTypeEnum.CABLECARRIER = { type: 3, value: \"CABLECARRIER\" };\n IfcDistributionPortTypeEnum.DUCT = { type: 3, value: \"DUCT\" };\n IfcDistributionPortTypeEnum.PIPE = { type: 3, value: \"PIPE\" };\n IfcDistributionPortTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDistributionPortTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcDistributionPortTypeEnum = IfcDistributionPortTypeEnum;\n class IfcDistributionSystemEnum {\n }\n IfcDistributionSystemEnum.AIRCONDITIONING = { type: 3, value: \"AIRCONDITIONING\" };\n IfcDistributionSystemEnum.AUDIOVISUAL = { type: 3, value: \"AUDIOVISUAL\" };\n IfcDistributionSystemEnum.CHEMICAL = { type: 3, value: \"CHEMICAL\" };\n IfcDistributionSystemEnum.CHILLEDWATER = { type: 3, value: \"CHILLEDWATER\" };\n IfcDistributionSystemEnum.COMMUNICATION = { type: 3, value: \"COMMUNICATION\" };\n IfcDistributionSystemEnum.COMPRESSEDAIR = { type: 3, value: \"COMPRESSEDAIR\" };\n IfcDistributionSystemEnum.CONDENSERWATER = { type: 3, value: \"CONDENSERWATER\" };\n IfcDistributionSystemEnum.CONTROL = { type: 3, value: \"CONTROL\" };\n IfcDistributionSystemEnum.CONVEYING = { type: 3, value: \"CONVEYING\" };\n IfcDistributionSystemEnum.DATA = { type: 3, value: \"DATA\" };\n IfcDistributionSystemEnum.DISPOSAL = { type: 3, value: \"DISPOSAL\" };\n IfcDistributionSystemEnum.DOMESTICCOLDWATER = { type: 3, value: \"DOMESTICCOLDWATER\" };\n IfcDistributionSystemEnum.DOMESTICHOTWATER = { type: 3, value: \"DOMESTICHOTWATER\" };\n IfcDistributionSystemEnum.DRAINAGE = { type: 3, value: \"DRAINAGE\" };\n IfcDistributionSystemEnum.EARTHING = { type: 3, value: \"EARTHING\" };\n IfcDistributionSystemEnum.ELECTRICAL = { type: 3, value: \"ELECTRICAL\" };\n IfcDistributionSystemEnum.ELECTROACOUSTIC = { type: 3, value: \"ELECTROACOUSTIC\" };\n IfcDistributionSystemEnum.EXHAUST = { type: 3, value: \"EXHAUST\" };\n IfcDistributionSystemEnum.FIREPROTECTION = { type: 3, value: \"FIREPROTECTION\" };\n IfcDistributionSystemEnum.FUEL = { type: 3, value: \"FUEL\" };\n IfcDistributionSystemEnum.GAS = { type: 3, value: \"GAS\" };\n IfcDistributionSystemEnum.HAZARDOUS = { type: 3, value: \"HAZARDOUS\" };\n IfcDistributionSystemEnum.HEATING = { type: 3, value: \"HEATING\" };\n IfcDistributionSystemEnum.LIGHTING = { type: 3, value: \"LIGHTING\" };\n IfcDistributionSystemEnum.LIGHTNINGPROTECTION = { type: 3, value: \"LIGHTNINGPROTECTION\" };\n IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE = { type: 3, value: \"MUNICIPALSOLIDWASTE\" };\n IfcDistributionSystemEnum.OIL = { type: 3, value: \"OIL\" };\n IfcDistributionSystemEnum.OPERATIONAL = { type: 3, value: \"OPERATIONAL\" };\n IfcDistributionSystemEnum.POWERGENERATION = { type: 3, value: \"POWERGENERATION\" };\n IfcDistributionSystemEnum.RAINWATER = { type: 3, value: \"RAINWATER\" };\n IfcDistributionSystemEnum.REFRIGERATION = { type: 3, value: \"REFRIGERATION\" };\n IfcDistributionSystemEnum.SECURITY = { type: 3, value: \"SECURITY\" };\n IfcDistributionSystemEnum.SEWAGE = { type: 3, value: \"SEWAGE\" };\n IfcDistributionSystemEnum.SIGNAL = { type: 3, value: \"SIGNAL\" };\n IfcDistributionSystemEnum.STORMWATER = { type: 3, value: \"STORMWATER\" };\n IfcDistributionSystemEnum.TELEPHONE = { type: 3, value: \"TELEPHONE\" };\n IfcDistributionSystemEnum.TV = { type: 3, value: \"TV\" };\n IfcDistributionSystemEnum.VACUUM = { type: 3, value: \"VACUUM\" };\n IfcDistributionSystemEnum.VENT = { type: 3, value: \"VENT\" };\n IfcDistributionSystemEnum.VENTILATION = { type: 3, value: \"VENTILATION\" };\n IfcDistributionSystemEnum.WASTEWATER = { type: 3, value: \"WASTEWATER\" };\n IfcDistributionSystemEnum.WATERSUPPLY = { type: 3, value: \"WATERSUPPLY\" };\n IfcDistributionSystemEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDistributionSystemEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcDistributionSystemEnum = IfcDistributionSystemEnum;\n class IfcDocumentConfidentialityEnum {\n }\n IfcDocumentConfidentialityEnum.PUBLIC = { type: 3, value: \"PUBLIC\" };\n IfcDocumentConfidentialityEnum.RESTRICTED = { type: 3, value: \"RESTRICTED\" };\n IfcDocumentConfidentialityEnum.CONFIDENTIAL = { type: 3, value: \"CONFIDENTIAL\" };\n IfcDocumentConfidentialityEnum.PERSONAL = { type: 3, value: \"PERSONAL\" };\n IfcDocumentConfidentialityEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDocumentConfidentialityEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcDocumentConfidentialityEnum = IfcDocumentConfidentialityEnum;\n class IfcDocumentStatusEnum {\n }\n IfcDocumentStatusEnum.DRAFT = { type: 3, value: \"DRAFT\" };\n IfcDocumentStatusEnum.FINALDRAFT = { type: 3, value: \"FINALDRAFT\" };\n IfcDocumentStatusEnum.FINAL = { type: 3, value: \"FINAL\" };\n IfcDocumentStatusEnum.REVISION = { type: 3, value: \"REVISION\" };\n IfcDocumentStatusEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcDocumentStatusEnum = IfcDocumentStatusEnum;\n class IfcDoorPanelOperationEnum {\n }\n IfcDoorPanelOperationEnum.SWINGING = { type: 3, value: \"SWINGING\" };\n IfcDoorPanelOperationEnum.DOUBLE_ACTING = { type: 3, value: \"DOUBLE_ACTING\" };\n IfcDoorPanelOperationEnum.SLIDING = { type: 3, value: \"SLIDING\" };\n IfcDoorPanelOperationEnum.FOLDING = { type: 3, value: \"FOLDING\" };\n IfcDoorPanelOperationEnum.REVOLVING = { type: 3, value: \"REVOLVING\" };\n IfcDoorPanelOperationEnum.ROLLINGUP = { type: 3, value: \"ROLLINGUP\" };\n IfcDoorPanelOperationEnum.FIXEDPANEL = { type: 3, value: \"FIXEDPANEL\" };\n IfcDoorPanelOperationEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDoorPanelOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcDoorPanelOperationEnum = IfcDoorPanelOperationEnum;\n class IfcDoorPanelPositionEnum {\n }\n IfcDoorPanelPositionEnum.LEFT = { type: 3, value: \"LEFT\" };\n IfcDoorPanelPositionEnum.MIDDLE = { type: 3, value: \"MIDDLE\" };\n IfcDoorPanelPositionEnum.RIGHT = { type: 3, value: \"RIGHT\" };\n IfcDoorPanelPositionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcDoorPanelPositionEnum = IfcDoorPanelPositionEnum;\n class IfcDoorStyleConstructionEnum {\n }\n IfcDoorStyleConstructionEnum.ALUMINIUM = { type: 3, value: \"ALUMINIUM\" };\n IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: \"HIGH_GRADE_STEEL\" };\n IfcDoorStyleConstructionEnum.STEEL = { type: 3, value: \"STEEL\" };\n IfcDoorStyleConstructionEnum.WOOD = { type: 3, value: \"WOOD\" };\n IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: \"ALUMINIUM_WOOD\" };\n IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC = { type: 3, value: \"ALUMINIUM_PLASTIC\" };\n IfcDoorStyleConstructionEnum.PLASTIC = { type: 3, value: \"PLASTIC\" };\n IfcDoorStyleConstructionEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDoorStyleConstructionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcDoorStyleConstructionEnum = IfcDoorStyleConstructionEnum;\n class IfcDoorStyleOperationEnum {\n }\n IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: \"SINGLE_SWING_LEFT\" };\n IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: \"SINGLE_SWING_RIGHT\" };\n IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: \"DOUBLE_DOOR_SINGLE_SWING\" };\n IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: \"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT\" };\n IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: \"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT\" };\n IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: \"DOUBLE_SWING_LEFT\" };\n IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: \"DOUBLE_SWING_RIGHT\" };\n IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: \"DOUBLE_DOOR_DOUBLE_SWING\" };\n IfcDoorStyleOperationEnum.SLIDING_TO_LEFT = { type: 3, value: \"SLIDING_TO_LEFT\" };\n IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: \"SLIDING_TO_RIGHT\" };\n IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: \"DOUBLE_DOOR_SLIDING\" };\n IfcDoorStyleOperationEnum.FOLDING_TO_LEFT = { type: 3, value: \"FOLDING_TO_LEFT\" };\n IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: \"FOLDING_TO_RIGHT\" };\n IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: \"DOUBLE_DOOR_FOLDING\" };\n IfcDoorStyleOperationEnum.REVOLVING = { type: 3, value: \"REVOLVING\" };\n IfcDoorStyleOperationEnum.ROLLINGUP = { type: 3, value: \"ROLLINGUP\" };\n IfcDoorStyleOperationEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDoorStyleOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcDoorStyleOperationEnum = IfcDoorStyleOperationEnum;\n class IfcDoorTypeEnum {\n }\n IfcDoorTypeEnum.DOOR = { type: 3, value: \"DOOR\" };\n IfcDoorTypeEnum.GATE = { type: 3, value: \"GATE\" };\n IfcDoorTypeEnum.TRAPDOOR = { type: 3, value: \"TRAPDOOR\" };\n IfcDoorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDoorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcDoorTypeEnum = IfcDoorTypeEnum;\n class IfcDoorTypeOperationEnum {\n }\n IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: \"SINGLE_SWING_LEFT\" };\n IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: \"SINGLE_SWING_RIGHT\" };\n IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: \"DOUBLE_DOOR_SINGLE_SWING\" };\n IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: \"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT\" };\n IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: \"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT\" };\n IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: \"DOUBLE_SWING_LEFT\" };\n IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: \"DOUBLE_SWING_RIGHT\" };\n IfcDoorTypeOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: \"DOUBLE_DOOR_DOUBLE_SWING\" };\n IfcDoorTypeOperationEnum.SLIDING_TO_LEFT = { type: 3, value: \"SLIDING_TO_LEFT\" };\n IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: \"SLIDING_TO_RIGHT\" };\n IfcDoorTypeOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: \"DOUBLE_DOOR_SLIDING\" };\n IfcDoorTypeOperationEnum.FOLDING_TO_LEFT = { type: 3, value: \"FOLDING_TO_LEFT\" };\n IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: \"FOLDING_TO_RIGHT\" };\n IfcDoorTypeOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: \"DOUBLE_DOOR_FOLDING\" };\n IfcDoorTypeOperationEnum.REVOLVING = { type: 3, value: \"REVOLVING\" };\n IfcDoorTypeOperationEnum.ROLLINGUP = { type: 3, value: \"ROLLINGUP\" };\n IfcDoorTypeOperationEnum.SWING_FIXED_LEFT = { type: 3, value: \"SWING_FIXED_LEFT\" };\n IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT = { type: 3, value: \"SWING_FIXED_RIGHT\" };\n IfcDoorTypeOperationEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDoorTypeOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcDoorTypeOperationEnum = IfcDoorTypeOperationEnum;\n class IfcDuctFittingTypeEnum {\n }\n IfcDuctFittingTypeEnum.BEND = { type: 3, value: \"BEND\" };\n IfcDuctFittingTypeEnum.CONNECTOR = { type: 3, value: \"CONNECTOR\" };\n IfcDuctFittingTypeEnum.ENTRY = { type: 3, value: \"ENTRY\" };\n IfcDuctFittingTypeEnum.EXIT = { type: 3, value: \"EXIT\" };\n IfcDuctFittingTypeEnum.JUNCTION = { type: 3, value: \"JUNCTION\" };\n IfcDuctFittingTypeEnum.OBSTRUCTION = { type: 3, value: \"OBSTRUCTION\" };\n IfcDuctFittingTypeEnum.TRANSITION = { type: 3, value: \"TRANSITION\" };\n IfcDuctFittingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDuctFittingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcDuctFittingTypeEnum = IfcDuctFittingTypeEnum;\n class IfcDuctSegmentTypeEnum {\n }\n IfcDuctSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: \"RIGIDSEGMENT\" };\n IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: \"FLEXIBLESEGMENT\" };\n IfcDuctSegmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDuctSegmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcDuctSegmentTypeEnum = IfcDuctSegmentTypeEnum;\n class IfcDuctSilencerTypeEnum {\n }\n IfcDuctSilencerTypeEnum.FLATOVAL = { type: 3, value: \"FLATOVAL\" };\n IfcDuctSilencerTypeEnum.RECTANGULAR = { type: 3, value: \"RECTANGULAR\" };\n IfcDuctSilencerTypeEnum.ROUND = { type: 3, value: \"ROUND\" };\n IfcDuctSilencerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDuctSilencerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcDuctSilencerTypeEnum = IfcDuctSilencerTypeEnum;\n class IfcElectricApplianceTypeEnum {\n }\n IfcElectricApplianceTypeEnum.DISHWASHER = { type: 3, value: \"DISHWASHER\" };\n IfcElectricApplianceTypeEnum.ELECTRICCOOKER = { type: 3, value: \"ELECTRICCOOKER\" };\n IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER = { type: 3, value: \"FREESTANDINGELECTRICHEATER\" };\n IfcElectricApplianceTypeEnum.FREESTANDINGFAN = { type: 3, value: \"FREESTANDINGFAN\" };\n IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER = { type: 3, value: \"FREESTANDINGWATERHEATER\" };\n IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER = { type: 3, value: \"FREESTANDINGWATERCOOLER\" };\n IfcElectricApplianceTypeEnum.FREEZER = { type: 3, value: \"FREEZER\" };\n IfcElectricApplianceTypeEnum.FRIDGE_FREEZER = { type: 3, value: \"FRIDGE_FREEZER\" };\n IfcElectricApplianceTypeEnum.HANDDRYER = { type: 3, value: \"HANDDRYER\" };\n IfcElectricApplianceTypeEnum.KITCHENMACHINE = { type: 3, value: \"KITCHENMACHINE\" };\n IfcElectricApplianceTypeEnum.MICROWAVE = { type: 3, value: \"MICROWAVE\" };\n IfcElectricApplianceTypeEnum.PHOTOCOPIER = { type: 3, value: \"PHOTOCOPIER\" };\n IfcElectricApplianceTypeEnum.REFRIGERATOR = { type: 3, value: \"REFRIGERATOR\" };\n IfcElectricApplianceTypeEnum.TUMBLEDRYER = { type: 3, value: \"TUMBLEDRYER\" };\n IfcElectricApplianceTypeEnum.VENDINGMACHINE = { type: 3, value: \"VENDINGMACHINE\" };\n IfcElectricApplianceTypeEnum.WASHINGMACHINE = { type: 3, value: \"WASHINGMACHINE\" };\n IfcElectricApplianceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcElectricApplianceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcElectricApplianceTypeEnum = IfcElectricApplianceTypeEnum;\n class IfcElectricDistributionBoardTypeEnum {\n }\n IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT = { type: 3, value: \"CONSUMERUNIT\" };\n IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD = { type: 3, value: \"DISTRIBUTIONBOARD\" };\n IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE = { type: 3, value: \"MOTORCONTROLCENTRE\" };\n IfcElectricDistributionBoardTypeEnum.SWITCHBOARD = { type: 3, value: \"SWITCHBOARD\" };\n IfcElectricDistributionBoardTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcElectricDistributionBoardTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcElectricDistributionBoardTypeEnum = IfcElectricDistributionBoardTypeEnum;\n class IfcElectricFlowStorageDeviceTypeEnum {\n }\n IfcElectricFlowStorageDeviceTypeEnum.BATTERY = { type: 3, value: \"BATTERY\" };\n IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK = { type: 3, value: \"CAPACITORBANK\" };\n IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER = { type: 3, value: \"HARMONICFILTER\" };\n IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK = { type: 3, value: \"INDUCTORBANK\" };\n IfcElectricFlowStorageDeviceTypeEnum.UPS = { type: 3, value: \"UPS\" };\n IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcElectricFlowStorageDeviceTypeEnum = IfcElectricFlowStorageDeviceTypeEnum;\n class IfcElectricGeneratorTypeEnum {\n }\n IfcElectricGeneratorTypeEnum.CHP = { type: 3, value: \"CHP\" };\n IfcElectricGeneratorTypeEnum.ENGINEGENERATOR = { type: 3, value: \"ENGINEGENERATOR\" };\n IfcElectricGeneratorTypeEnum.STANDALONE = { type: 3, value: \"STANDALONE\" };\n IfcElectricGeneratorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcElectricGeneratorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcElectricGeneratorTypeEnum = IfcElectricGeneratorTypeEnum;\n class IfcElectricMotorTypeEnum {\n }\n IfcElectricMotorTypeEnum.DC = { type: 3, value: \"DC\" };\n IfcElectricMotorTypeEnum.INDUCTION = { type: 3, value: \"INDUCTION\" };\n IfcElectricMotorTypeEnum.POLYPHASE = { type: 3, value: \"POLYPHASE\" };\n IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS = { type: 3, value: \"RELUCTANCESYNCHRONOUS\" };\n IfcElectricMotorTypeEnum.SYNCHRONOUS = { type: 3, value: \"SYNCHRONOUS\" };\n IfcElectricMotorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcElectricMotorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcElectricMotorTypeEnum = IfcElectricMotorTypeEnum;\n class IfcElectricTimeControlTypeEnum {\n }\n IfcElectricTimeControlTypeEnum.TIMECLOCK = { type: 3, value: \"TIMECLOCK\" };\n IfcElectricTimeControlTypeEnum.TIMEDELAY = { type: 3, value: \"TIMEDELAY\" };\n IfcElectricTimeControlTypeEnum.RELAY = { type: 3, value: \"RELAY\" };\n IfcElectricTimeControlTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcElectricTimeControlTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcElectricTimeControlTypeEnum = IfcElectricTimeControlTypeEnum;\n class IfcElementAssemblyTypeEnum {\n }\n IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY = { type: 3, value: \"ACCESSORY_ASSEMBLY\" };\n IfcElementAssemblyTypeEnum.ARCH = { type: 3, value: \"ARCH\" };\n IfcElementAssemblyTypeEnum.BEAM_GRID = { type: 3, value: \"BEAM_GRID\" };\n IfcElementAssemblyTypeEnum.BRACED_FRAME = { type: 3, value: \"BRACED_FRAME\" };\n IfcElementAssemblyTypeEnum.GIRDER = { type: 3, value: \"GIRDER\" };\n IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT = { type: 3, value: \"REINFORCEMENT_UNIT\" };\n IfcElementAssemblyTypeEnum.RIGID_FRAME = { type: 3, value: \"RIGID_FRAME\" };\n IfcElementAssemblyTypeEnum.SLAB_FIELD = { type: 3, value: \"SLAB_FIELD\" };\n IfcElementAssemblyTypeEnum.TRUSS = { type: 3, value: \"TRUSS\" };\n IfcElementAssemblyTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcElementAssemblyTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcElementAssemblyTypeEnum = IfcElementAssemblyTypeEnum;\n class IfcElementCompositionEnum {\n }\n IfcElementCompositionEnum.COMPLEX = { type: 3, value: \"COMPLEX\" };\n IfcElementCompositionEnum.ELEMENT = { type: 3, value: \"ELEMENT\" };\n IfcElementCompositionEnum.PARTIAL = { type: 3, value: \"PARTIAL\" };\n IFC42.IfcElementCompositionEnum = IfcElementCompositionEnum;\n class IfcEngineTypeEnum {\n }\n IfcEngineTypeEnum.EXTERNALCOMBUSTION = { type: 3, value: \"EXTERNALCOMBUSTION\" };\n IfcEngineTypeEnum.INTERNALCOMBUSTION = { type: 3, value: \"INTERNALCOMBUSTION\" };\n IfcEngineTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcEngineTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcEngineTypeEnum = IfcEngineTypeEnum;\n class IfcEvaporativeCoolerTypeEnum {\n }\n IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER = { type: 3, value: \"DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER\" };\n IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER = { type: 3, value: \"DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER\" };\n IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER = { type: 3, value: \"DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER\" };\n IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER = { type: 3, value: \"DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER\" };\n IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER = { type: 3, value: \"DIRECTEVAPORATIVEAIRWASHER\" };\n IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER = { type: 3, value: \"INDIRECTEVAPORATIVEPACKAGEAIRCOOLER\" };\n IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL = { type: 3, value: \"INDIRECTEVAPORATIVEWETCOIL\" };\n IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER = { type: 3, value: \"INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER\" };\n IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION = { type: 3, value: \"INDIRECTDIRECTCOMBINATION\" };\n IfcEvaporativeCoolerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcEvaporativeCoolerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcEvaporativeCoolerTypeEnum = IfcEvaporativeCoolerTypeEnum;\n class IfcEvaporatorTypeEnum {\n }\n IfcEvaporatorTypeEnum.DIRECTEXPANSION = { type: 3, value: \"DIRECTEXPANSION\" };\n IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE = { type: 3, value: \"DIRECTEXPANSIONSHELLANDTUBE\" };\n IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE = { type: 3, value: \"DIRECTEXPANSIONTUBEINTUBE\" };\n IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE = { type: 3, value: \"DIRECTEXPANSIONBRAZEDPLATE\" };\n IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE = { type: 3, value: \"FLOODEDSHELLANDTUBE\" };\n IfcEvaporatorTypeEnum.SHELLANDCOIL = { type: 3, value: \"SHELLANDCOIL\" };\n IfcEvaporatorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcEvaporatorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcEvaporatorTypeEnum = IfcEvaporatorTypeEnum;\n class IfcEventTriggerTypeEnum {\n }\n IfcEventTriggerTypeEnum.EVENTRULE = { type: 3, value: \"EVENTRULE\" };\n IfcEventTriggerTypeEnum.EVENTMESSAGE = { type: 3, value: \"EVENTMESSAGE\" };\n IfcEventTriggerTypeEnum.EVENTTIME = { type: 3, value: \"EVENTTIME\" };\n IfcEventTriggerTypeEnum.EVENTCOMPLEX = { type: 3, value: \"EVENTCOMPLEX\" };\n IfcEventTriggerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcEventTriggerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcEventTriggerTypeEnum = IfcEventTriggerTypeEnum;\n class IfcEventTypeEnum {\n }\n IfcEventTypeEnum.STARTEVENT = { type: 3, value: \"STARTEVENT\" };\n IfcEventTypeEnum.ENDEVENT = { type: 3, value: \"ENDEVENT\" };\n IfcEventTypeEnum.INTERMEDIATEEVENT = { type: 3, value: \"INTERMEDIATEEVENT\" };\n IfcEventTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcEventTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcEventTypeEnum = IfcEventTypeEnum;\n class IfcExternalSpatialElementTypeEnum {\n }\n IfcExternalSpatialElementTypeEnum.EXTERNAL = { type: 3, value: \"EXTERNAL\" };\n IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH = { type: 3, value: \"EXTERNAL_EARTH\" };\n IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER = { type: 3, value: \"EXTERNAL_WATER\" };\n IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE = { type: 3, value: \"EXTERNAL_FIRE\" };\n IfcExternalSpatialElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcExternalSpatialElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcExternalSpatialElementTypeEnum = IfcExternalSpatialElementTypeEnum;\n class IfcFanTypeEnum {\n }\n IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED = { type: 3, value: \"CENTRIFUGALFORWARDCURVED\" };\n IfcFanTypeEnum.CENTRIFUGALRADIAL = { type: 3, value: \"CENTRIFUGALRADIAL\" };\n IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED = { type: 3, value: \"CENTRIFUGALBACKWARDINCLINEDCURVED\" };\n IfcFanTypeEnum.CENTRIFUGALAIRFOIL = { type: 3, value: \"CENTRIFUGALAIRFOIL\" };\n IfcFanTypeEnum.TUBEAXIAL = { type: 3, value: \"TUBEAXIAL\" };\n IfcFanTypeEnum.VANEAXIAL = { type: 3, value: \"VANEAXIAL\" };\n IfcFanTypeEnum.PROPELLORAXIAL = { type: 3, value: \"PROPELLORAXIAL\" };\n IfcFanTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcFanTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcFanTypeEnum = IfcFanTypeEnum;\n class IfcFastenerTypeEnum {\n }\n IfcFastenerTypeEnum.GLUE = { type: 3, value: \"GLUE\" };\n IfcFastenerTypeEnum.MORTAR = { type: 3, value: \"MORTAR\" };\n IfcFastenerTypeEnum.WELD = { type: 3, value: \"WELD\" };\n IfcFastenerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcFastenerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcFastenerTypeEnum = IfcFastenerTypeEnum;\n class IfcFilterTypeEnum {\n }\n IfcFilterTypeEnum.AIRPARTICLEFILTER = { type: 3, value: \"AIRPARTICLEFILTER\" };\n IfcFilterTypeEnum.COMPRESSEDAIRFILTER = { type: 3, value: \"COMPRESSEDAIRFILTER\" };\n IfcFilterTypeEnum.ODORFILTER = { type: 3, value: \"ODORFILTER\" };\n IfcFilterTypeEnum.OILFILTER = { type: 3, value: \"OILFILTER\" };\n IfcFilterTypeEnum.STRAINER = { type: 3, value: \"STRAINER\" };\n IfcFilterTypeEnum.WATERFILTER = { type: 3, value: \"WATERFILTER\" };\n IfcFilterTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcFilterTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcFilterTypeEnum = IfcFilterTypeEnum;\n class IfcFireSuppressionTerminalTypeEnum {\n }\n IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET = { type: 3, value: \"BREECHINGINLET\" };\n IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT = { type: 3, value: \"FIREHYDRANT\" };\n IfcFireSuppressionTerminalTypeEnum.HOSEREEL = { type: 3, value: \"HOSEREEL\" };\n IfcFireSuppressionTerminalTypeEnum.SPRINKLER = { type: 3, value: \"SPRINKLER\" };\n IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR = { type: 3, value: \"SPRINKLERDEFLECTOR\" };\n IfcFireSuppressionTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcFireSuppressionTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcFireSuppressionTerminalTypeEnum = IfcFireSuppressionTerminalTypeEnum;\n class IfcFlowDirectionEnum {\n }\n IfcFlowDirectionEnum.SOURCE = { type: 3, value: \"SOURCE\" };\n IfcFlowDirectionEnum.SINK = { type: 3, value: \"SINK\" };\n IfcFlowDirectionEnum.SOURCEANDSINK = { type: 3, value: \"SOURCEANDSINK\" };\n IfcFlowDirectionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcFlowDirectionEnum = IfcFlowDirectionEnum;\n class IfcFlowInstrumentTypeEnum {\n }\n IfcFlowInstrumentTypeEnum.PRESSUREGAUGE = { type: 3, value: \"PRESSUREGAUGE\" };\n IfcFlowInstrumentTypeEnum.THERMOMETER = { type: 3, value: \"THERMOMETER\" };\n IfcFlowInstrumentTypeEnum.AMMETER = { type: 3, value: \"AMMETER\" };\n IfcFlowInstrumentTypeEnum.FREQUENCYMETER = { type: 3, value: \"FREQUENCYMETER\" };\n IfcFlowInstrumentTypeEnum.POWERFACTORMETER = { type: 3, value: \"POWERFACTORMETER\" };\n IfcFlowInstrumentTypeEnum.PHASEANGLEMETER = { type: 3, value: \"PHASEANGLEMETER\" };\n IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK = { type: 3, value: \"VOLTMETER_PEAK\" };\n IfcFlowInstrumentTypeEnum.VOLTMETER_RMS = { type: 3, value: \"VOLTMETER_RMS\" };\n IfcFlowInstrumentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcFlowInstrumentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcFlowInstrumentTypeEnum = IfcFlowInstrumentTypeEnum;\n class IfcFlowMeterTypeEnum {\n }\n IfcFlowMeterTypeEnum.ENERGYMETER = { type: 3, value: \"ENERGYMETER\" };\n IfcFlowMeterTypeEnum.GASMETER = { type: 3, value: \"GASMETER\" };\n IfcFlowMeterTypeEnum.OILMETER = { type: 3, value: \"OILMETER\" };\n IfcFlowMeterTypeEnum.WATERMETER = { type: 3, value: \"WATERMETER\" };\n IfcFlowMeterTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcFlowMeterTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcFlowMeterTypeEnum = IfcFlowMeterTypeEnum;\n class IfcFootingTypeEnum {\n }\n IfcFootingTypeEnum.CAISSON_FOUNDATION = { type: 3, value: \"CAISSON_FOUNDATION\" };\n IfcFootingTypeEnum.FOOTING_BEAM = { type: 3, value: \"FOOTING_BEAM\" };\n IfcFootingTypeEnum.PAD_FOOTING = { type: 3, value: \"PAD_FOOTING\" };\n IfcFootingTypeEnum.PILE_CAP = { type: 3, value: \"PILE_CAP\" };\n IfcFootingTypeEnum.STRIP_FOOTING = { type: 3, value: \"STRIP_FOOTING\" };\n IfcFootingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcFootingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcFootingTypeEnum = IfcFootingTypeEnum;\n class IfcFurnitureTypeEnum {\n }\n IfcFurnitureTypeEnum.CHAIR = { type: 3, value: \"CHAIR\" };\n IfcFurnitureTypeEnum.TABLE = { type: 3, value: \"TABLE\" };\n IfcFurnitureTypeEnum.DESK = { type: 3, value: \"DESK\" };\n IfcFurnitureTypeEnum.BED = { type: 3, value: \"BED\" };\n IfcFurnitureTypeEnum.FILECABINET = { type: 3, value: \"FILECABINET\" };\n IfcFurnitureTypeEnum.SHELF = { type: 3, value: \"SHELF\" };\n IfcFurnitureTypeEnum.SOFA = { type: 3, value: \"SOFA\" };\n IfcFurnitureTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcFurnitureTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcFurnitureTypeEnum = IfcFurnitureTypeEnum;\n class IfcGeographicElementTypeEnum {\n }\n IfcGeographicElementTypeEnum.TERRAIN = { type: 3, value: \"TERRAIN\" };\n IfcGeographicElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcGeographicElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcGeographicElementTypeEnum = IfcGeographicElementTypeEnum;\n class IfcGeometricProjectionEnum {\n }\n IfcGeometricProjectionEnum.GRAPH_VIEW = { type: 3, value: \"GRAPH_VIEW\" };\n IfcGeometricProjectionEnum.SKETCH_VIEW = { type: 3, value: \"SKETCH_VIEW\" };\n IfcGeometricProjectionEnum.MODEL_VIEW = { type: 3, value: \"MODEL_VIEW\" };\n IfcGeometricProjectionEnum.PLAN_VIEW = { type: 3, value: \"PLAN_VIEW\" };\n IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW = { type: 3, value: \"REFLECTED_PLAN_VIEW\" };\n IfcGeometricProjectionEnum.SECTION_VIEW = { type: 3, value: \"SECTION_VIEW\" };\n IfcGeometricProjectionEnum.ELEVATION_VIEW = { type: 3, value: \"ELEVATION_VIEW\" };\n IfcGeometricProjectionEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcGeometricProjectionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcGeometricProjectionEnum = IfcGeometricProjectionEnum;\n class IfcGlobalOrLocalEnum {\n }\n IfcGlobalOrLocalEnum.GLOBAL_COORDS = { type: 3, value: \"GLOBAL_COORDS\" };\n IfcGlobalOrLocalEnum.LOCAL_COORDS = { type: 3, value: \"LOCAL_COORDS\" };\n IFC42.IfcGlobalOrLocalEnum = IfcGlobalOrLocalEnum;\n class IfcGridTypeEnum {\n }\n IfcGridTypeEnum.RECTANGULAR = { type: 3, value: \"RECTANGULAR\" };\n IfcGridTypeEnum.RADIAL = { type: 3, value: \"RADIAL\" };\n IfcGridTypeEnum.TRIANGULAR = { type: 3, value: \"TRIANGULAR\" };\n IfcGridTypeEnum.IRREGULAR = { type: 3, value: \"IRREGULAR\" };\n IfcGridTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcGridTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcGridTypeEnum = IfcGridTypeEnum;\n class IfcHeatExchangerTypeEnum {\n }\n IfcHeatExchangerTypeEnum.PLATE = { type: 3, value: \"PLATE\" };\n IfcHeatExchangerTypeEnum.SHELLANDTUBE = { type: 3, value: \"SHELLANDTUBE\" };\n IfcHeatExchangerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcHeatExchangerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcHeatExchangerTypeEnum = IfcHeatExchangerTypeEnum;\n class IfcHumidifierTypeEnum {\n }\n IfcHumidifierTypeEnum.STEAMINJECTION = { type: 3, value: \"STEAMINJECTION\" };\n IfcHumidifierTypeEnum.ADIABATICAIRWASHER = { type: 3, value: \"ADIABATICAIRWASHER\" };\n IfcHumidifierTypeEnum.ADIABATICPAN = { type: 3, value: \"ADIABATICPAN\" };\n IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT = { type: 3, value: \"ADIABATICWETTEDELEMENT\" };\n IfcHumidifierTypeEnum.ADIABATICATOMIZING = { type: 3, value: \"ADIABATICATOMIZING\" };\n IfcHumidifierTypeEnum.ADIABATICULTRASONIC = { type: 3, value: \"ADIABATICULTRASONIC\" };\n IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA = { type: 3, value: \"ADIABATICRIGIDMEDIA\" };\n IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE = { type: 3, value: \"ADIABATICCOMPRESSEDAIRNOZZLE\" };\n IfcHumidifierTypeEnum.ASSISTEDELECTRIC = { type: 3, value: \"ASSISTEDELECTRIC\" };\n IfcHumidifierTypeEnum.ASSISTEDNATURALGAS = { type: 3, value: \"ASSISTEDNATURALGAS\" };\n IfcHumidifierTypeEnum.ASSISTEDPROPANE = { type: 3, value: \"ASSISTEDPROPANE\" };\n IfcHumidifierTypeEnum.ASSISTEDBUTANE = { type: 3, value: \"ASSISTEDBUTANE\" };\n IfcHumidifierTypeEnum.ASSISTEDSTEAM = { type: 3, value: \"ASSISTEDSTEAM\" };\n IfcHumidifierTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcHumidifierTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcHumidifierTypeEnum = IfcHumidifierTypeEnum;\n class IfcInterceptorTypeEnum {\n }\n IfcInterceptorTypeEnum.CYCLONIC = { type: 3, value: \"CYCLONIC\" };\n IfcInterceptorTypeEnum.GREASE = { type: 3, value: \"GREASE\" };\n IfcInterceptorTypeEnum.OIL = { type: 3, value: \"OIL\" };\n IfcInterceptorTypeEnum.PETROL = { type: 3, value: \"PETROL\" };\n IfcInterceptorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcInterceptorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcInterceptorTypeEnum = IfcInterceptorTypeEnum;\n class IfcInternalOrExternalEnum {\n }\n IfcInternalOrExternalEnum.INTERNAL = { type: 3, value: \"INTERNAL\" };\n IfcInternalOrExternalEnum.EXTERNAL = { type: 3, value: \"EXTERNAL\" };\n IfcInternalOrExternalEnum.EXTERNAL_EARTH = { type: 3, value: \"EXTERNAL_EARTH\" };\n IfcInternalOrExternalEnum.EXTERNAL_WATER = { type: 3, value: \"EXTERNAL_WATER\" };\n IfcInternalOrExternalEnum.EXTERNAL_FIRE = { type: 3, value: \"EXTERNAL_FIRE\" };\n IfcInternalOrExternalEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcInternalOrExternalEnum = IfcInternalOrExternalEnum;\n class IfcInventoryTypeEnum {\n }\n IfcInventoryTypeEnum.ASSETINVENTORY = { type: 3, value: \"ASSETINVENTORY\" };\n IfcInventoryTypeEnum.SPACEINVENTORY = { type: 3, value: \"SPACEINVENTORY\" };\n IfcInventoryTypeEnum.FURNITUREINVENTORY = { type: 3, value: \"FURNITUREINVENTORY\" };\n IfcInventoryTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcInventoryTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcInventoryTypeEnum = IfcInventoryTypeEnum;\n class IfcJunctionBoxTypeEnum {\n }\n IfcJunctionBoxTypeEnum.DATA = { type: 3, value: \"DATA\" };\n IfcJunctionBoxTypeEnum.POWER = { type: 3, value: \"POWER\" };\n IfcJunctionBoxTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcJunctionBoxTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcJunctionBoxTypeEnum = IfcJunctionBoxTypeEnum;\n class IfcKnotType {\n }\n IfcKnotType.UNIFORM_KNOTS = { type: 3, value: \"UNIFORM_KNOTS\" };\n IfcKnotType.QUASI_UNIFORM_KNOTS = { type: 3, value: \"QUASI_UNIFORM_KNOTS\" };\n IfcKnotType.PIECEWISE_BEZIER_KNOTS = { type: 3, value: \"PIECEWISE_BEZIER_KNOTS\" };\n IfcKnotType.UNSPECIFIED = { type: 3, value: \"UNSPECIFIED\" };\n IFC42.IfcKnotType = IfcKnotType;\n class IfcLaborResourceTypeEnum {\n }\n IfcLaborResourceTypeEnum.ADMINISTRATION = { type: 3, value: \"ADMINISTRATION\" };\n IfcLaborResourceTypeEnum.CARPENTRY = { type: 3, value: \"CARPENTRY\" };\n IfcLaborResourceTypeEnum.CLEANING = { type: 3, value: \"CLEANING\" };\n IfcLaborResourceTypeEnum.CONCRETE = { type: 3, value: \"CONCRETE\" };\n IfcLaborResourceTypeEnum.DRYWALL = { type: 3, value: \"DRYWALL\" };\n IfcLaborResourceTypeEnum.ELECTRIC = { type: 3, value: \"ELECTRIC\" };\n IfcLaborResourceTypeEnum.FINISHING = { type: 3, value: \"FINISHING\" };\n IfcLaborResourceTypeEnum.FLOORING = { type: 3, value: \"FLOORING\" };\n IfcLaborResourceTypeEnum.GENERAL = { type: 3, value: \"GENERAL\" };\n IfcLaborResourceTypeEnum.HVAC = { type: 3, value: \"HVAC\" };\n IfcLaborResourceTypeEnum.LANDSCAPING = { type: 3, value: \"LANDSCAPING\" };\n IfcLaborResourceTypeEnum.MASONRY = { type: 3, value: \"MASONRY\" };\n IfcLaborResourceTypeEnum.PAINTING = { type: 3, value: \"PAINTING\" };\n IfcLaborResourceTypeEnum.PAVING = { type: 3, value: \"PAVING\" };\n IfcLaborResourceTypeEnum.PLUMBING = { type: 3, value: \"PLUMBING\" };\n IfcLaborResourceTypeEnum.ROOFING = { type: 3, value: \"ROOFING\" };\n IfcLaborResourceTypeEnum.SITEGRADING = { type: 3, value: \"SITEGRADING\" };\n IfcLaborResourceTypeEnum.STEELWORK = { type: 3, value: \"STEELWORK\" };\n IfcLaborResourceTypeEnum.SURVEYING = { type: 3, value: \"SURVEYING\" };\n IfcLaborResourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcLaborResourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcLaborResourceTypeEnum = IfcLaborResourceTypeEnum;\n class IfcLampTypeEnum {\n }\n IfcLampTypeEnum.COMPACTFLUORESCENT = { type: 3, value: \"COMPACTFLUORESCENT\" };\n IfcLampTypeEnum.FLUORESCENT = { type: 3, value: \"FLUORESCENT\" };\n IfcLampTypeEnum.HALOGEN = { type: 3, value: \"HALOGEN\" };\n IfcLampTypeEnum.HIGHPRESSUREMERCURY = { type: 3, value: \"HIGHPRESSUREMERCURY\" };\n IfcLampTypeEnum.HIGHPRESSURESODIUM = { type: 3, value: \"HIGHPRESSURESODIUM\" };\n IfcLampTypeEnum.LED = { type: 3, value: \"LED\" };\n IfcLampTypeEnum.METALHALIDE = { type: 3, value: \"METALHALIDE\" };\n IfcLampTypeEnum.OLED = { type: 3, value: \"OLED\" };\n IfcLampTypeEnum.TUNGSTENFILAMENT = { type: 3, value: \"TUNGSTENFILAMENT\" };\n IfcLampTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcLampTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcLampTypeEnum = IfcLampTypeEnum;\n class IfcLayerSetDirectionEnum {\n }\n IfcLayerSetDirectionEnum.AXIS1 = { type: 3, value: \"AXIS1\" };\n IfcLayerSetDirectionEnum.AXIS2 = { type: 3, value: \"AXIS2\" };\n IfcLayerSetDirectionEnum.AXIS3 = { type: 3, value: \"AXIS3\" };\n IFC42.IfcLayerSetDirectionEnum = IfcLayerSetDirectionEnum;\n class IfcLightDistributionCurveEnum {\n }\n IfcLightDistributionCurveEnum.TYPE_A = { type: 3, value: \"TYPE_A\" };\n IfcLightDistributionCurveEnum.TYPE_B = { type: 3, value: \"TYPE_B\" };\n IfcLightDistributionCurveEnum.TYPE_C = { type: 3, value: \"TYPE_C\" };\n IfcLightDistributionCurveEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcLightDistributionCurveEnum = IfcLightDistributionCurveEnum;\n class IfcLightEmissionSourceEnum {\n }\n IfcLightEmissionSourceEnum.COMPACTFLUORESCENT = { type: 3, value: \"COMPACTFLUORESCENT\" };\n IfcLightEmissionSourceEnum.FLUORESCENT = { type: 3, value: \"FLUORESCENT\" };\n IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY = { type: 3, value: \"HIGHPRESSUREMERCURY\" };\n IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM = { type: 3, value: \"HIGHPRESSURESODIUM\" };\n IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE = { type: 3, value: \"LIGHTEMITTINGDIODE\" };\n IfcLightEmissionSourceEnum.LOWPRESSURESODIUM = { type: 3, value: \"LOWPRESSURESODIUM\" };\n IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN = { type: 3, value: \"LOWVOLTAGEHALOGEN\" };\n IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN = { type: 3, value: \"MAINVOLTAGEHALOGEN\" };\n IfcLightEmissionSourceEnum.METALHALIDE = { type: 3, value: \"METALHALIDE\" };\n IfcLightEmissionSourceEnum.TUNGSTENFILAMENT = { type: 3, value: \"TUNGSTENFILAMENT\" };\n IfcLightEmissionSourceEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcLightEmissionSourceEnum = IfcLightEmissionSourceEnum;\n class IfcLightFixtureTypeEnum {\n }\n IfcLightFixtureTypeEnum.POINTSOURCE = { type: 3, value: \"POINTSOURCE\" };\n IfcLightFixtureTypeEnum.DIRECTIONSOURCE = { type: 3, value: \"DIRECTIONSOURCE\" };\n IfcLightFixtureTypeEnum.SECURITYLIGHTING = { type: 3, value: \"SECURITYLIGHTING\" };\n IfcLightFixtureTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcLightFixtureTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcLightFixtureTypeEnum = IfcLightFixtureTypeEnum;\n class IfcLoadGroupTypeEnum {\n }\n IfcLoadGroupTypeEnum.LOAD_GROUP = { type: 3, value: \"LOAD_GROUP\" };\n IfcLoadGroupTypeEnum.LOAD_CASE = { type: 3, value: \"LOAD_CASE\" };\n IfcLoadGroupTypeEnum.LOAD_COMBINATION = { type: 3, value: \"LOAD_COMBINATION\" };\n IfcLoadGroupTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcLoadGroupTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcLoadGroupTypeEnum = IfcLoadGroupTypeEnum;\n class IfcLogicalOperatorEnum {\n }\n IfcLogicalOperatorEnum.LOGICALAND = { type: 3, value: \"LOGICALAND\" };\n IfcLogicalOperatorEnum.LOGICALOR = { type: 3, value: \"LOGICALOR\" };\n IfcLogicalOperatorEnum.LOGICALXOR = { type: 3, value: \"LOGICALXOR\" };\n IfcLogicalOperatorEnum.LOGICALNOTAND = { type: 3, value: \"LOGICALNOTAND\" };\n IfcLogicalOperatorEnum.LOGICALNOTOR = { type: 3, value: \"LOGICALNOTOR\" };\n IFC42.IfcLogicalOperatorEnum = IfcLogicalOperatorEnum;\n class IfcMechanicalFastenerTypeEnum {\n }\n IfcMechanicalFastenerTypeEnum.ANCHORBOLT = { type: 3, value: \"ANCHORBOLT\" };\n IfcMechanicalFastenerTypeEnum.BOLT = { type: 3, value: \"BOLT\" };\n IfcMechanicalFastenerTypeEnum.DOWEL = { type: 3, value: \"DOWEL\" };\n IfcMechanicalFastenerTypeEnum.NAIL = { type: 3, value: \"NAIL\" };\n IfcMechanicalFastenerTypeEnum.NAILPLATE = { type: 3, value: \"NAILPLATE\" };\n IfcMechanicalFastenerTypeEnum.RIVET = { type: 3, value: \"RIVET\" };\n IfcMechanicalFastenerTypeEnum.SCREW = { type: 3, value: \"SCREW\" };\n IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR = { type: 3, value: \"SHEARCONNECTOR\" };\n IfcMechanicalFastenerTypeEnum.STAPLE = { type: 3, value: \"STAPLE\" };\n IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR = { type: 3, value: \"STUDSHEARCONNECTOR\" };\n IfcMechanicalFastenerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcMechanicalFastenerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcMechanicalFastenerTypeEnum = IfcMechanicalFastenerTypeEnum;\n class IfcMedicalDeviceTypeEnum {\n }\n IfcMedicalDeviceTypeEnum.AIRSTATION = { type: 3, value: \"AIRSTATION\" };\n IfcMedicalDeviceTypeEnum.FEEDAIRUNIT = { type: 3, value: \"FEEDAIRUNIT\" };\n IfcMedicalDeviceTypeEnum.OXYGENGENERATOR = { type: 3, value: \"OXYGENGENERATOR\" };\n IfcMedicalDeviceTypeEnum.OXYGENPLANT = { type: 3, value: \"OXYGENPLANT\" };\n IfcMedicalDeviceTypeEnum.VACUUMSTATION = { type: 3, value: \"VACUUMSTATION\" };\n IfcMedicalDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcMedicalDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcMedicalDeviceTypeEnum = IfcMedicalDeviceTypeEnum;\n class IfcMemberTypeEnum {\n }\n IfcMemberTypeEnum.BRACE = { type: 3, value: \"BRACE\" };\n IfcMemberTypeEnum.CHORD = { type: 3, value: \"CHORD\" };\n IfcMemberTypeEnum.COLLAR = { type: 3, value: \"COLLAR\" };\n IfcMemberTypeEnum.MEMBER = { type: 3, value: \"MEMBER\" };\n IfcMemberTypeEnum.MULLION = { type: 3, value: \"MULLION\" };\n IfcMemberTypeEnum.PLATE = { type: 3, value: \"PLATE\" };\n IfcMemberTypeEnum.POST = { type: 3, value: \"POST\" };\n IfcMemberTypeEnum.PURLIN = { type: 3, value: \"PURLIN\" };\n IfcMemberTypeEnum.RAFTER = { type: 3, value: \"RAFTER\" };\n IfcMemberTypeEnum.STRINGER = { type: 3, value: \"STRINGER\" };\n IfcMemberTypeEnum.STRUT = { type: 3, value: \"STRUT\" };\n IfcMemberTypeEnum.STUD = { type: 3, value: \"STUD\" };\n IfcMemberTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcMemberTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcMemberTypeEnum = IfcMemberTypeEnum;\n class IfcMotorConnectionTypeEnum {\n }\n IfcMotorConnectionTypeEnum.BELTDRIVE = { type: 3, value: \"BELTDRIVE\" };\n IfcMotorConnectionTypeEnum.COUPLING = { type: 3, value: \"COUPLING\" };\n IfcMotorConnectionTypeEnum.DIRECTDRIVE = { type: 3, value: \"DIRECTDRIVE\" };\n IfcMotorConnectionTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcMotorConnectionTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcMotorConnectionTypeEnum = IfcMotorConnectionTypeEnum;\n class IfcNullStyle {\n }\n IfcNullStyle.NULL = { type: 3, value: \"NULL\" };\n IFC42.IfcNullStyle = IfcNullStyle;\n class IfcObjectTypeEnum {\n }\n IfcObjectTypeEnum.PRODUCT = { type: 3, value: \"PRODUCT\" };\n IfcObjectTypeEnum.PROCESS = { type: 3, value: \"PROCESS\" };\n IfcObjectTypeEnum.CONTROL = { type: 3, value: \"CONTROL\" };\n IfcObjectTypeEnum.RESOURCE = { type: 3, value: \"RESOURCE\" };\n IfcObjectTypeEnum.ACTOR = { type: 3, value: \"ACTOR\" };\n IfcObjectTypeEnum.GROUP = { type: 3, value: \"GROUP\" };\n IfcObjectTypeEnum.PROJECT = { type: 3, value: \"PROJECT\" };\n IfcObjectTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcObjectTypeEnum = IfcObjectTypeEnum;\n class IfcObjectiveEnum {\n }\n IfcObjectiveEnum.CODECOMPLIANCE = { type: 3, value: \"CODECOMPLIANCE\" };\n IfcObjectiveEnum.CODEWAIVER = { type: 3, value: \"CODEWAIVER\" };\n IfcObjectiveEnum.DESIGNINTENT = { type: 3, value: \"DESIGNINTENT\" };\n IfcObjectiveEnum.EXTERNAL = { type: 3, value: \"EXTERNAL\" };\n IfcObjectiveEnum.HEALTHANDSAFETY = { type: 3, value: \"HEALTHANDSAFETY\" };\n IfcObjectiveEnum.MERGECONFLICT = { type: 3, value: \"MERGECONFLICT\" };\n IfcObjectiveEnum.MODELVIEW = { type: 3, value: \"MODELVIEW\" };\n IfcObjectiveEnum.PARAMETER = { type: 3, value: \"PARAMETER\" };\n IfcObjectiveEnum.REQUIREMENT = { type: 3, value: \"REQUIREMENT\" };\n IfcObjectiveEnum.SPECIFICATION = { type: 3, value: \"SPECIFICATION\" };\n IfcObjectiveEnum.TRIGGERCONDITION = { type: 3, value: \"TRIGGERCONDITION\" };\n IfcObjectiveEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcObjectiveEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcObjectiveEnum = IfcObjectiveEnum;\n class IfcOccupantTypeEnum {\n }\n IfcOccupantTypeEnum.ASSIGNEE = { type: 3, value: \"ASSIGNEE\" };\n IfcOccupantTypeEnum.ASSIGNOR = { type: 3, value: \"ASSIGNOR\" };\n IfcOccupantTypeEnum.LESSEE = { type: 3, value: \"LESSEE\" };\n IfcOccupantTypeEnum.LESSOR = { type: 3, value: \"LESSOR\" };\n IfcOccupantTypeEnum.LETTINGAGENT = { type: 3, value: \"LETTINGAGENT\" };\n IfcOccupantTypeEnum.OWNER = { type: 3, value: \"OWNER\" };\n IfcOccupantTypeEnum.TENANT = { type: 3, value: \"TENANT\" };\n IfcOccupantTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcOccupantTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcOccupantTypeEnum = IfcOccupantTypeEnum;\n class IfcOpeningElementTypeEnum {\n }\n IfcOpeningElementTypeEnum.OPENING = { type: 3, value: \"OPENING\" };\n IfcOpeningElementTypeEnum.RECESS = { type: 3, value: \"RECESS\" };\n IfcOpeningElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcOpeningElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcOpeningElementTypeEnum = IfcOpeningElementTypeEnum;\n class IfcOutletTypeEnum {\n }\n IfcOutletTypeEnum.AUDIOVISUALOUTLET = { type: 3, value: \"AUDIOVISUALOUTLET\" };\n IfcOutletTypeEnum.COMMUNICATIONSOUTLET = { type: 3, value: \"COMMUNICATIONSOUTLET\" };\n IfcOutletTypeEnum.POWEROUTLET = { type: 3, value: \"POWEROUTLET\" };\n IfcOutletTypeEnum.DATAOUTLET = { type: 3, value: \"DATAOUTLET\" };\n IfcOutletTypeEnum.TELEPHONEOUTLET = { type: 3, value: \"TELEPHONEOUTLET\" };\n IfcOutletTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcOutletTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcOutletTypeEnum = IfcOutletTypeEnum;\n class IfcPerformanceHistoryTypeEnum {\n }\n IfcPerformanceHistoryTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcPerformanceHistoryTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcPerformanceHistoryTypeEnum = IfcPerformanceHistoryTypeEnum;\n class IfcPermeableCoveringOperationEnum {\n }\n IfcPermeableCoveringOperationEnum.GRILL = { type: 3, value: \"GRILL\" };\n IfcPermeableCoveringOperationEnum.LOUVER = { type: 3, value: \"LOUVER\" };\n IfcPermeableCoveringOperationEnum.SCREEN = { type: 3, value: \"SCREEN\" };\n IfcPermeableCoveringOperationEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcPermeableCoveringOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcPermeableCoveringOperationEnum = IfcPermeableCoveringOperationEnum;\n class IfcPermitTypeEnum {\n }\n IfcPermitTypeEnum.ACCESS = { type: 3, value: \"ACCESS\" };\n IfcPermitTypeEnum.BUILDING = { type: 3, value: \"BUILDING\" };\n IfcPermitTypeEnum.WORK = { type: 3, value: \"WORK\" };\n IfcPermitTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcPermitTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcPermitTypeEnum = IfcPermitTypeEnum;\n class IfcPhysicalOrVirtualEnum {\n }\n IfcPhysicalOrVirtualEnum.PHYSICAL = { type: 3, value: \"PHYSICAL\" };\n IfcPhysicalOrVirtualEnum.VIRTUAL = { type: 3, value: \"VIRTUAL\" };\n IfcPhysicalOrVirtualEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcPhysicalOrVirtualEnum = IfcPhysicalOrVirtualEnum;\n class IfcPileConstructionEnum {\n }\n IfcPileConstructionEnum.CAST_IN_PLACE = { type: 3, value: \"CAST_IN_PLACE\" };\n IfcPileConstructionEnum.COMPOSITE = { type: 3, value: \"COMPOSITE\" };\n IfcPileConstructionEnum.PRECAST_CONCRETE = { type: 3, value: \"PRECAST_CONCRETE\" };\n IfcPileConstructionEnum.PREFAB_STEEL = { type: 3, value: \"PREFAB_STEEL\" };\n IfcPileConstructionEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcPileConstructionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcPileConstructionEnum = IfcPileConstructionEnum;\n class IfcPileTypeEnum {\n }\n IfcPileTypeEnum.BORED = { type: 3, value: \"BORED\" };\n IfcPileTypeEnum.DRIVEN = { type: 3, value: \"DRIVEN\" };\n IfcPileTypeEnum.JETGROUTING = { type: 3, value: \"JETGROUTING\" };\n IfcPileTypeEnum.COHESION = { type: 3, value: \"COHESION\" };\n IfcPileTypeEnum.FRICTION = { type: 3, value: \"FRICTION\" };\n IfcPileTypeEnum.SUPPORT = { type: 3, value: \"SUPPORT\" };\n IfcPileTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcPileTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcPileTypeEnum = IfcPileTypeEnum;\n class IfcPipeFittingTypeEnum {\n }\n IfcPipeFittingTypeEnum.BEND = { type: 3, value: \"BEND\" };\n IfcPipeFittingTypeEnum.CONNECTOR = { type: 3, value: \"CONNECTOR\" };\n IfcPipeFittingTypeEnum.ENTRY = { type: 3, value: \"ENTRY\" };\n IfcPipeFittingTypeEnum.EXIT = { type: 3, value: \"EXIT\" };\n IfcPipeFittingTypeEnum.JUNCTION = { type: 3, value: \"JUNCTION\" };\n IfcPipeFittingTypeEnum.OBSTRUCTION = { type: 3, value: \"OBSTRUCTION\" };\n IfcPipeFittingTypeEnum.TRANSITION = { type: 3, value: \"TRANSITION\" };\n IfcPipeFittingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcPipeFittingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcPipeFittingTypeEnum = IfcPipeFittingTypeEnum;\n class IfcPipeSegmentTypeEnum {\n }\n IfcPipeSegmentTypeEnum.CULVERT = { type: 3, value: \"CULVERT\" };\n IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: \"FLEXIBLESEGMENT\" };\n IfcPipeSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: \"RIGIDSEGMENT\" };\n IfcPipeSegmentTypeEnum.GUTTER = { type: 3, value: \"GUTTER\" };\n IfcPipeSegmentTypeEnum.SPOOL = { type: 3, value: \"SPOOL\" };\n IfcPipeSegmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcPipeSegmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcPipeSegmentTypeEnum = IfcPipeSegmentTypeEnum;\n class IfcPlateTypeEnum {\n }\n IfcPlateTypeEnum.CURTAIN_PANEL = { type: 3, value: \"CURTAIN_PANEL\" };\n IfcPlateTypeEnum.SHEET = { type: 3, value: \"SHEET\" };\n IfcPlateTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcPlateTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcPlateTypeEnum = IfcPlateTypeEnum;\n class IfcPreferredSurfaceCurveRepresentation {\n }\n IfcPreferredSurfaceCurveRepresentation.CURVE3D = { type: 3, value: \"CURVE3D\" };\n IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 = { type: 3, value: \"PCURVE_S1\" };\n IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 = { type: 3, value: \"PCURVE_S2\" };\n IFC42.IfcPreferredSurfaceCurveRepresentation = IfcPreferredSurfaceCurveRepresentation;\n class IfcProcedureTypeEnum {\n }\n IfcProcedureTypeEnum.ADVICE_CAUTION = { type: 3, value: \"ADVICE_CAUTION\" };\n IfcProcedureTypeEnum.ADVICE_NOTE = { type: 3, value: \"ADVICE_NOTE\" };\n IfcProcedureTypeEnum.ADVICE_WARNING = { type: 3, value: \"ADVICE_WARNING\" };\n IfcProcedureTypeEnum.CALIBRATION = { type: 3, value: \"CALIBRATION\" };\n IfcProcedureTypeEnum.DIAGNOSTIC = { type: 3, value: \"DIAGNOSTIC\" };\n IfcProcedureTypeEnum.SHUTDOWN = { type: 3, value: \"SHUTDOWN\" };\n IfcProcedureTypeEnum.STARTUP = { type: 3, value: \"STARTUP\" };\n IfcProcedureTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcProcedureTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcProcedureTypeEnum = IfcProcedureTypeEnum;\n class IfcProfileTypeEnum {\n }\n IfcProfileTypeEnum.CURVE = { type: 3, value: \"CURVE\" };\n IfcProfileTypeEnum.AREA = { type: 3, value: \"AREA\" };\n IFC42.IfcProfileTypeEnum = IfcProfileTypeEnum;\n class IfcProjectOrderTypeEnum {\n }\n IfcProjectOrderTypeEnum.CHANGEORDER = { type: 3, value: \"CHANGEORDER\" };\n IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER = { type: 3, value: \"MAINTENANCEWORKORDER\" };\n IfcProjectOrderTypeEnum.MOVEORDER = { type: 3, value: \"MOVEORDER\" };\n IfcProjectOrderTypeEnum.PURCHASEORDER = { type: 3, value: \"PURCHASEORDER\" };\n IfcProjectOrderTypeEnum.WORKORDER = { type: 3, value: \"WORKORDER\" };\n IfcProjectOrderTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcProjectOrderTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcProjectOrderTypeEnum = IfcProjectOrderTypeEnum;\n class IfcProjectedOrTrueLengthEnum {\n }\n IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH = { type: 3, value: \"PROJECTED_LENGTH\" };\n IfcProjectedOrTrueLengthEnum.TRUE_LENGTH = { type: 3, value: \"TRUE_LENGTH\" };\n IFC42.IfcProjectedOrTrueLengthEnum = IfcProjectedOrTrueLengthEnum;\n class IfcProjectionElementTypeEnum {\n }\n IfcProjectionElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcProjectionElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcProjectionElementTypeEnum = IfcProjectionElementTypeEnum;\n class IfcPropertySetTemplateTypeEnum {\n }\n IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY = { type: 3, value: \"PSET_TYPEDRIVENONLY\" };\n IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE = { type: 3, value: \"PSET_TYPEDRIVENOVERRIDE\" };\n IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN = { type: 3, value: \"PSET_OCCURRENCEDRIVEN\" };\n IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN = { type: 3, value: \"PSET_PERFORMANCEDRIVEN\" };\n IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY = { type: 3, value: \"QTO_TYPEDRIVENONLY\" };\n IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE = { type: 3, value: \"QTO_TYPEDRIVENOVERRIDE\" };\n IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN = { type: 3, value: \"QTO_OCCURRENCEDRIVEN\" };\n IfcPropertySetTemplateTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcPropertySetTemplateTypeEnum = IfcPropertySetTemplateTypeEnum;\n class IfcProtectiveDeviceTrippingUnitTypeEnum {\n }\n IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC = { type: 3, value: \"ELECTRONIC\" };\n IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC = { type: 3, value: \"ELECTROMAGNETIC\" };\n IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT = { type: 3, value: \"RESIDUALCURRENT\" };\n IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL = { type: 3, value: \"THERMAL\" };\n IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcProtectiveDeviceTrippingUnitTypeEnum = IfcProtectiveDeviceTrippingUnitTypeEnum;\n class IfcProtectiveDeviceTypeEnum {\n }\n IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER = { type: 3, value: \"CIRCUITBREAKER\" };\n IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER = { type: 3, value: \"EARTHLEAKAGECIRCUITBREAKER\" };\n IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH = { type: 3, value: \"EARTHINGSWITCH\" };\n IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR = { type: 3, value: \"FUSEDISCONNECTOR\" };\n IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER = { type: 3, value: \"RESIDUALCURRENTCIRCUITBREAKER\" };\n IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH = { type: 3, value: \"RESIDUALCURRENTSWITCH\" };\n IfcProtectiveDeviceTypeEnum.VARISTOR = { type: 3, value: \"VARISTOR\" };\n IfcProtectiveDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcProtectiveDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcProtectiveDeviceTypeEnum = IfcProtectiveDeviceTypeEnum;\n class IfcPumpTypeEnum {\n }\n IfcPumpTypeEnum.CIRCULATOR = { type: 3, value: \"CIRCULATOR\" };\n IfcPumpTypeEnum.ENDSUCTION = { type: 3, value: \"ENDSUCTION\" };\n IfcPumpTypeEnum.SPLITCASE = { type: 3, value: \"SPLITCASE\" };\n IfcPumpTypeEnum.SUBMERSIBLEPUMP = { type: 3, value: \"SUBMERSIBLEPUMP\" };\n IfcPumpTypeEnum.SUMPPUMP = { type: 3, value: \"SUMPPUMP\" };\n IfcPumpTypeEnum.VERTICALINLINE = { type: 3, value: \"VERTICALINLINE\" };\n IfcPumpTypeEnum.VERTICALTURBINE = { type: 3, value: \"VERTICALTURBINE\" };\n IfcPumpTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcPumpTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcPumpTypeEnum = IfcPumpTypeEnum;\n class IfcRailingTypeEnum {\n }\n IfcRailingTypeEnum.HANDRAIL = { type: 3, value: \"HANDRAIL\" };\n IfcRailingTypeEnum.GUARDRAIL = { type: 3, value: \"GUARDRAIL\" };\n IfcRailingTypeEnum.BALUSTRADE = { type: 3, value: \"BALUSTRADE\" };\n IfcRailingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcRailingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcRailingTypeEnum = IfcRailingTypeEnum;\n class IfcRampFlightTypeEnum {\n }\n IfcRampFlightTypeEnum.STRAIGHT = { type: 3, value: \"STRAIGHT\" };\n IfcRampFlightTypeEnum.SPIRAL = { type: 3, value: \"SPIRAL\" };\n IfcRampFlightTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcRampFlightTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcRampFlightTypeEnum = IfcRampFlightTypeEnum;\n class IfcRampTypeEnum {\n }\n IfcRampTypeEnum.STRAIGHT_RUN_RAMP = { type: 3, value: \"STRAIGHT_RUN_RAMP\" };\n IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP = { type: 3, value: \"TWO_STRAIGHT_RUN_RAMP\" };\n IfcRampTypeEnum.QUARTER_TURN_RAMP = { type: 3, value: \"QUARTER_TURN_RAMP\" };\n IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP = { type: 3, value: \"TWO_QUARTER_TURN_RAMP\" };\n IfcRampTypeEnum.HALF_TURN_RAMP = { type: 3, value: \"HALF_TURN_RAMP\" };\n IfcRampTypeEnum.SPIRAL_RAMP = { type: 3, value: \"SPIRAL_RAMP\" };\n IfcRampTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcRampTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcRampTypeEnum = IfcRampTypeEnum;\n class IfcRecurrenceTypeEnum {\n }\n IfcRecurrenceTypeEnum.DAILY = { type: 3, value: \"DAILY\" };\n IfcRecurrenceTypeEnum.WEEKLY = { type: 3, value: \"WEEKLY\" };\n IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH = { type: 3, value: \"MONTHLY_BY_DAY_OF_MONTH\" };\n IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION = { type: 3, value: \"MONTHLY_BY_POSITION\" };\n IfcRecurrenceTypeEnum.BY_DAY_COUNT = { type: 3, value: \"BY_DAY_COUNT\" };\n IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT = { type: 3, value: \"BY_WEEKDAY_COUNT\" };\n IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH = { type: 3, value: \"YEARLY_BY_DAY_OF_MONTH\" };\n IfcRecurrenceTypeEnum.YEARLY_BY_POSITION = { type: 3, value: \"YEARLY_BY_POSITION\" };\n IFC42.IfcRecurrenceTypeEnum = IfcRecurrenceTypeEnum;\n class IfcReflectanceMethodEnum {\n }\n IfcReflectanceMethodEnum.BLINN = { type: 3, value: \"BLINN\" };\n IfcReflectanceMethodEnum.FLAT = { type: 3, value: \"FLAT\" };\n IfcReflectanceMethodEnum.GLASS = { type: 3, value: \"GLASS\" };\n IfcReflectanceMethodEnum.MATT = { type: 3, value: \"MATT\" };\n IfcReflectanceMethodEnum.METAL = { type: 3, value: \"METAL\" };\n IfcReflectanceMethodEnum.MIRROR = { type: 3, value: \"MIRROR\" };\n IfcReflectanceMethodEnum.PHONG = { type: 3, value: \"PHONG\" };\n IfcReflectanceMethodEnum.PLASTIC = { type: 3, value: \"PLASTIC\" };\n IfcReflectanceMethodEnum.STRAUSS = { type: 3, value: \"STRAUSS\" };\n IfcReflectanceMethodEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcReflectanceMethodEnum = IfcReflectanceMethodEnum;\n class IfcReinforcingBarRoleEnum {\n }\n IfcReinforcingBarRoleEnum.MAIN = { type: 3, value: \"MAIN\" };\n IfcReinforcingBarRoleEnum.SHEAR = { type: 3, value: \"SHEAR\" };\n IfcReinforcingBarRoleEnum.LIGATURE = { type: 3, value: \"LIGATURE\" };\n IfcReinforcingBarRoleEnum.STUD = { type: 3, value: \"STUD\" };\n IfcReinforcingBarRoleEnum.PUNCHING = { type: 3, value: \"PUNCHING\" };\n IfcReinforcingBarRoleEnum.EDGE = { type: 3, value: \"EDGE\" };\n IfcReinforcingBarRoleEnum.RING = { type: 3, value: \"RING\" };\n IfcReinforcingBarRoleEnum.ANCHORING = { type: 3, value: \"ANCHORING\" };\n IfcReinforcingBarRoleEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcReinforcingBarRoleEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcReinforcingBarRoleEnum = IfcReinforcingBarRoleEnum;\n class IfcReinforcingBarSurfaceEnum {\n }\n IfcReinforcingBarSurfaceEnum.PLAIN = { type: 3, value: \"PLAIN\" };\n IfcReinforcingBarSurfaceEnum.TEXTURED = { type: 3, value: \"TEXTURED\" };\n IFC42.IfcReinforcingBarSurfaceEnum = IfcReinforcingBarSurfaceEnum;\n class IfcReinforcingBarTypeEnum {\n }\n IfcReinforcingBarTypeEnum.ANCHORING = { type: 3, value: \"ANCHORING\" };\n IfcReinforcingBarTypeEnum.EDGE = { type: 3, value: \"EDGE\" };\n IfcReinforcingBarTypeEnum.LIGATURE = { type: 3, value: \"LIGATURE\" };\n IfcReinforcingBarTypeEnum.MAIN = { type: 3, value: \"MAIN\" };\n IfcReinforcingBarTypeEnum.PUNCHING = { type: 3, value: \"PUNCHING\" };\n IfcReinforcingBarTypeEnum.RING = { type: 3, value: \"RING\" };\n IfcReinforcingBarTypeEnum.SHEAR = { type: 3, value: \"SHEAR\" };\n IfcReinforcingBarTypeEnum.STUD = { type: 3, value: \"STUD\" };\n IfcReinforcingBarTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcReinforcingBarTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcReinforcingBarTypeEnum = IfcReinforcingBarTypeEnum;\n class IfcReinforcingMeshTypeEnum {\n }\n IfcReinforcingMeshTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcReinforcingMeshTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcReinforcingMeshTypeEnum = IfcReinforcingMeshTypeEnum;\n class IfcRoleEnum {\n }\n IfcRoleEnum.SUPPLIER = { type: 3, value: \"SUPPLIER\" };\n IfcRoleEnum.MANUFACTURER = { type: 3, value: \"MANUFACTURER\" };\n IfcRoleEnum.CONTRACTOR = { type: 3, value: \"CONTRACTOR\" };\n IfcRoleEnum.SUBCONTRACTOR = { type: 3, value: \"SUBCONTRACTOR\" };\n IfcRoleEnum.ARCHITECT = { type: 3, value: \"ARCHITECT\" };\n IfcRoleEnum.STRUCTURALENGINEER = { type: 3, value: \"STRUCTURALENGINEER\" };\n IfcRoleEnum.COSTENGINEER = { type: 3, value: \"COSTENGINEER\" };\n IfcRoleEnum.CLIENT = { type: 3, value: \"CLIENT\" };\n IfcRoleEnum.BUILDINGOWNER = { type: 3, value: \"BUILDINGOWNER\" };\n IfcRoleEnum.BUILDINGOPERATOR = { type: 3, value: \"BUILDINGOPERATOR\" };\n IfcRoleEnum.MECHANICALENGINEER = { type: 3, value: \"MECHANICALENGINEER\" };\n IfcRoleEnum.ELECTRICALENGINEER = { type: 3, value: \"ELECTRICALENGINEER\" };\n IfcRoleEnum.PROJECTMANAGER = { type: 3, value: \"PROJECTMANAGER\" };\n IfcRoleEnum.FACILITIESMANAGER = { type: 3, value: \"FACILITIESMANAGER\" };\n IfcRoleEnum.CIVILENGINEER = { type: 3, value: \"CIVILENGINEER\" };\n IfcRoleEnum.COMMISSIONINGENGINEER = { type: 3, value: \"COMMISSIONINGENGINEER\" };\n IfcRoleEnum.ENGINEER = { type: 3, value: \"ENGINEER\" };\n IfcRoleEnum.OWNER = { type: 3, value: \"OWNER\" };\n IfcRoleEnum.CONSULTANT = { type: 3, value: \"CONSULTANT\" };\n IfcRoleEnum.CONSTRUCTIONMANAGER = { type: 3, value: \"CONSTRUCTIONMANAGER\" };\n IfcRoleEnum.FIELDCONSTRUCTIONMANAGER = { type: 3, value: \"FIELDCONSTRUCTIONMANAGER\" };\n IfcRoleEnum.RESELLER = { type: 3, value: \"RESELLER\" };\n IfcRoleEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IFC42.IfcRoleEnum = IfcRoleEnum;\n class IfcRoofTypeEnum {\n }\n IfcRoofTypeEnum.FLAT_ROOF = { type: 3, value: \"FLAT_ROOF\" };\n IfcRoofTypeEnum.SHED_ROOF = { type: 3, value: \"SHED_ROOF\" };\n IfcRoofTypeEnum.GABLE_ROOF = { type: 3, value: \"GABLE_ROOF\" };\n IfcRoofTypeEnum.HIP_ROOF = { type: 3, value: \"HIP_ROOF\" };\n IfcRoofTypeEnum.HIPPED_GABLE_ROOF = { type: 3, value: \"HIPPED_GABLE_ROOF\" };\n IfcRoofTypeEnum.GAMBREL_ROOF = { type: 3, value: \"GAMBREL_ROOF\" };\n IfcRoofTypeEnum.MANSARD_ROOF = { type: 3, value: \"MANSARD_ROOF\" };\n IfcRoofTypeEnum.BARREL_ROOF = { type: 3, value: \"BARREL_ROOF\" };\n IfcRoofTypeEnum.RAINBOW_ROOF = { type: 3, value: \"RAINBOW_ROOF\" };\n IfcRoofTypeEnum.BUTTERFLY_ROOF = { type: 3, value: \"BUTTERFLY_ROOF\" };\n IfcRoofTypeEnum.PAVILION_ROOF = { type: 3, value: \"PAVILION_ROOF\" };\n IfcRoofTypeEnum.DOME_ROOF = { type: 3, value: \"DOME_ROOF\" };\n IfcRoofTypeEnum.FREEFORM = { type: 3, value: \"FREEFORM\" };\n IfcRoofTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcRoofTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcRoofTypeEnum = IfcRoofTypeEnum;\n class IfcSIPrefix {\n }\n IfcSIPrefix.EXA = { type: 3, value: \"EXA\" };\n IfcSIPrefix.PETA = { type: 3, value: \"PETA\" };\n IfcSIPrefix.TERA = { type: 3, value: \"TERA\" };\n IfcSIPrefix.GIGA = { type: 3, value: \"GIGA\" };\n IfcSIPrefix.MEGA = { type: 3, value: \"MEGA\" };\n IfcSIPrefix.KILO = { type: 3, value: \"KILO\" };\n IfcSIPrefix.HECTO = { type: 3, value: \"HECTO\" };\n IfcSIPrefix.DECA = { type: 3, value: \"DECA\" };\n IfcSIPrefix.DECI = { type: 3, value: \"DECI\" };\n IfcSIPrefix.CENTI = { type: 3, value: \"CENTI\" };\n IfcSIPrefix.MILLI = { type: 3, value: \"MILLI\" };\n IfcSIPrefix.MICRO = { type: 3, value: \"MICRO\" };\n IfcSIPrefix.NANO = { type: 3, value: \"NANO\" };\n IfcSIPrefix.PICO = { type: 3, value: \"PICO\" };\n IfcSIPrefix.FEMTO = { type: 3, value: \"FEMTO\" };\n IfcSIPrefix.ATTO = { type: 3, value: \"ATTO\" };\n IFC42.IfcSIPrefix = IfcSIPrefix;\n class IfcSIUnitName {\n }\n IfcSIUnitName.AMPERE = { type: 3, value: \"AMPERE\" };\n IfcSIUnitName.BECQUEREL = { type: 3, value: \"BECQUEREL\" };\n IfcSIUnitName.CANDELA = { type: 3, value: \"CANDELA\" };\n IfcSIUnitName.COULOMB = { type: 3, value: \"COULOMB\" };\n IfcSIUnitName.CUBIC_METRE = { type: 3, value: \"CUBIC_METRE\" };\n IfcSIUnitName.DEGREE_CELSIUS = { type: 3, value: \"DEGREE_CELSIUS\" };\n IfcSIUnitName.FARAD = { type: 3, value: \"FARAD\" };\n IfcSIUnitName.GRAM = { type: 3, value: \"GRAM\" };\n IfcSIUnitName.GRAY = { type: 3, value: \"GRAY\" };\n IfcSIUnitName.HENRY = { type: 3, value: \"HENRY\" };\n IfcSIUnitName.HERTZ = { type: 3, value: \"HERTZ\" };\n IfcSIUnitName.JOULE = { type: 3, value: \"JOULE\" };\n IfcSIUnitName.KELVIN = { type: 3, value: \"KELVIN\" };\n IfcSIUnitName.LUMEN = { type: 3, value: \"LUMEN\" };\n IfcSIUnitName.LUX = { type: 3, value: \"LUX\" };\n IfcSIUnitName.METRE = { type: 3, value: \"METRE\" };\n IfcSIUnitName.MOLE = { type: 3, value: \"MOLE\" };\n IfcSIUnitName.NEWTON = { type: 3, value: \"NEWTON\" };\n IfcSIUnitName.OHM = { type: 3, value: \"OHM\" };\n IfcSIUnitName.PASCAL = { type: 3, value: \"PASCAL\" };\n IfcSIUnitName.RADIAN = { type: 3, value: \"RADIAN\" };\n IfcSIUnitName.SECOND = { type: 3, value: \"SECOND\" };\n IfcSIUnitName.SIEMENS = { type: 3, value: \"SIEMENS\" };\n IfcSIUnitName.SIEVERT = { type: 3, value: \"SIEVERT\" };\n IfcSIUnitName.SQUARE_METRE = { type: 3, value: \"SQUARE_METRE\" };\n IfcSIUnitName.STERADIAN = { type: 3, value: \"STERADIAN\" };\n IfcSIUnitName.TESLA = { type: 3, value: \"TESLA\" };\n IfcSIUnitName.VOLT = { type: 3, value: \"VOLT\" };\n IfcSIUnitName.WATT = { type: 3, value: \"WATT\" };\n IfcSIUnitName.WEBER = { type: 3, value: \"WEBER\" };\n IFC42.IfcSIUnitName = IfcSIUnitName;\n class IfcSanitaryTerminalTypeEnum {\n }\n IfcSanitaryTerminalTypeEnum.BATH = { type: 3, value: \"BATH\" };\n IfcSanitaryTerminalTypeEnum.BIDET = { type: 3, value: \"BIDET\" };\n IfcSanitaryTerminalTypeEnum.CISTERN = { type: 3, value: \"CISTERN\" };\n IfcSanitaryTerminalTypeEnum.SHOWER = { type: 3, value: \"SHOWER\" };\n IfcSanitaryTerminalTypeEnum.SINK = { type: 3, value: \"SINK\" };\n IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN = { type: 3, value: \"SANITARYFOUNTAIN\" };\n IfcSanitaryTerminalTypeEnum.TOILETPAN = { type: 3, value: \"TOILETPAN\" };\n IfcSanitaryTerminalTypeEnum.URINAL = { type: 3, value: \"URINAL\" };\n IfcSanitaryTerminalTypeEnum.WASHHANDBASIN = { type: 3, value: \"WASHHANDBASIN\" };\n IfcSanitaryTerminalTypeEnum.WCSEAT = { type: 3, value: \"WCSEAT\" };\n IfcSanitaryTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSanitaryTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcSanitaryTerminalTypeEnum = IfcSanitaryTerminalTypeEnum;\n class IfcSectionTypeEnum {\n }\n IfcSectionTypeEnum.UNIFORM = { type: 3, value: \"UNIFORM\" };\n IfcSectionTypeEnum.TAPERED = { type: 3, value: \"TAPERED\" };\n IFC42.IfcSectionTypeEnum = IfcSectionTypeEnum;\n class IfcSensorTypeEnum {\n }\n IfcSensorTypeEnum.COSENSOR = { type: 3, value: \"COSENSOR\" };\n IfcSensorTypeEnum.CO2SENSOR = { type: 3, value: \"CO2SENSOR\" };\n IfcSensorTypeEnum.CONDUCTANCESENSOR = { type: 3, value: \"CONDUCTANCESENSOR\" };\n IfcSensorTypeEnum.CONTACTSENSOR = { type: 3, value: \"CONTACTSENSOR\" };\n IfcSensorTypeEnum.FIRESENSOR = { type: 3, value: \"FIRESENSOR\" };\n IfcSensorTypeEnum.FLOWSENSOR = { type: 3, value: \"FLOWSENSOR\" };\n IfcSensorTypeEnum.FROSTSENSOR = { type: 3, value: \"FROSTSENSOR\" };\n IfcSensorTypeEnum.GASSENSOR = { type: 3, value: \"GASSENSOR\" };\n IfcSensorTypeEnum.HEATSENSOR = { type: 3, value: \"HEATSENSOR\" };\n IfcSensorTypeEnum.HUMIDITYSENSOR = { type: 3, value: \"HUMIDITYSENSOR\" };\n IfcSensorTypeEnum.IDENTIFIERSENSOR = { type: 3, value: \"IDENTIFIERSENSOR\" };\n IfcSensorTypeEnum.IONCONCENTRATIONSENSOR = { type: 3, value: \"IONCONCENTRATIONSENSOR\" };\n IfcSensorTypeEnum.LEVELSENSOR = { type: 3, value: \"LEVELSENSOR\" };\n IfcSensorTypeEnum.LIGHTSENSOR = { type: 3, value: \"LIGHTSENSOR\" };\n IfcSensorTypeEnum.MOISTURESENSOR = { type: 3, value: \"MOISTURESENSOR\" };\n IfcSensorTypeEnum.MOVEMENTSENSOR = { type: 3, value: \"MOVEMENTSENSOR\" };\n IfcSensorTypeEnum.PHSENSOR = { type: 3, value: \"PHSENSOR\" };\n IfcSensorTypeEnum.PRESSURESENSOR = { type: 3, value: \"PRESSURESENSOR\" };\n IfcSensorTypeEnum.RADIATIONSENSOR = { type: 3, value: \"RADIATIONSENSOR\" };\n IfcSensorTypeEnum.RADIOACTIVITYSENSOR = { type: 3, value: \"RADIOACTIVITYSENSOR\" };\n IfcSensorTypeEnum.SMOKESENSOR = { type: 3, value: \"SMOKESENSOR\" };\n IfcSensorTypeEnum.SOUNDSENSOR = { type: 3, value: \"SOUNDSENSOR\" };\n IfcSensorTypeEnum.TEMPERATURESENSOR = { type: 3, value: \"TEMPERATURESENSOR\" };\n IfcSensorTypeEnum.WINDSENSOR = { type: 3, value: \"WINDSENSOR\" };\n IfcSensorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSensorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcSensorTypeEnum = IfcSensorTypeEnum;\n class IfcSequenceEnum {\n }\n IfcSequenceEnum.START_START = { type: 3, value: \"START_START\" };\n IfcSequenceEnum.START_FINISH = { type: 3, value: \"START_FINISH\" };\n IfcSequenceEnum.FINISH_START = { type: 3, value: \"FINISH_START\" };\n IfcSequenceEnum.FINISH_FINISH = { type: 3, value: \"FINISH_FINISH\" };\n IfcSequenceEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSequenceEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcSequenceEnum = IfcSequenceEnum;\n class IfcShadingDeviceTypeEnum {\n }\n IfcShadingDeviceTypeEnum.JALOUSIE = { type: 3, value: \"JALOUSIE\" };\n IfcShadingDeviceTypeEnum.SHUTTER = { type: 3, value: \"SHUTTER\" };\n IfcShadingDeviceTypeEnum.AWNING = { type: 3, value: \"AWNING\" };\n IfcShadingDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcShadingDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcShadingDeviceTypeEnum = IfcShadingDeviceTypeEnum;\n class IfcSimplePropertyTemplateTypeEnum {\n }\n IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE = { type: 3, value: \"P_SINGLEVALUE\" };\n IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE = { type: 3, value: \"P_ENUMERATEDVALUE\" };\n IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE = { type: 3, value: \"P_BOUNDEDVALUE\" };\n IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE = { type: 3, value: \"P_LISTVALUE\" };\n IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE = { type: 3, value: \"P_TABLEVALUE\" };\n IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE = { type: 3, value: \"P_REFERENCEVALUE\" };\n IfcSimplePropertyTemplateTypeEnum.Q_LENGTH = { type: 3, value: \"Q_LENGTH\" };\n IfcSimplePropertyTemplateTypeEnum.Q_AREA = { type: 3, value: \"Q_AREA\" };\n IfcSimplePropertyTemplateTypeEnum.Q_VOLUME = { type: 3, value: \"Q_VOLUME\" };\n IfcSimplePropertyTemplateTypeEnum.Q_COUNT = { type: 3, value: \"Q_COUNT\" };\n IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT = { type: 3, value: \"Q_WEIGHT\" };\n IfcSimplePropertyTemplateTypeEnum.Q_TIME = { type: 3, value: \"Q_TIME\" };\n IFC42.IfcSimplePropertyTemplateTypeEnum = IfcSimplePropertyTemplateTypeEnum;\n class IfcSlabTypeEnum {\n }\n IfcSlabTypeEnum.FLOOR = { type: 3, value: \"FLOOR\" };\n IfcSlabTypeEnum.ROOF = { type: 3, value: \"ROOF\" };\n IfcSlabTypeEnum.LANDING = { type: 3, value: \"LANDING\" };\n IfcSlabTypeEnum.BASESLAB = { type: 3, value: \"BASESLAB\" };\n IfcSlabTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSlabTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcSlabTypeEnum = IfcSlabTypeEnum;\n class IfcSolarDeviceTypeEnum {\n }\n IfcSolarDeviceTypeEnum.SOLARCOLLECTOR = { type: 3, value: \"SOLARCOLLECTOR\" };\n IfcSolarDeviceTypeEnum.SOLARPANEL = { type: 3, value: \"SOLARPANEL\" };\n IfcSolarDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSolarDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcSolarDeviceTypeEnum = IfcSolarDeviceTypeEnum;\n class IfcSpaceHeaterTypeEnum {\n }\n IfcSpaceHeaterTypeEnum.CONVECTOR = { type: 3, value: \"CONVECTOR\" };\n IfcSpaceHeaterTypeEnum.RADIATOR = { type: 3, value: \"RADIATOR\" };\n IfcSpaceHeaterTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSpaceHeaterTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcSpaceHeaterTypeEnum = IfcSpaceHeaterTypeEnum;\n class IfcSpaceTypeEnum {\n }\n IfcSpaceTypeEnum.SPACE = { type: 3, value: \"SPACE\" };\n IfcSpaceTypeEnum.PARKING = { type: 3, value: \"PARKING\" };\n IfcSpaceTypeEnum.GFA = { type: 3, value: \"GFA\" };\n IfcSpaceTypeEnum.INTERNAL = { type: 3, value: \"INTERNAL\" };\n IfcSpaceTypeEnum.EXTERNAL = { type: 3, value: \"EXTERNAL\" };\n IfcSpaceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSpaceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcSpaceTypeEnum = IfcSpaceTypeEnum;\n class IfcSpatialZoneTypeEnum {\n }\n IfcSpatialZoneTypeEnum.CONSTRUCTION = { type: 3, value: \"CONSTRUCTION\" };\n IfcSpatialZoneTypeEnum.FIRESAFETY = { type: 3, value: \"FIRESAFETY\" };\n IfcSpatialZoneTypeEnum.LIGHTING = { type: 3, value: \"LIGHTING\" };\n IfcSpatialZoneTypeEnum.OCCUPANCY = { type: 3, value: \"OCCUPANCY\" };\n IfcSpatialZoneTypeEnum.SECURITY = { type: 3, value: \"SECURITY\" };\n IfcSpatialZoneTypeEnum.THERMAL = { type: 3, value: \"THERMAL\" };\n IfcSpatialZoneTypeEnum.TRANSPORT = { type: 3, value: \"TRANSPORT\" };\n IfcSpatialZoneTypeEnum.VENTILATION = { type: 3, value: \"VENTILATION\" };\n IfcSpatialZoneTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSpatialZoneTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcSpatialZoneTypeEnum = IfcSpatialZoneTypeEnum;\n class IfcStackTerminalTypeEnum {\n }\n IfcStackTerminalTypeEnum.BIRDCAGE = { type: 3, value: \"BIRDCAGE\" };\n IfcStackTerminalTypeEnum.COWL = { type: 3, value: \"COWL\" };\n IfcStackTerminalTypeEnum.RAINWATERHOPPER = { type: 3, value: \"RAINWATERHOPPER\" };\n IfcStackTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcStackTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcStackTerminalTypeEnum = IfcStackTerminalTypeEnum;\n class IfcStairFlightTypeEnum {\n }\n IfcStairFlightTypeEnum.STRAIGHT = { type: 3, value: \"STRAIGHT\" };\n IfcStairFlightTypeEnum.WINDER = { type: 3, value: \"WINDER\" };\n IfcStairFlightTypeEnum.SPIRAL = { type: 3, value: \"SPIRAL\" };\n IfcStairFlightTypeEnum.CURVED = { type: 3, value: \"CURVED\" };\n IfcStairFlightTypeEnum.FREEFORM = { type: 3, value: \"FREEFORM\" };\n IfcStairFlightTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcStairFlightTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcStairFlightTypeEnum = IfcStairFlightTypeEnum;\n class IfcStairTypeEnum {\n }\n IfcStairTypeEnum.STRAIGHT_RUN_STAIR = { type: 3, value: \"STRAIGHT_RUN_STAIR\" };\n IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR = { type: 3, value: \"TWO_STRAIGHT_RUN_STAIR\" };\n IfcStairTypeEnum.QUARTER_WINDING_STAIR = { type: 3, value: \"QUARTER_WINDING_STAIR\" };\n IfcStairTypeEnum.QUARTER_TURN_STAIR = { type: 3, value: \"QUARTER_TURN_STAIR\" };\n IfcStairTypeEnum.HALF_WINDING_STAIR = { type: 3, value: \"HALF_WINDING_STAIR\" };\n IfcStairTypeEnum.HALF_TURN_STAIR = { type: 3, value: \"HALF_TURN_STAIR\" };\n IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR = { type: 3, value: \"TWO_QUARTER_WINDING_STAIR\" };\n IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR = { type: 3, value: \"TWO_QUARTER_TURN_STAIR\" };\n IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR = { type: 3, value: \"THREE_QUARTER_WINDING_STAIR\" };\n IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR = { type: 3, value: \"THREE_QUARTER_TURN_STAIR\" };\n IfcStairTypeEnum.SPIRAL_STAIR = { type: 3, value: \"SPIRAL_STAIR\" };\n IfcStairTypeEnum.DOUBLE_RETURN_STAIR = { type: 3, value: \"DOUBLE_RETURN_STAIR\" };\n IfcStairTypeEnum.CURVED_RUN_STAIR = { type: 3, value: \"CURVED_RUN_STAIR\" };\n IfcStairTypeEnum.TWO_CURVED_RUN_STAIR = { type: 3, value: \"TWO_CURVED_RUN_STAIR\" };\n IfcStairTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcStairTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcStairTypeEnum = IfcStairTypeEnum;\n class IfcStateEnum {\n }\n IfcStateEnum.READWRITE = { type: 3, value: \"READWRITE\" };\n IfcStateEnum.READONLY = { type: 3, value: \"READONLY\" };\n IfcStateEnum.LOCKED = { type: 3, value: \"LOCKED\" };\n IfcStateEnum.READWRITELOCKED = { type: 3, value: \"READWRITELOCKED\" };\n IfcStateEnum.READONLYLOCKED = { type: 3, value: \"READONLYLOCKED\" };\n IFC42.IfcStateEnum = IfcStateEnum;\n class IfcStructuralCurveActivityTypeEnum {\n }\n IfcStructuralCurveActivityTypeEnum.CONST = { type: 3, value: \"CONST\" };\n IfcStructuralCurveActivityTypeEnum.LINEAR = { type: 3, value: \"LINEAR\" };\n IfcStructuralCurveActivityTypeEnum.POLYGONAL = { type: 3, value: \"POLYGONAL\" };\n IfcStructuralCurveActivityTypeEnum.EQUIDISTANT = { type: 3, value: \"EQUIDISTANT\" };\n IfcStructuralCurveActivityTypeEnum.SINUS = { type: 3, value: \"SINUS\" };\n IfcStructuralCurveActivityTypeEnum.PARABOLA = { type: 3, value: \"PARABOLA\" };\n IfcStructuralCurveActivityTypeEnum.DISCRETE = { type: 3, value: \"DISCRETE\" };\n IfcStructuralCurveActivityTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcStructuralCurveActivityTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcStructuralCurveActivityTypeEnum = IfcStructuralCurveActivityTypeEnum;\n class IfcStructuralCurveMemberTypeEnum {\n }\n IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER = { type: 3, value: \"RIGID_JOINED_MEMBER\" };\n IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER = { type: 3, value: \"PIN_JOINED_MEMBER\" };\n IfcStructuralCurveMemberTypeEnum.CABLE = { type: 3, value: \"CABLE\" };\n IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER = { type: 3, value: \"TENSION_MEMBER\" };\n IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER = { type: 3, value: \"COMPRESSION_MEMBER\" };\n IfcStructuralCurveMemberTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcStructuralCurveMemberTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcStructuralCurveMemberTypeEnum = IfcStructuralCurveMemberTypeEnum;\n class IfcStructuralSurfaceActivityTypeEnum {\n }\n IfcStructuralSurfaceActivityTypeEnum.CONST = { type: 3, value: \"CONST\" };\n IfcStructuralSurfaceActivityTypeEnum.BILINEAR = { type: 3, value: \"BILINEAR\" };\n IfcStructuralSurfaceActivityTypeEnum.DISCRETE = { type: 3, value: \"DISCRETE\" };\n IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR = { type: 3, value: \"ISOCONTOUR\" };\n IfcStructuralSurfaceActivityTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcStructuralSurfaceActivityTypeEnum = IfcStructuralSurfaceActivityTypeEnum;\n class IfcStructuralSurfaceMemberTypeEnum {\n }\n IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT = { type: 3, value: \"BENDING_ELEMENT\" };\n IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT = { type: 3, value: \"MEMBRANE_ELEMENT\" };\n IfcStructuralSurfaceMemberTypeEnum.SHELL = { type: 3, value: \"SHELL\" };\n IfcStructuralSurfaceMemberTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcStructuralSurfaceMemberTypeEnum = IfcStructuralSurfaceMemberTypeEnum;\n class IfcSubContractResourceTypeEnum {\n }\n IfcSubContractResourceTypeEnum.PURCHASE = { type: 3, value: \"PURCHASE\" };\n IfcSubContractResourceTypeEnum.WORK = { type: 3, value: \"WORK\" };\n IfcSubContractResourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSubContractResourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcSubContractResourceTypeEnum = IfcSubContractResourceTypeEnum;\n class IfcSurfaceFeatureTypeEnum {\n }\n IfcSurfaceFeatureTypeEnum.MARK = { type: 3, value: \"MARK\" };\n IfcSurfaceFeatureTypeEnum.TAG = { type: 3, value: \"TAG\" };\n IfcSurfaceFeatureTypeEnum.TREATMENT = { type: 3, value: \"TREATMENT\" };\n IfcSurfaceFeatureTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSurfaceFeatureTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcSurfaceFeatureTypeEnum = IfcSurfaceFeatureTypeEnum;\n class IfcSurfaceSide {\n }\n IfcSurfaceSide.POSITIVE = { type: 3, value: \"POSITIVE\" };\n IfcSurfaceSide.NEGATIVE = { type: 3, value: \"NEGATIVE\" };\n IfcSurfaceSide.BOTH = { type: 3, value: \"BOTH\" };\n IFC42.IfcSurfaceSide = IfcSurfaceSide;\n class IfcSwitchingDeviceTypeEnum {\n }\n IfcSwitchingDeviceTypeEnum.CONTACTOR = { type: 3, value: \"CONTACTOR\" };\n IfcSwitchingDeviceTypeEnum.DIMMERSWITCH = { type: 3, value: \"DIMMERSWITCH\" };\n IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP = { type: 3, value: \"EMERGENCYSTOP\" };\n IfcSwitchingDeviceTypeEnum.KEYPAD = { type: 3, value: \"KEYPAD\" };\n IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH = { type: 3, value: \"MOMENTARYSWITCH\" };\n IfcSwitchingDeviceTypeEnum.SELECTORSWITCH = { type: 3, value: \"SELECTORSWITCH\" };\n IfcSwitchingDeviceTypeEnum.STARTER = { type: 3, value: \"STARTER\" };\n IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR = { type: 3, value: \"SWITCHDISCONNECTOR\" };\n IfcSwitchingDeviceTypeEnum.TOGGLESWITCH = { type: 3, value: \"TOGGLESWITCH\" };\n IfcSwitchingDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSwitchingDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcSwitchingDeviceTypeEnum = IfcSwitchingDeviceTypeEnum;\n class IfcSystemFurnitureElementTypeEnum {\n }\n IfcSystemFurnitureElementTypeEnum.PANEL = { type: 3, value: \"PANEL\" };\n IfcSystemFurnitureElementTypeEnum.WORKSURFACE = { type: 3, value: \"WORKSURFACE\" };\n IfcSystemFurnitureElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSystemFurnitureElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcSystemFurnitureElementTypeEnum = IfcSystemFurnitureElementTypeEnum;\n class IfcTankTypeEnum {\n }\n IfcTankTypeEnum.BASIN = { type: 3, value: \"BASIN\" };\n IfcTankTypeEnum.BREAKPRESSURE = { type: 3, value: \"BREAKPRESSURE\" };\n IfcTankTypeEnum.EXPANSION = { type: 3, value: \"EXPANSION\" };\n IfcTankTypeEnum.FEEDANDEXPANSION = { type: 3, value: \"FEEDANDEXPANSION\" };\n IfcTankTypeEnum.PRESSUREVESSEL = { type: 3, value: \"PRESSUREVESSEL\" };\n IfcTankTypeEnum.STORAGE = { type: 3, value: \"STORAGE\" };\n IfcTankTypeEnum.VESSEL = { type: 3, value: \"VESSEL\" };\n IfcTankTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcTankTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcTankTypeEnum = IfcTankTypeEnum;\n class IfcTaskDurationEnum {\n }\n IfcTaskDurationEnum.ELAPSEDTIME = { type: 3, value: \"ELAPSEDTIME\" };\n IfcTaskDurationEnum.WORKTIME = { type: 3, value: \"WORKTIME\" };\n IfcTaskDurationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcTaskDurationEnum = IfcTaskDurationEnum;\n class IfcTaskTypeEnum {\n }\n IfcTaskTypeEnum.ATTENDANCE = { type: 3, value: \"ATTENDANCE\" };\n IfcTaskTypeEnum.CONSTRUCTION = { type: 3, value: \"CONSTRUCTION\" };\n IfcTaskTypeEnum.DEMOLITION = { type: 3, value: \"DEMOLITION\" };\n IfcTaskTypeEnum.DISMANTLE = { type: 3, value: \"DISMANTLE\" };\n IfcTaskTypeEnum.DISPOSAL = { type: 3, value: \"DISPOSAL\" };\n IfcTaskTypeEnum.INSTALLATION = { type: 3, value: \"INSTALLATION\" };\n IfcTaskTypeEnum.LOGISTIC = { type: 3, value: \"LOGISTIC\" };\n IfcTaskTypeEnum.MAINTENANCE = { type: 3, value: \"MAINTENANCE\" };\n IfcTaskTypeEnum.MOVE = { type: 3, value: \"MOVE\" };\n IfcTaskTypeEnum.OPERATION = { type: 3, value: \"OPERATION\" };\n IfcTaskTypeEnum.REMOVAL = { type: 3, value: \"REMOVAL\" };\n IfcTaskTypeEnum.RENOVATION = { type: 3, value: \"RENOVATION\" };\n IfcTaskTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcTaskTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcTaskTypeEnum = IfcTaskTypeEnum;\n class IfcTendonAnchorTypeEnum {\n }\n IfcTendonAnchorTypeEnum.COUPLER = { type: 3, value: \"COUPLER\" };\n IfcTendonAnchorTypeEnum.FIXED_END = { type: 3, value: \"FIXED_END\" };\n IfcTendonAnchorTypeEnum.TENSIONING_END = { type: 3, value: \"TENSIONING_END\" };\n IfcTendonAnchorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcTendonAnchorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcTendonAnchorTypeEnum = IfcTendonAnchorTypeEnum;\n class IfcTendonTypeEnum {\n }\n IfcTendonTypeEnum.BAR = { type: 3, value: \"BAR\" };\n IfcTendonTypeEnum.COATED = { type: 3, value: \"COATED\" };\n IfcTendonTypeEnum.STRAND = { type: 3, value: \"STRAND\" };\n IfcTendonTypeEnum.WIRE = { type: 3, value: \"WIRE\" };\n IfcTendonTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcTendonTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcTendonTypeEnum = IfcTendonTypeEnum;\n class IfcTextPath {\n }\n IfcTextPath.LEFT = { type: 3, value: \"LEFT\" };\n IfcTextPath.RIGHT = { type: 3, value: \"RIGHT\" };\n IfcTextPath.UP = { type: 3, value: \"UP\" };\n IfcTextPath.DOWN = { type: 3, value: \"DOWN\" };\n IFC42.IfcTextPath = IfcTextPath;\n class IfcTimeSeriesDataTypeEnum {\n }\n IfcTimeSeriesDataTypeEnum.CONTINUOUS = { type: 3, value: \"CONTINUOUS\" };\n IfcTimeSeriesDataTypeEnum.DISCRETE = { type: 3, value: \"DISCRETE\" };\n IfcTimeSeriesDataTypeEnum.DISCRETEBINARY = { type: 3, value: \"DISCRETEBINARY\" };\n IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY = { type: 3, value: \"PIECEWISEBINARY\" };\n IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT = { type: 3, value: \"PIECEWISECONSTANT\" };\n IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS = { type: 3, value: \"PIECEWISECONTINUOUS\" };\n IfcTimeSeriesDataTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcTimeSeriesDataTypeEnum = IfcTimeSeriesDataTypeEnum;\n class IfcTransformerTypeEnum {\n }\n IfcTransformerTypeEnum.CURRENT = { type: 3, value: \"CURRENT\" };\n IfcTransformerTypeEnum.FREQUENCY = { type: 3, value: \"FREQUENCY\" };\n IfcTransformerTypeEnum.INVERTER = { type: 3, value: \"INVERTER\" };\n IfcTransformerTypeEnum.RECTIFIER = { type: 3, value: \"RECTIFIER\" };\n IfcTransformerTypeEnum.VOLTAGE = { type: 3, value: \"VOLTAGE\" };\n IfcTransformerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcTransformerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcTransformerTypeEnum = IfcTransformerTypeEnum;\n class IfcTransitionCode {\n }\n IfcTransitionCode.DISCONTINUOUS = { type: 3, value: \"DISCONTINUOUS\" };\n IfcTransitionCode.CONTINUOUS = { type: 3, value: \"CONTINUOUS\" };\n IfcTransitionCode.CONTSAMEGRADIENT = { type: 3, value: \"CONTSAMEGRADIENT\" };\n IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE = { type: 3, value: \"CONTSAMEGRADIENTSAMECURVATURE\" };\n IFC42.IfcTransitionCode = IfcTransitionCode;\n class IfcTransportElementTypeEnum {\n }\n IfcTransportElementTypeEnum.ELEVATOR = { type: 3, value: \"ELEVATOR\" };\n IfcTransportElementTypeEnum.ESCALATOR = { type: 3, value: \"ESCALATOR\" };\n IfcTransportElementTypeEnum.MOVINGWALKWAY = { type: 3, value: \"MOVINGWALKWAY\" };\n IfcTransportElementTypeEnum.CRANEWAY = { type: 3, value: \"CRANEWAY\" };\n IfcTransportElementTypeEnum.LIFTINGGEAR = { type: 3, value: \"LIFTINGGEAR\" };\n IfcTransportElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcTransportElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcTransportElementTypeEnum = IfcTransportElementTypeEnum;\n class IfcTrimmingPreference {\n }\n IfcTrimmingPreference.CARTESIAN = { type: 3, value: \"CARTESIAN\" };\n IfcTrimmingPreference.PARAMETER = { type: 3, value: \"PARAMETER\" };\n IfcTrimmingPreference.UNSPECIFIED = { type: 3, value: \"UNSPECIFIED\" };\n IFC42.IfcTrimmingPreference = IfcTrimmingPreference;\n class IfcTubeBundleTypeEnum {\n }\n IfcTubeBundleTypeEnum.FINNED = { type: 3, value: \"FINNED\" };\n IfcTubeBundleTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcTubeBundleTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcTubeBundleTypeEnum = IfcTubeBundleTypeEnum;\n class IfcUnitEnum {\n }\n IfcUnitEnum.ABSORBEDDOSEUNIT = { type: 3, value: \"ABSORBEDDOSEUNIT\" };\n IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT = { type: 3, value: \"AMOUNTOFSUBSTANCEUNIT\" };\n IfcUnitEnum.AREAUNIT = { type: 3, value: \"AREAUNIT\" };\n IfcUnitEnum.DOSEEQUIVALENTUNIT = { type: 3, value: \"DOSEEQUIVALENTUNIT\" };\n IfcUnitEnum.ELECTRICCAPACITANCEUNIT = { type: 3, value: \"ELECTRICCAPACITANCEUNIT\" };\n IfcUnitEnum.ELECTRICCHARGEUNIT = { type: 3, value: \"ELECTRICCHARGEUNIT\" };\n IfcUnitEnum.ELECTRICCONDUCTANCEUNIT = { type: 3, value: \"ELECTRICCONDUCTANCEUNIT\" };\n IfcUnitEnum.ELECTRICCURRENTUNIT = { type: 3, value: \"ELECTRICCURRENTUNIT\" };\n IfcUnitEnum.ELECTRICRESISTANCEUNIT = { type: 3, value: \"ELECTRICRESISTANCEUNIT\" };\n IfcUnitEnum.ELECTRICVOLTAGEUNIT = { type: 3, value: \"ELECTRICVOLTAGEUNIT\" };\n IfcUnitEnum.ENERGYUNIT = { type: 3, value: \"ENERGYUNIT\" };\n IfcUnitEnum.FORCEUNIT = { type: 3, value: \"FORCEUNIT\" };\n IfcUnitEnum.FREQUENCYUNIT = { type: 3, value: \"FREQUENCYUNIT\" };\n IfcUnitEnum.ILLUMINANCEUNIT = { type: 3, value: \"ILLUMINANCEUNIT\" };\n IfcUnitEnum.INDUCTANCEUNIT = { type: 3, value: \"INDUCTANCEUNIT\" };\n IfcUnitEnum.LENGTHUNIT = { type: 3, value: \"LENGTHUNIT\" };\n IfcUnitEnum.LUMINOUSFLUXUNIT = { type: 3, value: \"LUMINOUSFLUXUNIT\" };\n IfcUnitEnum.LUMINOUSINTENSITYUNIT = { type: 3, value: \"LUMINOUSINTENSITYUNIT\" };\n IfcUnitEnum.MAGNETICFLUXDENSITYUNIT = { type: 3, value: \"MAGNETICFLUXDENSITYUNIT\" };\n IfcUnitEnum.MAGNETICFLUXUNIT = { type: 3, value: \"MAGNETICFLUXUNIT\" };\n IfcUnitEnum.MASSUNIT = { type: 3, value: \"MASSUNIT\" };\n IfcUnitEnum.PLANEANGLEUNIT = { type: 3, value: \"PLANEANGLEUNIT\" };\n IfcUnitEnum.POWERUNIT = { type: 3, value: \"POWERUNIT\" };\n IfcUnitEnum.PRESSUREUNIT = { type: 3, value: \"PRESSUREUNIT\" };\n IfcUnitEnum.RADIOACTIVITYUNIT = { type: 3, value: \"RADIOACTIVITYUNIT\" };\n IfcUnitEnum.SOLIDANGLEUNIT = { type: 3, value: \"SOLIDANGLEUNIT\" };\n IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT = { type: 3, value: \"THERMODYNAMICTEMPERATUREUNIT\" };\n IfcUnitEnum.TIMEUNIT = { type: 3, value: \"TIMEUNIT\" };\n IfcUnitEnum.VOLUMEUNIT = { type: 3, value: \"VOLUMEUNIT\" };\n IfcUnitEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IFC42.IfcUnitEnum = IfcUnitEnum;\n class IfcUnitaryControlElementTypeEnum {\n }\n IfcUnitaryControlElementTypeEnum.ALARMPANEL = { type: 3, value: \"ALARMPANEL\" };\n IfcUnitaryControlElementTypeEnum.CONTROLPANEL = { type: 3, value: \"CONTROLPANEL\" };\n IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL = { type: 3, value: \"GASDETECTIONPANEL\" };\n IfcUnitaryControlElementTypeEnum.INDICATORPANEL = { type: 3, value: \"INDICATORPANEL\" };\n IfcUnitaryControlElementTypeEnum.MIMICPANEL = { type: 3, value: \"MIMICPANEL\" };\n IfcUnitaryControlElementTypeEnum.HUMIDISTAT = { type: 3, value: \"HUMIDISTAT\" };\n IfcUnitaryControlElementTypeEnum.THERMOSTAT = { type: 3, value: \"THERMOSTAT\" };\n IfcUnitaryControlElementTypeEnum.WEATHERSTATION = { type: 3, value: \"WEATHERSTATION\" };\n IfcUnitaryControlElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcUnitaryControlElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcUnitaryControlElementTypeEnum = IfcUnitaryControlElementTypeEnum;\n class IfcUnitaryEquipmentTypeEnum {\n }\n IfcUnitaryEquipmentTypeEnum.AIRHANDLER = { type: 3, value: \"AIRHANDLER\" };\n IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT = { type: 3, value: \"AIRCONDITIONINGUNIT\" };\n IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER = { type: 3, value: \"DEHUMIDIFIER\" };\n IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM = { type: 3, value: \"SPLITSYSTEM\" };\n IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT = { type: 3, value: \"ROOFTOPUNIT\" };\n IfcUnitaryEquipmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcUnitaryEquipmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcUnitaryEquipmentTypeEnum = IfcUnitaryEquipmentTypeEnum;\n class IfcValveTypeEnum {\n }\n IfcValveTypeEnum.AIRRELEASE = { type: 3, value: \"AIRRELEASE\" };\n IfcValveTypeEnum.ANTIVACUUM = { type: 3, value: \"ANTIVACUUM\" };\n IfcValveTypeEnum.CHANGEOVER = { type: 3, value: \"CHANGEOVER\" };\n IfcValveTypeEnum.CHECK = { type: 3, value: \"CHECK\" };\n IfcValveTypeEnum.COMMISSIONING = { type: 3, value: \"COMMISSIONING\" };\n IfcValveTypeEnum.DIVERTING = { type: 3, value: \"DIVERTING\" };\n IfcValveTypeEnum.DRAWOFFCOCK = { type: 3, value: \"DRAWOFFCOCK\" };\n IfcValveTypeEnum.DOUBLECHECK = { type: 3, value: \"DOUBLECHECK\" };\n IfcValveTypeEnum.DOUBLEREGULATING = { type: 3, value: \"DOUBLEREGULATING\" };\n IfcValveTypeEnum.FAUCET = { type: 3, value: \"FAUCET\" };\n IfcValveTypeEnum.FLUSHING = { type: 3, value: \"FLUSHING\" };\n IfcValveTypeEnum.GASCOCK = { type: 3, value: \"GASCOCK\" };\n IfcValveTypeEnum.GASTAP = { type: 3, value: \"GASTAP\" };\n IfcValveTypeEnum.ISOLATING = { type: 3, value: \"ISOLATING\" };\n IfcValveTypeEnum.MIXING = { type: 3, value: \"MIXING\" };\n IfcValveTypeEnum.PRESSUREREDUCING = { type: 3, value: \"PRESSUREREDUCING\" };\n IfcValveTypeEnum.PRESSURERELIEF = { type: 3, value: \"PRESSURERELIEF\" };\n IfcValveTypeEnum.REGULATING = { type: 3, value: \"REGULATING\" };\n IfcValveTypeEnum.SAFETYCUTOFF = { type: 3, value: \"SAFETYCUTOFF\" };\n IfcValveTypeEnum.STEAMTRAP = { type: 3, value: \"STEAMTRAP\" };\n IfcValveTypeEnum.STOPCOCK = { type: 3, value: \"STOPCOCK\" };\n IfcValveTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcValveTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcValveTypeEnum = IfcValveTypeEnum;\n class IfcVibrationIsolatorTypeEnum {\n }\n IfcVibrationIsolatorTypeEnum.COMPRESSION = { type: 3, value: \"COMPRESSION\" };\n IfcVibrationIsolatorTypeEnum.SPRING = { type: 3, value: \"SPRING\" };\n IfcVibrationIsolatorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcVibrationIsolatorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcVibrationIsolatorTypeEnum = IfcVibrationIsolatorTypeEnum;\n class IfcVoidingFeatureTypeEnum {\n }\n IfcVoidingFeatureTypeEnum.CUTOUT = { type: 3, value: \"CUTOUT\" };\n IfcVoidingFeatureTypeEnum.NOTCH = { type: 3, value: \"NOTCH\" };\n IfcVoidingFeatureTypeEnum.HOLE = { type: 3, value: \"HOLE\" };\n IfcVoidingFeatureTypeEnum.MITER = { type: 3, value: \"MITER\" };\n IfcVoidingFeatureTypeEnum.CHAMFER = { type: 3, value: \"CHAMFER\" };\n IfcVoidingFeatureTypeEnum.EDGE = { type: 3, value: \"EDGE\" };\n IfcVoidingFeatureTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcVoidingFeatureTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcVoidingFeatureTypeEnum = IfcVoidingFeatureTypeEnum;\n class IfcWallTypeEnum {\n }\n IfcWallTypeEnum.MOVABLE = { type: 3, value: \"MOVABLE\" };\n IfcWallTypeEnum.PARAPET = { type: 3, value: \"PARAPET\" };\n IfcWallTypeEnum.PARTITIONING = { type: 3, value: \"PARTITIONING\" };\n IfcWallTypeEnum.PLUMBINGWALL = { type: 3, value: \"PLUMBINGWALL\" };\n IfcWallTypeEnum.SHEAR = { type: 3, value: \"SHEAR\" };\n IfcWallTypeEnum.SOLIDWALL = { type: 3, value: \"SOLIDWALL\" };\n IfcWallTypeEnum.STANDARD = { type: 3, value: \"STANDARD\" };\n IfcWallTypeEnum.POLYGONAL = { type: 3, value: \"POLYGONAL\" };\n IfcWallTypeEnum.ELEMENTEDWALL = { type: 3, value: \"ELEMENTEDWALL\" };\n IfcWallTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcWallTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcWallTypeEnum = IfcWallTypeEnum;\n class IfcWasteTerminalTypeEnum {\n }\n IfcWasteTerminalTypeEnum.FLOORTRAP = { type: 3, value: \"FLOORTRAP\" };\n IfcWasteTerminalTypeEnum.FLOORWASTE = { type: 3, value: \"FLOORWASTE\" };\n IfcWasteTerminalTypeEnum.GULLYSUMP = { type: 3, value: \"GULLYSUMP\" };\n IfcWasteTerminalTypeEnum.GULLYTRAP = { type: 3, value: \"GULLYTRAP\" };\n IfcWasteTerminalTypeEnum.ROOFDRAIN = { type: 3, value: \"ROOFDRAIN\" };\n IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT = { type: 3, value: \"WASTEDISPOSALUNIT\" };\n IfcWasteTerminalTypeEnum.WASTETRAP = { type: 3, value: \"WASTETRAP\" };\n IfcWasteTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcWasteTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcWasteTerminalTypeEnum = IfcWasteTerminalTypeEnum;\n class IfcWindowPanelOperationEnum {\n }\n IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND = { type: 3, value: \"SIDEHUNGRIGHTHAND\" };\n IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND = { type: 3, value: \"SIDEHUNGLEFTHAND\" };\n IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND = { type: 3, value: \"TILTANDTURNRIGHTHAND\" };\n IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND = { type: 3, value: \"TILTANDTURNLEFTHAND\" };\n IfcWindowPanelOperationEnum.TOPHUNG = { type: 3, value: \"TOPHUNG\" };\n IfcWindowPanelOperationEnum.BOTTOMHUNG = { type: 3, value: \"BOTTOMHUNG\" };\n IfcWindowPanelOperationEnum.PIVOTHORIZONTAL = { type: 3, value: \"PIVOTHORIZONTAL\" };\n IfcWindowPanelOperationEnum.PIVOTVERTICAL = { type: 3, value: \"PIVOTVERTICAL\" };\n IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL = { type: 3, value: \"SLIDINGHORIZONTAL\" };\n IfcWindowPanelOperationEnum.SLIDINGVERTICAL = { type: 3, value: \"SLIDINGVERTICAL\" };\n IfcWindowPanelOperationEnum.REMOVABLECASEMENT = { type: 3, value: \"REMOVABLECASEMENT\" };\n IfcWindowPanelOperationEnum.FIXEDCASEMENT = { type: 3, value: \"FIXEDCASEMENT\" };\n IfcWindowPanelOperationEnum.OTHEROPERATION = { type: 3, value: \"OTHEROPERATION\" };\n IfcWindowPanelOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcWindowPanelOperationEnum = IfcWindowPanelOperationEnum;\n class IfcWindowPanelPositionEnum {\n }\n IfcWindowPanelPositionEnum.LEFT = { type: 3, value: \"LEFT\" };\n IfcWindowPanelPositionEnum.MIDDLE = { type: 3, value: \"MIDDLE\" };\n IfcWindowPanelPositionEnum.RIGHT = { type: 3, value: \"RIGHT\" };\n IfcWindowPanelPositionEnum.BOTTOM = { type: 3, value: \"BOTTOM\" };\n IfcWindowPanelPositionEnum.TOP = { type: 3, value: \"TOP\" };\n IfcWindowPanelPositionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcWindowPanelPositionEnum = IfcWindowPanelPositionEnum;\n class IfcWindowStyleConstructionEnum {\n }\n IfcWindowStyleConstructionEnum.ALUMINIUM = { type: 3, value: \"ALUMINIUM\" };\n IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: \"HIGH_GRADE_STEEL\" };\n IfcWindowStyleConstructionEnum.STEEL = { type: 3, value: \"STEEL\" };\n IfcWindowStyleConstructionEnum.WOOD = { type: 3, value: \"WOOD\" };\n IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: \"ALUMINIUM_WOOD\" };\n IfcWindowStyleConstructionEnum.PLASTIC = { type: 3, value: \"PLASTIC\" };\n IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION = { type: 3, value: \"OTHER_CONSTRUCTION\" };\n IfcWindowStyleConstructionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcWindowStyleConstructionEnum = IfcWindowStyleConstructionEnum;\n class IfcWindowStyleOperationEnum {\n }\n IfcWindowStyleOperationEnum.SINGLE_PANEL = { type: 3, value: \"SINGLE_PANEL\" };\n IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: \"DOUBLE_PANEL_VERTICAL\" };\n IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: \"DOUBLE_PANEL_HORIZONTAL\" };\n IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: \"TRIPLE_PANEL_VERTICAL\" };\n IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: \"TRIPLE_PANEL_BOTTOM\" };\n IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP = { type: 3, value: \"TRIPLE_PANEL_TOP\" };\n IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT = { type: 3, value: \"TRIPLE_PANEL_LEFT\" };\n IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: \"TRIPLE_PANEL_RIGHT\" };\n IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: \"TRIPLE_PANEL_HORIZONTAL\" };\n IfcWindowStyleOperationEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcWindowStyleOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcWindowStyleOperationEnum = IfcWindowStyleOperationEnum;\n class IfcWindowTypeEnum {\n }\n IfcWindowTypeEnum.WINDOW = { type: 3, value: \"WINDOW\" };\n IfcWindowTypeEnum.SKYLIGHT = { type: 3, value: \"SKYLIGHT\" };\n IfcWindowTypeEnum.LIGHTDOME = { type: 3, value: \"LIGHTDOME\" };\n IfcWindowTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcWindowTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcWindowTypeEnum = IfcWindowTypeEnum;\n class IfcWindowTypePartitioningEnum {\n }\n IfcWindowTypePartitioningEnum.SINGLE_PANEL = { type: 3, value: \"SINGLE_PANEL\" };\n IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: \"DOUBLE_PANEL_VERTICAL\" };\n IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: \"DOUBLE_PANEL_HORIZONTAL\" };\n IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: \"TRIPLE_PANEL_VERTICAL\" };\n IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: \"TRIPLE_PANEL_BOTTOM\" };\n IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP = { type: 3, value: \"TRIPLE_PANEL_TOP\" };\n IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT = { type: 3, value: \"TRIPLE_PANEL_LEFT\" };\n IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: \"TRIPLE_PANEL_RIGHT\" };\n IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: \"TRIPLE_PANEL_HORIZONTAL\" };\n IfcWindowTypePartitioningEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcWindowTypePartitioningEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcWindowTypePartitioningEnum = IfcWindowTypePartitioningEnum;\n class IfcWorkCalendarTypeEnum {\n }\n IfcWorkCalendarTypeEnum.FIRSTSHIFT = { type: 3, value: \"FIRSTSHIFT\" };\n IfcWorkCalendarTypeEnum.SECONDSHIFT = { type: 3, value: \"SECONDSHIFT\" };\n IfcWorkCalendarTypeEnum.THIRDSHIFT = { type: 3, value: \"THIRDSHIFT\" };\n IfcWorkCalendarTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcWorkCalendarTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcWorkCalendarTypeEnum = IfcWorkCalendarTypeEnum;\n class IfcWorkPlanTypeEnum {\n }\n IfcWorkPlanTypeEnum.ACTUAL = { type: 3, value: \"ACTUAL\" };\n IfcWorkPlanTypeEnum.BASELINE = { type: 3, value: \"BASELINE\" };\n IfcWorkPlanTypeEnum.PLANNED = { type: 3, value: \"PLANNED\" };\n IfcWorkPlanTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcWorkPlanTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcWorkPlanTypeEnum = IfcWorkPlanTypeEnum;\n class IfcWorkScheduleTypeEnum {\n }\n IfcWorkScheduleTypeEnum.ACTUAL = { type: 3, value: \"ACTUAL\" };\n IfcWorkScheduleTypeEnum.BASELINE = { type: 3, value: \"BASELINE\" };\n IfcWorkScheduleTypeEnum.PLANNED = { type: 3, value: \"PLANNED\" };\n IfcWorkScheduleTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcWorkScheduleTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC42.IfcWorkScheduleTypeEnum = IfcWorkScheduleTypeEnum;\n class IfcActorRole extends IfcLineObject {\n constructor(Role, UserDefinedRole, Description) {\n super();\n this.Role = Role;\n this.UserDefinedRole = UserDefinedRole;\n this.Description = Description;\n this.type = 3630933823;\n }\n }\n IFC42.IfcActorRole = IfcActorRole;\n class IfcAddress extends IfcLineObject {\n constructor(Purpose, Description, UserDefinedPurpose) {\n super();\n this.Purpose = Purpose;\n this.Description = Description;\n this.UserDefinedPurpose = UserDefinedPurpose;\n this.type = 618182010;\n }\n }\n IFC42.IfcAddress = IfcAddress;\n class IfcApplication extends IfcLineObject {\n constructor(ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier) {\n super();\n this.ApplicationDeveloper = ApplicationDeveloper;\n this.Version = Version;\n this.ApplicationFullName = ApplicationFullName;\n this.ApplicationIdentifier = ApplicationIdentifier;\n this.type = 639542469;\n }\n }\n IFC42.IfcApplication = IfcApplication;\n class IfcAppliedValue extends IfcLineObject {\n constructor(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.AppliedValue = AppliedValue;\n this.UnitBasis = UnitBasis;\n this.ApplicableDate = ApplicableDate;\n this.FixedUntilDate = FixedUntilDate;\n this.Category = Category;\n this.Condition = Condition;\n this.ArithmeticOperator = ArithmeticOperator;\n this.Components = Components;\n this.type = 411424972;\n }\n }\n IFC42.IfcAppliedValue = IfcAppliedValue;\n class IfcApproval extends IfcLineObject {\n constructor(Identifier, Name, Description, TimeOfApproval, Status, Level, Qualifier, RequestingApproval, GivingApproval) {\n super();\n this.Identifier = Identifier;\n this.Name = Name;\n this.Description = Description;\n this.TimeOfApproval = TimeOfApproval;\n this.Status = Status;\n this.Level = Level;\n this.Qualifier = Qualifier;\n this.RequestingApproval = RequestingApproval;\n this.GivingApproval = GivingApproval;\n this.type = 130549933;\n }\n }\n IFC42.IfcApproval = IfcApproval;\n class IfcBoundaryCondition extends IfcLineObject {\n constructor(Name) {\n super();\n this.Name = Name;\n this.type = 4037036970;\n }\n }\n IFC42.IfcBoundaryCondition = IfcBoundaryCondition;\n class IfcBoundaryEdgeCondition extends IfcBoundaryCondition {\n constructor(Name, TranslationalStiffnessByLengthX, TranslationalStiffnessByLengthY, TranslationalStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ) {\n super(Name);\n this.Name = Name;\n this.TranslationalStiffnessByLengthX = TranslationalStiffnessByLengthX;\n this.TranslationalStiffnessByLengthY = TranslationalStiffnessByLengthY;\n this.TranslationalStiffnessByLengthZ = TranslationalStiffnessByLengthZ;\n this.RotationalStiffnessByLengthX = RotationalStiffnessByLengthX;\n this.RotationalStiffnessByLengthY = RotationalStiffnessByLengthY;\n this.RotationalStiffnessByLengthZ = RotationalStiffnessByLengthZ;\n this.type = 1560379544;\n }\n }\n IFC42.IfcBoundaryEdgeCondition = IfcBoundaryEdgeCondition;\n class IfcBoundaryFaceCondition extends IfcBoundaryCondition {\n constructor(Name, TranslationalStiffnessByAreaX, TranslationalStiffnessByAreaY, TranslationalStiffnessByAreaZ) {\n super(Name);\n this.Name = Name;\n this.TranslationalStiffnessByAreaX = TranslationalStiffnessByAreaX;\n this.TranslationalStiffnessByAreaY = TranslationalStiffnessByAreaY;\n this.TranslationalStiffnessByAreaZ = TranslationalStiffnessByAreaZ;\n this.type = 3367102660;\n }\n }\n IFC42.IfcBoundaryFaceCondition = IfcBoundaryFaceCondition;\n class IfcBoundaryNodeCondition extends IfcBoundaryCondition {\n constructor(Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ) {\n super(Name);\n this.Name = Name;\n this.TranslationalStiffnessX = TranslationalStiffnessX;\n this.TranslationalStiffnessY = TranslationalStiffnessY;\n this.TranslationalStiffnessZ = TranslationalStiffnessZ;\n this.RotationalStiffnessX = RotationalStiffnessX;\n this.RotationalStiffnessY = RotationalStiffnessY;\n this.RotationalStiffnessZ = RotationalStiffnessZ;\n this.type = 1387855156;\n }\n }\n IFC42.IfcBoundaryNodeCondition = IfcBoundaryNodeCondition;\n class IfcBoundaryNodeConditionWarping extends IfcBoundaryNodeCondition {\n constructor(Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness) {\n super(Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ);\n this.Name = Name;\n this.TranslationalStiffnessX = TranslationalStiffnessX;\n this.TranslationalStiffnessY = TranslationalStiffnessY;\n this.TranslationalStiffnessZ = TranslationalStiffnessZ;\n this.RotationalStiffnessX = RotationalStiffnessX;\n this.RotationalStiffnessY = RotationalStiffnessY;\n this.RotationalStiffnessZ = RotationalStiffnessZ;\n this.WarpingStiffness = WarpingStiffness;\n this.type = 2069777674;\n }\n }\n IFC42.IfcBoundaryNodeConditionWarping = IfcBoundaryNodeConditionWarping;\n class IfcConnectionGeometry extends IfcLineObject {\n constructor() {\n super();\n this.type = 2859738748;\n }\n }\n IFC42.IfcConnectionGeometry = IfcConnectionGeometry;\n class IfcConnectionPointGeometry extends IfcConnectionGeometry {\n constructor(PointOnRelatingElement, PointOnRelatedElement) {\n super();\n this.PointOnRelatingElement = PointOnRelatingElement;\n this.PointOnRelatedElement = PointOnRelatedElement;\n this.type = 2614616156;\n }\n }\n IFC42.IfcConnectionPointGeometry = IfcConnectionPointGeometry;\n class IfcConnectionSurfaceGeometry extends IfcConnectionGeometry {\n constructor(SurfaceOnRelatingElement, SurfaceOnRelatedElement) {\n super();\n this.SurfaceOnRelatingElement = SurfaceOnRelatingElement;\n this.SurfaceOnRelatedElement = SurfaceOnRelatedElement;\n this.type = 2732653382;\n }\n }\n IFC42.IfcConnectionSurfaceGeometry = IfcConnectionSurfaceGeometry;\n class IfcConnectionVolumeGeometry extends IfcConnectionGeometry {\n constructor(VolumeOnRelatingElement, VolumeOnRelatedElement) {\n super();\n this.VolumeOnRelatingElement = VolumeOnRelatingElement;\n this.VolumeOnRelatedElement = VolumeOnRelatedElement;\n this.type = 775493141;\n }\n }\n IFC42.IfcConnectionVolumeGeometry = IfcConnectionVolumeGeometry;\n class IfcConstraint extends IfcLineObject {\n constructor(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.ConstraintGrade = ConstraintGrade;\n this.ConstraintSource = ConstraintSource;\n this.CreatingActor = CreatingActor;\n this.CreationTime = CreationTime;\n this.UserDefinedGrade = UserDefinedGrade;\n this.type = 1959218052;\n }\n }\n IFC42.IfcConstraint = IfcConstraint;\n class IfcCoordinateOperation extends IfcLineObject {\n constructor(SourceCRS, TargetCRS) {\n super();\n this.SourceCRS = SourceCRS;\n this.TargetCRS = TargetCRS;\n this.type = 1785450214;\n }\n }\n IFC42.IfcCoordinateOperation = IfcCoordinateOperation;\n class IfcCoordinateReferenceSystem extends IfcLineObject {\n constructor(Name, Description, GeodeticDatum, VerticalDatum) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.GeodeticDatum = GeodeticDatum;\n this.VerticalDatum = VerticalDatum;\n this.type = 1466758467;\n }\n }\n IFC42.IfcCoordinateReferenceSystem = IfcCoordinateReferenceSystem;\n class IfcCostValue extends IfcAppliedValue {\n constructor(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) {\n super(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components);\n this.Name = Name;\n this.Description = Description;\n this.AppliedValue = AppliedValue;\n this.UnitBasis = UnitBasis;\n this.ApplicableDate = ApplicableDate;\n this.FixedUntilDate = FixedUntilDate;\n this.Category = Category;\n this.Condition = Condition;\n this.ArithmeticOperator = ArithmeticOperator;\n this.Components = Components;\n this.type = 602808272;\n }\n }\n IFC42.IfcCostValue = IfcCostValue;\n class IfcDerivedUnit extends IfcLineObject {\n constructor(Elements, UnitType, UserDefinedType) {\n super();\n this.Elements = Elements;\n this.UnitType = UnitType;\n this.UserDefinedType = UserDefinedType;\n this.type = 1765591967;\n }\n }\n IFC42.IfcDerivedUnit = IfcDerivedUnit;\n class IfcDerivedUnitElement extends IfcLineObject {\n constructor(Unit, Exponent) {\n super();\n this.Unit = Unit;\n this.Exponent = Exponent;\n this.type = 1045800335;\n }\n }\n IFC42.IfcDerivedUnitElement = IfcDerivedUnitElement;\n class IfcDimensionalExponents extends IfcLineObject {\n constructor(LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent) {\n super();\n this.LengthExponent = LengthExponent;\n this.MassExponent = MassExponent;\n this.TimeExponent = TimeExponent;\n this.ElectricCurrentExponent = ElectricCurrentExponent;\n this.ThermodynamicTemperatureExponent = ThermodynamicTemperatureExponent;\n this.AmountOfSubstanceExponent = AmountOfSubstanceExponent;\n this.LuminousIntensityExponent = LuminousIntensityExponent;\n this.type = 2949456006;\n }\n }\n IFC42.IfcDimensionalExponents = IfcDimensionalExponents;\n class IfcExternalInformation extends IfcLineObject {\n constructor() {\n super();\n this.type = 4294318154;\n }\n }\n IFC42.IfcExternalInformation = IfcExternalInformation;\n class IfcExternalReference extends IfcLineObject {\n constructor(Location, Identification, Name) {\n super();\n this.Location = Location;\n this.Identification = Identification;\n this.Name = Name;\n this.type = 3200245327;\n }\n }\n IFC42.IfcExternalReference = IfcExternalReference;\n class IfcExternallyDefinedHatchStyle extends IfcExternalReference {\n constructor(Location, Identification, Name) {\n super(Location, Identification, Name);\n this.Location = Location;\n this.Identification = Identification;\n this.Name = Name;\n this.type = 2242383968;\n }\n }\n IFC42.IfcExternallyDefinedHatchStyle = IfcExternallyDefinedHatchStyle;\n class IfcExternallyDefinedSurfaceStyle extends IfcExternalReference {\n constructor(Location, Identification, Name) {\n super(Location, Identification, Name);\n this.Location = Location;\n this.Identification = Identification;\n this.Name = Name;\n this.type = 1040185647;\n }\n }\n IFC42.IfcExternallyDefinedSurfaceStyle = IfcExternallyDefinedSurfaceStyle;\n class IfcExternallyDefinedTextFont extends IfcExternalReference {\n constructor(Location, Identification, Name) {\n super(Location, Identification, Name);\n this.Location = Location;\n this.Identification = Identification;\n this.Name = Name;\n this.type = 3548104201;\n }\n }\n IFC42.IfcExternallyDefinedTextFont = IfcExternallyDefinedTextFont;\n class IfcGridAxis extends IfcLineObject {\n constructor(AxisTag, AxisCurve, SameSense) {\n super();\n this.AxisTag = AxisTag;\n this.AxisCurve = AxisCurve;\n this.SameSense = SameSense;\n this.type = 852622518;\n }\n }\n IFC42.IfcGridAxis = IfcGridAxis;\n class IfcIrregularTimeSeriesValue extends IfcLineObject {\n constructor(TimeStamp, ListValues) {\n super();\n this.TimeStamp = TimeStamp;\n this.ListValues = ListValues;\n this.type = 3020489413;\n }\n }\n IFC42.IfcIrregularTimeSeriesValue = IfcIrregularTimeSeriesValue;\n class IfcLibraryInformation extends IfcExternalInformation {\n constructor(Name, Version, Publisher, VersionDate, Location, Description) {\n super();\n this.Name = Name;\n this.Version = Version;\n this.Publisher = Publisher;\n this.VersionDate = VersionDate;\n this.Location = Location;\n this.Description = Description;\n this.type = 2655187982;\n }\n }\n IFC42.IfcLibraryInformation = IfcLibraryInformation;\n class IfcLibraryReference extends IfcExternalReference {\n constructor(Location, Identification, Name, Description, Language, ReferencedLibrary) {\n super(Location, Identification, Name);\n this.Location = Location;\n this.Identification = Identification;\n this.Name = Name;\n this.Description = Description;\n this.Language = Language;\n this.ReferencedLibrary = ReferencedLibrary;\n this.type = 3452421091;\n }\n }\n IFC42.IfcLibraryReference = IfcLibraryReference;\n class IfcLightDistributionData extends IfcLineObject {\n constructor(MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity) {\n super();\n this.MainPlaneAngle = MainPlaneAngle;\n this.SecondaryPlaneAngle = SecondaryPlaneAngle;\n this.LuminousIntensity = LuminousIntensity;\n this.type = 4162380809;\n }\n }\n IFC42.IfcLightDistributionData = IfcLightDistributionData;\n class IfcLightIntensityDistribution extends IfcLineObject {\n constructor(LightDistributionCurve, DistributionData) {\n super();\n this.LightDistributionCurve = LightDistributionCurve;\n this.DistributionData = DistributionData;\n this.type = 1566485204;\n }\n }\n IFC42.IfcLightIntensityDistribution = IfcLightIntensityDistribution;\n class IfcMapConversion extends IfcCoordinateOperation {\n constructor(SourceCRS, TargetCRS, Eastings, Northings, OrthogonalHeight, XAxisAbscissa, XAxisOrdinate, Scale) {\n super(SourceCRS, TargetCRS);\n this.SourceCRS = SourceCRS;\n this.TargetCRS = TargetCRS;\n this.Eastings = Eastings;\n this.Northings = Northings;\n this.OrthogonalHeight = OrthogonalHeight;\n this.XAxisAbscissa = XAxisAbscissa;\n this.XAxisOrdinate = XAxisOrdinate;\n this.Scale = Scale;\n this.type = 3057273783;\n }\n }\n IFC42.IfcMapConversion = IfcMapConversion;\n class IfcMaterialClassificationRelationship extends IfcLineObject {\n constructor(MaterialClassifications, ClassifiedMaterial) {\n super();\n this.MaterialClassifications = MaterialClassifications;\n this.ClassifiedMaterial = ClassifiedMaterial;\n this.type = 1847130766;\n }\n }\n IFC42.IfcMaterialClassificationRelationship = IfcMaterialClassificationRelationship;\n class IfcMaterialDefinition extends IfcLineObject {\n constructor() {\n super();\n this.type = 760658860;\n }\n }\n IFC42.IfcMaterialDefinition = IfcMaterialDefinition;\n class IfcMaterialLayer extends IfcMaterialDefinition {\n constructor(Material, LayerThickness, IsVentilated, Name, Description, Category, Priority) {\n super();\n this.Material = Material;\n this.LayerThickness = LayerThickness;\n this.IsVentilated = IsVentilated;\n this.Name = Name;\n this.Description = Description;\n this.Category = Category;\n this.Priority = Priority;\n this.type = 248100487;\n }\n }\n IFC42.IfcMaterialLayer = IfcMaterialLayer;\n class IfcMaterialLayerSet extends IfcMaterialDefinition {\n constructor(MaterialLayers, LayerSetName, Description) {\n super();\n this.MaterialLayers = MaterialLayers;\n this.LayerSetName = LayerSetName;\n this.Description = Description;\n this.type = 3303938423;\n }\n }\n IFC42.IfcMaterialLayerSet = IfcMaterialLayerSet;\n class IfcMaterialLayerWithOffsets extends IfcMaterialLayer {\n constructor(Material, LayerThickness, IsVentilated, Name, Description, Category, Priority, OffsetDirection, OffsetValues) {\n super(Material, LayerThickness, IsVentilated, Name, Description, Category, Priority);\n this.Material = Material;\n this.LayerThickness = LayerThickness;\n this.IsVentilated = IsVentilated;\n this.Name = Name;\n this.Description = Description;\n this.Category = Category;\n this.Priority = Priority;\n this.OffsetDirection = OffsetDirection;\n this.OffsetValues = OffsetValues;\n this.type = 1847252529;\n }\n }\n IFC42.IfcMaterialLayerWithOffsets = IfcMaterialLayerWithOffsets;\n class IfcMaterialList extends IfcLineObject {\n constructor(Materials) {\n super();\n this.Materials = Materials;\n this.type = 2199411900;\n }\n }\n IFC42.IfcMaterialList = IfcMaterialList;\n class IfcMaterialProfile extends IfcMaterialDefinition {\n constructor(Name, Description, Material, Profile, Priority, Category) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.Material = Material;\n this.Profile = Profile;\n this.Priority = Priority;\n this.Category = Category;\n this.type = 2235152071;\n }\n }\n IFC42.IfcMaterialProfile = IfcMaterialProfile;\n class IfcMaterialProfileSet extends IfcMaterialDefinition {\n constructor(Name, Description, MaterialProfiles, CompositeProfile) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.MaterialProfiles = MaterialProfiles;\n this.CompositeProfile = CompositeProfile;\n this.type = 164193824;\n }\n }\n IFC42.IfcMaterialProfileSet = IfcMaterialProfileSet;\n class IfcMaterialProfileWithOffsets extends IfcMaterialProfile {\n constructor(Name, Description, Material, Profile, Priority, Category, OffsetValues) {\n super(Name, Description, Material, Profile, Priority, Category);\n this.Name = Name;\n this.Description = Description;\n this.Material = Material;\n this.Profile = Profile;\n this.Priority = Priority;\n this.Category = Category;\n this.OffsetValues = OffsetValues;\n this.type = 552965576;\n }\n }\n IFC42.IfcMaterialProfileWithOffsets = IfcMaterialProfileWithOffsets;\n class IfcMaterialUsageDefinition extends IfcLineObject {\n constructor() {\n super();\n this.type = 1507914824;\n }\n }\n IFC42.IfcMaterialUsageDefinition = IfcMaterialUsageDefinition;\n class IfcMeasureWithUnit extends IfcLineObject {\n constructor(ValueComponent, UnitComponent) {\n super();\n this.ValueComponent = ValueComponent;\n this.UnitComponent = UnitComponent;\n this.type = 2597039031;\n }\n }\n IFC42.IfcMeasureWithUnit = IfcMeasureWithUnit;\n class IfcMetric extends IfcConstraint {\n constructor(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue, ReferencePath) {\n super(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade);\n this.Name = Name;\n this.Description = Description;\n this.ConstraintGrade = ConstraintGrade;\n this.ConstraintSource = ConstraintSource;\n this.CreatingActor = CreatingActor;\n this.CreationTime = CreationTime;\n this.UserDefinedGrade = UserDefinedGrade;\n this.Benchmark = Benchmark;\n this.ValueSource = ValueSource;\n this.DataValue = DataValue;\n this.ReferencePath = ReferencePath;\n this.type = 3368373690;\n }\n }\n IFC42.IfcMetric = IfcMetric;\n class IfcMonetaryUnit extends IfcLineObject {\n constructor(Currency) {\n super();\n this.Currency = Currency;\n this.type = 2706619895;\n }\n }\n IFC42.IfcMonetaryUnit = IfcMonetaryUnit;\n class IfcNamedUnit extends IfcLineObject {\n constructor(Dimensions, UnitType) {\n super();\n this.Dimensions = Dimensions;\n this.UnitType = UnitType;\n this.type = 1918398963;\n }\n }\n IFC42.IfcNamedUnit = IfcNamedUnit;\n class IfcObjectPlacement extends IfcLineObject {\n constructor() {\n super();\n this.type = 3701648758;\n }\n }\n IFC42.IfcObjectPlacement = IfcObjectPlacement;\n class IfcObjective extends IfcConstraint {\n constructor(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, LogicalAggregator, ObjectiveQualifier, UserDefinedQualifier) {\n super(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade);\n this.Name = Name;\n this.Description = Description;\n this.ConstraintGrade = ConstraintGrade;\n this.ConstraintSource = ConstraintSource;\n this.CreatingActor = CreatingActor;\n this.CreationTime = CreationTime;\n this.UserDefinedGrade = UserDefinedGrade;\n this.BenchmarkValues = BenchmarkValues;\n this.LogicalAggregator = LogicalAggregator;\n this.ObjectiveQualifier = ObjectiveQualifier;\n this.UserDefinedQualifier = UserDefinedQualifier;\n this.type = 2251480897;\n }\n }\n IFC42.IfcObjective = IfcObjective;\n class IfcOrganization extends IfcLineObject {\n constructor(Identification, Name, Description, Roles, Addresses) {\n super();\n this.Identification = Identification;\n this.Name = Name;\n this.Description = Description;\n this.Roles = Roles;\n this.Addresses = Addresses;\n this.type = 4251960020;\n }\n }\n IFC42.IfcOrganization = IfcOrganization;\n class IfcOwnerHistory extends IfcLineObject {\n constructor(OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate) {\n super();\n this.OwningUser = OwningUser;\n this.OwningApplication = OwningApplication;\n this.State = State;\n this.ChangeAction = ChangeAction;\n this.LastModifiedDate = LastModifiedDate;\n this.LastModifyingUser = LastModifyingUser;\n this.LastModifyingApplication = LastModifyingApplication;\n this.CreationDate = CreationDate;\n this.type = 1207048766;\n }\n }\n IFC42.IfcOwnerHistory = IfcOwnerHistory;\n class IfcPerson extends IfcLineObject {\n constructor(Identification, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses) {\n super();\n this.Identification = Identification;\n this.FamilyName = FamilyName;\n this.GivenName = GivenName;\n this.MiddleNames = MiddleNames;\n this.PrefixTitles = PrefixTitles;\n this.SuffixTitles = SuffixTitles;\n this.Roles = Roles;\n this.Addresses = Addresses;\n this.type = 2077209135;\n }\n }\n IFC42.IfcPerson = IfcPerson;\n class IfcPersonAndOrganization extends IfcLineObject {\n constructor(ThePerson, TheOrganization, Roles) {\n super();\n this.ThePerson = ThePerson;\n this.TheOrganization = TheOrganization;\n this.Roles = Roles;\n this.type = 101040310;\n }\n }\n IFC42.IfcPersonAndOrganization = IfcPersonAndOrganization;\n class IfcPhysicalQuantity extends IfcLineObject {\n constructor(Name, Description) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.type = 2483315170;\n }\n }\n IFC42.IfcPhysicalQuantity = IfcPhysicalQuantity;\n class IfcPhysicalSimpleQuantity extends IfcPhysicalQuantity {\n constructor(Name, Description, Unit) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.Unit = Unit;\n this.type = 2226359599;\n }\n }\n IFC42.IfcPhysicalSimpleQuantity = IfcPhysicalSimpleQuantity;\n class IfcPostalAddress extends IfcAddress {\n constructor(Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country) {\n super(Purpose, Description, UserDefinedPurpose);\n this.Purpose = Purpose;\n this.Description = Description;\n this.UserDefinedPurpose = UserDefinedPurpose;\n this.InternalLocation = InternalLocation;\n this.AddressLines = AddressLines;\n this.PostalBox = PostalBox;\n this.Town = Town;\n this.Region = Region;\n this.PostalCode = PostalCode;\n this.Country = Country;\n this.type = 3355820592;\n }\n }\n IFC42.IfcPostalAddress = IfcPostalAddress;\n class IfcPresentationItem extends IfcLineObject {\n constructor() {\n super();\n this.type = 677532197;\n }\n }\n IFC42.IfcPresentationItem = IfcPresentationItem;\n class IfcPresentationLayerAssignment extends IfcLineObject {\n constructor(Name, Description, AssignedItems, Identifier) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.AssignedItems = AssignedItems;\n this.Identifier = Identifier;\n this.type = 2022622350;\n }\n }\n IFC42.IfcPresentationLayerAssignment = IfcPresentationLayerAssignment;\n class IfcPresentationLayerWithStyle extends IfcPresentationLayerAssignment {\n constructor(Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles) {\n super(Name, Description, AssignedItems, Identifier);\n this.Name = Name;\n this.Description = Description;\n this.AssignedItems = AssignedItems;\n this.Identifier = Identifier;\n this.LayerOn = LayerOn;\n this.LayerFrozen = LayerFrozen;\n this.LayerBlocked = LayerBlocked;\n this.LayerStyles = LayerStyles;\n this.type = 1304840413;\n }\n }\n IFC42.IfcPresentationLayerWithStyle = IfcPresentationLayerWithStyle;\n class IfcPresentationStyle extends IfcLineObject {\n constructor(Name) {\n super();\n this.Name = Name;\n this.type = 3119450353;\n }\n }\n IFC42.IfcPresentationStyle = IfcPresentationStyle;\n class IfcPresentationStyleAssignment extends IfcLineObject {\n constructor(Styles) {\n super();\n this.Styles = Styles;\n this.type = 2417041796;\n }\n }\n IFC42.IfcPresentationStyleAssignment = IfcPresentationStyleAssignment;\n class IfcProductRepresentation extends IfcLineObject {\n constructor(Name, Description, Representations) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.Representations = Representations;\n this.type = 2095639259;\n }\n }\n IFC42.IfcProductRepresentation = IfcProductRepresentation;\n class IfcProfileDef extends IfcLineObject {\n constructor(ProfileType, ProfileName) {\n super();\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.type = 3958567839;\n }\n }\n IFC42.IfcProfileDef = IfcProfileDef;\n class IfcProjectedCRS extends IfcCoordinateReferenceSystem {\n constructor(Name, Description, GeodeticDatum, VerticalDatum, MapProjection, MapZone, MapUnit) {\n super(Name, Description, GeodeticDatum, VerticalDatum);\n this.Name = Name;\n this.Description = Description;\n this.GeodeticDatum = GeodeticDatum;\n this.VerticalDatum = VerticalDatum;\n this.MapProjection = MapProjection;\n this.MapZone = MapZone;\n this.MapUnit = MapUnit;\n this.type = 3843373140;\n }\n }\n IFC42.IfcProjectedCRS = IfcProjectedCRS;\n class IfcPropertyAbstraction extends IfcLineObject {\n constructor() {\n super();\n this.type = 986844984;\n }\n }\n IFC42.IfcPropertyAbstraction = IfcPropertyAbstraction;\n class IfcPropertyEnumeration extends IfcPropertyAbstraction {\n constructor(Name, EnumerationValues, Unit) {\n super();\n this.Name = Name;\n this.EnumerationValues = EnumerationValues;\n this.Unit = Unit;\n this.type = 3710013099;\n }\n }\n IFC42.IfcPropertyEnumeration = IfcPropertyEnumeration;\n class IfcQuantityArea extends IfcPhysicalSimpleQuantity {\n constructor(Name, Description, Unit, AreaValue, Formula) {\n super(Name, Description, Unit);\n this.Name = Name;\n this.Description = Description;\n this.Unit = Unit;\n this.AreaValue = AreaValue;\n this.Formula = Formula;\n this.type = 2044713172;\n }\n }\n IFC42.IfcQuantityArea = IfcQuantityArea;\n class IfcQuantityCount extends IfcPhysicalSimpleQuantity {\n constructor(Name, Description, Unit, CountValue, Formula) {\n super(Name, Description, Unit);\n this.Name = Name;\n this.Description = Description;\n this.Unit = Unit;\n this.CountValue = CountValue;\n this.Formula = Formula;\n this.type = 2093928680;\n }\n }\n IFC42.IfcQuantityCount = IfcQuantityCount;\n class IfcQuantityLength extends IfcPhysicalSimpleQuantity {\n constructor(Name, Description, Unit, LengthValue, Formula) {\n super(Name, Description, Unit);\n this.Name = Name;\n this.Description = Description;\n this.Unit = Unit;\n this.LengthValue = LengthValue;\n this.Formula = Formula;\n this.type = 931644368;\n }\n }\n IFC42.IfcQuantityLength = IfcQuantityLength;\n class IfcQuantityTime extends IfcPhysicalSimpleQuantity {\n constructor(Name, Description, Unit, TimeValue, Formula) {\n super(Name, Description, Unit);\n this.Name = Name;\n this.Description = Description;\n this.Unit = Unit;\n this.TimeValue = TimeValue;\n this.Formula = Formula;\n this.type = 3252649465;\n }\n }\n IFC42.IfcQuantityTime = IfcQuantityTime;\n class IfcQuantityVolume extends IfcPhysicalSimpleQuantity {\n constructor(Name, Description, Unit, VolumeValue, Formula) {\n super(Name, Description, Unit);\n this.Name = Name;\n this.Description = Description;\n this.Unit = Unit;\n this.VolumeValue = VolumeValue;\n this.Formula = Formula;\n this.type = 2405470396;\n }\n }\n IFC42.IfcQuantityVolume = IfcQuantityVolume;\n class IfcQuantityWeight extends IfcPhysicalSimpleQuantity {\n constructor(Name, Description, Unit, WeightValue, Formula) {\n super(Name, Description, Unit);\n this.Name = Name;\n this.Description = Description;\n this.Unit = Unit;\n this.WeightValue = WeightValue;\n this.Formula = Formula;\n this.type = 825690147;\n }\n }\n IFC42.IfcQuantityWeight = IfcQuantityWeight;\n class IfcRecurrencePattern extends IfcLineObject {\n constructor(RecurrenceType, DayComponent, WeekdayComponent, MonthComponent, Position, Interval, Occurrences, TimePeriods) {\n super();\n this.RecurrenceType = RecurrenceType;\n this.DayComponent = DayComponent;\n this.WeekdayComponent = WeekdayComponent;\n this.MonthComponent = MonthComponent;\n this.Position = Position;\n this.Interval = Interval;\n this.Occurrences = Occurrences;\n this.TimePeriods = TimePeriods;\n this.type = 3915482550;\n }\n }\n IFC42.IfcRecurrencePattern = IfcRecurrencePattern;\n class IfcReference extends IfcLineObject {\n constructor(TypeIdentifier, AttributeIdentifier, InstanceName, ListPositions, InnerReference) {\n super();\n this.TypeIdentifier = TypeIdentifier;\n this.AttributeIdentifier = AttributeIdentifier;\n this.InstanceName = InstanceName;\n this.ListPositions = ListPositions;\n this.InnerReference = InnerReference;\n this.type = 2433181523;\n }\n }\n IFC42.IfcReference = IfcReference;\n class IfcRepresentation extends IfcLineObject {\n constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n super();\n this.ContextOfItems = ContextOfItems;\n this.RepresentationIdentifier = RepresentationIdentifier;\n this.RepresentationType = RepresentationType;\n this.Items = Items;\n this.type = 1076942058;\n }\n }\n IFC42.IfcRepresentation = IfcRepresentation;\n class IfcRepresentationContext extends IfcLineObject {\n constructor(ContextIdentifier, ContextType) {\n super();\n this.ContextIdentifier = ContextIdentifier;\n this.ContextType = ContextType;\n this.type = 3377609919;\n }\n }\n IFC42.IfcRepresentationContext = IfcRepresentationContext;\n class IfcRepresentationItem extends IfcLineObject {\n constructor() {\n super();\n this.type = 3008791417;\n }\n }\n IFC42.IfcRepresentationItem = IfcRepresentationItem;\n class IfcRepresentationMap extends IfcLineObject {\n constructor(MappingOrigin, MappedRepresentation) {\n super();\n this.MappingOrigin = MappingOrigin;\n this.MappedRepresentation = MappedRepresentation;\n this.type = 1660063152;\n }\n }\n IFC42.IfcRepresentationMap = IfcRepresentationMap;\n class IfcResourceLevelRelationship extends IfcLineObject {\n constructor(Name, Description) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.type = 2439245199;\n }\n }\n IFC42.IfcResourceLevelRelationship = IfcResourceLevelRelationship;\n class IfcRoot extends IfcLineObject {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super();\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 2341007311;\n }\n }\n IFC42.IfcRoot = IfcRoot;\n class IfcSIUnit extends IfcNamedUnit {\n constructor(UnitType, Prefix, Name) {\n super(new Handle(0), UnitType);\n this.UnitType = UnitType;\n this.Prefix = Prefix;\n this.Name = Name;\n this.type = 448429030;\n }\n }\n IFC42.IfcSIUnit = IfcSIUnit;\n class IfcSchedulingTime extends IfcLineObject {\n constructor(Name, DataOrigin, UserDefinedDataOrigin) {\n super();\n this.Name = Name;\n this.DataOrigin = DataOrigin;\n this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n this.type = 1054537805;\n }\n }\n IFC42.IfcSchedulingTime = IfcSchedulingTime;\n class IfcShapeAspect extends IfcLineObject {\n constructor(ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape) {\n super();\n this.ShapeRepresentations = ShapeRepresentations;\n this.Name = Name;\n this.Description = Description;\n this.ProductDefinitional = ProductDefinitional;\n this.PartOfProductDefinitionShape = PartOfProductDefinitionShape;\n this.type = 867548509;\n }\n }\n IFC42.IfcShapeAspect = IfcShapeAspect;\n class IfcShapeModel extends IfcRepresentation {\n constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n this.ContextOfItems = ContextOfItems;\n this.RepresentationIdentifier = RepresentationIdentifier;\n this.RepresentationType = RepresentationType;\n this.Items = Items;\n this.type = 3982875396;\n }\n }\n IFC42.IfcShapeModel = IfcShapeModel;\n class IfcShapeRepresentation extends IfcShapeModel {\n constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n this.ContextOfItems = ContextOfItems;\n this.RepresentationIdentifier = RepresentationIdentifier;\n this.RepresentationType = RepresentationType;\n this.Items = Items;\n this.type = 4240577450;\n }\n }\n IFC42.IfcShapeRepresentation = IfcShapeRepresentation;\n class IfcStructuralConnectionCondition extends IfcLineObject {\n constructor(Name) {\n super();\n this.Name = Name;\n this.type = 2273995522;\n }\n }\n IFC42.IfcStructuralConnectionCondition = IfcStructuralConnectionCondition;\n class IfcStructuralLoad extends IfcLineObject {\n constructor(Name) {\n super();\n this.Name = Name;\n this.type = 2162789131;\n }\n }\n IFC42.IfcStructuralLoad = IfcStructuralLoad;\n class IfcStructuralLoadConfiguration extends IfcStructuralLoad {\n constructor(Name, Values, Locations) {\n super(Name);\n this.Name = Name;\n this.Values = Values;\n this.Locations = Locations;\n this.type = 3478079324;\n }\n }\n IFC42.IfcStructuralLoadConfiguration = IfcStructuralLoadConfiguration;\n class IfcStructuralLoadOrResult extends IfcStructuralLoad {\n constructor(Name) {\n super(Name);\n this.Name = Name;\n this.type = 609421318;\n }\n }\n IFC42.IfcStructuralLoadOrResult = IfcStructuralLoadOrResult;\n class IfcStructuralLoadStatic extends IfcStructuralLoadOrResult {\n constructor(Name) {\n super(Name);\n this.Name = Name;\n this.type = 2525727697;\n }\n }\n IFC42.IfcStructuralLoadStatic = IfcStructuralLoadStatic;\n class IfcStructuralLoadTemperature extends IfcStructuralLoadStatic {\n constructor(Name, DeltaTConstant, DeltaTY, DeltaTZ) {\n super(Name);\n this.Name = Name;\n this.DeltaTConstant = DeltaTConstant;\n this.DeltaTY = DeltaTY;\n this.DeltaTZ = DeltaTZ;\n this.type = 3408363356;\n }\n }\n IFC42.IfcStructuralLoadTemperature = IfcStructuralLoadTemperature;\n class IfcStyleModel extends IfcRepresentation {\n constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n this.ContextOfItems = ContextOfItems;\n this.RepresentationIdentifier = RepresentationIdentifier;\n this.RepresentationType = RepresentationType;\n this.Items = Items;\n this.type = 2830218821;\n }\n }\n IFC42.IfcStyleModel = IfcStyleModel;\n class IfcStyledItem extends IfcRepresentationItem {\n constructor(Item, Styles, Name) {\n super();\n this.Item = Item;\n this.Styles = Styles;\n this.Name = Name;\n this.type = 3958052878;\n }\n }\n IFC42.IfcStyledItem = IfcStyledItem;\n class IfcStyledRepresentation extends IfcStyleModel {\n constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n this.ContextOfItems = ContextOfItems;\n this.RepresentationIdentifier = RepresentationIdentifier;\n this.RepresentationType = RepresentationType;\n this.Items = Items;\n this.type = 3049322572;\n }\n }\n IFC42.IfcStyledRepresentation = IfcStyledRepresentation;\n class IfcSurfaceReinforcementArea extends IfcStructuralLoadOrResult {\n constructor(Name, SurfaceReinforcement1, SurfaceReinforcement2, ShearReinforcement) {\n super(Name);\n this.Name = Name;\n this.SurfaceReinforcement1 = SurfaceReinforcement1;\n this.SurfaceReinforcement2 = SurfaceReinforcement2;\n this.ShearReinforcement = ShearReinforcement;\n this.type = 2934153892;\n }\n }\n IFC42.IfcSurfaceReinforcementArea = IfcSurfaceReinforcementArea;\n class IfcSurfaceStyle extends IfcPresentationStyle {\n constructor(Name, Side, Styles) {\n super(Name);\n this.Name = Name;\n this.Side = Side;\n this.Styles = Styles;\n this.type = 1300840506;\n }\n }\n IFC42.IfcSurfaceStyle = IfcSurfaceStyle;\n class IfcSurfaceStyleLighting extends IfcPresentationItem {\n constructor(DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour) {\n super();\n this.DiffuseTransmissionColour = DiffuseTransmissionColour;\n this.DiffuseReflectionColour = DiffuseReflectionColour;\n this.TransmissionColour = TransmissionColour;\n this.ReflectanceColour = ReflectanceColour;\n this.type = 3303107099;\n }\n }\n IFC42.IfcSurfaceStyleLighting = IfcSurfaceStyleLighting;\n class IfcSurfaceStyleRefraction extends IfcPresentationItem {\n constructor(RefractionIndex, DispersionFactor) {\n super();\n this.RefractionIndex = RefractionIndex;\n this.DispersionFactor = DispersionFactor;\n this.type = 1607154358;\n }\n }\n IFC42.IfcSurfaceStyleRefraction = IfcSurfaceStyleRefraction;\n class IfcSurfaceStyleShading extends IfcPresentationItem {\n constructor(SurfaceColour, Transparency) {\n super();\n this.SurfaceColour = SurfaceColour;\n this.Transparency = Transparency;\n this.type = 846575682;\n }\n }\n IFC42.IfcSurfaceStyleShading = IfcSurfaceStyleShading;\n class IfcSurfaceStyleWithTextures extends IfcPresentationItem {\n constructor(Textures) {\n super();\n this.Textures = Textures;\n this.type = 1351298697;\n }\n }\n IFC42.IfcSurfaceStyleWithTextures = IfcSurfaceStyleWithTextures;\n class IfcSurfaceTexture extends IfcPresentationItem {\n constructor(RepeatS, RepeatT, Mode, TextureTransform, Parameter) {\n super();\n this.RepeatS = RepeatS;\n this.RepeatT = RepeatT;\n this.Mode = Mode;\n this.TextureTransform = TextureTransform;\n this.Parameter = Parameter;\n this.type = 626085974;\n }\n }\n IFC42.IfcSurfaceTexture = IfcSurfaceTexture;\n class IfcTable extends IfcLineObject {\n constructor(Name, Rows, Columns) {\n super();\n this.Name = Name;\n this.Rows = Rows;\n this.Columns = Columns;\n this.type = 985171141;\n }\n }\n IFC42.IfcTable = IfcTable;\n class IfcTableColumn extends IfcLineObject {\n constructor(Identifier, Name, Description, Unit, ReferencePath) {\n super();\n this.Identifier = Identifier;\n this.Name = Name;\n this.Description = Description;\n this.Unit = Unit;\n this.ReferencePath = ReferencePath;\n this.type = 2043862942;\n }\n }\n IFC42.IfcTableColumn = IfcTableColumn;\n class IfcTableRow extends IfcLineObject {\n constructor(RowCells, IsHeading) {\n super();\n this.RowCells = RowCells;\n this.IsHeading = IsHeading;\n this.type = 531007025;\n }\n }\n IFC42.IfcTableRow = IfcTableRow;\n class IfcTaskTime extends IfcSchedulingTime {\n constructor(Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion) {\n super(Name, DataOrigin, UserDefinedDataOrigin);\n this.Name = Name;\n this.DataOrigin = DataOrigin;\n this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n this.DurationType = DurationType;\n this.ScheduleDuration = ScheduleDuration;\n this.ScheduleStart = ScheduleStart;\n this.ScheduleFinish = ScheduleFinish;\n this.EarlyStart = EarlyStart;\n this.EarlyFinish = EarlyFinish;\n this.LateStart = LateStart;\n this.LateFinish = LateFinish;\n this.FreeFloat = FreeFloat;\n this.TotalFloat = TotalFloat;\n this.IsCritical = IsCritical;\n this.StatusTime = StatusTime;\n this.ActualDuration = ActualDuration;\n this.ActualStart = ActualStart;\n this.ActualFinish = ActualFinish;\n this.RemainingTime = RemainingTime;\n this.Completion = Completion;\n this.type = 1549132990;\n }\n }\n IFC42.IfcTaskTime = IfcTaskTime;\n class IfcTaskTimeRecurring extends IfcTaskTime {\n constructor(Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion, Recurrence) {\n super(Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion);\n this.Name = Name;\n this.DataOrigin = DataOrigin;\n this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n this.DurationType = DurationType;\n this.ScheduleDuration = ScheduleDuration;\n this.ScheduleStart = ScheduleStart;\n this.ScheduleFinish = ScheduleFinish;\n this.EarlyStart = EarlyStart;\n this.EarlyFinish = EarlyFinish;\n this.LateStart = LateStart;\n this.LateFinish = LateFinish;\n this.FreeFloat = FreeFloat;\n this.TotalFloat = TotalFloat;\n this.IsCritical = IsCritical;\n this.StatusTime = StatusTime;\n this.ActualDuration = ActualDuration;\n this.ActualStart = ActualStart;\n this.ActualFinish = ActualFinish;\n this.RemainingTime = RemainingTime;\n this.Completion = Completion;\n this.Recurrence = Recurrence;\n this.type = 2771591690;\n }\n }\n IFC42.IfcTaskTimeRecurring = IfcTaskTimeRecurring;\n class IfcTelecomAddress extends IfcAddress {\n constructor(Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL, MessagingIDs) {\n super(Purpose, Description, UserDefinedPurpose);\n this.Purpose = Purpose;\n this.Description = Description;\n this.UserDefinedPurpose = UserDefinedPurpose;\n this.TelephoneNumbers = TelephoneNumbers;\n this.FacsimileNumbers = FacsimileNumbers;\n this.PagerNumber = PagerNumber;\n this.ElectronicMailAddresses = ElectronicMailAddresses;\n this.WWWHomePageURL = WWWHomePageURL;\n this.MessagingIDs = MessagingIDs;\n this.type = 912023232;\n }\n }\n IFC42.IfcTelecomAddress = IfcTelecomAddress;\n class IfcTextStyle extends IfcPresentationStyle {\n constructor(Name, TextCharacterAppearance, TextStyle, TextFontStyle, ModelOrDraughting) {\n super(Name);\n this.Name = Name;\n this.TextCharacterAppearance = TextCharacterAppearance;\n this.TextStyle = TextStyle;\n this.TextFontStyle = TextFontStyle;\n this.ModelOrDraughting = ModelOrDraughting;\n this.type = 1447204868;\n }\n }\n IFC42.IfcTextStyle = IfcTextStyle;\n class IfcTextStyleForDefinedFont extends IfcPresentationItem {\n constructor(Colour, BackgroundColour) {\n super();\n this.Colour = Colour;\n this.BackgroundColour = BackgroundColour;\n this.type = 2636378356;\n }\n }\n IFC42.IfcTextStyleForDefinedFont = IfcTextStyleForDefinedFont;\n class IfcTextStyleTextModel extends IfcPresentationItem {\n constructor(TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight) {\n super();\n this.TextIndent = TextIndent;\n this.TextAlign = TextAlign;\n this.TextDecoration = TextDecoration;\n this.LetterSpacing = LetterSpacing;\n this.WordSpacing = WordSpacing;\n this.TextTransform = TextTransform;\n this.LineHeight = LineHeight;\n this.type = 1640371178;\n }\n }\n IFC42.IfcTextStyleTextModel = IfcTextStyleTextModel;\n class IfcTextureCoordinate extends IfcPresentationItem {\n constructor(Maps) {\n super();\n this.Maps = Maps;\n this.type = 280115917;\n }\n }\n IFC42.IfcTextureCoordinate = IfcTextureCoordinate;\n class IfcTextureCoordinateGenerator extends IfcTextureCoordinate {\n constructor(Maps, Mode, Parameter) {\n super(Maps);\n this.Maps = Maps;\n this.Mode = Mode;\n this.Parameter = Parameter;\n this.type = 1742049831;\n }\n }\n IFC42.IfcTextureCoordinateGenerator = IfcTextureCoordinateGenerator;\n class IfcTextureMap extends IfcTextureCoordinate {\n constructor(Maps, Vertices, MappedTo) {\n super(Maps);\n this.Maps = Maps;\n this.Vertices = Vertices;\n this.MappedTo = MappedTo;\n this.type = 2552916305;\n }\n }\n IFC42.IfcTextureMap = IfcTextureMap;\n class IfcTextureVertex extends IfcPresentationItem {\n constructor(Coordinates) {\n super();\n this.Coordinates = Coordinates;\n this.type = 1210645708;\n }\n }\n IFC42.IfcTextureVertex = IfcTextureVertex;\n class IfcTextureVertexList extends IfcPresentationItem {\n constructor(TexCoordsList) {\n super();\n this.TexCoordsList = TexCoordsList;\n this.type = 3611470254;\n }\n }\n IFC42.IfcTextureVertexList = IfcTextureVertexList;\n class IfcTimePeriod extends IfcLineObject {\n constructor(StartTime, EndTime) {\n super();\n this.StartTime = StartTime;\n this.EndTime = EndTime;\n this.type = 1199560280;\n }\n }\n IFC42.IfcTimePeriod = IfcTimePeriod;\n class IfcTimeSeries extends IfcLineObject {\n constructor(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.StartTime = StartTime;\n this.EndTime = EndTime;\n this.TimeSeriesDataType = TimeSeriesDataType;\n this.DataOrigin = DataOrigin;\n this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n this.Unit = Unit;\n this.type = 3101149627;\n }\n }\n IFC42.IfcTimeSeries = IfcTimeSeries;\n class IfcTimeSeriesValue extends IfcLineObject {\n constructor(ListValues) {\n super();\n this.ListValues = ListValues;\n this.type = 581633288;\n }\n }\n IFC42.IfcTimeSeriesValue = IfcTimeSeriesValue;\n class IfcTopologicalRepresentationItem extends IfcRepresentationItem {\n constructor() {\n super();\n this.type = 1377556343;\n }\n }\n IFC42.IfcTopologicalRepresentationItem = IfcTopologicalRepresentationItem;\n class IfcTopologyRepresentation extends IfcShapeModel {\n constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n this.ContextOfItems = ContextOfItems;\n this.RepresentationIdentifier = RepresentationIdentifier;\n this.RepresentationType = RepresentationType;\n this.Items = Items;\n this.type = 1735638870;\n }\n }\n IFC42.IfcTopologyRepresentation = IfcTopologyRepresentation;\n class IfcUnitAssignment extends IfcLineObject {\n constructor(Units) {\n super();\n this.Units = Units;\n this.type = 180925521;\n }\n }\n IFC42.IfcUnitAssignment = IfcUnitAssignment;\n class IfcVertex extends IfcTopologicalRepresentationItem {\n constructor() {\n super();\n this.type = 2799835756;\n }\n }\n IFC42.IfcVertex = IfcVertex;\n class IfcVertexPoint extends IfcVertex {\n constructor(VertexGeometry) {\n super();\n this.VertexGeometry = VertexGeometry;\n this.type = 1907098498;\n }\n }\n IFC42.IfcVertexPoint = IfcVertexPoint;\n class IfcVirtualGridIntersection extends IfcLineObject {\n constructor(IntersectingAxes, OffsetDistances) {\n super();\n this.IntersectingAxes = IntersectingAxes;\n this.OffsetDistances = OffsetDistances;\n this.type = 891718957;\n }\n }\n IFC42.IfcVirtualGridIntersection = IfcVirtualGridIntersection;\n class IfcWorkTime extends IfcSchedulingTime {\n constructor(Name, DataOrigin, UserDefinedDataOrigin, RecurrencePattern, Start, Finish) {\n super(Name, DataOrigin, UserDefinedDataOrigin);\n this.Name = Name;\n this.DataOrigin = DataOrigin;\n this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n this.RecurrencePattern = RecurrencePattern;\n this.Start = Start;\n this.Finish = Finish;\n this.type = 1236880293;\n }\n }\n IFC42.IfcWorkTime = IfcWorkTime;\n class IfcApprovalRelationship extends IfcResourceLevelRelationship {\n constructor(Name, Description, RelatingApproval, RelatedApprovals) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.RelatingApproval = RelatingApproval;\n this.RelatedApprovals = RelatedApprovals;\n this.type = 3869604511;\n }\n }\n IFC42.IfcApprovalRelationship = IfcApprovalRelationship;\n class IfcArbitraryClosedProfileDef extends IfcProfileDef {\n constructor(ProfileType, ProfileName, OuterCurve) {\n super(ProfileType, ProfileName);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.OuterCurve = OuterCurve;\n this.type = 3798115385;\n }\n }\n IFC42.IfcArbitraryClosedProfileDef = IfcArbitraryClosedProfileDef;\n class IfcArbitraryOpenProfileDef extends IfcProfileDef {\n constructor(ProfileType, ProfileName, Curve) {\n super(ProfileType, ProfileName);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Curve = Curve;\n this.type = 1310608509;\n }\n }\n IFC42.IfcArbitraryOpenProfileDef = IfcArbitraryOpenProfileDef;\n class IfcArbitraryProfileDefWithVoids extends IfcArbitraryClosedProfileDef {\n constructor(ProfileType, ProfileName, OuterCurve, InnerCurves) {\n super(ProfileType, ProfileName, OuterCurve);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.OuterCurve = OuterCurve;\n this.InnerCurves = InnerCurves;\n this.type = 2705031697;\n }\n }\n IFC42.IfcArbitraryProfileDefWithVoids = IfcArbitraryProfileDefWithVoids;\n class IfcBlobTexture extends IfcSurfaceTexture {\n constructor(RepeatS, RepeatT, Mode, TextureTransform, Parameter, RasterFormat, RasterCode) {\n super(RepeatS, RepeatT, Mode, TextureTransform, Parameter);\n this.RepeatS = RepeatS;\n this.RepeatT = RepeatT;\n this.Mode = Mode;\n this.TextureTransform = TextureTransform;\n this.Parameter = Parameter;\n this.RasterFormat = RasterFormat;\n this.RasterCode = RasterCode;\n this.type = 616511568;\n }\n }\n IFC42.IfcBlobTexture = IfcBlobTexture;\n class IfcCenterLineProfileDef extends IfcArbitraryOpenProfileDef {\n constructor(ProfileType, ProfileName, Curve, Thickness) {\n super(ProfileType, ProfileName, Curve);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Curve = Curve;\n this.Thickness = Thickness;\n this.type = 3150382593;\n }\n }\n IFC42.IfcCenterLineProfileDef = IfcCenterLineProfileDef;\n class IfcClassification extends IfcExternalInformation {\n constructor(Source, Edition, EditionDate, Name, Description, Location, ReferenceTokens) {\n super();\n this.Source = Source;\n this.Edition = Edition;\n this.EditionDate = EditionDate;\n this.Name = Name;\n this.Description = Description;\n this.Location = Location;\n this.ReferenceTokens = ReferenceTokens;\n this.type = 747523909;\n }\n }\n IFC42.IfcClassification = IfcClassification;\n class IfcClassificationReference extends IfcExternalReference {\n constructor(Location, Identification, Name, ReferencedSource, Description, Sort) {\n super(Location, Identification, Name);\n this.Location = Location;\n this.Identification = Identification;\n this.Name = Name;\n this.ReferencedSource = ReferencedSource;\n this.Description = Description;\n this.Sort = Sort;\n this.type = 647927063;\n }\n }\n IFC42.IfcClassificationReference = IfcClassificationReference;\n class IfcColourRgbList extends IfcPresentationItem {\n constructor(ColourList) {\n super();\n this.ColourList = ColourList;\n this.type = 3285139300;\n }\n }\n IFC42.IfcColourRgbList = IfcColourRgbList;\n class IfcColourSpecification extends IfcPresentationItem {\n constructor(Name) {\n super();\n this.Name = Name;\n this.type = 3264961684;\n }\n }\n IFC42.IfcColourSpecification = IfcColourSpecification;\n class IfcCompositeProfileDef extends IfcProfileDef {\n constructor(ProfileType, ProfileName, Profiles, Label) {\n super(ProfileType, ProfileName);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Profiles = Profiles;\n this.Label = Label;\n this.type = 1485152156;\n }\n }\n IFC42.IfcCompositeProfileDef = IfcCompositeProfileDef;\n class IfcConnectedFaceSet extends IfcTopologicalRepresentationItem {\n constructor(CfsFaces) {\n super();\n this.CfsFaces = CfsFaces;\n this.type = 370225590;\n }\n }\n IFC42.IfcConnectedFaceSet = IfcConnectedFaceSet;\n class IfcConnectionCurveGeometry extends IfcConnectionGeometry {\n constructor(CurveOnRelatingElement, CurveOnRelatedElement) {\n super();\n this.CurveOnRelatingElement = CurveOnRelatingElement;\n this.CurveOnRelatedElement = CurveOnRelatedElement;\n this.type = 1981873012;\n }\n }\n IFC42.IfcConnectionCurveGeometry = IfcConnectionCurveGeometry;\n class IfcConnectionPointEccentricity extends IfcConnectionPointGeometry {\n constructor(PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ) {\n super(PointOnRelatingElement, PointOnRelatedElement);\n this.PointOnRelatingElement = PointOnRelatingElement;\n this.PointOnRelatedElement = PointOnRelatedElement;\n this.EccentricityInX = EccentricityInX;\n this.EccentricityInY = EccentricityInY;\n this.EccentricityInZ = EccentricityInZ;\n this.type = 45288368;\n }\n }\n IFC42.IfcConnectionPointEccentricity = IfcConnectionPointEccentricity;\n class IfcContextDependentUnit extends IfcNamedUnit {\n constructor(Dimensions, UnitType, Name) {\n super(Dimensions, UnitType);\n this.Dimensions = Dimensions;\n this.UnitType = UnitType;\n this.Name = Name;\n this.type = 3050246964;\n }\n }\n IFC42.IfcContextDependentUnit = IfcContextDependentUnit;\n class IfcConversionBasedUnit extends IfcNamedUnit {\n constructor(Dimensions, UnitType, Name, ConversionFactor) {\n super(Dimensions, UnitType);\n this.Dimensions = Dimensions;\n this.UnitType = UnitType;\n this.Name = Name;\n this.ConversionFactor = ConversionFactor;\n this.type = 2889183280;\n }\n }\n IFC42.IfcConversionBasedUnit = IfcConversionBasedUnit;\n class IfcConversionBasedUnitWithOffset extends IfcConversionBasedUnit {\n constructor(Dimensions, UnitType, Name, ConversionFactor, ConversionOffset) {\n super(Dimensions, UnitType, Name, ConversionFactor);\n this.Dimensions = Dimensions;\n this.UnitType = UnitType;\n this.Name = Name;\n this.ConversionFactor = ConversionFactor;\n this.ConversionOffset = ConversionOffset;\n this.type = 2713554722;\n }\n }\n IFC42.IfcConversionBasedUnitWithOffset = IfcConversionBasedUnitWithOffset;\n class IfcCurrencyRelationship extends IfcResourceLevelRelationship {\n constructor(Name, Description, RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.RelatingMonetaryUnit = RelatingMonetaryUnit;\n this.RelatedMonetaryUnit = RelatedMonetaryUnit;\n this.ExchangeRate = ExchangeRate;\n this.RateDateTime = RateDateTime;\n this.RateSource = RateSource;\n this.type = 539742890;\n }\n }\n IFC42.IfcCurrencyRelationship = IfcCurrencyRelationship;\n class IfcCurveStyle extends IfcPresentationStyle {\n constructor(Name, CurveFont, CurveWidth, CurveColour, ModelOrDraughting) {\n super(Name);\n this.Name = Name;\n this.CurveFont = CurveFont;\n this.CurveWidth = CurveWidth;\n this.CurveColour = CurveColour;\n this.ModelOrDraughting = ModelOrDraughting;\n this.type = 3800577675;\n }\n }\n IFC42.IfcCurveStyle = IfcCurveStyle;\n class IfcCurveStyleFont extends IfcPresentationItem {\n constructor(Name, PatternList) {\n super();\n this.Name = Name;\n this.PatternList = PatternList;\n this.type = 1105321065;\n }\n }\n IFC42.IfcCurveStyleFont = IfcCurveStyleFont;\n class IfcCurveStyleFontAndScaling extends IfcPresentationItem {\n constructor(Name, CurveFont, CurveFontScaling) {\n super();\n this.Name = Name;\n this.CurveFont = CurveFont;\n this.CurveFontScaling = CurveFontScaling;\n this.type = 2367409068;\n }\n }\n IFC42.IfcCurveStyleFontAndScaling = IfcCurveStyleFontAndScaling;\n class IfcCurveStyleFontPattern extends IfcPresentationItem {\n constructor(VisibleSegmentLength, InvisibleSegmentLength) {\n super();\n this.VisibleSegmentLength = VisibleSegmentLength;\n this.InvisibleSegmentLength = InvisibleSegmentLength;\n this.type = 3510044353;\n }\n }\n IFC42.IfcCurveStyleFontPattern = IfcCurveStyleFontPattern;\n class IfcDerivedProfileDef extends IfcProfileDef {\n constructor(ProfileType, ProfileName, ParentProfile, Operator, Label) {\n super(ProfileType, ProfileName);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.ParentProfile = ParentProfile;\n this.Operator = Operator;\n this.Label = Label;\n this.type = 3632507154;\n }\n }\n IFC42.IfcDerivedProfileDef = IfcDerivedProfileDef;\n class IfcDocumentInformation extends IfcExternalInformation {\n constructor(Identification, Name, Description, Location, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status) {\n super();\n this.Identification = Identification;\n this.Name = Name;\n this.Description = Description;\n this.Location = Location;\n this.Purpose = Purpose;\n this.IntendedUse = IntendedUse;\n this.Scope = Scope;\n this.Revision = Revision;\n this.DocumentOwner = DocumentOwner;\n this.Editors = Editors;\n this.CreationTime = CreationTime;\n this.LastRevisionTime = LastRevisionTime;\n this.ElectronicFormat = ElectronicFormat;\n this.ValidFrom = ValidFrom;\n this.ValidUntil = ValidUntil;\n this.Confidentiality = Confidentiality;\n this.Status = Status;\n this.type = 1154170062;\n }\n }\n IFC42.IfcDocumentInformation = IfcDocumentInformation;\n class IfcDocumentInformationRelationship extends IfcResourceLevelRelationship {\n constructor(Name, Description, RelatingDocument, RelatedDocuments, RelationshipType) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.RelatingDocument = RelatingDocument;\n this.RelatedDocuments = RelatedDocuments;\n this.RelationshipType = RelationshipType;\n this.type = 770865208;\n }\n }\n IFC42.IfcDocumentInformationRelationship = IfcDocumentInformationRelationship;\n class IfcDocumentReference extends IfcExternalReference {\n constructor(Location, Identification, Name, Description, ReferencedDocument) {\n super(Location, Identification, Name);\n this.Location = Location;\n this.Identification = Identification;\n this.Name = Name;\n this.Description = Description;\n this.ReferencedDocument = ReferencedDocument;\n this.type = 3732053477;\n }\n }\n IFC42.IfcDocumentReference = IfcDocumentReference;\n class IfcEdge extends IfcTopologicalRepresentationItem {\n constructor(EdgeStart, EdgeEnd) {\n super();\n this.EdgeStart = EdgeStart;\n this.EdgeEnd = EdgeEnd;\n this.type = 3900360178;\n }\n }\n IFC42.IfcEdge = IfcEdge;\n class IfcEdgeCurve extends IfcEdge {\n constructor(EdgeStart, EdgeEnd, EdgeGeometry, SameSense) {\n super(EdgeStart, EdgeEnd);\n this.EdgeStart = EdgeStart;\n this.EdgeEnd = EdgeEnd;\n this.EdgeGeometry = EdgeGeometry;\n this.SameSense = SameSense;\n this.type = 476780140;\n }\n }\n IFC42.IfcEdgeCurve = IfcEdgeCurve;\n class IfcEventTime extends IfcSchedulingTime {\n constructor(Name, DataOrigin, UserDefinedDataOrigin, ActualDate, EarlyDate, LateDate, ScheduleDate) {\n super(Name, DataOrigin, UserDefinedDataOrigin);\n this.Name = Name;\n this.DataOrigin = DataOrigin;\n this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n this.ActualDate = ActualDate;\n this.EarlyDate = EarlyDate;\n this.LateDate = LateDate;\n this.ScheduleDate = ScheduleDate;\n this.type = 211053100;\n }\n }\n IFC42.IfcEventTime = IfcEventTime;\n class IfcExtendedProperties extends IfcPropertyAbstraction {\n constructor(Name, Description, Properties2) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.Properties = Properties2;\n this.type = 297599258;\n }\n }\n IFC42.IfcExtendedProperties = IfcExtendedProperties;\n class IfcExternalReferenceRelationship extends IfcResourceLevelRelationship {\n constructor(Name, Description, RelatingReference, RelatedResourceObjects) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.RelatingReference = RelatingReference;\n this.RelatedResourceObjects = RelatedResourceObjects;\n this.type = 1437805879;\n }\n }\n IFC42.IfcExternalReferenceRelationship = IfcExternalReferenceRelationship;\n class IfcFace extends IfcTopologicalRepresentationItem {\n constructor(Bounds) {\n super();\n this.Bounds = Bounds;\n this.type = 2556980723;\n }\n }\n IFC42.IfcFace = IfcFace;\n class IfcFaceBound extends IfcTopologicalRepresentationItem {\n constructor(Bound, Orientation) {\n super();\n this.Bound = Bound;\n this.Orientation = Orientation;\n this.type = 1809719519;\n }\n }\n IFC42.IfcFaceBound = IfcFaceBound;\n class IfcFaceOuterBound extends IfcFaceBound {\n constructor(Bound, Orientation) {\n super(Bound, Orientation);\n this.Bound = Bound;\n this.Orientation = Orientation;\n this.type = 803316827;\n }\n }\n IFC42.IfcFaceOuterBound = IfcFaceOuterBound;\n class IfcFaceSurface extends IfcFace {\n constructor(Bounds, FaceSurface, SameSense) {\n super(Bounds);\n this.Bounds = Bounds;\n this.FaceSurface = FaceSurface;\n this.SameSense = SameSense;\n this.type = 3008276851;\n }\n }\n IFC42.IfcFaceSurface = IfcFaceSurface;\n class IfcFailureConnectionCondition extends IfcStructuralConnectionCondition {\n constructor(Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ) {\n super(Name);\n this.Name = Name;\n this.TensionFailureX = TensionFailureX;\n this.TensionFailureY = TensionFailureY;\n this.TensionFailureZ = TensionFailureZ;\n this.CompressionFailureX = CompressionFailureX;\n this.CompressionFailureY = CompressionFailureY;\n this.CompressionFailureZ = CompressionFailureZ;\n this.type = 4219587988;\n }\n }\n IFC42.IfcFailureConnectionCondition = IfcFailureConnectionCondition;\n class IfcFillAreaStyle extends IfcPresentationStyle {\n constructor(Name, FillStyles, ModelorDraughting) {\n super(Name);\n this.Name = Name;\n this.FillStyles = FillStyles;\n this.ModelorDraughting = ModelorDraughting;\n this.type = 738692330;\n }\n }\n IFC42.IfcFillAreaStyle = IfcFillAreaStyle;\n class IfcGeometricRepresentationContext extends IfcRepresentationContext {\n constructor(ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth) {\n super(ContextIdentifier, ContextType);\n this.ContextIdentifier = ContextIdentifier;\n this.ContextType = ContextType;\n this.CoordinateSpaceDimension = CoordinateSpaceDimension;\n this.Precision = Precision;\n this.WorldCoordinateSystem = WorldCoordinateSystem;\n this.TrueNorth = TrueNorth;\n this.type = 3448662350;\n }\n }\n IFC42.IfcGeometricRepresentationContext = IfcGeometricRepresentationContext;\n class IfcGeometricRepresentationItem extends IfcRepresentationItem {\n constructor() {\n super();\n this.type = 2453401579;\n }\n }\n IFC42.IfcGeometricRepresentationItem = IfcGeometricRepresentationItem;\n class IfcGeometricRepresentationSubContext extends IfcGeometricRepresentationContext {\n constructor(ContextIdentifier, ContextType, ParentContext, TargetScale, TargetView, UserDefinedTargetView) {\n super(ContextIdentifier, ContextType, new IfcDimensionCount(0), null, new Handle(0), null);\n this.ContextIdentifier = ContextIdentifier;\n this.ContextType = ContextType;\n this.ParentContext = ParentContext;\n this.TargetScale = TargetScale;\n this.TargetView = TargetView;\n this.UserDefinedTargetView = UserDefinedTargetView;\n this.type = 4142052618;\n }\n }\n IFC42.IfcGeometricRepresentationSubContext = IfcGeometricRepresentationSubContext;\n class IfcGeometricSet extends IfcGeometricRepresentationItem {\n constructor(Elements) {\n super();\n this.Elements = Elements;\n this.type = 3590301190;\n }\n }\n IFC42.IfcGeometricSet = IfcGeometricSet;\n class IfcGridPlacement extends IfcObjectPlacement {\n constructor(PlacementLocation, PlacementRefDirection) {\n super();\n this.PlacementLocation = PlacementLocation;\n this.PlacementRefDirection = PlacementRefDirection;\n this.type = 178086475;\n }\n }\n IFC42.IfcGridPlacement = IfcGridPlacement;\n class IfcHalfSpaceSolid extends IfcGeometricRepresentationItem {\n constructor(BaseSurface, AgreementFlag) {\n super();\n this.BaseSurface = BaseSurface;\n this.AgreementFlag = AgreementFlag;\n this.type = 812098782;\n }\n }\n IFC42.IfcHalfSpaceSolid = IfcHalfSpaceSolid;\n class IfcImageTexture extends IfcSurfaceTexture {\n constructor(RepeatS, RepeatT, Mode, TextureTransform, Parameter, URLReference) {\n super(RepeatS, RepeatT, Mode, TextureTransform, Parameter);\n this.RepeatS = RepeatS;\n this.RepeatT = RepeatT;\n this.Mode = Mode;\n this.TextureTransform = TextureTransform;\n this.Parameter = Parameter;\n this.URLReference = URLReference;\n this.type = 3905492369;\n }\n }\n IFC42.IfcImageTexture = IfcImageTexture;\n class IfcIndexedColourMap extends IfcPresentationItem {\n constructor(MappedTo, Opacity, Colours, ColourIndex) {\n super();\n this.MappedTo = MappedTo;\n this.Opacity = Opacity;\n this.Colours = Colours;\n this.ColourIndex = ColourIndex;\n this.type = 3570813810;\n }\n }\n IFC42.IfcIndexedColourMap = IfcIndexedColourMap;\n class IfcIndexedTextureMap extends IfcTextureCoordinate {\n constructor(Maps, MappedTo, TexCoords) {\n super(Maps);\n this.Maps = Maps;\n this.MappedTo = MappedTo;\n this.TexCoords = TexCoords;\n this.type = 1437953363;\n }\n }\n IFC42.IfcIndexedTextureMap = IfcIndexedTextureMap;\n class IfcIndexedTriangleTextureMap extends IfcIndexedTextureMap {\n constructor(Maps, MappedTo, TexCoords, TexCoordIndex) {\n super(Maps, MappedTo, TexCoords);\n this.Maps = Maps;\n this.MappedTo = MappedTo;\n this.TexCoords = TexCoords;\n this.TexCoordIndex = TexCoordIndex;\n this.type = 2133299955;\n }\n }\n IFC42.IfcIndexedTriangleTextureMap = IfcIndexedTriangleTextureMap;\n class IfcIrregularTimeSeries extends IfcTimeSeries {\n constructor(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values) {\n super(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit);\n this.Name = Name;\n this.Description = Description;\n this.StartTime = StartTime;\n this.EndTime = EndTime;\n this.TimeSeriesDataType = TimeSeriesDataType;\n this.DataOrigin = DataOrigin;\n this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n this.Unit = Unit;\n this.Values = Values;\n this.type = 3741457305;\n }\n }\n IFC42.IfcIrregularTimeSeries = IfcIrregularTimeSeries;\n class IfcLagTime extends IfcSchedulingTime {\n constructor(Name, DataOrigin, UserDefinedDataOrigin, LagValue, DurationType) {\n super(Name, DataOrigin, UserDefinedDataOrigin);\n this.Name = Name;\n this.DataOrigin = DataOrigin;\n this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n this.LagValue = LagValue;\n this.DurationType = DurationType;\n this.type = 1585845231;\n }\n }\n IFC42.IfcLagTime = IfcLagTime;\n class IfcLightSource extends IfcGeometricRepresentationItem {\n constructor(Name, LightColour, AmbientIntensity, Intensity) {\n super();\n this.Name = Name;\n this.LightColour = LightColour;\n this.AmbientIntensity = AmbientIntensity;\n this.Intensity = Intensity;\n this.type = 1402838566;\n }\n }\n IFC42.IfcLightSource = IfcLightSource;\n class IfcLightSourceAmbient extends IfcLightSource {\n constructor(Name, LightColour, AmbientIntensity, Intensity) {\n super(Name, LightColour, AmbientIntensity, Intensity);\n this.Name = Name;\n this.LightColour = LightColour;\n this.AmbientIntensity = AmbientIntensity;\n this.Intensity = Intensity;\n this.type = 125510826;\n }\n }\n IFC42.IfcLightSourceAmbient = IfcLightSourceAmbient;\n class IfcLightSourceDirectional extends IfcLightSource {\n constructor(Name, LightColour, AmbientIntensity, Intensity, Orientation) {\n super(Name, LightColour, AmbientIntensity, Intensity);\n this.Name = Name;\n this.LightColour = LightColour;\n this.AmbientIntensity = AmbientIntensity;\n this.Intensity = Intensity;\n this.Orientation = Orientation;\n this.type = 2604431987;\n }\n }\n IFC42.IfcLightSourceDirectional = IfcLightSourceDirectional;\n class IfcLightSourceGoniometric extends IfcLightSource {\n constructor(Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource) {\n super(Name, LightColour, AmbientIntensity, Intensity);\n this.Name = Name;\n this.LightColour = LightColour;\n this.AmbientIntensity = AmbientIntensity;\n this.Intensity = Intensity;\n this.Position = Position;\n this.ColourAppearance = ColourAppearance;\n this.ColourTemperature = ColourTemperature;\n this.LuminousFlux = LuminousFlux;\n this.LightEmissionSource = LightEmissionSource;\n this.LightDistributionDataSource = LightDistributionDataSource;\n this.type = 4266656042;\n }\n }\n IFC42.IfcLightSourceGoniometric = IfcLightSourceGoniometric;\n class IfcLightSourcePositional extends IfcLightSource {\n constructor(Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation) {\n super(Name, LightColour, AmbientIntensity, Intensity);\n this.Name = Name;\n this.LightColour = LightColour;\n this.AmbientIntensity = AmbientIntensity;\n this.Intensity = Intensity;\n this.Position = Position;\n this.Radius = Radius;\n this.ConstantAttenuation = ConstantAttenuation;\n this.DistanceAttenuation = DistanceAttenuation;\n this.QuadricAttenuation = QuadricAttenuation;\n this.type = 1520743889;\n }\n }\n IFC42.IfcLightSourcePositional = IfcLightSourcePositional;\n class IfcLightSourceSpot extends IfcLightSourcePositional {\n constructor(Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle) {\n super(Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation);\n this.Name = Name;\n this.LightColour = LightColour;\n this.AmbientIntensity = AmbientIntensity;\n this.Intensity = Intensity;\n this.Position = Position;\n this.Radius = Radius;\n this.ConstantAttenuation = ConstantAttenuation;\n this.DistanceAttenuation = DistanceAttenuation;\n this.QuadricAttenuation = QuadricAttenuation;\n this.Orientation = Orientation;\n this.ConcentrationExponent = ConcentrationExponent;\n this.SpreadAngle = SpreadAngle;\n this.BeamWidthAngle = BeamWidthAngle;\n this.type = 3422422726;\n }\n }\n IFC42.IfcLightSourceSpot = IfcLightSourceSpot;\n class IfcLocalPlacement extends IfcObjectPlacement {\n constructor(PlacementRelTo, RelativePlacement) {\n super();\n this.PlacementRelTo = PlacementRelTo;\n this.RelativePlacement = RelativePlacement;\n this.type = 2624227202;\n }\n }\n IFC42.IfcLocalPlacement = IfcLocalPlacement;\n class IfcLoop extends IfcTopologicalRepresentationItem {\n constructor() {\n super();\n this.type = 1008929658;\n }\n }\n IFC42.IfcLoop = IfcLoop;\n class IfcMappedItem extends IfcRepresentationItem {\n constructor(MappingSource, MappingTarget) {\n super();\n this.MappingSource = MappingSource;\n this.MappingTarget = MappingTarget;\n this.type = 2347385850;\n }\n }\n IFC42.IfcMappedItem = IfcMappedItem;\n class IfcMaterial extends IfcMaterialDefinition {\n constructor(Name, Description, Category) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.Category = Category;\n this.type = 1838606355;\n }\n }\n IFC42.IfcMaterial = IfcMaterial;\n class IfcMaterialConstituent extends IfcMaterialDefinition {\n constructor(Name, Description, Material, Fraction, Category) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.Material = Material;\n this.Fraction = Fraction;\n this.Category = Category;\n this.type = 3708119e3;\n }\n }\n IFC42.IfcMaterialConstituent = IfcMaterialConstituent;\n class IfcMaterialConstituentSet extends IfcMaterialDefinition {\n constructor(Name, Description, MaterialConstituents) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.MaterialConstituents = MaterialConstituents;\n this.type = 2852063980;\n }\n }\n IFC42.IfcMaterialConstituentSet = IfcMaterialConstituentSet;\n class IfcMaterialDefinitionRepresentation extends IfcProductRepresentation {\n constructor(Name, Description, Representations, RepresentedMaterial) {\n super(Name, Description, Representations);\n this.Name = Name;\n this.Description = Description;\n this.Representations = Representations;\n this.RepresentedMaterial = RepresentedMaterial;\n this.type = 2022407955;\n }\n }\n IFC42.IfcMaterialDefinitionRepresentation = IfcMaterialDefinitionRepresentation;\n class IfcMaterialLayerSetUsage extends IfcMaterialUsageDefinition {\n constructor(ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine, ReferenceExtent) {\n super();\n this.ForLayerSet = ForLayerSet;\n this.LayerSetDirection = LayerSetDirection;\n this.DirectionSense = DirectionSense;\n this.OffsetFromReferenceLine = OffsetFromReferenceLine;\n this.ReferenceExtent = ReferenceExtent;\n this.type = 1303795690;\n }\n }\n IFC42.IfcMaterialLayerSetUsage = IfcMaterialLayerSetUsage;\n class IfcMaterialProfileSetUsage extends IfcMaterialUsageDefinition {\n constructor(ForProfileSet, CardinalPoint, ReferenceExtent) {\n super();\n this.ForProfileSet = ForProfileSet;\n this.CardinalPoint = CardinalPoint;\n this.ReferenceExtent = ReferenceExtent;\n this.type = 3079605661;\n }\n }\n IFC42.IfcMaterialProfileSetUsage = IfcMaterialProfileSetUsage;\n class IfcMaterialProfileSetUsageTapering extends IfcMaterialProfileSetUsage {\n constructor(ForProfileSet, CardinalPoint, ReferenceExtent, ForProfileEndSet, CardinalEndPoint) {\n super(ForProfileSet, CardinalPoint, ReferenceExtent);\n this.ForProfileSet = ForProfileSet;\n this.CardinalPoint = CardinalPoint;\n this.ReferenceExtent = ReferenceExtent;\n this.ForProfileEndSet = ForProfileEndSet;\n this.CardinalEndPoint = CardinalEndPoint;\n this.type = 3404854881;\n }\n }\n IFC42.IfcMaterialProfileSetUsageTapering = IfcMaterialProfileSetUsageTapering;\n class IfcMaterialProperties extends IfcExtendedProperties {\n constructor(Name, Description, Properties2, Material) {\n super(Name, Description, Properties2);\n this.Name = Name;\n this.Description = Description;\n this.Properties = Properties2;\n this.Material = Material;\n this.type = 3265635763;\n }\n }\n IFC42.IfcMaterialProperties = IfcMaterialProperties;\n class IfcMaterialRelationship extends IfcResourceLevelRelationship {\n constructor(Name, Description, RelatingMaterial, RelatedMaterials, Expression) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.RelatingMaterial = RelatingMaterial;\n this.RelatedMaterials = RelatedMaterials;\n this.Expression = Expression;\n this.type = 853536259;\n }\n }\n IFC42.IfcMaterialRelationship = IfcMaterialRelationship;\n class IfcMirroredProfileDef extends IfcDerivedProfileDef {\n constructor(ProfileType, ProfileName, ParentProfile, Label) {\n super(ProfileType, ProfileName, ParentProfile, new Handle(0), Label);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.ParentProfile = ParentProfile;\n this.Label = Label;\n this.type = 2998442950;\n }\n }\n IFC42.IfcMirroredProfileDef = IfcMirroredProfileDef;\n class IfcObjectDefinition extends IfcRoot {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 219451334;\n }\n }\n IFC42.IfcObjectDefinition = IfcObjectDefinition;\n class IfcOpenShell extends IfcConnectedFaceSet {\n constructor(CfsFaces) {\n super(CfsFaces);\n this.CfsFaces = CfsFaces;\n this.type = 2665983363;\n }\n }\n IFC42.IfcOpenShell = IfcOpenShell;\n class IfcOrganizationRelationship extends IfcResourceLevelRelationship {\n constructor(Name, Description, RelatingOrganization, RelatedOrganizations) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.RelatingOrganization = RelatingOrganization;\n this.RelatedOrganizations = RelatedOrganizations;\n this.type = 1411181986;\n }\n }\n IFC42.IfcOrganizationRelationship = IfcOrganizationRelationship;\n class IfcOrientedEdge extends IfcEdge {\n constructor(EdgeElement, Orientation) {\n super(new Handle(0), new Handle(0));\n this.EdgeElement = EdgeElement;\n this.Orientation = Orientation;\n this.type = 1029017970;\n }\n }\n IFC42.IfcOrientedEdge = IfcOrientedEdge;\n class IfcParameterizedProfileDef extends IfcProfileDef {\n constructor(ProfileType, ProfileName, Position) {\n super(ProfileType, ProfileName);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.type = 2529465313;\n }\n }\n IFC42.IfcParameterizedProfileDef = IfcParameterizedProfileDef;\n class IfcPath extends IfcTopologicalRepresentationItem {\n constructor(EdgeList) {\n super();\n this.EdgeList = EdgeList;\n this.type = 2519244187;\n }\n }\n IFC42.IfcPath = IfcPath;\n class IfcPhysicalComplexQuantity extends IfcPhysicalQuantity {\n constructor(Name, Description, HasQuantities, Discrimination, Quality, Usage) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.HasQuantities = HasQuantities;\n this.Discrimination = Discrimination;\n this.Quality = Quality;\n this.Usage = Usage;\n this.type = 3021840470;\n }\n }\n IFC42.IfcPhysicalComplexQuantity = IfcPhysicalComplexQuantity;\n class IfcPixelTexture extends IfcSurfaceTexture {\n constructor(RepeatS, RepeatT, Mode, TextureTransform, Parameter, Width, Height, ColourComponents, Pixel) {\n super(RepeatS, RepeatT, Mode, TextureTransform, Parameter);\n this.RepeatS = RepeatS;\n this.RepeatT = RepeatT;\n this.Mode = Mode;\n this.TextureTransform = TextureTransform;\n this.Parameter = Parameter;\n this.Width = Width;\n this.Height = Height;\n this.ColourComponents = ColourComponents;\n this.Pixel = Pixel;\n this.type = 597895409;\n }\n }\n IFC42.IfcPixelTexture = IfcPixelTexture;\n class IfcPlacement extends IfcGeometricRepresentationItem {\n constructor(Location) {\n super();\n this.Location = Location;\n this.type = 2004835150;\n }\n }\n IFC42.IfcPlacement = IfcPlacement;\n class IfcPlanarExtent extends IfcGeometricRepresentationItem {\n constructor(SizeInX, SizeInY) {\n super();\n this.SizeInX = SizeInX;\n this.SizeInY = SizeInY;\n this.type = 1663979128;\n }\n }\n IFC42.IfcPlanarExtent = IfcPlanarExtent;\n class IfcPoint extends IfcGeometricRepresentationItem {\n constructor() {\n super();\n this.type = 2067069095;\n }\n }\n IFC42.IfcPoint = IfcPoint;\n class IfcPointOnCurve extends IfcPoint {\n constructor(BasisCurve, PointParameter) {\n super();\n this.BasisCurve = BasisCurve;\n this.PointParameter = PointParameter;\n this.type = 4022376103;\n }\n }\n IFC42.IfcPointOnCurve = IfcPointOnCurve;\n class IfcPointOnSurface extends IfcPoint {\n constructor(BasisSurface, PointParameterU, PointParameterV) {\n super();\n this.BasisSurface = BasisSurface;\n this.PointParameterU = PointParameterU;\n this.PointParameterV = PointParameterV;\n this.type = 1423911732;\n }\n }\n IFC42.IfcPointOnSurface = IfcPointOnSurface;\n class IfcPolyLoop extends IfcLoop {\n constructor(Polygon) {\n super();\n this.Polygon = Polygon;\n this.type = 2924175390;\n }\n }\n IFC42.IfcPolyLoop = IfcPolyLoop;\n class IfcPolygonalBoundedHalfSpace extends IfcHalfSpaceSolid {\n constructor(BaseSurface, AgreementFlag, Position, PolygonalBoundary) {\n super(BaseSurface, AgreementFlag);\n this.BaseSurface = BaseSurface;\n this.AgreementFlag = AgreementFlag;\n this.Position = Position;\n this.PolygonalBoundary = PolygonalBoundary;\n this.type = 2775532180;\n }\n }\n IFC42.IfcPolygonalBoundedHalfSpace = IfcPolygonalBoundedHalfSpace;\n class IfcPreDefinedItem extends IfcPresentationItem {\n constructor(Name) {\n super();\n this.Name = Name;\n this.type = 3727388367;\n }\n }\n IFC42.IfcPreDefinedItem = IfcPreDefinedItem;\n class IfcPreDefinedProperties extends IfcPropertyAbstraction {\n constructor() {\n super();\n this.type = 3778827333;\n }\n }\n IFC42.IfcPreDefinedProperties = IfcPreDefinedProperties;\n class IfcPreDefinedTextFont extends IfcPreDefinedItem {\n constructor(Name) {\n super(Name);\n this.Name = Name;\n this.type = 1775413392;\n }\n }\n IFC42.IfcPreDefinedTextFont = IfcPreDefinedTextFont;\n class IfcProductDefinitionShape extends IfcProductRepresentation {\n constructor(Name, Description, Representations) {\n super(Name, Description, Representations);\n this.Name = Name;\n this.Description = Description;\n this.Representations = Representations;\n this.type = 673634403;\n }\n }\n IFC42.IfcProductDefinitionShape = IfcProductDefinitionShape;\n class IfcProfileProperties extends IfcExtendedProperties {\n constructor(Name, Description, Properties2, ProfileDefinition) {\n super(Name, Description, Properties2);\n this.Name = Name;\n this.Description = Description;\n this.Properties = Properties2;\n this.ProfileDefinition = ProfileDefinition;\n this.type = 2802850158;\n }\n }\n IFC42.IfcProfileProperties = IfcProfileProperties;\n class IfcProperty extends IfcPropertyAbstraction {\n constructor(Name, Description) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.type = 2598011224;\n }\n }\n IFC42.IfcProperty = IfcProperty;\n class IfcPropertyDefinition extends IfcRoot {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 1680319473;\n }\n }\n IFC42.IfcPropertyDefinition = IfcPropertyDefinition;\n class IfcPropertyDependencyRelationship extends IfcResourceLevelRelationship {\n constructor(Name, Description, DependingProperty, DependantProperty, Expression) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.DependingProperty = DependingProperty;\n this.DependantProperty = DependantProperty;\n this.Expression = Expression;\n this.type = 148025276;\n }\n }\n IFC42.IfcPropertyDependencyRelationship = IfcPropertyDependencyRelationship;\n class IfcPropertySetDefinition extends IfcPropertyDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 3357820518;\n }\n }\n IFC42.IfcPropertySetDefinition = IfcPropertySetDefinition;\n class IfcPropertyTemplateDefinition extends IfcPropertyDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 1482703590;\n }\n }\n IFC42.IfcPropertyTemplateDefinition = IfcPropertyTemplateDefinition;\n class IfcQuantitySet extends IfcPropertySetDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 2090586900;\n }\n }\n IFC42.IfcQuantitySet = IfcQuantitySet;\n class IfcRectangleProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, XDim, YDim) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.XDim = XDim;\n this.YDim = YDim;\n this.type = 3615266464;\n }\n }\n IFC42.IfcRectangleProfileDef = IfcRectangleProfileDef;\n class IfcRegularTimeSeries extends IfcTimeSeries {\n constructor(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values) {\n super(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit);\n this.Name = Name;\n this.Description = Description;\n this.StartTime = StartTime;\n this.EndTime = EndTime;\n this.TimeSeriesDataType = TimeSeriesDataType;\n this.DataOrigin = DataOrigin;\n this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n this.Unit = Unit;\n this.TimeStep = TimeStep;\n this.Values = Values;\n this.type = 3413951693;\n }\n }\n IFC42.IfcRegularTimeSeries = IfcRegularTimeSeries;\n class IfcReinforcementBarProperties extends IfcPreDefinedProperties {\n constructor(TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount) {\n super();\n this.TotalCrossSectionArea = TotalCrossSectionArea;\n this.SteelGrade = SteelGrade;\n this.BarSurface = BarSurface;\n this.EffectiveDepth = EffectiveDepth;\n this.NominalBarDiameter = NominalBarDiameter;\n this.BarCount = BarCount;\n this.type = 1580146022;\n }\n }\n IFC42.IfcReinforcementBarProperties = IfcReinforcementBarProperties;\n class IfcRelationship extends IfcRoot {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 478536968;\n }\n }\n IFC42.IfcRelationship = IfcRelationship;\n class IfcResourceApprovalRelationship extends IfcResourceLevelRelationship {\n constructor(Name, Description, RelatedResourceObjects, RelatingApproval) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.RelatedResourceObjects = RelatedResourceObjects;\n this.RelatingApproval = RelatingApproval;\n this.type = 2943643501;\n }\n }\n IFC42.IfcResourceApprovalRelationship = IfcResourceApprovalRelationship;\n class IfcResourceConstraintRelationship extends IfcResourceLevelRelationship {\n constructor(Name, Description, RelatingConstraint, RelatedResourceObjects) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.RelatingConstraint = RelatingConstraint;\n this.RelatedResourceObjects = RelatedResourceObjects;\n this.type = 1608871552;\n }\n }\n IFC42.IfcResourceConstraintRelationship = IfcResourceConstraintRelationship;\n class IfcResourceTime extends IfcSchedulingTime {\n constructor(Name, DataOrigin, UserDefinedDataOrigin, ScheduleWork, ScheduleUsage, ScheduleStart, ScheduleFinish, ScheduleContour, LevelingDelay, IsOverAllocated, StatusTime, ActualWork, ActualUsage, ActualStart, ActualFinish, RemainingWork, RemainingUsage, Completion) {\n super(Name, DataOrigin, UserDefinedDataOrigin);\n this.Name = Name;\n this.DataOrigin = DataOrigin;\n this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n this.ScheduleWork = ScheduleWork;\n this.ScheduleUsage = ScheduleUsage;\n this.ScheduleStart = ScheduleStart;\n this.ScheduleFinish = ScheduleFinish;\n this.ScheduleContour = ScheduleContour;\n this.LevelingDelay = LevelingDelay;\n this.IsOverAllocated = IsOverAllocated;\n this.StatusTime = StatusTime;\n this.ActualWork = ActualWork;\n this.ActualUsage = ActualUsage;\n this.ActualStart = ActualStart;\n this.ActualFinish = ActualFinish;\n this.RemainingWork = RemainingWork;\n this.RemainingUsage = RemainingUsage;\n this.Completion = Completion;\n this.type = 1042787934;\n }\n }\n IFC42.IfcResourceTime = IfcResourceTime;\n class IfcRoundedRectangleProfileDef extends IfcRectangleProfileDef {\n constructor(ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius) {\n super(ProfileType, ProfileName, Position, XDim, YDim);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.XDim = XDim;\n this.YDim = YDim;\n this.RoundingRadius = RoundingRadius;\n this.type = 2778083089;\n }\n }\n IFC42.IfcRoundedRectangleProfileDef = IfcRoundedRectangleProfileDef;\n class IfcSectionProperties extends IfcPreDefinedProperties {\n constructor(SectionType, StartProfile, EndProfile) {\n super();\n this.SectionType = SectionType;\n this.StartProfile = StartProfile;\n this.EndProfile = EndProfile;\n this.type = 2042790032;\n }\n }\n IFC42.IfcSectionProperties = IfcSectionProperties;\n class IfcSectionReinforcementProperties extends IfcPreDefinedProperties {\n constructor(LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions) {\n super();\n this.LongitudinalStartPosition = LongitudinalStartPosition;\n this.LongitudinalEndPosition = LongitudinalEndPosition;\n this.TransversePosition = TransversePosition;\n this.ReinforcementRole = ReinforcementRole;\n this.SectionDefinition = SectionDefinition;\n this.CrossSectionReinforcementDefinitions = CrossSectionReinforcementDefinitions;\n this.type = 4165799628;\n }\n }\n IFC42.IfcSectionReinforcementProperties = IfcSectionReinforcementProperties;\n class IfcSectionedSpine extends IfcGeometricRepresentationItem {\n constructor(SpineCurve, CrossSections, CrossSectionPositions) {\n super();\n this.SpineCurve = SpineCurve;\n this.CrossSections = CrossSections;\n this.CrossSectionPositions = CrossSectionPositions;\n this.type = 1509187699;\n }\n }\n IFC42.IfcSectionedSpine = IfcSectionedSpine;\n class IfcShellBasedSurfaceModel extends IfcGeometricRepresentationItem {\n constructor(SbsmBoundary) {\n super();\n this.SbsmBoundary = SbsmBoundary;\n this.type = 4124623270;\n }\n }\n IFC42.IfcShellBasedSurfaceModel = IfcShellBasedSurfaceModel;\n class IfcSimpleProperty extends IfcProperty {\n constructor(Name, Description) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.type = 3692461612;\n }\n }\n IFC42.IfcSimpleProperty = IfcSimpleProperty;\n class IfcSlippageConnectionCondition extends IfcStructuralConnectionCondition {\n constructor(Name, SlippageX, SlippageY, SlippageZ) {\n super(Name);\n this.Name = Name;\n this.SlippageX = SlippageX;\n this.SlippageY = SlippageY;\n this.SlippageZ = SlippageZ;\n this.type = 2609359061;\n }\n }\n IFC42.IfcSlippageConnectionCondition = IfcSlippageConnectionCondition;\n class IfcSolidModel extends IfcGeometricRepresentationItem {\n constructor() {\n super();\n this.type = 723233188;\n }\n }\n IFC42.IfcSolidModel = IfcSolidModel;\n class IfcStructuralLoadLinearForce extends IfcStructuralLoadStatic {\n constructor(Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ) {\n super(Name);\n this.Name = Name;\n this.LinearForceX = LinearForceX;\n this.LinearForceY = LinearForceY;\n this.LinearForceZ = LinearForceZ;\n this.LinearMomentX = LinearMomentX;\n this.LinearMomentY = LinearMomentY;\n this.LinearMomentZ = LinearMomentZ;\n this.type = 1595516126;\n }\n }\n IFC42.IfcStructuralLoadLinearForce = IfcStructuralLoadLinearForce;\n class IfcStructuralLoadPlanarForce extends IfcStructuralLoadStatic {\n constructor(Name, PlanarForceX, PlanarForceY, PlanarForceZ) {\n super(Name);\n this.Name = Name;\n this.PlanarForceX = PlanarForceX;\n this.PlanarForceY = PlanarForceY;\n this.PlanarForceZ = PlanarForceZ;\n this.type = 2668620305;\n }\n }\n IFC42.IfcStructuralLoadPlanarForce = IfcStructuralLoadPlanarForce;\n class IfcStructuralLoadSingleDisplacement extends IfcStructuralLoadStatic {\n constructor(Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ) {\n super(Name);\n this.Name = Name;\n this.DisplacementX = DisplacementX;\n this.DisplacementY = DisplacementY;\n this.DisplacementZ = DisplacementZ;\n this.RotationalDisplacementRX = RotationalDisplacementRX;\n this.RotationalDisplacementRY = RotationalDisplacementRY;\n this.RotationalDisplacementRZ = RotationalDisplacementRZ;\n this.type = 2473145415;\n }\n }\n IFC42.IfcStructuralLoadSingleDisplacement = IfcStructuralLoadSingleDisplacement;\n class IfcStructuralLoadSingleDisplacementDistortion extends IfcStructuralLoadSingleDisplacement {\n constructor(Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion) {\n super(Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ);\n this.Name = Name;\n this.DisplacementX = DisplacementX;\n this.DisplacementY = DisplacementY;\n this.DisplacementZ = DisplacementZ;\n this.RotationalDisplacementRX = RotationalDisplacementRX;\n this.RotationalDisplacementRY = RotationalDisplacementRY;\n this.RotationalDisplacementRZ = RotationalDisplacementRZ;\n this.Distortion = Distortion;\n this.type = 1973038258;\n }\n }\n IFC42.IfcStructuralLoadSingleDisplacementDistortion = IfcStructuralLoadSingleDisplacementDistortion;\n class IfcStructuralLoadSingleForce extends IfcStructuralLoadStatic {\n constructor(Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ) {\n super(Name);\n this.Name = Name;\n this.ForceX = ForceX;\n this.ForceY = ForceY;\n this.ForceZ = ForceZ;\n this.MomentX = MomentX;\n this.MomentY = MomentY;\n this.MomentZ = MomentZ;\n this.type = 1597423693;\n }\n }\n IFC42.IfcStructuralLoadSingleForce = IfcStructuralLoadSingleForce;\n class IfcStructuralLoadSingleForceWarping extends IfcStructuralLoadSingleForce {\n constructor(Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment) {\n super(Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ);\n this.Name = Name;\n this.ForceX = ForceX;\n this.ForceY = ForceY;\n this.ForceZ = ForceZ;\n this.MomentX = MomentX;\n this.MomentY = MomentY;\n this.MomentZ = MomentZ;\n this.WarpingMoment = WarpingMoment;\n this.type = 1190533807;\n }\n }\n IFC42.IfcStructuralLoadSingleForceWarping = IfcStructuralLoadSingleForceWarping;\n class IfcSubedge extends IfcEdge {\n constructor(EdgeStart, EdgeEnd, ParentEdge) {\n super(EdgeStart, EdgeEnd);\n this.EdgeStart = EdgeStart;\n this.EdgeEnd = EdgeEnd;\n this.ParentEdge = ParentEdge;\n this.type = 2233826070;\n }\n }\n IFC42.IfcSubedge = IfcSubedge;\n class IfcSurface extends IfcGeometricRepresentationItem {\n constructor() {\n super();\n this.type = 2513912981;\n }\n }\n IFC42.IfcSurface = IfcSurface;\n class IfcSurfaceStyleRendering extends IfcSurfaceStyleShading {\n constructor(SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod) {\n super(SurfaceColour, Transparency);\n this.SurfaceColour = SurfaceColour;\n this.Transparency = Transparency;\n this.DiffuseColour = DiffuseColour;\n this.TransmissionColour = TransmissionColour;\n this.DiffuseTransmissionColour = DiffuseTransmissionColour;\n this.ReflectionColour = ReflectionColour;\n this.SpecularColour = SpecularColour;\n this.SpecularHighlight = SpecularHighlight;\n this.ReflectanceMethod = ReflectanceMethod;\n this.type = 1878645084;\n }\n }\n IFC42.IfcSurfaceStyleRendering = IfcSurfaceStyleRendering;\n class IfcSweptAreaSolid extends IfcSolidModel {\n constructor(SweptArea, Position) {\n super();\n this.SweptArea = SweptArea;\n this.Position = Position;\n this.type = 2247615214;\n }\n }\n IFC42.IfcSweptAreaSolid = IfcSweptAreaSolid;\n class IfcSweptDiskSolid extends IfcSolidModel {\n constructor(Directrix, Radius, InnerRadius, StartParam, EndParam) {\n super();\n this.Directrix = Directrix;\n this.Radius = Radius;\n this.InnerRadius = InnerRadius;\n this.StartParam = StartParam;\n this.EndParam = EndParam;\n this.type = 1260650574;\n }\n }\n IFC42.IfcSweptDiskSolid = IfcSweptDiskSolid;\n class IfcSweptDiskSolidPolygonal extends IfcSweptDiskSolid {\n constructor(Directrix, Radius, InnerRadius, StartParam, EndParam, FilletRadius) {\n super(Directrix, Radius, InnerRadius, StartParam, EndParam);\n this.Directrix = Directrix;\n this.Radius = Radius;\n this.InnerRadius = InnerRadius;\n this.StartParam = StartParam;\n this.EndParam = EndParam;\n this.FilletRadius = FilletRadius;\n this.type = 1096409881;\n }\n }\n IFC42.IfcSweptDiskSolidPolygonal = IfcSweptDiskSolidPolygonal;\n class IfcSweptSurface extends IfcSurface {\n constructor(SweptCurve, Position) {\n super();\n this.SweptCurve = SweptCurve;\n this.Position = Position;\n this.type = 230924584;\n }\n }\n IFC42.IfcSweptSurface = IfcSweptSurface;\n class IfcTShapeProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.Depth = Depth;\n this.FlangeWidth = FlangeWidth;\n this.WebThickness = WebThickness;\n this.FlangeThickness = FlangeThickness;\n this.FilletRadius = FilletRadius;\n this.FlangeEdgeRadius = FlangeEdgeRadius;\n this.WebEdgeRadius = WebEdgeRadius;\n this.WebSlope = WebSlope;\n this.FlangeSlope = FlangeSlope;\n this.type = 3071757647;\n }\n }\n IFC42.IfcTShapeProfileDef = IfcTShapeProfileDef;\n class IfcTessellatedItem extends IfcGeometricRepresentationItem {\n constructor() {\n super();\n this.type = 901063453;\n }\n }\n IFC42.IfcTessellatedItem = IfcTessellatedItem;\n class IfcTextLiteral extends IfcGeometricRepresentationItem {\n constructor(Literal, Placement, Path) {\n super();\n this.Literal = Literal;\n this.Placement = Placement;\n this.Path = Path;\n this.type = 4282788508;\n }\n }\n IFC42.IfcTextLiteral = IfcTextLiteral;\n class IfcTextLiteralWithExtent extends IfcTextLiteral {\n constructor(Literal, Placement, Path, Extent, BoxAlignment) {\n super(Literal, Placement, Path);\n this.Literal = Literal;\n this.Placement = Placement;\n this.Path = Path;\n this.Extent = Extent;\n this.BoxAlignment = BoxAlignment;\n this.type = 3124975700;\n }\n }\n IFC42.IfcTextLiteralWithExtent = IfcTextLiteralWithExtent;\n class IfcTextStyleFontModel extends IfcPreDefinedTextFont {\n constructor(Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize) {\n super(Name);\n this.Name = Name;\n this.FontFamily = FontFamily;\n this.FontStyle = FontStyle;\n this.FontVariant = FontVariant;\n this.FontWeight = FontWeight;\n this.FontSize = FontSize;\n this.type = 1983826977;\n }\n }\n IFC42.IfcTextStyleFontModel = IfcTextStyleFontModel;\n class IfcTrapeziumProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.BottomXDim = BottomXDim;\n this.TopXDim = TopXDim;\n this.YDim = YDim;\n this.TopXOffset = TopXOffset;\n this.type = 2715220739;\n }\n }\n IFC42.IfcTrapeziumProfileDef = IfcTrapeziumProfileDef;\n class IfcTypeObject extends IfcObjectDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.type = 1628702193;\n }\n }\n IFC42.IfcTypeObject = IfcTypeObject;\n class IfcTypeProcess extends IfcTypeObject {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.ProcessType = ProcessType;\n this.type = 3736923433;\n }\n }\n IFC42.IfcTypeProcess = IfcTypeProcess;\n class IfcTypeProduct extends IfcTypeObject {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.type = 2347495698;\n }\n }\n IFC42.IfcTypeProduct = IfcTypeProduct;\n class IfcTypeResource extends IfcTypeObject {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.ResourceType = ResourceType;\n this.type = 3698973494;\n }\n }\n IFC42.IfcTypeResource = IfcTypeResource;\n class IfcUShapeProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.Depth = Depth;\n this.FlangeWidth = FlangeWidth;\n this.WebThickness = WebThickness;\n this.FlangeThickness = FlangeThickness;\n this.FilletRadius = FilletRadius;\n this.EdgeRadius = EdgeRadius;\n this.FlangeSlope = FlangeSlope;\n this.type = 427810014;\n }\n }\n IFC42.IfcUShapeProfileDef = IfcUShapeProfileDef;\n class IfcVector extends IfcGeometricRepresentationItem {\n constructor(Orientation, Magnitude) {\n super();\n this.Orientation = Orientation;\n this.Magnitude = Magnitude;\n this.type = 1417489154;\n }\n }\n IFC42.IfcVector = IfcVector;\n class IfcVertexLoop extends IfcLoop {\n constructor(LoopVertex) {\n super();\n this.LoopVertex = LoopVertex;\n this.type = 2759199220;\n }\n }\n IFC42.IfcVertexLoop = IfcVertexLoop;\n class IfcWindowStyle extends IfcTypeProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ConstructionType, OperationType, ParameterTakesPrecedence, Sizeable) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ConstructionType = ConstructionType;\n this.OperationType = OperationType;\n this.ParameterTakesPrecedence = ParameterTakesPrecedence;\n this.Sizeable = Sizeable;\n this.type = 1299126871;\n }\n }\n IFC42.IfcWindowStyle = IfcWindowStyle;\n class IfcZShapeProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.Depth = Depth;\n this.FlangeWidth = FlangeWidth;\n this.WebThickness = WebThickness;\n this.FlangeThickness = FlangeThickness;\n this.FilletRadius = FilletRadius;\n this.EdgeRadius = EdgeRadius;\n this.type = 2543172580;\n }\n }\n IFC42.IfcZShapeProfileDef = IfcZShapeProfileDef;\n class IfcAdvancedFace extends IfcFaceSurface {\n constructor(Bounds, FaceSurface, SameSense) {\n super(Bounds, FaceSurface, SameSense);\n this.Bounds = Bounds;\n this.FaceSurface = FaceSurface;\n this.SameSense = SameSense;\n this.type = 3406155212;\n }\n }\n IFC42.IfcAdvancedFace = IfcAdvancedFace;\n class IfcAnnotationFillArea extends IfcGeometricRepresentationItem {\n constructor(OuterBoundary, InnerBoundaries) {\n super();\n this.OuterBoundary = OuterBoundary;\n this.InnerBoundaries = InnerBoundaries;\n this.type = 669184980;\n }\n }\n IFC42.IfcAnnotationFillArea = IfcAnnotationFillArea;\n class IfcAsymmetricIShapeProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, BottomFlangeWidth, OverallDepth, WebThickness, BottomFlangeThickness, BottomFlangeFilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, BottomFlangeEdgeRadius, BottomFlangeSlope, TopFlangeEdgeRadius, TopFlangeSlope) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.BottomFlangeWidth = BottomFlangeWidth;\n this.OverallDepth = OverallDepth;\n this.WebThickness = WebThickness;\n this.BottomFlangeThickness = BottomFlangeThickness;\n this.BottomFlangeFilletRadius = BottomFlangeFilletRadius;\n this.TopFlangeWidth = TopFlangeWidth;\n this.TopFlangeThickness = TopFlangeThickness;\n this.TopFlangeFilletRadius = TopFlangeFilletRadius;\n this.BottomFlangeEdgeRadius = BottomFlangeEdgeRadius;\n this.BottomFlangeSlope = BottomFlangeSlope;\n this.TopFlangeEdgeRadius = TopFlangeEdgeRadius;\n this.TopFlangeSlope = TopFlangeSlope;\n this.type = 3207858831;\n }\n }\n IFC42.IfcAsymmetricIShapeProfileDef = IfcAsymmetricIShapeProfileDef;\n class IfcAxis1Placement extends IfcPlacement {\n constructor(Location, Axis) {\n super(Location);\n this.Location = Location;\n this.Axis = Axis;\n this.type = 4261334040;\n }\n }\n IFC42.IfcAxis1Placement = IfcAxis1Placement;\n class IfcAxis2Placement2D extends IfcPlacement {\n constructor(Location, RefDirection) {\n super(Location);\n this.Location = Location;\n this.RefDirection = RefDirection;\n this.type = 3125803723;\n }\n }\n IFC42.IfcAxis2Placement2D = IfcAxis2Placement2D;\n class IfcAxis2Placement3D extends IfcPlacement {\n constructor(Location, Axis, RefDirection) {\n super(Location);\n this.Location = Location;\n this.Axis = Axis;\n this.RefDirection = RefDirection;\n this.type = 2740243338;\n }\n }\n IFC42.IfcAxis2Placement3D = IfcAxis2Placement3D;\n class IfcBooleanResult extends IfcGeometricRepresentationItem {\n constructor(Operator, FirstOperand, SecondOperand) {\n super();\n this.Operator = Operator;\n this.FirstOperand = FirstOperand;\n this.SecondOperand = SecondOperand;\n this.type = 2736907675;\n }\n }\n IFC42.IfcBooleanResult = IfcBooleanResult;\n class IfcBoundedSurface extends IfcSurface {\n constructor() {\n super();\n this.type = 4182860854;\n }\n }\n IFC42.IfcBoundedSurface = IfcBoundedSurface;\n class IfcBoundingBox extends IfcGeometricRepresentationItem {\n constructor(Corner, XDim, YDim, ZDim) {\n super();\n this.Corner = Corner;\n this.XDim = XDim;\n this.YDim = YDim;\n this.ZDim = ZDim;\n this.type = 2581212453;\n }\n }\n IFC42.IfcBoundingBox = IfcBoundingBox;\n class IfcBoxedHalfSpace extends IfcHalfSpaceSolid {\n constructor(BaseSurface, AgreementFlag, Enclosure) {\n super(BaseSurface, AgreementFlag);\n this.BaseSurface = BaseSurface;\n this.AgreementFlag = AgreementFlag;\n this.Enclosure = Enclosure;\n this.type = 2713105998;\n }\n }\n IFC42.IfcBoxedHalfSpace = IfcBoxedHalfSpace;\n class IfcCShapeProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.Depth = Depth;\n this.Width = Width;\n this.WallThickness = WallThickness;\n this.Girth = Girth;\n this.InternalFilletRadius = InternalFilletRadius;\n this.type = 2898889636;\n }\n }\n IFC42.IfcCShapeProfileDef = IfcCShapeProfileDef;\n class IfcCartesianPoint extends IfcPoint {\n constructor(Coordinates) {\n super();\n this.Coordinates = Coordinates;\n this.type = 1123145078;\n }\n }\n IFC42.IfcCartesianPoint = IfcCartesianPoint;\n class IfcCartesianPointList extends IfcGeometricRepresentationItem {\n constructor() {\n super();\n this.type = 574549367;\n }\n }\n IFC42.IfcCartesianPointList = IfcCartesianPointList;\n class IfcCartesianPointList2D extends IfcCartesianPointList {\n constructor(CoordList) {\n super();\n this.CoordList = CoordList;\n this.type = 1675464909;\n }\n }\n IFC42.IfcCartesianPointList2D = IfcCartesianPointList2D;\n class IfcCartesianPointList3D extends IfcCartesianPointList {\n constructor(CoordList) {\n super();\n this.CoordList = CoordList;\n this.type = 2059837836;\n }\n }\n IFC42.IfcCartesianPointList3D = IfcCartesianPointList3D;\n class IfcCartesianTransformationOperator extends IfcGeometricRepresentationItem {\n constructor(Axis1, Axis2, LocalOrigin, Scale) {\n super();\n this.Axis1 = Axis1;\n this.Axis2 = Axis2;\n this.LocalOrigin = LocalOrigin;\n this.Scale = Scale;\n this.type = 59481748;\n }\n }\n IFC42.IfcCartesianTransformationOperator = IfcCartesianTransformationOperator;\n class IfcCartesianTransformationOperator2D extends IfcCartesianTransformationOperator {\n constructor(Axis1, Axis2, LocalOrigin, Scale) {\n super(Axis1, Axis2, LocalOrigin, Scale);\n this.Axis1 = Axis1;\n this.Axis2 = Axis2;\n this.LocalOrigin = LocalOrigin;\n this.Scale = Scale;\n this.type = 3749851601;\n }\n }\n IFC42.IfcCartesianTransformationOperator2D = IfcCartesianTransformationOperator2D;\n class IfcCartesianTransformationOperator2DnonUniform extends IfcCartesianTransformationOperator2D {\n constructor(Axis1, Axis2, LocalOrigin, Scale, Scale2) {\n super(Axis1, Axis2, LocalOrigin, Scale);\n this.Axis1 = Axis1;\n this.Axis2 = Axis2;\n this.LocalOrigin = LocalOrigin;\n this.Scale = Scale;\n this.Scale2 = Scale2;\n this.type = 3486308946;\n }\n }\n IFC42.IfcCartesianTransformationOperator2DnonUniform = IfcCartesianTransformationOperator2DnonUniform;\n class IfcCartesianTransformationOperator3D extends IfcCartesianTransformationOperator {\n constructor(Axis1, Axis2, LocalOrigin, Scale, Axis3) {\n super(Axis1, Axis2, LocalOrigin, Scale);\n this.Axis1 = Axis1;\n this.Axis2 = Axis2;\n this.LocalOrigin = LocalOrigin;\n this.Scale = Scale;\n this.Axis3 = Axis3;\n this.type = 3331915920;\n }\n }\n IFC42.IfcCartesianTransformationOperator3D = IfcCartesianTransformationOperator3D;\n class IfcCartesianTransformationOperator3DnonUniform extends IfcCartesianTransformationOperator3D {\n constructor(Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3) {\n super(Axis1, Axis2, LocalOrigin, Scale, Axis3);\n this.Axis1 = Axis1;\n this.Axis2 = Axis2;\n this.LocalOrigin = LocalOrigin;\n this.Scale = Scale;\n this.Axis3 = Axis3;\n this.Scale2 = Scale2;\n this.Scale3 = Scale3;\n this.type = 1416205885;\n }\n }\n IFC42.IfcCartesianTransformationOperator3DnonUniform = IfcCartesianTransformationOperator3DnonUniform;\n class IfcCircleProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, Radius) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.Radius = Radius;\n this.type = 1383045692;\n }\n }\n IFC42.IfcCircleProfileDef = IfcCircleProfileDef;\n class IfcClosedShell extends IfcConnectedFaceSet {\n constructor(CfsFaces) {\n super(CfsFaces);\n this.CfsFaces = CfsFaces;\n this.type = 2205249479;\n }\n }\n IFC42.IfcClosedShell = IfcClosedShell;\n class IfcColourRgb extends IfcColourSpecification {\n constructor(Name, Red, Green, Blue) {\n super(Name);\n this.Name = Name;\n this.Red = Red;\n this.Green = Green;\n this.Blue = Blue;\n this.type = 776857604;\n }\n }\n IFC42.IfcColourRgb = IfcColourRgb;\n class IfcComplexProperty extends IfcProperty {\n constructor(Name, Description, UsageName, HasProperties) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.UsageName = UsageName;\n this.HasProperties = HasProperties;\n this.type = 2542286263;\n }\n }\n IFC42.IfcComplexProperty = IfcComplexProperty;\n class IfcCompositeCurveSegment extends IfcGeometricRepresentationItem {\n constructor(Transition, SameSense, ParentCurve) {\n super();\n this.Transition = Transition;\n this.SameSense = SameSense;\n this.ParentCurve = ParentCurve;\n this.type = 2485617015;\n }\n }\n IFC42.IfcCompositeCurveSegment = IfcCompositeCurveSegment;\n class IfcConstructionResourceType extends IfcTypeResource {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.ResourceType = ResourceType;\n this.BaseCosts = BaseCosts;\n this.BaseQuantity = BaseQuantity;\n this.type = 2574617495;\n }\n }\n IFC42.IfcConstructionResourceType = IfcConstructionResourceType;\n class IfcContext extends IfcObjectDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.LongName = LongName;\n this.Phase = Phase;\n this.RepresentationContexts = RepresentationContexts;\n this.UnitsInContext = UnitsInContext;\n this.type = 3419103109;\n }\n }\n IFC42.IfcContext = IfcContext;\n class IfcCrewResourceType extends IfcConstructionResourceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.ResourceType = ResourceType;\n this.BaseCosts = BaseCosts;\n this.BaseQuantity = BaseQuantity;\n this.PredefinedType = PredefinedType;\n this.type = 1815067380;\n }\n }\n IFC42.IfcCrewResourceType = IfcCrewResourceType;\n class IfcCsgPrimitive3D extends IfcGeometricRepresentationItem {\n constructor(Position) {\n super();\n this.Position = Position;\n this.type = 2506170314;\n }\n }\n IFC42.IfcCsgPrimitive3D = IfcCsgPrimitive3D;\n class IfcCsgSolid extends IfcSolidModel {\n constructor(TreeRootExpression) {\n super();\n this.TreeRootExpression = TreeRootExpression;\n this.type = 2147822146;\n }\n }\n IFC42.IfcCsgSolid = IfcCsgSolid;\n class IfcCurve extends IfcGeometricRepresentationItem {\n constructor() {\n super();\n this.type = 2601014836;\n }\n }\n IFC42.IfcCurve = IfcCurve;\n class IfcCurveBoundedPlane extends IfcBoundedSurface {\n constructor(BasisSurface, OuterBoundary, InnerBoundaries) {\n super();\n this.BasisSurface = BasisSurface;\n this.OuterBoundary = OuterBoundary;\n this.InnerBoundaries = InnerBoundaries;\n this.type = 2827736869;\n }\n }\n IFC42.IfcCurveBoundedPlane = IfcCurveBoundedPlane;\n class IfcCurveBoundedSurface extends IfcBoundedSurface {\n constructor(BasisSurface, Boundaries, ImplicitOuter) {\n super();\n this.BasisSurface = BasisSurface;\n this.Boundaries = Boundaries;\n this.ImplicitOuter = ImplicitOuter;\n this.type = 2629017746;\n }\n }\n IFC42.IfcCurveBoundedSurface = IfcCurveBoundedSurface;\n class IfcDirection extends IfcGeometricRepresentationItem {\n constructor(DirectionRatios) {\n super();\n this.DirectionRatios = DirectionRatios;\n this.type = 32440307;\n }\n }\n IFC42.IfcDirection = IfcDirection;\n class IfcDoorStyle extends IfcTypeProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, OperationType, ConstructionType, ParameterTakesPrecedence, Sizeable) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.OperationType = OperationType;\n this.ConstructionType = ConstructionType;\n this.ParameterTakesPrecedence = ParameterTakesPrecedence;\n this.Sizeable = Sizeable;\n this.type = 526551008;\n }\n }\n IFC42.IfcDoorStyle = IfcDoorStyle;\n class IfcEdgeLoop extends IfcLoop {\n constructor(EdgeList) {\n super();\n this.EdgeList = EdgeList;\n this.type = 1472233963;\n }\n }\n IFC42.IfcEdgeLoop = IfcEdgeLoop;\n class IfcElementQuantity extends IfcQuantitySet {\n constructor(GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.MethodOfMeasurement = MethodOfMeasurement;\n this.Quantities = Quantities;\n this.type = 1883228015;\n }\n }\n IFC42.IfcElementQuantity = IfcElementQuantity;\n class IfcElementType extends IfcTypeProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 339256511;\n }\n }\n IFC42.IfcElementType = IfcElementType;\n class IfcElementarySurface extends IfcSurface {\n constructor(Position) {\n super();\n this.Position = Position;\n this.type = 2777663545;\n }\n }\n IFC42.IfcElementarySurface = IfcElementarySurface;\n class IfcEllipseProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.SemiAxis1 = SemiAxis1;\n this.SemiAxis2 = SemiAxis2;\n this.type = 2835456948;\n }\n }\n IFC42.IfcEllipseProfileDef = IfcEllipseProfileDef;\n class IfcEventType extends IfcTypeProcess {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, EventTriggerType, UserDefinedEventTriggerType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.ProcessType = ProcessType;\n this.PredefinedType = PredefinedType;\n this.EventTriggerType = EventTriggerType;\n this.UserDefinedEventTriggerType = UserDefinedEventTriggerType;\n this.type = 4024345920;\n }\n }\n IFC42.IfcEventType = IfcEventType;\n class IfcExtrudedAreaSolid extends IfcSweptAreaSolid {\n constructor(SweptArea, Position, ExtrudedDirection, Depth) {\n super(SweptArea, Position);\n this.SweptArea = SweptArea;\n this.Position = Position;\n this.ExtrudedDirection = ExtrudedDirection;\n this.Depth = Depth;\n this.type = 477187591;\n }\n }\n IFC42.IfcExtrudedAreaSolid = IfcExtrudedAreaSolid;\n class IfcExtrudedAreaSolidTapered extends IfcExtrudedAreaSolid {\n constructor(SweptArea, Position, ExtrudedDirection, Depth, EndSweptArea) {\n super(SweptArea, Position, ExtrudedDirection, Depth);\n this.SweptArea = SweptArea;\n this.Position = Position;\n this.ExtrudedDirection = ExtrudedDirection;\n this.Depth = Depth;\n this.EndSweptArea = EndSweptArea;\n this.type = 2804161546;\n }\n }\n IFC42.IfcExtrudedAreaSolidTapered = IfcExtrudedAreaSolidTapered;\n class IfcFaceBasedSurfaceModel extends IfcGeometricRepresentationItem {\n constructor(FbsmFaces) {\n super();\n this.FbsmFaces = FbsmFaces;\n this.type = 2047409740;\n }\n }\n IFC42.IfcFaceBasedSurfaceModel = IfcFaceBasedSurfaceModel;\n class IfcFillAreaStyleHatching extends IfcGeometricRepresentationItem {\n constructor(HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle) {\n super();\n this.HatchLineAppearance = HatchLineAppearance;\n this.StartOfNextHatchLine = StartOfNextHatchLine;\n this.PointOfReferenceHatchLine = PointOfReferenceHatchLine;\n this.PatternStart = PatternStart;\n this.HatchLineAngle = HatchLineAngle;\n this.type = 374418227;\n }\n }\n IFC42.IfcFillAreaStyleHatching = IfcFillAreaStyleHatching;\n class IfcFillAreaStyleTiles extends IfcGeometricRepresentationItem {\n constructor(TilingPattern, Tiles, TilingScale) {\n super();\n this.TilingPattern = TilingPattern;\n this.Tiles = Tiles;\n this.TilingScale = TilingScale;\n this.type = 315944413;\n }\n }\n IFC42.IfcFillAreaStyleTiles = IfcFillAreaStyleTiles;\n class IfcFixedReferenceSweptAreaSolid extends IfcSweptAreaSolid {\n constructor(SweptArea, Position, Directrix, StartParam, EndParam, FixedReference) {\n super(SweptArea, Position);\n this.SweptArea = SweptArea;\n this.Position = Position;\n this.Directrix = Directrix;\n this.StartParam = StartParam;\n this.EndParam = EndParam;\n this.FixedReference = FixedReference;\n this.type = 2652556860;\n }\n }\n IFC42.IfcFixedReferenceSweptAreaSolid = IfcFixedReferenceSweptAreaSolid;\n class IfcFurnishingElementType extends IfcElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 4238390223;\n }\n }\n IFC42.IfcFurnishingElementType = IfcFurnishingElementType;\n class IfcFurnitureType extends IfcFurnishingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.AssemblyPlace = AssemblyPlace;\n this.PredefinedType = PredefinedType;\n this.type = 1268542332;\n }\n }\n IFC42.IfcFurnitureType = IfcFurnitureType;\n class IfcGeographicElementType extends IfcElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 4095422895;\n }\n }\n IFC42.IfcGeographicElementType = IfcGeographicElementType;\n class IfcGeometricCurveSet extends IfcGeometricSet {\n constructor(Elements) {\n super(Elements);\n this.Elements = Elements;\n this.type = 987898635;\n }\n }\n IFC42.IfcGeometricCurveSet = IfcGeometricCurveSet;\n class IfcIShapeProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, FlangeSlope) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.OverallWidth = OverallWidth;\n this.OverallDepth = OverallDepth;\n this.WebThickness = WebThickness;\n this.FlangeThickness = FlangeThickness;\n this.FilletRadius = FilletRadius;\n this.FlangeEdgeRadius = FlangeEdgeRadius;\n this.FlangeSlope = FlangeSlope;\n this.type = 1484403080;\n }\n }\n IFC42.IfcIShapeProfileDef = IfcIShapeProfileDef;\n class IfcIndexedPolygonalFace extends IfcTessellatedItem {\n constructor(CoordIndex) {\n super();\n this.CoordIndex = CoordIndex;\n this.type = 178912537;\n }\n }\n IFC42.IfcIndexedPolygonalFace = IfcIndexedPolygonalFace;\n class IfcIndexedPolygonalFaceWithVoids extends IfcIndexedPolygonalFace {\n constructor(CoordIndex, InnerCoordIndices) {\n super(CoordIndex);\n this.CoordIndex = CoordIndex;\n this.InnerCoordIndices = InnerCoordIndices;\n this.type = 2294589976;\n }\n }\n IFC42.IfcIndexedPolygonalFaceWithVoids = IfcIndexedPolygonalFaceWithVoids;\n class IfcLShapeProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.Depth = Depth;\n this.Width = Width;\n this.Thickness = Thickness;\n this.FilletRadius = FilletRadius;\n this.EdgeRadius = EdgeRadius;\n this.LegSlope = LegSlope;\n this.type = 572779678;\n }\n }\n IFC42.IfcLShapeProfileDef = IfcLShapeProfileDef;\n class IfcLaborResourceType extends IfcConstructionResourceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.ResourceType = ResourceType;\n this.BaseCosts = BaseCosts;\n this.BaseQuantity = BaseQuantity;\n this.PredefinedType = PredefinedType;\n this.type = 428585644;\n }\n }\n IFC42.IfcLaborResourceType = IfcLaborResourceType;\n class IfcLine extends IfcCurve {\n constructor(Pnt, Dir) {\n super();\n this.Pnt = Pnt;\n this.Dir = Dir;\n this.type = 1281925730;\n }\n }\n IFC42.IfcLine = IfcLine;\n class IfcManifoldSolidBrep extends IfcSolidModel {\n constructor(Outer) {\n super();\n this.Outer = Outer;\n this.type = 1425443689;\n }\n }\n IFC42.IfcManifoldSolidBrep = IfcManifoldSolidBrep;\n class IfcObject extends IfcObjectDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.type = 3888040117;\n }\n }\n IFC42.IfcObject = IfcObject;\n class IfcOffsetCurve2D extends IfcCurve {\n constructor(BasisCurve, Distance, SelfIntersect) {\n super();\n this.BasisCurve = BasisCurve;\n this.Distance = Distance;\n this.SelfIntersect = SelfIntersect;\n this.type = 3388369263;\n }\n }\n IFC42.IfcOffsetCurve2D = IfcOffsetCurve2D;\n class IfcOffsetCurve3D extends IfcCurve {\n constructor(BasisCurve, Distance, SelfIntersect, RefDirection) {\n super();\n this.BasisCurve = BasisCurve;\n this.Distance = Distance;\n this.SelfIntersect = SelfIntersect;\n this.RefDirection = RefDirection;\n this.type = 3505215534;\n }\n }\n IFC42.IfcOffsetCurve3D = IfcOffsetCurve3D;\n class IfcPcurve extends IfcCurve {\n constructor(BasisSurface, ReferenceCurve) {\n super();\n this.BasisSurface = BasisSurface;\n this.ReferenceCurve = ReferenceCurve;\n this.type = 1682466193;\n }\n }\n IFC42.IfcPcurve = IfcPcurve;\n class IfcPlanarBox extends IfcPlanarExtent {\n constructor(SizeInX, SizeInY, Placement) {\n super(SizeInX, SizeInY);\n this.SizeInX = SizeInX;\n this.SizeInY = SizeInY;\n this.Placement = Placement;\n this.type = 603570806;\n }\n }\n IFC42.IfcPlanarBox = IfcPlanarBox;\n class IfcPlane extends IfcElementarySurface {\n constructor(Position) {\n super(Position);\n this.Position = Position;\n this.type = 220341763;\n }\n }\n IFC42.IfcPlane = IfcPlane;\n class IfcPreDefinedColour extends IfcPreDefinedItem {\n constructor(Name) {\n super(Name);\n this.Name = Name;\n this.type = 759155922;\n }\n }\n IFC42.IfcPreDefinedColour = IfcPreDefinedColour;\n class IfcPreDefinedCurveFont extends IfcPreDefinedItem {\n constructor(Name) {\n super(Name);\n this.Name = Name;\n this.type = 2559016684;\n }\n }\n IFC42.IfcPreDefinedCurveFont = IfcPreDefinedCurveFont;\n class IfcPreDefinedPropertySet extends IfcPropertySetDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 3967405729;\n }\n }\n IFC42.IfcPreDefinedPropertySet = IfcPreDefinedPropertySet;\n class IfcProcedureType extends IfcTypeProcess {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.ProcessType = ProcessType;\n this.PredefinedType = PredefinedType;\n this.type = 569719735;\n }\n }\n IFC42.IfcProcedureType = IfcProcedureType;\n class IfcProcess extends IfcObject {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.type = 2945172077;\n }\n }\n IFC42.IfcProcess = IfcProcess;\n class IfcProduct extends IfcObject {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.type = 4208778838;\n }\n }\n IFC42.IfcProduct = IfcProduct;\n class IfcProject extends IfcContext {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.LongName = LongName;\n this.Phase = Phase;\n this.RepresentationContexts = RepresentationContexts;\n this.UnitsInContext = UnitsInContext;\n this.type = 103090709;\n }\n }\n IFC42.IfcProject = IfcProject;\n class IfcProjectLibrary extends IfcContext {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.LongName = LongName;\n this.Phase = Phase;\n this.RepresentationContexts = RepresentationContexts;\n this.UnitsInContext = UnitsInContext;\n this.type = 653396225;\n }\n }\n IFC42.IfcProjectLibrary = IfcProjectLibrary;\n class IfcPropertyBoundedValue extends IfcSimpleProperty {\n constructor(Name, Description, UpperBoundValue, LowerBoundValue, Unit, SetPointValue) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.UpperBoundValue = UpperBoundValue;\n this.LowerBoundValue = LowerBoundValue;\n this.Unit = Unit;\n this.SetPointValue = SetPointValue;\n this.type = 871118103;\n }\n }\n IFC42.IfcPropertyBoundedValue = IfcPropertyBoundedValue;\n class IfcPropertyEnumeratedValue extends IfcSimpleProperty {\n constructor(Name, Description, EnumerationValues, EnumerationReference) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.EnumerationValues = EnumerationValues;\n this.EnumerationReference = EnumerationReference;\n this.type = 4166981789;\n }\n }\n IFC42.IfcPropertyEnumeratedValue = IfcPropertyEnumeratedValue;\n class IfcPropertyListValue extends IfcSimpleProperty {\n constructor(Name, Description, ListValues, Unit) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.ListValues = ListValues;\n this.Unit = Unit;\n this.type = 2752243245;\n }\n }\n IFC42.IfcPropertyListValue = IfcPropertyListValue;\n class IfcPropertyReferenceValue extends IfcSimpleProperty {\n constructor(Name, Description, UsageName, PropertyReference) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.UsageName = UsageName;\n this.PropertyReference = PropertyReference;\n this.type = 941946838;\n }\n }\n IFC42.IfcPropertyReferenceValue = IfcPropertyReferenceValue;\n class IfcPropertySet extends IfcPropertySetDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description, HasProperties) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.HasProperties = HasProperties;\n this.type = 1451395588;\n }\n }\n IFC42.IfcPropertySet = IfcPropertySet;\n class IfcPropertySetTemplate extends IfcPropertyTemplateDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description, TemplateType, ApplicableEntity, HasPropertyTemplates) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.TemplateType = TemplateType;\n this.ApplicableEntity = ApplicableEntity;\n this.HasPropertyTemplates = HasPropertyTemplates;\n this.type = 492091185;\n }\n }\n IFC42.IfcPropertySetTemplate = IfcPropertySetTemplate;\n class IfcPropertySingleValue extends IfcSimpleProperty {\n constructor(Name, Description, NominalValue, Unit) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.NominalValue = NominalValue;\n this.Unit = Unit;\n this.type = 3650150729;\n }\n }\n IFC42.IfcPropertySingleValue = IfcPropertySingleValue;\n class IfcPropertyTableValue extends IfcSimpleProperty {\n constructor(Name, Description, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit, CurveInterpolation) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.DefiningValues = DefiningValues;\n this.DefinedValues = DefinedValues;\n this.Expression = Expression;\n this.DefiningUnit = DefiningUnit;\n this.DefinedUnit = DefinedUnit;\n this.CurveInterpolation = CurveInterpolation;\n this.type = 110355661;\n }\n }\n IFC42.IfcPropertyTableValue = IfcPropertyTableValue;\n class IfcPropertyTemplate extends IfcPropertyTemplateDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 3521284610;\n }\n }\n IFC42.IfcPropertyTemplate = IfcPropertyTemplate;\n class IfcProxy extends IfcProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, ProxyType, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.ProxyType = ProxyType;\n this.Tag = Tag;\n this.type = 3219374653;\n }\n }\n IFC42.IfcProxy = IfcProxy;\n class IfcRectangleHollowProfileDef extends IfcRectangleProfileDef {\n constructor(ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius) {\n super(ProfileType, ProfileName, Position, XDim, YDim);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.XDim = XDim;\n this.YDim = YDim;\n this.WallThickness = WallThickness;\n this.InnerFilletRadius = InnerFilletRadius;\n this.OuterFilletRadius = OuterFilletRadius;\n this.type = 2770003689;\n }\n }\n IFC42.IfcRectangleHollowProfileDef = IfcRectangleHollowProfileDef;\n class IfcRectangularPyramid extends IfcCsgPrimitive3D {\n constructor(Position, XLength, YLength, Height) {\n super(Position);\n this.Position = Position;\n this.XLength = XLength;\n this.YLength = YLength;\n this.Height = Height;\n this.type = 2798486643;\n }\n }\n IFC42.IfcRectangularPyramid = IfcRectangularPyramid;\n class IfcRectangularTrimmedSurface extends IfcBoundedSurface {\n constructor(BasisSurface, U1, V1, U2, V2, Usense, Vsense) {\n super();\n this.BasisSurface = BasisSurface;\n this.U1 = U1;\n this.V1 = V1;\n this.U2 = U2;\n this.V2 = V2;\n this.Usense = Usense;\n this.Vsense = Vsense;\n this.type = 3454111270;\n }\n }\n IFC42.IfcRectangularTrimmedSurface = IfcRectangularTrimmedSurface;\n class IfcReinforcementDefinitionProperties extends IfcPreDefinedPropertySet {\n constructor(GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.DefinitionType = DefinitionType;\n this.ReinforcementSectionDefinitions = ReinforcementSectionDefinitions;\n this.type = 3765753017;\n }\n }\n IFC42.IfcReinforcementDefinitionProperties = IfcReinforcementDefinitionProperties;\n class IfcRelAssigns extends IfcRelationship {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatedObjectsType = RelatedObjectsType;\n this.type = 3939117080;\n }\n }\n IFC42.IfcRelAssigns = IfcRelAssigns;\n class IfcRelAssignsToActor extends IfcRelAssigns {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatedObjectsType = RelatedObjectsType;\n this.RelatingActor = RelatingActor;\n this.ActingRole = ActingRole;\n this.type = 1683148259;\n }\n }\n IFC42.IfcRelAssignsToActor = IfcRelAssignsToActor;\n class IfcRelAssignsToControl extends IfcRelAssigns {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatedObjectsType = RelatedObjectsType;\n this.RelatingControl = RelatingControl;\n this.type = 2495723537;\n }\n }\n IFC42.IfcRelAssignsToControl = IfcRelAssignsToControl;\n class IfcRelAssignsToGroup extends IfcRelAssigns {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatedObjectsType = RelatedObjectsType;\n this.RelatingGroup = RelatingGroup;\n this.type = 1307041759;\n }\n }\n IFC42.IfcRelAssignsToGroup = IfcRelAssignsToGroup;\n class IfcRelAssignsToGroupByFactor extends IfcRelAssignsToGroup {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup, Factor) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatedObjectsType = RelatedObjectsType;\n this.RelatingGroup = RelatingGroup;\n this.Factor = Factor;\n this.type = 1027710054;\n }\n }\n IFC42.IfcRelAssignsToGroupByFactor = IfcRelAssignsToGroupByFactor;\n class IfcRelAssignsToProcess extends IfcRelAssigns {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatedObjectsType = RelatedObjectsType;\n this.RelatingProcess = RelatingProcess;\n this.QuantityInProcess = QuantityInProcess;\n this.type = 4278684876;\n }\n }\n IFC42.IfcRelAssignsToProcess = IfcRelAssignsToProcess;\n class IfcRelAssignsToProduct extends IfcRelAssigns {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatedObjectsType = RelatedObjectsType;\n this.RelatingProduct = RelatingProduct;\n this.type = 2857406711;\n }\n }\n IFC42.IfcRelAssignsToProduct = IfcRelAssignsToProduct;\n class IfcRelAssignsToResource extends IfcRelAssigns {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatedObjectsType = RelatedObjectsType;\n this.RelatingResource = RelatingResource;\n this.type = 205026976;\n }\n }\n IFC42.IfcRelAssignsToResource = IfcRelAssignsToResource;\n class IfcRelAssociates extends IfcRelationship {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.type = 1865459582;\n }\n }\n IFC42.IfcRelAssociates = IfcRelAssociates;\n class IfcRelAssociatesApproval extends IfcRelAssociates {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatingApproval = RelatingApproval;\n this.type = 4095574036;\n }\n }\n IFC42.IfcRelAssociatesApproval = IfcRelAssociatesApproval;\n class IfcRelAssociatesClassification extends IfcRelAssociates {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatingClassification = RelatingClassification;\n this.type = 919958153;\n }\n }\n IFC42.IfcRelAssociatesClassification = IfcRelAssociatesClassification;\n class IfcRelAssociatesConstraint extends IfcRelAssociates {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.Intent = Intent;\n this.RelatingConstraint = RelatingConstraint;\n this.type = 2728634034;\n }\n }\n IFC42.IfcRelAssociatesConstraint = IfcRelAssociatesConstraint;\n class IfcRelAssociatesDocument extends IfcRelAssociates {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatingDocument = RelatingDocument;\n this.type = 982818633;\n }\n }\n IFC42.IfcRelAssociatesDocument = IfcRelAssociatesDocument;\n class IfcRelAssociatesLibrary extends IfcRelAssociates {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatingLibrary = RelatingLibrary;\n this.type = 3840914261;\n }\n }\n IFC42.IfcRelAssociatesLibrary = IfcRelAssociatesLibrary;\n class IfcRelAssociatesMaterial extends IfcRelAssociates {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatingMaterial = RelatingMaterial;\n this.type = 2655215786;\n }\n }\n IFC42.IfcRelAssociatesMaterial = IfcRelAssociatesMaterial;\n class IfcRelConnects extends IfcRelationship {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 826625072;\n }\n }\n IFC42.IfcRelConnects = IfcRelConnects;\n class IfcRelConnectsElements extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ConnectionGeometry = ConnectionGeometry;\n this.RelatingElement = RelatingElement;\n this.RelatedElement = RelatedElement;\n this.type = 1204542856;\n }\n }\n IFC42.IfcRelConnectsElements = IfcRelConnectsElements;\n class IfcRelConnectsPathElements extends IfcRelConnectsElements {\n constructor(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType) {\n super(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ConnectionGeometry = ConnectionGeometry;\n this.RelatingElement = RelatingElement;\n this.RelatedElement = RelatedElement;\n this.RelatingPriorities = RelatingPriorities;\n this.RelatedPriorities = RelatedPriorities;\n this.RelatedConnectionType = RelatedConnectionType;\n this.RelatingConnectionType = RelatingConnectionType;\n this.type = 3945020480;\n }\n }\n IFC42.IfcRelConnectsPathElements = IfcRelConnectsPathElements;\n class IfcRelConnectsPortToElement extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingPort = RelatingPort;\n this.RelatedElement = RelatedElement;\n this.type = 4201705270;\n }\n }\n IFC42.IfcRelConnectsPortToElement = IfcRelConnectsPortToElement;\n class IfcRelConnectsPorts extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingPort = RelatingPort;\n this.RelatedPort = RelatedPort;\n this.RealizingElement = RealizingElement;\n this.type = 3190031847;\n }\n }\n IFC42.IfcRelConnectsPorts = IfcRelConnectsPorts;\n class IfcRelConnectsStructuralActivity extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingElement = RelatingElement;\n this.RelatedStructuralActivity = RelatedStructuralActivity;\n this.type = 2127690289;\n }\n }\n IFC42.IfcRelConnectsStructuralActivity = IfcRelConnectsStructuralActivity;\n class IfcRelConnectsStructuralMember extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingStructuralMember = RelatingStructuralMember;\n this.RelatedStructuralConnection = RelatedStructuralConnection;\n this.AppliedCondition = AppliedCondition;\n this.AdditionalConditions = AdditionalConditions;\n this.SupportedLength = SupportedLength;\n this.ConditionCoordinateSystem = ConditionCoordinateSystem;\n this.type = 1638771189;\n }\n }\n IFC42.IfcRelConnectsStructuralMember = IfcRelConnectsStructuralMember;\n class IfcRelConnectsWithEccentricity extends IfcRelConnectsStructuralMember {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint) {\n super(GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingStructuralMember = RelatingStructuralMember;\n this.RelatedStructuralConnection = RelatedStructuralConnection;\n this.AppliedCondition = AppliedCondition;\n this.AdditionalConditions = AdditionalConditions;\n this.SupportedLength = SupportedLength;\n this.ConditionCoordinateSystem = ConditionCoordinateSystem;\n this.ConnectionConstraint = ConnectionConstraint;\n this.type = 504942748;\n }\n }\n IFC42.IfcRelConnectsWithEccentricity = IfcRelConnectsWithEccentricity;\n class IfcRelConnectsWithRealizingElements extends IfcRelConnectsElements {\n constructor(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType) {\n super(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ConnectionGeometry = ConnectionGeometry;\n this.RelatingElement = RelatingElement;\n this.RelatedElement = RelatedElement;\n this.RealizingElements = RealizingElements;\n this.ConnectionType = ConnectionType;\n this.type = 3678494232;\n }\n }\n IFC42.IfcRelConnectsWithRealizingElements = IfcRelConnectsWithRealizingElements;\n class IfcRelContainedInSpatialStructure extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedElements = RelatedElements;\n this.RelatingStructure = RelatingStructure;\n this.type = 3242617779;\n }\n }\n IFC42.IfcRelContainedInSpatialStructure = IfcRelContainedInSpatialStructure;\n class IfcRelCoversBldgElements extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingBuildingElement = RelatingBuildingElement;\n this.RelatedCoverings = RelatedCoverings;\n this.type = 886880790;\n }\n }\n IFC42.IfcRelCoversBldgElements = IfcRelCoversBldgElements;\n class IfcRelCoversSpaces extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedCoverings) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingSpace = RelatingSpace;\n this.RelatedCoverings = RelatedCoverings;\n this.type = 2802773753;\n }\n }\n IFC42.IfcRelCoversSpaces = IfcRelCoversSpaces;\n class IfcRelDeclares extends IfcRelationship {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingContext, RelatedDefinitions) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingContext = RelatingContext;\n this.RelatedDefinitions = RelatedDefinitions;\n this.type = 2565941209;\n }\n }\n IFC42.IfcRelDeclares = IfcRelDeclares;\n class IfcRelDecomposes extends IfcRelationship {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 2551354335;\n }\n }\n IFC42.IfcRelDecomposes = IfcRelDecomposes;\n class IfcRelDefines extends IfcRelationship {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 693640335;\n }\n }\n IFC42.IfcRelDefines = IfcRelDefines;\n class IfcRelDefinesByObject extends IfcRelDefines {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingObject) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatingObject = RelatingObject;\n this.type = 1462361463;\n }\n }\n IFC42.IfcRelDefinesByObject = IfcRelDefinesByObject;\n class IfcRelDefinesByProperties extends IfcRelDefines {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatingPropertyDefinition = RelatingPropertyDefinition;\n this.type = 4186316022;\n }\n }\n IFC42.IfcRelDefinesByProperties = IfcRelDefinesByProperties;\n class IfcRelDefinesByTemplate extends IfcRelDefines {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedPropertySets, RelatingTemplate) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedPropertySets = RelatedPropertySets;\n this.RelatingTemplate = RelatingTemplate;\n this.type = 307848117;\n }\n }\n IFC42.IfcRelDefinesByTemplate = IfcRelDefinesByTemplate;\n class IfcRelDefinesByType extends IfcRelDefines {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatingType = RelatingType;\n this.type = 781010003;\n }\n }\n IFC42.IfcRelDefinesByType = IfcRelDefinesByType;\n class IfcRelFillsElement extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingOpeningElement = RelatingOpeningElement;\n this.RelatedBuildingElement = RelatedBuildingElement;\n this.type = 3940055652;\n }\n }\n IFC42.IfcRelFillsElement = IfcRelFillsElement;\n class IfcRelFlowControlElements extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedControlElements = RelatedControlElements;\n this.RelatingFlowElement = RelatingFlowElement;\n this.type = 279856033;\n }\n }\n IFC42.IfcRelFlowControlElements = IfcRelFlowControlElements;\n class IfcRelInterferesElements extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedElement, InterferenceGeometry, InterferenceType, ImpliedOrder) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingElement = RelatingElement;\n this.RelatedElement = RelatedElement;\n this.InterferenceGeometry = InterferenceGeometry;\n this.InterferenceType = InterferenceType;\n this.ImpliedOrder = ImpliedOrder;\n this.type = 427948657;\n }\n }\n IFC42.IfcRelInterferesElements = IfcRelInterferesElements;\n class IfcRelNests extends IfcRelDecomposes {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingObject = RelatingObject;\n this.RelatedObjects = RelatedObjects;\n this.type = 3268803585;\n }\n }\n IFC42.IfcRelNests = IfcRelNests;\n class IfcRelProjectsElement extends IfcRelDecomposes {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingElement = RelatingElement;\n this.RelatedFeatureElement = RelatedFeatureElement;\n this.type = 750771296;\n }\n }\n IFC42.IfcRelProjectsElement = IfcRelProjectsElement;\n class IfcRelReferencedInSpatialStructure extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedElements = RelatedElements;\n this.RelatingStructure = RelatingStructure;\n this.type = 1245217292;\n }\n }\n IFC42.IfcRelReferencedInSpatialStructure = IfcRelReferencedInSpatialStructure;\n class IfcRelSequence extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType, UserDefinedSequenceType) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingProcess = RelatingProcess;\n this.RelatedProcess = RelatedProcess;\n this.TimeLag = TimeLag;\n this.SequenceType = SequenceType;\n this.UserDefinedSequenceType = UserDefinedSequenceType;\n this.type = 4122056220;\n }\n }\n IFC42.IfcRelSequence = IfcRelSequence;\n class IfcRelServicesBuildings extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingSystem = RelatingSystem;\n this.RelatedBuildings = RelatedBuildings;\n this.type = 366585022;\n }\n }\n IFC42.IfcRelServicesBuildings = IfcRelServicesBuildings;\n class IfcRelSpaceBoundary extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingSpace = RelatingSpace;\n this.RelatedBuildingElement = RelatedBuildingElement;\n this.ConnectionGeometry = ConnectionGeometry;\n this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary;\n this.InternalOrExternalBoundary = InternalOrExternalBoundary;\n this.type = 3451746338;\n }\n }\n IFC42.IfcRelSpaceBoundary = IfcRelSpaceBoundary;\n class IfcRelSpaceBoundary1stLevel extends IfcRelSpaceBoundary {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary) {\n super(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingSpace = RelatingSpace;\n this.RelatedBuildingElement = RelatedBuildingElement;\n this.ConnectionGeometry = ConnectionGeometry;\n this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary;\n this.InternalOrExternalBoundary = InternalOrExternalBoundary;\n this.ParentBoundary = ParentBoundary;\n this.type = 3523091289;\n }\n }\n IFC42.IfcRelSpaceBoundary1stLevel = IfcRelSpaceBoundary1stLevel;\n class IfcRelSpaceBoundary2ndLevel extends IfcRelSpaceBoundary1stLevel {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary, CorrespondingBoundary) {\n super(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingSpace = RelatingSpace;\n this.RelatedBuildingElement = RelatedBuildingElement;\n this.ConnectionGeometry = ConnectionGeometry;\n this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary;\n this.InternalOrExternalBoundary = InternalOrExternalBoundary;\n this.ParentBoundary = ParentBoundary;\n this.CorrespondingBoundary = CorrespondingBoundary;\n this.type = 1521410863;\n }\n }\n IFC42.IfcRelSpaceBoundary2ndLevel = IfcRelSpaceBoundary2ndLevel;\n class IfcRelVoidsElement extends IfcRelDecomposes {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingBuildingElement = RelatingBuildingElement;\n this.RelatedOpeningElement = RelatedOpeningElement;\n this.type = 1401173127;\n }\n }\n IFC42.IfcRelVoidsElement = IfcRelVoidsElement;\n class IfcReparametrisedCompositeCurveSegment extends IfcCompositeCurveSegment {\n constructor(Transition, SameSense, ParentCurve, ParamLength) {\n super(Transition, SameSense, ParentCurve);\n this.Transition = Transition;\n this.SameSense = SameSense;\n this.ParentCurve = ParentCurve;\n this.ParamLength = ParamLength;\n this.type = 816062949;\n }\n }\n IFC42.IfcReparametrisedCompositeCurveSegment = IfcReparametrisedCompositeCurveSegment;\n class IfcResource extends IfcObject {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.type = 2914609552;\n }\n }\n IFC42.IfcResource = IfcResource;\n class IfcRevolvedAreaSolid extends IfcSweptAreaSolid {\n constructor(SweptArea, Position, Axis, Angle) {\n super(SweptArea, Position);\n this.SweptArea = SweptArea;\n this.Position = Position;\n this.Axis = Axis;\n this.Angle = Angle;\n this.type = 1856042241;\n }\n }\n IFC42.IfcRevolvedAreaSolid = IfcRevolvedAreaSolid;\n class IfcRevolvedAreaSolidTapered extends IfcRevolvedAreaSolid {\n constructor(SweptArea, Position, Axis, Angle, EndSweptArea) {\n super(SweptArea, Position, Axis, Angle);\n this.SweptArea = SweptArea;\n this.Position = Position;\n this.Axis = Axis;\n this.Angle = Angle;\n this.EndSweptArea = EndSweptArea;\n this.type = 3243963512;\n }\n }\n IFC42.IfcRevolvedAreaSolidTapered = IfcRevolvedAreaSolidTapered;\n class IfcRightCircularCone extends IfcCsgPrimitive3D {\n constructor(Position, Height, BottomRadius) {\n super(Position);\n this.Position = Position;\n this.Height = Height;\n this.BottomRadius = BottomRadius;\n this.type = 4158566097;\n }\n }\n IFC42.IfcRightCircularCone = IfcRightCircularCone;\n class IfcRightCircularCylinder extends IfcCsgPrimitive3D {\n constructor(Position, Height, Radius) {\n super(Position);\n this.Position = Position;\n this.Height = Height;\n this.Radius = Radius;\n this.type = 3626867408;\n }\n }\n IFC42.IfcRightCircularCylinder = IfcRightCircularCylinder;\n class IfcSimplePropertyTemplate extends IfcPropertyTemplate {\n constructor(GlobalId, OwnerHistory, Name, Description, TemplateType, PrimaryMeasureType, SecondaryMeasureType, Enumerators, PrimaryUnit, SecondaryUnit, Expression, AccessState) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.TemplateType = TemplateType;\n this.PrimaryMeasureType = PrimaryMeasureType;\n this.SecondaryMeasureType = SecondaryMeasureType;\n this.Enumerators = Enumerators;\n this.PrimaryUnit = PrimaryUnit;\n this.SecondaryUnit = SecondaryUnit;\n this.Expression = Expression;\n this.AccessState = AccessState;\n this.type = 3663146110;\n }\n }\n IFC42.IfcSimplePropertyTemplate = IfcSimplePropertyTemplate;\n class IfcSpatialElement extends IfcProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.type = 1412071761;\n }\n }\n IFC42.IfcSpatialElement = IfcSpatialElement;\n class IfcSpatialElementType extends IfcTypeProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 710998568;\n }\n }\n IFC42.IfcSpatialElementType = IfcSpatialElementType;\n class IfcSpatialStructureElement extends IfcSpatialElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.CompositionType = CompositionType;\n this.type = 2706606064;\n }\n }\n IFC42.IfcSpatialStructureElement = IfcSpatialStructureElement;\n class IfcSpatialStructureElementType extends IfcSpatialElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 3893378262;\n }\n }\n IFC42.IfcSpatialStructureElementType = IfcSpatialStructureElementType;\n class IfcSpatialZone extends IfcSpatialElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.PredefinedType = PredefinedType;\n this.type = 463610769;\n }\n }\n IFC42.IfcSpatialZone = IfcSpatialZone;\n class IfcSpatialZoneType extends IfcSpatialElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.LongName = LongName;\n this.type = 2481509218;\n }\n }\n IFC42.IfcSpatialZoneType = IfcSpatialZoneType;\n class IfcSphere extends IfcCsgPrimitive3D {\n constructor(Position, Radius) {\n super(Position);\n this.Position = Position;\n this.Radius = Radius;\n this.type = 451544542;\n }\n }\n IFC42.IfcSphere = IfcSphere;\n class IfcSphericalSurface extends IfcElementarySurface {\n constructor(Position, Radius) {\n super(Position);\n this.Position = Position;\n this.Radius = Radius;\n this.type = 4015995234;\n }\n }\n IFC42.IfcSphericalSurface = IfcSphericalSurface;\n class IfcStructuralActivity extends IfcProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.type = 3544373492;\n }\n }\n IFC42.IfcStructuralActivity = IfcStructuralActivity;\n class IfcStructuralItem extends IfcProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.type = 3136571912;\n }\n }\n IFC42.IfcStructuralItem = IfcStructuralItem;\n class IfcStructuralMember extends IfcStructuralItem {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.type = 530289379;\n }\n }\n IFC42.IfcStructuralMember = IfcStructuralMember;\n class IfcStructuralReaction extends IfcStructuralActivity {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.type = 3689010777;\n }\n }\n IFC42.IfcStructuralReaction = IfcStructuralReaction;\n class IfcStructuralSurfaceMember extends IfcStructuralMember {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.PredefinedType = PredefinedType;\n this.Thickness = Thickness;\n this.type = 3979015343;\n }\n }\n IFC42.IfcStructuralSurfaceMember = IfcStructuralSurfaceMember;\n class IfcStructuralSurfaceMemberVarying extends IfcStructuralSurfaceMember {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.PredefinedType = PredefinedType;\n this.Thickness = Thickness;\n this.type = 2218152070;\n }\n }\n IFC42.IfcStructuralSurfaceMemberVarying = IfcStructuralSurfaceMemberVarying;\n class IfcStructuralSurfaceReaction extends IfcStructuralReaction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.PredefinedType = PredefinedType;\n this.type = 603775116;\n }\n }\n IFC42.IfcStructuralSurfaceReaction = IfcStructuralSurfaceReaction;\n class IfcSubContractResourceType extends IfcConstructionResourceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.ResourceType = ResourceType;\n this.BaseCosts = BaseCosts;\n this.BaseQuantity = BaseQuantity;\n this.PredefinedType = PredefinedType;\n this.type = 4095615324;\n }\n }\n IFC42.IfcSubContractResourceType = IfcSubContractResourceType;\n class IfcSurfaceCurve extends IfcCurve {\n constructor(Curve3D, AssociatedGeometry, MasterRepresentation) {\n super();\n this.Curve3D = Curve3D;\n this.AssociatedGeometry = AssociatedGeometry;\n this.MasterRepresentation = MasterRepresentation;\n this.type = 699246055;\n }\n }\n IFC42.IfcSurfaceCurve = IfcSurfaceCurve;\n class IfcSurfaceCurveSweptAreaSolid extends IfcSweptAreaSolid {\n constructor(SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface) {\n super(SweptArea, Position);\n this.SweptArea = SweptArea;\n this.Position = Position;\n this.Directrix = Directrix;\n this.StartParam = StartParam;\n this.EndParam = EndParam;\n this.ReferenceSurface = ReferenceSurface;\n this.type = 2028607225;\n }\n }\n IFC42.IfcSurfaceCurveSweptAreaSolid = IfcSurfaceCurveSweptAreaSolid;\n class IfcSurfaceOfLinearExtrusion extends IfcSweptSurface {\n constructor(SweptCurve, Position, ExtrudedDirection, Depth) {\n super(SweptCurve, Position);\n this.SweptCurve = SweptCurve;\n this.Position = Position;\n this.ExtrudedDirection = ExtrudedDirection;\n this.Depth = Depth;\n this.type = 2809605785;\n }\n }\n IFC42.IfcSurfaceOfLinearExtrusion = IfcSurfaceOfLinearExtrusion;\n class IfcSurfaceOfRevolution extends IfcSweptSurface {\n constructor(SweptCurve, Position, AxisPosition) {\n super(SweptCurve, Position);\n this.SweptCurve = SweptCurve;\n this.Position = Position;\n this.AxisPosition = AxisPosition;\n this.type = 4124788165;\n }\n }\n IFC42.IfcSurfaceOfRevolution = IfcSurfaceOfRevolution;\n class IfcSystemFurnitureElementType extends IfcFurnishingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1580310250;\n }\n }\n IFC42.IfcSystemFurnitureElementType = IfcSystemFurnitureElementType;\n class IfcTask extends IfcProcess {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Status, WorkMethod, IsMilestone, Priority, TaskTime, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.Status = Status;\n this.WorkMethod = WorkMethod;\n this.IsMilestone = IsMilestone;\n this.Priority = Priority;\n this.TaskTime = TaskTime;\n this.PredefinedType = PredefinedType;\n this.type = 3473067441;\n }\n }\n IFC42.IfcTask = IfcTask;\n class IfcTaskType extends IfcTypeProcess {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, WorkMethod) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.ProcessType = ProcessType;\n this.PredefinedType = PredefinedType;\n this.WorkMethod = WorkMethod;\n this.type = 3206491090;\n }\n }\n IFC42.IfcTaskType = IfcTaskType;\n class IfcTessellatedFaceSet extends IfcTessellatedItem {\n constructor(Coordinates) {\n super();\n this.Coordinates = Coordinates;\n this.type = 2387106220;\n }\n }\n IFC42.IfcTessellatedFaceSet = IfcTessellatedFaceSet;\n class IfcToroidalSurface extends IfcElementarySurface {\n constructor(Position, MajorRadius, MinorRadius) {\n super(Position);\n this.Position = Position;\n this.MajorRadius = MajorRadius;\n this.MinorRadius = MinorRadius;\n this.type = 1935646853;\n }\n }\n IFC42.IfcToroidalSurface = IfcToroidalSurface;\n class IfcTransportElementType extends IfcElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2097647324;\n }\n }\n IFC42.IfcTransportElementType = IfcTransportElementType;\n class IfcTriangulatedFaceSet extends IfcTessellatedFaceSet {\n constructor(Coordinates, Normals, Closed, CoordIndex, PnIndex) {\n super(Coordinates);\n this.Coordinates = Coordinates;\n this.Normals = Normals;\n this.Closed = Closed;\n this.CoordIndex = CoordIndex;\n this.PnIndex = PnIndex;\n this.type = 2916149573;\n }\n }\n IFC42.IfcTriangulatedFaceSet = IfcTriangulatedFaceSet;\n class IfcWindowLiningProperties extends IfcPreDefinedPropertySet {\n constructor(GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle, LiningOffset, LiningToPanelOffsetX, LiningToPanelOffsetY) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.LiningDepth = LiningDepth;\n this.LiningThickness = LiningThickness;\n this.TransomThickness = TransomThickness;\n this.MullionThickness = MullionThickness;\n this.FirstTransomOffset = FirstTransomOffset;\n this.SecondTransomOffset = SecondTransomOffset;\n this.FirstMullionOffset = FirstMullionOffset;\n this.SecondMullionOffset = SecondMullionOffset;\n this.ShapeAspectStyle = ShapeAspectStyle;\n this.LiningOffset = LiningOffset;\n this.LiningToPanelOffsetX = LiningToPanelOffsetX;\n this.LiningToPanelOffsetY = LiningToPanelOffsetY;\n this.type = 336235671;\n }\n }\n IFC42.IfcWindowLiningProperties = IfcWindowLiningProperties;\n class IfcWindowPanelProperties extends IfcPreDefinedPropertySet {\n constructor(GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.OperationType = OperationType;\n this.PanelPosition = PanelPosition;\n this.FrameDepth = FrameDepth;\n this.FrameThickness = FrameThickness;\n this.ShapeAspectStyle = ShapeAspectStyle;\n this.type = 512836454;\n }\n }\n IFC42.IfcWindowPanelProperties = IfcWindowPanelProperties;\n class IfcActor extends IfcObject {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.TheActor = TheActor;\n this.type = 2296667514;\n }\n }\n IFC42.IfcActor = IfcActor;\n class IfcAdvancedBrep extends IfcManifoldSolidBrep {\n constructor(Outer) {\n super(Outer);\n this.Outer = Outer;\n this.type = 1635779807;\n }\n }\n IFC42.IfcAdvancedBrep = IfcAdvancedBrep;\n class IfcAdvancedBrepWithVoids extends IfcAdvancedBrep {\n constructor(Outer, Voids) {\n super(Outer);\n this.Outer = Outer;\n this.Voids = Voids;\n this.type = 2603310189;\n }\n }\n IFC42.IfcAdvancedBrepWithVoids = IfcAdvancedBrepWithVoids;\n class IfcAnnotation extends IfcProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.type = 1674181508;\n }\n }\n IFC42.IfcAnnotation = IfcAnnotation;\n class IfcBSplineSurface extends IfcBoundedSurface {\n constructor(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect) {\n super();\n this.UDegree = UDegree;\n this.VDegree = VDegree;\n this.ControlPointsList = ControlPointsList;\n this.SurfaceForm = SurfaceForm;\n this.UClosed = UClosed;\n this.VClosed = VClosed;\n this.SelfIntersect = SelfIntersect;\n this.type = 2887950389;\n }\n }\n IFC42.IfcBSplineSurface = IfcBSplineSurface;\n class IfcBSplineSurfaceWithKnots extends IfcBSplineSurface {\n constructor(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec) {\n super(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect);\n this.UDegree = UDegree;\n this.VDegree = VDegree;\n this.ControlPointsList = ControlPointsList;\n this.SurfaceForm = SurfaceForm;\n this.UClosed = UClosed;\n this.VClosed = VClosed;\n this.SelfIntersect = SelfIntersect;\n this.UMultiplicities = UMultiplicities;\n this.VMultiplicities = VMultiplicities;\n this.UKnots = UKnots;\n this.VKnots = VKnots;\n this.KnotSpec = KnotSpec;\n this.type = 167062518;\n }\n }\n IFC42.IfcBSplineSurfaceWithKnots = IfcBSplineSurfaceWithKnots;\n class IfcBlock extends IfcCsgPrimitive3D {\n constructor(Position, XLength, YLength, ZLength) {\n super(Position);\n this.Position = Position;\n this.XLength = XLength;\n this.YLength = YLength;\n this.ZLength = ZLength;\n this.type = 1334484129;\n }\n }\n IFC42.IfcBlock = IfcBlock;\n class IfcBooleanClippingResult extends IfcBooleanResult {\n constructor(Operator, FirstOperand, SecondOperand) {\n super(Operator, FirstOperand, SecondOperand);\n this.Operator = Operator;\n this.FirstOperand = FirstOperand;\n this.SecondOperand = SecondOperand;\n this.type = 3649129432;\n }\n }\n IFC42.IfcBooleanClippingResult = IfcBooleanClippingResult;\n class IfcBoundedCurve extends IfcCurve {\n constructor() {\n super();\n this.type = 1260505505;\n }\n }\n IFC42.IfcBoundedCurve = IfcBoundedCurve;\n class IfcBuilding extends IfcSpatialStructureElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.CompositionType = CompositionType;\n this.ElevationOfRefHeight = ElevationOfRefHeight;\n this.ElevationOfTerrain = ElevationOfTerrain;\n this.BuildingAddress = BuildingAddress;\n this.type = 4031249490;\n }\n }\n IFC42.IfcBuilding = IfcBuilding;\n class IfcBuildingElementType extends IfcElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 1950629157;\n }\n }\n IFC42.IfcBuildingElementType = IfcBuildingElementType;\n class IfcBuildingStorey extends IfcSpatialStructureElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.CompositionType = CompositionType;\n this.Elevation = Elevation;\n this.type = 3124254112;\n }\n }\n IFC42.IfcBuildingStorey = IfcBuildingStorey;\n class IfcChimneyType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2197970202;\n }\n }\n IFC42.IfcChimneyType = IfcChimneyType;\n class IfcCircleHollowProfileDef extends IfcCircleProfileDef {\n constructor(ProfileType, ProfileName, Position, Radius, WallThickness) {\n super(ProfileType, ProfileName, Position, Radius);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.Radius = Radius;\n this.WallThickness = WallThickness;\n this.type = 2937912522;\n }\n }\n IFC42.IfcCircleHollowProfileDef = IfcCircleHollowProfileDef;\n class IfcCivilElementType extends IfcElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 3893394355;\n }\n }\n IFC42.IfcCivilElementType = IfcCivilElementType;\n class IfcColumnType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 300633059;\n }\n }\n IFC42.IfcColumnType = IfcColumnType;\n class IfcComplexPropertyTemplate extends IfcPropertyTemplate {\n constructor(GlobalId, OwnerHistory, Name, Description, UsageName, TemplateType, HasPropertyTemplates) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.UsageName = UsageName;\n this.TemplateType = TemplateType;\n this.HasPropertyTemplates = HasPropertyTemplates;\n this.type = 3875453745;\n }\n }\n IFC42.IfcComplexPropertyTemplate = IfcComplexPropertyTemplate;\n class IfcCompositeCurve extends IfcBoundedCurve {\n constructor(Segments, SelfIntersect) {\n super();\n this.Segments = Segments;\n this.SelfIntersect = SelfIntersect;\n this.type = 3732776249;\n }\n }\n IFC42.IfcCompositeCurve = IfcCompositeCurve;\n class IfcCompositeCurveOnSurface extends IfcCompositeCurve {\n constructor(Segments, SelfIntersect) {\n super(Segments, SelfIntersect);\n this.Segments = Segments;\n this.SelfIntersect = SelfIntersect;\n this.type = 15328376;\n }\n }\n IFC42.IfcCompositeCurveOnSurface = IfcCompositeCurveOnSurface;\n class IfcConic extends IfcCurve {\n constructor(Position) {\n super();\n this.Position = Position;\n this.type = 2510884976;\n }\n }\n IFC42.IfcConic = IfcConic;\n class IfcConstructionEquipmentResourceType extends IfcConstructionResourceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.ResourceType = ResourceType;\n this.BaseCosts = BaseCosts;\n this.BaseQuantity = BaseQuantity;\n this.PredefinedType = PredefinedType;\n this.type = 2185764099;\n }\n }\n IFC42.IfcConstructionEquipmentResourceType = IfcConstructionEquipmentResourceType;\n class IfcConstructionMaterialResourceType extends IfcConstructionResourceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.ResourceType = ResourceType;\n this.BaseCosts = BaseCosts;\n this.BaseQuantity = BaseQuantity;\n this.PredefinedType = PredefinedType;\n this.type = 4105962743;\n }\n }\n IFC42.IfcConstructionMaterialResourceType = IfcConstructionMaterialResourceType;\n class IfcConstructionProductResourceType extends IfcConstructionResourceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.ResourceType = ResourceType;\n this.BaseCosts = BaseCosts;\n this.BaseQuantity = BaseQuantity;\n this.PredefinedType = PredefinedType;\n this.type = 1525564444;\n }\n }\n IFC42.IfcConstructionProductResourceType = IfcConstructionProductResourceType;\n class IfcConstructionResource extends IfcResource {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.Usage = Usage;\n this.BaseCosts = BaseCosts;\n this.BaseQuantity = BaseQuantity;\n this.type = 2559216714;\n }\n }\n IFC42.IfcConstructionResource = IfcConstructionResource;\n class IfcControl extends IfcObject {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.type = 3293443760;\n }\n }\n IFC42.IfcControl = IfcControl;\n class IfcCostItem extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, CostValues, CostQuantities) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.PredefinedType = PredefinedType;\n this.CostValues = CostValues;\n this.CostQuantities = CostQuantities;\n this.type = 3895139033;\n }\n }\n IFC42.IfcCostItem = IfcCostItem;\n class IfcCostSchedule extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, SubmittedOn, UpdateDate) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.PredefinedType = PredefinedType;\n this.Status = Status;\n this.SubmittedOn = SubmittedOn;\n this.UpdateDate = UpdateDate;\n this.type = 1419761937;\n }\n }\n IFC42.IfcCostSchedule = IfcCostSchedule;\n class IfcCoveringType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1916426348;\n }\n }\n IFC42.IfcCoveringType = IfcCoveringType;\n class IfcCrewResource extends IfcConstructionResource {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.Usage = Usage;\n this.BaseCosts = BaseCosts;\n this.BaseQuantity = BaseQuantity;\n this.PredefinedType = PredefinedType;\n this.type = 3295246426;\n }\n }\n IFC42.IfcCrewResource = IfcCrewResource;\n class IfcCurtainWallType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1457835157;\n }\n }\n IFC42.IfcCurtainWallType = IfcCurtainWallType;\n class IfcCylindricalSurface extends IfcElementarySurface {\n constructor(Position, Radius) {\n super(Position);\n this.Position = Position;\n this.Radius = Radius;\n this.type = 1213902940;\n }\n }\n IFC42.IfcCylindricalSurface = IfcCylindricalSurface;\n class IfcDistributionElementType extends IfcElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 3256556792;\n }\n }\n IFC42.IfcDistributionElementType = IfcDistributionElementType;\n class IfcDistributionFlowElementType extends IfcDistributionElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 3849074793;\n }\n }\n IFC42.IfcDistributionFlowElementType = IfcDistributionFlowElementType;\n class IfcDoorLiningProperties extends IfcPreDefinedPropertySet {\n constructor(GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle, LiningToPanelOffsetX, LiningToPanelOffsetY) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.LiningDepth = LiningDepth;\n this.LiningThickness = LiningThickness;\n this.ThresholdDepth = ThresholdDepth;\n this.ThresholdThickness = ThresholdThickness;\n this.TransomThickness = TransomThickness;\n this.TransomOffset = TransomOffset;\n this.LiningOffset = LiningOffset;\n this.ThresholdOffset = ThresholdOffset;\n this.CasingThickness = CasingThickness;\n this.CasingDepth = CasingDepth;\n this.ShapeAspectStyle = ShapeAspectStyle;\n this.LiningToPanelOffsetX = LiningToPanelOffsetX;\n this.LiningToPanelOffsetY = LiningToPanelOffsetY;\n this.type = 2963535650;\n }\n }\n IFC42.IfcDoorLiningProperties = IfcDoorLiningProperties;\n class IfcDoorPanelProperties extends IfcPreDefinedPropertySet {\n constructor(GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.PanelDepth = PanelDepth;\n this.PanelOperation = PanelOperation;\n this.PanelWidth = PanelWidth;\n this.PanelPosition = PanelPosition;\n this.ShapeAspectStyle = ShapeAspectStyle;\n this.type = 1714330368;\n }\n }\n IFC42.IfcDoorPanelProperties = IfcDoorPanelProperties;\n class IfcDoorType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, OperationType, ParameterTakesPrecedence, UserDefinedOperationType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.OperationType = OperationType;\n this.ParameterTakesPrecedence = ParameterTakesPrecedence;\n this.UserDefinedOperationType = UserDefinedOperationType;\n this.type = 2323601079;\n }\n }\n IFC42.IfcDoorType = IfcDoorType;\n class IfcDraughtingPreDefinedColour extends IfcPreDefinedColour {\n constructor(Name) {\n super(Name);\n this.Name = Name;\n this.type = 445594917;\n }\n }\n IFC42.IfcDraughtingPreDefinedColour = IfcDraughtingPreDefinedColour;\n class IfcDraughtingPreDefinedCurveFont extends IfcPreDefinedCurveFont {\n constructor(Name) {\n super(Name);\n this.Name = Name;\n this.type = 4006246654;\n }\n }\n IFC42.IfcDraughtingPreDefinedCurveFont = IfcDraughtingPreDefinedCurveFont;\n class IfcElement extends IfcProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 1758889154;\n }\n }\n IFC42.IfcElement = IfcElement;\n class IfcElementAssembly extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.AssemblyPlace = AssemblyPlace;\n this.PredefinedType = PredefinedType;\n this.type = 4123344466;\n }\n }\n IFC42.IfcElementAssembly = IfcElementAssembly;\n class IfcElementAssemblyType extends IfcElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2397081782;\n }\n }\n IFC42.IfcElementAssemblyType = IfcElementAssemblyType;\n class IfcElementComponent extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 1623761950;\n }\n }\n IFC42.IfcElementComponent = IfcElementComponent;\n class IfcElementComponentType extends IfcElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 2590856083;\n }\n }\n IFC42.IfcElementComponentType = IfcElementComponentType;\n class IfcEllipse extends IfcConic {\n constructor(Position, SemiAxis1, SemiAxis2) {\n super(Position);\n this.Position = Position;\n this.SemiAxis1 = SemiAxis1;\n this.SemiAxis2 = SemiAxis2;\n this.type = 1704287377;\n }\n }\n IFC42.IfcEllipse = IfcEllipse;\n class IfcEnergyConversionDeviceType extends IfcDistributionFlowElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 2107101300;\n }\n }\n IFC42.IfcEnergyConversionDeviceType = IfcEnergyConversionDeviceType;\n class IfcEngineType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 132023988;\n }\n }\n IFC42.IfcEngineType = IfcEngineType;\n class IfcEvaporativeCoolerType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3174744832;\n }\n }\n IFC42.IfcEvaporativeCoolerType = IfcEvaporativeCoolerType;\n class IfcEvaporatorType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3390157468;\n }\n }\n IFC42.IfcEvaporatorType = IfcEvaporatorType;\n class IfcEvent extends IfcProcess {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType, EventTriggerType, UserDefinedEventTriggerType, EventOccurenceTime) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.PredefinedType = PredefinedType;\n this.EventTriggerType = EventTriggerType;\n this.UserDefinedEventTriggerType = UserDefinedEventTriggerType;\n this.EventOccurenceTime = EventOccurenceTime;\n this.type = 4148101412;\n }\n }\n IFC42.IfcEvent = IfcEvent;\n class IfcExternalSpatialStructureElement extends IfcSpatialElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.type = 2853485674;\n }\n }\n IFC42.IfcExternalSpatialStructureElement = IfcExternalSpatialStructureElement;\n class IfcFacetedBrep extends IfcManifoldSolidBrep {\n constructor(Outer) {\n super(Outer);\n this.Outer = Outer;\n this.type = 807026263;\n }\n }\n IFC42.IfcFacetedBrep = IfcFacetedBrep;\n class IfcFacetedBrepWithVoids extends IfcFacetedBrep {\n constructor(Outer, Voids) {\n super(Outer);\n this.Outer = Outer;\n this.Voids = Voids;\n this.type = 3737207727;\n }\n }\n IFC42.IfcFacetedBrepWithVoids = IfcFacetedBrepWithVoids;\n class IfcFastener extends IfcElementComponent {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 647756555;\n }\n }\n IFC42.IfcFastener = IfcFastener;\n class IfcFastenerType extends IfcElementComponentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2489546625;\n }\n }\n IFC42.IfcFastenerType = IfcFastenerType;\n class IfcFeatureElement extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 2827207264;\n }\n }\n IFC42.IfcFeatureElement = IfcFeatureElement;\n class IfcFeatureElementAddition extends IfcFeatureElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 2143335405;\n }\n }\n IFC42.IfcFeatureElementAddition = IfcFeatureElementAddition;\n class IfcFeatureElementSubtraction extends IfcFeatureElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 1287392070;\n }\n }\n IFC42.IfcFeatureElementSubtraction = IfcFeatureElementSubtraction;\n class IfcFlowControllerType extends IfcDistributionFlowElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 3907093117;\n }\n }\n IFC42.IfcFlowControllerType = IfcFlowControllerType;\n class IfcFlowFittingType extends IfcDistributionFlowElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 3198132628;\n }\n }\n IFC42.IfcFlowFittingType = IfcFlowFittingType;\n class IfcFlowMeterType extends IfcFlowControllerType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3815607619;\n }\n }\n IFC42.IfcFlowMeterType = IfcFlowMeterType;\n class IfcFlowMovingDeviceType extends IfcDistributionFlowElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 1482959167;\n }\n }\n IFC42.IfcFlowMovingDeviceType = IfcFlowMovingDeviceType;\n class IfcFlowSegmentType extends IfcDistributionFlowElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 1834744321;\n }\n }\n IFC42.IfcFlowSegmentType = IfcFlowSegmentType;\n class IfcFlowStorageDeviceType extends IfcDistributionFlowElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 1339347760;\n }\n }\n IFC42.IfcFlowStorageDeviceType = IfcFlowStorageDeviceType;\n class IfcFlowTerminalType extends IfcDistributionFlowElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 2297155007;\n }\n }\n IFC42.IfcFlowTerminalType = IfcFlowTerminalType;\n class IfcFlowTreatmentDeviceType extends IfcDistributionFlowElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 3009222698;\n }\n }\n IFC42.IfcFlowTreatmentDeviceType = IfcFlowTreatmentDeviceType;\n class IfcFootingType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1893162501;\n }\n }\n IFC42.IfcFootingType = IfcFootingType;\n class IfcFurnishingElement extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 263784265;\n }\n }\n IFC42.IfcFurnishingElement = IfcFurnishingElement;\n class IfcFurniture extends IfcFurnishingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1509553395;\n }\n }\n IFC42.IfcFurniture = IfcFurniture;\n class IfcGeographicElement extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3493046030;\n }\n }\n IFC42.IfcGeographicElement = IfcGeographicElement;\n class IfcGrid extends IfcProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.UAxes = UAxes;\n this.VAxes = VAxes;\n this.WAxes = WAxes;\n this.PredefinedType = PredefinedType;\n this.type = 3009204131;\n }\n }\n IFC42.IfcGrid = IfcGrid;\n class IfcGroup extends IfcObject {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.type = 2706460486;\n }\n }\n IFC42.IfcGroup = IfcGroup;\n class IfcHeatExchangerType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1251058090;\n }\n }\n IFC42.IfcHeatExchangerType = IfcHeatExchangerType;\n class IfcHumidifierType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1806887404;\n }\n }\n IFC42.IfcHumidifierType = IfcHumidifierType;\n class IfcIndexedPolyCurve extends IfcBoundedCurve {\n constructor(Points, Segments, SelfIntersect) {\n super();\n this.Points = Points;\n this.Segments = Segments;\n this.SelfIntersect = SelfIntersect;\n this.type = 2571569899;\n }\n }\n IFC42.IfcIndexedPolyCurve = IfcIndexedPolyCurve;\n class IfcInterceptorType extends IfcFlowTreatmentDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3946677679;\n }\n }\n IFC42.IfcInterceptorType = IfcInterceptorType;\n class IfcIntersectionCurve extends IfcSurfaceCurve {\n constructor(Curve3D, AssociatedGeometry, MasterRepresentation) {\n super(Curve3D, AssociatedGeometry, MasterRepresentation);\n this.Curve3D = Curve3D;\n this.AssociatedGeometry = AssociatedGeometry;\n this.MasterRepresentation = MasterRepresentation;\n this.type = 3113134337;\n }\n }\n IFC42.IfcIntersectionCurve = IfcIntersectionCurve;\n class IfcInventory extends IfcGroup {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.PredefinedType = PredefinedType;\n this.Jurisdiction = Jurisdiction;\n this.ResponsiblePersons = ResponsiblePersons;\n this.LastUpdateDate = LastUpdateDate;\n this.CurrentValue = CurrentValue;\n this.OriginalValue = OriginalValue;\n this.type = 2391368822;\n }\n }\n IFC42.IfcInventory = IfcInventory;\n class IfcJunctionBoxType extends IfcFlowFittingType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 4288270099;\n }\n }\n IFC42.IfcJunctionBoxType = IfcJunctionBoxType;\n class IfcLaborResource extends IfcConstructionResource {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.Usage = Usage;\n this.BaseCosts = BaseCosts;\n this.BaseQuantity = BaseQuantity;\n this.PredefinedType = PredefinedType;\n this.type = 3827777499;\n }\n }\n IFC42.IfcLaborResource = IfcLaborResource;\n class IfcLampType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1051575348;\n }\n }\n IFC42.IfcLampType = IfcLampType;\n class IfcLightFixtureType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1161773419;\n }\n }\n IFC42.IfcLightFixtureType = IfcLightFixtureType;\n class IfcMechanicalFastener extends IfcElementComponent {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.NominalDiameter = NominalDiameter;\n this.NominalLength = NominalLength;\n this.PredefinedType = PredefinedType;\n this.type = 377706215;\n }\n }\n IFC42.IfcMechanicalFastener = IfcMechanicalFastener;\n class IfcMechanicalFastenerType extends IfcElementComponentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, NominalLength) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.NominalDiameter = NominalDiameter;\n this.NominalLength = NominalLength;\n this.type = 2108223431;\n }\n }\n IFC42.IfcMechanicalFastenerType = IfcMechanicalFastenerType;\n class IfcMedicalDeviceType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1114901282;\n }\n }\n IFC42.IfcMedicalDeviceType = IfcMedicalDeviceType;\n class IfcMemberType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3181161470;\n }\n }\n IFC42.IfcMemberType = IfcMemberType;\n class IfcMotorConnectionType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 977012517;\n }\n }\n IFC42.IfcMotorConnectionType = IfcMotorConnectionType;\n class IfcOccupant extends IfcActor {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.TheActor = TheActor;\n this.PredefinedType = PredefinedType;\n this.type = 4143007308;\n }\n }\n IFC42.IfcOccupant = IfcOccupant;\n class IfcOpeningElement extends IfcFeatureElementSubtraction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3588315303;\n }\n }\n IFC42.IfcOpeningElement = IfcOpeningElement;\n class IfcOpeningStandardCase extends IfcOpeningElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3079942009;\n }\n }\n IFC42.IfcOpeningStandardCase = IfcOpeningStandardCase;\n class IfcOutletType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2837617999;\n }\n }\n IFC42.IfcOutletType = IfcOutletType;\n class IfcPerformanceHistory extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LifeCyclePhase, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.LifeCyclePhase = LifeCyclePhase;\n this.PredefinedType = PredefinedType;\n this.type = 2382730787;\n }\n }\n IFC42.IfcPerformanceHistory = IfcPerformanceHistory;\n class IfcPermeableCoveringProperties extends IfcPreDefinedPropertySet {\n constructor(GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.OperationType = OperationType;\n this.PanelPosition = PanelPosition;\n this.FrameDepth = FrameDepth;\n this.FrameThickness = FrameThickness;\n this.ShapeAspectStyle = ShapeAspectStyle;\n this.type = 3566463478;\n }\n }\n IFC42.IfcPermeableCoveringProperties = IfcPermeableCoveringProperties;\n class IfcPermit extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.PredefinedType = PredefinedType;\n this.Status = Status;\n this.LongDescription = LongDescription;\n this.type = 3327091369;\n }\n }\n IFC42.IfcPermit = IfcPermit;\n class IfcPileType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1158309216;\n }\n }\n IFC42.IfcPileType = IfcPileType;\n class IfcPipeFittingType extends IfcFlowFittingType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 804291784;\n }\n }\n IFC42.IfcPipeFittingType = IfcPipeFittingType;\n class IfcPipeSegmentType extends IfcFlowSegmentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 4231323485;\n }\n }\n IFC42.IfcPipeSegmentType = IfcPipeSegmentType;\n class IfcPlateType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 4017108033;\n }\n }\n IFC42.IfcPlateType = IfcPlateType;\n class IfcPolygonalFaceSet extends IfcTessellatedFaceSet {\n constructor(Coordinates, Closed, Faces, PnIndex) {\n super(Coordinates);\n this.Coordinates = Coordinates;\n this.Closed = Closed;\n this.Faces = Faces;\n this.PnIndex = PnIndex;\n this.type = 2839578677;\n }\n }\n IFC42.IfcPolygonalFaceSet = IfcPolygonalFaceSet;\n class IfcPolyline extends IfcBoundedCurve {\n constructor(Points) {\n super();\n this.Points = Points;\n this.type = 3724593414;\n }\n }\n IFC42.IfcPolyline = IfcPolyline;\n class IfcPort extends IfcProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.type = 3740093272;\n }\n }\n IFC42.IfcPort = IfcPort;\n class IfcProcedure extends IfcProcess {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.PredefinedType = PredefinedType;\n this.type = 2744685151;\n }\n }\n IFC42.IfcProcedure = IfcProcedure;\n class IfcProjectOrder extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.PredefinedType = PredefinedType;\n this.Status = Status;\n this.LongDescription = LongDescription;\n this.type = 2904328755;\n }\n }\n IFC42.IfcProjectOrder = IfcProjectOrder;\n class IfcProjectionElement extends IfcFeatureElementAddition {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3651124850;\n }\n }\n IFC42.IfcProjectionElement = IfcProjectionElement;\n class IfcProtectiveDeviceType extends IfcFlowControllerType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1842657554;\n }\n }\n IFC42.IfcProtectiveDeviceType = IfcProtectiveDeviceType;\n class IfcPumpType extends IfcFlowMovingDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2250791053;\n }\n }\n IFC42.IfcPumpType = IfcPumpType;\n class IfcRailingType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2893384427;\n }\n }\n IFC42.IfcRailingType = IfcRailingType;\n class IfcRampFlightType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2324767716;\n }\n }\n IFC42.IfcRampFlightType = IfcRampFlightType;\n class IfcRampType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1469900589;\n }\n }\n IFC42.IfcRampType = IfcRampType;\n class IfcRationalBSplineSurfaceWithKnots extends IfcBSplineSurfaceWithKnots {\n constructor(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec, WeightsData) {\n super(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec);\n this.UDegree = UDegree;\n this.VDegree = VDegree;\n this.ControlPointsList = ControlPointsList;\n this.SurfaceForm = SurfaceForm;\n this.UClosed = UClosed;\n this.VClosed = VClosed;\n this.SelfIntersect = SelfIntersect;\n this.UMultiplicities = UMultiplicities;\n this.VMultiplicities = VMultiplicities;\n this.UKnots = UKnots;\n this.VKnots = VKnots;\n this.KnotSpec = KnotSpec;\n this.WeightsData = WeightsData;\n this.type = 683857671;\n }\n }\n IFC42.IfcRationalBSplineSurfaceWithKnots = IfcRationalBSplineSurfaceWithKnots;\n class IfcReinforcingElement extends IfcElementComponent {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.SteelGrade = SteelGrade;\n this.type = 3027567501;\n }\n }\n IFC42.IfcReinforcingElement = IfcReinforcingElement;\n class IfcReinforcingElementType extends IfcElementComponentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 964333572;\n }\n }\n IFC42.IfcReinforcingElementType = IfcReinforcingElementType;\n class IfcReinforcingMesh extends IfcReinforcingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.SteelGrade = SteelGrade;\n this.MeshLength = MeshLength;\n this.MeshWidth = MeshWidth;\n this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter;\n this.TransverseBarNominalDiameter = TransverseBarNominalDiameter;\n this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea;\n this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea;\n this.LongitudinalBarSpacing = LongitudinalBarSpacing;\n this.TransverseBarSpacing = TransverseBarSpacing;\n this.PredefinedType = PredefinedType;\n this.type = 2320036040;\n }\n }\n IFC42.IfcReinforcingMesh = IfcReinforcingMesh;\n class IfcReinforcingMeshType extends IfcReinforcingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, BendingShapeCode, BendingParameters) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.MeshLength = MeshLength;\n this.MeshWidth = MeshWidth;\n this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter;\n this.TransverseBarNominalDiameter = TransverseBarNominalDiameter;\n this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea;\n this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea;\n this.LongitudinalBarSpacing = LongitudinalBarSpacing;\n this.TransverseBarSpacing = TransverseBarSpacing;\n this.BendingShapeCode = BendingShapeCode;\n this.BendingParameters = BendingParameters;\n this.type = 2310774935;\n }\n }\n IFC42.IfcReinforcingMeshType = IfcReinforcingMeshType;\n class IfcRelAggregates extends IfcRelDecomposes {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingObject = RelatingObject;\n this.RelatedObjects = RelatedObjects;\n this.type = 160246688;\n }\n }\n IFC42.IfcRelAggregates = IfcRelAggregates;\n class IfcRoofType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2781568857;\n }\n }\n IFC42.IfcRoofType = IfcRoofType;\n class IfcSanitaryTerminalType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1768891740;\n }\n }\n IFC42.IfcSanitaryTerminalType = IfcSanitaryTerminalType;\n class IfcSeamCurve extends IfcSurfaceCurve {\n constructor(Curve3D, AssociatedGeometry, MasterRepresentation) {\n super(Curve3D, AssociatedGeometry, MasterRepresentation);\n this.Curve3D = Curve3D;\n this.AssociatedGeometry = AssociatedGeometry;\n this.MasterRepresentation = MasterRepresentation;\n this.type = 2157484638;\n }\n }\n IFC42.IfcSeamCurve = IfcSeamCurve;\n class IfcShadingDeviceType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 4074543187;\n }\n }\n IFC42.IfcShadingDeviceType = IfcShadingDeviceType;\n class IfcSite extends IfcSpatialStructureElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.CompositionType = CompositionType;\n this.RefLatitude = RefLatitude;\n this.RefLongitude = RefLongitude;\n this.RefElevation = RefElevation;\n this.LandTitleNumber = LandTitleNumber;\n this.SiteAddress = SiteAddress;\n this.type = 4097777520;\n }\n }\n IFC42.IfcSite = IfcSite;\n class IfcSlabType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2533589738;\n }\n }\n IFC42.IfcSlabType = IfcSlabType;\n class IfcSolarDeviceType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1072016465;\n }\n }\n IFC42.IfcSolarDeviceType = IfcSolarDeviceType;\n class IfcSpace extends IfcSpatialStructureElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType, ElevationWithFlooring) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.CompositionType = CompositionType;\n this.PredefinedType = PredefinedType;\n this.ElevationWithFlooring = ElevationWithFlooring;\n this.type = 3856911033;\n }\n }\n IFC42.IfcSpace = IfcSpace;\n class IfcSpaceHeaterType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1305183839;\n }\n }\n IFC42.IfcSpaceHeaterType = IfcSpaceHeaterType;\n class IfcSpaceType extends IfcSpatialStructureElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.LongName = LongName;\n this.type = 3812236995;\n }\n }\n IFC42.IfcSpaceType = IfcSpaceType;\n class IfcStackTerminalType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3112655638;\n }\n }\n IFC42.IfcStackTerminalType = IfcStackTerminalType;\n class IfcStairFlightType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1039846685;\n }\n }\n IFC42.IfcStairFlightType = IfcStairFlightType;\n class IfcStairType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 338393293;\n }\n }\n IFC42.IfcStairType = IfcStairType;\n class IfcStructuralAction extends IfcStructuralActivity {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.DestabilizingLoad = DestabilizingLoad;\n this.type = 682877961;\n }\n }\n IFC42.IfcStructuralAction = IfcStructuralAction;\n class IfcStructuralConnection extends IfcStructuralItem {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedCondition = AppliedCondition;\n this.type = 1179482911;\n }\n }\n IFC42.IfcStructuralConnection = IfcStructuralConnection;\n class IfcStructuralCurveAction extends IfcStructuralAction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.DestabilizingLoad = DestabilizingLoad;\n this.ProjectedOrTrue = ProjectedOrTrue;\n this.PredefinedType = PredefinedType;\n this.type = 1004757350;\n }\n }\n IFC42.IfcStructuralCurveAction = IfcStructuralCurveAction;\n class IfcStructuralCurveConnection extends IfcStructuralConnection {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, Axis) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedCondition = AppliedCondition;\n this.Axis = Axis;\n this.type = 4243806635;\n }\n }\n IFC42.IfcStructuralCurveConnection = IfcStructuralCurveConnection;\n class IfcStructuralCurveMember extends IfcStructuralMember {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.PredefinedType = PredefinedType;\n this.Axis = Axis;\n this.type = 214636428;\n }\n }\n IFC42.IfcStructuralCurveMember = IfcStructuralCurveMember;\n class IfcStructuralCurveMemberVarying extends IfcStructuralCurveMember {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.PredefinedType = PredefinedType;\n this.Axis = Axis;\n this.type = 2445595289;\n }\n }\n IFC42.IfcStructuralCurveMemberVarying = IfcStructuralCurveMemberVarying;\n class IfcStructuralCurveReaction extends IfcStructuralReaction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.PredefinedType = PredefinedType;\n this.type = 2757150158;\n }\n }\n IFC42.IfcStructuralCurveReaction = IfcStructuralCurveReaction;\n class IfcStructuralLinearAction extends IfcStructuralCurveAction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.DestabilizingLoad = DestabilizingLoad;\n this.ProjectedOrTrue = ProjectedOrTrue;\n this.PredefinedType = PredefinedType;\n this.type = 1807405624;\n }\n }\n IFC42.IfcStructuralLinearAction = IfcStructuralLinearAction;\n class IfcStructuralLoadGroup extends IfcGroup {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.PredefinedType = PredefinedType;\n this.ActionType = ActionType;\n this.ActionSource = ActionSource;\n this.Coefficient = Coefficient;\n this.Purpose = Purpose;\n this.type = 1252848954;\n }\n }\n IFC42.IfcStructuralLoadGroup = IfcStructuralLoadGroup;\n class IfcStructuralPointAction extends IfcStructuralAction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.DestabilizingLoad = DestabilizingLoad;\n this.type = 2082059205;\n }\n }\n IFC42.IfcStructuralPointAction = IfcStructuralPointAction;\n class IfcStructuralPointConnection extends IfcStructuralConnection {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, ConditionCoordinateSystem) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedCondition = AppliedCondition;\n this.ConditionCoordinateSystem = ConditionCoordinateSystem;\n this.type = 734778138;\n }\n }\n IFC42.IfcStructuralPointConnection = IfcStructuralPointConnection;\n class IfcStructuralPointReaction extends IfcStructuralReaction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.type = 1235345126;\n }\n }\n IFC42.IfcStructuralPointReaction = IfcStructuralPointReaction;\n class IfcStructuralResultGroup extends IfcGroup {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.TheoryType = TheoryType;\n this.ResultForLoadGroup = ResultForLoadGroup;\n this.IsLinear = IsLinear;\n this.type = 2986769608;\n }\n }\n IFC42.IfcStructuralResultGroup = IfcStructuralResultGroup;\n class IfcStructuralSurfaceAction extends IfcStructuralAction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.DestabilizingLoad = DestabilizingLoad;\n this.ProjectedOrTrue = ProjectedOrTrue;\n this.PredefinedType = PredefinedType;\n this.type = 3657597509;\n }\n }\n IFC42.IfcStructuralSurfaceAction = IfcStructuralSurfaceAction;\n class IfcStructuralSurfaceConnection extends IfcStructuralConnection {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedCondition = AppliedCondition;\n this.type = 1975003073;\n }\n }\n IFC42.IfcStructuralSurfaceConnection = IfcStructuralSurfaceConnection;\n class IfcSubContractResource extends IfcConstructionResource {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.Usage = Usage;\n this.BaseCosts = BaseCosts;\n this.BaseQuantity = BaseQuantity;\n this.PredefinedType = PredefinedType;\n this.type = 148013059;\n }\n }\n IFC42.IfcSubContractResource = IfcSubContractResource;\n class IfcSurfaceFeature extends IfcFeatureElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3101698114;\n }\n }\n IFC42.IfcSurfaceFeature = IfcSurfaceFeature;\n class IfcSwitchingDeviceType extends IfcFlowControllerType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2315554128;\n }\n }\n IFC42.IfcSwitchingDeviceType = IfcSwitchingDeviceType;\n class IfcSystem extends IfcGroup {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.type = 2254336722;\n }\n }\n IFC42.IfcSystem = IfcSystem;\n class IfcSystemFurnitureElement extends IfcFurnishingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 413509423;\n }\n }\n IFC42.IfcSystemFurnitureElement = IfcSystemFurnitureElement;\n class IfcTankType extends IfcFlowStorageDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 5716631;\n }\n }\n IFC42.IfcTankType = IfcTankType;\n class IfcTendon extends IfcReinforcingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.SteelGrade = SteelGrade;\n this.PredefinedType = PredefinedType;\n this.NominalDiameter = NominalDiameter;\n this.CrossSectionArea = CrossSectionArea;\n this.TensionForce = TensionForce;\n this.PreStress = PreStress;\n this.FrictionCoefficient = FrictionCoefficient;\n this.AnchorageSlip = AnchorageSlip;\n this.MinCurvatureRadius = MinCurvatureRadius;\n this.type = 3824725483;\n }\n }\n IFC42.IfcTendon = IfcTendon;\n class IfcTendonAnchor extends IfcReinforcingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.SteelGrade = SteelGrade;\n this.PredefinedType = PredefinedType;\n this.type = 2347447852;\n }\n }\n IFC42.IfcTendonAnchor = IfcTendonAnchor;\n class IfcTendonAnchorType extends IfcReinforcingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3081323446;\n }\n }\n IFC42.IfcTendonAnchorType = IfcTendonAnchorType;\n class IfcTendonType extends IfcReinforcingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, SheathDiameter) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.NominalDiameter = NominalDiameter;\n this.CrossSectionArea = CrossSectionArea;\n this.SheathDiameter = SheathDiameter;\n this.type = 2415094496;\n }\n }\n IFC42.IfcTendonType = IfcTendonType;\n class IfcTransformerType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1692211062;\n }\n }\n IFC42.IfcTransformerType = IfcTransformerType;\n class IfcTransportElement extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1620046519;\n }\n }\n IFC42.IfcTransportElement = IfcTransportElement;\n class IfcTrimmedCurve extends IfcBoundedCurve {\n constructor(BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation) {\n super();\n this.BasisCurve = BasisCurve;\n this.Trim1 = Trim1;\n this.Trim2 = Trim2;\n this.SenseAgreement = SenseAgreement;\n this.MasterRepresentation = MasterRepresentation;\n this.type = 3593883385;\n }\n }\n IFC42.IfcTrimmedCurve = IfcTrimmedCurve;\n class IfcTubeBundleType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1600972822;\n }\n }\n IFC42.IfcTubeBundleType = IfcTubeBundleType;\n class IfcUnitaryEquipmentType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1911125066;\n }\n }\n IFC42.IfcUnitaryEquipmentType = IfcUnitaryEquipmentType;\n class IfcValveType extends IfcFlowControllerType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 728799441;\n }\n }\n IFC42.IfcValveType = IfcValveType;\n class IfcVibrationIsolator extends IfcElementComponent {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2391383451;\n }\n }\n IFC42.IfcVibrationIsolator = IfcVibrationIsolator;\n class IfcVibrationIsolatorType extends IfcElementComponentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3313531582;\n }\n }\n IFC42.IfcVibrationIsolatorType = IfcVibrationIsolatorType;\n class IfcVirtualElement extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 2769231204;\n }\n }\n IFC42.IfcVirtualElement = IfcVirtualElement;\n class IfcVoidingFeature extends IfcFeatureElementSubtraction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 926996030;\n }\n }\n IFC42.IfcVoidingFeature = IfcVoidingFeature;\n class IfcWallType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1898987631;\n }\n }\n IFC42.IfcWallType = IfcWallType;\n class IfcWasteTerminalType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1133259667;\n }\n }\n IFC42.IfcWasteTerminalType = IfcWasteTerminalType;\n class IfcWindowType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, PartitioningType, ParameterTakesPrecedence, UserDefinedPartitioningType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.PartitioningType = PartitioningType;\n this.ParameterTakesPrecedence = ParameterTakesPrecedence;\n this.UserDefinedPartitioningType = UserDefinedPartitioningType;\n this.type = 4009809668;\n }\n }\n IFC42.IfcWindowType = IfcWindowType;\n class IfcWorkCalendar extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, WorkingTimes, ExceptionTimes, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.WorkingTimes = WorkingTimes;\n this.ExceptionTimes = ExceptionTimes;\n this.PredefinedType = PredefinedType;\n this.type = 4088093105;\n }\n }\n IFC42.IfcWorkCalendar = IfcWorkCalendar;\n class IfcWorkControl extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.CreationDate = CreationDate;\n this.Creators = Creators;\n this.Purpose = Purpose;\n this.Duration = Duration;\n this.TotalFloat = TotalFloat;\n this.StartTime = StartTime;\n this.FinishTime = FinishTime;\n this.type = 1028945134;\n }\n }\n IFC42.IfcWorkControl = IfcWorkControl;\n class IfcWorkPlan extends IfcWorkControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.CreationDate = CreationDate;\n this.Creators = Creators;\n this.Purpose = Purpose;\n this.Duration = Duration;\n this.TotalFloat = TotalFloat;\n this.StartTime = StartTime;\n this.FinishTime = FinishTime;\n this.PredefinedType = PredefinedType;\n this.type = 4218914973;\n }\n }\n IFC42.IfcWorkPlan = IfcWorkPlan;\n class IfcWorkSchedule extends IfcWorkControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.CreationDate = CreationDate;\n this.Creators = Creators;\n this.Purpose = Purpose;\n this.Duration = Duration;\n this.TotalFloat = TotalFloat;\n this.StartTime = StartTime;\n this.FinishTime = FinishTime;\n this.PredefinedType = PredefinedType;\n this.type = 3342526732;\n }\n }\n IFC42.IfcWorkSchedule = IfcWorkSchedule;\n class IfcZone extends IfcSystem {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.LongName = LongName;\n this.type = 1033361043;\n }\n }\n IFC42.IfcZone = IfcZone;\n class IfcActionRequest extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.PredefinedType = PredefinedType;\n this.Status = Status;\n this.LongDescription = LongDescription;\n this.type = 3821786052;\n }\n }\n IFC42.IfcActionRequest = IfcActionRequest;\n class IfcAirTerminalBoxType extends IfcFlowControllerType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1411407467;\n }\n }\n IFC42.IfcAirTerminalBoxType = IfcAirTerminalBoxType;\n class IfcAirTerminalType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3352864051;\n }\n }\n IFC42.IfcAirTerminalType = IfcAirTerminalType;\n class IfcAirToAirHeatRecoveryType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1871374353;\n }\n }\n IFC42.IfcAirToAirHeatRecoveryType = IfcAirToAirHeatRecoveryType;\n class IfcAsset extends IfcGroup {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.OriginalValue = OriginalValue;\n this.CurrentValue = CurrentValue;\n this.TotalReplacementCost = TotalReplacementCost;\n this.Owner = Owner;\n this.User = User;\n this.ResponsiblePerson = ResponsiblePerson;\n this.IncorporationDate = IncorporationDate;\n this.DepreciatedValue = DepreciatedValue;\n this.type = 3460190687;\n }\n }\n IFC42.IfcAsset = IfcAsset;\n class IfcAudioVisualApplianceType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1532957894;\n }\n }\n IFC42.IfcAudioVisualApplianceType = IfcAudioVisualApplianceType;\n class IfcBSplineCurve extends IfcBoundedCurve {\n constructor(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) {\n super();\n this.Degree = Degree;\n this.ControlPointsList = ControlPointsList;\n this.CurveForm = CurveForm;\n this.ClosedCurve = ClosedCurve;\n this.SelfIntersect = SelfIntersect;\n this.type = 1967976161;\n }\n }\n IFC42.IfcBSplineCurve = IfcBSplineCurve;\n class IfcBSplineCurveWithKnots extends IfcBSplineCurve {\n constructor(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec) {\n super(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect);\n this.Degree = Degree;\n this.ControlPointsList = ControlPointsList;\n this.CurveForm = CurveForm;\n this.ClosedCurve = ClosedCurve;\n this.SelfIntersect = SelfIntersect;\n this.KnotMultiplicities = KnotMultiplicities;\n this.Knots = Knots;\n this.KnotSpec = KnotSpec;\n this.type = 2461110595;\n }\n }\n IFC42.IfcBSplineCurveWithKnots = IfcBSplineCurveWithKnots;\n class IfcBeamType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 819618141;\n }\n }\n IFC42.IfcBeamType = IfcBeamType;\n class IfcBoilerType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 231477066;\n }\n }\n IFC42.IfcBoilerType = IfcBoilerType;\n class IfcBoundaryCurve extends IfcCompositeCurveOnSurface {\n constructor(Segments, SelfIntersect) {\n super(Segments, SelfIntersect);\n this.Segments = Segments;\n this.SelfIntersect = SelfIntersect;\n this.type = 1136057603;\n }\n }\n IFC42.IfcBoundaryCurve = IfcBoundaryCurve;\n class IfcBuildingElement extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 3299480353;\n }\n }\n IFC42.IfcBuildingElement = IfcBuildingElement;\n class IfcBuildingElementPart extends IfcElementComponent {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2979338954;\n }\n }\n IFC42.IfcBuildingElementPart = IfcBuildingElementPart;\n class IfcBuildingElementPartType extends IfcElementComponentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 39481116;\n }\n }\n IFC42.IfcBuildingElementPartType = IfcBuildingElementPartType;\n class IfcBuildingElementProxy extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1095909175;\n }\n }\n IFC42.IfcBuildingElementProxy = IfcBuildingElementProxy;\n class IfcBuildingElementProxyType extends IfcBuildingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1909888760;\n }\n }\n IFC42.IfcBuildingElementProxyType = IfcBuildingElementProxyType;\n class IfcBuildingSystem extends IfcSystem {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.PredefinedType = PredefinedType;\n this.LongName = LongName;\n this.type = 1177604601;\n }\n }\n IFC42.IfcBuildingSystem = IfcBuildingSystem;\n class IfcBurnerType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2188180465;\n }\n }\n IFC42.IfcBurnerType = IfcBurnerType;\n class IfcCableCarrierFittingType extends IfcFlowFittingType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 395041908;\n }\n }\n IFC42.IfcCableCarrierFittingType = IfcCableCarrierFittingType;\n class IfcCableCarrierSegmentType extends IfcFlowSegmentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3293546465;\n }\n }\n IFC42.IfcCableCarrierSegmentType = IfcCableCarrierSegmentType;\n class IfcCableFittingType extends IfcFlowFittingType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2674252688;\n }\n }\n IFC42.IfcCableFittingType = IfcCableFittingType;\n class IfcCableSegmentType extends IfcFlowSegmentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1285652485;\n }\n }\n IFC42.IfcCableSegmentType = IfcCableSegmentType;\n class IfcChillerType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2951183804;\n }\n }\n IFC42.IfcChillerType = IfcChillerType;\n class IfcChimney extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3296154744;\n }\n }\n IFC42.IfcChimney = IfcChimney;\n class IfcCircle extends IfcConic {\n constructor(Position, Radius) {\n super(Position);\n this.Position = Position;\n this.Radius = Radius;\n this.type = 2611217952;\n }\n }\n IFC42.IfcCircle = IfcCircle;\n class IfcCivilElement extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 1677625105;\n }\n }\n IFC42.IfcCivilElement = IfcCivilElement;\n class IfcCoilType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2301859152;\n }\n }\n IFC42.IfcCoilType = IfcCoilType;\n class IfcColumn extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 843113511;\n }\n }\n IFC42.IfcColumn = IfcColumn;\n class IfcColumnStandardCase extends IfcColumn {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 905975707;\n }\n }\n IFC42.IfcColumnStandardCase = IfcColumnStandardCase;\n class IfcCommunicationsApplianceType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 400855858;\n }\n }\n IFC42.IfcCommunicationsApplianceType = IfcCommunicationsApplianceType;\n class IfcCompressorType extends IfcFlowMovingDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3850581409;\n }\n }\n IFC42.IfcCompressorType = IfcCompressorType;\n class IfcCondenserType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2816379211;\n }\n }\n IFC42.IfcCondenserType = IfcCondenserType;\n class IfcConstructionEquipmentResource extends IfcConstructionResource {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.Usage = Usage;\n this.BaseCosts = BaseCosts;\n this.BaseQuantity = BaseQuantity;\n this.PredefinedType = PredefinedType;\n this.type = 3898045240;\n }\n }\n IFC42.IfcConstructionEquipmentResource = IfcConstructionEquipmentResource;\n class IfcConstructionMaterialResource extends IfcConstructionResource {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.Usage = Usage;\n this.BaseCosts = BaseCosts;\n this.BaseQuantity = BaseQuantity;\n this.PredefinedType = PredefinedType;\n this.type = 1060000209;\n }\n }\n IFC42.IfcConstructionMaterialResource = IfcConstructionMaterialResource;\n class IfcConstructionProductResource extends IfcConstructionResource {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.Usage = Usage;\n this.BaseCosts = BaseCosts;\n this.BaseQuantity = BaseQuantity;\n this.PredefinedType = PredefinedType;\n this.type = 488727124;\n }\n }\n IFC42.IfcConstructionProductResource = IfcConstructionProductResource;\n class IfcCooledBeamType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 335055490;\n }\n }\n IFC42.IfcCooledBeamType = IfcCooledBeamType;\n class IfcCoolingTowerType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2954562838;\n }\n }\n IFC42.IfcCoolingTowerType = IfcCoolingTowerType;\n class IfcCovering extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1973544240;\n }\n }\n IFC42.IfcCovering = IfcCovering;\n class IfcCurtainWall extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3495092785;\n }\n }\n IFC42.IfcCurtainWall = IfcCurtainWall;\n class IfcDamperType extends IfcFlowControllerType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3961806047;\n }\n }\n IFC42.IfcDamperType = IfcDamperType;\n class IfcDiscreteAccessory extends IfcElementComponent {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1335981549;\n }\n }\n IFC42.IfcDiscreteAccessory = IfcDiscreteAccessory;\n class IfcDiscreteAccessoryType extends IfcElementComponentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2635815018;\n }\n }\n IFC42.IfcDiscreteAccessoryType = IfcDiscreteAccessoryType;\n class IfcDistributionChamberElementType extends IfcDistributionFlowElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1599208980;\n }\n }\n IFC42.IfcDistributionChamberElementType = IfcDistributionChamberElementType;\n class IfcDistributionControlElementType extends IfcDistributionElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 2063403501;\n }\n }\n IFC42.IfcDistributionControlElementType = IfcDistributionControlElementType;\n class IfcDistributionElement extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 1945004755;\n }\n }\n IFC42.IfcDistributionElement = IfcDistributionElement;\n class IfcDistributionFlowElement extends IfcDistributionElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 3040386961;\n }\n }\n IFC42.IfcDistributionFlowElement = IfcDistributionFlowElement;\n class IfcDistributionPort extends IfcPort {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection, PredefinedType, SystemType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.FlowDirection = FlowDirection;\n this.PredefinedType = PredefinedType;\n this.SystemType = SystemType;\n this.type = 3041715199;\n }\n }\n IFC42.IfcDistributionPort = IfcDistributionPort;\n class IfcDistributionSystem extends IfcSystem {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.LongName = LongName;\n this.PredefinedType = PredefinedType;\n this.type = 3205830791;\n }\n }\n IFC42.IfcDistributionSystem = IfcDistributionSystem;\n class IfcDoor extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.OverallHeight = OverallHeight;\n this.OverallWidth = OverallWidth;\n this.PredefinedType = PredefinedType;\n this.OperationType = OperationType;\n this.UserDefinedOperationType = UserDefinedOperationType;\n this.type = 395920057;\n }\n }\n IFC42.IfcDoor = IfcDoor;\n class IfcDoorStandardCase extends IfcDoor {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.OverallHeight = OverallHeight;\n this.OverallWidth = OverallWidth;\n this.PredefinedType = PredefinedType;\n this.OperationType = OperationType;\n this.UserDefinedOperationType = UserDefinedOperationType;\n this.type = 3242481149;\n }\n }\n IFC42.IfcDoorStandardCase = IfcDoorStandardCase;\n class IfcDuctFittingType extends IfcFlowFittingType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 869906466;\n }\n }\n IFC42.IfcDuctFittingType = IfcDuctFittingType;\n class IfcDuctSegmentType extends IfcFlowSegmentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3760055223;\n }\n }\n IFC42.IfcDuctSegmentType = IfcDuctSegmentType;\n class IfcDuctSilencerType extends IfcFlowTreatmentDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2030761528;\n }\n }\n IFC42.IfcDuctSilencerType = IfcDuctSilencerType;\n class IfcElectricApplianceType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 663422040;\n }\n }\n IFC42.IfcElectricApplianceType = IfcElectricApplianceType;\n class IfcElectricDistributionBoardType extends IfcFlowControllerType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2417008758;\n }\n }\n IFC42.IfcElectricDistributionBoardType = IfcElectricDistributionBoardType;\n class IfcElectricFlowStorageDeviceType extends IfcFlowStorageDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3277789161;\n }\n }\n IFC42.IfcElectricFlowStorageDeviceType = IfcElectricFlowStorageDeviceType;\n class IfcElectricGeneratorType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1534661035;\n }\n }\n IFC42.IfcElectricGeneratorType = IfcElectricGeneratorType;\n class IfcElectricMotorType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1217240411;\n }\n }\n IFC42.IfcElectricMotorType = IfcElectricMotorType;\n class IfcElectricTimeControlType extends IfcFlowControllerType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 712377611;\n }\n }\n IFC42.IfcElectricTimeControlType = IfcElectricTimeControlType;\n class IfcEnergyConversionDevice extends IfcDistributionFlowElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 1658829314;\n }\n }\n IFC42.IfcEnergyConversionDevice = IfcEnergyConversionDevice;\n class IfcEngine extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2814081492;\n }\n }\n IFC42.IfcEngine = IfcEngine;\n class IfcEvaporativeCooler extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3747195512;\n }\n }\n IFC42.IfcEvaporativeCooler = IfcEvaporativeCooler;\n class IfcEvaporator extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 484807127;\n }\n }\n IFC42.IfcEvaporator = IfcEvaporator;\n class IfcExternalSpatialElement extends IfcExternalSpatialStructureElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.PredefinedType = PredefinedType;\n this.type = 1209101575;\n }\n }\n IFC42.IfcExternalSpatialElement = IfcExternalSpatialElement;\n class IfcFanType extends IfcFlowMovingDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 346874300;\n }\n }\n IFC42.IfcFanType = IfcFanType;\n class IfcFilterType extends IfcFlowTreatmentDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1810631287;\n }\n }\n IFC42.IfcFilterType = IfcFilterType;\n class IfcFireSuppressionTerminalType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 4222183408;\n }\n }\n IFC42.IfcFireSuppressionTerminalType = IfcFireSuppressionTerminalType;\n class IfcFlowController extends IfcDistributionFlowElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 2058353004;\n }\n }\n IFC42.IfcFlowController = IfcFlowController;\n class IfcFlowFitting extends IfcDistributionFlowElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 4278956645;\n }\n }\n IFC42.IfcFlowFitting = IfcFlowFitting;\n class IfcFlowInstrumentType extends IfcDistributionControlElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 4037862832;\n }\n }\n IFC42.IfcFlowInstrumentType = IfcFlowInstrumentType;\n class IfcFlowMeter extends IfcFlowController {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2188021234;\n }\n }\n IFC42.IfcFlowMeter = IfcFlowMeter;\n class IfcFlowMovingDevice extends IfcDistributionFlowElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 3132237377;\n }\n }\n IFC42.IfcFlowMovingDevice = IfcFlowMovingDevice;\n class IfcFlowSegment extends IfcDistributionFlowElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 987401354;\n }\n }\n IFC42.IfcFlowSegment = IfcFlowSegment;\n class IfcFlowStorageDevice extends IfcDistributionFlowElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 707683696;\n }\n }\n IFC42.IfcFlowStorageDevice = IfcFlowStorageDevice;\n class IfcFlowTerminal extends IfcDistributionFlowElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 2223149337;\n }\n }\n IFC42.IfcFlowTerminal = IfcFlowTerminal;\n class IfcFlowTreatmentDevice extends IfcDistributionFlowElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 3508470533;\n }\n }\n IFC42.IfcFlowTreatmentDevice = IfcFlowTreatmentDevice;\n class IfcFooting extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 900683007;\n }\n }\n IFC42.IfcFooting = IfcFooting;\n class IfcHeatExchanger extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3319311131;\n }\n }\n IFC42.IfcHeatExchanger = IfcHeatExchanger;\n class IfcHumidifier extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2068733104;\n }\n }\n IFC42.IfcHumidifier = IfcHumidifier;\n class IfcInterceptor extends IfcFlowTreatmentDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 4175244083;\n }\n }\n IFC42.IfcInterceptor = IfcInterceptor;\n class IfcJunctionBox extends IfcFlowFitting {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2176052936;\n }\n }\n IFC42.IfcJunctionBox = IfcJunctionBox;\n class IfcLamp extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 76236018;\n }\n }\n IFC42.IfcLamp = IfcLamp;\n class IfcLightFixture extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 629592764;\n }\n }\n IFC42.IfcLightFixture = IfcLightFixture;\n class IfcMedicalDevice extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1437502449;\n }\n }\n IFC42.IfcMedicalDevice = IfcMedicalDevice;\n class IfcMember extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1073191201;\n }\n }\n IFC42.IfcMember = IfcMember;\n class IfcMemberStandardCase extends IfcMember {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1911478936;\n }\n }\n IFC42.IfcMemberStandardCase = IfcMemberStandardCase;\n class IfcMotorConnection extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2474470126;\n }\n }\n IFC42.IfcMotorConnection = IfcMotorConnection;\n class IfcOuterBoundaryCurve extends IfcBoundaryCurve {\n constructor(Segments, SelfIntersect) {\n super(Segments, SelfIntersect);\n this.Segments = Segments;\n this.SelfIntersect = SelfIntersect;\n this.type = 144952367;\n }\n }\n IFC42.IfcOuterBoundaryCurve = IfcOuterBoundaryCurve;\n class IfcOutlet extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3694346114;\n }\n }\n IFC42.IfcOutlet = IfcOutlet;\n class IfcPile extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.ConstructionType = ConstructionType;\n this.type = 1687234759;\n }\n }\n IFC42.IfcPile = IfcPile;\n class IfcPipeFitting extends IfcFlowFitting {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 310824031;\n }\n }\n IFC42.IfcPipeFitting = IfcPipeFitting;\n class IfcPipeSegment extends IfcFlowSegment {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3612865200;\n }\n }\n IFC42.IfcPipeSegment = IfcPipeSegment;\n class IfcPlate extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3171933400;\n }\n }\n IFC42.IfcPlate = IfcPlate;\n class IfcPlateStandardCase extends IfcPlate {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1156407060;\n }\n }\n IFC42.IfcPlateStandardCase = IfcPlateStandardCase;\n class IfcProtectiveDevice extends IfcFlowController {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 738039164;\n }\n }\n IFC42.IfcProtectiveDevice = IfcProtectiveDevice;\n class IfcProtectiveDeviceTrippingUnitType extends IfcDistributionControlElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 655969474;\n }\n }\n IFC42.IfcProtectiveDeviceTrippingUnitType = IfcProtectiveDeviceTrippingUnitType;\n class IfcPump extends IfcFlowMovingDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 90941305;\n }\n }\n IFC42.IfcPump = IfcPump;\n class IfcRailing extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2262370178;\n }\n }\n IFC42.IfcRailing = IfcRailing;\n class IfcRamp extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3024970846;\n }\n }\n IFC42.IfcRamp = IfcRamp;\n class IfcRampFlight extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3283111854;\n }\n }\n IFC42.IfcRampFlight = IfcRampFlight;\n class IfcRationalBSplineCurveWithKnots extends IfcBSplineCurveWithKnots {\n constructor(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec, WeightsData) {\n super(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec);\n this.Degree = Degree;\n this.ControlPointsList = ControlPointsList;\n this.CurveForm = CurveForm;\n this.ClosedCurve = ClosedCurve;\n this.SelfIntersect = SelfIntersect;\n this.KnotMultiplicities = KnotMultiplicities;\n this.Knots = Knots;\n this.KnotSpec = KnotSpec;\n this.WeightsData = WeightsData;\n this.type = 1232101972;\n }\n }\n IFC42.IfcRationalBSplineCurveWithKnots = IfcRationalBSplineCurveWithKnots;\n class IfcReinforcingBar extends IfcReinforcingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, PredefinedType, BarSurface) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.SteelGrade = SteelGrade;\n this.NominalDiameter = NominalDiameter;\n this.CrossSectionArea = CrossSectionArea;\n this.BarLength = BarLength;\n this.PredefinedType = PredefinedType;\n this.BarSurface = BarSurface;\n this.type = 979691226;\n }\n }\n IFC42.IfcReinforcingBar = IfcReinforcingBar;\n class IfcReinforcingBarType extends IfcReinforcingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, BarLength, BarSurface, BendingShapeCode, BendingParameters) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.NominalDiameter = NominalDiameter;\n this.CrossSectionArea = CrossSectionArea;\n this.BarLength = BarLength;\n this.BarSurface = BarSurface;\n this.BendingShapeCode = BendingShapeCode;\n this.BendingParameters = BendingParameters;\n this.type = 2572171363;\n }\n }\n IFC42.IfcReinforcingBarType = IfcReinforcingBarType;\n class IfcRoof extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2016517767;\n }\n }\n IFC42.IfcRoof = IfcRoof;\n class IfcSanitaryTerminal extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3053780830;\n }\n }\n IFC42.IfcSanitaryTerminal = IfcSanitaryTerminal;\n class IfcSensorType extends IfcDistributionControlElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1783015770;\n }\n }\n IFC42.IfcSensorType = IfcSensorType;\n class IfcShadingDevice extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1329646415;\n }\n }\n IFC42.IfcShadingDevice = IfcShadingDevice;\n class IfcSlab extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1529196076;\n }\n }\n IFC42.IfcSlab = IfcSlab;\n class IfcSlabElementedCase extends IfcSlab {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3127900445;\n }\n }\n IFC42.IfcSlabElementedCase = IfcSlabElementedCase;\n class IfcSlabStandardCase extends IfcSlab {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3027962421;\n }\n }\n IFC42.IfcSlabStandardCase = IfcSlabStandardCase;\n class IfcSolarDevice extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3420628829;\n }\n }\n IFC42.IfcSolarDevice = IfcSolarDevice;\n class IfcSpaceHeater extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1999602285;\n }\n }\n IFC42.IfcSpaceHeater = IfcSpaceHeater;\n class IfcStackTerminal extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1404847402;\n }\n }\n IFC42.IfcStackTerminal = IfcStackTerminal;\n class IfcStair extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 331165859;\n }\n }\n IFC42.IfcStair = IfcStair;\n class IfcStairFlight extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRisers, NumberOfTreads, RiserHeight, TreadLength, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.NumberOfRisers = NumberOfRisers;\n this.NumberOfTreads = NumberOfTreads;\n this.RiserHeight = RiserHeight;\n this.TreadLength = TreadLength;\n this.PredefinedType = PredefinedType;\n this.type = 4252922144;\n }\n }\n IFC42.IfcStairFlight = IfcStairFlight;\n class IfcStructuralAnalysisModel extends IfcSystem {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults, SharedPlacement) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.PredefinedType = PredefinedType;\n this.OrientationOf2DPlane = OrientationOf2DPlane;\n this.LoadedBy = LoadedBy;\n this.HasResults = HasResults;\n this.SharedPlacement = SharedPlacement;\n this.type = 2515109513;\n }\n }\n IFC42.IfcStructuralAnalysisModel = IfcStructuralAnalysisModel;\n class IfcStructuralLoadCase extends IfcStructuralLoadGroup {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose, SelfWeightCoefficients) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.PredefinedType = PredefinedType;\n this.ActionType = ActionType;\n this.ActionSource = ActionSource;\n this.Coefficient = Coefficient;\n this.Purpose = Purpose;\n this.SelfWeightCoefficients = SelfWeightCoefficients;\n this.type = 385403989;\n }\n }\n IFC42.IfcStructuralLoadCase = IfcStructuralLoadCase;\n class IfcStructuralPlanarAction extends IfcStructuralSurfaceAction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.DestabilizingLoad = DestabilizingLoad;\n this.ProjectedOrTrue = ProjectedOrTrue;\n this.PredefinedType = PredefinedType;\n this.type = 1621171031;\n }\n }\n IFC42.IfcStructuralPlanarAction = IfcStructuralPlanarAction;\n class IfcSwitchingDevice extends IfcFlowController {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1162798199;\n }\n }\n IFC42.IfcSwitchingDevice = IfcSwitchingDevice;\n class IfcTank extends IfcFlowStorageDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 812556717;\n }\n }\n IFC42.IfcTank = IfcTank;\n class IfcTransformer extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3825984169;\n }\n }\n IFC42.IfcTransformer = IfcTransformer;\n class IfcTubeBundle extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3026737570;\n }\n }\n IFC42.IfcTubeBundle = IfcTubeBundle;\n class IfcUnitaryControlElementType extends IfcDistributionControlElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3179687236;\n }\n }\n IFC42.IfcUnitaryControlElementType = IfcUnitaryControlElementType;\n class IfcUnitaryEquipment extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 4292641817;\n }\n }\n IFC42.IfcUnitaryEquipment = IfcUnitaryEquipment;\n class IfcValve extends IfcFlowController {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 4207607924;\n }\n }\n IFC42.IfcValve = IfcValve;\n class IfcWall extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2391406946;\n }\n }\n IFC42.IfcWall = IfcWall;\n class IfcWallElementedCase extends IfcWall {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 4156078855;\n }\n }\n IFC42.IfcWallElementedCase = IfcWallElementedCase;\n class IfcWallStandardCase extends IfcWall {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3512223829;\n }\n }\n IFC42.IfcWallStandardCase = IfcWallStandardCase;\n class IfcWasteTerminal extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 4237592921;\n }\n }\n IFC42.IfcWasteTerminal = IfcWasteTerminal;\n class IfcWindow extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.OverallHeight = OverallHeight;\n this.OverallWidth = OverallWidth;\n this.PredefinedType = PredefinedType;\n this.PartitioningType = PartitioningType;\n this.UserDefinedPartitioningType = UserDefinedPartitioningType;\n this.type = 3304561284;\n }\n }\n IFC42.IfcWindow = IfcWindow;\n class IfcWindowStandardCase extends IfcWindow {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.OverallHeight = OverallHeight;\n this.OverallWidth = OverallWidth;\n this.PredefinedType = PredefinedType;\n this.PartitioningType = PartitioningType;\n this.UserDefinedPartitioningType = UserDefinedPartitioningType;\n this.type = 486154966;\n }\n }\n IFC42.IfcWindowStandardCase = IfcWindowStandardCase;\n class IfcActuatorType extends IfcDistributionControlElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2874132201;\n }\n }\n IFC42.IfcActuatorType = IfcActuatorType;\n class IfcAirTerminal extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1634111441;\n }\n }\n IFC42.IfcAirTerminal = IfcAirTerminal;\n class IfcAirTerminalBox extends IfcFlowController {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 177149247;\n }\n }\n IFC42.IfcAirTerminalBox = IfcAirTerminalBox;\n class IfcAirToAirHeatRecovery extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2056796094;\n }\n }\n IFC42.IfcAirToAirHeatRecovery = IfcAirToAirHeatRecovery;\n class IfcAlarmType extends IfcDistributionControlElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3001207471;\n }\n }\n IFC42.IfcAlarmType = IfcAlarmType;\n class IfcAudioVisualAppliance extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 277319702;\n }\n }\n IFC42.IfcAudioVisualAppliance = IfcAudioVisualAppliance;\n class IfcBeam extends IfcBuildingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 753842376;\n }\n }\n IFC42.IfcBeam = IfcBeam;\n class IfcBeamStandardCase extends IfcBeam {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2906023776;\n }\n }\n IFC42.IfcBeamStandardCase = IfcBeamStandardCase;\n class IfcBoiler extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 32344328;\n }\n }\n IFC42.IfcBoiler = IfcBoiler;\n class IfcBurner extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2938176219;\n }\n }\n IFC42.IfcBurner = IfcBurner;\n class IfcCableCarrierFitting extends IfcFlowFitting {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 635142910;\n }\n }\n IFC42.IfcCableCarrierFitting = IfcCableCarrierFitting;\n class IfcCableCarrierSegment extends IfcFlowSegment {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3758799889;\n }\n }\n IFC42.IfcCableCarrierSegment = IfcCableCarrierSegment;\n class IfcCableFitting extends IfcFlowFitting {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1051757585;\n }\n }\n IFC42.IfcCableFitting = IfcCableFitting;\n class IfcCableSegment extends IfcFlowSegment {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 4217484030;\n }\n }\n IFC42.IfcCableSegment = IfcCableSegment;\n class IfcChiller extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3902619387;\n }\n }\n IFC42.IfcChiller = IfcChiller;\n class IfcCoil extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 639361253;\n }\n }\n IFC42.IfcCoil = IfcCoil;\n class IfcCommunicationsAppliance extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3221913625;\n }\n }\n IFC42.IfcCommunicationsAppliance = IfcCommunicationsAppliance;\n class IfcCompressor extends IfcFlowMovingDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3571504051;\n }\n }\n IFC42.IfcCompressor = IfcCompressor;\n class IfcCondenser extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2272882330;\n }\n }\n IFC42.IfcCondenser = IfcCondenser;\n class IfcControllerType extends IfcDistributionControlElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 578613899;\n }\n }\n IFC42.IfcControllerType = IfcControllerType;\n class IfcCooledBeam extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 4136498852;\n }\n }\n IFC42.IfcCooledBeam = IfcCooledBeam;\n class IfcCoolingTower extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3640358203;\n }\n }\n IFC42.IfcCoolingTower = IfcCoolingTower;\n class IfcDamper extends IfcFlowController {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 4074379575;\n }\n }\n IFC42.IfcDamper = IfcDamper;\n class IfcDistributionChamberElement extends IfcDistributionFlowElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1052013943;\n }\n }\n IFC42.IfcDistributionChamberElement = IfcDistributionChamberElement;\n class IfcDistributionCircuit extends IfcDistributionSystem {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.LongName = LongName;\n this.PredefinedType = PredefinedType;\n this.type = 562808652;\n }\n }\n IFC42.IfcDistributionCircuit = IfcDistributionCircuit;\n class IfcDistributionControlElement extends IfcDistributionElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 1062813311;\n }\n }\n IFC42.IfcDistributionControlElement = IfcDistributionControlElement;\n class IfcDuctFitting extends IfcFlowFitting {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 342316401;\n }\n }\n IFC42.IfcDuctFitting = IfcDuctFitting;\n class IfcDuctSegment extends IfcFlowSegment {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3518393246;\n }\n }\n IFC42.IfcDuctSegment = IfcDuctSegment;\n class IfcDuctSilencer extends IfcFlowTreatmentDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1360408905;\n }\n }\n IFC42.IfcDuctSilencer = IfcDuctSilencer;\n class IfcElectricAppliance extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1904799276;\n }\n }\n IFC42.IfcElectricAppliance = IfcElectricAppliance;\n class IfcElectricDistributionBoard extends IfcFlowController {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 862014818;\n }\n }\n IFC42.IfcElectricDistributionBoard = IfcElectricDistributionBoard;\n class IfcElectricFlowStorageDevice extends IfcFlowStorageDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3310460725;\n }\n }\n IFC42.IfcElectricFlowStorageDevice = IfcElectricFlowStorageDevice;\n class IfcElectricGenerator extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 264262732;\n }\n }\n IFC42.IfcElectricGenerator = IfcElectricGenerator;\n class IfcElectricMotor extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 402227799;\n }\n }\n IFC42.IfcElectricMotor = IfcElectricMotor;\n class IfcElectricTimeControl extends IfcFlowController {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1003880860;\n }\n }\n IFC42.IfcElectricTimeControl = IfcElectricTimeControl;\n class IfcFan extends IfcFlowMovingDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3415622556;\n }\n }\n IFC42.IfcFan = IfcFan;\n class IfcFilter extends IfcFlowTreatmentDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 819412036;\n }\n }\n IFC42.IfcFilter = IfcFilter;\n class IfcFireSuppressionTerminal extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1426591983;\n }\n }\n IFC42.IfcFireSuppressionTerminal = IfcFireSuppressionTerminal;\n class IfcFlowInstrument extends IfcDistributionControlElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 182646315;\n }\n }\n IFC42.IfcFlowInstrument = IfcFlowInstrument;\n class IfcProtectiveDeviceTrippingUnit extends IfcDistributionControlElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2295281155;\n }\n }\n IFC42.IfcProtectiveDeviceTrippingUnit = IfcProtectiveDeviceTrippingUnit;\n class IfcSensor extends IfcDistributionControlElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 4086658281;\n }\n }\n IFC42.IfcSensor = IfcSensor;\n class IfcUnitaryControlElement extends IfcDistributionControlElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 630975310;\n }\n }\n IFC42.IfcUnitaryControlElement = IfcUnitaryControlElement;\n class IfcActuator extends IfcDistributionControlElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 4288193352;\n }\n }\n IFC42.IfcActuator = IfcActuator;\n class IfcAlarm extends IfcDistributionControlElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3087945054;\n }\n }\n IFC42.IfcAlarm = IfcAlarm;\n class IfcController extends IfcDistributionControlElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 25142252;\n }\n }\n IFC42.IfcController = IfcController;\n})(IFC4 || (IFC4 = {}));\nSchemaNames[3] = [\"IFC4X3\", \"IFC4X3_RC3\", \"IFC4X3_RC$\", \"IFC4X3_RC1\", \"IFC4X3_RC2\"];\nFromRawLineData[3] = {\n 3630933823: (v) => new IFC4X3.IfcActorRole(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcText(!v[2] ? null : v[2].value)),\n 618182010: (v) => new IFC4X3.IfcAddress(v[0], !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value)),\n 2879124712: (v) => new IFC4X3.IfcAlignmentParameterSegment(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value)),\n 3633395639: (v) => new IFC4X3.IfcAlignmentVerticalSegment(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), new IFC4X3.IfcLengthMeasure(!v[2] ? null : v[2].value), new IFC4X3.IfcNonNegativeLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3.IfcRatioMeasure(!v[5] ? null : v[5].value), new IFC4X3.IfcRatioMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLengthMeasure(!v[7] ? null : v[7].value), v[8]),\n 639542469: (v) => new IFC4X3.IfcApplication(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), new IFC4X3.IfcIdentifier(!v[3] ? null : v[3].value)),\n 411424972: (v) => {\n var _a;\n return new IFC4X3.IfcAppliedValue(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcDate(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcDate(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 130549933: (v) => new IFC4X3.IfcApproval(!v[0] ? null : new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcDateTime(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),\n 4037036970: (v) => new IFC4X3.IfcBoundaryCondition(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value)),\n 1560379544: (v) => new IFC4X3.IfcBoundaryEdgeCondition(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : TypeInitialiser(3, v[1]), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), !v[5] ? null : TypeInitialiser(3, v[5]), !v[6] ? null : TypeInitialiser(3, v[6])),\n 3367102660: (v) => new IFC4X3.IfcBoundaryFaceCondition(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : TypeInitialiser(3, v[1]), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : TypeInitialiser(3, v[3])),\n 1387855156: (v) => new IFC4X3.IfcBoundaryNodeCondition(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : TypeInitialiser(3, v[1]), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), !v[5] ? null : TypeInitialiser(3, v[5]), !v[6] ? null : TypeInitialiser(3, v[6])),\n 2069777674: (v) => new IFC4X3.IfcBoundaryNodeConditionWarping(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : TypeInitialiser(3, v[1]), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), !v[5] ? null : TypeInitialiser(3, v[5]), !v[6] ? null : TypeInitialiser(3, v[6]), !v[7] ? null : TypeInitialiser(3, v[7])),\n 2859738748: (_) => new IFC4X3.IfcConnectionGeometry(),\n 2614616156: (v) => new IFC4X3.IfcConnectionPointGeometry(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),\n 2732653382: (v) => new IFC4X3.IfcConnectionSurfaceGeometry(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),\n 775493141: (v) => new IFC4X3.IfcConnectionVolumeGeometry(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),\n 1959218052: (v) => new IFC4X3.IfcConstraint(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC4X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value)),\n 1785450214: (v) => new IFC4X3.IfcCoordinateOperation(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),\n 1466758467: (v) => new IFC4X3.IfcCoordinateReferenceSystem(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcIdentifier(!v[3] ? null : v[3].value)),\n 602808272: (v) => {\n var _a;\n return new IFC4X3.IfcCostValue(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcDate(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcDate(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1765591967: (v) => {\n var _a;\n return new IFC4X3.IfcDerivedUnit(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[1], !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcLabel(!v[3] ? null : v[3].value));\n },\n 1045800335: (v) => new IFC4X3.IfcDerivedUnitElement(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : v[1].value),\n 2949456006: (v) => new IFC4X3.IfcDimensionalExponents(!v[0] ? null : v[0].value, !v[1] ? null : v[1].value, !v[2] ? null : v[2].value, !v[3] ? null : v[3].value, !v[4] ? null : v[4].value, !v[5] ? null : v[5].value, !v[6] ? null : v[6].value),\n 4294318154: (_) => new IFC4X3.IfcExternalInformation(),\n 3200245327: (v) => new IFC4X3.IfcExternalReference(!v[0] ? null : new IFC4X3.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value)),\n 2242383968: (v) => new IFC4X3.IfcExternallyDefinedHatchStyle(!v[0] ? null : new IFC4X3.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value)),\n 1040185647: (v) => new IFC4X3.IfcExternallyDefinedSurfaceStyle(!v[0] ? null : new IFC4X3.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value)),\n 3548104201: (v) => new IFC4X3.IfcExternallyDefinedTextFont(!v[0] ? null : new IFC4X3.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value)),\n 852622518: (v) => new IFC4X3.IfcGridAxis(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new IFC4X3.IfcBoolean(!v[2] ? null : v[2].value)),\n 3020489413: (v) => {\n var _a;\n return new IFC4X3.IfcIrregularTimeSeriesValue(new IFC4X3.IfcDateTime(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || []);\n },\n 2655187982: (v) => new IFC4X3.IfcLibraryInformation(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcDateTime(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcURIReference(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcText(!v[5] ? null : v[5].value)),\n 3452421091: (v) => new IFC4X3.IfcLibraryReference(!v[0] ? null : new IFC4X3.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLanguageId(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value)),\n 4162380809: (v) => {\n var _a, _b;\n return new IFC4X3.IfcLightDistributionData(new IFC4X3.IfcPlaneAngleMeasure(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcPlaneAngleMeasure(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLuminousIntensityDistributionMeasure(p.value) : null)) || []);\n },\n 1566485204: (v) => {\n var _a;\n return new IFC4X3.IfcLightIntensityDistribution(v[0], ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3057273783: (v) => new IFC4X3.IfcMapConversion(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new IFC4X3.IfcLengthMeasure(!v[2] ? null : v[2].value), new IFC4X3.IfcLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcReal(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcReal(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcReal(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcReal(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcReal(!v[9] ? null : v[9].value)),\n 1847130766: (v) => {\n var _a;\n return new IFC4X3.IfcMaterialClassificationRelationship(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value));\n },\n 760658860: (_) => new IFC4X3.IfcMaterialDefinition(),\n 248100487: (v) => new IFC4X3.IfcMaterialLayer(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcNonNegativeLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLogical(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcInteger(!v[6] ? null : v[6].value)),\n 3303938423: (v) => {\n var _a;\n return new IFC4X3.IfcMaterialLayerSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcText(!v[2] ? null : v[2].value));\n },\n 1847252529: (v) => new IFC4X3.IfcMaterialLayerWithOffsets(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcNonNegativeLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLogical(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcInteger(!v[6] ? null : v[6].value), v[7], new IFC4X3.IfcLengthMeasure(!v[8] ? null : v[8].value)),\n 2199411900: (v) => {\n var _a;\n return new IFC4X3.IfcMaterialList(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2235152071: (v) => new IFC4X3.IfcMaterialProfile(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcInteger(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value)),\n 164193824: (v) => {\n var _a;\n return new IFC4X3.IfcMaterialProfileSet(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[3] ? null : new Handle(!v[3] ? null : v[3].value));\n },\n 552965576: (v) => new IFC4X3.IfcMaterialProfileWithOffsets(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcInteger(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value), new IFC4X3.IfcLengthMeasure(!v[6] ? null : v[6].value)),\n 1507914824: (_) => new IFC4X3.IfcMaterialUsageDefinition(),\n 2597039031: (v) => new IFC4X3.IfcMeasureWithUnit(TypeInitialiser(3, v[0]), new Handle(!v[1] ? null : v[1].value)),\n 3368373690: (v) => new IFC4X3.IfcMetric(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC4X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new Handle(!v[10] ? null : v[10].value)),\n 2706619895: (v) => new IFC4X3.IfcMonetaryUnit(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value)),\n 1918398963: (v) => new IFC4X3.IfcNamedUnit(new Handle(!v[0] ? null : v[0].value), v[1]),\n 3701648758: (v) => new IFC4X3.IfcObjectPlacement(!v[0] ? null : new Handle(!v[0] ? null : v[0].value)),\n 2251480897: (v) => {\n var _a;\n return new IFC4X3.IfcObjective(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC4X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[8], v[9], !v[10] ? null : new IFC4X3.IfcLabel(!v[10] ? null : v[10].value));\n },\n 4251960020: (v) => {\n var _a, _b;\n return new IFC4X3.IfcOrganization(!v[0] ? null : new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[4] ? null : ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1207048766: (v) => new IFC4X3.IfcOwnerHistory(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), v[2], v[3], !v[4] ? null : new IFC4X3.IfcTimeStamp(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new IFC4X3.IfcTimeStamp(!v[7] ? null : v[7].value)),\n 2077209135: (v) => {\n var _a, _b, _c, _d, _e;\n return new IFC4X3.IfcPerson(!v[0] ? null : new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLabel(p.value) : null)) || [], !v[4] ? null : ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLabel(p.value) : null)) || [], !v[5] ? null : ((_c = v[5]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLabel(p.value) : null)) || [], !v[6] ? null : ((_d = v[6]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : ((_e = v[7]) == null ? void 0 : _e.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 101040310: (v) => {\n var _a;\n return new IFC4X3.IfcPersonAndOrganization(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2483315170: (v) => new IFC4X3.IfcPhysicalQuantity(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value)),\n 2226359599: (v) => new IFC4X3.IfcPhysicalSimpleQuantity(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value)),\n 3355820592: (v) => {\n var _a;\n return new IFC4X3.IfcPostalAddress(v[0], !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLabel(p.value) : null)) || [], !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcLabel(!v[9] ? null : v[9].value));\n },\n 677532197: (_) => new IFC4X3.IfcPresentationItem(),\n 2022622350: (v) => {\n var _a;\n return new IFC4X3.IfcPresentationLayerAssignment(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[3] ? null : new IFC4X3.IfcIdentifier(!v[3] ? null : v[3].value));\n },\n 1304840413: (v) => {\n var _a, _b;\n return new IFC4X3.IfcPresentationLayerWithStyle(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[3] ? null : new IFC4X3.IfcIdentifier(!v[3] ? null : v[3].value), new IFC4X3.IfcLogical(!v[4] ? null : v[4].value), new IFC4X3.IfcLogical(!v[5] ? null : v[5].value), new IFC4X3.IfcLogical(!v[6] ? null : v[6].value), !v[7] ? null : ((_b = v[7]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3119450353: (v) => new IFC4X3.IfcPresentationStyle(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value)),\n 2095639259: (v) => {\n var _a;\n return new IFC4X3.IfcProductRepresentation(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3958567839: (v) => new IFC4X3.IfcProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value)),\n 3843373140: (v) => new IFC4X3.IfcProjectedCRS(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcIdentifier(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),\n 986844984: (_) => new IFC4X3.IfcPropertyAbstraction(),\n 3710013099: (v) => {\n var _a;\n return new IFC4X3.IfcPropertyEnumeration(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || [], !v[2] ? null : new Handle(!v[2] ? null : v[2].value));\n },\n 2044713172: (v) => new IFC4X3.IfcQuantityArea(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcAreaMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value)),\n 2093928680: (v) => new IFC4X3.IfcQuantityCount(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcCountMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value)),\n 931644368: (v) => new IFC4X3.IfcQuantityLength(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value)),\n 2691318326: (v) => new IFC4X3.IfcQuantityNumber(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcNumericMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value)),\n 3252649465: (v) => new IFC4X3.IfcQuantityTime(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcTimeMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value)),\n 2405470396: (v) => new IFC4X3.IfcQuantityVolume(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcVolumeMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value)),\n 825690147: (v) => new IFC4X3.IfcQuantityWeight(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcMassMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value)),\n 3915482550: (v) => {\n var _a, _b, _c, _d;\n return new IFC4X3.IfcRecurrencePattern(v[0], !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcDayInMonthNumber(p.value) : null)) || [], !v[2] ? null : ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcDayInWeekNumber(p.value) : null)) || [], !v[3] ? null : ((_c = v[3]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcMonthInYearNumber(p.value) : null)) || [], !v[4] ? null : new IFC4X3.IfcInteger(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcInteger(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcInteger(!v[6] ? null : v[6].value), !v[7] ? null : ((_d = v[7]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2433181523: (v) => {\n var _a;\n return new IFC4X3.IfcReference(!v[0] ? null : new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcInteger(p.value) : null)) || [], !v[4] ? null : new Handle(!v[4] ? null : v[4].value));\n },\n 1076942058: (v) => {\n var _a;\n return new IFC4X3.IfcRepresentation(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3377609919: (v) => new IFC4X3.IfcRepresentationContext(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value)),\n 3008791417: (_) => new IFC4X3.IfcRepresentationItem(),\n 1660063152: (v) => new IFC4X3.IfcRepresentationMap(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),\n 2439245199: (v) => new IFC4X3.IfcResourceLevelRelationship(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value)),\n 2341007311: (v) => new IFC4X3.IfcRoot(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value)),\n 448429030: (v) => new IFC4X3.IfcSIUnit(new Handle(!v[0] ? null : v[0].value), v[1], v[2], v[3]),\n 1054537805: (v) => new IFC4X3.IfcSchedulingTime(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value)),\n 867548509: (v) => {\n var _a;\n return new IFC4X3.IfcShapeAspect(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcText(!v[2] ? null : v[2].value), new IFC4X3.IfcLogical(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value));\n },\n 3982875396: (v) => {\n var _a;\n return new IFC4X3.IfcShapeModel(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 4240577450: (v) => {\n var _a;\n return new IFC4X3.IfcShapeRepresentation(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2273995522: (v) => new IFC4X3.IfcStructuralConnectionCondition(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value)),\n 2162789131: (v) => new IFC4X3.IfcStructuralLoad(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value)),\n 3478079324: (v) => {\n var _a, _b;\n return new IFC4X3.IfcStructuralLoadConfiguration(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : (_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3.IfcLengthMeasure(p2.value) : null)) || []));\n },\n 609421318: (v) => new IFC4X3.IfcStructuralLoadOrResult(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value)),\n 2525727697: (v) => new IFC4X3.IfcStructuralLoadStatic(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value)),\n 3408363356: (v) => new IFC4X3.IfcStructuralLoadTemperature(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcThermodynamicTemperatureMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcThermodynamicTemperatureMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcThermodynamicTemperatureMeasure(!v[3] ? null : v[3].value)),\n 2830218821: (v) => {\n var _a;\n return new IFC4X3.IfcStyleModel(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3958052878: (v) => {\n var _a;\n return new IFC4X3.IfcStyledItem(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value));\n },\n 3049322572: (v) => {\n var _a;\n return new IFC4X3.IfcStyledRepresentation(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2934153892: (v) => {\n var _a, _b;\n return new IFC4X3.IfcSurfaceReinforcementArea(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLengthMeasure(p.value) : null)) || [], !v[2] ? null : ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLengthMeasure(p.value) : null)) || [], !v[3] ? null : new IFC4X3.IfcRatioMeasure(!v[3] ? null : v[3].value));\n },\n 1300840506: (v) => {\n var _a;\n return new IFC4X3.IfcSurfaceStyle(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), v[1], ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3303107099: (v) => new IFC4X3.IfcSurfaceStyleLighting(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),\n 1607154358: (v) => new IFC4X3.IfcSurfaceStyleRefraction(!v[0] ? null : new IFC4X3.IfcReal(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcReal(!v[1] ? null : v[1].value)),\n 846575682: (v) => new IFC4X3.IfcSurfaceStyleShading(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value)),\n 1351298697: (v) => {\n var _a;\n return new IFC4X3.IfcSurfaceStyleWithTextures(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 626085974: (v) => {\n var _a;\n return new IFC4X3.IfcSurfaceTexture(new IFC4X3.IfcBoolean(!v[0] ? null : v[0].value), new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcIdentifier(p.value) : null)) || []);\n },\n 985171141: (v) => {\n var _a, _b;\n return new IFC4X3.IfcTable(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2043862942: (v) => new IFC4X3.IfcTableColumn(!v[0] ? null : new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value)),\n 531007025: (v) => {\n var _a;\n return new IFC4X3.IfcTableRow(!v[0] ? null : ((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || [], !v[1] ? null : new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value));\n },\n 1549132990: (v) => new IFC4X3.IfcTaskTime(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), v[3], !v[4] ? null : new IFC4X3.IfcDuration(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcDateTime(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcDateTime(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcDateTime(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcDateTime(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcDuration(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcDuration(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3.IfcBoolean(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4X3.IfcDateTime(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4X3.IfcDuration(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4X3.IfcDateTime(!v[16] ? null : v[16].value), !v[17] ? null : new IFC4X3.IfcDateTime(!v[17] ? null : v[17].value), !v[18] ? null : new IFC4X3.IfcDuration(!v[18] ? null : v[18].value), !v[19] ? null : new IFC4X3.IfcPositiveRatioMeasure(!v[19] ? null : v[19].value)),\n 2771591690: (v) => new IFC4X3.IfcTaskTimeRecurring(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), v[3], !v[4] ? null : new IFC4X3.IfcDuration(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcDateTime(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcDateTime(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcDateTime(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcDateTime(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcDuration(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcDuration(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3.IfcBoolean(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4X3.IfcDateTime(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4X3.IfcDuration(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4X3.IfcDateTime(!v[16] ? null : v[16].value), !v[17] ? null : new IFC4X3.IfcDateTime(!v[17] ? null : v[17].value), !v[18] ? null : new IFC4X3.IfcDuration(!v[18] ? null : v[18].value), !v[19] ? null : new IFC4X3.IfcPositiveRatioMeasure(!v[19] ? null : v[19].value), new Handle(!v[20] ? null : v[20].value)),\n 912023232: (v) => {\n var _a, _b, _c, _d;\n return new IFC4X3.IfcTelecomAddress(v[0], !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLabel(p.value) : null)) || [], !v[4] ? null : ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLabel(p.value) : null)) || [], !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : ((_c = v[6]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLabel(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcURIReference(!v[7] ? null : v[7].value), !v[8] ? null : ((_d = v[8]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcURIReference(p.value) : null)) || []);\n },\n 1447204868: (v) => new IFC4X3.IfcTextStyle(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcBoolean(!v[4] ? null : v[4].value)),\n 2636378356: (v) => new IFC4X3.IfcTextStyleForDefinedFont(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),\n 1640371178: (v) => new IFC4X3.IfcTextStyleTextModel(!v[0] ? null : TypeInitialiser(3, v[0]), !v[1] ? null : new IFC4X3.IfcTextAlignment(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcTextDecoration(!v[2] ? null : v[2].value), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), !v[5] ? null : new IFC4X3.IfcTextTransformation(!v[5] ? null : v[5].value), !v[6] ? null : TypeInitialiser(3, v[6])),\n 280115917: (v) => {\n var _a;\n return new IFC4X3.IfcTextureCoordinate(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1742049831: (v) => {\n var _a, _b;\n return new IFC4X3.IfcTextureCoordinateGenerator(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcReal(p.value) : null)) || []);\n },\n 222769930: (v) => {\n var _a;\n return new IFC4X3.IfcTextureCoordinateIndices(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcPositiveInteger(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value));\n },\n 1010789467: (v) => {\n var _a, _b;\n return new IFC4X3.IfcTextureCoordinateIndicesWithVoids(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcPositiveInteger(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value), (_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3.IfcPositiveInteger(p2.value) : null)) || []));\n },\n 2552916305: (v) => {\n var _a, _b;\n return new IFC4X3.IfcTextureMap(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[2] ? null : v[2].value));\n },\n 1210645708: (v) => {\n var _a;\n return new IFC4X3.IfcTextureVertex(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcParameterValue(p.value) : null)) || []);\n },\n 3611470254: (v) => {\n var _a;\n return new IFC4X3.IfcTextureVertexList((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3.IfcParameterValue(p2.value) : null)) || []));\n },\n 1199560280: (v) => new IFC4X3.IfcTimePeriod(new IFC4X3.IfcTime(!v[0] ? null : v[0].value), new IFC4X3.IfcTime(!v[1] ? null : v[1].value)),\n 3101149627: (v) => new IFC4X3.IfcTimeSeries(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), new IFC4X3.IfcDateTime(!v[2] ? null : v[2].value), new IFC4X3.IfcDateTime(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value)),\n 581633288: (v) => {\n var _a;\n return new IFC4X3.IfcTimeSeriesValue(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || []);\n },\n 1377556343: (_) => new IFC4X3.IfcTopologicalRepresentationItem(),\n 1735638870: (v) => {\n var _a;\n return new IFC4X3.IfcTopologyRepresentation(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 180925521: (v) => {\n var _a;\n return new IFC4X3.IfcUnitAssignment(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2799835756: (_) => new IFC4X3.IfcVertex(),\n 1907098498: (v) => new IFC4X3.IfcVertexPoint(new Handle(!v[0] ? null : v[0].value)),\n 891718957: (v) => {\n var _a, _b;\n return new IFC4X3.IfcVirtualGridIntersection(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLengthMeasure(p.value) : null)) || []);\n },\n 1236880293: (v) => new IFC4X3.IfcWorkTime(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcDate(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcDate(!v[5] ? null : v[5].value)),\n 3752311538: (v) => new IFC4X3.IfcAlignmentCantSegment(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), new IFC4X3.IfcLengthMeasure(!v[2] ? null : v[2].value), new IFC4X3.IfcNonNegativeLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3.IfcLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLengthMeasure(!v[7] ? null : v[7].value), v[8]),\n 536804194: (v) => new IFC4X3.IfcAlignmentHorizontalSegment(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPlaneAngleMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3.IfcLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3.IfcNonNegativeLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), v[8]),\n 3869604511: (v) => {\n var _a;\n return new IFC4X3.IfcApprovalRelationship(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3798115385: (v) => new IFC4X3.IfcArbitraryClosedProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),\n 1310608509: (v) => new IFC4X3.IfcArbitraryOpenProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),\n 2705031697: (v) => {\n var _a;\n return new IFC4X3.IfcArbitraryProfileDefWithVoids(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 616511568: (v) => {\n var _a;\n return new IFC4X3.IfcBlobTexture(new IFC4X3.IfcBoolean(!v[0] ? null : v[0].value), new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcIdentifier(p.value) : null)) || [], new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4X3.IfcBinary(!v[6] ? null : v[6].value));\n },\n 3150382593: (v) => new IFC4X3.IfcCenterLineProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),\n 747523909: (v) => {\n var _a;\n return new IFC4X3.IfcClassification(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcDate(!v[2] ? null : v[2].value), new IFC4X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcURIReference(!v[5] ? null : v[5].value), !v[6] ? null : ((_a = v[6]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcIdentifier(p.value) : null)) || []);\n },\n 647927063: (v) => new IFC4X3.IfcClassificationReference(!v[0] ? null : new IFC4X3.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value)),\n 3285139300: (v) => {\n var _a;\n return new IFC4X3.IfcColourRgbList((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3.IfcNormalisedRatioMeasure(p2.value) : null)) || []));\n },\n 3264961684: (v) => new IFC4X3.IfcColourSpecification(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value)),\n 1485152156: (v) => {\n var _a;\n return new IFC4X3.IfcCompositeProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[3] ? null : new IFC4X3.IfcLabel(!v[3] ? null : v[3].value));\n },\n 370225590: (v) => {\n var _a;\n return new IFC4X3.IfcConnectedFaceSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1981873012: (v) => new IFC4X3.IfcConnectionCurveGeometry(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),\n 45288368: (v) => new IFC4X3.IfcConnectionPointEccentricity(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLengthMeasure(!v[4] ? null : v[4].value)),\n 3050246964: (v) => new IFC4X3.IfcContextDependentUnit(new Handle(!v[0] ? null : v[0].value), v[1], new IFC4X3.IfcLabel(!v[2] ? null : v[2].value)),\n 2889183280: (v) => new IFC4X3.IfcConversionBasedUnit(new Handle(!v[0] ? null : v[0].value), v[1], new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),\n 2713554722: (v) => new IFC4X3.IfcConversionBasedUnitWithOffset(new Handle(!v[0] ? null : v[0].value), v[1], new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), new IFC4X3.IfcReal(!v[4] ? null : v[4].value)),\n 539742890: (v) => new IFC4X3.IfcCurrencyRelationship(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), new IFC4X3.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),\n 3800577675: (v) => new IFC4X3.IfcCurveStyle(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcBoolean(!v[4] ? null : v[4].value)),\n 1105321065: (v) => {\n var _a;\n return new IFC4X3.IfcCurveStyleFont(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2367409068: (v) => new IFC4X3.IfcCurveStyleFontAndScaling(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new IFC4X3.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value)),\n 3510044353: (v) => new IFC4X3.IfcCurveStyleFontPattern(new IFC4X3.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC4X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)),\n 3632507154: (v) => new IFC4X3.IfcDerivedProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value)),\n 1154170062: (v) => {\n var _a;\n return new IFC4X3.IfcDocumentInformation(new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcURIReference(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcText(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value), !v[9] ? null : ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new IFC4X3.IfcDateTime(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcDateTime(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcIdentifier(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3.IfcDate(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4X3.IfcDate(!v[14] ? null : v[14].value), v[15], v[16]);\n },\n 770865208: (v) => {\n var _a;\n return new IFC4X3.IfcDocumentInformationRelationship(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value));\n },\n 3732053477: (v) => new IFC4X3.IfcDocumentReference(!v[0] ? null : new IFC4X3.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value)),\n 3900360178: (v) => new IFC4X3.IfcEdge(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),\n 476780140: (v) => new IFC4X3.IfcEdgeCurve(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcBoolean(!v[3] ? null : v[3].value)),\n 211053100: (v) => new IFC4X3.IfcEventTime(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcDateTime(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcDateTime(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcDateTime(!v[6] ? null : v[6].value)),\n 297599258: (v) => {\n var _a;\n return new IFC4X3.IfcExtendedProperties(!v[0] ? null : new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1437805879: (v) => {\n var _a;\n return new IFC4X3.IfcExternalReferenceRelationship(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2556980723: (v) => {\n var _a;\n return new IFC4X3.IfcFace(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1809719519: (v) => new IFC4X3.IfcFaceBound(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value)),\n 803316827: (v) => new IFC4X3.IfcFaceOuterBound(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value)),\n 3008276851: (v) => {\n var _a;\n return new IFC4X3.IfcFaceSurface(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value), new IFC4X3.IfcBoolean(!v[2] ? null : v[2].value));\n },\n 4219587988: (v) => new IFC4X3.IfcFailureConnectionCondition(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcForceMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcForceMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcForceMeasure(!v[6] ? null : v[6].value)),\n 738692330: (v) => {\n var _a;\n return new IFC4X3.IfcFillAreaStyle(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC4X3.IfcBoolean(!v[2] ? null : v[2].value));\n },\n 3448662350: (v) => new IFC4X3.IfcGeometricRepresentationContext(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), new IFC4X3.IfcDimensionCount(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcReal(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value)),\n 2453401579: (_) => new IFC4X3.IfcGeometricRepresentationItem(),\n 4142052618: (v) => new IFC4X3.IfcGeometricRepresentationSubContext(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value)),\n 3590301190: (v) => {\n var _a;\n return new IFC4X3.IfcGeometricSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 178086475: (v) => new IFC4X3.IfcGridPlacement(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value)),\n 812098782: (v) => new IFC4X3.IfcHalfSpaceSolid(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value)),\n 3905492369: (v) => {\n var _a;\n return new IFC4X3.IfcImageTexture(new IFC4X3.IfcBoolean(!v[0] ? null : v[0].value), new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcIdentifier(p.value) : null)) || [], new IFC4X3.IfcURIReference(!v[5] ? null : v[5].value));\n },\n 3570813810: (v) => {\n var _a;\n return new IFC4X3.IfcIndexedColourMap(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcPositiveInteger(p.value) : null)) || []);\n },\n 1437953363: (v) => {\n var _a;\n return new IFC4X3.IfcIndexedTextureMap(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value));\n },\n 2133299955: (v) => {\n var _a, _b;\n return new IFC4X3.IfcIndexedTriangleTextureMap(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : (_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3.IfcPositiveInteger(p2.value) : null)) || []));\n },\n 3741457305: (v) => {\n var _a;\n return new IFC4X3.IfcIrregularTimeSeries(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), new IFC4X3.IfcDateTime(!v[2] ? null : v[2].value), new IFC4X3.IfcDateTime(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1585845231: (v) => new IFC4X3.IfcLagTime(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), TypeInitialiser(3, v[3]), v[4]),\n 1402838566: (v) => new IFC4X3.IfcLightSource(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value)),\n 125510826: (v) => new IFC4X3.IfcLightSourceAmbient(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value)),\n 2604431987: (v) => new IFC4X3.IfcLightSourceDirectional(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value)),\n 4266656042: (v) => new IFC4X3.IfcLightSourceGoniometric(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), new IFC4X3.IfcThermodynamicTemperatureMeasure(!v[6] ? null : v[6].value), new IFC4X3.IfcLuminousFluxMeasure(!v[7] ? null : v[7].value), v[8], new Handle(!v[9] ? null : v[9].value)),\n 1520743889: (v) => new IFC4X3.IfcLightSourcePositional(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new IFC4X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3.IfcReal(!v[6] ? null : v[6].value), new IFC4X3.IfcReal(!v[7] ? null : v[7].value), new IFC4X3.IfcReal(!v[8] ? null : v[8].value)),\n 3422422726: (v) => new IFC4X3.IfcLightSourceSpot(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new IFC4X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3.IfcReal(!v[6] ? null : v[6].value), new IFC4X3.IfcReal(!v[7] ? null : v[7].value), new IFC4X3.IfcReal(!v[8] ? null : v[8].value), new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcReal(!v[10] ? null : v[10].value), new IFC4X3.IfcPositivePlaneAngleMeasure(!v[11] ? null : v[11].value), new IFC4X3.IfcPositivePlaneAngleMeasure(!v[12] ? null : v[12].value)),\n 388784114: (v) => new IFC4X3.IfcLinearPlacement(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value)),\n 2624227202: (v) => new IFC4X3.IfcLocalPlacement(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),\n 1008929658: (_) => new IFC4X3.IfcLoop(),\n 2347385850: (v) => new IFC4X3.IfcMappedItem(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),\n 1838606355: (v) => new IFC4X3.IfcMaterial(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value)),\n 3708119e3: (v) => new IFC4X3.IfcMaterialConstituent(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value)),\n 2852063980: (v) => {\n var _a;\n return new IFC4X3.IfcMaterialConstituentSet(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2022407955: (v) => {\n var _a;\n return new IFC4X3.IfcMaterialDefinitionRepresentation(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[3] ? null : v[3].value));\n },\n 1303795690: (v) => new IFC4X3.IfcMaterialLayerSetUsage(new Handle(!v[0] ? null : v[0].value), v[1], v[2], new IFC4X3.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)),\n 3079605661: (v) => new IFC4X3.IfcMaterialProfileSetUsage(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcCardinalPointReference(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)),\n 3404854881: (v) => new IFC4X3.IfcMaterialProfileSetUsageTapering(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcCardinalPointReference(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcCardinalPointReference(!v[4] ? null : v[4].value)),\n 3265635763: (v) => {\n var _a;\n return new IFC4X3.IfcMaterialProperties(!v[0] ? null : new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[3] ? null : v[3].value));\n },\n 853536259: (v) => {\n var _a;\n return new IFC4X3.IfcMaterialRelationship(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value));\n },\n 2998442950: (v) => new IFC4X3.IfcMirroredProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value)),\n 219451334: (v) => new IFC4X3.IfcObjectDefinition(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value)),\n 182550632: (v) => {\n var _a, _b, _c;\n return new IFC4X3.IfcOpenCrossProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), new IFC4X3.IfcBoolean(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcNonNegativeLengthMeasure(p.value) : null)) || [], ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcPlaneAngleMeasure(p.value) : null)) || [], !v[5] ? null : ((_c = v[5]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLabel(p.value) : null)) || [], !v[6] ? null : new Handle(!v[6] ? null : v[6].value));\n },\n 2665983363: (v) => {\n var _a;\n return new IFC4X3.IfcOpenShell(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1411181986: (v) => {\n var _a;\n return new IFC4X3.IfcOrganizationRelationship(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1029017970: (v) => new IFC4X3.IfcOrientedEdge(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new IFC4X3.IfcBoolean(!v[2] ? null : v[2].value)),\n 2529465313: (v) => new IFC4X3.IfcParameterizedProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value)),\n 2519244187: (v) => {\n var _a;\n return new IFC4X3.IfcPath(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3021840470: (v) => {\n var _a;\n return new IFC4X3.IfcPhysicalComplexQuantity(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value));\n },\n 597895409: (v) => {\n var _a, _b;\n return new IFC4X3.IfcPixelTexture(new IFC4X3.IfcBoolean(!v[0] ? null : v[0].value), new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcIdentifier(p.value) : null)) || [], new IFC4X3.IfcInteger(!v[5] ? null : v[5].value), new IFC4X3.IfcInteger(!v[6] ? null : v[6].value), new IFC4X3.IfcInteger(!v[7] ? null : v[7].value), ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcBinary(p.value) : null)) || []);\n },\n 2004835150: (v) => new IFC4X3.IfcPlacement(new Handle(!v[0] ? null : v[0].value)),\n 1663979128: (v) => new IFC4X3.IfcPlanarExtent(new IFC4X3.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value)),\n 2067069095: (_) => new IFC4X3.IfcPoint(),\n 2165702409: (v) => new IFC4X3.IfcPointByDistanceExpression(TypeInitialiser(3, v[0]), !v[1] ? null : new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcLengthMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value)),\n 4022376103: (v) => new IFC4X3.IfcPointOnCurve(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcParameterValue(!v[1] ? null : v[1].value)),\n 1423911732: (v) => new IFC4X3.IfcPointOnSurface(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcParameterValue(!v[1] ? null : v[1].value), new IFC4X3.IfcParameterValue(!v[2] ? null : v[2].value)),\n 2924175390: (v) => {\n var _a;\n return new IFC4X3.IfcPolyLoop(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2775532180: (v) => new IFC4X3.IfcPolygonalBoundedHalfSpace(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),\n 3727388367: (v) => new IFC4X3.IfcPreDefinedItem(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value)),\n 3778827333: (_) => new IFC4X3.IfcPreDefinedProperties(),\n 1775413392: (v) => new IFC4X3.IfcPreDefinedTextFont(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value)),\n 673634403: (v) => {\n var _a;\n return new IFC4X3.IfcProductDefinitionShape(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2802850158: (v) => {\n var _a;\n return new IFC4X3.IfcProfileProperties(!v[0] ? null : new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[3] ? null : v[3].value));\n },\n 2598011224: (v) => new IFC4X3.IfcProperty(new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value)),\n 1680319473: (v) => new IFC4X3.IfcPropertyDefinition(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value)),\n 148025276: (v) => new IFC4X3.IfcPropertyDependencyRelationship(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcText(!v[4] ? null : v[4].value)),\n 3357820518: (v) => new IFC4X3.IfcPropertySetDefinition(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value)),\n 1482703590: (v) => new IFC4X3.IfcPropertyTemplateDefinition(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value)),\n 2090586900: (v) => new IFC4X3.IfcQuantitySet(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value)),\n 3615266464: (v) => new IFC4X3.IfcRectangleProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)),\n 3413951693: (v) => {\n var _a;\n return new IFC4X3.IfcRegularTimeSeries(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), new IFC4X3.IfcDateTime(!v[2] ? null : v[2].value), new IFC4X3.IfcDateTime(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), new IFC4X3.IfcTimeMeasure(!v[8] ? null : v[8].value), ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1580146022: (v) => new IFC4X3.IfcReinforcementBarProperties(new IFC4X3.IfcAreaMeasure(!v[0] ? null : v[0].value), new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC4X3.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcCountMeasure(!v[5] ? null : v[5].value)),\n 478536968: (v) => new IFC4X3.IfcRelationship(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value)),\n 2943643501: (v) => {\n var _a;\n return new IFC4X3.IfcResourceApprovalRelationship(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[3] ? null : v[3].value));\n },\n 1608871552: (v) => {\n var _a;\n return new IFC4X3.IfcResourceConstraintRelationship(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1042787934: (v) => new IFC4X3.IfcResourceTime(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcDuration(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcDuration(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcBoolean(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcDateTime(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcDuration(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcPositiveRatioMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3.IfcDateTime(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4X3.IfcDateTime(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4X3.IfcDuration(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4X3.IfcPositiveRatioMeasure(!v[16] ? null : v[16].value), !v[17] ? null : new IFC4X3.IfcPositiveRatioMeasure(!v[17] ? null : v[17].value)),\n 2778083089: (v) => new IFC4X3.IfcRoundedRectangleProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value)),\n 2042790032: (v) => new IFC4X3.IfcSectionProperties(v[0], new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value)),\n 4165799628: (v) => {\n var _a;\n return new IFC4X3.IfcSectionReinforcementProperties(new IFC4X3.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLengthMeasure(!v[2] ? null : v[2].value), v[3], new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1509187699: (v) => {\n var _a, _b;\n return new IFC4X3.IfcSectionedSpine(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 823603102: (v) => new IFC4X3.IfcSegment(v[0]),\n 4124623270: (v) => {\n var _a;\n return new IFC4X3.IfcShellBasedSurfaceModel(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3692461612: (v) => new IFC4X3.IfcSimpleProperty(new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value)),\n 2609359061: (v) => new IFC4X3.IfcSlippageConnectionCondition(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcLengthMeasure(!v[3] ? null : v[3].value)),\n 723233188: (_) => new IFC4X3.IfcSolidModel(),\n 1595516126: (v) => new IFC4X3.IfcStructuralLoadLinearForce(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLinearForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLinearForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcLinearForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLinearMomentMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLinearMomentMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcLinearMomentMeasure(!v[6] ? null : v[6].value)),\n 2668620305: (v) => new IFC4X3.IfcStructuralLoadPlanarForce(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcPlanarForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcPlanarForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcPlanarForceMeasure(!v[3] ? null : v[3].value)),\n 2473145415: (v) => new IFC4X3.IfcStructuralLoadSingleDisplacement(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcPlaneAngleMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcPlaneAngleMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcPlaneAngleMeasure(!v[6] ? null : v[6].value)),\n 1973038258: (v) => new IFC4X3.IfcStructuralLoadSingleDisplacementDistortion(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcPlaneAngleMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcPlaneAngleMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcPlaneAngleMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcCurvatureMeasure(!v[7] ? null : v[7].value)),\n 1597423693: (v) => new IFC4X3.IfcStructuralLoadSingleForce(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcTorqueMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcTorqueMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcTorqueMeasure(!v[6] ? null : v[6].value)),\n 1190533807: (v) => new IFC4X3.IfcStructuralLoadSingleForceWarping(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcTorqueMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcTorqueMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcTorqueMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcWarpingMomentMeasure(!v[7] ? null : v[7].value)),\n 2233826070: (v) => new IFC4X3.IfcSubedge(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),\n 2513912981: (_) => new IFC4X3.IfcSurface(),\n 1878645084: (v) => new IFC4X3.IfcSurfaceStyleRendering(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : TypeInitialiser(3, v[7]), v[8]),\n 2247615214: (v) => new IFC4X3.IfcSweptAreaSolid(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),\n 1260650574: (v) => new IFC4X3.IfcSweptDiskSolid(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcParameterValue(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcParameterValue(!v[4] ? null : v[4].value)),\n 1096409881: (v) => new IFC4X3.IfcSweptDiskSolidPolygonal(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcParameterValue(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcParameterValue(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[5] ? null : v[5].value)),\n 230924584: (v) => new IFC4X3.IfcSweptSurface(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),\n 3071757647: (v) => new IFC4X3.IfcTShapeProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcPlaneAngleMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcPlaneAngleMeasure(!v[11] ? null : v[11].value)),\n 901063453: (_) => new IFC4X3.IfcTessellatedItem(),\n 4282788508: (v) => new IFC4X3.IfcTextLiteral(new IFC4X3.IfcPresentableText(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), v[2]),\n 3124975700: (v) => new IFC4X3.IfcTextLiteralWithExtent(new IFC4X3.IfcPresentableText(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), v[2], new Handle(!v[3] ? null : v[3].value), new IFC4X3.IfcBoxAlignment(!v[4] ? null : v[4].value)),\n 1983826977: (v) => {\n var _a;\n return new IFC4X3.IfcTextStyleFontModel(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcTextFontName(p.value) : null)) || [], !v[2] ? null : new IFC4X3.IfcFontStyle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcFontVariant(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcFontWeight(!v[4] ? null : v[4].value), TypeInitialiser(3, v[5]));\n },\n 2715220739: (v) => new IFC4X3.IfcTrapeziumProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3.IfcLengthMeasure(!v[6] ? null : v[6].value)),\n 1628702193: (v) => {\n var _a;\n return new IFC4X3.IfcTypeObject(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3736923433: (v) => {\n var _a;\n return new IFC4X3.IfcTypeProcess(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4X3.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 2347495698: (v) => {\n var _a, _b;\n return new IFC4X3.IfcTypeProduct(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value));\n },\n 3698973494: (v) => {\n var _a;\n return new IFC4X3.IfcTypeResource(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4X3.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 427810014: (v) => new IFC4X3.IfcUShapeProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcPlaneAngleMeasure(!v[9] ? null : v[9].value)),\n 1417489154: (v) => new IFC4X3.IfcVector(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value)),\n 2759199220: (v) => new IFC4X3.IfcVertexLoop(new Handle(!v[0] ? null : v[0].value)),\n 2543172580: (v) => new IFC4X3.IfcZShapeProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value)),\n 3406155212: (v) => {\n var _a;\n return new IFC4X3.IfcAdvancedFace(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value), new IFC4X3.IfcBoolean(!v[2] ? null : v[2].value));\n },\n 669184980: (v) => {\n var _a;\n return new IFC4X3.IfcAnnotationFillArea(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3207858831: (v) => new IFC4X3.IfcAsymmetricIShapeProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), new IFC4X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcPlaneAngleMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4X3.IfcPlaneAngleMeasure(!v[14] ? null : v[14].value)),\n 4261334040: (v) => new IFC4X3.IfcAxis1Placement(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),\n 3125803723: (v) => new IFC4X3.IfcAxis2Placement2D(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),\n 2740243338: (v) => new IFC4X3.IfcAxis2Placement3D(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value)),\n 3425423356: (v) => new IFC4X3.IfcAxis2PlacementLinear(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value)),\n 2736907675: (v) => new IFC4X3.IfcBooleanResult(v[0], new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),\n 4182860854: (_) => new IFC4X3.IfcBoundedSurface(),\n 2581212453: (v) => new IFC4X3.IfcBoundingBox(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),\n 2713105998: (v) => new IFC4X3.IfcBoxedHalfSpace(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),\n 2898889636: (v) => new IFC4X3.IfcCShapeProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value)),\n 1123145078: (v) => {\n var _a;\n return new IFC4X3.IfcCartesianPoint(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLengthMeasure(p.value) : null)) || []);\n },\n 574549367: (_) => new IFC4X3.IfcCartesianPointList(),\n 1675464909: (v) => {\n var _a, _b;\n return new IFC4X3.IfcCartesianPointList2D((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3.IfcLengthMeasure(p2.value) : null)) || []), !v[1] ? null : ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLabel(p.value) : null)) || []);\n },\n 2059837836: (v) => {\n var _a, _b;\n return new IFC4X3.IfcCartesianPointList3D((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3.IfcLengthMeasure(p2.value) : null)) || []), !v[1] ? null : ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLabel(p.value) : null)) || []);\n },\n 59481748: (v) => new IFC4X3.IfcCartesianTransformationOperator(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcReal(!v[3] ? null : v[3].value)),\n 3749851601: (v) => new IFC4X3.IfcCartesianTransformationOperator2D(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcReal(!v[3] ? null : v[3].value)),\n 3486308946: (v) => new IFC4X3.IfcCartesianTransformationOperator2DnonUniform(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcReal(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcReal(!v[4] ? null : v[4].value)),\n 3331915920: (v) => new IFC4X3.IfcCartesianTransformationOperator3D(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcReal(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value)),\n 1416205885: (v) => new IFC4X3.IfcCartesianTransformationOperator3DnonUniform(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcReal(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcReal(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcReal(!v[6] ? null : v[6].value)),\n 1383045692: (v) => new IFC4X3.IfcCircleProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),\n 2205249479: (v) => {\n var _a;\n return new IFC4X3.IfcClosedShell(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 776857604: (v) => new IFC4X3.IfcColourRgb(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), new IFC4X3.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value), new IFC4X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), new IFC4X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value)),\n 2542286263: (v) => {\n var _a;\n return new IFC4X3.IfcComplexProperty(new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), new IFC4X3.IfcIdentifier(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2485617015: (v) => new IFC4X3.IfcCompositeCurveSegment(v[0], new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),\n 2574617495: (v) => {\n var _a, _b;\n return new IFC4X3.IfcConstructionResourceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4X3.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value));\n },\n 3419103109: (v) => {\n var _a;\n return new IFC4X3.IfcContext(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new Handle(!v[8] ? null : v[8].value));\n },\n 1815067380: (v) => {\n var _a, _b;\n return new IFC4X3.IfcCrewResourceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4X3.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11]);\n },\n 2506170314: (v) => new IFC4X3.IfcCsgPrimitive3D(new Handle(!v[0] ? null : v[0].value)),\n 2147822146: (v) => new IFC4X3.IfcCsgSolid(new Handle(!v[0] ? null : v[0].value)),\n 2601014836: (_) => new IFC4X3.IfcCurve(),\n 2827736869: (v) => {\n var _a;\n return new IFC4X3.IfcCurveBoundedPlane(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2629017746: (v) => {\n var _a;\n return new IFC4X3.IfcCurveBoundedSurface(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4X3.IfcBoolean(!v[2] ? null : v[2].value));\n },\n 4212018352: (v) => new IFC4X3.IfcCurveSegment(v[0], new Handle(!v[1] ? null : v[1].value), TypeInitialiser(3, v[2]), TypeInitialiser(3, v[3]), new Handle(!v[4] ? null : v[4].value)),\n 32440307: (v) => {\n var _a;\n return new IFC4X3.IfcDirection(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcReal(p.value) : null)) || []);\n },\n 593015953: (v) => new IFC4X3.IfcDirectrixCurveSweptAreaSolid(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4])),\n 1472233963: (v) => {\n var _a;\n return new IFC4X3.IfcEdgeLoop(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1883228015: (v) => {\n var _a;\n return new IFC4X3.IfcElementQuantity(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 339256511: (v) => {\n var _a, _b;\n return new IFC4X3.IfcElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 2777663545: (v) => new IFC4X3.IfcElementarySurface(new Handle(!v[0] ? null : v[0].value)),\n 2835456948: (v) => new IFC4X3.IfcEllipseProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)),\n 4024345920: (v) => {\n var _a;\n return new IFC4X3.IfcEventType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4X3.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9], v[10], !v[11] ? null : new IFC4X3.IfcLabel(!v[11] ? null : v[11].value));\n },\n 477187591: (v) => new IFC4X3.IfcExtrudedAreaSolid(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),\n 2804161546: (v) => new IFC4X3.IfcExtrudedAreaSolidTapered(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value)),\n 2047409740: (v) => {\n var _a;\n return new IFC4X3.IfcFaceBasedSurfaceModel(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 374418227: (v) => new IFC4X3.IfcFillAreaStyleHatching(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), new IFC4X3.IfcPlaneAngleMeasure(!v[4] ? null : v[4].value)),\n 315944413: (v) => {\n var _a, _b;\n return new IFC4X3.IfcFillAreaStyleTiles(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4X3.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value));\n },\n 2652556860: (v) => new IFC4X3.IfcFixedReferenceSweptAreaSolid(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), new Handle(!v[5] ? null : v[5].value)),\n 4238390223: (v) => {\n var _a, _b;\n return new IFC4X3.IfcFurnishingElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 1268542332: (v) => {\n var _a, _b;\n return new IFC4X3.IfcFurnitureType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9], v[10]);\n },\n 4095422895: (v) => {\n var _a, _b;\n return new IFC4X3.IfcGeographicElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 987898635: (v) => {\n var _a;\n return new IFC4X3.IfcGeometricCurveSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1484403080: (v) => new IFC4X3.IfcIShapeProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcPlaneAngleMeasure(!v[9] ? null : v[9].value)),\n 178912537: (v) => {\n var _a;\n return new IFC4X3.IfcIndexedPolygonalFace(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcPositiveInteger(p.value) : null)) || []);\n },\n 2294589976: (v) => {\n var _a, _b;\n return new IFC4X3.IfcIndexedPolygonalFaceWithVoids(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcPositiveInteger(p.value) : null)) || [], (_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3.IfcPositiveInteger(p2.value) : null)) || []));\n },\n 3465909080: (v) => {\n var _a, _b;\n return new IFC4X3.IfcIndexedPolygonalTextureMap(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 572779678: (v) => new IFC4X3.IfcLShapeProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcPlaneAngleMeasure(!v[8] ? null : v[8].value)),\n 428585644: (v) => {\n var _a, _b;\n return new IFC4X3.IfcLaborResourceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4X3.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11]);\n },\n 1281925730: (v) => new IFC4X3.IfcLine(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),\n 1425443689: (v) => new IFC4X3.IfcManifoldSolidBrep(new Handle(!v[0] ? null : v[0].value)),\n 3888040117: (v) => new IFC4X3.IfcObject(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value)),\n 590820931: (v) => new IFC4X3.IfcOffsetCurve(new Handle(!v[0] ? null : v[0].value)),\n 3388369263: (v) => new IFC4X3.IfcOffsetCurve2D(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value), new IFC4X3.IfcLogical(!v[2] ? null : v[2].value)),\n 3505215534: (v) => new IFC4X3.IfcOffsetCurve3D(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value), new IFC4X3.IfcLogical(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),\n 2485787929: (v) => {\n var _a;\n return new IFC4X3.IfcOffsetCurveByDistances(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value));\n },\n 1682466193: (v) => new IFC4X3.IfcPcurve(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),\n 603570806: (v) => new IFC4X3.IfcPlanarBox(new IFC4X3.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),\n 220341763: (v) => new IFC4X3.IfcPlane(new Handle(!v[0] ? null : v[0].value)),\n 3381221214: (v) => {\n var _a, _b, _c;\n return new IFC4X3.IfcPolynomialCurve(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcReal(p.value) : null)) || [], !v[2] ? null : ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcReal(p.value) : null)) || [], !v[3] ? null : ((_c = v[3]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcReal(p.value) : null)) || []);\n },\n 759155922: (v) => new IFC4X3.IfcPreDefinedColour(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value)),\n 2559016684: (v) => new IFC4X3.IfcPreDefinedCurveFont(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value)),\n 3967405729: (v) => new IFC4X3.IfcPreDefinedPropertySet(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value)),\n 569719735: (v) => {\n var _a;\n return new IFC4X3.IfcProcedureType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4X3.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2945172077: (v) => new IFC4X3.IfcProcess(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcText(!v[6] ? null : v[6].value)),\n 4208778838: (v) => new IFC4X3.IfcProduct(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),\n 103090709: (v) => {\n var _a;\n return new IFC4X3.IfcProject(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new Handle(!v[8] ? null : v[8].value));\n },\n 653396225: (v) => {\n var _a;\n return new IFC4X3.IfcProjectLibrary(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new Handle(!v[8] ? null : v[8].value));\n },\n 871118103: (v) => new IFC4X3.IfcPropertyBoundedValue(new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : TypeInitialiser(3, v[5])),\n 4166981789: (v) => {\n var _a;\n return new IFC4X3.IfcPropertyEnumeratedValue(new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || [], !v[3] ? null : new Handle(!v[3] ? null : v[3].value));\n },\n 2752243245: (v) => {\n var _a;\n return new IFC4X3.IfcPropertyListValue(new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || [], !v[3] ? null : new Handle(!v[3] ? null : v[3].value));\n },\n 941946838: (v) => new IFC4X3.IfcPropertyReferenceValue(new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value)),\n 1451395588: (v) => {\n var _a;\n return new IFC4X3.IfcPropertySet(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 492091185: (v) => {\n var _a;\n return new IFC4X3.IfcPropertySetTemplate(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), v[4], !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), ((_a = v[6]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3650150729: (v) => new IFC4X3.IfcPropertySingleValue(new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : new Handle(!v[3] ? null : v[3].value)),\n 110355661: (v) => {\n var _a, _b;\n return new IFC4X3.IfcPropertyTableValue(new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || [], !v[3] ? null : ((_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || [], !v[4] ? null : new IFC4X3.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7]);\n },\n 3521284610: (v) => new IFC4X3.IfcPropertyTemplate(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value)),\n 2770003689: (v) => new IFC4X3.IfcRectangleHollowProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value)),\n 2798486643: (v) => new IFC4X3.IfcRectangularPyramid(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),\n 3454111270: (v) => new IFC4X3.IfcRectangularTrimmedSurface(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcParameterValue(!v[1] ? null : v[1].value), new IFC4X3.IfcParameterValue(!v[2] ? null : v[2].value), new IFC4X3.IfcParameterValue(!v[3] ? null : v[3].value), new IFC4X3.IfcParameterValue(!v[4] ? null : v[4].value), new IFC4X3.IfcBoolean(!v[5] ? null : v[5].value), new IFC4X3.IfcBoolean(!v[6] ? null : v[6].value)),\n 3765753017: (v) => {\n var _a;\n return new IFC4X3.IfcReinforcementDefinitionProperties(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3939117080: (v) => {\n var _a;\n return new IFC4X3.IfcRelAssigns(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5]);\n },\n 1683148259: (v) => {\n var _a;\n return new IFC4X3.IfcRelAssignsToActor(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value));\n },\n 2495723537: (v) => {\n var _a;\n return new IFC4X3.IfcRelAssignsToControl(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value));\n },\n 1307041759: (v) => {\n var _a;\n return new IFC4X3.IfcRelAssignsToGroup(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value));\n },\n 1027710054: (v) => {\n var _a;\n return new IFC4X3.IfcRelAssignsToGroupByFactor(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value), new IFC4X3.IfcRatioMeasure(!v[7] ? null : v[7].value));\n },\n 4278684876: (v) => {\n var _a;\n return new IFC4X3.IfcRelAssignsToProcess(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value));\n },\n 2857406711: (v) => {\n var _a;\n return new IFC4X3.IfcRelAssignsToProduct(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value));\n },\n 205026976: (v) => {\n var _a;\n return new IFC4X3.IfcRelAssignsToResource(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value));\n },\n 1865459582: (v) => {\n var _a;\n return new IFC4X3.IfcRelAssociates(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 4095574036: (v) => {\n var _a;\n return new IFC4X3.IfcRelAssociatesApproval(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 919958153: (v) => {\n var _a;\n return new IFC4X3.IfcRelAssociatesClassification(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 2728634034: (v) => {\n var _a;\n return new IFC4X3.IfcRelAssociatesConstraint(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value));\n },\n 982818633: (v) => {\n var _a;\n return new IFC4X3.IfcRelAssociatesDocument(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 3840914261: (v) => {\n var _a;\n return new IFC4X3.IfcRelAssociatesLibrary(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 2655215786: (v) => {\n var _a;\n return new IFC4X3.IfcRelAssociatesMaterial(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 1033248425: (v) => {\n var _a;\n return new IFC4X3.IfcRelAssociatesProfileDef(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 826625072: (v) => new IFC4X3.IfcRelConnects(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value)),\n 1204542856: (v) => new IFC4X3.IfcRelConnectsElements(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value)),\n 3945020480: (v) => {\n var _a, _b;\n return new IFC4X3.IfcRelConnectsPathElements(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcInteger(p.value) : null)) || [], !v[8] ? null : ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcInteger(p.value) : null)) || [], v[9], v[10]);\n },\n 4201705270: (v) => new IFC4X3.IfcRelConnectsPortToElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),\n 3190031847: (v) => new IFC4X3.IfcRelConnectsPorts(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),\n 2127690289: (v) => new IFC4X3.IfcRelConnectsStructuralActivity(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),\n 1638771189: (v) => new IFC4X3.IfcRelConnectsStructuralMember(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value)),\n 504942748: (v) => new IFC4X3.IfcRelConnectsWithEccentricity(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), new Handle(!v[10] ? null : v[10].value)),\n 3678494232: (v) => {\n var _a;\n return new IFC4X3.IfcRelConnectsWithRealizingElements(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value), ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 3242617779: (v) => {\n var _a;\n return new IFC4X3.IfcRelContainedInSpatialStructure(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 886880790: (v) => {\n var _a;\n return new IFC4X3.IfcRelCoversBldgElements(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2802773753: (v) => {\n var _a;\n return new IFC4X3.IfcRelCoversSpaces(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2565941209: (v) => {\n var _a;\n return new IFC4X3.IfcRelDeclares(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 2551354335: (v) => new IFC4X3.IfcRelDecomposes(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value)),\n 693640335: (v) => new IFC4X3.IfcRelDefines(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value)),\n 1462361463: (v) => {\n var _a;\n return new IFC4X3.IfcRelDefinesByObject(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 4186316022: (v) => {\n var _a;\n return new IFC4X3.IfcRelDefinesByProperties(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 307848117: (v) => {\n var _a;\n return new IFC4X3.IfcRelDefinesByTemplate(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 781010003: (v) => {\n var _a;\n return new IFC4X3.IfcRelDefinesByType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 3940055652: (v) => new IFC4X3.IfcRelFillsElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),\n 279856033: (v) => {\n var _a;\n return new IFC4X3.IfcRelFlowControlElements(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 427948657: (v) => new IFC4X3.IfcRelInterferesElements(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcIdentifier(!v[8] ? null : v[8].value), new IFC4X3.IfcLogical(!v[9] ? null : v[9].value)),\n 3268803585: (v) => {\n var _a;\n return new IFC4X3.IfcRelNests(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1441486842: (v) => {\n var _a;\n return new IFC4X3.IfcRelPositions(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 750771296: (v) => new IFC4X3.IfcRelProjectsElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),\n 1245217292: (v) => {\n var _a;\n return new IFC4X3.IfcRelReferencedInSpatialStructure(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));\n },\n 4122056220: (v) => new IFC4X3.IfcRelSequence(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value)),\n 366585022: (v) => {\n var _a;\n return new IFC4X3.IfcRelServicesBuildings(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3451746338: (v) => new IFC4X3.IfcRelSpaceBoundary(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], v[8]),\n 3523091289: (v) => new IFC4X3.IfcRelSpaceBoundary1stLevel(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], v[8], !v[9] ? null : new Handle(!v[9] ? null : v[9].value)),\n 1521410863: (v) => new IFC4X3.IfcRelSpaceBoundary2ndLevel(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], v[8], !v[9] ? null : new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new Handle(!v[10] ? null : v[10].value)),\n 1401173127: (v) => new IFC4X3.IfcRelVoidsElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),\n 816062949: (v) => new IFC4X3.IfcReparametrisedCompositeCurveSegment(v[0], new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcParameterValue(!v[3] ? null : v[3].value)),\n 2914609552: (v) => new IFC4X3.IfcResource(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcText(!v[6] ? null : v[6].value)),\n 1856042241: (v) => new IFC4X3.IfcRevolvedAreaSolid(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPlaneAngleMeasure(!v[3] ? null : v[3].value)),\n 3243963512: (v) => new IFC4X3.IfcRevolvedAreaSolidTapered(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPlaneAngleMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value)),\n 4158566097: (v) => new IFC4X3.IfcRightCircularCone(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)),\n 3626867408: (v) => new IFC4X3.IfcRightCircularCylinder(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)),\n 1862484736: (v) => {\n var _a;\n return new IFC4X3.IfcSectionedSolid(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1290935644: (v) => {\n var _a, _b;\n return new IFC4X3.IfcSectionedSolidHorizontal(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1356537516: (v) => {\n var _a, _b;\n return new IFC4X3.IfcSectionedSurface(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3663146110: (v) => new IFC4X3.IfcSimplePropertyTemplate(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), v[4], !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcLabel(!v[10] ? null : v[10].value), v[11]),\n 1412071761: (v) => new IFC4X3.IfcSpatialElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value)),\n 710998568: (v) => {\n var _a, _b;\n return new IFC4X3.IfcSpatialElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 2706606064: (v) => new IFC4X3.IfcSpatialStructureElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8]),\n 3893378262: (v) => {\n var _a, _b;\n return new IFC4X3.IfcSpatialStructureElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 463610769: (v) => new IFC4X3.IfcSpatialZone(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8]),\n 2481509218: (v) => {\n var _a, _b;\n return new IFC4X3.IfcSpatialZoneType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4X3.IfcLabel(!v[10] ? null : v[10].value));\n },\n 451544542: (v) => new IFC4X3.IfcSphere(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)),\n 4015995234: (v) => new IFC4X3.IfcSphericalSurface(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)),\n 2735484536: (v) => new IFC4X3.IfcSpiral(!v[0] ? null : new Handle(!v[0] ? null : v[0].value)),\n 3544373492: (v) => new IFC4X3.IfcStructuralActivity(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8]),\n 3136571912: (v) => new IFC4X3.IfcStructuralItem(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),\n 530289379: (v) => new IFC4X3.IfcStructuralMember(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),\n 3689010777: (v) => new IFC4X3.IfcStructuralReaction(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8]),\n 3979015343: (v) => new IFC4X3.IfcStructuralSurfaceMember(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value)),\n 2218152070: (v) => new IFC4X3.IfcStructuralSurfaceMemberVarying(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value)),\n 603775116: (v) => new IFC4X3.IfcStructuralSurfaceReaction(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], v[9]),\n 4095615324: (v) => {\n var _a, _b;\n return new IFC4X3.IfcSubContractResourceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4X3.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11]);\n },\n 699246055: (v) => {\n var _a;\n return new IFC4X3.IfcSurfaceCurve(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2]);\n },\n 2028607225: (v) => new IFC4X3.IfcSurfaceCurveSweptAreaSolid(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), new Handle(!v[5] ? null : v[5].value)),\n 2809605785: (v) => new IFC4X3.IfcSurfaceOfLinearExtrusion(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcLengthMeasure(!v[3] ? null : v[3].value)),\n 4124788165: (v) => new IFC4X3.IfcSurfaceOfRevolution(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),\n 1580310250: (v) => {\n var _a, _b;\n return new IFC4X3.IfcSystemFurnitureElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3473067441: (v) => new IFC4X3.IfcTask(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), new IFC4X3.IfcBoolean(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcInteger(!v[10] ? null : v[10].value), !v[11] ? null : new Handle(!v[11] ? null : v[11].value), v[12]),\n 3206491090: (v) => {\n var _a;\n return new IFC4X3.IfcTaskType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4X3.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4X3.IfcLabel(!v[10] ? null : v[10].value));\n },\n 2387106220: (v) => new IFC4X3.IfcTessellatedFaceSet(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value)),\n 782932809: (v) => new IFC4X3.IfcThirdOrderPolynomialSpiral(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLengthMeasure(!v[4] ? null : v[4].value)),\n 1935646853: (v) => new IFC4X3.IfcToroidalSurface(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)),\n 3665877780: (v) => {\n var _a, _b;\n return new IFC4X3.IfcTransportationDeviceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 2916149573: (v) => {\n var _a, _b, _c;\n return new IFC4X3.IfcTriangulatedFaceSet(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : (_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3.IfcParameterValue(p2.value) : null)) || []), (_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3.IfcPositiveInteger(p2.value) : null)) || []), !v[4] ? null : ((_c = v[4]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcPositiveInteger(p.value) : null)) || []);\n },\n 1229763772: (v) => {\n var _a, _b, _c, _d;\n return new IFC4X3.IfcTriangulatedIrregularNetwork(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : (_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3.IfcParameterValue(p2.value) : null)) || []), (_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3.IfcPositiveInteger(p2.value) : null)) || []), !v[4] ? null : ((_c = v[4]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcPositiveInteger(p.value) : null)) || [], ((_d = v[5]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcInteger(p.value) : null)) || []);\n },\n 3651464721: (v) => {\n var _a, _b;\n return new IFC4X3.IfcVehicleType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 336235671: (v) => new IFC4X3.IfcWindowLiningProperties(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new Handle(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3.IfcLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4X3.IfcLengthMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4X3.IfcLengthMeasure(!v[15] ? null : v[15].value)),\n 512836454: (v) => new IFC4X3.IfcWindowPanelProperties(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),\n 2296667514: (v) => new IFC4X3.IfcActor(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),\n 1635779807: (v) => new IFC4X3.IfcAdvancedBrep(new Handle(!v[0] ? null : v[0].value)),\n 2603310189: (v) => {\n var _a;\n return new IFC4X3.IfcAdvancedBrepWithVoids(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1674181508: (v) => new IFC4X3.IfcAnnotation(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7]),\n 2887950389: (v) => {\n var _a;\n return new IFC4X3.IfcBSplineSurface(new IFC4X3.IfcInteger(!v[0] ? null : v[0].value), new IFC4X3.IfcInteger(!v[1] ? null : v[1].value), (_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new Handle(p2.value) : null)) || []), v[3], new IFC4X3.IfcLogical(!v[4] ? null : v[4].value), new IFC4X3.IfcLogical(!v[5] ? null : v[5].value), new IFC4X3.IfcLogical(!v[6] ? null : v[6].value));\n },\n 167062518: (v) => {\n var _a, _b, _c, _d, _e;\n return new IFC4X3.IfcBSplineSurfaceWithKnots(new IFC4X3.IfcInteger(!v[0] ? null : v[0].value), new IFC4X3.IfcInteger(!v[1] ? null : v[1].value), (_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new Handle(p2.value) : null)) || []), v[3], new IFC4X3.IfcLogical(!v[4] ? null : v[4].value), new IFC4X3.IfcLogical(!v[5] ? null : v[5].value), new IFC4X3.IfcLogical(!v[6] ? null : v[6].value), ((_b = v[7]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcInteger(p.value) : null)) || [], ((_c = v[8]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcInteger(p.value) : null)) || [], ((_d = v[9]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcParameterValue(p.value) : null)) || [], ((_e = v[10]) == null ? void 0 : _e.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcParameterValue(p.value) : null)) || [], v[11]);\n },\n 1334484129: (v) => new IFC4X3.IfcBlock(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),\n 3649129432: (v) => new IFC4X3.IfcBooleanClippingResult(v[0], new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),\n 1260505505: (_) => new IFC4X3.IfcBoundedCurve(),\n 3124254112: (v) => new IFC4X3.IfcBuildingStorey(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4X3.IfcLengthMeasure(!v[9] ? null : v[9].value)),\n 1626504194: (v) => {\n var _a, _b;\n return new IFC4X3.IfcBuiltElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 2197970202: (v) => {\n var _a, _b;\n return new IFC4X3.IfcChimneyType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2937912522: (v) => new IFC4X3.IfcCircleHollowProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)),\n 3893394355: (v) => {\n var _a, _b;\n return new IFC4X3.IfcCivilElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 3497074424: (v) => new IFC4X3.IfcClothoid(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value)),\n 300633059: (v) => {\n var _a, _b;\n return new IFC4X3.IfcColumnType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3875453745: (v) => {\n var _a;\n return new IFC4X3.IfcComplexPropertyTemplate(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : ((_a = v[6]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3732776249: (v) => {\n var _a;\n return new IFC4X3.IfcCompositeCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4X3.IfcLogical(!v[1] ? null : v[1].value));\n },\n 15328376: (v) => {\n var _a;\n return new IFC4X3.IfcCompositeCurveOnSurface(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4X3.IfcLogical(!v[1] ? null : v[1].value));\n },\n 2510884976: (v) => new IFC4X3.IfcConic(new Handle(!v[0] ? null : v[0].value)),\n 2185764099: (v) => {\n var _a, _b;\n return new IFC4X3.IfcConstructionEquipmentResourceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4X3.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11]);\n },\n 4105962743: (v) => {\n var _a, _b;\n return new IFC4X3.IfcConstructionMaterialResourceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4X3.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11]);\n },\n 1525564444: (v) => {\n var _a, _b;\n return new IFC4X3.IfcConstructionProductResourceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4X3.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11]);\n },\n 2559216714: (v) => {\n var _a;\n return new IFC4X3.IfcConstructionResource(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value));\n },\n 3293443760: (v) => new IFC4X3.IfcControl(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value)),\n 2000195564: (v) => new IFC4X3.IfcCosineSpiral(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLengthMeasure(!v[2] ? null : v[2].value)),\n 3895139033: (v) => {\n var _a, _b;\n return new IFC4X3.IfcCostItem(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 1419761937: (v) => new IFC4X3.IfcCostSchedule(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcDateTime(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcDateTime(!v[9] ? null : v[9].value)),\n 4189326743: (v) => {\n var _a, _b;\n return new IFC4X3.IfcCourseType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1916426348: (v) => {\n var _a, _b;\n return new IFC4X3.IfcCoveringType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3295246426: (v) => {\n var _a;\n return new IFC4X3.IfcCrewResource(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value), v[10]);\n },\n 1457835157: (v) => {\n var _a, _b;\n return new IFC4X3.IfcCurtainWallType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1213902940: (v) => new IFC4X3.IfcCylindricalSurface(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)),\n 1306400036: (v) => {\n var _a, _b;\n return new IFC4X3.IfcDeepFoundationType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 4234616927: (v) => new IFC4X3.IfcDirectrixDerivedReferenceSweptAreaSolid(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), new Handle(!v[5] ? null : v[5].value)),\n 3256556792: (v) => {\n var _a, _b;\n return new IFC4X3.IfcDistributionElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 3849074793: (v) => {\n var _a, _b;\n return new IFC4X3.IfcDistributionFlowElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 2963535650: (v) => new IFC4X3.IfcDoorLiningProperties(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new Handle(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4X3.IfcLengthMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4X3.IfcLengthMeasure(!v[16] ? null : v[16].value)),\n 1714330368: (v) => new IFC4X3.IfcDoorPanelProperties(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),\n 2323601079: (v) => {\n var _a, _b;\n return new IFC4X3.IfcDoorType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9], v[10], !v[11] ? null : new IFC4X3.IfcBoolean(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcLabel(!v[12] ? null : v[12].value));\n },\n 445594917: (v) => new IFC4X3.IfcDraughtingPreDefinedColour(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value)),\n 4006246654: (v) => new IFC4X3.IfcDraughtingPreDefinedCurveFont(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value)),\n 1758889154: (v) => new IFC4X3.IfcElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 4123344466: (v) => new IFC4X3.IfcElementAssembly(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8], v[9]),\n 2397081782: (v) => {\n var _a, _b;\n return new IFC4X3.IfcElementAssemblyType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1623761950: (v) => new IFC4X3.IfcElementComponent(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 2590856083: (v) => {\n var _a, _b;\n return new IFC4X3.IfcElementComponentType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 1704287377: (v) => new IFC4X3.IfcEllipse(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)),\n 2107101300: (v) => {\n var _a, _b;\n return new IFC4X3.IfcEnergyConversionDeviceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 132023988: (v) => {\n var _a, _b;\n return new IFC4X3.IfcEngineType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3174744832: (v) => {\n var _a, _b;\n return new IFC4X3.IfcEvaporativeCoolerType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3390157468: (v) => {\n var _a, _b;\n return new IFC4X3.IfcEvaporatorType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 4148101412: (v) => new IFC4X3.IfcEvent(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcText(!v[6] ? null : v[6].value), v[7], v[8], !v[9] ? null : new IFC4X3.IfcLabel(!v[9] ? null : v[9].value), !v[10] ? null : new Handle(!v[10] ? null : v[10].value)),\n 2853485674: (v) => new IFC4X3.IfcExternalSpatialStructureElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value)),\n 807026263: (v) => new IFC4X3.IfcFacetedBrep(new Handle(!v[0] ? null : v[0].value)),\n 3737207727: (v) => {\n var _a;\n return new IFC4X3.IfcFacetedBrepWithVoids(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 24185140: (v) => new IFC4X3.IfcFacility(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8]),\n 1310830890: (v) => new IFC4X3.IfcFacilityPart(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9]),\n 4228831410: (v) => new IFC4X3.IfcFacilityPartCommon(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], v[10]),\n 647756555: (v) => new IFC4X3.IfcFastener(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2489546625: (v) => {\n var _a, _b;\n return new IFC4X3.IfcFastenerType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2827207264: (v) => new IFC4X3.IfcFeatureElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 2143335405: (v) => new IFC4X3.IfcFeatureElementAddition(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 1287392070: (v) => new IFC4X3.IfcFeatureElementSubtraction(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 3907093117: (v) => {\n var _a, _b;\n return new IFC4X3.IfcFlowControllerType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 3198132628: (v) => {\n var _a, _b;\n return new IFC4X3.IfcFlowFittingType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 3815607619: (v) => {\n var _a, _b;\n return new IFC4X3.IfcFlowMeterType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1482959167: (v) => {\n var _a, _b;\n return new IFC4X3.IfcFlowMovingDeviceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 1834744321: (v) => {\n var _a, _b;\n return new IFC4X3.IfcFlowSegmentType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 1339347760: (v) => {\n var _a, _b;\n return new IFC4X3.IfcFlowStorageDeviceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 2297155007: (v) => {\n var _a, _b;\n return new IFC4X3.IfcFlowTerminalType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 3009222698: (v) => {\n var _a, _b;\n return new IFC4X3.IfcFlowTreatmentDeviceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 1893162501: (v) => {\n var _a, _b;\n return new IFC4X3.IfcFootingType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 263784265: (v) => new IFC4X3.IfcFurnishingElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 1509553395: (v) => new IFC4X3.IfcFurniture(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3493046030: (v) => new IFC4X3.IfcGeographicElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 4230923436: (v) => new IFC4X3.IfcGeotechnicalElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 1594536857: (v) => new IFC4X3.IfcGeotechnicalStratum(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2898700619: (v) => {\n var _a;\n return new IFC4X3.IfcGradientCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4X3.IfcLogical(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value));\n },\n 2706460486: (v) => new IFC4X3.IfcGroup(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value)),\n 1251058090: (v) => {\n var _a, _b;\n return new IFC4X3.IfcHeatExchangerType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1806887404: (v) => {\n var _a, _b;\n return new IFC4X3.IfcHumidifierType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2568555532: (v) => new IFC4X3.IfcImpactProtectionDevice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3948183225: (v) => {\n var _a, _b;\n return new IFC4X3.IfcImpactProtectionDeviceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2571569899: (v) => {\n var _a;\n return new IFC4X3.IfcIndexedPolyCurve(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || [], new IFC4X3.IfcLogical(!v[2] ? null : v[2].value));\n },\n 3946677679: (v) => {\n var _a, _b;\n return new IFC4X3.IfcInterceptorType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3113134337: (v) => {\n var _a;\n return new IFC4X3.IfcIntersectionCurve(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2]);\n },\n 2391368822: (v) => {\n var _a;\n return new IFC4X3.IfcInventory(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new IFC4X3.IfcDate(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new Handle(!v[10] ? null : v[10].value));\n },\n 4288270099: (v) => {\n var _a, _b;\n return new IFC4X3.IfcJunctionBoxType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 679976338: (v) => {\n var _a, _b;\n return new IFC4X3.IfcKerbType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), new IFC4X3.IfcBoolean(!v[9] ? null : v[9].value));\n },\n 3827777499: (v) => {\n var _a;\n return new IFC4X3.IfcLaborResource(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value), v[10]);\n },\n 1051575348: (v) => {\n var _a, _b;\n return new IFC4X3.IfcLampType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1161773419: (v) => {\n var _a, _b;\n return new IFC4X3.IfcLightFixtureType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2176059722: (v) => new IFC4X3.IfcLinearElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),\n 1770583370: (v) => {\n var _a, _b;\n return new IFC4X3.IfcLiquidTerminalType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 525669439: (v) => new IFC4X3.IfcMarineFacility(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9]),\n 976884017: (v) => new IFC4X3.IfcMarinePart(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], v[10]),\n 377706215: (v) => new IFC4X3.IfcMechanicalFastener(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), v[10]),\n 2108223431: (v) => {\n var _a, _b;\n return new IFC4X3.IfcMechanicalFastenerType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value));\n },\n 1114901282: (v) => {\n var _a, _b;\n return new IFC4X3.IfcMedicalDeviceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3181161470: (v) => {\n var _a, _b;\n return new IFC4X3.IfcMemberType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1950438474: (v) => {\n var _a, _b;\n return new IFC4X3.IfcMobileTelecommunicationsApplianceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 710110818: (v) => {\n var _a, _b;\n return new IFC4X3.IfcMooringDeviceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 977012517: (v) => {\n var _a, _b;\n return new IFC4X3.IfcMotorConnectionType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 506776471: (v) => {\n var _a, _b;\n return new IFC4X3.IfcNavigationElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 4143007308: (v) => new IFC4X3.IfcOccupant(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), v[6]),\n 3588315303: (v) => new IFC4X3.IfcOpeningElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2837617999: (v) => {\n var _a, _b;\n return new IFC4X3.IfcOutletType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 514975943: (v) => {\n var _a, _b;\n return new IFC4X3.IfcPavementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2382730787: (v) => new IFC4X3.IfcPerformanceHistory(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4X3.IfcLabel(!v[6] ? null : v[6].value), v[7]),\n 3566463478: (v) => new IFC4X3.IfcPermeableCoveringProperties(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),\n 3327091369: (v) => new IFC4X3.IfcPermit(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcText(!v[8] ? null : v[8].value)),\n 1158309216: (v) => {\n var _a, _b;\n return new IFC4X3.IfcPileType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 804291784: (v) => {\n var _a, _b;\n return new IFC4X3.IfcPipeFittingType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 4231323485: (v) => {\n var _a, _b;\n return new IFC4X3.IfcPipeSegmentType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 4017108033: (v) => {\n var _a, _b;\n return new IFC4X3.IfcPlateType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2839578677: (v) => {\n var _a, _b;\n return new IFC4X3.IfcPolygonalFaceSet(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[3] ? null : ((_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcPositiveInteger(p.value) : null)) || []);\n },\n 3724593414: (v) => {\n var _a;\n return new IFC4X3.IfcPolyline(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 3740093272: (v) => new IFC4X3.IfcPort(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),\n 1946335990: (v) => new IFC4X3.IfcPositioningElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),\n 2744685151: (v) => new IFC4X3.IfcProcedure(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcText(!v[6] ? null : v[6].value), v[7]),\n 2904328755: (v) => new IFC4X3.IfcProjectOrder(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcText(!v[8] ? null : v[8].value)),\n 3651124850: (v) => new IFC4X3.IfcProjectionElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1842657554: (v) => {\n var _a, _b;\n return new IFC4X3.IfcProtectiveDeviceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2250791053: (v) => {\n var _a, _b;\n return new IFC4X3.IfcPumpType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1763565496: (v) => {\n var _a, _b;\n return new IFC4X3.IfcRailType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2893384427: (v) => {\n var _a, _b;\n return new IFC4X3.IfcRailingType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3992365140: (v) => new IFC4X3.IfcRailway(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9]),\n 1891881377: (v) => new IFC4X3.IfcRailwayPart(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], v[10]),\n 2324767716: (v) => {\n var _a, _b;\n return new IFC4X3.IfcRampFlightType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1469900589: (v) => {\n var _a, _b;\n return new IFC4X3.IfcRampType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 683857671: (v) => {\n var _a, _b, _c, _d, _e, _f;\n return new IFC4X3.IfcRationalBSplineSurfaceWithKnots(new IFC4X3.IfcInteger(!v[0] ? null : v[0].value), new IFC4X3.IfcInteger(!v[1] ? null : v[1].value), (_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new Handle(p2.value) : null)) || []), v[3], new IFC4X3.IfcLogical(!v[4] ? null : v[4].value), new IFC4X3.IfcLogical(!v[5] ? null : v[5].value), new IFC4X3.IfcLogical(!v[6] ? null : v[6].value), ((_b = v[7]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcInteger(p.value) : null)) || [], ((_c = v[8]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcInteger(p.value) : null)) || [], ((_d = v[9]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcParameterValue(p.value) : null)) || [], ((_e = v[10]) == null ? void 0 : _e.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcParameterValue(p.value) : null)) || [], v[11], (_f = v[12]) == null ? void 0 : _f.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3.IfcReal(p2.value) : null)) || []));\n },\n 4021432810: (v) => new IFC4X3.IfcReferent(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7]),\n 3027567501: (v) => new IFC4X3.IfcReinforcingElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value)),\n 964333572: (v) => {\n var _a, _b;\n return new IFC4X3.IfcReinforcingElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 2320036040: (v) => new IFC4X3.IfcReinforcingMesh(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3.IfcAreaMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4X3.IfcAreaMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[16] ? null : v[16].value), v[17]),\n 2310774935: (v) => {\n var _a, _b, _c;\n return new IFC4X3.IfcReinforcingMeshType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4X3.IfcAreaMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4X3.IfcAreaMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[16] ? null : v[16].value), !v[17] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[17] ? null : v[17].value), !v[18] ? null : new IFC4X3.IfcLabel(!v[18] ? null : v[18].value), !v[19] ? null : ((_c = v[19]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || []);\n },\n 3818125796: (v) => {\n var _a;\n return new IFC4X3.IfcRelAdheresToElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 160246688: (v) => {\n var _a;\n return new IFC4X3.IfcRelAggregates(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);\n },\n 146592293: (v) => new IFC4X3.IfcRoad(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9]),\n 550521510: (v) => new IFC4X3.IfcRoadPart(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], v[10]),\n 2781568857: (v) => {\n var _a, _b;\n return new IFC4X3.IfcRoofType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1768891740: (v) => {\n var _a, _b;\n return new IFC4X3.IfcSanitaryTerminalType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2157484638: (v) => {\n var _a;\n return new IFC4X3.IfcSeamCurve(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2]);\n },\n 3649235739: (v) => new IFC4X3.IfcSecondOrderPolynomialSpiral(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcLengthMeasure(!v[3] ? null : v[3].value)),\n 544395925: (v) => {\n var _a;\n return new IFC4X3.IfcSegmentedReferenceCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4X3.IfcLogical(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value));\n },\n 1027922057: (v) => new IFC4X3.IfcSeventhOrderPolynomialSpiral(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLengthMeasure(!v[8] ? null : v[8].value)),\n 4074543187: (v) => {\n var _a, _b;\n return new IFC4X3.IfcShadingDeviceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 33720170: (v) => new IFC4X3.IfcSign(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3599934289: (v) => {\n var _a, _b;\n return new IFC4X3.IfcSignType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1894708472: (v) => {\n var _a, _b;\n return new IFC4X3.IfcSignalType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 42703149: (v) => new IFC4X3.IfcSineSpiral(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcLengthMeasure(!v[3] ? null : v[3].value)),\n 4097777520: (v) => new IFC4X3.IfcSite(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4X3.IfcCompoundPlaneAngleMeasure(v[9].map((x) => x.value)), !v[10] ? null : new IFC4X3.IfcCompoundPlaneAngleMeasure(v[10].map((x) => x.value)), !v[11] ? null : new IFC4X3.IfcLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcLabel(!v[12] ? null : v[12].value), !v[13] ? null : new Handle(!v[13] ? null : v[13].value)),\n 2533589738: (v) => {\n var _a, _b;\n return new IFC4X3.IfcSlabType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1072016465: (v) => {\n var _a, _b;\n return new IFC4X3.IfcSolarDeviceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3856911033: (v) => new IFC4X3.IfcSpace(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], !v[10] ? null : new IFC4X3.IfcLengthMeasure(!v[10] ? null : v[10].value)),\n 1305183839: (v) => {\n var _a, _b;\n return new IFC4X3.IfcSpaceHeaterType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3812236995: (v) => {\n var _a, _b;\n return new IFC4X3.IfcSpaceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4X3.IfcLabel(!v[10] ? null : v[10].value));\n },\n 3112655638: (v) => {\n var _a, _b;\n return new IFC4X3.IfcStackTerminalType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1039846685: (v) => {\n var _a, _b;\n return new IFC4X3.IfcStairFlightType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 338393293: (v) => {\n var _a, _b;\n return new IFC4X3.IfcStairType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 682877961: (v) => new IFC4X3.IfcStructuralAction(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4X3.IfcBoolean(!v[9] ? null : v[9].value)),\n 1179482911: (v) => new IFC4X3.IfcStructuralConnection(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value)),\n 1004757350: (v) => new IFC4X3.IfcStructuralCurveAction(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4X3.IfcBoolean(!v[9] ? null : v[9].value), v[10], v[11]),\n 4243806635: (v) => new IFC4X3.IfcStructuralCurveConnection(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), new Handle(!v[8] ? null : v[8].value)),\n 214636428: (v) => new IFC4X3.IfcStructuralCurveMember(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], new Handle(!v[8] ? null : v[8].value)),\n 2445595289: (v) => new IFC4X3.IfcStructuralCurveMemberVarying(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], new Handle(!v[8] ? null : v[8].value)),\n 2757150158: (v) => new IFC4X3.IfcStructuralCurveReaction(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], v[9]),\n 1807405624: (v) => new IFC4X3.IfcStructuralLinearAction(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4X3.IfcBoolean(!v[9] ? null : v[9].value), v[10], v[11]),\n 1252848954: (v) => new IFC4X3.IfcStructuralLoadGroup(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), v[5], v[6], v[7], !v[8] ? null : new IFC4X3.IfcRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcLabel(!v[9] ? null : v[9].value)),\n 2082059205: (v) => new IFC4X3.IfcStructuralPointAction(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4X3.IfcBoolean(!v[9] ? null : v[9].value)),\n 734778138: (v) => new IFC4X3.IfcStructuralPointConnection(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),\n 1235345126: (v) => new IFC4X3.IfcStructuralPointReaction(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8]),\n 2986769608: (v) => new IFC4X3.IfcStructuralResultGroup(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new IFC4X3.IfcBoolean(!v[7] ? null : v[7].value)),\n 3657597509: (v) => new IFC4X3.IfcStructuralSurfaceAction(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4X3.IfcBoolean(!v[9] ? null : v[9].value), v[10], v[11]),\n 1975003073: (v) => new IFC4X3.IfcStructuralSurfaceConnection(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value)),\n 148013059: (v) => {\n var _a;\n return new IFC4X3.IfcSubContractResource(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value), v[10]);\n },\n 3101698114: (v) => new IFC4X3.IfcSurfaceFeature(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2315554128: (v) => {\n var _a, _b;\n return new IFC4X3.IfcSwitchingDeviceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2254336722: (v) => new IFC4X3.IfcSystem(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value)),\n 413509423: (v) => new IFC4X3.IfcSystemFurnitureElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 5716631: (v) => {\n var _a, _b;\n return new IFC4X3.IfcTankType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3824725483: (v) => new IFC4X3.IfcTendon(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcAreaMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcForceMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3.IfcPressureMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[16] ? null : v[16].value)),\n 2347447852: (v) => new IFC4X3.IfcTendonAnchor(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]),\n 3081323446: (v) => {\n var _a, _b;\n return new IFC4X3.IfcTendonAnchorType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3663046924: (v) => new IFC4X3.IfcTendonConduit(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]),\n 2281632017: (v) => {\n var _a, _b;\n return new IFC4X3.IfcTendonConduitType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2415094496: (v) => {\n var _a, _b;\n return new IFC4X3.IfcTendonType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcAreaMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value));\n },\n 618700268: (v) => {\n var _a, _b;\n return new IFC4X3.IfcTrackElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1692211062: (v) => {\n var _a, _b;\n return new IFC4X3.IfcTransformerType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2097647324: (v) => {\n var _a, _b;\n return new IFC4X3.IfcTransportElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1953115116: (v) => new IFC4X3.IfcTransportationDevice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 3593883385: (v) => {\n var _a, _b;\n return new IFC4X3.IfcTrimmedCurve(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4X3.IfcBoolean(!v[3] ? null : v[3].value), v[4]);\n },\n 1600972822: (v) => {\n var _a, _b;\n return new IFC4X3.IfcTubeBundleType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1911125066: (v) => {\n var _a, _b;\n return new IFC4X3.IfcUnitaryEquipmentType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 728799441: (v) => {\n var _a, _b;\n return new IFC4X3.IfcValveType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 840318589: (v) => new IFC4X3.IfcVehicle(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1530820697: (v) => new IFC4X3.IfcVibrationDamper(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3956297820: (v) => {\n var _a, _b;\n return new IFC4X3.IfcVibrationDamperType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2391383451: (v) => new IFC4X3.IfcVibrationIsolator(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3313531582: (v) => {\n var _a, _b;\n return new IFC4X3.IfcVibrationIsolatorType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2769231204: (v) => new IFC4X3.IfcVirtualElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 926996030: (v) => new IFC4X3.IfcVoidingFeature(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1898987631: (v) => {\n var _a, _b;\n return new IFC4X3.IfcWallType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1133259667: (v) => {\n var _a, _b;\n return new IFC4X3.IfcWasteTerminalType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 4009809668: (v) => {\n var _a, _b;\n return new IFC4X3.IfcWindowType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9], v[10], !v[11] ? null : new IFC4X3.IfcBoolean(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcLabel(!v[12] ? null : v[12].value));\n },\n 4088093105: (v) => {\n var _a, _b;\n return new IFC4X3.IfcWorkCalendar(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : ((_a = v[6]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : ((_b = v[7]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[8]);\n },\n 1028945134: (v) => {\n var _a;\n return new IFC4X3.IfcWorkControl(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4X3.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcDuration(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcDuration(!v[10] ? null : v[10].value), new IFC4X3.IfcDateTime(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcDateTime(!v[12] ? null : v[12].value));\n },\n 4218914973: (v) => {\n var _a;\n return new IFC4X3.IfcWorkPlan(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4X3.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcDuration(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcDuration(!v[10] ? null : v[10].value), new IFC4X3.IfcDateTime(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcDateTime(!v[12] ? null : v[12].value), v[13]);\n },\n 3342526732: (v) => {\n var _a;\n return new IFC4X3.IfcWorkSchedule(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4X3.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcDuration(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcDuration(!v[10] ? null : v[10].value), new IFC4X3.IfcDateTime(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcDateTime(!v[12] ? null : v[12].value), v[13]);\n },\n 1033361043: (v) => new IFC4X3.IfcZone(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value)),\n 3821786052: (v) => new IFC4X3.IfcActionRequest(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcText(!v[8] ? null : v[8].value)),\n 1411407467: (v) => {\n var _a, _b;\n return new IFC4X3.IfcAirTerminalBoxType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3352864051: (v) => {\n var _a, _b;\n return new IFC4X3.IfcAirTerminalType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1871374353: (v) => {\n var _a, _b;\n return new IFC4X3.IfcAirToAirHeatRecoveryType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 4266260250: (v) => new IFC4X3.IfcAlignmentCant(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new IFC4X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value)),\n 1545765605: (v) => new IFC4X3.IfcAlignmentHorizontal(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),\n 317615605: (v) => new IFC4X3.IfcAlignmentSegment(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value)),\n 1662888072: (v) => new IFC4X3.IfcAlignmentVertical(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),\n 3460190687: (v) => new IFC4X3.IfcAsset(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new Handle(!v[10] ? null : v[10].value), !v[11] ? null : new Handle(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcDate(!v[12] ? null : v[12].value), !v[13] ? null : new Handle(!v[13] ? null : v[13].value)),\n 1532957894: (v) => {\n var _a, _b;\n return new IFC4X3.IfcAudioVisualApplianceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1967976161: (v) => {\n var _a;\n return new IFC4X3.IfcBSplineCurve(new IFC4X3.IfcInteger(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2], new IFC4X3.IfcLogical(!v[3] ? null : v[3].value), new IFC4X3.IfcLogical(!v[4] ? null : v[4].value));\n },\n 2461110595: (v) => {\n var _a, _b, _c;\n return new IFC4X3.IfcBSplineCurveWithKnots(new IFC4X3.IfcInteger(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2], new IFC4X3.IfcLogical(!v[3] ? null : v[3].value), new IFC4X3.IfcLogical(!v[4] ? null : v[4].value), ((_b = v[5]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcInteger(p.value) : null)) || [], ((_c = v[6]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcParameterValue(p.value) : null)) || [], v[7]);\n },\n 819618141: (v) => {\n var _a, _b;\n return new IFC4X3.IfcBeamType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3649138523: (v) => {\n var _a, _b;\n return new IFC4X3.IfcBearingType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 231477066: (v) => {\n var _a, _b;\n return new IFC4X3.IfcBoilerType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1136057603: (v) => {\n var _a;\n return new IFC4X3.IfcBoundaryCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4X3.IfcLogical(!v[1] ? null : v[1].value));\n },\n 644574406: (v) => new IFC4X3.IfcBridge(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9]),\n 963979645: (v) => new IFC4X3.IfcBridgePart(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], v[10]),\n 4031249490: (v) => new IFC4X3.IfcBuilding(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4X3.IfcLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new Handle(!v[11] ? null : v[11].value)),\n 2979338954: (v) => new IFC4X3.IfcBuildingElementPart(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 39481116: (v) => {\n var _a, _b;\n return new IFC4X3.IfcBuildingElementPartType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1909888760: (v) => {\n var _a, _b;\n return new IFC4X3.IfcBuildingElementProxyType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1177604601: (v) => new IFC4X3.IfcBuildingSystem(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value)),\n 1876633798: (v) => new IFC4X3.IfcBuiltElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 3862327254: (v) => new IFC4X3.IfcBuiltSystem(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value)),\n 2188180465: (v) => {\n var _a, _b;\n return new IFC4X3.IfcBurnerType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 395041908: (v) => {\n var _a, _b;\n return new IFC4X3.IfcCableCarrierFittingType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3293546465: (v) => {\n var _a, _b;\n return new IFC4X3.IfcCableCarrierSegmentType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2674252688: (v) => {\n var _a, _b;\n return new IFC4X3.IfcCableFittingType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1285652485: (v) => {\n var _a, _b;\n return new IFC4X3.IfcCableSegmentType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3203706013: (v) => {\n var _a, _b;\n return new IFC4X3.IfcCaissonFoundationType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2951183804: (v) => {\n var _a, _b;\n return new IFC4X3.IfcChillerType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3296154744: (v) => new IFC4X3.IfcChimney(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2611217952: (v) => new IFC4X3.IfcCircle(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)),\n 1677625105: (v) => new IFC4X3.IfcCivilElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 2301859152: (v) => {\n var _a, _b;\n return new IFC4X3.IfcCoilType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 843113511: (v) => new IFC4X3.IfcColumn(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 400855858: (v) => {\n var _a, _b;\n return new IFC4X3.IfcCommunicationsApplianceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3850581409: (v) => {\n var _a, _b;\n return new IFC4X3.IfcCompressorType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2816379211: (v) => {\n var _a, _b;\n return new IFC4X3.IfcCondenserType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3898045240: (v) => {\n var _a;\n return new IFC4X3.IfcConstructionEquipmentResource(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value), v[10]);\n },\n 1060000209: (v) => {\n var _a;\n return new IFC4X3.IfcConstructionMaterialResource(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value), v[10]);\n },\n 488727124: (v) => {\n var _a;\n return new IFC4X3.IfcConstructionProductResource(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value), v[10]);\n },\n 2940368186: (v) => {\n var _a, _b;\n return new IFC4X3.IfcConveyorSegmentType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 335055490: (v) => {\n var _a, _b;\n return new IFC4X3.IfcCooledBeamType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2954562838: (v) => {\n var _a, _b;\n return new IFC4X3.IfcCoolingTowerType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1502416096: (v) => new IFC4X3.IfcCourse(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1973544240: (v) => new IFC4X3.IfcCovering(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3495092785: (v) => new IFC4X3.IfcCurtainWall(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3961806047: (v) => {\n var _a, _b;\n return new IFC4X3.IfcDamperType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3426335179: (v) => new IFC4X3.IfcDeepFoundation(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 1335981549: (v) => new IFC4X3.IfcDiscreteAccessory(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2635815018: (v) => {\n var _a, _b;\n return new IFC4X3.IfcDiscreteAccessoryType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 479945903: (v) => {\n var _a, _b;\n return new IFC4X3.IfcDistributionBoardType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1599208980: (v) => {\n var _a, _b;\n return new IFC4X3.IfcDistributionChamberElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2063403501: (v) => {\n var _a, _b;\n return new IFC4X3.IfcDistributionControlElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));\n },\n 1945004755: (v) => new IFC4X3.IfcDistributionElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 3040386961: (v) => new IFC4X3.IfcDistributionFlowElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 3041715199: (v) => new IFC4X3.IfcDistributionPort(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], v[8], v[9]),\n 3205830791: (v) => new IFC4X3.IfcDistributionSystem(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value), v[6]),\n 395920057: (v) => new IFC4X3.IfcDoor(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), v[10], v[11], !v[12] ? null : new IFC4X3.IfcLabel(!v[12] ? null : v[12].value)),\n 869906466: (v) => {\n var _a, _b;\n return new IFC4X3.IfcDuctFittingType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3760055223: (v) => {\n var _a, _b;\n return new IFC4X3.IfcDuctSegmentType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2030761528: (v) => {\n var _a, _b;\n return new IFC4X3.IfcDuctSilencerType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3071239417: (v) => new IFC4X3.IfcEarthworksCut(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1077100507: (v) => new IFC4X3.IfcEarthworksElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 3376911765: (v) => new IFC4X3.IfcEarthworksFill(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 663422040: (v) => {\n var _a, _b;\n return new IFC4X3.IfcElectricApplianceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2417008758: (v) => {\n var _a, _b;\n return new IFC4X3.IfcElectricDistributionBoardType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3277789161: (v) => {\n var _a, _b;\n return new IFC4X3.IfcElectricFlowStorageDeviceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2142170206: (v) => {\n var _a, _b;\n return new IFC4X3.IfcElectricFlowTreatmentDeviceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1534661035: (v) => {\n var _a, _b;\n return new IFC4X3.IfcElectricGeneratorType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1217240411: (v) => {\n var _a, _b;\n return new IFC4X3.IfcElectricMotorType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 712377611: (v) => {\n var _a, _b;\n return new IFC4X3.IfcElectricTimeControlType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1658829314: (v) => new IFC4X3.IfcEnergyConversionDevice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 2814081492: (v) => new IFC4X3.IfcEngine(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3747195512: (v) => new IFC4X3.IfcEvaporativeCooler(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 484807127: (v) => new IFC4X3.IfcEvaporator(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1209101575: (v) => new IFC4X3.IfcExternalSpatialElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8]),\n 346874300: (v) => {\n var _a, _b;\n return new IFC4X3.IfcFanType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1810631287: (v) => {\n var _a, _b;\n return new IFC4X3.IfcFilterType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 4222183408: (v) => {\n var _a, _b;\n return new IFC4X3.IfcFireSuppressionTerminalType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2058353004: (v) => new IFC4X3.IfcFlowController(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 4278956645: (v) => new IFC4X3.IfcFlowFitting(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 4037862832: (v) => {\n var _a, _b;\n return new IFC4X3.IfcFlowInstrumentType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 2188021234: (v) => new IFC4X3.IfcFlowMeter(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3132237377: (v) => new IFC4X3.IfcFlowMovingDevice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 987401354: (v) => new IFC4X3.IfcFlowSegment(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 707683696: (v) => new IFC4X3.IfcFlowStorageDevice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 2223149337: (v) => new IFC4X3.IfcFlowTerminal(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 3508470533: (v) => new IFC4X3.IfcFlowTreatmentDevice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 900683007: (v) => new IFC4X3.IfcFooting(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2713699986: (v) => new IFC4X3.IfcGeotechnicalAssembly(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 3009204131: (v) => {\n var _a, _b, _c;\n return new IFC4X3.IfcGrid(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : ((_c = v[9]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[10]);\n },\n 3319311131: (v) => new IFC4X3.IfcHeatExchanger(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2068733104: (v) => new IFC4X3.IfcHumidifier(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 4175244083: (v) => new IFC4X3.IfcInterceptor(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2176052936: (v) => new IFC4X3.IfcJunctionBox(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2696325953: (v) => new IFC4X3.IfcKerb(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), new IFC4X3.IfcBoolean(!v[8] ? null : v[8].value)),\n 76236018: (v) => new IFC4X3.IfcLamp(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 629592764: (v) => new IFC4X3.IfcLightFixture(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1154579445: (v) => new IFC4X3.IfcLinearPositioningElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),\n 1638804497: (v) => new IFC4X3.IfcLiquidTerminal(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1437502449: (v) => new IFC4X3.IfcMedicalDevice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1073191201: (v) => new IFC4X3.IfcMember(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2078563270: (v) => new IFC4X3.IfcMobileTelecommunicationsAppliance(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 234836483: (v) => new IFC4X3.IfcMooringDevice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2474470126: (v) => new IFC4X3.IfcMotorConnection(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2182337498: (v) => new IFC4X3.IfcNavigationElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 144952367: (v) => {\n var _a;\n return new IFC4X3.IfcOuterBoundaryCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4X3.IfcLogical(!v[1] ? null : v[1].value));\n },\n 3694346114: (v) => new IFC4X3.IfcOutlet(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1383356374: (v) => new IFC4X3.IfcPavement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1687234759: (v) => new IFC4X3.IfcPile(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8], v[9]),\n 310824031: (v) => new IFC4X3.IfcPipeFitting(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3612865200: (v) => new IFC4X3.IfcPipeSegment(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3171933400: (v) => new IFC4X3.IfcPlate(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 738039164: (v) => new IFC4X3.IfcProtectiveDevice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 655969474: (v) => {\n var _a, _b;\n return new IFC4X3.IfcProtectiveDeviceTrippingUnitType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 90941305: (v) => new IFC4X3.IfcPump(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3290496277: (v) => new IFC4X3.IfcRail(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2262370178: (v) => new IFC4X3.IfcRailing(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3024970846: (v) => new IFC4X3.IfcRamp(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3283111854: (v) => new IFC4X3.IfcRampFlight(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1232101972: (v) => {\n var _a, _b, _c, _d;\n return new IFC4X3.IfcRationalBSplineCurveWithKnots(new IFC4X3.IfcInteger(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2], new IFC4X3.IfcLogical(!v[3] ? null : v[3].value), new IFC4X3.IfcLogical(!v[4] ? null : v[4].value), ((_b = v[5]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcInteger(p.value) : null)) || [], ((_c = v[6]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcParameterValue(p.value) : null)) || [], v[7], ((_d = v[8]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcReal(p.value) : null)) || []);\n },\n 3798194928: (v) => new IFC4X3.IfcReinforcedSoil(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 979691226: (v) => new IFC4X3.IfcReinforcingBar(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcAreaMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), v[12], v[13]),\n 2572171363: (v) => {\n var _a, _b, _c;\n return new IFC4X3.IfcReinforcingBarType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcAreaMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), v[13], !v[14] ? null : new IFC4X3.IfcLabel(!v[14] ? null : v[14].value), !v[15] ? null : ((_c = v[15]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || []);\n },\n 2016517767: (v) => new IFC4X3.IfcRoof(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3053780830: (v) => new IFC4X3.IfcSanitaryTerminal(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1783015770: (v) => {\n var _a, _b;\n return new IFC4X3.IfcSensorType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1329646415: (v) => new IFC4X3.IfcShadingDevice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 991950508: (v) => new IFC4X3.IfcSignal(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1529196076: (v) => new IFC4X3.IfcSlab(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3420628829: (v) => new IFC4X3.IfcSolarDevice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1999602285: (v) => new IFC4X3.IfcSpaceHeater(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1404847402: (v) => new IFC4X3.IfcStackTerminal(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 331165859: (v) => new IFC4X3.IfcStair(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 4252922144: (v) => new IFC4X3.IfcStairFlight(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcInteger(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcInteger(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), v[12]),\n 2515109513: (v) => {\n var _a, _b;\n return new IFC4X3.IfcStructuralAnalysisModel(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value));\n },\n 385403989: (v) => {\n var _a;\n return new IFC4X3.IfcStructuralLoadCase(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), v[5], v[6], v[7], !v[8] ? null : new IFC4X3.IfcRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcLabel(!v[9] ? null : v[9].value), !v[10] ? null : ((_a = v[10]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcRatioMeasure(p.value) : null)) || []);\n },\n 1621171031: (v) => new IFC4X3.IfcStructuralPlanarAction(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4X3.IfcBoolean(!v[9] ? null : v[9].value), v[10], v[11]),\n 1162798199: (v) => new IFC4X3.IfcSwitchingDevice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 812556717: (v) => new IFC4X3.IfcTank(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3425753595: (v) => new IFC4X3.IfcTrackElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3825984169: (v) => new IFC4X3.IfcTransformer(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1620046519: (v) => new IFC4X3.IfcTransportElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3026737570: (v) => new IFC4X3.IfcTubeBundle(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3179687236: (v) => {\n var _a, _b;\n return new IFC4X3.IfcUnitaryControlElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 4292641817: (v) => new IFC4X3.IfcUnitaryEquipment(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 4207607924: (v) => new IFC4X3.IfcValve(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2391406946: (v) => new IFC4X3.IfcWall(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3512223829: (v) => new IFC4X3.IfcWallStandardCase(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 4237592921: (v) => new IFC4X3.IfcWasteTerminal(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3304561284: (v) => new IFC4X3.IfcWindow(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), v[10], v[11], !v[12] ? null : new IFC4X3.IfcLabel(!v[12] ? null : v[12].value)),\n 2874132201: (v) => {\n var _a, _b;\n return new IFC4X3.IfcActuatorType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 1634111441: (v) => new IFC4X3.IfcAirTerminal(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 177149247: (v) => new IFC4X3.IfcAirTerminalBox(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2056796094: (v) => new IFC4X3.IfcAirToAirHeatRecovery(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3001207471: (v) => {\n var _a, _b;\n return new IFC4X3.IfcAlarmType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 325726236: (v) => new IFC4X3.IfcAlignment(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7]),\n 277319702: (v) => new IFC4X3.IfcAudioVisualAppliance(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 753842376: (v) => new IFC4X3.IfcBeam(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 4196446775: (v) => new IFC4X3.IfcBearing(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 32344328: (v) => new IFC4X3.IfcBoiler(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3314249567: (v) => new IFC4X3.IfcBorehole(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 1095909175: (v) => new IFC4X3.IfcBuildingElementProxy(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2938176219: (v) => new IFC4X3.IfcBurner(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 635142910: (v) => new IFC4X3.IfcCableCarrierFitting(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3758799889: (v) => new IFC4X3.IfcCableCarrierSegment(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1051757585: (v) => new IFC4X3.IfcCableFitting(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 4217484030: (v) => new IFC4X3.IfcCableSegment(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3999819293: (v) => new IFC4X3.IfcCaissonFoundation(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3902619387: (v) => new IFC4X3.IfcChiller(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 639361253: (v) => new IFC4X3.IfcCoil(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3221913625: (v) => new IFC4X3.IfcCommunicationsAppliance(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3571504051: (v) => new IFC4X3.IfcCompressor(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2272882330: (v) => new IFC4X3.IfcCondenser(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 578613899: (v) => {\n var _a, _b;\n return new IFC4X3.IfcControllerType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);\n },\n 3460952963: (v) => new IFC4X3.IfcConveyorSegment(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 4136498852: (v) => new IFC4X3.IfcCooledBeam(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3640358203: (v) => new IFC4X3.IfcCoolingTower(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 4074379575: (v) => new IFC4X3.IfcDamper(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3693000487: (v) => new IFC4X3.IfcDistributionBoard(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1052013943: (v) => new IFC4X3.IfcDistributionChamberElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 562808652: (v) => new IFC4X3.IfcDistributionCircuit(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value), v[6]),\n 1062813311: (v) => new IFC4X3.IfcDistributionControlElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 342316401: (v) => new IFC4X3.IfcDuctFitting(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3518393246: (v) => new IFC4X3.IfcDuctSegment(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1360408905: (v) => new IFC4X3.IfcDuctSilencer(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1904799276: (v) => new IFC4X3.IfcElectricAppliance(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 862014818: (v) => new IFC4X3.IfcElectricDistributionBoard(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3310460725: (v) => new IFC4X3.IfcElectricFlowStorageDevice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 24726584: (v) => new IFC4X3.IfcElectricFlowTreatmentDevice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 264262732: (v) => new IFC4X3.IfcElectricGenerator(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 402227799: (v) => new IFC4X3.IfcElectricMotor(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1003880860: (v) => new IFC4X3.IfcElectricTimeControl(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3415622556: (v) => new IFC4X3.IfcFan(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 819412036: (v) => new IFC4X3.IfcFilter(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 1426591983: (v) => new IFC4X3.IfcFireSuppressionTerminal(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 182646315: (v) => new IFC4X3.IfcFlowInstrument(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 2680139844: (v) => new IFC4X3.IfcGeomodel(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 1971632696: (v) => new IFC4X3.IfcGeoslice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),\n 2295281155: (v) => new IFC4X3.IfcProtectiveDeviceTrippingUnit(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 4086658281: (v) => new IFC4X3.IfcSensor(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 630975310: (v) => new IFC4X3.IfcUnitaryControlElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 4288193352: (v) => new IFC4X3.IfcActuator(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 3087945054: (v) => new IFC4X3.IfcAlarm(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),\n 25142252: (v) => new IFC4X3.IfcController(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8])\n};\nInheritanceDef[3] = {\n 618182010: [IFCTELECOMADDRESS, IFCPOSTALADDRESS],\n 2879124712: [IFCALIGNMENTHORIZONTALSEGMENT, IFCALIGNMENTCANTSEGMENT, IFCALIGNMENTVERTICALSEGMENT],\n 411424972: [IFCCOSTVALUE],\n 4037036970: [IFCBOUNDARYNODECONDITIONWARPING, IFCBOUNDARYNODECONDITION, IFCBOUNDARYFACECONDITION, IFCBOUNDARYEDGECONDITION],\n 1387855156: [IFCBOUNDARYNODECONDITIONWARPING],\n 2859738748: [IFCCONNECTIONCURVEGEOMETRY, IFCCONNECTIONVOLUMEGEOMETRY, IFCCONNECTIONSURFACEGEOMETRY, IFCCONNECTIONPOINTECCENTRICITY, IFCCONNECTIONPOINTGEOMETRY],\n 2614616156: [IFCCONNECTIONPOINTECCENTRICITY],\n 1959218052: [IFCOBJECTIVE, IFCMETRIC],\n 1785450214: [IFCMAPCONVERSION],\n 1466758467: [IFCPROJECTEDCRS],\n 4294318154: [IFCDOCUMENTINFORMATION, IFCCLASSIFICATION, IFCLIBRARYINFORMATION],\n 3200245327: [IFCDOCUMENTREFERENCE, IFCCLASSIFICATIONREFERENCE, IFCLIBRARYREFERENCE, IFCEXTERNALLYDEFINEDTEXTFONT, IFCEXTERNALLYDEFINEDSURFACESTYLE, IFCEXTERNALLYDEFINEDHATCHSTYLE],\n 760658860: [IFCMATERIALCONSTITUENTSET, IFCMATERIALCONSTITUENT, IFCMATERIAL, IFCMATERIALPROFILESET, IFCMATERIALPROFILEWITHOFFSETS, IFCMATERIALPROFILE, IFCMATERIALLAYERSET, IFCMATERIALLAYERWITHOFFSETS, IFCMATERIALLAYER],\n 248100487: [IFCMATERIALLAYERWITHOFFSETS],\n 2235152071: [IFCMATERIALPROFILEWITHOFFSETS],\n 1507914824: [IFCMATERIALPROFILESETUSAGETAPERING, IFCMATERIALPROFILESETUSAGE, IFCMATERIALLAYERSETUSAGE],\n 1918398963: [IFCCONVERSIONBASEDUNITWITHOFFSET, IFCCONVERSIONBASEDUNIT, IFCCONTEXTDEPENDENTUNIT, IFCSIUNIT],\n 3701648758: [IFCLOCALPLACEMENT, IFCLINEARPLACEMENT, IFCGRIDPLACEMENT],\n 2483315170: [IFCPHYSICALCOMPLEXQUANTITY, IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYNUMBER, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA, IFCPHYSICALSIMPLEQUANTITY],\n 2226359599: [IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYNUMBER, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA],\n 677532197: [IFCDRAUGHTINGPREDEFINEDCURVEFONT, IFCPREDEFINEDCURVEFONT, IFCDRAUGHTINGPREDEFINEDCOLOUR, IFCPREDEFINEDCOLOUR, IFCTEXTSTYLEFONTMODEL, IFCPREDEFINEDTEXTFONT, IFCPREDEFINEDITEM, IFCINDEXEDCOLOURMAP, IFCCURVESTYLEFONTPATTERN, IFCCURVESTYLEFONTANDSCALING, IFCCURVESTYLEFONT, IFCCOLOURRGB, IFCCOLOURSPECIFICATION, IFCCOLOURRGBLIST, IFCTEXTUREVERTEXLIST, IFCTEXTUREVERTEX, IFCINDEXEDPOLYGONALTEXTUREMAP, IFCINDEXEDTRIANGLETEXTUREMAP, IFCINDEXEDTEXTUREMAP, IFCTEXTUREMAP, IFCTEXTURECOORDINATEGENERATOR, IFCTEXTURECOORDINATE, IFCTEXTSTYLETEXTMODEL, IFCTEXTSTYLEFORDEFINEDFONT, IFCPIXELTEXTURE, IFCIMAGETEXTURE, IFCBLOBTEXTURE, IFCSURFACETEXTURE, IFCSURFACESTYLEWITHTEXTURES, IFCSURFACESTYLERENDERING, IFCSURFACESTYLESHADING, IFCSURFACESTYLEREFRACTION, IFCSURFACESTYLELIGHTING],\n 2022622350: [IFCPRESENTATIONLAYERWITHSTYLE],\n 3119450353: [IFCFILLAREASTYLE, IFCCURVESTYLE, IFCTEXTSTYLE, IFCSURFACESTYLE],\n 2095639259: [IFCPRODUCTDEFINITIONSHAPE, IFCMATERIALDEFINITIONREPRESENTATION],\n 3958567839: [IFCLSHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF, IFCPARAMETERIZEDPROFILEDEF, IFCOPENCROSSPROFILEDEF, IFCMIRROREDPROFILEDEF, IFCDERIVEDPROFILEDEF, IFCCOMPOSITEPROFILEDEF, IFCCENTERLINEPROFILEDEF, IFCARBITRARYOPENPROFILEDEF, IFCARBITRARYPROFILEDEFWITHVOIDS, IFCARBITRARYCLOSEDPROFILEDEF],\n 986844984: [IFCCOMPLEXPROPERTY, IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE, IFCSIMPLEPROPERTY, IFCPROPERTY, IFCSECTIONREINFORCEMENTPROPERTIES, IFCSECTIONPROPERTIES, IFCREINFORCEMENTBARPROPERTIES, IFCPREDEFINEDPROPERTIES, IFCPROFILEPROPERTIES, IFCMATERIALPROPERTIES, IFCEXTENDEDPROPERTIES, IFCPROPERTYENUMERATION],\n 1076942058: [IFCSTYLEDREPRESENTATION, IFCSTYLEMODEL, IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION, IFCSHAPEMODEL],\n 3377609919: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT, IFCGEOMETRICREPRESENTATIONCONTEXT],\n 3008791417: [IFCMAPPEDITEM, IFCFILLAREASTYLETILES, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIRECTION, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCSEGMENTEDREFERENCECURVE, IFCGRADIENTCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCSINESPIRAL, IFCSEVENTHORDERPOLYNOMIALSPIRAL, IFCSECONDORDERPOLYNOMIALSPIRAL, IFCCOSINESPIRAL, IFCCLOTHOID, IFCTHIRDORDERPOLYNOMIALSPIRAL, IFCSPIRAL, IFCPOLYNOMIALCURVE, IFCPCURVE, IFCOFFSETCURVEBYDISTANCES, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCOFFSETCURVE, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D, IFCCARTESIANPOINTLIST, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPOLYGONALFACESET, IFCTRIANGULATEDIRREGULARNETWORK, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE, IFCTESSELLATEDITEM, IFCSECTIONEDSURFACE, IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCSECTIONEDSOLIDHORIZONTAL, IFCSECTIONEDSOLID, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSURFACECURVESWEPTAREASOLID, IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCDIRECTRIXCURVESWEPTAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCCURVESEGMENT, IFCREPARAMETRISEDCOMPOSITECURVESEGMENT, IFCCOMPOSITECURVESEGMENT, IFCSEGMENT, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINTBYDISTANCEEXPRESSION, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENTLINEAR, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET, IFCGEOMETRICREPRESENTATIONITEM, IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCADVANCEDFACE, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX, IFCTOPOLOGICALREPRESENTATIONITEM, IFCSTYLEDITEM],\n 2439245199: [IFCRESOURCECONSTRAINTRELATIONSHIP, IFCRESOURCEAPPROVALRELATIONSHIP, IFCPROPERTYDEPENDENCYRELATIONSHIP, IFCORGANIZATIONRELATIONSHIP, IFCMATERIALRELATIONSHIP, IFCEXTERNALREFERENCERELATIONSHIP, IFCDOCUMENTINFORMATIONRELATIONSHIP, IFCCURRENCYRELATIONSHIP, IFCAPPROVALRELATIONSHIP],\n 2341007311: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELADHERESTOELEMENT, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELDECLARES, IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPOSITIONS, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESPROFILEDEF, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS, IFCRELATIONSHIP, IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE, IFCPROPERTYTEMPLATEDEFINITION, IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET, IFCPROPERTYSETDEFINITION, IFCPROPERTYDEFINITION, IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILTSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCALIGNMENT, IFCLINEARPOSITIONINGELEMENT, IFCGRID, IFCREFERENT, IFCPOSITIONINGELEMENT, IFCDISTRIBUTIONPORT, IFCPORT, IFCALIGNMENTVERTICAL, IFCALIGNMENTSEGMENT, IFCALIGNMENTHORIZONTAL, IFCALIGNMENTCANT, IFCLINEARELEMENT, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY, IFCBUILTELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCVEHICLE, IFCTRANSPORTATIONDEVICE, IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM, IFCGEOTECHNICALELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS, IFCOBJECT, IFCPROJECTLIBRARY, IFCPROJECT, IFCCONTEXT, IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILTELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE, IFCTRANSPORTATIONDEVICETYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS, IFCTYPEOBJECT, IFCOBJECTDEFINITION],\n 1054537805: [IFCRESOURCETIME, IFCLAGTIME, IFCEVENTTIME, IFCWORKTIME, IFCTASKTIMERECURRING, IFCTASKTIME],\n 3982875396: [IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION],\n 2273995522: [IFCSLIPPAGECONNECTIONCONDITION, IFCFAILURECONNECTIONCONDITION],\n 2162789131: [IFCSURFACEREINFORCEMENTAREA, IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE, IFCSTRUCTURALLOADSTATIC, IFCSTRUCTURALLOADORRESULT, IFCSTRUCTURALLOADCONFIGURATION],\n 609421318: [IFCSURFACEREINFORCEMENTAREA, IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE, IFCSTRUCTURALLOADSTATIC],\n 2525727697: [IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE],\n 2830218821: [IFCSTYLEDREPRESENTATION],\n 846575682: [IFCSURFACESTYLERENDERING],\n 626085974: [IFCPIXELTEXTURE, IFCIMAGETEXTURE, IFCBLOBTEXTURE],\n 1549132990: [IFCTASKTIMERECURRING],\n 280115917: [IFCINDEXEDPOLYGONALTEXTUREMAP, IFCINDEXEDTRIANGLETEXTUREMAP, IFCINDEXEDTEXTUREMAP, IFCTEXTUREMAP, IFCTEXTURECOORDINATEGENERATOR],\n 222769930: [IFCTEXTURECOORDINATEINDICESWITHVOIDS],\n 3101149627: [IFCREGULARTIMESERIES, IFCIRREGULARTIMESERIES],\n 1377556343: [IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCADVANCEDFACE, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX],\n 2799835756: [IFCVERTEXPOINT],\n 3798115385: [IFCARBITRARYPROFILEDEFWITHVOIDS],\n 1310608509: [IFCCENTERLINEPROFILEDEF],\n 3264961684: [IFCCOLOURRGB],\n 370225590: [IFCCLOSEDSHELL, IFCOPENSHELL],\n 2889183280: [IFCCONVERSIONBASEDUNITWITHOFFSET],\n 3632507154: [IFCMIRROREDPROFILEDEF],\n 3900360178: [IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE],\n 297599258: [IFCPROFILEPROPERTIES, IFCMATERIALPROPERTIES],\n 2556980723: [IFCADVANCEDFACE, IFCFACESURFACE],\n 1809719519: [IFCFACEOUTERBOUND],\n 3008276851: [IFCADVANCEDFACE],\n 3448662350: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT],\n 2453401579: [IFCFILLAREASTYLETILES, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIRECTION, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCSEGMENTEDREFERENCECURVE, IFCGRADIENTCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCSINESPIRAL, IFCSEVENTHORDERPOLYNOMIALSPIRAL, IFCSECONDORDERPOLYNOMIALSPIRAL, IFCCOSINESPIRAL, IFCCLOTHOID, IFCTHIRDORDERPOLYNOMIALSPIRAL, IFCSPIRAL, IFCPOLYNOMIALCURVE, IFCPCURVE, IFCOFFSETCURVEBYDISTANCES, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCOFFSETCURVE, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D, IFCCARTESIANPOINTLIST, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPOLYGONALFACESET, IFCTRIANGULATEDIRREGULARNETWORK, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE, IFCTESSELLATEDITEM, IFCSECTIONEDSURFACE, IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCSECTIONEDSOLIDHORIZONTAL, IFCSECTIONEDSOLID, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSURFACECURVESWEPTAREASOLID, IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCDIRECTRIXCURVESWEPTAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCCURVESEGMENT, IFCREPARAMETRISEDCOMPOSITECURVESEGMENT, IFCCOMPOSITECURVESEGMENT, IFCSEGMENT, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINTBYDISTANCEEXPRESSION, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENTLINEAR, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET],\n 3590301190: [IFCGEOMETRICCURVESET],\n 812098782: [IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE],\n 1437953363: [IFCINDEXEDPOLYGONALTEXTUREMAP, IFCINDEXEDTRIANGLETEXTUREMAP],\n 1402838566: [IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT],\n 1520743889: [IFCLIGHTSOURCESPOT],\n 1008929658: [IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP],\n 3079605661: [IFCMATERIALPROFILESETUSAGETAPERING],\n 219451334: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILTSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCALIGNMENT, IFCLINEARPOSITIONINGELEMENT, IFCGRID, IFCREFERENT, IFCPOSITIONINGELEMENT, IFCDISTRIBUTIONPORT, IFCPORT, IFCALIGNMENTVERTICAL, IFCALIGNMENTSEGMENT, IFCALIGNMENTHORIZONTAL, IFCALIGNMENTCANT, IFCLINEARELEMENT, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY, IFCBUILTELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCVEHICLE, IFCTRANSPORTATIONDEVICE, IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM, IFCGEOTECHNICALELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS, IFCOBJECT, IFCPROJECTLIBRARY, IFCPROJECT, IFCCONTEXT, IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILTELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE, IFCTRANSPORTATIONDEVICETYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS, IFCTYPEOBJECT],\n 2529465313: [IFCLSHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF],\n 2004835150: [IFCAXIS2PLACEMENTLINEAR, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT],\n 1663979128: [IFCPLANARBOX],\n 2067069095: [IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINTBYDISTANCEEXPRESSION],\n 3727388367: [IFCDRAUGHTINGPREDEFINEDCURVEFONT, IFCPREDEFINEDCURVEFONT, IFCDRAUGHTINGPREDEFINEDCOLOUR, IFCPREDEFINEDCOLOUR, IFCTEXTSTYLEFONTMODEL, IFCPREDEFINEDTEXTFONT],\n 3778827333: [IFCSECTIONREINFORCEMENTPROPERTIES, IFCSECTIONPROPERTIES, IFCREINFORCEMENTBARPROPERTIES],\n 1775413392: [IFCTEXTSTYLEFONTMODEL],\n 2598011224: [IFCCOMPLEXPROPERTY, IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE, IFCSIMPLEPROPERTY],\n 1680319473: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE, IFCPROPERTYTEMPLATEDEFINITION, IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET, IFCPROPERTYSETDEFINITION],\n 3357820518: [IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET],\n 1482703590: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE],\n 2090586900: [IFCELEMENTQUANTITY],\n 3615266464: [IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF],\n 478536968: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELADHERESTOELEMENT, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELDECLARES, IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPOSITIONS, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESPROFILEDEF, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS],\n 823603102: [IFCCURVESEGMENT, IFCREPARAMETRISEDCOMPOSITECURVESEGMENT, IFCCOMPOSITECURVESEGMENT],\n 3692461612: [IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE],\n 723233188: [IFCSECTIONEDSOLIDHORIZONTAL, IFCSECTIONEDSOLID, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSURFACECURVESWEPTAREASOLID, IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCDIRECTRIXCURVESWEPTAREASOLID, IFCSWEPTAREASOLID],\n 2473145415: [IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION],\n 1597423693: [IFCSTRUCTURALLOADSINGLEFORCEWARPING],\n 2513912981: [IFCSECTIONEDSURFACE, IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE],\n 2247615214: [IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSURFACECURVESWEPTAREASOLID, IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCDIRECTRIXCURVESWEPTAREASOLID],\n 1260650574: [IFCSWEPTDISKSOLIDPOLYGONAL],\n 230924584: [IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION],\n 901063453: [IFCPOLYGONALFACESET, IFCTRIANGULATEDIRREGULARNETWORK, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE],\n 4282788508: [IFCTEXTLITERALWITHEXTENT],\n 1628702193: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILTELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE, IFCTRANSPORTATIONDEVICETYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS],\n 3736923433: [IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE],\n 2347495698: [IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILTELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE, IFCTRANSPORTATIONDEVICETYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE],\n 3698973494: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE],\n 2736907675: [IFCBOOLEANCLIPPINGRESULT],\n 4182860854: [IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE],\n 574549367: [IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D],\n 59481748: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D],\n 3749851601: [IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM],\n 3331915920: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM],\n 1383045692: [IFCCIRCLEHOLLOWPROFILEDEF],\n 2485617015: [IFCREPARAMETRISEDCOMPOSITECURVESEGMENT],\n 2574617495: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE],\n 3419103109: [IFCPROJECTLIBRARY, IFCPROJECT],\n 2506170314: [IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID],\n 2601014836: [IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCSEGMENTEDREFERENCECURVE, IFCGRADIENTCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCSINESPIRAL, IFCSEVENTHORDERPOLYNOMIALSPIRAL, IFCSECONDORDERPOLYNOMIALSPIRAL, IFCCOSINESPIRAL, IFCCLOTHOID, IFCTHIRDORDERPOLYNOMIALSPIRAL, IFCSPIRAL, IFCPOLYNOMIALCURVE, IFCPCURVE, IFCOFFSETCURVEBYDISTANCES, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCOFFSETCURVE, IFCLINE],\n 593015953: [IFCSURFACECURVESWEPTAREASOLID, IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID],\n 339256511: [IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILTELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE, IFCTRANSPORTATIONDEVICETYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE],\n 2777663545: [IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE],\n 477187591: [IFCEXTRUDEDAREASOLIDTAPERED],\n 2652556860: [IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID],\n 4238390223: [IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE],\n 178912537: [IFCINDEXEDPOLYGONALFACEWITHVOIDS],\n 1425443689: [IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP],\n 3888040117: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILTSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCALIGNMENT, IFCLINEARPOSITIONINGELEMENT, IFCGRID, IFCREFERENT, IFCPOSITIONINGELEMENT, IFCDISTRIBUTIONPORT, IFCPORT, IFCALIGNMENTVERTICAL, IFCALIGNMENTSEGMENT, IFCALIGNMENTHORIZONTAL, IFCALIGNMENTCANT, IFCLINEARELEMENT, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY, IFCBUILTELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCVEHICLE, IFCTRANSPORTATIONDEVICE, IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM, IFCGEOTECHNICALELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS],\n 590820931: [IFCOFFSETCURVEBYDISTANCES, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D],\n 759155922: [IFCDRAUGHTINGPREDEFINEDCOLOUR],\n 2559016684: [IFCDRAUGHTINGPREDEFINEDCURVEFONT],\n 3967405729: [IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES],\n 2945172077: [IFCPROCEDURE, IFCEVENT, IFCTASK],\n 4208778838: [IFCALIGNMENT, IFCLINEARPOSITIONINGELEMENT, IFCGRID, IFCREFERENT, IFCPOSITIONINGELEMENT, IFCDISTRIBUTIONPORT, IFCPORT, IFCALIGNMENTVERTICAL, IFCALIGNMENTSEGMENT, IFCALIGNMENTHORIZONTAL, IFCALIGNMENTCANT, IFCLINEARELEMENT, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY, IFCBUILTELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCVEHICLE, IFCTRANSPORTATIONDEVICE, IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM, IFCGEOTECHNICALELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT],\n 3521284610: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE],\n 3939117080: [IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR],\n 1307041759: [IFCRELASSIGNSTOGROUPBYFACTOR],\n 1865459582: [IFCRELASSOCIATESPROFILEDEF, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL],\n 826625072: [IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPOSITIONS, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS],\n 1204542856: [IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS],\n 1638771189: [IFCRELCONNECTSWITHECCENTRICITY],\n 2551354335: [IFCRELAGGREGATES, IFCRELADHERESTOELEMENT, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS],\n 693640335: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT],\n 3451746338: [IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL],\n 3523091289: [IFCRELSPACEBOUNDARY2NDLEVEL],\n 2914609552: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE],\n 1856042241: [IFCREVOLVEDAREASOLIDTAPERED],\n 1862484736: [IFCSECTIONEDSOLIDHORIZONTAL],\n 1412071761: [IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY, IFCSPATIALSTRUCTUREELEMENT],\n 710998568: [IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE],\n 2706606064: [IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY],\n 3893378262: [IFCSPACETYPE],\n 2735484536: [IFCSINESPIRAL, IFCSEVENTHORDERPOLYNOMIALSPIRAL, IFCSECONDORDERPOLYNOMIALSPIRAL, IFCCOSINESPIRAL, IFCCLOTHOID, IFCTHIRDORDERPOLYNOMIALSPIRAL],\n 3544373492: [IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION],\n 3136571912: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER],\n 530289379: [IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER],\n 3689010777: [IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION],\n 3979015343: [IFCSTRUCTURALSURFACEMEMBERVARYING],\n 699246055: [IFCSEAMCURVE, IFCINTERSECTIONCURVE],\n 2387106220: [IFCPOLYGONALFACESET, IFCTRIANGULATEDIRREGULARNETWORK, IFCTRIANGULATEDFACESET],\n 3665877780: [IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE],\n 2916149573: [IFCTRIANGULATEDIRREGULARNETWORK],\n 2296667514: [IFCOCCUPANT],\n 1635779807: [IFCADVANCEDBREPWITHVOIDS],\n 2887950389: [IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS],\n 167062518: [IFCRATIONALBSPLINESURFACEWITHKNOTS],\n 1260505505: [IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCSEGMENTEDREFERENCECURVE, IFCGRADIENTCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE],\n 1626504194: [IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE],\n 3732776249: [IFCSEGMENTEDREFERENCECURVE, IFCGRADIENTCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE],\n 15328376: [IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE],\n 2510884976: [IFCCIRCLE, IFCELLIPSE],\n 2559216714: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE],\n 3293443760: [IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM],\n 1306400036: [IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE],\n 3256556792: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE],\n 3849074793: [IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE],\n 1758889154: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY, IFCBUILTELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCVEHICLE, IFCTRANSPORTATIONDEVICE, IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM, IFCGEOTECHNICALELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY],\n 1623761950: [IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER],\n 2590856083: [IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE],\n 2107101300: [IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE],\n 2853485674: [IFCEXTERNALSPATIALELEMENT],\n 807026263: [IFCFACETEDBREPWITHVOIDS],\n 24185140: [IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY],\n 1310830890: [IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON],\n 2827207264: [IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION],\n 2143335405: [IFCPROJECTIONELEMENT],\n 1287392070: [IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT],\n 3907093117: [IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE],\n 3198132628: [IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE],\n 1482959167: [IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE],\n 1834744321: [IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE],\n 1339347760: [IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE],\n 2297155007: [IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE],\n 3009222698: [IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE],\n 263784265: [IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE],\n 4230923436: [IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM],\n 2706460486: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILTSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY],\n 2176059722: [IFCALIGNMENTVERTICAL, IFCALIGNMENTSEGMENT, IFCALIGNMENTHORIZONTAL, IFCALIGNMENTCANT],\n 3740093272: [IFCDISTRIBUTIONPORT],\n 1946335990: [IFCALIGNMENT, IFCLINEARPOSITIONINGELEMENT, IFCGRID, IFCREFERENT],\n 3027567501: [IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH],\n 964333572: [IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE],\n 682877961: [IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION],\n 1179482911: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION],\n 1004757350: [IFCSTRUCTURALLINEARACTION],\n 214636428: [IFCSTRUCTURALCURVEMEMBERVARYING],\n 1252848954: [IFCSTRUCTURALLOADCASE],\n 3657597509: [IFCSTRUCTURALPLANARACTION],\n 2254336722: [IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILTSYSTEM, IFCBUILDINGSYSTEM, IFCZONE],\n 1953115116: [IFCTRANSPORTELEMENT, IFCVEHICLE],\n 1028945134: [IFCWORKSCHEDULE, IFCWORKPLAN],\n 1967976161: [IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS],\n 2461110595: [IFCRATIONALBSPLINECURVEWITHKNOTS],\n 1136057603: [IFCOUTERBOUNDARYCURVE],\n 1876633798: [IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY],\n 3426335179: [IFCCAISSONFOUNDATION, IFCPILE],\n 2063403501: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE],\n 1945004755: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT],\n 3040386961: [IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE],\n 3205830791: [IFCDISTRIBUTIONCIRCUIT],\n 1077100507: [IFCREINFORCEDSOIL, IFCEARTHWORKSFILL],\n 1658829314: [IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE],\n 2058353004: [IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER],\n 4278956645: [IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX],\n 3132237377: [IFCFAN, IFCCOMPRESSOR, IFCPUMP],\n 987401354: [IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT],\n 707683696: [IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK],\n 2223149337: [IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP],\n 3508470533: [IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR],\n 2713699986: [IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE],\n 1154579445: [IFCALIGNMENT],\n 2391406946: [IFCWALLSTANDARDCASE],\n 1062813311: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT]\n};\nInversePropertyDef[3] = {\n 3630933823: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 618182010: [[\"OfPerson\", IFCPERSON, 7, true], [\"OfOrganization\", IFCORGANIZATION, 4, true]],\n 411424972: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 130549933: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"ApprovedObjects\", IFCRELASSOCIATESAPPROVAL, 5, true], [\"ApprovedResources\", IFCRESOURCEAPPROVALRELATIONSHIP, 3, true], [\"IsRelatedWith\", IFCAPPROVALRELATIONSHIP, 3, true], [\"Relates\", IFCAPPROVALRELATIONSHIP, 2, true]],\n 1959218052: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PropertiesForConstraint\", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]],\n 1466758467: [[\"HasCoordinateOperation\", IFCCOORDINATEOPERATION, 0, true]],\n 602808272: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 3200245327: [[\"ExternalReferenceForResources\", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]],\n 2242383968: [[\"ExternalReferenceForResources\", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]],\n 1040185647: [[\"ExternalReferenceForResources\", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]],\n 3548104201: [[\"ExternalReferenceForResources\", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]],\n 852622518: [[\"PartOfW\", IFCGRID, 9, true], [\"PartOfV\", IFCGRID, 8, true], [\"PartOfU\", IFCGRID, 7, true], [\"HasIntersections\", IFCVIRTUALGRIDINTERSECTION, 0, true]],\n 2655187982: [[\"LibraryInfoForObjects\", IFCRELASSOCIATESLIBRARY, 5, true], [\"HasLibraryReferences\", IFCLIBRARYREFERENCE, 5, true]],\n 3452421091: [[\"ExternalReferenceForResources\", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], [\"LibraryRefForObjects\", IFCRELASSOCIATESLIBRARY, 5, true]],\n 760658860: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true]],\n 248100487: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true], [\"ToMaterialLayerSet\", IFCMATERIALLAYERSET, 0, false]],\n 3303938423: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true]],\n 1847252529: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true], [\"ToMaterialLayerSet\", IFCMATERIALLAYERSET, 0, false]],\n 2235152071: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true], [\"ToMaterialProfileSet\", IFCMATERIALPROFILESET, 2, false]],\n 164193824: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true]],\n 552965576: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true], [\"ToMaterialProfileSet\", IFCMATERIALPROFILESET, 2, false]],\n 1507914824: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true]],\n 3368373690: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PropertiesForConstraint\", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]],\n 3701648758: [[\"PlacesObject\", IFCPRODUCT, 5, true], [\"ReferencedByPlacements\", IFCOBJECTPLACEMENT, 0, true]],\n 2251480897: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PropertiesForConstraint\", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]],\n 4251960020: [[\"IsRelatedBy\", IFCORGANIZATIONRELATIONSHIP, 3, true], [\"Relates\", IFCORGANIZATIONRELATIONSHIP, 2, true], [\"Engages\", IFCPERSONANDORGANIZATION, 1, true]],\n 2077209135: [[\"EngagedIn\", IFCPERSONANDORGANIZATION, 0, true]],\n 2483315170: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n 2226359599: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n 3355820592: [[\"OfPerson\", IFCPERSON, 7, true], [\"OfOrganization\", IFCORGANIZATION, 4, true]],\n 3958567839: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 3843373140: [[\"HasCoordinateOperation\", IFCCOORDINATEOPERATION, 0, true]],\n 986844984: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 3710013099: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 2044713172: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n 2093928680: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n 931644368: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n 2691318326: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n 3252649465: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n 2405470396: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n 825690147: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n 1076942058: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true]],\n 3377609919: [[\"RepresentationsInContext\", IFCREPRESENTATION, 0, true]],\n 3008791417: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1660063152: [[\"HasShapeAspects\", IFCSHAPEASPECT, 4, true], [\"MapUsage\", IFCMAPPEDITEM, 0, true]],\n 867548509: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 3982875396: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true], [\"OfShapeAspect\", IFCSHAPEASPECT, 0, true]],\n 4240577450: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true], [\"OfShapeAspect\", IFCSHAPEASPECT, 0, true]],\n 2830218821: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true]],\n 3958052878: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3049322572: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true]],\n 626085974: [[\"IsMappedBy\", IFCTEXTURECOORDINATE, 0, true], [\"UsedInStyles\", IFCSURFACESTYLEWITHTEXTURES, 0, true]],\n 912023232: [[\"OfPerson\", IFCPERSON, 7, true], [\"OfOrganization\", IFCORGANIZATION, 4, true]],\n 222769930: [[\"ToTexMap\", IFCINDEXEDPOLYGONALTEXTUREMAP, 3, false]],\n 1010789467: [[\"ToTexMap\", IFCINDEXEDPOLYGONALTEXTUREMAP, 3, false]],\n 3101149627: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 1377556343: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1735638870: [[\"RepresentationMap\", IFCREPRESENTATIONMAP, 1, true], [\"LayerAssignments\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"OfProductRepresentation\", IFCPRODUCTREPRESENTATION, 2, true], [\"OfShapeAspect\", IFCSHAPEASPECT, 0, true]],\n 2799835756: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1907098498: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3798115385: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 1310608509: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 2705031697: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 616511568: [[\"IsMappedBy\", IFCTEXTURECOORDINATE, 0, true], [\"UsedInStyles\", IFCSURFACESTYLEWITHTEXTURES, 0, true]],\n 3150382593: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 747523909: [[\"ClassificationForObjects\", IFCRELASSOCIATESCLASSIFICATION, 5, true], [\"HasReferences\", IFCCLASSIFICATIONREFERENCE, 3, true]],\n 647927063: [[\"ExternalReferenceForResources\", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], [\"ClassificationRefForObjects\", IFCRELASSOCIATESCLASSIFICATION, 5, true], [\"HasReferences\", IFCCLASSIFICATIONREFERENCE, 3, true]],\n 1485152156: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 370225590: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3050246964: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 2889183280: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 2713554722: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 3632507154: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 1154170062: [[\"DocumentInfoForObjects\", IFCRELASSOCIATESDOCUMENT, 5, true], [\"HasDocumentReferences\", IFCDOCUMENTREFERENCE, 4, true], [\"IsPointedTo\", IFCDOCUMENTINFORMATIONRELATIONSHIP, 3, true], [\"IsPointer\", IFCDOCUMENTINFORMATIONRELATIONSHIP, 2, true]],\n 3732053477: [[\"ExternalReferenceForResources\", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], [\"DocumentRefForObjects\", IFCRELASSOCIATESDOCUMENT, 5, true]],\n 3900360178: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 476780140: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 297599258: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 2556980723: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"HasTextureMaps\", IFCTEXTUREMAP, 2, true]],\n 1809719519: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 803316827: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3008276851: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"HasTextureMaps\", IFCTEXTUREMAP, 2, true]],\n 3448662350: [[\"RepresentationsInContext\", IFCREPRESENTATION, 0, true], [\"HasSubContexts\", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true], [\"HasCoordinateOperation\", IFCCOORDINATEOPERATION, 0, true]],\n 2453401579: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4142052618: [[\"RepresentationsInContext\", IFCREPRESENTATION, 0, true], [\"HasSubContexts\", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true], [\"HasCoordinateOperation\", IFCCOORDINATEOPERATION, 0, true]],\n 3590301190: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 178086475: [[\"PlacesObject\", IFCPRODUCT, 5, true], [\"ReferencedByPlacements\", IFCOBJECTPLACEMENT, 0, true]],\n 812098782: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3905492369: [[\"IsMappedBy\", IFCTEXTURECOORDINATE, 0, true], [\"UsedInStyles\", IFCSURFACESTYLEWITHTEXTURES, 0, true]],\n 3741457305: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 1402838566: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 125510826: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2604431987: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4266656042: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1520743889: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3422422726: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 388784114: [[\"PlacesObject\", IFCPRODUCT, 5, true], [\"ReferencedByPlacements\", IFCOBJECTPLACEMENT, 0, true]],\n 2624227202: [[\"PlacesObject\", IFCPRODUCT, 5, true], [\"ReferencedByPlacements\", IFCOBJECTPLACEMENT, 0, true]],\n 1008929658: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2347385850: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1838606355: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true], [\"HasRepresentation\", IFCMATERIALDEFINITIONREPRESENTATION, 3, true], [\"IsRelatedWith\", IFCMATERIALRELATIONSHIP, 3, true], [\"RelatesTo\", IFCMATERIALRELATIONSHIP, 2, true]],\n 3708119e3: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true], [\"ToMaterialConstituentSet\", IFCMATERIALCONSTITUENTSET, 2, false]],\n 2852063980: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true], [\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCMATERIALPROPERTIES, 3, true]],\n 1303795690: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true]],\n 3079605661: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true]],\n 3404854881: [[\"AssociatedTo\", IFCRELASSOCIATESMATERIAL, 5, true]],\n 3265635763: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 2998442950: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 219451334: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true]],\n 182550632: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 2665983363: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1029017970: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2529465313: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 2519244187: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3021840470: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfComplex\", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],\n 597895409: [[\"IsMappedBy\", IFCTEXTURECOORDINATE, 0, true], [\"UsedInStyles\", IFCSURFACESTYLEWITHTEXTURES, 0, true]],\n 2004835150: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1663979128: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2067069095: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2165702409: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4022376103: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1423911732: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2924175390: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2775532180: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3778827333: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 673634403: [[\"ShapeOfProduct\", IFCPRODUCT, 6, true], [\"HasShapeAspects\", IFCSHAPEASPECT, 4, true]],\n 2802850158: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 2598011224: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n 1680319473: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true]],\n 3357820518: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n 1482703590: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true]],\n 2090586900: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n 3615266464: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 3413951693: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 1580146022: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 2778083089: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 2042790032: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 4165799628: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],\n 1509187699: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 823603102: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"UsingCurves\", IFCCOMPOSITECURVE, 0, true]],\n 4124623270: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3692461612: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n 723233188: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2233826070: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2513912981: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2247615214: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1260650574: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1096409881: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 230924584: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3071757647: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 901063453: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4282788508: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3124975700: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2715220739: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 1628702193: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true]],\n 3736923433: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n 2347495698: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3698973494: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 427810014: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 1417489154: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2759199220: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2543172580: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 3406155212: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"HasTextureMaps\", IFCTEXTUREMAP, 2, true]],\n 669184980: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3207858831: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 4261334040: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3125803723: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2740243338: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3425423356: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2736907675: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4182860854: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2581212453: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2713105998: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2898889636: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 1123145078: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 574549367: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1675464909: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2059837836: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 59481748: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3749851601: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3486308946: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3331915920: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1416205885: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1383045692: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 2205249479: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2542286263: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n 2485617015: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"UsingCurves\", IFCCOMPOSITECURVE, 0, true]],\n 2574617495: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 3419103109: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Declares\", IFCRELDECLARES, 4, true]],\n 1815067380: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 2506170314: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2147822146: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2601014836: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2827736869: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2629017746: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4212018352: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"UsingCurves\", IFCCOMPOSITECURVE, 0, true]],\n 32440307: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 593015953: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1472233963: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1883228015: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n 339256511: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2777663545: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2835456948: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 4024345920: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n 477187591: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2804161546: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2047409740: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 374418227: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 315944413: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2652556860: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4238390223: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1268542332: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 4095422895: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 987898635: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1484403080: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 178912537: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"ToFaceSet\", IFCPOLYGONALFACESET, 2, true], [\"HasTexCoords\", IFCTEXTURECOORDINATEINDICES, 1, true]],\n 2294589976: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"ToFaceSet\", IFCPOLYGONALFACESET, 2, true], [\"HasTexCoords\", IFCTEXTURECOORDINATEINDICES, 1, true]],\n 572779678: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 428585644: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 1281925730: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1425443689: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3888040117: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true]],\n 590820931: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3388369263: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3505215534: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2485787929: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1682466193: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 603570806: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 220341763: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3381221214: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3967405729: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n 569719735: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n 2945172077: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsPredecessorTo\", IFCRELSEQUENCE, 4, true], [\"IsSuccessorFrom\", IFCRELSEQUENCE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n 4208778838: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n 103090709: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Declares\", IFCRELDECLARES, 4, true]],\n 653396225: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Declares\", IFCRELDECLARES, 4, true]],\n 871118103: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n 4166981789: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n 2752243245: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n 941946838: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n 1451395588: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n 492091185: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Defines\", IFCRELDEFINESBYTEMPLATE, 5, true]],\n 3650150729: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n 110355661: [[\"HasExternalReferences\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"PartOfPset\", IFCPROPERTYSET, 4, true], [\"PropertyForDependance\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], [\"PropertyDependsOn\", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], [\"PartOfComplex\", IFCCOMPLEXPROPERTY, 3, true], [\"HasConstraints\", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], [\"HasApprovals\", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],\n 3521284610: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PartOfComplexTemplate\", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], [\"PartOfPsetTemplate\", IFCPROPERTYSETTEMPLATE, 6, true]],\n 2770003689: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 2798486643: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3454111270: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3765753017: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n 3523091289: [[\"InnerBoundaries\", IFCRELSPACEBOUNDARY1STLEVEL, 9, true]],\n 1521410863: [[\"InnerBoundaries\", IFCRELSPACEBOUNDARY1STLEVEL, 9, true], [\"Corresponds\", IFCRELSPACEBOUNDARY2NDLEVEL, 10, true]],\n 816062949: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"UsingCurves\", IFCCOMPOSITECURVE, 0, true]],\n 2914609552: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 1856042241: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3243963512: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4158566097: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3626867408: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1862484736: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1290935644: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1356537516: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3663146110: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PartOfComplexTemplate\", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], [\"PartOfPsetTemplate\", IFCPROPERTYSETTEMPLATE, 6, true]],\n 1412071761: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n 710998568: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2706606064: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n 3893378262: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 463610769: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n 2481509218: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 451544542: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4015995234: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2735484536: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3544373492: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n 3136571912: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true]],\n 530289379: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n 3689010777: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n 3979015343: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n 2218152070: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n 603775116: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n 4095615324: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 699246055: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2028607225: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2809605785: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4124788165: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1580310250: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3473067441: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsPredecessorTo\", IFCRELSEQUENCE, 4, true], [\"IsSuccessorFrom\", IFCRELSEQUENCE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n 3206491090: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n 2387106220: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"HasColours\", IFCINDEXEDCOLOURMAP, 0, true], [\"HasTextures\", IFCINDEXEDTEXTUREMAP, 1, true]],\n 782932809: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1935646853: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3665877780: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2916149573: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"HasColours\", IFCINDEXEDCOLOURMAP, 0, true], [\"HasTextures\", IFCINDEXEDTEXTUREMAP, 1, true]],\n 1229763772: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"HasColours\", IFCINDEXEDCOLOURMAP, 0, true], [\"HasTextures\", IFCINDEXEDTEXTUREMAP, 1, true]],\n 3651464721: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 336235671: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n 512836454: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n 2296667514: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsActingUpon\", IFCRELASSIGNSTOACTOR, 6, true]],\n 1635779807: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2603310189: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1674181508: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],\n 2887950389: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 167062518: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1334484129: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3649129432: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1260505505: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3124254112: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n 1626504194: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2197970202: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2937912522: [[\"HasExternalReference\", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], [\"HasProperties\", IFCPROFILEPROPERTIES, 3, true]],\n 3893394355: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3497074424: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 300633059: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3875453745: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"PartOfComplexTemplate\", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], [\"PartOfPsetTemplate\", IFCPROPERTYSETTEMPLATE, 6, true]],\n 3732776249: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 15328376: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2510884976: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2185764099: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 4105962743: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 1525564444: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 2559216714: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 3293443760: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 2000195564: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3895139033: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 1419761937: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 4189326743: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1916426348: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3295246426: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 1457835157: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1213902940: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1306400036: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 4234616927: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3256556792: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3849074793: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2963535650: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n 1714330368: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n 2323601079: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1758889154: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 4123344466: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 2397081782: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1623761950: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 2590856083: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1704287377: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2107101300: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 132023988: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3174744832: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3390157468: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 4148101412: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsPredecessorTo\", IFCRELSEQUENCE, 4, true], [\"IsSuccessorFrom\", IFCRELSEQUENCE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n 2853485674: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n 807026263: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3737207727: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 24185140: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n 1310830890: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n 4228831410: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n 647756555: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 2489546625: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2827207264: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 2143335405: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"ProjectsElements\", IFCRELPROJECTSELEMENT, 5, false]],\n 1287392070: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"VoidsElements\", IFCRELVOIDSELEMENT, 5, false]],\n 3907093117: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3198132628: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3815607619: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1482959167: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1834744321: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1339347760: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2297155007: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3009222698: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1893162501: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 263784265: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 1509553395: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 3493046030: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 4230923436: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 1594536857: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 2898700619: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2706460486: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n 1251058090: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1806887404: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2568555532: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 3948183225: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2571569899: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3946677679: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3113134337: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2391368822: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n 4288270099: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 679976338: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3827777499: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 1051575348: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1161773419: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2176059722: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n 1770583370: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 525669439: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n 976884017: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n 377706215: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 2108223431: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1114901282: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3181161470: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1950438474: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 710110818: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 977012517: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 506776471: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 4143007308: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsActingUpon\", IFCRELASSIGNSTOACTOR, 6, true]],\n 3588315303: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"VoidsElements\", IFCRELVOIDSELEMENT, 5, false], [\"HasFillings\", IFCRELFILLSELEMENT, 4, true]],\n 2837617999: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 514975943: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2382730787: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 3566463478: [[\"HasContext\", IFCRELDECLARES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"DefinesType\", IFCTYPEOBJECT, 5, true], [\"IsDefinedBy\", IFCRELDEFINESBYTEMPLATE, 4, true], [\"DefinesOccurrence\", IFCRELDEFINESBYPROPERTIES, 5, true]],\n 3327091369: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 1158309216: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 804291784: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 4231323485: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 4017108033: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2839578677: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true], [\"HasColours\", IFCINDEXEDCOLOURMAP, 0, true], [\"HasTextures\", IFCINDEXEDTEXTUREMAP, 1, true]],\n 3724593414: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3740093272: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainedIn\", IFCRELCONNECTSPORTTOELEMENT, 4, true], [\"ConnectedFrom\", IFCRELCONNECTSPORTS, 5, true], [\"ConnectedTo\", IFCRELCONNECTSPORTS, 4, true]],\n 1946335990: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"Positions\", IFCRELPOSITIONS, 4, true]],\n 2744685151: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsPredecessorTo\", IFCRELSEQUENCE, 4, true], [\"IsSuccessorFrom\", IFCRELSEQUENCE, 5, true], [\"OperatesOn\", IFCRELASSIGNSTOPROCESS, 6, true]],\n 2904328755: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 3651124850: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"ProjectsElements\", IFCRELPROJECTSELEMENT, 5, false]],\n 1842657554: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2250791053: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1763565496: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2893384427: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3992365140: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n 1891881377: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n 2324767716: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1469900589: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 683857671: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4021432810: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"Positions\", IFCRELPOSITIONS, 4, true]],\n 3027567501: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 964333572: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2320036040: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 2310774935: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 146592293: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n 550521510: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n 2781568857: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1768891740: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2157484638: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3649235739: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 544395925: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1027922057: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4074543187: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 33720170: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 3599934289: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1894708472: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 42703149: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 4097777520: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n 2533589738: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1072016465: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3856911033: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasCoverings\", IFCRELCOVERSSPACES, 4, true], [\"BoundedBy\", IFCRELSPACEBOUNDARY, 4, true]],\n 1305183839: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3812236995: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3112655638: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1039846685: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 338393293: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 682877961: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n 1179482911: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectsStructuralMembers\", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],\n 1004757350: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n 4243806635: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectsStructuralMembers\", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],\n 214636428: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n 2445595289: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectedBy\", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],\n 2757150158: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n 1807405624: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n 1252848954: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"SourceOfResultGroup\", IFCSTRUCTURALRESULTGROUP, 6, true], [\"LoadGroupFor\", IFCSTRUCTURALANALYSISMODEL, 7, true]],\n 2082059205: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n 734778138: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectsStructuralMembers\", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],\n 1235345126: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n 2986769608: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ResultGroupFor\", IFCSTRUCTURALANALYSISMODEL, 8, true]],\n 3657597509: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n 1975003073: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedStructuralActivity\", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], [\"ConnectsStructuralMembers\", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],\n 148013059: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 3101698114: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"AdheresToElement\", IFCRELADHERESTOELEMENT, 5, false]],\n 2315554128: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2254336722: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true], [\"ServicesFacilities\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n 413509423: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 5716631: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3824725483: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 2347447852: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 3081323446: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3663046924: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 2281632017: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2415094496: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 618700268: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1692211062: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2097647324: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1953115116: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 3593883385: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1600972822: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1911125066: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 728799441: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 840318589: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 1530820697: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 3956297820: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2391383451: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 3313531582: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2769231204: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 926996030: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"VoidsElements\", IFCRELVOIDSELEMENT, 5, false]],\n 1898987631: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1133259667: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 4009809668: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 4088093105: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 1028945134: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 4218914973: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 3342526732: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 1033361043: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true], [\"ServicesFacilities\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n 3821786052: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"Controls\", IFCRELASSIGNSTOCONTROL, 6, true]],\n 1411407467: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3352864051: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1871374353: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 4266260250: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n 1545765605: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n 317615605: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n 1662888072: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n 3460190687: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n 1532957894: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1967976161: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 2461110595: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 819618141: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3649138523: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 231477066: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1136057603: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 644574406: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n 963979645: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n 4031249490: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true]],\n 2979338954: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 39481116: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1909888760: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1177604601: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true], [\"ServicesFacilities\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n 1876633798: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 3862327254: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true], [\"ServicesFacilities\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n 2188180465: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 395041908: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3293546465: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2674252688: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1285652485: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3203706013: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2951183804: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3296154744: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 2611217952: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 1677625105: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 2301859152: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 843113511: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 400855858: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3850581409: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2816379211: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3898045240: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 1060000209: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 488727124: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ResourceOf\", IFCRELASSIGNSTORESOURCE, 6, true]],\n 2940368186: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 335055490: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2954562838: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1502416096: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 1973544240: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"CoversSpaces\", IFCRELCOVERSSPACES, 5, true], [\"CoversElements\", IFCRELCOVERSBLDGELEMENTS, 5, true]],\n 3495092785: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 3961806047: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3426335179: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 1335981549: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 2635815018: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 479945903: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1599208980: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2063403501: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1945004755: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true]],\n 3040386961: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3041715199: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainedIn\", IFCRELCONNECTSPORTTOELEMENT, 4, true], [\"ConnectedFrom\", IFCRELCONNECTSPORTS, 5, true], [\"ConnectedTo\", IFCRELCONNECTSPORTS, 4, true]],\n 3205830791: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true], [\"ServicesFacilities\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n 395920057: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 869906466: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3760055223: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2030761528: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3071239417: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"VoidsElements\", IFCRELVOIDSELEMENT, 5, false]],\n 1077100507: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 3376911765: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 663422040: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2417008758: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3277789161: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2142170206: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1534661035: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1217240411: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 712377611: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1658829314: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 2814081492: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3747195512: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 484807127: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1209101575: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainsElements\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], [\"ServicedBySystems\", IFCRELSERVICESBUILDINGS, 5, true], [\"ReferencesElements\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"BoundedBy\", IFCRELSPACEBOUNDARY, 4, true]],\n 346874300: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1810631287: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 4222183408: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2058353004: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 4278956645: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 4037862832: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2188021234: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3132237377: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 987401354: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 707683696: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 2223149337: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3508470533: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 900683007: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 2713699986: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 3009204131: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"Positions\", IFCRELPOSITIONS, 4, true]],\n 3319311131: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 2068733104: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 4175244083: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 2176052936: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 2696325953: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 76236018: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 629592764: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1154579445: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"Positions\", IFCRELPOSITIONS, 4, true]],\n 1638804497: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1437502449: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1073191201: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 2078563270: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 234836483: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 2474470126: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 2182337498: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 144952367: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3694346114: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1383356374: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 1687234759: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 310824031: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3612865200: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3171933400: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 738039164: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 655969474: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 90941305: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3290496277: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 2262370178: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 3024970846: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 3283111854: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 1232101972: [[\"LayerAssignment\", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], [\"StyledByItem\", IFCSTYLEDITEM, 0, true]],\n 3798194928: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 979691226: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 2572171363: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 2016517767: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 3053780830: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1783015770: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1329646415: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 991950508: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1529196076: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 3420628829: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1999602285: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1404847402: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 331165859: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 4252922144: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 2515109513: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true], [\"ServicesFacilities\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n 385403989: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"SourceOfResultGroup\", IFCSTRUCTURALRESULTGROUP, 6, true], [\"LoadGroupFor\", IFCSTRUCTURALANALYSISMODEL, 7, true]],\n 1621171031: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"AssignedToStructuralItem\", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],\n 1162798199: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 812556717: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3425753595: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 3825984169: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1620046519: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 3026737570: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3179687236: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 4292641817: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 4207607924: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 2391406946: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 3512223829: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 4237592921: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3304561284: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 2874132201: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 1634111441: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 177149247: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 2056796094: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3001207471: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 325726236: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"Positions\", IFCRELPOSITIONS, 4, true]],\n 277319702: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 753842376: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 4196446775: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 32344328: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3314249567: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 1095909175: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 2938176219: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 635142910: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3758799889: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1051757585: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 4217484030: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3999819293: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 3902619387: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 639361253: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3221913625: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3571504051: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 2272882330: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 578613899: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"Types\", IFCRELDEFINESBYTYPE, 5, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true]],\n 3460952963: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 4136498852: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3640358203: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 4074379575: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3693000487: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1052013943: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 562808652: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"IsGroupedBy\", IFCRELASSIGNSTOGROUP, 6, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"ServicesBuildings\", IFCRELSERVICESBUILDINGS, 4, true], [\"ServicesFacilities\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],\n 1062813311: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n 342316401: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3518393246: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1360408905: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1904799276: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 862014818: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3310460725: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 24726584: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 264262732: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 402227799: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1003880860: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 3415622556: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 819412036: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 1426591983: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"HasControlElements\", IFCRELFLOWCONTROLELEMENTS, 5, true]],\n 182646315: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n 2680139844: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 1971632696: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true]],\n 2295281155: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n 4086658281: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n 630975310: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n 4288193352: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n 3087945054: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]],\n 25142252: [[\"HasAssignments\", IFCRELASSIGNS, 4, true], [\"Nests\", IFCRELNESTS, 5, true], [\"IsNestedBy\", IFCRELNESTS, 4, true], [\"HasContext\", IFCRELDECLARES, 5, true], [\"IsDecomposedBy\", IFCRELAGGREGATES, 4, true], [\"Decomposes\", IFCRELAGGREGATES, 5, true], [\"HasAssociations\", IFCRELASSOCIATES, 4, true], [\"IsDeclaredBy\", IFCRELDEFINESBYOBJECT, 4, true], [\"Declares\", IFCRELDEFINESBYOBJECT, 5, true], [\"IsTypedBy\", IFCRELDEFINESBYTYPE, 4, true], [\"IsDefinedBy\", IFCRELDEFINESBYPROPERTIES, 4, true], [\"ReferencedBy\", IFCRELASSIGNSTOPRODUCT, 6, true], [\"PositionedRelativeTo\", IFCRELPOSITIONS, 5, true], [\"ReferencedInStructures\", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], [\"FillsVoids\", IFCRELFILLSELEMENT, 5, true], [\"ConnectedTo\", IFCRELCONNECTSELEMENTS, 5, true], [\"IsInterferedByElements\", IFCRELINTERFERESELEMENTS, 5, true], [\"InterferesElements\", IFCRELINTERFERESELEMENTS, 4, true], [\"HasProjections\", IFCRELPROJECTSELEMENT, 4, true], [\"HasOpenings\", IFCRELVOIDSELEMENT, 4, true], [\"IsConnectionRealization\", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], [\"ProvidesBoundaries\", IFCRELSPACEBOUNDARY, 5, true], [\"ConnectedFrom\", IFCRELCONNECTSELEMENTS, 6, true], [\"ContainedInStructure\", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], [\"HasCoverings\", IFCRELCOVERSBLDGELEMENTS, 4, true], [\"HasSurfaceFeatures\", IFCRELADHERESTOELEMENT, 4, true], [\"HasPorts\", IFCRELCONNECTSPORTTOELEMENT, 5, true], [\"AssignedToFlowElement\", IFCRELFLOWCONTROLELEMENTS, 4, true]]\n};\nConstructors[3] = {\n 3630933823: (a) => new IFC4X3.IfcActorRole(a[0], a[1], a[2]),\n 618182010: (a) => new IFC4X3.IfcAddress(a[0], a[1], a[2]),\n 2879124712: (a) => new IFC4X3.IfcAlignmentParameterSegment(a[0], a[1]),\n 3633395639: (a) => new IFC4X3.IfcAlignmentVerticalSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 639542469: (a) => new IFC4X3.IfcApplication(a[0], a[1], a[2], a[3]),\n 411424972: (a) => new IFC4X3.IfcAppliedValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 130549933: (a) => new IFC4X3.IfcApproval(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 4037036970: (a) => new IFC4X3.IfcBoundaryCondition(a[0]),\n 1560379544: (a) => new IFC4X3.IfcBoundaryEdgeCondition(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3367102660: (a) => new IFC4X3.IfcBoundaryFaceCondition(a[0], a[1], a[2], a[3]),\n 1387855156: (a) => new IFC4X3.IfcBoundaryNodeCondition(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 2069777674: (a) => new IFC4X3.IfcBoundaryNodeConditionWarping(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2859738748: (_) => new IFC4X3.IfcConnectionGeometry(),\n 2614616156: (a) => new IFC4X3.IfcConnectionPointGeometry(a[0], a[1]),\n 2732653382: (a) => new IFC4X3.IfcConnectionSurfaceGeometry(a[0], a[1]),\n 775493141: (a) => new IFC4X3.IfcConnectionVolumeGeometry(a[0], a[1]),\n 1959218052: (a) => new IFC4X3.IfcConstraint(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1785450214: (a) => new IFC4X3.IfcCoordinateOperation(a[0], a[1]),\n 1466758467: (a) => new IFC4X3.IfcCoordinateReferenceSystem(a[0], a[1], a[2], a[3]),\n 602808272: (a) => new IFC4X3.IfcCostValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1765591967: (a) => new IFC4X3.IfcDerivedUnit(a[0], a[1], a[2], a[3]),\n 1045800335: (a) => new IFC4X3.IfcDerivedUnitElement(a[0], a[1]),\n 2949456006: (a) => new IFC4X3.IfcDimensionalExponents(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 4294318154: (_) => new IFC4X3.IfcExternalInformation(),\n 3200245327: (a) => new IFC4X3.IfcExternalReference(a[0], a[1], a[2]),\n 2242383968: (a) => new IFC4X3.IfcExternallyDefinedHatchStyle(a[0], a[1], a[2]),\n 1040185647: (a) => new IFC4X3.IfcExternallyDefinedSurfaceStyle(a[0], a[1], a[2]),\n 3548104201: (a) => new IFC4X3.IfcExternallyDefinedTextFont(a[0], a[1], a[2]),\n 852622518: (a) => new IFC4X3.IfcGridAxis(a[0], a[1], a[2]),\n 3020489413: (a) => new IFC4X3.IfcIrregularTimeSeriesValue(a[0], a[1]),\n 2655187982: (a) => new IFC4X3.IfcLibraryInformation(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3452421091: (a) => new IFC4X3.IfcLibraryReference(a[0], a[1], a[2], a[3], a[4], a[5]),\n 4162380809: (a) => new IFC4X3.IfcLightDistributionData(a[0], a[1], a[2]),\n 1566485204: (a) => new IFC4X3.IfcLightIntensityDistribution(a[0], a[1]),\n 3057273783: (a) => new IFC4X3.IfcMapConversion(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1847130766: (a) => new IFC4X3.IfcMaterialClassificationRelationship(a[0], a[1]),\n 760658860: (_) => new IFC4X3.IfcMaterialDefinition(),\n 248100487: (a) => new IFC4X3.IfcMaterialLayer(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3303938423: (a) => new IFC4X3.IfcMaterialLayerSet(a[0], a[1], a[2]),\n 1847252529: (a) => new IFC4X3.IfcMaterialLayerWithOffsets(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2199411900: (a) => new IFC4X3.IfcMaterialList(a[0]),\n 2235152071: (a) => new IFC4X3.IfcMaterialProfile(a[0], a[1], a[2], a[3], a[4], a[5]),\n 164193824: (a) => new IFC4X3.IfcMaterialProfileSet(a[0], a[1], a[2], a[3]),\n 552965576: (a) => new IFC4X3.IfcMaterialProfileWithOffsets(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1507914824: (_) => new IFC4X3.IfcMaterialUsageDefinition(),\n 2597039031: (a) => new IFC4X3.IfcMeasureWithUnit(a[0], a[1]),\n 3368373690: (a) => new IFC4X3.IfcMetric(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 2706619895: (a) => new IFC4X3.IfcMonetaryUnit(a[0]),\n 1918398963: (a) => new IFC4X3.IfcNamedUnit(a[0], a[1]),\n 3701648758: (a) => new IFC4X3.IfcObjectPlacement(a[0]),\n 2251480897: (a) => new IFC4X3.IfcObjective(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 4251960020: (a) => new IFC4X3.IfcOrganization(a[0], a[1], a[2], a[3], a[4]),\n 1207048766: (a) => new IFC4X3.IfcOwnerHistory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2077209135: (a) => new IFC4X3.IfcPerson(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 101040310: (a) => new IFC4X3.IfcPersonAndOrganization(a[0], a[1], a[2]),\n 2483315170: (a) => new IFC4X3.IfcPhysicalQuantity(a[0], a[1]),\n 2226359599: (a) => new IFC4X3.IfcPhysicalSimpleQuantity(a[0], a[1], a[2]),\n 3355820592: (a) => new IFC4X3.IfcPostalAddress(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 677532197: (_) => new IFC4X3.IfcPresentationItem(),\n 2022622350: (a) => new IFC4X3.IfcPresentationLayerAssignment(a[0], a[1], a[2], a[3]),\n 1304840413: (a) => new IFC4X3.IfcPresentationLayerWithStyle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3119450353: (a) => new IFC4X3.IfcPresentationStyle(a[0]),\n 2095639259: (a) => new IFC4X3.IfcProductRepresentation(a[0], a[1], a[2]),\n 3958567839: (a) => new IFC4X3.IfcProfileDef(a[0], a[1]),\n 3843373140: (a) => new IFC4X3.IfcProjectedCRS(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 986844984: (_) => new IFC4X3.IfcPropertyAbstraction(),\n 3710013099: (a) => new IFC4X3.IfcPropertyEnumeration(a[0], a[1], a[2]),\n 2044713172: (a) => new IFC4X3.IfcQuantityArea(a[0], a[1], a[2], a[3], a[4]),\n 2093928680: (a) => new IFC4X3.IfcQuantityCount(a[0], a[1], a[2], a[3], a[4]),\n 931644368: (a) => new IFC4X3.IfcQuantityLength(a[0], a[1], a[2], a[3], a[4]),\n 2691318326: (a) => new IFC4X3.IfcQuantityNumber(a[0], a[1], a[2], a[3], a[4]),\n 3252649465: (a) => new IFC4X3.IfcQuantityTime(a[0], a[1], a[2], a[3], a[4]),\n 2405470396: (a) => new IFC4X3.IfcQuantityVolume(a[0], a[1], a[2], a[3], a[4]),\n 825690147: (a) => new IFC4X3.IfcQuantityWeight(a[0], a[1], a[2], a[3], a[4]),\n 3915482550: (a) => new IFC4X3.IfcRecurrencePattern(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2433181523: (a) => new IFC4X3.IfcReference(a[0], a[1], a[2], a[3], a[4]),\n 1076942058: (a) => new IFC4X3.IfcRepresentation(a[0], a[1], a[2], a[3]),\n 3377609919: (a) => new IFC4X3.IfcRepresentationContext(a[0], a[1]),\n 3008791417: (_) => new IFC4X3.IfcRepresentationItem(),\n 1660063152: (a) => new IFC4X3.IfcRepresentationMap(a[0], a[1]),\n 2439245199: (a) => new IFC4X3.IfcResourceLevelRelationship(a[0], a[1]),\n 2341007311: (a) => new IFC4X3.IfcRoot(a[0], a[1], a[2], a[3]),\n 448429030: (a) => new IFC4X3.IfcSIUnit(a[0], a[1], a[2], a[3]),\n 1054537805: (a) => new IFC4X3.IfcSchedulingTime(a[0], a[1], a[2]),\n 867548509: (a) => new IFC4X3.IfcShapeAspect(a[0], a[1], a[2], a[3], a[4]),\n 3982875396: (a) => new IFC4X3.IfcShapeModel(a[0], a[1], a[2], a[3]),\n 4240577450: (a) => new IFC4X3.IfcShapeRepresentation(a[0], a[1], a[2], a[3]),\n 2273995522: (a) => new IFC4X3.IfcStructuralConnectionCondition(a[0]),\n 2162789131: (a) => new IFC4X3.IfcStructuralLoad(a[0]),\n 3478079324: (a) => new IFC4X3.IfcStructuralLoadConfiguration(a[0], a[1], a[2]),\n 609421318: (a) => new IFC4X3.IfcStructuralLoadOrResult(a[0]),\n 2525727697: (a) => new IFC4X3.IfcStructuralLoadStatic(a[0]),\n 3408363356: (a) => new IFC4X3.IfcStructuralLoadTemperature(a[0], a[1], a[2], a[3]),\n 2830218821: (a) => new IFC4X3.IfcStyleModel(a[0], a[1], a[2], a[3]),\n 3958052878: (a) => new IFC4X3.IfcStyledItem(a[0], a[1], a[2]),\n 3049322572: (a) => new IFC4X3.IfcStyledRepresentation(a[0], a[1], a[2], a[3]),\n 2934153892: (a) => new IFC4X3.IfcSurfaceReinforcementArea(a[0], a[1], a[2], a[3]),\n 1300840506: (a) => new IFC4X3.IfcSurfaceStyle(a[0], a[1], a[2]),\n 3303107099: (a) => new IFC4X3.IfcSurfaceStyleLighting(a[0], a[1], a[2], a[3]),\n 1607154358: (a) => new IFC4X3.IfcSurfaceStyleRefraction(a[0], a[1]),\n 846575682: (a) => new IFC4X3.IfcSurfaceStyleShading(a[0], a[1]),\n 1351298697: (a) => new IFC4X3.IfcSurfaceStyleWithTextures(a[0]),\n 626085974: (a) => new IFC4X3.IfcSurfaceTexture(a[0], a[1], a[2], a[3], a[4]),\n 985171141: (a) => new IFC4X3.IfcTable(a[0], a[1], a[2]),\n 2043862942: (a) => new IFC4X3.IfcTableColumn(a[0], a[1], a[2], a[3], a[4]),\n 531007025: (a) => new IFC4X3.IfcTableRow(a[0], a[1]),\n 1549132990: (a) => new IFC4X3.IfcTaskTime(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19]),\n 2771591690: (a) => new IFC4X3.IfcTaskTimeRecurring(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20]),\n 912023232: (a) => new IFC4X3.IfcTelecomAddress(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1447204868: (a) => new IFC4X3.IfcTextStyle(a[0], a[1], a[2], a[3], a[4]),\n 2636378356: (a) => new IFC4X3.IfcTextStyleForDefinedFont(a[0], a[1]),\n 1640371178: (a) => new IFC4X3.IfcTextStyleTextModel(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 280115917: (a) => new IFC4X3.IfcTextureCoordinate(a[0]),\n 1742049831: (a) => new IFC4X3.IfcTextureCoordinateGenerator(a[0], a[1], a[2]),\n 222769930: (a) => new IFC4X3.IfcTextureCoordinateIndices(a[0], a[1]),\n 1010789467: (a) => new IFC4X3.IfcTextureCoordinateIndicesWithVoids(a[0], a[1], a[2]),\n 2552916305: (a) => new IFC4X3.IfcTextureMap(a[0], a[1], a[2]),\n 1210645708: (a) => new IFC4X3.IfcTextureVertex(a[0]),\n 3611470254: (a) => new IFC4X3.IfcTextureVertexList(a[0]),\n 1199560280: (a) => new IFC4X3.IfcTimePeriod(a[0], a[1]),\n 3101149627: (a) => new IFC4X3.IfcTimeSeries(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 581633288: (a) => new IFC4X3.IfcTimeSeriesValue(a[0]),\n 1377556343: (_) => new IFC4X3.IfcTopologicalRepresentationItem(),\n 1735638870: (a) => new IFC4X3.IfcTopologyRepresentation(a[0], a[1], a[2], a[3]),\n 180925521: (a) => new IFC4X3.IfcUnitAssignment(a[0]),\n 2799835756: (_) => new IFC4X3.IfcVertex(),\n 1907098498: (a) => new IFC4X3.IfcVertexPoint(a[0]),\n 891718957: (a) => new IFC4X3.IfcVirtualGridIntersection(a[0], a[1]),\n 1236880293: (a) => new IFC4X3.IfcWorkTime(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3752311538: (a) => new IFC4X3.IfcAlignmentCantSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 536804194: (a) => new IFC4X3.IfcAlignmentHorizontalSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3869604511: (a) => new IFC4X3.IfcApprovalRelationship(a[0], a[1], a[2], a[3]),\n 3798115385: (a) => new IFC4X3.IfcArbitraryClosedProfileDef(a[0], a[1], a[2]),\n 1310608509: (a) => new IFC4X3.IfcArbitraryOpenProfileDef(a[0], a[1], a[2]),\n 2705031697: (a) => new IFC4X3.IfcArbitraryProfileDefWithVoids(a[0], a[1], a[2], a[3]),\n 616511568: (a) => new IFC4X3.IfcBlobTexture(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3150382593: (a) => new IFC4X3.IfcCenterLineProfileDef(a[0], a[1], a[2], a[3]),\n 747523909: (a) => new IFC4X3.IfcClassification(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 647927063: (a) => new IFC4X3.IfcClassificationReference(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3285139300: (a) => new IFC4X3.IfcColourRgbList(a[0]),\n 3264961684: (a) => new IFC4X3.IfcColourSpecification(a[0]),\n 1485152156: (a) => new IFC4X3.IfcCompositeProfileDef(a[0], a[1], a[2], a[3]),\n 370225590: (a) => new IFC4X3.IfcConnectedFaceSet(a[0]),\n 1981873012: (a) => new IFC4X3.IfcConnectionCurveGeometry(a[0], a[1]),\n 45288368: (a) => new IFC4X3.IfcConnectionPointEccentricity(a[0], a[1], a[2], a[3], a[4]),\n 3050246964: (a) => new IFC4X3.IfcContextDependentUnit(a[0], a[1], a[2]),\n 2889183280: (a) => new IFC4X3.IfcConversionBasedUnit(a[0], a[1], a[2], a[3]),\n 2713554722: (a) => new IFC4X3.IfcConversionBasedUnitWithOffset(a[0], a[1], a[2], a[3], a[4]),\n 539742890: (a) => new IFC4X3.IfcCurrencyRelationship(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3800577675: (a) => new IFC4X3.IfcCurveStyle(a[0], a[1], a[2], a[3], a[4]),\n 1105321065: (a) => new IFC4X3.IfcCurveStyleFont(a[0], a[1]),\n 2367409068: (a) => new IFC4X3.IfcCurveStyleFontAndScaling(a[0], a[1], a[2]),\n 3510044353: (a) => new IFC4X3.IfcCurveStyleFontPattern(a[0], a[1]),\n 3632507154: (a) => new IFC4X3.IfcDerivedProfileDef(a[0], a[1], a[2], a[3], a[4]),\n 1154170062: (a) => new IFC4X3.IfcDocumentInformation(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]),\n 770865208: (a) => new IFC4X3.IfcDocumentInformationRelationship(a[0], a[1], a[2], a[3], a[4]),\n 3732053477: (a) => new IFC4X3.IfcDocumentReference(a[0], a[1], a[2], a[3], a[4]),\n 3900360178: (a) => new IFC4X3.IfcEdge(a[0], a[1]),\n 476780140: (a) => new IFC4X3.IfcEdgeCurve(a[0], a[1], a[2], a[3]),\n 211053100: (a) => new IFC4X3.IfcEventTime(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 297599258: (a) => new IFC4X3.IfcExtendedProperties(a[0], a[1], a[2]),\n 1437805879: (a) => new IFC4X3.IfcExternalReferenceRelationship(a[0], a[1], a[2], a[3]),\n 2556980723: (a) => new IFC4X3.IfcFace(a[0]),\n 1809719519: (a) => new IFC4X3.IfcFaceBound(a[0], a[1]),\n 803316827: (a) => new IFC4X3.IfcFaceOuterBound(a[0], a[1]),\n 3008276851: (a) => new IFC4X3.IfcFaceSurface(a[0], a[1], a[2]),\n 4219587988: (a) => new IFC4X3.IfcFailureConnectionCondition(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 738692330: (a) => new IFC4X3.IfcFillAreaStyle(a[0], a[1], a[2]),\n 3448662350: (a) => new IFC4X3.IfcGeometricRepresentationContext(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2453401579: (_) => new IFC4X3.IfcGeometricRepresentationItem(),\n 4142052618: (a) => new IFC4X3.IfcGeometricRepresentationSubContext(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3590301190: (a) => new IFC4X3.IfcGeometricSet(a[0]),\n 178086475: (a) => new IFC4X3.IfcGridPlacement(a[0], a[1], a[2]),\n 812098782: (a) => new IFC4X3.IfcHalfSpaceSolid(a[0], a[1]),\n 3905492369: (a) => new IFC4X3.IfcImageTexture(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3570813810: (a) => new IFC4X3.IfcIndexedColourMap(a[0], a[1], a[2], a[3]),\n 1437953363: (a) => new IFC4X3.IfcIndexedTextureMap(a[0], a[1], a[2]),\n 2133299955: (a) => new IFC4X3.IfcIndexedTriangleTextureMap(a[0], a[1], a[2], a[3]),\n 3741457305: (a) => new IFC4X3.IfcIrregularTimeSeries(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1585845231: (a) => new IFC4X3.IfcLagTime(a[0], a[1], a[2], a[3], a[4]),\n 1402838566: (a) => new IFC4X3.IfcLightSource(a[0], a[1], a[2], a[3]),\n 125510826: (a) => new IFC4X3.IfcLightSourceAmbient(a[0], a[1], a[2], a[3]),\n 2604431987: (a) => new IFC4X3.IfcLightSourceDirectional(a[0], a[1], a[2], a[3], a[4]),\n 4266656042: (a) => new IFC4X3.IfcLightSourceGoniometric(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1520743889: (a) => new IFC4X3.IfcLightSourcePositional(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3422422726: (a) => new IFC4X3.IfcLightSourceSpot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n 388784114: (a) => new IFC4X3.IfcLinearPlacement(a[0], a[1], a[2]),\n 2624227202: (a) => new IFC4X3.IfcLocalPlacement(a[0], a[1]),\n 1008929658: (_) => new IFC4X3.IfcLoop(),\n 2347385850: (a) => new IFC4X3.IfcMappedItem(a[0], a[1]),\n 1838606355: (a) => new IFC4X3.IfcMaterial(a[0], a[1], a[2]),\n 3708119e3: (a) => new IFC4X3.IfcMaterialConstituent(a[0], a[1], a[2], a[3], a[4]),\n 2852063980: (a) => new IFC4X3.IfcMaterialConstituentSet(a[0], a[1], a[2]),\n 2022407955: (a) => new IFC4X3.IfcMaterialDefinitionRepresentation(a[0], a[1], a[2], a[3]),\n 1303795690: (a) => new IFC4X3.IfcMaterialLayerSetUsage(a[0], a[1], a[2], a[3], a[4]),\n 3079605661: (a) => new IFC4X3.IfcMaterialProfileSetUsage(a[0], a[1], a[2]),\n 3404854881: (a) => new IFC4X3.IfcMaterialProfileSetUsageTapering(a[0], a[1], a[2], a[3], a[4]),\n 3265635763: (a) => new IFC4X3.IfcMaterialProperties(a[0], a[1], a[2], a[3]),\n 853536259: (a) => new IFC4X3.IfcMaterialRelationship(a[0], a[1], a[2], a[3], a[4]),\n 2998442950: (a) => new IFC4X3.IfcMirroredProfileDef(a[0], a[1], a[2], a[3], a[4]),\n 219451334: (a) => new IFC4X3.IfcObjectDefinition(a[0], a[1], a[2], a[3]),\n 182550632: (a) => new IFC4X3.IfcOpenCrossProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 2665983363: (a) => new IFC4X3.IfcOpenShell(a[0]),\n 1411181986: (a) => new IFC4X3.IfcOrganizationRelationship(a[0], a[1], a[2], a[3]),\n 1029017970: (a) => new IFC4X3.IfcOrientedEdge(a[0], a[1], a[2]),\n 2529465313: (a) => new IFC4X3.IfcParameterizedProfileDef(a[0], a[1], a[2]),\n 2519244187: (a) => new IFC4X3.IfcPath(a[0]),\n 3021840470: (a) => new IFC4X3.IfcPhysicalComplexQuantity(a[0], a[1], a[2], a[3], a[4], a[5]),\n 597895409: (a) => new IFC4X3.IfcPixelTexture(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2004835150: (a) => new IFC4X3.IfcPlacement(a[0]),\n 1663979128: (a) => new IFC4X3.IfcPlanarExtent(a[0], a[1]),\n 2067069095: (_) => new IFC4X3.IfcPoint(),\n 2165702409: (a) => new IFC4X3.IfcPointByDistanceExpression(a[0], a[1], a[2], a[3], a[4]),\n 4022376103: (a) => new IFC4X3.IfcPointOnCurve(a[0], a[1]),\n 1423911732: (a) => new IFC4X3.IfcPointOnSurface(a[0], a[1], a[2]),\n 2924175390: (a) => new IFC4X3.IfcPolyLoop(a[0]),\n 2775532180: (a) => new IFC4X3.IfcPolygonalBoundedHalfSpace(a[0], a[1], a[2], a[3]),\n 3727388367: (a) => new IFC4X3.IfcPreDefinedItem(a[0]),\n 3778827333: (_) => new IFC4X3.IfcPreDefinedProperties(),\n 1775413392: (a) => new IFC4X3.IfcPreDefinedTextFont(a[0]),\n 673634403: (a) => new IFC4X3.IfcProductDefinitionShape(a[0], a[1], a[2]),\n 2802850158: (a) => new IFC4X3.IfcProfileProperties(a[0], a[1], a[2], a[3]),\n 2598011224: (a) => new IFC4X3.IfcProperty(a[0], a[1]),\n 1680319473: (a) => new IFC4X3.IfcPropertyDefinition(a[0], a[1], a[2], a[3]),\n 148025276: (a) => new IFC4X3.IfcPropertyDependencyRelationship(a[0], a[1], a[2], a[3], a[4]),\n 3357820518: (a) => new IFC4X3.IfcPropertySetDefinition(a[0], a[1], a[2], a[3]),\n 1482703590: (a) => new IFC4X3.IfcPropertyTemplateDefinition(a[0], a[1], a[2], a[3]),\n 2090586900: (a) => new IFC4X3.IfcQuantitySet(a[0], a[1], a[2], a[3]),\n 3615266464: (a) => new IFC4X3.IfcRectangleProfileDef(a[0], a[1], a[2], a[3], a[4]),\n 3413951693: (a) => new IFC4X3.IfcRegularTimeSeries(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1580146022: (a) => new IFC4X3.IfcReinforcementBarProperties(a[0], a[1], a[2], a[3], a[4], a[5]),\n 478536968: (a) => new IFC4X3.IfcRelationship(a[0], a[1], a[2], a[3]),\n 2943643501: (a) => new IFC4X3.IfcResourceApprovalRelationship(a[0], a[1], a[2], a[3]),\n 1608871552: (a) => new IFC4X3.IfcResourceConstraintRelationship(a[0], a[1], a[2], a[3]),\n 1042787934: (a) => new IFC4X3.IfcResourceTime(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17]),\n 2778083089: (a) => new IFC4X3.IfcRoundedRectangleProfileDef(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2042790032: (a) => new IFC4X3.IfcSectionProperties(a[0], a[1], a[2]),\n 4165799628: (a) => new IFC4X3.IfcSectionReinforcementProperties(a[0], a[1], a[2], a[3], a[4], a[5]),\n 1509187699: (a) => new IFC4X3.IfcSectionedSpine(a[0], a[1], a[2]),\n 823603102: (a) => new IFC4X3.IfcSegment(a[0]),\n 4124623270: (a) => new IFC4X3.IfcShellBasedSurfaceModel(a[0]),\n 3692461612: (a) => new IFC4X3.IfcSimpleProperty(a[0], a[1]),\n 2609359061: (a) => new IFC4X3.IfcSlippageConnectionCondition(a[0], a[1], a[2], a[3]),\n 723233188: (_) => new IFC4X3.IfcSolidModel(),\n 1595516126: (a) => new IFC4X3.IfcStructuralLoadLinearForce(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 2668620305: (a) => new IFC4X3.IfcStructuralLoadPlanarForce(a[0], a[1], a[2], a[3]),\n 2473145415: (a) => new IFC4X3.IfcStructuralLoadSingleDisplacement(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1973038258: (a) => new IFC4X3.IfcStructuralLoadSingleDisplacementDistortion(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1597423693: (a) => new IFC4X3.IfcStructuralLoadSingleForce(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1190533807: (a) => new IFC4X3.IfcStructuralLoadSingleForceWarping(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2233826070: (a) => new IFC4X3.IfcSubedge(a[0], a[1], a[2]),\n 2513912981: (_) => new IFC4X3.IfcSurface(),\n 1878645084: (a) => new IFC4X3.IfcSurfaceStyleRendering(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2247615214: (a) => new IFC4X3.IfcSweptAreaSolid(a[0], a[1]),\n 1260650574: (a) => new IFC4X3.IfcSweptDiskSolid(a[0], a[1], a[2], a[3], a[4]),\n 1096409881: (a) => new IFC4X3.IfcSweptDiskSolidPolygonal(a[0], a[1], a[2], a[3], a[4], a[5]),\n 230924584: (a) => new IFC4X3.IfcSweptSurface(a[0], a[1]),\n 3071757647: (a) => new IFC4X3.IfcTShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 901063453: (_) => new IFC4X3.IfcTessellatedItem(),\n 4282788508: (a) => new IFC4X3.IfcTextLiteral(a[0], a[1], a[2]),\n 3124975700: (a) => new IFC4X3.IfcTextLiteralWithExtent(a[0], a[1], a[2], a[3], a[4]),\n 1983826977: (a) => new IFC4X3.IfcTextStyleFontModel(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2715220739: (a) => new IFC4X3.IfcTrapeziumProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1628702193: (a) => new IFC4X3.IfcTypeObject(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3736923433: (a) => new IFC4X3.IfcTypeProcess(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2347495698: (a) => new IFC4X3.IfcTypeProduct(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3698973494: (a) => new IFC4X3.IfcTypeResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 427810014: (a) => new IFC4X3.IfcUShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1417489154: (a) => new IFC4X3.IfcVector(a[0], a[1]),\n 2759199220: (a) => new IFC4X3.IfcVertexLoop(a[0]),\n 2543172580: (a) => new IFC4X3.IfcZShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3406155212: (a) => new IFC4X3.IfcAdvancedFace(a[0], a[1], a[2]),\n 669184980: (a) => new IFC4X3.IfcAnnotationFillArea(a[0], a[1]),\n 3207858831: (a) => new IFC4X3.IfcAsymmetricIShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]),\n 4261334040: (a) => new IFC4X3.IfcAxis1Placement(a[0], a[1]),\n 3125803723: (a) => new IFC4X3.IfcAxis2Placement2D(a[0], a[1]),\n 2740243338: (a) => new IFC4X3.IfcAxis2Placement3D(a[0], a[1], a[2]),\n 3425423356: (a) => new IFC4X3.IfcAxis2PlacementLinear(a[0], a[1], a[2]),\n 2736907675: (a) => new IFC4X3.IfcBooleanResult(a[0], a[1], a[2]),\n 4182860854: (_) => new IFC4X3.IfcBoundedSurface(),\n 2581212453: (a) => new IFC4X3.IfcBoundingBox(a[0], a[1], a[2], a[3]),\n 2713105998: (a) => new IFC4X3.IfcBoxedHalfSpace(a[0], a[1], a[2]),\n 2898889636: (a) => new IFC4X3.IfcCShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1123145078: (a) => new IFC4X3.IfcCartesianPoint(a[0]),\n 574549367: (_) => new IFC4X3.IfcCartesianPointList(),\n 1675464909: (a) => new IFC4X3.IfcCartesianPointList2D(a[0], a[1]),\n 2059837836: (a) => new IFC4X3.IfcCartesianPointList3D(a[0], a[1]),\n 59481748: (a) => new IFC4X3.IfcCartesianTransformationOperator(a[0], a[1], a[2], a[3]),\n 3749851601: (a) => new IFC4X3.IfcCartesianTransformationOperator2D(a[0], a[1], a[2], a[3]),\n 3486308946: (a) => new IFC4X3.IfcCartesianTransformationOperator2DnonUniform(a[0], a[1], a[2], a[3], a[4]),\n 3331915920: (a) => new IFC4X3.IfcCartesianTransformationOperator3D(a[0], a[1], a[2], a[3], a[4]),\n 1416205885: (a) => new IFC4X3.IfcCartesianTransformationOperator3DnonUniform(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1383045692: (a) => new IFC4X3.IfcCircleProfileDef(a[0], a[1], a[2], a[3]),\n 2205249479: (a) => new IFC4X3.IfcClosedShell(a[0]),\n 776857604: (a) => new IFC4X3.IfcColourRgb(a[0], a[1], a[2], a[3]),\n 2542286263: (a) => new IFC4X3.IfcComplexProperty(a[0], a[1], a[2], a[3]),\n 2485617015: (a) => new IFC4X3.IfcCompositeCurveSegment(a[0], a[1], a[2]),\n 2574617495: (a) => new IFC4X3.IfcConstructionResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 3419103109: (a) => new IFC4X3.IfcContext(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1815067380: (a) => new IFC4X3.IfcCrewResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 2506170314: (a) => new IFC4X3.IfcCsgPrimitive3D(a[0]),\n 2147822146: (a) => new IFC4X3.IfcCsgSolid(a[0]),\n 2601014836: (_) => new IFC4X3.IfcCurve(),\n 2827736869: (a) => new IFC4X3.IfcCurveBoundedPlane(a[0], a[1], a[2]),\n 2629017746: (a) => new IFC4X3.IfcCurveBoundedSurface(a[0], a[1], a[2]),\n 4212018352: (a) => new IFC4X3.IfcCurveSegment(a[0], a[1], a[2], a[3], a[4]),\n 32440307: (a) => new IFC4X3.IfcDirection(a[0]),\n 593015953: (a) => new IFC4X3.IfcDirectrixCurveSweptAreaSolid(a[0], a[1], a[2], a[3], a[4]),\n 1472233963: (a) => new IFC4X3.IfcEdgeLoop(a[0]),\n 1883228015: (a) => new IFC4X3.IfcElementQuantity(a[0], a[1], a[2], a[3], a[4], a[5]),\n 339256511: (a) => new IFC4X3.IfcElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2777663545: (a) => new IFC4X3.IfcElementarySurface(a[0]),\n 2835456948: (a) => new IFC4X3.IfcEllipseProfileDef(a[0], a[1], a[2], a[3], a[4]),\n 4024345920: (a) => new IFC4X3.IfcEventType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 477187591: (a) => new IFC4X3.IfcExtrudedAreaSolid(a[0], a[1], a[2], a[3]),\n 2804161546: (a) => new IFC4X3.IfcExtrudedAreaSolidTapered(a[0], a[1], a[2], a[3], a[4]),\n 2047409740: (a) => new IFC4X3.IfcFaceBasedSurfaceModel(a[0]),\n 374418227: (a) => new IFC4X3.IfcFillAreaStyleHatching(a[0], a[1], a[2], a[3], a[4]),\n 315944413: (a) => new IFC4X3.IfcFillAreaStyleTiles(a[0], a[1], a[2]),\n 2652556860: (a) => new IFC4X3.IfcFixedReferenceSweptAreaSolid(a[0], a[1], a[2], a[3], a[4], a[5]),\n 4238390223: (a) => new IFC4X3.IfcFurnishingElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1268542332: (a) => new IFC4X3.IfcFurnitureType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 4095422895: (a) => new IFC4X3.IfcGeographicElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 987898635: (a) => new IFC4X3.IfcGeometricCurveSet(a[0]),\n 1484403080: (a) => new IFC4X3.IfcIShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 178912537: (a) => new IFC4X3.IfcIndexedPolygonalFace(a[0]),\n 2294589976: (a) => new IFC4X3.IfcIndexedPolygonalFaceWithVoids(a[0], a[1]),\n 3465909080: (a) => new IFC4X3.IfcIndexedPolygonalTextureMap(a[0], a[1], a[2], a[3]),\n 572779678: (a) => new IFC4X3.IfcLShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 428585644: (a) => new IFC4X3.IfcLaborResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 1281925730: (a) => new IFC4X3.IfcLine(a[0], a[1]),\n 1425443689: (a) => new IFC4X3.IfcManifoldSolidBrep(a[0]),\n 3888040117: (a) => new IFC4X3.IfcObject(a[0], a[1], a[2], a[3], a[4]),\n 590820931: (a) => new IFC4X3.IfcOffsetCurve(a[0]),\n 3388369263: (a) => new IFC4X3.IfcOffsetCurve2D(a[0], a[1], a[2]),\n 3505215534: (a) => new IFC4X3.IfcOffsetCurve3D(a[0], a[1], a[2], a[3]),\n 2485787929: (a) => new IFC4X3.IfcOffsetCurveByDistances(a[0], a[1], a[2]),\n 1682466193: (a) => new IFC4X3.IfcPcurve(a[0], a[1]),\n 603570806: (a) => new IFC4X3.IfcPlanarBox(a[0], a[1], a[2]),\n 220341763: (a) => new IFC4X3.IfcPlane(a[0]),\n 3381221214: (a) => new IFC4X3.IfcPolynomialCurve(a[0], a[1], a[2], a[3]),\n 759155922: (a) => new IFC4X3.IfcPreDefinedColour(a[0]),\n 2559016684: (a) => new IFC4X3.IfcPreDefinedCurveFont(a[0]),\n 3967405729: (a) => new IFC4X3.IfcPreDefinedPropertySet(a[0], a[1], a[2], a[3]),\n 569719735: (a) => new IFC4X3.IfcProcedureType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2945172077: (a) => new IFC4X3.IfcProcess(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 4208778838: (a) => new IFC4X3.IfcProduct(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 103090709: (a) => new IFC4X3.IfcProject(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 653396225: (a) => new IFC4X3.IfcProjectLibrary(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 871118103: (a) => new IFC4X3.IfcPropertyBoundedValue(a[0], a[1], a[2], a[3], a[4], a[5]),\n 4166981789: (a) => new IFC4X3.IfcPropertyEnumeratedValue(a[0], a[1], a[2], a[3]),\n 2752243245: (a) => new IFC4X3.IfcPropertyListValue(a[0], a[1], a[2], a[3]),\n 941946838: (a) => new IFC4X3.IfcPropertyReferenceValue(a[0], a[1], a[2], a[3]),\n 1451395588: (a) => new IFC4X3.IfcPropertySet(a[0], a[1], a[2], a[3], a[4]),\n 492091185: (a) => new IFC4X3.IfcPropertySetTemplate(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3650150729: (a) => new IFC4X3.IfcPropertySingleValue(a[0], a[1], a[2], a[3]),\n 110355661: (a) => new IFC4X3.IfcPropertyTableValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3521284610: (a) => new IFC4X3.IfcPropertyTemplate(a[0], a[1], a[2], a[3]),\n 2770003689: (a) => new IFC4X3.IfcRectangleHollowProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2798486643: (a) => new IFC4X3.IfcRectangularPyramid(a[0], a[1], a[2], a[3]),\n 3454111270: (a) => new IFC4X3.IfcRectangularTrimmedSurface(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3765753017: (a) => new IFC4X3.IfcReinforcementDefinitionProperties(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3939117080: (a) => new IFC4X3.IfcRelAssigns(a[0], a[1], a[2], a[3], a[4], a[5]),\n 1683148259: (a) => new IFC4X3.IfcRelAssignsToActor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2495723537: (a) => new IFC4X3.IfcRelAssignsToControl(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1307041759: (a) => new IFC4X3.IfcRelAssignsToGroup(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1027710054: (a) => new IFC4X3.IfcRelAssignsToGroupByFactor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 4278684876: (a) => new IFC4X3.IfcRelAssignsToProcess(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2857406711: (a) => new IFC4X3.IfcRelAssignsToProduct(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 205026976: (a) => new IFC4X3.IfcRelAssignsToResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1865459582: (a) => new IFC4X3.IfcRelAssociates(a[0], a[1], a[2], a[3], a[4]),\n 4095574036: (a) => new IFC4X3.IfcRelAssociatesApproval(a[0], a[1], a[2], a[3], a[4], a[5]),\n 919958153: (a) => new IFC4X3.IfcRelAssociatesClassification(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2728634034: (a) => new IFC4X3.IfcRelAssociatesConstraint(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 982818633: (a) => new IFC4X3.IfcRelAssociatesDocument(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3840914261: (a) => new IFC4X3.IfcRelAssociatesLibrary(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2655215786: (a) => new IFC4X3.IfcRelAssociatesMaterial(a[0], a[1], a[2], a[3], a[4], a[5]),\n 1033248425: (a) => new IFC4X3.IfcRelAssociatesProfileDef(a[0], a[1], a[2], a[3], a[4], a[5]),\n 826625072: (a) => new IFC4X3.IfcRelConnects(a[0], a[1], a[2], a[3]),\n 1204542856: (a) => new IFC4X3.IfcRelConnectsElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3945020480: (a) => new IFC4X3.IfcRelConnectsPathElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 4201705270: (a) => new IFC4X3.IfcRelConnectsPortToElement(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3190031847: (a) => new IFC4X3.IfcRelConnectsPorts(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 2127690289: (a) => new IFC4X3.IfcRelConnectsStructuralActivity(a[0], a[1], a[2], a[3], a[4], a[5]),\n 1638771189: (a) => new IFC4X3.IfcRelConnectsStructuralMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 504942748: (a) => new IFC4X3.IfcRelConnectsWithEccentricity(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 3678494232: (a) => new IFC4X3.IfcRelConnectsWithRealizingElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3242617779: (a) => new IFC4X3.IfcRelContainedInSpatialStructure(a[0], a[1], a[2], a[3], a[4], a[5]),\n 886880790: (a) => new IFC4X3.IfcRelCoversBldgElements(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2802773753: (a) => new IFC4X3.IfcRelCoversSpaces(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2565941209: (a) => new IFC4X3.IfcRelDeclares(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2551354335: (a) => new IFC4X3.IfcRelDecomposes(a[0], a[1], a[2], a[3]),\n 693640335: (a) => new IFC4X3.IfcRelDefines(a[0], a[1], a[2], a[3]),\n 1462361463: (a) => new IFC4X3.IfcRelDefinesByObject(a[0], a[1], a[2], a[3], a[4], a[5]),\n 4186316022: (a) => new IFC4X3.IfcRelDefinesByProperties(a[0], a[1], a[2], a[3], a[4], a[5]),\n 307848117: (a) => new IFC4X3.IfcRelDefinesByTemplate(a[0], a[1], a[2], a[3], a[4], a[5]),\n 781010003: (a) => new IFC4X3.IfcRelDefinesByType(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3940055652: (a) => new IFC4X3.IfcRelFillsElement(a[0], a[1], a[2], a[3], a[4], a[5]),\n 279856033: (a) => new IFC4X3.IfcRelFlowControlElements(a[0], a[1], a[2], a[3], a[4], a[5]),\n 427948657: (a) => new IFC4X3.IfcRelInterferesElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3268803585: (a) => new IFC4X3.IfcRelNests(a[0], a[1], a[2], a[3], a[4], a[5]),\n 1441486842: (a) => new IFC4X3.IfcRelPositions(a[0], a[1], a[2], a[3], a[4], a[5]),\n 750771296: (a) => new IFC4X3.IfcRelProjectsElement(a[0], a[1], a[2], a[3], a[4], a[5]),\n 1245217292: (a) => new IFC4X3.IfcRelReferencedInSpatialStructure(a[0], a[1], a[2], a[3], a[4], a[5]),\n 4122056220: (a) => new IFC4X3.IfcRelSequence(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 366585022: (a) => new IFC4X3.IfcRelServicesBuildings(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3451746338: (a) => new IFC4X3.IfcRelSpaceBoundary(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3523091289: (a) => new IFC4X3.IfcRelSpaceBoundary1stLevel(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1521410863: (a) => new IFC4X3.IfcRelSpaceBoundary2ndLevel(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 1401173127: (a) => new IFC4X3.IfcRelVoidsElement(a[0], a[1], a[2], a[3], a[4], a[5]),\n 816062949: (a) => new IFC4X3.IfcReparametrisedCompositeCurveSegment(a[0], a[1], a[2], a[3]),\n 2914609552: (a) => new IFC4X3.IfcResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1856042241: (a) => new IFC4X3.IfcRevolvedAreaSolid(a[0], a[1], a[2], a[3]),\n 3243963512: (a) => new IFC4X3.IfcRevolvedAreaSolidTapered(a[0], a[1], a[2], a[3], a[4]),\n 4158566097: (a) => new IFC4X3.IfcRightCircularCone(a[0], a[1], a[2]),\n 3626867408: (a) => new IFC4X3.IfcRightCircularCylinder(a[0], a[1], a[2]),\n 1862484736: (a) => new IFC4X3.IfcSectionedSolid(a[0], a[1]),\n 1290935644: (a) => new IFC4X3.IfcSectionedSolidHorizontal(a[0], a[1], a[2]),\n 1356537516: (a) => new IFC4X3.IfcSectionedSurface(a[0], a[1], a[2]),\n 3663146110: (a) => new IFC4X3.IfcSimplePropertyTemplate(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 1412071761: (a) => new IFC4X3.IfcSpatialElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 710998568: (a) => new IFC4X3.IfcSpatialElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2706606064: (a) => new IFC4X3.IfcSpatialStructureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3893378262: (a) => new IFC4X3.IfcSpatialStructureElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 463610769: (a) => new IFC4X3.IfcSpatialZone(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2481509218: (a) => new IFC4X3.IfcSpatialZoneType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 451544542: (a) => new IFC4X3.IfcSphere(a[0], a[1]),\n 4015995234: (a) => new IFC4X3.IfcSphericalSurface(a[0], a[1]),\n 2735484536: (a) => new IFC4X3.IfcSpiral(a[0]),\n 3544373492: (a) => new IFC4X3.IfcStructuralActivity(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3136571912: (a) => new IFC4X3.IfcStructuralItem(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 530289379: (a) => new IFC4X3.IfcStructuralMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3689010777: (a) => new IFC4X3.IfcStructuralReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3979015343: (a) => new IFC4X3.IfcStructuralSurfaceMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2218152070: (a) => new IFC4X3.IfcStructuralSurfaceMemberVarying(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 603775116: (a) => new IFC4X3.IfcStructuralSurfaceReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 4095615324: (a) => new IFC4X3.IfcSubContractResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 699246055: (a) => new IFC4X3.IfcSurfaceCurve(a[0], a[1], a[2]),\n 2028607225: (a) => new IFC4X3.IfcSurfaceCurveSweptAreaSolid(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2809605785: (a) => new IFC4X3.IfcSurfaceOfLinearExtrusion(a[0], a[1], a[2], a[3]),\n 4124788165: (a) => new IFC4X3.IfcSurfaceOfRevolution(a[0], a[1], a[2]),\n 1580310250: (a) => new IFC4X3.IfcSystemFurnitureElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3473067441: (a) => new IFC4X3.IfcTask(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n 3206491090: (a) => new IFC4X3.IfcTaskType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 2387106220: (a) => new IFC4X3.IfcTessellatedFaceSet(a[0], a[1]),\n 782932809: (a) => new IFC4X3.IfcThirdOrderPolynomialSpiral(a[0], a[1], a[2], a[3], a[4]),\n 1935646853: (a) => new IFC4X3.IfcToroidalSurface(a[0], a[1], a[2]),\n 3665877780: (a) => new IFC4X3.IfcTransportationDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2916149573: (a) => new IFC4X3.IfcTriangulatedFaceSet(a[0], a[1], a[2], a[3], a[4]),\n 1229763772: (a) => new IFC4X3.IfcTriangulatedIrregularNetwork(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3651464721: (a) => new IFC4X3.IfcVehicleType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 336235671: (a) => new IFC4X3.IfcWindowLiningProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]),\n 512836454: (a) => new IFC4X3.IfcWindowPanelProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2296667514: (a) => new IFC4X3.IfcActor(a[0], a[1], a[2], a[3], a[4], a[5]),\n 1635779807: (a) => new IFC4X3.IfcAdvancedBrep(a[0]),\n 2603310189: (a) => new IFC4X3.IfcAdvancedBrepWithVoids(a[0], a[1]),\n 1674181508: (a) => new IFC4X3.IfcAnnotation(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2887950389: (a) => new IFC4X3.IfcBSplineSurface(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 167062518: (a) => new IFC4X3.IfcBSplineSurfaceWithKnots(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 1334484129: (a) => new IFC4X3.IfcBlock(a[0], a[1], a[2], a[3]),\n 3649129432: (a) => new IFC4X3.IfcBooleanClippingResult(a[0], a[1], a[2]),\n 1260505505: (_) => new IFC4X3.IfcBoundedCurve(),\n 3124254112: (a) => new IFC4X3.IfcBuildingStorey(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1626504194: (a) => new IFC4X3.IfcBuiltElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2197970202: (a) => new IFC4X3.IfcChimneyType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2937912522: (a) => new IFC4X3.IfcCircleHollowProfileDef(a[0], a[1], a[2], a[3], a[4]),\n 3893394355: (a) => new IFC4X3.IfcCivilElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3497074424: (a) => new IFC4X3.IfcClothoid(a[0], a[1]),\n 300633059: (a) => new IFC4X3.IfcColumnType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3875453745: (a) => new IFC4X3.IfcComplexPropertyTemplate(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3732776249: (a) => new IFC4X3.IfcCompositeCurve(a[0], a[1]),\n 15328376: (a) => new IFC4X3.IfcCompositeCurveOnSurface(a[0], a[1]),\n 2510884976: (a) => new IFC4X3.IfcConic(a[0]),\n 2185764099: (a) => new IFC4X3.IfcConstructionEquipmentResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 4105962743: (a) => new IFC4X3.IfcConstructionMaterialResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 1525564444: (a) => new IFC4X3.IfcConstructionProductResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 2559216714: (a) => new IFC4X3.IfcConstructionResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3293443760: (a) => new IFC4X3.IfcControl(a[0], a[1], a[2], a[3], a[4], a[5]),\n 2000195564: (a) => new IFC4X3.IfcCosineSpiral(a[0], a[1], a[2]),\n 3895139033: (a) => new IFC4X3.IfcCostItem(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1419761937: (a) => new IFC4X3.IfcCostSchedule(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 4189326743: (a) => new IFC4X3.IfcCourseType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1916426348: (a) => new IFC4X3.IfcCoveringType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3295246426: (a) => new IFC4X3.IfcCrewResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 1457835157: (a) => new IFC4X3.IfcCurtainWallType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1213902940: (a) => new IFC4X3.IfcCylindricalSurface(a[0], a[1]),\n 1306400036: (a) => new IFC4X3.IfcDeepFoundationType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 4234616927: (a) => new IFC4X3.IfcDirectrixDerivedReferenceSweptAreaSolid(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3256556792: (a) => new IFC4X3.IfcDistributionElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3849074793: (a) => new IFC4X3.IfcDistributionFlowElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2963535650: (a) => new IFC4X3.IfcDoorLiningProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]),\n 1714330368: (a) => new IFC4X3.IfcDoorPanelProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2323601079: (a) => new IFC4X3.IfcDoorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n 445594917: (a) => new IFC4X3.IfcDraughtingPreDefinedColour(a[0]),\n 4006246654: (a) => new IFC4X3.IfcDraughtingPreDefinedCurveFont(a[0]),\n 1758889154: (a) => new IFC4X3.IfcElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 4123344466: (a) => new IFC4X3.IfcElementAssembly(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2397081782: (a) => new IFC4X3.IfcElementAssemblyType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1623761950: (a) => new IFC4X3.IfcElementComponent(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2590856083: (a) => new IFC4X3.IfcElementComponentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1704287377: (a) => new IFC4X3.IfcEllipse(a[0], a[1], a[2]),\n 2107101300: (a) => new IFC4X3.IfcEnergyConversionDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 132023988: (a) => new IFC4X3.IfcEngineType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3174744832: (a) => new IFC4X3.IfcEvaporativeCoolerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3390157468: (a) => new IFC4X3.IfcEvaporatorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 4148101412: (a) => new IFC4X3.IfcEvent(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 2853485674: (a) => new IFC4X3.IfcExternalSpatialStructureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 807026263: (a) => new IFC4X3.IfcFacetedBrep(a[0]),\n 3737207727: (a) => new IFC4X3.IfcFacetedBrepWithVoids(a[0], a[1]),\n 24185140: (a) => new IFC4X3.IfcFacility(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1310830890: (a) => new IFC4X3.IfcFacilityPart(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 4228831410: (a) => new IFC4X3.IfcFacilityPartCommon(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 647756555: (a) => new IFC4X3.IfcFastener(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2489546625: (a) => new IFC4X3.IfcFastenerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2827207264: (a) => new IFC4X3.IfcFeatureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2143335405: (a) => new IFC4X3.IfcFeatureElementAddition(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1287392070: (a) => new IFC4X3.IfcFeatureElementSubtraction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3907093117: (a) => new IFC4X3.IfcFlowControllerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3198132628: (a) => new IFC4X3.IfcFlowFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3815607619: (a) => new IFC4X3.IfcFlowMeterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1482959167: (a) => new IFC4X3.IfcFlowMovingDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1834744321: (a) => new IFC4X3.IfcFlowSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1339347760: (a) => new IFC4X3.IfcFlowStorageDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2297155007: (a) => new IFC4X3.IfcFlowTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3009222698: (a) => new IFC4X3.IfcFlowTreatmentDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1893162501: (a) => new IFC4X3.IfcFootingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 263784265: (a) => new IFC4X3.IfcFurnishingElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1509553395: (a) => new IFC4X3.IfcFurniture(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3493046030: (a) => new IFC4X3.IfcGeographicElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 4230923436: (a) => new IFC4X3.IfcGeotechnicalElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1594536857: (a) => new IFC4X3.IfcGeotechnicalStratum(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2898700619: (a) => new IFC4X3.IfcGradientCurve(a[0], a[1], a[2], a[3]),\n 2706460486: (a) => new IFC4X3.IfcGroup(a[0], a[1], a[2], a[3], a[4]),\n 1251058090: (a) => new IFC4X3.IfcHeatExchangerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1806887404: (a) => new IFC4X3.IfcHumidifierType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2568555532: (a) => new IFC4X3.IfcImpactProtectionDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3948183225: (a) => new IFC4X3.IfcImpactProtectionDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2571569899: (a) => new IFC4X3.IfcIndexedPolyCurve(a[0], a[1], a[2]),\n 3946677679: (a) => new IFC4X3.IfcInterceptorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3113134337: (a) => new IFC4X3.IfcIntersectionCurve(a[0], a[1], a[2]),\n 2391368822: (a) => new IFC4X3.IfcInventory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 4288270099: (a) => new IFC4X3.IfcJunctionBoxType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 679976338: (a) => new IFC4X3.IfcKerbType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3827777499: (a) => new IFC4X3.IfcLaborResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 1051575348: (a) => new IFC4X3.IfcLampType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1161773419: (a) => new IFC4X3.IfcLightFixtureType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2176059722: (a) => new IFC4X3.IfcLinearElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1770583370: (a) => new IFC4X3.IfcLiquidTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 525669439: (a) => new IFC4X3.IfcMarineFacility(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 976884017: (a) => new IFC4X3.IfcMarinePart(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 377706215: (a) => new IFC4X3.IfcMechanicalFastener(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 2108223431: (a) => new IFC4X3.IfcMechanicalFastenerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 1114901282: (a) => new IFC4X3.IfcMedicalDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3181161470: (a) => new IFC4X3.IfcMemberType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1950438474: (a) => new IFC4X3.IfcMobileTelecommunicationsApplianceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 710110818: (a) => new IFC4X3.IfcMooringDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 977012517: (a) => new IFC4X3.IfcMotorConnectionType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 506776471: (a) => new IFC4X3.IfcNavigationElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 4143007308: (a) => new IFC4X3.IfcOccupant(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3588315303: (a) => new IFC4X3.IfcOpeningElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2837617999: (a) => new IFC4X3.IfcOutletType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 514975943: (a) => new IFC4X3.IfcPavementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2382730787: (a) => new IFC4X3.IfcPerformanceHistory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3566463478: (a) => new IFC4X3.IfcPermeableCoveringProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3327091369: (a) => new IFC4X3.IfcPermit(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1158309216: (a) => new IFC4X3.IfcPileType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 804291784: (a) => new IFC4X3.IfcPipeFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 4231323485: (a) => new IFC4X3.IfcPipeSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 4017108033: (a) => new IFC4X3.IfcPlateType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2839578677: (a) => new IFC4X3.IfcPolygonalFaceSet(a[0], a[1], a[2], a[3]),\n 3724593414: (a) => new IFC4X3.IfcPolyline(a[0]),\n 3740093272: (a) => new IFC4X3.IfcPort(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1946335990: (a) => new IFC4X3.IfcPositioningElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 2744685151: (a) => new IFC4X3.IfcProcedure(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2904328755: (a) => new IFC4X3.IfcProjectOrder(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3651124850: (a) => new IFC4X3.IfcProjectionElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1842657554: (a) => new IFC4X3.IfcProtectiveDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2250791053: (a) => new IFC4X3.IfcPumpType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1763565496: (a) => new IFC4X3.IfcRailType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2893384427: (a) => new IFC4X3.IfcRailingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3992365140: (a) => new IFC4X3.IfcRailway(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1891881377: (a) => new IFC4X3.IfcRailwayPart(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 2324767716: (a) => new IFC4X3.IfcRampFlightType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1469900589: (a) => new IFC4X3.IfcRampType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 683857671: (a) => new IFC4X3.IfcRationalBSplineSurfaceWithKnots(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n 4021432810: (a) => new IFC4X3.IfcReferent(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3027567501: (a) => new IFC4X3.IfcReinforcingElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 964333572: (a) => new IFC4X3.IfcReinforcingElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2320036040: (a) => new IFC4X3.IfcReinforcingMesh(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17]),\n 2310774935: (a) => new IFC4X3.IfcReinforcingMeshType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19]),\n 3818125796: (a) => new IFC4X3.IfcRelAdheresToElement(a[0], a[1], a[2], a[3], a[4], a[5]),\n 160246688: (a) => new IFC4X3.IfcRelAggregates(a[0], a[1], a[2], a[3], a[4], a[5]),\n 146592293: (a) => new IFC4X3.IfcRoad(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 550521510: (a) => new IFC4X3.IfcRoadPart(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 2781568857: (a) => new IFC4X3.IfcRoofType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1768891740: (a) => new IFC4X3.IfcSanitaryTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2157484638: (a) => new IFC4X3.IfcSeamCurve(a[0], a[1], a[2]),\n 3649235739: (a) => new IFC4X3.IfcSecondOrderPolynomialSpiral(a[0], a[1], a[2], a[3]),\n 544395925: (a) => new IFC4X3.IfcSegmentedReferenceCurve(a[0], a[1], a[2], a[3]),\n 1027922057: (a) => new IFC4X3.IfcSeventhOrderPolynomialSpiral(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 4074543187: (a) => new IFC4X3.IfcShadingDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 33720170: (a) => new IFC4X3.IfcSign(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3599934289: (a) => new IFC4X3.IfcSignType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1894708472: (a) => new IFC4X3.IfcSignalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 42703149: (a) => new IFC4X3.IfcSineSpiral(a[0], a[1], a[2], a[3]),\n 4097777520: (a) => new IFC4X3.IfcSite(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n 2533589738: (a) => new IFC4X3.IfcSlabType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1072016465: (a) => new IFC4X3.IfcSolarDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3856911033: (a) => new IFC4X3.IfcSpace(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 1305183839: (a) => new IFC4X3.IfcSpaceHeaterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3812236995: (a) => new IFC4X3.IfcSpaceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 3112655638: (a) => new IFC4X3.IfcStackTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1039846685: (a) => new IFC4X3.IfcStairFlightType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 338393293: (a) => new IFC4X3.IfcStairType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 682877961: (a) => new IFC4X3.IfcStructuralAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1179482911: (a) => new IFC4X3.IfcStructuralConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1004757350: (a) => new IFC4X3.IfcStructuralCurveAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 4243806635: (a) => new IFC4X3.IfcStructuralCurveConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 214636428: (a) => new IFC4X3.IfcStructuralCurveMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2445595289: (a) => new IFC4X3.IfcStructuralCurveMemberVarying(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2757150158: (a) => new IFC4X3.IfcStructuralCurveReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1807405624: (a) => new IFC4X3.IfcStructuralLinearAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 1252848954: (a) => new IFC4X3.IfcStructuralLoadGroup(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2082059205: (a) => new IFC4X3.IfcStructuralPointAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 734778138: (a) => new IFC4X3.IfcStructuralPointConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1235345126: (a) => new IFC4X3.IfcStructuralPointReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2986769608: (a) => new IFC4X3.IfcStructuralResultGroup(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3657597509: (a) => new IFC4X3.IfcStructuralSurfaceAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 1975003073: (a) => new IFC4X3.IfcStructuralSurfaceConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 148013059: (a) => new IFC4X3.IfcSubContractResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 3101698114: (a) => new IFC4X3.IfcSurfaceFeature(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2315554128: (a) => new IFC4X3.IfcSwitchingDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2254336722: (a) => new IFC4X3.IfcSystem(a[0], a[1], a[2], a[3], a[4]),\n 413509423: (a) => new IFC4X3.IfcSystemFurnitureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 5716631: (a) => new IFC4X3.IfcTankType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3824725483: (a) => new IFC4X3.IfcTendon(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]),\n 2347447852: (a) => new IFC4X3.IfcTendonAnchor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3081323446: (a) => new IFC4X3.IfcTendonAnchorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3663046924: (a) => new IFC4X3.IfcTendonConduit(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2281632017: (a) => new IFC4X3.IfcTendonConduitType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2415094496: (a) => new IFC4X3.IfcTendonType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n 618700268: (a) => new IFC4X3.IfcTrackElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1692211062: (a) => new IFC4X3.IfcTransformerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2097647324: (a) => new IFC4X3.IfcTransportElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1953115116: (a) => new IFC4X3.IfcTransportationDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3593883385: (a) => new IFC4X3.IfcTrimmedCurve(a[0], a[1], a[2], a[3], a[4]),\n 1600972822: (a) => new IFC4X3.IfcTubeBundleType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1911125066: (a) => new IFC4X3.IfcUnitaryEquipmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 728799441: (a) => new IFC4X3.IfcValveType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 840318589: (a) => new IFC4X3.IfcVehicle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1530820697: (a) => new IFC4X3.IfcVibrationDamper(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3956297820: (a) => new IFC4X3.IfcVibrationDamperType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2391383451: (a) => new IFC4X3.IfcVibrationIsolator(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3313531582: (a) => new IFC4X3.IfcVibrationIsolatorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2769231204: (a) => new IFC4X3.IfcVirtualElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 926996030: (a) => new IFC4X3.IfcVoidingFeature(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1898987631: (a) => new IFC4X3.IfcWallType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1133259667: (a) => new IFC4X3.IfcWasteTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 4009809668: (a) => new IFC4X3.IfcWindowType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n 4088093105: (a) => new IFC4X3.IfcWorkCalendar(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1028945134: (a) => new IFC4X3.IfcWorkControl(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n 4218914973: (a) => new IFC4X3.IfcWorkPlan(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n 3342526732: (a) => new IFC4X3.IfcWorkSchedule(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n 1033361043: (a) => new IFC4X3.IfcZone(a[0], a[1], a[2], a[3], a[4], a[5]),\n 3821786052: (a) => new IFC4X3.IfcActionRequest(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1411407467: (a) => new IFC4X3.IfcAirTerminalBoxType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3352864051: (a) => new IFC4X3.IfcAirTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1871374353: (a) => new IFC4X3.IfcAirToAirHeatRecoveryType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 4266260250: (a) => new IFC4X3.IfcAlignmentCant(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1545765605: (a) => new IFC4X3.IfcAlignmentHorizontal(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 317615605: (a) => new IFC4X3.IfcAlignmentSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1662888072: (a) => new IFC4X3.IfcAlignmentVertical(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 3460190687: (a) => new IFC4X3.IfcAsset(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n 1532957894: (a) => new IFC4X3.IfcAudioVisualApplianceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1967976161: (a) => new IFC4X3.IfcBSplineCurve(a[0], a[1], a[2], a[3], a[4]),\n 2461110595: (a) => new IFC4X3.IfcBSplineCurveWithKnots(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 819618141: (a) => new IFC4X3.IfcBeamType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3649138523: (a) => new IFC4X3.IfcBearingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 231477066: (a) => new IFC4X3.IfcBoilerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1136057603: (a) => new IFC4X3.IfcBoundaryCurve(a[0], a[1]),\n 644574406: (a) => new IFC4X3.IfcBridge(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 963979645: (a) => new IFC4X3.IfcBridgePart(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 4031249490: (a) => new IFC4X3.IfcBuilding(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 2979338954: (a) => new IFC4X3.IfcBuildingElementPart(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 39481116: (a) => new IFC4X3.IfcBuildingElementPartType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1909888760: (a) => new IFC4X3.IfcBuildingElementProxyType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1177604601: (a) => new IFC4X3.IfcBuildingSystem(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1876633798: (a) => new IFC4X3.IfcBuiltElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3862327254: (a) => new IFC4X3.IfcBuiltSystem(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 2188180465: (a) => new IFC4X3.IfcBurnerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 395041908: (a) => new IFC4X3.IfcCableCarrierFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3293546465: (a) => new IFC4X3.IfcCableCarrierSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2674252688: (a) => new IFC4X3.IfcCableFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1285652485: (a) => new IFC4X3.IfcCableSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3203706013: (a) => new IFC4X3.IfcCaissonFoundationType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2951183804: (a) => new IFC4X3.IfcChillerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3296154744: (a) => new IFC4X3.IfcChimney(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2611217952: (a) => new IFC4X3.IfcCircle(a[0], a[1]),\n 1677625105: (a) => new IFC4X3.IfcCivilElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2301859152: (a) => new IFC4X3.IfcCoilType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 843113511: (a) => new IFC4X3.IfcColumn(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 400855858: (a) => new IFC4X3.IfcCommunicationsApplianceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3850581409: (a) => new IFC4X3.IfcCompressorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2816379211: (a) => new IFC4X3.IfcCondenserType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3898045240: (a) => new IFC4X3.IfcConstructionEquipmentResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 1060000209: (a) => new IFC4X3.IfcConstructionMaterialResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 488727124: (a) => new IFC4X3.IfcConstructionProductResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 2940368186: (a) => new IFC4X3.IfcConveyorSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 335055490: (a) => new IFC4X3.IfcCooledBeamType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2954562838: (a) => new IFC4X3.IfcCoolingTowerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1502416096: (a) => new IFC4X3.IfcCourse(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1973544240: (a) => new IFC4X3.IfcCovering(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3495092785: (a) => new IFC4X3.IfcCurtainWall(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3961806047: (a) => new IFC4X3.IfcDamperType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3426335179: (a) => new IFC4X3.IfcDeepFoundation(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1335981549: (a) => new IFC4X3.IfcDiscreteAccessory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2635815018: (a) => new IFC4X3.IfcDiscreteAccessoryType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 479945903: (a) => new IFC4X3.IfcDistributionBoardType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1599208980: (a) => new IFC4X3.IfcDistributionChamberElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2063403501: (a) => new IFC4X3.IfcDistributionControlElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1945004755: (a) => new IFC4X3.IfcDistributionElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3040386961: (a) => new IFC4X3.IfcDistributionFlowElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3041715199: (a) => new IFC4X3.IfcDistributionPort(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3205830791: (a) => new IFC4X3.IfcDistributionSystem(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 395920057: (a) => new IFC4X3.IfcDoor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n 869906466: (a) => new IFC4X3.IfcDuctFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3760055223: (a) => new IFC4X3.IfcDuctSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2030761528: (a) => new IFC4X3.IfcDuctSilencerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3071239417: (a) => new IFC4X3.IfcEarthworksCut(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1077100507: (a) => new IFC4X3.IfcEarthworksElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3376911765: (a) => new IFC4X3.IfcEarthworksFill(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 663422040: (a) => new IFC4X3.IfcElectricApplianceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2417008758: (a) => new IFC4X3.IfcElectricDistributionBoardType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3277789161: (a) => new IFC4X3.IfcElectricFlowStorageDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2142170206: (a) => new IFC4X3.IfcElectricFlowTreatmentDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1534661035: (a) => new IFC4X3.IfcElectricGeneratorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1217240411: (a) => new IFC4X3.IfcElectricMotorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 712377611: (a) => new IFC4X3.IfcElectricTimeControlType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1658829314: (a) => new IFC4X3.IfcEnergyConversionDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2814081492: (a) => new IFC4X3.IfcEngine(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3747195512: (a) => new IFC4X3.IfcEvaporativeCooler(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 484807127: (a) => new IFC4X3.IfcEvaporator(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1209101575: (a) => new IFC4X3.IfcExternalSpatialElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 346874300: (a) => new IFC4X3.IfcFanType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1810631287: (a) => new IFC4X3.IfcFilterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 4222183408: (a) => new IFC4X3.IfcFireSuppressionTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2058353004: (a) => new IFC4X3.IfcFlowController(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 4278956645: (a) => new IFC4X3.IfcFlowFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 4037862832: (a) => new IFC4X3.IfcFlowInstrumentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 2188021234: (a) => new IFC4X3.IfcFlowMeter(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3132237377: (a) => new IFC4X3.IfcFlowMovingDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 987401354: (a) => new IFC4X3.IfcFlowSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 707683696: (a) => new IFC4X3.IfcFlowStorageDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2223149337: (a) => new IFC4X3.IfcFlowTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3508470533: (a) => new IFC4X3.IfcFlowTreatmentDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 900683007: (a) => new IFC4X3.IfcFooting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2713699986: (a) => new IFC4X3.IfcGeotechnicalAssembly(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 3009204131: (a) => new IFC4X3.IfcGrid(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 3319311131: (a) => new IFC4X3.IfcHeatExchanger(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2068733104: (a) => new IFC4X3.IfcHumidifier(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 4175244083: (a) => new IFC4X3.IfcInterceptor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2176052936: (a) => new IFC4X3.IfcJunctionBox(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2696325953: (a) => new IFC4X3.IfcKerb(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 76236018: (a) => new IFC4X3.IfcLamp(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 629592764: (a) => new IFC4X3.IfcLightFixture(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1154579445: (a) => new IFC4X3.IfcLinearPositioningElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1638804497: (a) => new IFC4X3.IfcLiquidTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1437502449: (a) => new IFC4X3.IfcMedicalDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1073191201: (a) => new IFC4X3.IfcMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2078563270: (a) => new IFC4X3.IfcMobileTelecommunicationsAppliance(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 234836483: (a) => new IFC4X3.IfcMooringDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2474470126: (a) => new IFC4X3.IfcMotorConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2182337498: (a) => new IFC4X3.IfcNavigationElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 144952367: (a) => new IFC4X3.IfcOuterBoundaryCurve(a[0], a[1]),\n 3694346114: (a) => new IFC4X3.IfcOutlet(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1383356374: (a) => new IFC4X3.IfcPavement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1687234759: (a) => new IFC4X3.IfcPile(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 310824031: (a) => new IFC4X3.IfcPipeFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3612865200: (a) => new IFC4X3.IfcPipeSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3171933400: (a) => new IFC4X3.IfcPlate(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 738039164: (a) => new IFC4X3.IfcProtectiveDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 655969474: (a) => new IFC4X3.IfcProtectiveDeviceTrippingUnitType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 90941305: (a) => new IFC4X3.IfcPump(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3290496277: (a) => new IFC4X3.IfcRail(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2262370178: (a) => new IFC4X3.IfcRailing(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3024970846: (a) => new IFC4X3.IfcRamp(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3283111854: (a) => new IFC4X3.IfcRampFlight(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1232101972: (a) => new IFC4X3.IfcRationalBSplineCurveWithKnots(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3798194928: (a) => new IFC4X3.IfcReinforcedSoil(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 979691226: (a) => new IFC4X3.IfcReinforcingBar(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),\n 2572171363: (a) => new IFC4X3.IfcReinforcingBarType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]),\n 2016517767: (a) => new IFC4X3.IfcRoof(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3053780830: (a) => new IFC4X3.IfcSanitaryTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1783015770: (a) => new IFC4X3.IfcSensorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1329646415: (a) => new IFC4X3.IfcShadingDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 991950508: (a) => new IFC4X3.IfcSignal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1529196076: (a) => new IFC4X3.IfcSlab(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3420628829: (a) => new IFC4X3.IfcSolarDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1999602285: (a) => new IFC4X3.IfcSpaceHeater(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1404847402: (a) => new IFC4X3.IfcStackTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 331165859: (a) => new IFC4X3.IfcStair(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 4252922144: (a) => new IFC4X3.IfcStairFlight(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n 2515109513: (a) => new IFC4X3.IfcStructuralAnalysisModel(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 385403989: (a) => new IFC4X3.IfcStructuralLoadCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),\n 1621171031: (a) => new IFC4X3.IfcStructuralPlanarAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),\n 1162798199: (a) => new IFC4X3.IfcSwitchingDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 812556717: (a) => new IFC4X3.IfcTank(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3425753595: (a) => new IFC4X3.IfcTrackElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3825984169: (a) => new IFC4X3.IfcTransformer(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1620046519: (a) => new IFC4X3.IfcTransportElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3026737570: (a) => new IFC4X3.IfcTubeBundle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3179687236: (a) => new IFC4X3.IfcUnitaryControlElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 4292641817: (a) => new IFC4X3.IfcUnitaryEquipment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 4207607924: (a) => new IFC4X3.IfcValve(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2391406946: (a) => new IFC4X3.IfcWall(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3512223829: (a) => new IFC4X3.IfcWallStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 4237592921: (a) => new IFC4X3.IfcWasteTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3304561284: (a) => new IFC4X3.IfcWindow(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),\n 2874132201: (a) => new IFC4X3.IfcActuatorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 1634111441: (a) => new IFC4X3.IfcAirTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 177149247: (a) => new IFC4X3.IfcAirTerminalBox(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2056796094: (a) => new IFC4X3.IfcAirToAirHeatRecovery(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3001207471: (a) => new IFC4X3.IfcAlarmType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 325726236: (a) => new IFC4X3.IfcAlignment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 277319702: (a) => new IFC4X3.IfcAudioVisualAppliance(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 753842376: (a) => new IFC4X3.IfcBeam(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 4196446775: (a) => new IFC4X3.IfcBearing(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 32344328: (a) => new IFC4X3.IfcBoiler(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3314249567: (a) => new IFC4X3.IfcBorehole(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1095909175: (a) => new IFC4X3.IfcBuildingElementProxy(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2938176219: (a) => new IFC4X3.IfcBurner(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 635142910: (a) => new IFC4X3.IfcCableCarrierFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3758799889: (a) => new IFC4X3.IfcCableCarrierSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1051757585: (a) => new IFC4X3.IfcCableFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 4217484030: (a) => new IFC4X3.IfcCableSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3999819293: (a) => new IFC4X3.IfcCaissonFoundation(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3902619387: (a) => new IFC4X3.IfcChiller(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 639361253: (a) => new IFC4X3.IfcCoil(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3221913625: (a) => new IFC4X3.IfcCommunicationsAppliance(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3571504051: (a) => new IFC4X3.IfcCompressor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2272882330: (a) => new IFC4X3.IfcCondenser(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 578613899: (a) => new IFC4X3.IfcControllerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),\n 3460952963: (a) => new IFC4X3.IfcConveyorSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 4136498852: (a) => new IFC4X3.IfcCooledBeam(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3640358203: (a) => new IFC4X3.IfcCoolingTower(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 4074379575: (a) => new IFC4X3.IfcDamper(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3693000487: (a) => new IFC4X3.IfcDistributionBoard(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1052013943: (a) => new IFC4X3.IfcDistributionChamberElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 562808652: (a) => new IFC4X3.IfcDistributionCircuit(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),\n 1062813311: (a) => new IFC4X3.IfcDistributionControlElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 342316401: (a) => new IFC4X3.IfcDuctFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3518393246: (a) => new IFC4X3.IfcDuctSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1360408905: (a) => new IFC4X3.IfcDuctSilencer(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1904799276: (a) => new IFC4X3.IfcElectricAppliance(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 862014818: (a) => new IFC4X3.IfcElectricDistributionBoard(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3310460725: (a) => new IFC4X3.IfcElectricFlowStorageDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 24726584: (a) => new IFC4X3.IfcElectricFlowTreatmentDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 264262732: (a) => new IFC4X3.IfcElectricGenerator(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 402227799: (a) => new IFC4X3.IfcElectricMotor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1003880860: (a) => new IFC4X3.IfcElectricTimeControl(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3415622556: (a) => new IFC4X3.IfcFan(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 819412036: (a) => new IFC4X3.IfcFilter(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 1426591983: (a) => new IFC4X3.IfcFireSuppressionTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 182646315: (a) => new IFC4X3.IfcFlowInstrument(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 2680139844: (a) => new IFC4X3.IfcGeomodel(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 1971632696: (a) => new IFC4X3.IfcGeoslice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),\n 2295281155: (a) => new IFC4X3.IfcProtectiveDeviceTrippingUnit(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 4086658281: (a) => new IFC4X3.IfcSensor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 630975310: (a) => new IFC4X3.IfcUnitaryControlElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 4288193352: (a) => new IFC4X3.IfcActuator(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 3087945054: (a) => new IFC4X3.IfcAlarm(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),\n 25142252: (a) => new IFC4X3.IfcController(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8])\n};\nToRawLineData[3] = {\n 3630933823: (i) => [i.Role, i.UserDefinedRole, i.Description],\n 618182010: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose],\n 2879124712: (i) => [i.StartTag, i.EndTag],\n 3633395639: (i) => [i.StartTag, i.EndTag, i.StartDistAlong, i.HorizontalLength, i.StartHeight, i.StartGradient, i.EndGradient, i.RadiusOfCurvature, i.PredefinedType],\n 639542469: (i) => [i.ApplicationDeveloper, i.Version, i.ApplicationFullName, i.ApplicationIdentifier],\n 411424972: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.Category, i.Condition, i.ArithmeticOperator, i.Components],\n 130549933: (i) => [i.Identifier, i.Name, i.Description, i.TimeOfApproval, i.Status, i.Level, i.Qualifier, i.RequestingApproval, i.GivingApproval],\n 4037036970: (i) => [i.Name],\n 1560379544: (i) => [i.Name, !i.TranslationalStiffnessByLengthX ? null : Labelise(i.TranslationalStiffnessByLengthX), !i.TranslationalStiffnessByLengthY ? null : Labelise(i.TranslationalStiffnessByLengthY), !i.TranslationalStiffnessByLengthZ ? null : Labelise(i.TranslationalStiffnessByLengthZ), !i.RotationalStiffnessByLengthX ? null : Labelise(i.RotationalStiffnessByLengthX), !i.RotationalStiffnessByLengthY ? null : Labelise(i.RotationalStiffnessByLengthY), !i.RotationalStiffnessByLengthZ ? null : Labelise(i.RotationalStiffnessByLengthZ)],\n 3367102660: (i) => [i.Name, !i.TranslationalStiffnessByAreaX ? null : Labelise(i.TranslationalStiffnessByAreaX), !i.TranslationalStiffnessByAreaY ? null : Labelise(i.TranslationalStiffnessByAreaY), !i.TranslationalStiffnessByAreaZ ? null : Labelise(i.TranslationalStiffnessByAreaZ)],\n 1387855156: (i) => [i.Name, !i.TranslationalStiffnessX ? null : Labelise(i.TranslationalStiffnessX), !i.TranslationalStiffnessY ? null : Labelise(i.TranslationalStiffnessY), !i.TranslationalStiffnessZ ? null : Labelise(i.TranslationalStiffnessZ), !i.RotationalStiffnessX ? null : Labelise(i.RotationalStiffnessX), !i.RotationalStiffnessY ? null : Labelise(i.RotationalStiffnessY), !i.RotationalStiffnessZ ? null : Labelise(i.RotationalStiffnessZ)],\n 2069777674: (i) => [i.Name, !i.TranslationalStiffnessX ? null : Labelise(i.TranslationalStiffnessX), !i.TranslationalStiffnessY ? null : Labelise(i.TranslationalStiffnessY), !i.TranslationalStiffnessZ ? null : Labelise(i.TranslationalStiffnessZ), !i.RotationalStiffnessX ? null : Labelise(i.RotationalStiffnessX), !i.RotationalStiffnessY ? null : Labelise(i.RotationalStiffnessY), !i.RotationalStiffnessZ ? null : Labelise(i.RotationalStiffnessZ), !i.WarpingStiffness ? null : Labelise(i.WarpingStiffness)],\n 2859738748: (_) => [],\n 2614616156: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement],\n 2732653382: (i) => [i.SurfaceOnRelatingElement, i.SurfaceOnRelatedElement],\n 775493141: (i) => [i.VolumeOnRelatingElement, i.VolumeOnRelatedElement],\n 1959218052: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade],\n 1785450214: (i) => [i.SourceCRS, i.TargetCRS],\n 1466758467: (i) => [i.Name, i.Description, i.GeodeticDatum, i.VerticalDatum],\n 602808272: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.Category, i.Condition, i.ArithmeticOperator, i.Components],\n 1765591967: (i) => [i.Elements, i.UnitType, i.UserDefinedType, i.Name],\n 1045800335: (i) => [i.Unit, i.Exponent],\n 2949456006: (i) => [i.LengthExponent, i.MassExponent, i.TimeExponent, i.ElectricCurrentExponent, i.ThermodynamicTemperatureExponent, i.AmountOfSubstanceExponent, i.LuminousIntensityExponent],\n 4294318154: (_) => [],\n 3200245327: (i) => [i.Location, i.Identification, i.Name],\n 2242383968: (i) => [i.Location, i.Identification, i.Name],\n 1040185647: (i) => [i.Location, i.Identification, i.Name],\n 3548104201: (i) => [i.Location, i.Identification, i.Name],\n 852622518: (i) => [i.AxisTag, i.AxisCurve, { type: 3, value: BooleanConvert(i.SameSense.value) }],\n 3020489413: (i) => [i.TimeStamp, i.ListValues.map((p) => Labelise(p))],\n 2655187982: (i) => [i.Name, i.Version, i.Publisher, i.VersionDate, i.Location, i.Description],\n 3452421091: (i) => [i.Location, i.Identification, i.Name, i.Description, i.Language, i.ReferencedLibrary],\n 4162380809: (i) => [i.MainPlaneAngle, i.SecondaryPlaneAngle, i.LuminousIntensity],\n 1566485204: (i) => [i.LightDistributionCurve, i.DistributionData],\n 3057273783: (i) => [i.SourceCRS, i.TargetCRS, i.Eastings, i.Northings, i.OrthogonalHeight, i.XAxisAbscissa, i.XAxisOrdinate, i.Scale, i.ScaleY, i.ScaleZ],\n 1847130766: (i) => [i.MaterialClassifications, i.ClassifiedMaterial],\n 760658860: (_) => [],\n 248100487: (i) => [i.Material, i.LayerThickness, i.IsVentilated == null ? null : { type: 3, value: BooleanConvert(i.IsVentilated.value) }, i.Name, i.Description, i.Category, i.Priority],\n 3303938423: (i) => [i.MaterialLayers, i.LayerSetName, i.Description],\n 1847252529: (i) => [i.Material, i.LayerThickness, i.IsVentilated == null ? null : { type: 3, value: BooleanConvert(i.IsVentilated.value) }, i.Name, i.Description, i.Category, i.Priority, i.OffsetDirection, i.OffsetValues],\n 2199411900: (i) => [i.Materials],\n 2235152071: (i) => [i.Name, i.Description, i.Material, i.Profile, i.Priority, i.Category],\n 164193824: (i) => [i.Name, i.Description, i.MaterialProfiles, i.CompositeProfile],\n 552965576: (i) => [i.Name, i.Description, i.Material, i.Profile, i.Priority, i.Category, i.OffsetValues],\n 1507914824: (_) => [],\n 2597039031: (i) => [Labelise(i.ValueComponent), i.UnitComponent],\n 3368373690: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.Benchmark, i.ValueSource, i.DataValue, i.ReferencePath],\n 2706619895: (i) => [i.Currency],\n 1918398963: (i) => [i.Dimensions, i.UnitType],\n 3701648758: (i) => [i.PlacementRelTo],\n 2251480897: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.BenchmarkValues, i.LogicalAggregator, i.ObjectiveQualifier, i.UserDefinedQualifier],\n 4251960020: (i) => [i.Identification, i.Name, i.Description, i.Roles, i.Addresses],\n 1207048766: (i) => [i.OwningUser, i.OwningApplication, i.State, i.ChangeAction, i.LastModifiedDate, i.LastModifyingUser, i.LastModifyingApplication, i.CreationDate],\n 2077209135: (i) => [i.Identification, i.FamilyName, i.GivenName, i.MiddleNames, i.PrefixTitles, i.SuffixTitles, i.Roles, i.Addresses],\n 101040310: (i) => [i.ThePerson, i.TheOrganization, i.Roles],\n 2483315170: (i) => [i.Name, i.Description],\n 2226359599: (i) => [i.Name, i.Description, i.Unit],\n 3355820592: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.InternalLocation, i.AddressLines, i.PostalBox, i.Town, i.Region, i.PostalCode, i.Country],\n 677532197: (_) => [],\n 2022622350: (i) => [i.Name, i.Description, i.AssignedItems, i.Identifier],\n 1304840413: (i) => [i.Name, i.Description, i.AssignedItems, i.Identifier, { type: 3, value: BooleanConvert(i.LayerOn.value) }, { type: 3, value: BooleanConvert(i.LayerFrozen.value) }, { type: 3, value: BooleanConvert(i.LayerBlocked.value) }, i.LayerStyles],\n 3119450353: (i) => [i.Name],\n 2095639259: (i) => [i.Name, i.Description, i.Representations],\n 3958567839: (i) => [i.ProfileType, i.ProfileName],\n 3843373140: (i) => [i.Name, i.Description, i.GeodeticDatum, i.VerticalDatum, i.MapProjection, i.MapZone, i.MapUnit],\n 986844984: (_) => [],\n 3710013099: (i) => [i.Name, i.EnumerationValues.map((p) => Labelise(p)), i.Unit],\n 2044713172: (i) => [i.Name, i.Description, i.Unit, i.AreaValue, i.Formula],\n 2093928680: (i) => [i.Name, i.Description, i.Unit, i.CountValue, i.Formula],\n 931644368: (i) => [i.Name, i.Description, i.Unit, i.LengthValue, i.Formula],\n 2691318326: (i) => [i.Name, i.Description, i.Unit, i.NumberValue, i.Formula],\n 3252649465: (i) => [i.Name, i.Description, i.Unit, i.TimeValue, i.Formula],\n 2405470396: (i) => [i.Name, i.Description, i.Unit, i.VolumeValue, i.Formula],\n 825690147: (i) => [i.Name, i.Description, i.Unit, i.WeightValue, i.Formula],\n 3915482550: (i) => [i.RecurrenceType, i.DayComponent, i.WeekdayComponent, i.MonthComponent, i.Position, i.Interval, i.Occurrences, i.TimePeriods],\n 2433181523: (i) => [i.TypeIdentifier, i.AttributeIdentifier, i.InstanceName, i.ListPositions, i.InnerReference],\n 1076942058: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n 3377609919: (i) => [i.ContextIdentifier, i.ContextType],\n 3008791417: (_) => [],\n 1660063152: (i) => [i.MappingOrigin, i.MappedRepresentation],\n 2439245199: (i) => [i.Name, i.Description],\n 2341007311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 448429030: (i) => [i.Dimensions, i.UnitType, i.Prefix, i.Name],\n 1054537805: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin],\n 867548509: (i) => [i.ShapeRepresentations, i.Name, i.Description, { type: 3, value: BooleanConvert(i.ProductDefinitional.value) }, i.PartOfProductDefinitionShape],\n 3982875396: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n 4240577450: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n 2273995522: (i) => [i.Name],\n 2162789131: (i) => [i.Name],\n 3478079324: (i) => [i.Name, i.Values, i.Locations],\n 609421318: (i) => [i.Name],\n 2525727697: (i) => [i.Name],\n 3408363356: (i) => [i.Name, i.DeltaTConstant, i.DeltaTY, i.DeltaTZ],\n 2830218821: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n 3958052878: (i) => [i.Item, i.Styles, i.Name],\n 3049322572: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n 2934153892: (i) => [i.Name, i.SurfaceReinforcement1, i.SurfaceReinforcement2, i.ShearReinforcement],\n 1300840506: (i) => [i.Name, i.Side, i.Styles],\n 3303107099: (i) => [i.DiffuseTransmissionColour, i.DiffuseReflectionColour, i.TransmissionColour, i.ReflectanceColour],\n 1607154358: (i) => [i.RefractionIndex, i.DispersionFactor],\n 846575682: (i) => [i.SurfaceColour, i.Transparency],\n 1351298697: (i) => [i.Textures],\n 626085974: (i) => [{ type: 3, value: BooleanConvert(i.RepeatS.value) }, { type: 3, value: BooleanConvert(i.RepeatT.value) }, i.Mode, i.TextureTransform, i.Parameter],\n 985171141: (i) => [i.Name, i.Rows, i.Columns],\n 2043862942: (i) => [i.Identifier, i.Name, i.Description, i.Unit, i.ReferencePath],\n 531007025: (i) => [!i.RowCells ? null : i.RowCells.map((p) => Labelise(p)), i.IsHeading == null ? null : { type: 3, value: BooleanConvert(i.IsHeading.value) }],\n 1549132990: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.DurationType, i.ScheduleDuration, i.ScheduleStart, i.ScheduleFinish, i.EarlyStart, i.EarlyFinish, i.LateStart, i.LateFinish, i.FreeFloat, i.TotalFloat, i.IsCritical == null ? null : { type: 3, value: BooleanConvert(i.IsCritical.value) }, i.StatusTime, i.ActualDuration, i.ActualStart, i.ActualFinish, i.RemainingTime, i.Completion],\n 2771591690: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.DurationType, i.ScheduleDuration, i.ScheduleStart, i.ScheduleFinish, i.EarlyStart, i.EarlyFinish, i.LateStart, i.LateFinish, i.FreeFloat, i.TotalFloat, i.IsCritical == null ? null : { type: 3, value: BooleanConvert(i.IsCritical.value) }, i.StatusTime, i.ActualDuration, i.ActualStart, i.ActualFinish, i.RemainingTime, i.Completion, i.Recurrence],\n 912023232: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.TelephoneNumbers, i.FacsimileNumbers, i.PagerNumber, i.ElectronicMailAddresses, i.WWWHomePageURL, i.MessagingIDs],\n 1447204868: (i) => [i.Name, i.TextCharacterAppearance, i.TextStyle, i.TextFontStyle, i.ModelOrDraughting == null ? null : { type: 3, value: BooleanConvert(i.ModelOrDraughting.value) }],\n 2636378356: (i) => [i.Colour, i.BackgroundColour],\n 1640371178: (i) => [!i.TextIndent ? null : Labelise(i.TextIndent), i.TextAlign, i.TextDecoration, !i.LetterSpacing ? null : Labelise(i.LetterSpacing), !i.WordSpacing ? null : Labelise(i.WordSpacing), i.TextTransform, !i.LineHeight ? null : Labelise(i.LineHeight)],\n 280115917: (i) => [i.Maps],\n 1742049831: (i) => [i.Maps, i.Mode, i.Parameter],\n 222769930: (i) => [i.TexCoordIndex, i.TexCoordsOf],\n 1010789467: (i) => [i.TexCoordIndex, i.TexCoordsOf, i.InnerTexCoordIndices],\n 2552916305: (i) => [i.Maps, i.Vertices, i.MappedTo],\n 1210645708: (i) => [i.Coordinates],\n 3611470254: (i) => [i.TexCoordsList],\n 1199560280: (i) => [i.StartTime, i.EndTime],\n 3101149627: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit],\n 581633288: (i) => [i.ListValues.map((p) => Labelise(p))],\n 1377556343: (_) => [],\n 1735638870: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],\n 180925521: (i) => [i.Units],\n 2799835756: (_) => [],\n 1907098498: (i) => [i.VertexGeometry],\n 891718957: (i) => [i.IntersectingAxes, i.OffsetDistances],\n 1236880293: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.RecurrencePattern, i.StartDate, i.FinishDate],\n 3752311538: (i) => [i.StartTag, i.EndTag, i.StartDistAlong, i.HorizontalLength, i.StartCantLeft, i.EndCantLeft, i.StartCantRight, i.EndCantRight, i.PredefinedType],\n 536804194: (i) => [i.StartTag, i.EndTag, i.StartPoint, i.StartDirection, i.StartRadiusOfCurvature, i.EndRadiusOfCurvature, i.SegmentLength, i.GravityCenterLineHeight, i.PredefinedType],\n 3869604511: (i) => [i.Name, i.Description, i.RelatingApproval, i.RelatedApprovals],\n 3798115385: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve],\n 1310608509: (i) => [i.ProfileType, i.ProfileName, i.Curve],\n 2705031697: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve, i.InnerCurves],\n 616511568: (i) => [{ type: 3, value: BooleanConvert(i.RepeatS.value) }, { type: 3, value: BooleanConvert(i.RepeatT.value) }, i.Mode, i.TextureTransform, i.Parameter, i.RasterFormat, i.RasterCode],\n 3150382593: (i) => [i.ProfileType, i.ProfileName, i.Curve, i.Thickness],\n 747523909: (i) => [i.Source, i.Edition, i.EditionDate, i.Name, i.Description, i.Specification, i.ReferenceTokens],\n 647927063: (i) => [i.Location, i.Identification, i.Name, i.ReferencedSource, i.Description, i.Sort],\n 3285139300: (i) => [i.ColourList],\n 3264961684: (i) => [i.Name],\n 1485152156: (i) => [i.ProfileType, i.ProfileName, i.Profiles, i.Label],\n 370225590: (i) => [i.CfsFaces],\n 1981873012: (i) => [i.CurveOnRelatingElement, i.CurveOnRelatedElement],\n 45288368: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement, i.EccentricityInX, i.EccentricityInY, i.EccentricityInZ],\n 3050246964: (i) => [i.Dimensions, i.UnitType, i.Name],\n 2889183280: (i) => [i.Dimensions, i.UnitType, i.Name, i.ConversionFactor],\n 2713554722: (i) => [i.Dimensions, i.UnitType, i.Name, i.ConversionFactor, i.ConversionOffset],\n 539742890: (i) => [i.Name, i.Description, i.RelatingMonetaryUnit, i.RelatedMonetaryUnit, i.ExchangeRate, i.RateDateTime, i.RateSource],\n 3800577675: (i) => [i.Name, i.CurveFont, !i.CurveWidth ? null : Labelise(i.CurveWidth), i.CurveColour, i.ModelOrDraughting == null ? null : { type: 3, value: BooleanConvert(i.ModelOrDraughting.value) }],\n 1105321065: (i) => [i.Name, i.PatternList],\n 2367409068: (i) => [i.Name, i.CurveStyleFont, i.CurveFontScaling],\n 3510044353: (i) => [i.VisibleSegmentLength, i.InvisibleSegmentLength],\n 3632507154: (i) => [i.ProfileType, i.ProfileName, i.ParentProfile, i.Operator, i.Label],\n 1154170062: (i) => [i.Identification, i.Name, i.Description, i.Location, i.Purpose, i.IntendedUse, i.Scope, i.Revision, i.DocumentOwner, i.Editors, i.CreationTime, i.LastRevisionTime, i.ElectronicFormat, i.ValidFrom, i.ValidUntil, i.Confidentiality, i.Status],\n 770865208: (i) => [i.Name, i.Description, i.RelatingDocument, i.RelatedDocuments, i.RelationshipType],\n 3732053477: (i) => [i.Location, i.Identification, i.Name, i.Description, i.ReferencedDocument],\n 3900360178: (i) => [i.EdgeStart, i.EdgeEnd],\n 476780140: (i) => [i.EdgeStart, i.EdgeEnd, i.EdgeGeometry, { type: 3, value: BooleanConvert(i.SameSense.value) }],\n 211053100: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.ActualDate, i.EarlyDate, i.LateDate, i.ScheduleDate],\n 297599258: (i) => [i.Name, i.Description, i.Properties],\n 1437805879: (i) => [i.Name, i.Description, i.RelatingReference, i.RelatedResourceObjects],\n 2556980723: (i) => [i.Bounds],\n 1809719519: (i) => [i.Bound, { type: 3, value: BooleanConvert(i.Orientation.value) }],\n 803316827: (i) => [i.Bound, { type: 3, value: BooleanConvert(i.Orientation.value) }],\n 3008276851: (i) => [i.Bounds, i.FaceSurface, { type: 3, value: BooleanConvert(i.SameSense.value) }],\n 4219587988: (i) => [i.Name, i.TensionFailureX, i.TensionFailureY, i.TensionFailureZ, i.CompressionFailureX, i.CompressionFailureY, i.CompressionFailureZ],\n 738692330: (i) => [i.Name, i.FillStyles, i.ModelOrDraughting == null ? null : { type: 3, value: BooleanConvert(i.ModelOrDraughting.value) }],\n 3448662350: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth],\n 2453401579: (_) => [],\n 4142052618: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth, i.ParentContext, i.TargetScale, i.TargetView, i.UserDefinedTargetView],\n 3590301190: (i) => [i.Elements],\n 178086475: (i) => [i.PlacementRelTo, i.PlacementLocation, i.PlacementRefDirection],\n 812098782: (i) => [i.BaseSurface, { type: 3, value: BooleanConvert(i.AgreementFlag.value) }],\n 3905492369: (i) => [{ type: 3, value: BooleanConvert(i.RepeatS.value) }, { type: 3, value: BooleanConvert(i.RepeatT.value) }, i.Mode, i.TextureTransform, i.Parameter, i.URLReference],\n 3570813810: (i) => [i.MappedTo, i.Opacity, i.Colours, i.ColourIndex],\n 1437953363: (i) => [i.Maps, i.MappedTo, i.TexCoords],\n 2133299955: (i) => [i.Maps, i.MappedTo, i.TexCoords, i.TexCoordIndex],\n 3741457305: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.Values],\n 1585845231: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, Labelise(i.LagValue), i.DurationType],\n 1402838566: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity],\n 125510826: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity],\n 2604431987: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Orientation],\n 4266656042: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.ColourAppearance, i.ColourTemperature, i.LuminousFlux, i.LightEmissionSource, i.LightDistributionDataSource],\n 1520743889: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation],\n 3422422726: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation, i.Orientation, i.ConcentrationExponent, i.SpreadAngle, i.BeamWidthAngle],\n 388784114: (i) => [i.PlacementRelTo, i.RelativePlacement, i.CartesianPosition],\n 2624227202: (i) => [i.PlacementRelTo, i.RelativePlacement],\n 1008929658: (_) => [],\n 2347385850: (i) => [i.MappingSource, i.MappingTarget],\n 1838606355: (i) => [i.Name, i.Description, i.Category],\n 3708119e3: (i) => [i.Name, i.Description, i.Material, i.Fraction, i.Category],\n 2852063980: (i) => [i.Name, i.Description, i.MaterialConstituents],\n 2022407955: (i) => [i.Name, i.Description, i.Representations, i.RepresentedMaterial],\n 1303795690: (i) => [i.ForLayerSet, i.LayerSetDirection, i.DirectionSense, i.OffsetFromReferenceLine, i.ReferenceExtent],\n 3079605661: (i) => [i.ForProfileSet, i.CardinalPoint, i.ReferenceExtent],\n 3404854881: (i) => [i.ForProfileSet, i.CardinalPoint, i.ReferenceExtent, i.ForProfileEndSet, i.CardinalEndPoint],\n 3265635763: (i) => [i.Name, i.Description, i.Properties, i.Material],\n 853536259: (i) => [i.Name, i.Description, i.RelatingMaterial, i.RelatedMaterials, i.MaterialExpression],\n 2998442950: (i) => [i.ProfileType, i.ProfileName, i.ParentProfile, i.Operator, i.Label],\n 219451334: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 182550632: (i) => [i.ProfileType, i.ProfileName, { type: 3, value: BooleanConvert(i.HorizontalWidths.value) }, i.Widths, i.Slopes, i.Tags, i.OffsetPoint],\n 2665983363: (i) => [i.CfsFaces],\n 1411181986: (i) => [i.Name, i.Description, i.RelatingOrganization, i.RelatedOrganizations],\n 1029017970: (i) => [i.EdgeStart, i.EdgeEnd, i.EdgeElement, { type: 3, value: BooleanConvert(i.Orientation.value) }],\n 2529465313: (i) => [i.ProfileType, i.ProfileName, i.Position],\n 2519244187: (i) => [i.EdgeList],\n 3021840470: (i) => [i.Name, i.Description, i.HasQuantities, i.Discrimination, i.Quality, i.Usage],\n 597895409: (i) => [{ type: 3, value: BooleanConvert(i.RepeatS.value) }, { type: 3, value: BooleanConvert(i.RepeatT.value) }, i.Mode, i.TextureTransform, i.Parameter, i.Width, i.Height, i.ColourComponents, i.Pixel],\n 2004835150: (i) => [i.Location],\n 1663979128: (i) => [i.SizeInX, i.SizeInY],\n 2067069095: (_) => [],\n 2165702409: (i) => [Labelise(i.DistanceAlong), i.OffsetLateral, i.OffsetVertical, i.OffsetLongitudinal, i.BasisCurve],\n 4022376103: (i) => [i.BasisCurve, i.PointParameter],\n 1423911732: (i) => [i.BasisSurface, i.PointParameterU, i.PointParameterV],\n 2924175390: (i) => [i.Polygon],\n 2775532180: (i) => [i.BaseSurface, { type: 3, value: BooleanConvert(i.AgreementFlag.value) }, i.Position, i.PolygonalBoundary],\n 3727388367: (i) => [i.Name],\n 3778827333: (_) => [],\n 1775413392: (i) => [i.Name],\n 673634403: (i) => [i.Name, i.Description, i.Representations],\n 2802850158: (i) => [i.Name, i.Description, i.Properties, i.ProfileDefinition],\n 2598011224: (i) => [i.Name, i.Specification],\n 1680319473: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 148025276: (i) => [i.Name, i.Description, i.DependingProperty, i.DependantProperty, i.Expression],\n 3357820518: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 1482703590: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 2090586900: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 3615266464: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim],\n 3413951693: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.TimeStep, i.Values],\n 1580146022: (i) => [i.TotalCrossSectionArea, i.SteelGrade, i.BarSurface, i.EffectiveDepth, i.NominalBarDiameter, i.BarCount],\n 478536968: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 2943643501: (i) => [i.Name, i.Description, i.RelatedResourceObjects, i.RelatingApproval],\n 1608871552: (i) => [i.Name, i.Description, i.RelatingConstraint, i.RelatedResourceObjects],\n 1042787934: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.ScheduleWork, i.ScheduleUsage, i.ScheduleStart, i.ScheduleFinish, i.ScheduleContour, i.LevelingDelay, i.IsOverAllocated == null ? null : { type: 3, value: BooleanConvert(i.IsOverAllocated.value) }, i.StatusTime, i.ActualWork, i.ActualUsage, i.ActualStart, i.ActualFinish, i.RemainingWork, i.RemainingUsage, i.Completion],\n 2778083089: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.RoundingRadius],\n 2042790032: (i) => [i.SectionType, i.StartProfile, i.EndProfile],\n 4165799628: (i) => [i.LongitudinalStartPosition, i.LongitudinalEndPosition, i.TransversePosition, i.ReinforcementRole, i.SectionDefinition, i.CrossSectionReinforcementDefinitions],\n 1509187699: (i) => [i.SpineCurve, i.CrossSections, i.CrossSectionPositions],\n 823603102: (i) => [i.Transition],\n 4124623270: (i) => [i.SbsmBoundary],\n 3692461612: (i) => [i.Name, i.Specification],\n 2609359061: (i) => [i.Name, i.SlippageX, i.SlippageY, i.SlippageZ],\n 723233188: (_) => [],\n 1595516126: (i) => [i.Name, i.LinearForceX, i.LinearForceY, i.LinearForceZ, i.LinearMomentX, i.LinearMomentY, i.LinearMomentZ],\n 2668620305: (i) => [i.Name, i.PlanarForceX, i.PlanarForceY, i.PlanarForceZ],\n 2473145415: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ],\n 1973038258: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ, i.Distortion],\n 1597423693: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ],\n 1190533807: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ, i.WarpingMoment],\n 2233826070: (i) => [i.EdgeStart, i.EdgeEnd, i.ParentEdge],\n 2513912981: (_) => [],\n 1878645084: (i) => [i.SurfaceColour, i.Transparency, i.DiffuseColour, i.TransmissionColour, i.DiffuseTransmissionColour, i.ReflectionColour, i.SpecularColour, !i.SpecularHighlight ? null : Labelise(i.SpecularHighlight), i.ReflectanceMethod],\n 2247615214: (i) => [i.SweptArea, i.Position],\n 1260650574: (i) => [i.Directrix, i.Radius, i.InnerRadius, i.StartParam, i.EndParam],\n 1096409881: (i) => [i.Directrix, i.Radius, i.InnerRadius, i.StartParam, i.EndParam, i.FilletRadius],\n 230924584: (i) => [i.SweptCurve, i.Position],\n 3071757647: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.FlangeEdgeRadius, i.WebEdgeRadius, i.WebSlope, i.FlangeSlope],\n 901063453: (_) => [],\n 4282788508: (i) => [i.Literal, i.Placement, i.Path],\n 3124975700: (i) => [i.Literal, i.Placement, i.Path, i.Extent, i.BoxAlignment],\n 1983826977: (i) => [i.Name, i.FontFamily, i.FontStyle, i.FontVariant, i.FontWeight, Labelise(i.FontSize)],\n 2715220739: (i) => [i.ProfileType, i.ProfileName, i.Position, i.BottomXDim, i.TopXDim, i.YDim, i.TopXOffset],\n 1628702193: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets],\n 3736923433: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType],\n 2347495698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag],\n 3698973494: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType],\n 427810014: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius, i.FlangeSlope],\n 1417489154: (i) => [i.Orientation, i.Magnitude],\n 2759199220: (i) => [i.LoopVertex],\n 2543172580: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius],\n 3406155212: (i) => [i.Bounds, i.FaceSurface, { type: 3, value: BooleanConvert(i.SameSense.value) }],\n 669184980: (i) => [i.OuterBoundary, i.InnerBoundaries],\n 3207858831: (i) => [i.ProfileType, i.ProfileName, i.Position, i.BottomFlangeWidth, i.OverallDepth, i.WebThickness, i.BottomFlangeThickness, i.BottomFlangeFilletRadius, i.TopFlangeWidth, i.TopFlangeThickness, i.TopFlangeFilletRadius, i.BottomFlangeEdgeRadius, i.BottomFlangeSlope, i.TopFlangeEdgeRadius, i.TopFlangeSlope],\n 4261334040: (i) => [i.Location, i.Axis],\n 3125803723: (i) => [i.Location, i.RefDirection],\n 2740243338: (i) => [i.Location, i.Axis, i.RefDirection],\n 3425423356: (i) => [i.Location, i.Axis, i.RefDirection],\n 2736907675: (i) => [i.Operator, i.FirstOperand, i.SecondOperand],\n 4182860854: (_) => [],\n 2581212453: (i) => [i.Corner, i.XDim, i.YDim, i.ZDim],\n 2713105998: (i) => [i.BaseSurface, { type: 3, value: BooleanConvert(i.AgreementFlag.value) }, i.Enclosure],\n 2898889636: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.WallThickness, i.Girth, i.InternalFilletRadius],\n 1123145078: (i) => [i.Coordinates],\n 574549367: (_) => [],\n 1675464909: (i) => [i.CoordList, i.TagList],\n 2059837836: (i) => [i.CoordList, i.TagList],\n 59481748: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale],\n 3749851601: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale],\n 3486308946: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Scale2],\n 3331915920: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3],\n 1416205885: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3, i.Scale2, i.Scale3],\n 1383045692: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius],\n 2205249479: (i) => [i.CfsFaces],\n 776857604: (i) => [i.Name, i.Red, i.Green, i.Blue],\n 2542286263: (i) => [i.Name, i.Specification, i.UsageName, i.HasProperties],\n 2485617015: (i) => [i.Transition, { type: 3, value: BooleanConvert(i.SameSense.value) }, i.ParentCurve],\n 2574617495: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity],\n 3419103109: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext],\n 1815067380: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n 2506170314: (i) => [i.Position],\n 2147822146: (i) => [i.TreeRootExpression],\n 2601014836: (_) => [],\n 2827736869: (i) => [i.BasisSurface, i.OuterBoundary, i.InnerBoundaries],\n 2629017746: (i) => [i.BasisSurface, i.Boundaries, { type: 3, value: BooleanConvert(i.ImplicitOuter.value) }],\n 4212018352: (i) => [i.Transition, i.Placement, Labelise(i.SegmentStart), Labelise(i.SegmentLength), i.ParentCurve],\n 32440307: (i) => [i.DirectionRatios],\n 593015953: (i) => [i.SweptArea, i.Position, i.Directrix, !i.StartParam ? null : Labelise(i.StartParam), !i.EndParam ? null : Labelise(i.EndParam)],\n 1472233963: (i) => [i.EdgeList],\n 1883228015: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.MethodOfMeasurement, i.Quantities],\n 339256511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 2777663545: (i) => [i.Position],\n 2835456948: (i) => [i.ProfileType, i.ProfileName, i.Position, i.SemiAxis1, i.SemiAxis2],\n 4024345920: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType, i.EventTriggerType, i.UserDefinedEventTriggerType],\n 477187591: (i) => [i.SweptArea, i.Position, i.ExtrudedDirection, i.Depth],\n 2804161546: (i) => [i.SweptArea, i.Position, i.ExtrudedDirection, i.Depth, i.EndSweptArea],\n 2047409740: (i) => [i.FbsmFaces],\n 374418227: (i) => [i.HatchLineAppearance, i.StartOfNextHatchLine, i.PointOfReferenceHatchLine, i.PatternStart, i.HatchLineAngle],\n 315944413: (i) => [i.TilingPattern, i.Tiles, i.TilingScale],\n 2652556860: (i) => [i.SweptArea, i.Position, i.Directrix, !i.StartParam ? null : Labelise(i.StartParam), !i.EndParam ? null : Labelise(i.EndParam), i.FixedReference],\n 4238390223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 1268542332: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.AssemblyPlace, i.PredefinedType],\n 4095422895: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 987898635: (i) => [i.Elements],\n 1484403080: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallWidth, i.OverallDepth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.FlangeEdgeRadius, i.FlangeSlope],\n 178912537: (i) => [i.CoordIndex],\n 2294589976: (i) => [i.CoordIndex, i.InnerCoordIndices],\n 3465909080: (i) => [i.Maps, i.MappedTo, i.TexCoords, i.TexCoordIndices],\n 572779678: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.Thickness, i.FilletRadius, i.EdgeRadius, i.LegSlope],\n 428585644: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n 1281925730: (i) => [i.Pnt, i.Dir],\n 1425443689: (i) => [i.Outer],\n 3888040117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n 590820931: (i) => [i.BasisCurve],\n 3388369263: (i) => [i.BasisCurve, i.Distance, { type: 3, value: BooleanConvert(i.SelfIntersect.value) }],\n 3505215534: (i) => [i.BasisCurve, i.Distance, { type: 3, value: BooleanConvert(i.SelfIntersect.value) }, i.RefDirection],\n 2485787929: (i) => [i.BasisCurve, i.OffsetValues, i.Tag],\n 1682466193: (i) => [i.BasisSurface, i.ReferenceCurve],\n 603570806: (i) => [i.SizeInX, i.SizeInY, i.Placement],\n 220341763: (i) => [i.Position],\n 3381221214: (i) => [i.Position, i.CoefficientsX, i.CoefficientsY, i.CoefficientsZ],\n 759155922: (i) => [i.Name],\n 2559016684: (i) => [i.Name],\n 3967405729: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 569719735: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType],\n 2945172077: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription],\n 4208778838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n 103090709: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext],\n 653396225: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext],\n 871118103: (i) => [i.Name, i.Specification, !i.UpperBoundValue ? null : Labelise(i.UpperBoundValue), !i.LowerBoundValue ? null : Labelise(i.LowerBoundValue), i.Unit, !i.SetPointValue ? null : Labelise(i.SetPointValue)],\n 4166981789: (i) => [i.Name, i.Specification, !i.EnumerationValues ? null : i.EnumerationValues.map((p) => Labelise(p)), i.EnumerationReference],\n 2752243245: (i) => [i.Name, i.Specification, !i.ListValues ? null : i.ListValues.map((p) => Labelise(p)), i.Unit],\n 941946838: (i) => [i.Name, i.Specification, i.UsageName, i.PropertyReference],\n 1451395588: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.HasProperties],\n 492091185: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.TemplateType, i.ApplicableEntity, i.HasPropertyTemplates],\n 3650150729: (i) => [i.Name, i.Specification, !i.NominalValue ? null : Labelise(i.NominalValue), i.Unit],\n 110355661: (i) => [i.Name, i.Specification, !i.DefiningValues ? null : i.DefiningValues.map((p) => Labelise(p)), !i.DefinedValues ? null : i.DefinedValues.map((p) => Labelise(p)), i.Expression, i.DefiningUnit, i.DefinedUnit, i.CurveInterpolation],\n 3521284610: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 2770003689: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.WallThickness, i.InnerFilletRadius, i.OuterFilletRadius],\n 2798486643: (i) => [i.Position, i.XLength, i.YLength, i.Height],\n 3454111270: (i) => [i.BasisSurface, i.U1, i.V1, i.U2, i.V2, { type: 3, value: BooleanConvert(i.Usense.value) }, { type: 3, value: BooleanConvert(i.Vsense.value) }],\n 3765753017: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.DefinitionType, i.ReinforcementSectionDefinitions],\n 3939117080: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType],\n 1683148259: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingActor, i.ActingRole],\n 2495723537: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl],\n 1307041759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingGroup],\n 1027710054: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingGroup, i.Factor],\n 4278684876: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProcess, i.QuantityInProcess],\n 2857406711: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProduct],\n 205026976: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingResource],\n 1865459582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects],\n 4095574036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingApproval],\n 919958153: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingClassification],\n 2728634034: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.Intent, i.RelatingConstraint],\n 982818633: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingDocument],\n 3840914261: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingLibrary],\n 2655215786: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingMaterial],\n 1033248425: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingProfileDef],\n 826625072: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 1204542856: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement],\n 3945020480: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RelatingPriorities, i.RelatedPriorities, i.RelatedConnectionType, i.RelatingConnectionType],\n 4201705270: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedElement],\n 3190031847: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedPort, i.RealizingElement],\n 2127690289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedStructuralActivity],\n 1638771189: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem],\n 504942748: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem, i.ConnectionConstraint],\n 3678494232: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RealizingElements, i.ConnectionType],\n 3242617779: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure],\n 886880790: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedCoverings],\n 2802773753: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedCoverings],\n 2565941209: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingContext, i.RelatedDefinitions],\n 2551354335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 693640335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],\n 1462361463: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingObject],\n 4186316022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingPropertyDefinition],\n 307848117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedPropertySets, i.RelatingTemplate],\n 781010003: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingType],\n 3940055652: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingOpeningElement, i.RelatedBuildingElement],\n 279856033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedControlElements, i.RelatingFlowElement],\n 427948657: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedElement, i.InterferenceGeometry, i.InterferenceSpace, i.InterferenceType, { type: 3, value: BooleanConvert(i.ImpliedOrder.value) }],\n 3268803585: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects],\n 1441486842: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPositioningElement, i.RelatedProducts],\n 750771296: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedFeatureElement],\n 1245217292: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure],\n 4122056220: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingProcess, i.RelatedProcess, i.TimeLag, i.SequenceType, i.UserDefinedSequenceType],\n 366585022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSystem, i.RelatedBuildings],\n 3451746338: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary],\n 3523091289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary, i.ParentBoundary],\n 1521410863: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary, i.ParentBoundary, i.CorrespondingBoundary],\n 1401173127: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedOpeningElement],\n 816062949: (i) => [i.Transition, { type: 3, value: BooleanConvert(i.SameSense.value) }, i.ParentCurve, i.ParamLength],\n 2914609552: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription],\n 1856042241: (i) => [i.SweptArea, i.Position, i.Axis, i.Angle],\n 3243963512: (i) => [i.SweptArea, i.Position, i.Axis, i.Angle, i.EndSweptArea],\n 4158566097: (i) => [i.Position, i.Height, i.BottomRadius],\n 3626867408: (i) => [i.Position, i.Height, i.Radius],\n 1862484736: (i) => [i.Directrix, i.CrossSections],\n 1290935644: (i) => [i.Directrix, i.CrossSections, i.CrossSectionPositions],\n 1356537516: (i) => [i.Directrix, i.CrossSectionPositions, i.CrossSections],\n 3663146110: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.TemplateType, i.PrimaryMeasureType, i.SecondaryMeasureType, i.Enumerators, i.PrimaryUnit, i.SecondaryUnit, i.Expression, i.AccessState],\n 1412071761: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName],\n 710998568: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 2706606064: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType],\n 3893378262: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 463610769: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.PredefinedType],\n 2481509218: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.LongName],\n 451544542: (i) => [i.Position, i.Radius],\n 4015995234: (i) => [i.Position, i.Radius],\n 2735484536: (i) => [i.Position],\n 3544373492: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal],\n 3136571912: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n 530289379: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n 3689010777: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal],\n 3979015343: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness],\n 2218152070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness],\n 603775116: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.PredefinedType],\n 4095615324: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n 699246055: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation],\n 2028607225: (i) => [i.SweptArea, i.Position, i.Directrix, !i.StartParam ? null : Labelise(i.StartParam), !i.EndParam ? null : Labelise(i.EndParam), i.ReferenceSurface],\n 2809605785: (i) => [i.SweptCurve, i.Position, i.ExtrudedDirection, i.Depth],\n 4124788165: (i) => [i.SweptCurve, i.Position, i.AxisPosition],\n 1580310250: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3473067441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Status, i.WorkMethod, { type: 3, value: BooleanConvert(i.IsMilestone.value) }, i.Priority, i.TaskTime, i.PredefinedType],\n 3206491090: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType, i.WorkMethod],\n 2387106220: (i) => [i.Coordinates, i.Closed == null ? null : { type: 3, value: BooleanConvert(i.Closed.value) }],\n 782932809: (i) => [i.Position, i.CubicTerm, i.QuadraticTerm, i.LinearTerm, i.ConstantTerm],\n 1935646853: (i) => [i.Position, i.MajorRadius, i.MinorRadius],\n 3665877780: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 2916149573: (i) => [i.Coordinates, i.Closed == null ? null : { type: 3, value: BooleanConvert(i.Closed.value) }, i.Normals, i.CoordIndex, i.PnIndex],\n 1229763772: (i) => [i.Coordinates, i.Closed == null ? null : { type: 3, value: BooleanConvert(i.Closed.value) }, i.Normals, i.CoordIndex, i.PnIndex, i.Flags],\n 3651464721: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 336235671: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.TransomThickness, i.MullionThickness, i.FirstTransomOffset, i.SecondTransomOffset, i.FirstMullionOffset, i.SecondMullionOffset, i.ShapeAspectStyle, i.LiningOffset, i.LiningToPanelOffsetX, i.LiningToPanelOffsetY],\n 512836454: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle],\n 2296667514: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor],\n 1635779807: (i) => [i.Outer],\n 2603310189: (i) => [i.Outer, i.Voids],\n 1674181508: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType],\n 2887950389: (i) => [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, { type: 3, value: BooleanConvert(i.UClosed.value) }, { type: 3, value: BooleanConvert(i.VClosed.value) }, { type: 3, value: BooleanConvert(i.SelfIntersect.value) }],\n 167062518: (i) => [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, { type: 3, value: BooleanConvert(i.UClosed.value) }, { type: 3, value: BooleanConvert(i.VClosed.value) }, { type: 3, value: BooleanConvert(i.SelfIntersect.value) }, i.UMultiplicities, i.VMultiplicities, i.UKnots, i.VKnots, i.KnotSpec],\n 1334484129: (i) => [i.Position, i.XLength, i.YLength, i.ZLength],\n 3649129432: (i) => [i.Operator, i.FirstOperand, i.SecondOperand],\n 1260505505: (_) => [],\n 3124254112: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.Elevation],\n 1626504194: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 2197970202: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2937912522: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius, i.WallThickness],\n 3893394355: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 3497074424: (i) => [i.Position, i.ClothoidConstant],\n 300633059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3875453745: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.UsageName, i.TemplateType, i.HasPropertyTemplates],\n 3732776249: (i) => [i.Segments, { type: 3, value: BooleanConvert(i.SelfIntersect.value) }],\n 15328376: (i) => [i.Segments, { type: 3, value: BooleanConvert(i.SelfIntersect.value) }],\n 2510884976: (i) => [i.Position],\n 2185764099: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n 4105962743: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n 1525564444: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n 2559216714: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity],\n 3293443760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification],\n 2000195564: (i) => [i.Position, i.CosineTerm, i.ConstantTerm],\n 3895139033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.CostValues, i.CostQuantities],\n 1419761937: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.SubmittedOn, i.UpdateDate],\n 4189326743: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1916426348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3295246426: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n 1457835157: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1213902940: (i) => [i.Position, i.Radius],\n 1306400036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 4234616927: (i) => [i.SweptArea, i.Position, i.Directrix, !i.StartParam ? null : Labelise(i.StartParam), !i.EndParam ? null : Labelise(i.EndParam), i.FixedReference],\n 3256556792: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 3849074793: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 2963535650: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.ThresholdDepth, i.ThresholdThickness, i.TransomThickness, i.TransomOffset, i.LiningOffset, i.ThresholdOffset, i.CasingThickness, i.CasingDepth, i.ShapeAspectStyle, i.LiningToPanelOffsetX, i.LiningToPanelOffsetY],\n 1714330368: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.PanelDepth, i.PanelOperation, i.PanelWidth, i.PanelPosition, i.ShapeAspectStyle],\n 2323601079: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.OperationType, i.ParameterTakesPrecedence == null ? null : { type: 3, value: BooleanConvert(i.ParameterTakesPrecedence.value) }, i.UserDefinedOperationType],\n 445594917: (i) => [i.Name],\n 4006246654: (i) => [i.Name],\n 1758889154: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 4123344466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.AssemblyPlace, i.PredefinedType],\n 2397081782: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1623761950: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 2590856083: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 1704287377: (i) => [i.Position, i.SemiAxis1, i.SemiAxis2],\n 2107101300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 132023988: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3174744832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3390157468: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 4148101412: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.PredefinedType, i.EventTriggerType, i.UserDefinedEventTriggerType, i.EventOccurenceTime],\n 2853485674: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName],\n 807026263: (i) => [i.Outer],\n 3737207727: (i) => [i.Outer, i.Voids],\n 24185140: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType],\n 1310830890: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType],\n 4228831410: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType, i.PredefinedType],\n 647756555: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2489546625: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2827207264: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 2143335405: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 1287392070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 3907093117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 3198132628: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 3815607619: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1482959167: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 1834744321: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 1339347760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 2297155007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 3009222698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 1893162501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 263784265: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 1509553395: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3493046030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 4230923436: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 1594536857: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2898700619: (i) => [i.Segments, { type: 3, value: BooleanConvert(i.SelfIntersect.value) }, i.BaseCurve, i.EndPoint],\n 2706460486: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n 1251058090: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1806887404: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2568555532: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3948183225: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2571569899: (i) => [i.Points, !i.Segments ? null : i.Segments.map((p) => Labelise(p)), { type: 3, value: BooleanConvert(i.SelfIntersect.value) }],\n 3946677679: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3113134337: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation],\n 2391368822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.Jurisdiction, i.ResponsiblePersons, i.LastUpdateDate, i.CurrentValue, i.OriginalValue],\n 4288270099: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 679976338: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, { type: 3, value: BooleanConvert(i.Mountable.value) }],\n 3827777499: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n 1051575348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1161773419: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2176059722: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n 1770583370: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 525669439: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType],\n 976884017: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType, i.PredefinedType],\n 377706215: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NominalDiameter, i.NominalLength, i.PredefinedType],\n 2108223431: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.NominalLength],\n 1114901282: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3181161470: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1950438474: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 710110818: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 977012517: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 506776471: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 4143007308: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor, i.PredefinedType],\n 3588315303: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2837617999: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 514975943: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2382730787: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LifeCyclePhase, i.PredefinedType],\n 3566463478: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle],\n 3327091369: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription],\n 1158309216: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 804291784: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 4231323485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 4017108033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2839578677: (i) => [i.Coordinates, i.Closed == null ? null : { type: 3, value: BooleanConvert(i.Closed.value) }, i.Faces, i.PnIndex],\n 3724593414: (i) => [i.Points],\n 3740093272: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n 1946335990: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n 2744685151: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.PredefinedType],\n 2904328755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription],\n 3651124850: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1842657554: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2250791053: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1763565496: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2893384427: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3992365140: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType],\n 1891881377: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType, i.PredefinedType],\n 2324767716: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1469900589: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 683857671: (i) => [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, { type: 3, value: BooleanConvert(i.UClosed.value) }, { type: 3, value: BooleanConvert(i.VClosed.value) }, { type: 3, value: BooleanConvert(i.SelfIntersect.value) }, i.UMultiplicities, i.VMultiplicities, i.UKnots, i.VKnots, i.KnotSpec, i.WeightsData],\n 4021432810: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType],\n 3027567501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade],\n 964333572: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 2320036040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.MeshLength, i.MeshWidth, i.LongitudinalBarNominalDiameter, i.TransverseBarNominalDiameter, i.LongitudinalBarCrossSectionArea, i.TransverseBarCrossSectionArea, i.LongitudinalBarSpacing, i.TransverseBarSpacing, i.PredefinedType],\n 2310774935: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.MeshLength, i.MeshWidth, i.LongitudinalBarNominalDiameter, i.TransverseBarNominalDiameter, i.LongitudinalBarCrossSectionArea, i.TransverseBarCrossSectionArea, i.LongitudinalBarSpacing, i.TransverseBarSpacing, i.BendingShapeCode, !i.BendingParameters ? null : i.BendingParameters.map((p) => Labelise(p))],\n 3818125796: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedSurfaceFeatures],\n 160246688: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects],\n 146592293: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType],\n 550521510: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType, i.PredefinedType],\n 2781568857: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1768891740: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2157484638: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation],\n 3649235739: (i) => [i.Position, i.QuadraticTerm, i.LinearTerm, i.ConstantTerm],\n 544395925: (i) => [i.Segments, { type: 3, value: BooleanConvert(i.SelfIntersect.value) }, i.BaseCurve, i.EndPoint],\n 1027922057: (i) => [i.Position, i.SepticTerm, i.SexticTerm, i.QuinticTerm, i.QuarticTerm, i.CubicTerm, i.QuadraticTerm, i.LinearTerm, i.ConstantTerm],\n 4074543187: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 33720170: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3599934289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1894708472: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 42703149: (i) => [i.Position, i.SineTerm, i.LinearTerm, i.ConstantTerm],\n 4097777520: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.RefLatitude, i.RefLongitude, i.RefElevation, i.LandTitleNumber, i.SiteAddress],\n 2533589738: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1072016465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3856911033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType, i.ElevationWithFlooring],\n 1305183839: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3812236995: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.LongName],\n 3112655638: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1039846685: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 338393293: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 682877961: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad == null ? null : { type: 3, value: BooleanConvert(i.DestabilizingLoad.value) }],\n 1179482911: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition],\n 1004757350: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad == null ? null : { type: 3, value: BooleanConvert(i.DestabilizingLoad.value) }, i.ProjectedOrTrue, i.PredefinedType],\n 4243806635: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition, i.AxisDirection],\n 214636428: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Axis],\n 2445595289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Axis],\n 2757150158: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.PredefinedType],\n 1807405624: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad == null ? null : { type: 3, value: BooleanConvert(i.DestabilizingLoad.value) }, i.ProjectedOrTrue, i.PredefinedType],\n 1252848954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.ActionType, i.ActionSource, i.Coefficient, i.Purpose],\n 2082059205: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad == null ? null : { type: 3, value: BooleanConvert(i.DestabilizingLoad.value) }],\n 734778138: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition, i.ConditionCoordinateSystem],\n 1235345126: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal],\n 2986769608: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheoryType, i.ResultForLoadGroup, { type: 3, value: BooleanConvert(i.IsLinear.value) }],\n 3657597509: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad == null ? null : { type: 3, value: BooleanConvert(i.DestabilizingLoad.value) }, i.ProjectedOrTrue, i.PredefinedType],\n 1975003073: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition],\n 148013059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n 3101698114: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2315554128: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2254336722: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],\n 413509423: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 5716631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3824725483: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.TensionForce, i.PreStress, i.FrictionCoefficient, i.AnchorageSlip, i.MinCurvatureRadius],\n 2347447852: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType],\n 3081323446: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3663046924: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType],\n 2281632017: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2415094496: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.SheathDiameter],\n 618700268: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1692211062: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2097647324: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1953115116: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 3593883385: (i) => [i.BasisCurve, i.Trim1, i.Trim2, { type: 3, value: BooleanConvert(i.SenseAgreement.value) }, i.MasterRepresentation],\n 1600972822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1911125066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 728799441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 840318589: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1530820697: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3956297820: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2391383451: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3313531582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2769231204: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 926996030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1898987631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1133259667: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 4009809668: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.PartitioningType, i.ParameterTakesPrecedence == null ? null : { type: 3, value: BooleanConvert(i.ParameterTakesPrecedence.value) }, i.UserDefinedPartitioningType],\n 4088093105: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.WorkingTimes, i.ExceptionTimes, i.PredefinedType],\n 1028945134: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime],\n 4218914973: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.PredefinedType],\n 3342526732: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.PredefinedType],\n 1033361043: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName],\n 3821786052: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription],\n 1411407467: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3352864051: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1871374353: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 4266260250: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.RailHeadDistance],\n 1545765605: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n 317615605: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.DesignParameters],\n 1662888072: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n 3460190687: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.OriginalValue, i.CurrentValue, i.TotalReplacementCost, i.Owner, i.User, i.ResponsiblePerson, i.IncorporationDate, i.DepreciatedValue],\n 1532957894: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1967976161: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, { type: 3, value: BooleanConvert(i.ClosedCurve.value) }, { type: 3, value: BooleanConvert(i.SelfIntersect.value) }],\n 2461110595: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, { type: 3, value: BooleanConvert(i.ClosedCurve.value) }, { type: 3, value: BooleanConvert(i.SelfIntersect.value) }, i.KnotMultiplicities, i.Knots, i.KnotSpec],\n 819618141: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3649138523: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 231477066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1136057603: (i) => [i.Segments, { type: 3, value: BooleanConvert(i.SelfIntersect.value) }],\n 644574406: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType],\n 963979645: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType, i.PredefinedType],\n 4031249490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.ElevationOfRefHeight, i.ElevationOfTerrain, i.BuildingAddress],\n 2979338954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 39481116: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1909888760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1177604601: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.LongName],\n 1876633798: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 3862327254: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.LongName],\n 2188180465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 395041908: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3293546465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2674252688: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1285652485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3203706013: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2951183804: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3296154744: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2611217952: (i) => [i.Position, i.Radius],\n 1677625105: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 2301859152: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 843113511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 400855858: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3850581409: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2816379211: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3898045240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n 1060000209: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n 488727124: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],\n 2940368186: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 335055490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2954562838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1502416096: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1973544240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3495092785: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3961806047: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3426335179: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 1335981549: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2635815018: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 479945903: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1599208980: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2063403501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],\n 1945004755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 3040386961: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 3041715199: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.FlowDirection, i.PredefinedType, i.SystemType],\n 3205830791: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.PredefinedType],\n 395920057: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.OperationType, i.UserDefinedOperationType],\n 869906466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3760055223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2030761528: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3071239417: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1077100507: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 3376911765: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 663422040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2417008758: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3277789161: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2142170206: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1534661035: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1217240411: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 712377611: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1658829314: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 2814081492: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3747195512: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 484807127: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1209101575: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.PredefinedType],\n 346874300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1810631287: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 4222183408: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2058353004: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 4278956645: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 4037862832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 2188021234: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3132237377: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 987401354: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 707683696: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 2223149337: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 3508470533: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 900683007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2713699986: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 3009204131: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.UAxes, i.VAxes, i.WAxes, i.PredefinedType],\n 3319311131: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2068733104: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 4175244083: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2176052936: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2696325953: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, { type: 3, value: BooleanConvert(i.Mountable.value) }],\n 76236018: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 629592764: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1154579445: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],\n 1638804497: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1437502449: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1073191201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2078563270: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 234836483: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2474470126: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2182337498: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 144952367: (i) => [i.Segments, { type: 3, value: BooleanConvert(i.SelfIntersect.value) }],\n 3694346114: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1383356374: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1687234759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType, i.ConstructionType],\n 310824031: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3612865200: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3171933400: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 738039164: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 655969474: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 90941305: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3290496277: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2262370178: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3024970846: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3283111854: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1232101972: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, { type: 3, value: BooleanConvert(i.ClosedCurve.value) }, { type: 3, value: BooleanConvert(i.SelfIntersect.value) }, i.KnotMultiplicities, i.Knots, i.KnotSpec, i.WeightsData],\n 3798194928: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 979691226: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.NominalDiameter, i.CrossSectionArea, i.BarLength, i.PredefinedType, i.BarSurface],\n 2572171363: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.BarLength, i.BarSurface, i.BendingShapeCode, !i.BendingParameters ? null : i.BendingParameters.map((p) => Labelise(p))],\n 2016517767: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3053780830: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1783015770: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1329646415: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 991950508: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1529196076: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3420628829: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1999602285: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1404847402: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 331165859: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 4252922144: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NumberOfRisers, i.NumberOfTreads, i.RiserHeight, i.TreadLength, i.PredefinedType],\n 2515109513: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.OrientationOf2DPlane, i.LoadedBy, i.HasResults, i.SharedPlacement],\n 385403989: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.ActionType, i.ActionSource, i.Coefficient, i.Purpose, i.SelfWeightCoefficients],\n 1621171031: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad == null ? null : { type: 3, value: BooleanConvert(i.DestabilizingLoad.value) }, i.ProjectedOrTrue, i.PredefinedType],\n 1162798199: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 812556717: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3425753595: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3825984169: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1620046519: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3026737570: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3179687236: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 4292641817: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 4207607924: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2391406946: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3512223829: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 4237592921: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3304561284: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.PartitioningType, i.UserDefinedPartitioningType],\n 2874132201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 1634111441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 177149247: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2056796094: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3001207471: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 325726236: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType],\n 277319702: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 753842376: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 4196446775: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 32344328: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3314249567: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 1095909175: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2938176219: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 635142910: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3758799889: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1051757585: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 4217484030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3999819293: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3902619387: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 639361253: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3221913625: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3571504051: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2272882330: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 578613899: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],\n 3460952963: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 4136498852: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3640358203: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 4074379575: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3693000487: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1052013943: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 562808652: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.PredefinedType],\n 1062813311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 342316401: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3518393246: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1360408905: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1904799276: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 862014818: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3310460725: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 24726584: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 264262732: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 402227799: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1003880860: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3415622556: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 819412036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 1426591983: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 182646315: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 2680139844: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 1971632696: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],\n 2295281155: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 4086658281: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 630975310: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 4288193352: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 3087945054: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],\n 25142252: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType]\n};\nTypeInitialisers[3] = {\n 3699917729: (v) => new IFC4X3.IfcAbsorbedDoseMeasure(v),\n 4182062534: (v) => new IFC4X3.IfcAccelerationMeasure(v),\n 360377573: (v) => new IFC4X3.IfcAmountOfSubstanceMeasure(v),\n 632304761: (v) => new IFC4X3.IfcAngularVelocityMeasure(v),\n 3683503648: (v) => new IFC4X3.IfcArcIndex(v.map((x) => x.value)),\n 1500781891: (v) => new IFC4X3.IfcAreaDensityMeasure(v),\n 2650437152: (v) => new IFC4X3.IfcAreaMeasure(v),\n 2314439260: (v) => new IFC4X3.IfcBinary(v),\n 2735952531: (v) => new IFC4X3.IfcBoolean(v),\n 1867003952: (v) => new IFC4X3.IfcBoxAlignment(v),\n 1683019596: (v) => new IFC4X3.IfcCardinalPointReference(v),\n 2991860651: (v) => new IFC4X3.IfcComplexNumber(v.map((x) => x.value)),\n 3812528620: (v) => new IFC4X3.IfcCompoundPlaneAngleMeasure(v.map((x) => x.value)),\n 3238673880: (v) => new IFC4X3.IfcContextDependentMeasure(v),\n 1778710042: (v) => new IFC4X3.IfcCountMeasure(v),\n 94842927: (v) => new IFC4X3.IfcCurvatureMeasure(v),\n 937566702: (v) => new IFC4X3.IfcDate(v),\n 2195413836: (v) => new IFC4X3.IfcDateTime(v),\n 86635668: (v) => new IFC4X3.IfcDayInMonthNumber(v),\n 3701338814: (v) => new IFC4X3.IfcDayInWeekNumber(v),\n 1514641115: (v) => new IFC4X3.IfcDescriptiveMeasure(v),\n 4134073009: (v) => new IFC4X3.IfcDimensionCount(v),\n 524656162: (v) => new IFC4X3.IfcDoseEquivalentMeasure(v),\n 2541165894: (v) => new IFC4X3.IfcDuration(v),\n 69416015: (v) => new IFC4X3.IfcDynamicViscosityMeasure(v),\n 1827137117: (v) => new IFC4X3.IfcElectricCapacitanceMeasure(v),\n 3818826038: (v) => new IFC4X3.IfcElectricChargeMeasure(v),\n 2093906313: (v) => new IFC4X3.IfcElectricConductanceMeasure(v),\n 3790457270: (v) => new IFC4X3.IfcElectricCurrentMeasure(v),\n 2951915441: (v) => new IFC4X3.IfcElectricResistanceMeasure(v),\n 2506197118: (v) => new IFC4X3.IfcElectricVoltageMeasure(v),\n 2078135608: (v) => new IFC4X3.IfcEnergyMeasure(v),\n 1102727119: (v) => new IFC4X3.IfcFontStyle(v),\n 2715512545: (v) => new IFC4X3.IfcFontVariant(v),\n 2590844177: (v) => new IFC4X3.IfcFontWeight(v),\n 1361398929: (v) => new IFC4X3.IfcForceMeasure(v),\n 3044325142: (v) => new IFC4X3.IfcFrequencyMeasure(v),\n 3064340077: (v) => new IFC4X3.IfcGloballyUniqueId(v),\n 3113092358: (v) => new IFC4X3.IfcHeatFluxDensityMeasure(v),\n 1158859006: (v) => new IFC4X3.IfcHeatingValueMeasure(v),\n 983778844: (v) => new IFC4X3.IfcIdentifier(v),\n 3358199106: (v) => new IFC4X3.IfcIlluminanceMeasure(v),\n 2679005408: (v) => new IFC4X3.IfcInductanceMeasure(v),\n 1939436016: (v) => new IFC4X3.IfcInteger(v),\n 3809634241: (v) => new IFC4X3.IfcIntegerCountRateMeasure(v),\n 3686016028: (v) => new IFC4X3.IfcIonConcentrationMeasure(v),\n 3192672207: (v) => new IFC4X3.IfcIsothermalMoistureCapacityMeasure(v),\n 2054016361: (v) => new IFC4X3.IfcKinematicViscosityMeasure(v),\n 3258342251: (v) => new IFC4X3.IfcLabel(v),\n 1275358634: (v) => new IFC4X3.IfcLanguageId(v),\n 1243674935: (v) => new IFC4X3.IfcLengthMeasure(v),\n 1774176899: (v) => new IFC4X3.IfcLineIndex(v.map((x) => x.value)),\n 191860431: (v) => new IFC4X3.IfcLinearForceMeasure(v),\n 2128979029: (v) => new IFC4X3.IfcLinearMomentMeasure(v),\n 1307019551: (v) => new IFC4X3.IfcLinearStiffnessMeasure(v),\n 3086160713: (v) => new IFC4X3.IfcLinearVelocityMeasure(v),\n 503418787: (v) => new IFC4X3.IfcLogical(v),\n 2095003142: (v) => new IFC4X3.IfcLuminousFluxMeasure(v),\n 2755797622: (v) => new IFC4X3.IfcLuminousIntensityDistributionMeasure(v),\n 151039812: (v) => new IFC4X3.IfcLuminousIntensityMeasure(v),\n 286949696: (v) => new IFC4X3.IfcMagneticFluxDensityMeasure(v),\n 2486716878: (v) => new IFC4X3.IfcMagneticFluxMeasure(v),\n 1477762836: (v) => new IFC4X3.IfcMassDensityMeasure(v),\n 4017473158: (v) => new IFC4X3.IfcMassFlowRateMeasure(v),\n 3124614049: (v) => new IFC4X3.IfcMassMeasure(v),\n 3531705166: (v) => new IFC4X3.IfcMassPerLengthMeasure(v),\n 3341486342: (v) => new IFC4X3.IfcModulusOfElasticityMeasure(v),\n 2173214787: (v) => new IFC4X3.IfcModulusOfLinearSubgradeReactionMeasure(v),\n 1052454078: (v) => new IFC4X3.IfcModulusOfRotationalSubgradeReactionMeasure(v),\n 1753493141: (v) => new IFC4X3.IfcModulusOfSubgradeReactionMeasure(v),\n 3177669450: (v) => new IFC4X3.IfcMoistureDiffusivityMeasure(v),\n 1648970520: (v) => new IFC4X3.IfcMolecularWeightMeasure(v),\n 3114022597: (v) => new IFC4X3.IfcMomentOfInertiaMeasure(v),\n 2615040989: (v) => new IFC4X3.IfcMonetaryMeasure(v),\n 765770214: (v) => new IFC4X3.IfcMonthInYearNumber(v),\n 525895558: (v) => new IFC4X3.IfcNonNegativeLengthMeasure(v),\n 2095195183: (v) => new IFC4X3.IfcNormalisedRatioMeasure(v),\n 2395907400: (v) => new IFC4X3.IfcNumericMeasure(v),\n 929793134: (v) => new IFC4X3.IfcPHMeasure(v),\n 2260317790: (v) => new IFC4X3.IfcParameterValue(v),\n 2642773653: (v) => new IFC4X3.IfcPlanarForceMeasure(v),\n 4042175685: (v) => new IFC4X3.IfcPlaneAngleMeasure(v),\n 1790229001: (v) => new IFC4X3.IfcPositiveInteger(v),\n 2815919920: (v) => new IFC4X3.IfcPositiveLengthMeasure(v),\n 3054510233: (v) => new IFC4X3.IfcPositivePlaneAngleMeasure(v),\n 1245737093: (v) => new IFC4X3.IfcPositiveRatioMeasure(v),\n 1364037233: (v) => new IFC4X3.IfcPowerMeasure(v),\n 2169031380: (v) => new IFC4X3.IfcPresentableText(v),\n 3665567075: (v) => new IFC4X3.IfcPressureMeasure(v),\n 2798247006: (v) => new IFC4X3.IfcPropertySetDefinitionSet(v.map((x) => x.value)),\n 3972513137: (v) => new IFC4X3.IfcRadioActivityMeasure(v),\n 96294661: (v) => new IFC4X3.IfcRatioMeasure(v),\n 200335297: (v) => new IFC4X3.IfcReal(v),\n 2133746277: (v) => new IFC4X3.IfcRotationalFrequencyMeasure(v),\n 1755127002: (v) => new IFC4X3.IfcRotationalMassMeasure(v),\n 3211557302: (v) => new IFC4X3.IfcRotationalStiffnessMeasure(v),\n 3467162246: (v) => new IFC4X3.IfcSectionModulusMeasure(v),\n 2190458107: (v) => new IFC4X3.IfcSectionalAreaIntegralMeasure(v),\n 408310005: (v) => new IFC4X3.IfcShearModulusMeasure(v),\n 3471399674: (v) => new IFC4X3.IfcSolidAngleMeasure(v),\n 4157543285: (v) => new IFC4X3.IfcSoundPowerLevelMeasure(v),\n 846465480: (v) => new IFC4X3.IfcSoundPowerMeasure(v),\n 3457685358: (v) => new IFC4X3.IfcSoundPressureLevelMeasure(v),\n 993287707: (v) => new IFC4X3.IfcSoundPressureMeasure(v),\n 3477203348: (v) => new IFC4X3.IfcSpecificHeatCapacityMeasure(v),\n 2757832317: (v) => new IFC4X3.IfcSpecularExponent(v),\n 361837227: (v) => new IFC4X3.IfcSpecularRoughness(v),\n 58845555: (v) => new IFC4X3.IfcTemperatureGradientMeasure(v),\n 1209108979: (v) => new IFC4X3.IfcTemperatureRateOfChangeMeasure(v),\n 2801250643: (v) => new IFC4X3.IfcText(v),\n 1460886941: (v) => new IFC4X3.IfcTextAlignment(v),\n 3490877962: (v) => new IFC4X3.IfcTextDecoration(v),\n 603696268: (v) => new IFC4X3.IfcTextFontName(v),\n 296282323: (v) => new IFC4X3.IfcTextTransformation(v),\n 232962298: (v) => new IFC4X3.IfcThermalAdmittanceMeasure(v),\n 2645777649: (v) => new IFC4X3.IfcThermalConductivityMeasure(v),\n 2281867870: (v) => new IFC4X3.IfcThermalExpansionCoefficientMeasure(v),\n 857959152: (v) => new IFC4X3.IfcThermalResistanceMeasure(v),\n 2016195849: (v) => new IFC4X3.IfcThermalTransmittanceMeasure(v),\n 743184107: (v) => new IFC4X3.IfcThermodynamicTemperatureMeasure(v),\n 4075327185: (v) => new IFC4X3.IfcTime(v),\n 2726807636: (v) => new IFC4X3.IfcTimeMeasure(v),\n 2591213694: (v) => new IFC4X3.IfcTimeStamp(v),\n 1278329552: (v) => new IFC4X3.IfcTorqueMeasure(v),\n 950732822: (v) => new IFC4X3.IfcURIReference(v),\n 3345633955: (v) => new IFC4X3.IfcVaporPermeabilityMeasure(v),\n 3458127941: (v) => new IFC4X3.IfcVolumeMeasure(v),\n 2593997549: (v) => new IFC4X3.IfcVolumetricFlowRateMeasure(v),\n 51269191: (v) => new IFC4X3.IfcWarpingConstantMeasure(v),\n 1718600412: (v) => new IFC4X3.IfcWarpingMomentMeasure(v)\n};\nvar IFC4X3;\n(function(IFC4X32) {\n class IfcAbsorbedDoseMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCABSORBEDDOSEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcAbsorbedDoseMeasure = IfcAbsorbedDoseMeasure;\n class IfcAccelerationMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCACCELERATIONMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcAccelerationMeasure = IfcAccelerationMeasure;\n class IfcAmountOfSubstanceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCAMOUNTOFSUBSTANCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcAmountOfSubstanceMeasure = IfcAmountOfSubstanceMeasure;\n class IfcAngularVelocityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCANGULARVELOCITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcAngularVelocityMeasure = IfcAngularVelocityMeasure;\n class IfcArcIndex {\n constructor(value) {\n this.value = value;\n this.type = 5;\n }\n }\n IFC4X32.IfcArcIndex = IfcArcIndex;\n ;\n class IfcAreaDensityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCAREADENSITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcAreaDensityMeasure = IfcAreaDensityMeasure;\n class IfcAreaMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCAREAMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcAreaMeasure = IfcAreaMeasure;\n class IfcBinary {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCBINARY\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcBinary = IfcBinary;\n class IfcBoolean {\n constructor(v) {\n this.type = 3;\n this.name = \"IFCBOOLEAN\";\n this.value = v === null ? v : v == \"T\" ? true : false;\n }\n }\n IFC4X32.IfcBoolean = IfcBoolean;\n class IfcBoxAlignment {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCBOXALIGNMENT\";\n }\n }\n IFC4X32.IfcBoxAlignment = IfcBoxAlignment;\n class IfcCardinalPointReference {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCCARDINALPOINTREFERENCE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcCardinalPointReference = IfcCardinalPointReference;\n class IfcComplexNumber {\n constructor(value) {\n this.value = value;\n this.type = 4;\n }\n }\n IFC4X32.IfcComplexNumber = IfcComplexNumber;\n ;\n class IfcCompoundPlaneAngleMeasure {\n constructor(value) {\n this.value = value;\n this.type = 10;\n }\n }\n IFC4X32.IfcCompoundPlaneAngleMeasure = IfcCompoundPlaneAngleMeasure;\n ;\n class IfcContextDependentMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCCONTEXTDEPENDENTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcContextDependentMeasure = IfcContextDependentMeasure;\n class IfcCountMeasure {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCCOUNTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcCountMeasure = IfcCountMeasure;\n class IfcCurvatureMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCCURVATUREMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcCurvatureMeasure = IfcCurvatureMeasure;\n class IfcDate {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCDATE\";\n }\n }\n IFC4X32.IfcDate = IfcDate;\n class IfcDateTime {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCDATETIME\";\n }\n }\n IFC4X32.IfcDateTime = IfcDateTime;\n class IfcDayInMonthNumber {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCDAYINMONTHNUMBER\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcDayInMonthNumber = IfcDayInMonthNumber;\n class IfcDayInWeekNumber {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCDAYINWEEKNUMBER\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcDayInWeekNumber = IfcDayInWeekNumber;\n class IfcDescriptiveMeasure {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCDESCRIPTIVEMEASURE\";\n }\n }\n IFC4X32.IfcDescriptiveMeasure = IfcDescriptiveMeasure;\n class IfcDimensionCount {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCDIMENSIONCOUNT\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcDimensionCount = IfcDimensionCount;\n class IfcDoseEquivalentMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCDOSEEQUIVALENTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcDoseEquivalentMeasure = IfcDoseEquivalentMeasure;\n class IfcDuration {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCDURATION\";\n }\n }\n IFC4X32.IfcDuration = IfcDuration;\n class IfcDynamicViscosityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCDYNAMICVISCOSITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcDynamicViscosityMeasure = IfcDynamicViscosityMeasure;\n class IfcElectricCapacitanceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCELECTRICCAPACITANCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcElectricCapacitanceMeasure = IfcElectricCapacitanceMeasure;\n class IfcElectricChargeMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCELECTRICCHARGEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcElectricChargeMeasure = IfcElectricChargeMeasure;\n class IfcElectricConductanceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCELECTRICCONDUCTANCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcElectricConductanceMeasure = IfcElectricConductanceMeasure;\n class IfcElectricCurrentMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCELECTRICCURRENTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcElectricCurrentMeasure = IfcElectricCurrentMeasure;\n class IfcElectricResistanceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCELECTRICRESISTANCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcElectricResistanceMeasure = IfcElectricResistanceMeasure;\n class IfcElectricVoltageMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCELECTRICVOLTAGEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcElectricVoltageMeasure = IfcElectricVoltageMeasure;\n class IfcEnergyMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCENERGYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcEnergyMeasure = IfcEnergyMeasure;\n class IfcFontStyle {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCFONTSTYLE\";\n }\n }\n IFC4X32.IfcFontStyle = IfcFontStyle;\n class IfcFontVariant {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCFONTVARIANT\";\n }\n }\n IFC4X32.IfcFontVariant = IfcFontVariant;\n class IfcFontWeight {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCFONTWEIGHT\";\n }\n }\n IFC4X32.IfcFontWeight = IfcFontWeight;\n class IfcForceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCFORCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcForceMeasure = IfcForceMeasure;\n class IfcFrequencyMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCFREQUENCYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcFrequencyMeasure = IfcFrequencyMeasure;\n class IfcGloballyUniqueId {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCGLOBALLYUNIQUEID\";\n }\n }\n IFC4X32.IfcGloballyUniqueId = IfcGloballyUniqueId;\n class IfcHeatFluxDensityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCHEATFLUXDENSITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcHeatFluxDensityMeasure = IfcHeatFluxDensityMeasure;\n class IfcHeatingValueMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCHEATINGVALUEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcHeatingValueMeasure = IfcHeatingValueMeasure;\n class IfcIdentifier {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCIDENTIFIER\";\n }\n }\n IFC4X32.IfcIdentifier = IfcIdentifier;\n class IfcIlluminanceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCILLUMINANCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcIlluminanceMeasure = IfcIlluminanceMeasure;\n class IfcInductanceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCINDUCTANCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcInductanceMeasure = IfcInductanceMeasure;\n class IfcInteger {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCINTEGER\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcInteger = IfcInteger;\n class IfcIntegerCountRateMeasure {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCINTEGERCOUNTRATEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcIntegerCountRateMeasure = IfcIntegerCountRateMeasure;\n class IfcIonConcentrationMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCIONCONCENTRATIONMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcIonConcentrationMeasure = IfcIonConcentrationMeasure;\n class IfcIsothermalMoistureCapacityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCISOTHERMALMOISTURECAPACITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcIsothermalMoistureCapacityMeasure = IfcIsothermalMoistureCapacityMeasure;\n class IfcKinematicViscosityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCKINEMATICVISCOSITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcKinematicViscosityMeasure = IfcKinematicViscosityMeasure;\n class IfcLabel {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCLABEL\";\n }\n }\n IFC4X32.IfcLabel = IfcLabel;\n class IfcLanguageId {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCLANGUAGEID\";\n }\n }\n IFC4X32.IfcLanguageId = IfcLanguageId;\n class IfcLengthMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCLENGTHMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcLengthMeasure = IfcLengthMeasure;\n class IfcLineIndex {\n constructor(value) {\n this.value = value;\n this.type = 5;\n }\n }\n IFC4X32.IfcLineIndex = IfcLineIndex;\n ;\n class IfcLinearForceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCLINEARFORCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcLinearForceMeasure = IfcLinearForceMeasure;\n class IfcLinearMomentMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCLINEARMOMENTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcLinearMomentMeasure = IfcLinearMomentMeasure;\n class IfcLinearStiffnessMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCLINEARSTIFFNESSMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcLinearStiffnessMeasure = IfcLinearStiffnessMeasure;\n class IfcLinearVelocityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCLINEARVELOCITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcLinearVelocityMeasure = IfcLinearVelocityMeasure;\n class IfcLogical {\n constructor(v) {\n this.type = 3;\n this.name = \"IFCLOGICAL\";\n this.value = v === null ? v : v == \"T\" ? 1 : v == \"F\" ? 0 : 2;\n }\n }\n IFC4X32.IfcLogical = IfcLogical;\n class IfcLuminousFluxMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCLUMINOUSFLUXMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcLuminousFluxMeasure = IfcLuminousFluxMeasure;\n class IfcLuminousIntensityDistributionMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCLUMINOUSINTENSITYDISTRIBUTIONMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcLuminousIntensityDistributionMeasure = IfcLuminousIntensityDistributionMeasure;\n class IfcLuminousIntensityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCLUMINOUSINTENSITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcLuminousIntensityMeasure = IfcLuminousIntensityMeasure;\n class IfcMagneticFluxDensityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMAGNETICFLUXDENSITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcMagneticFluxDensityMeasure = IfcMagneticFluxDensityMeasure;\n class IfcMagneticFluxMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMAGNETICFLUXMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcMagneticFluxMeasure = IfcMagneticFluxMeasure;\n class IfcMassDensityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMASSDENSITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcMassDensityMeasure = IfcMassDensityMeasure;\n class IfcMassFlowRateMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMASSFLOWRATEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcMassFlowRateMeasure = IfcMassFlowRateMeasure;\n class IfcMassMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMASSMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcMassMeasure = IfcMassMeasure;\n class IfcMassPerLengthMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMASSPERLENGTHMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcMassPerLengthMeasure = IfcMassPerLengthMeasure;\n class IfcModulusOfElasticityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMODULUSOFELASTICITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcModulusOfElasticityMeasure = IfcModulusOfElasticityMeasure;\n class IfcModulusOfLinearSubgradeReactionMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMODULUSOFLINEARSUBGRADEREACTIONMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcModulusOfLinearSubgradeReactionMeasure = IfcModulusOfLinearSubgradeReactionMeasure;\n class IfcModulusOfRotationalSubgradeReactionMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMODULUSOFROTATIONALSUBGRADEREACTIONMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcModulusOfRotationalSubgradeReactionMeasure = IfcModulusOfRotationalSubgradeReactionMeasure;\n class IfcModulusOfSubgradeReactionMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMODULUSOFSUBGRADEREACTIONMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcModulusOfSubgradeReactionMeasure = IfcModulusOfSubgradeReactionMeasure;\n class IfcMoistureDiffusivityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMOISTUREDIFFUSIVITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcMoistureDiffusivityMeasure = IfcMoistureDiffusivityMeasure;\n class IfcMolecularWeightMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMOLECULARWEIGHTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcMolecularWeightMeasure = IfcMolecularWeightMeasure;\n class IfcMomentOfInertiaMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMOMENTOFINERTIAMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcMomentOfInertiaMeasure = IfcMomentOfInertiaMeasure;\n class IfcMonetaryMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCMONETARYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcMonetaryMeasure = IfcMonetaryMeasure;\n class IfcMonthInYearNumber {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCMONTHINYEARNUMBER\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcMonthInYearNumber = IfcMonthInYearNumber;\n class IfcNonNegativeLengthMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCNONNEGATIVELENGTHMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcNonNegativeLengthMeasure = IfcNonNegativeLengthMeasure;\n class IfcNormalisedRatioMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCNORMALISEDRATIOMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcNormalisedRatioMeasure = IfcNormalisedRatioMeasure;\n class IfcNumericMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCNUMERICMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcNumericMeasure = IfcNumericMeasure;\n class IfcPHMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCPHMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcPHMeasure = IfcPHMeasure;\n class IfcParameterValue {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCPARAMETERVALUE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcParameterValue = IfcParameterValue;\n class IfcPlanarForceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCPLANARFORCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcPlanarForceMeasure = IfcPlanarForceMeasure;\n class IfcPlaneAngleMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCPLANEANGLEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcPlaneAngleMeasure = IfcPlaneAngleMeasure;\n class IfcPositiveInteger {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCPOSITIVEINTEGER\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcPositiveInteger = IfcPositiveInteger;\n class IfcPositiveLengthMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCPOSITIVELENGTHMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcPositiveLengthMeasure = IfcPositiveLengthMeasure;\n class IfcPositivePlaneAngleMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCPOSITIVEPLANEANGLEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcPositivePlaneAngleMeasure = IfcPositivePlaneAngleMeasure;\n class IfcPositiveRatioMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCPOSITIVERATIOMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcPositiveRatioMeasure = IfcPositiveRatioMeasure;\n class IfcPowerMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCPOWERMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcPowerMeasure = IfcPowerMeasure;\n class IfcPresentableText {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCPRESENTABLETEXT\";\n }\n }\n IFC4X32.IfcPresentableText = IfcPresentableText;\n class IfcPressureMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCPRESSUREMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcPressureMeasure = IfcPressureMeasure;\n class IfcPropertySetDefinitionSet {\n constructor(value) {\n this.value = value;\n this.type = 5;\n }\n }\n IFC4X32.IfcPropertySetDefinitionSet = IfcPropertySetDefinitionSet;\n ;\n class IfcRadioActivityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCRADIOACTIVITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcRadioActivityMeasure = IfcRadioActivityMeasure;\n class IfcRatioMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCRATIOMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcRatioMeasure = IfcRatioMeasure;\n class IfcReal {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCREAL\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcReal = IfcReal;\n class IfcRotationalFrequencyMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCROTATIONALFREQUENCYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcRotationalFrequencyMeasure = IfcRotationalFrequencyMeasure;\n class IfcRotationalMassMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCROTATIONALMASSMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcRotationalMassMeasure = IfcRotationalMassMeasure;\n class IfcRotationalStiffnessMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCROTATIONALSTIFFNESSMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcRotationalStiffnessMeasure = IfcRotationalStiffnessMeasure;\n class IfcSectionModulusMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSECTIONMODULUSMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcSectionModulusMeasure = IfcSectionModulusMeasure;\n class IfcSectionalAreaIntegralMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSECTIONALAREAINTEGRALMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcSectionalAreaIntegralMeasure = IfcSectionalAreaIntegralMeasure;\n class IfcShearModulusMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSHEARMODULUSMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcShearModulusMeasure = IfcShearModulusMeasure;\n class IfcSolidAngleMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSOLIDANGLEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcSolidAngleMeasure = IfcSolidAngleMeasure;\n class IfcSoundPowerLevelMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSOUNDPOWERLEVELMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcSoundPowerLevelMeasure = IfcSoundPowerLevelMeasure;\n class IfcSoundPowerMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSOUNDPOWERMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcSoundPowerMeasure = IfcSoundPowerMeasure;\n class IfcSoundPressureLevelMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSOUNDPRESSURELEVELMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcSoundPressureLevelMeasure = IfcSoundPressureLevelMeasure;\n class IfcSoundPressureMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSOUNDPRESSUREMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcSoundPressureMeasure = IfcSoundPressureMeasure;\n class IfcSpecificHeatCapacityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSPECIFICHEATCAPACITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcSpecificHeatCapacityMeasure = IfcSpecificHeatCapacityMeasure;\n class IfcSpecularExponent {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSPECULAREXPONENT\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcSpecularExponent = IfcSpecularExponent;\n class IfcSpecularRoughness {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCSPECULARROUGHNESS\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcSpecularRoughness = IfcSpecularRoughness;\n class IfcTemperatureGradientMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTEMPERATUREGRADIENTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcTemperatureGradientMeasure = IfcTemperatureGradientMeasure;\n class IfcTemperatureRateOfChangeMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTEMPERATURERATEOFCHANGEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcTemperatureRateOfChangeMeasure = IfcTemperatureRateOfChangeMeasure;\n class IfcText {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCTEXT\";\n }\n }\n IFC4X32.IfcText = IfcText;\n class IfcTextAlignment {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCTEXTALIGNMENT\";\n }\n }\n IFC4X32.IfcTextAlignment = IfcTextAlignment;\n class IfcTextDecoration {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCTEXTDECORATION\";\n }\n }\n IFC4X32.IfcTextDecoration = IfcTextDecoration;\n class IfcTextFontName {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCTEXTFONTNAME\";\n }\n }\n IFC4X32.IfcTextFontName = IfcTextFontName;\n class IfcTextTransformation {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCTEXTTRANSFORMATION\";\n }\n }\n IFC4X32.IfcTextTransformation = IfcTextTransformation;\n class IfcThermalAdmittanceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTHERMALADMITTANCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcThermalAdmittanceMeasure = IfcThermalAdmittanceMeasure;\n class IfcThermalConductivityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTHERMALCONDUCTIVITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcThermalConductivityMeasure = IfcThermalConductivityMeasure;\n class IfcThermalExpansionCoefficientMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTHERMALEXPANSIONCOEFFICIENTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcThermalExpansionCoefficientMeasure = IfcThermalExpansionCoefficientMeasure;\n class IfcThermalResistanceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTHERMALRESISTANCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcThermalResistanceMeasure = IfcThermalResistanceMeasure;\n class IfcThermalTransmittanceMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTHERMALTRANSMITTANCEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcThermalTransmittanceMeasure = IfcThermalTransmittanceMeasure;\n class IfcThermodynamicTemperatureMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTHERMODYNAMICTEMPERATUREMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcThermodynamicTemperatureMeasure = IfcThermodynamicTemperatureMeasure;\n class IfcTime {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCTIME\";\n }\n }\n IFC4X32.IfcTime = IfcTime;\n class IfcTimeMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTIMEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcTimeMeasure = IfcTimeMeasure;\n class IfcTimeStamp {\n constructor(v) {\n this.type = 10;\n this.name = \"IFCTIMESTAMP\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcTimeStamp = IfcTimeStamp;\n class IfcTorqueMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCTORQUEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcTorqueMeasure = IfcTorqueMeasure;\n class IfcURIReference {\n constructor(value) {\n this.value = value;\n this.type = 1;\n this.name = \"IFCURIREFERENCE\";\n }\n }\n IFC4X32.IfcURIReference = IfcURIReference;\n class IfcVaporPermeabilityMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCVAPORPERMEABILITYMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcVaporPermeabilityMeasure = IfcVaporPermeabilityMeasure;\n class IfcVolumeMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCVOLUMEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcVolumeMeasure = IfcVolumeMeasure;\n class IfcVolumetricFlowRateMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCVOLUMETRICFLOWRATEMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcVolumetricFlowRateMeasure = IfcVolumetricFlowRateMeasure;\n class IfcWarpingConstantMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCWARPINGCONSTANTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcWarpingConstantMeasure = IfcWarpingConstantMeasure;\n class IfcWarpingMomentMeasure {\n constructor(v) {\n this.type = 4;\n this.name = \"IFCWARPINGMOMENTMEASURE\";\n this.value = v === null ? v : parseFloat(v);\n }\n }\n IFC4X32.IfcWarpingMomentMeasure = IfcWarpingMomentMeasure;\n class IfcActionRequestTypeEnum {\n }\n IfcActionRequestTypeEnum.EMAIL = { type: 3, value: \"EMAIL\" };\n IfcActionRequestTypeEnum.FAX = { type: 3, value: \"FAX\" };\n IfcActionRequestTypeEnum.PHONE = { type: 3, value: \"PHONE\" };\n IfcActionRequestTypeEnum.POST = { type: 3, value: \"POST\" };\n IfcActionRequestTypeEnum.VERBAL = { type: 3, value: \"VERBAL\" };\n IfcActionRequestTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcActionRequestTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcActionRequestTypeEnum = IfcActionRequestTypeEnum;\n class IfcActionSourceTypeEnum {\n }\n IfcActionSourceTypeEnum.BRAKES = { type: 3, value: \"BRAKES\" };\n IfcActionSourceTypeEnum.BUOYANCY = { type: 3, value: \"BUOYANCY\" };\n IfcActionSourceTypeEnum.COMPLETION_G1 = { type: 3, value: \"COMPLETION_G1\" };\n IfcActionSourceTypeEnum.CREEP = { type: 3, value: \"CREEP\" };\n IfcActionSourceTypeEnum.CURRENT = { type: 3, value: \"CURRENT\" };\n IfcActionSourceTypeEnum.DEAD_LOAD_G = { type: 3, value: \"DEAD_LOAD_G\" };\n IfcActionSourceTypeEnum.EARTHQUAKE_E = { type: 3, value: \"EARTHQUAKE_E\" };\n IfcActionSourceTypeEnum.ERECTION = { type: 3, value: \"ERECTION\" };\n IfcActionSourceTypeEnum.FIRE = { type: 3, value: \"FIRE\" };\n IfcActionSourceTypeEnum.ICE = { type: 3, value: \"ICE\" };\n IfcActionSourceTypeEnum.IMPACT = { type: 3, value: \"IMPACT\" };\n IfcActionSourceTypeEnum.IMPULSE = { type: 3, value: \"IMPULSE\" };\n IfcActionSourceTypeEnum.LACK_OF_FIT = { type: 3, value: \"LACK_OF_FIT\" };\n IfcActionSourceTypeEnum.LIVE_LOAD_Q = { type: 3, value: \"LIVE_LOAD_Q\" };\n IfcActionSourceTypeEnum.PRESTRESSING_P = { type: 3, value: \"PRESTRESSING_P\" };\n IfcActionSourceTypeEnum.PROPPING = { type: 3, value: \"PROPPING\" };\n IfcActionSourceTypeEnum.RAIN = { type: 3, value: \"RAIN\" };\n IfcActionSourceTypeEnum.SETTLEMENT_U = { type: 3, value: \"SETTLEMENT_U\" };\n IfcActionSourceTypeEnum.SHRINKAGE = { type: 3, value: \"SHRINKAGE\" };\n IfcActionSourceTypeEnum.SNOW_S = { type: 3, value: \"SNOW_S\" };\n IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION = { type: 3, value: \"SYSTEM_IMPERFECTION\" };\n IfcActionSourceTypeEnum.TEMPERATURE_T = { type: 3, value: \"TEMPERATURE_T\" };\n IfcActionSourceTypeEnum.TRANSPORT = { type: 3, value: \"TRANSPORT\" };\n IfcActionSourceTypeEnum.WAVE = { type: 3, value: \"WAVE\" };\n IfcActionSourceTypeEnum.WIND_W = { type: 3, value: \"WIND_W\" };\n IfcActionSourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcActionSourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcActionSourceTypeEnum = IfcActionSourceTypeEnum;\n class IfcActionTypeEnum {\n }\n IfcActionTypeEnum.EXTRAORDINARY_A = { type: 3, value: \"EXTRAORDINARY_A\" };\n IfcActionTypeEnum.PERMANENT_G = { type: 3, value: \"PERMANENT_G\" };\n IfcActionTypeEnum.VARIABLE_Q = { type: 3, value: \"VARIABLE_Q\" };\n IfcActionTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcActionTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcActionTypeEnum = IfcActionTypeEnum;\n class IfcActuatorTypeEnum {\n }\n IfcActuatorTypeEnum.ELECTRICACTUATOR = { type: 3, value: \"ELECTRICACTUATOR\" };\n IfcActuatorTypeEnum.HANDOPERATEDACTUATOR = { type: 3, value: \"HANDOPERATEDACTUATOR\" };\n IfcActuatorTypeEnum.HYDRAULICACTUATOR = { type: 3, value: \"HYDRAULICACTUATOR\" };\n IfcActuatorTypeEnum.PNEUMATICACTUATOR = { type: 3, value: \"PNEUMATICACTUATOR\" };\n IfcActuatorTypeEnum.THERMOSTATICACTUATOR = { type: 3, value: \"THERMOSTATICACTUATOR\" };\n IfcActuatorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcActuatorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcActuatorTypeEnum = IfcActuatorTypeEnum;\n class IfcAddressTypeEnum {\n }\n IfcAddressTypeEnum.DISTRIBUTIONPOINT = { type: 3, value: \"DISTRIBUTIONPOINT\" };\n IfcAddressTypeEnum.HOME = { type: 3, value: \"HOME\" };\n IfcAddressTypeEnum.OFFICE = { type: 3, value: \"OFFICE\" };\n IfcAddressTypeEnum.SITE = { type: 3, value: \"SITE\" };\n IfcAddressTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IFC4X32.IfcAddressTypeEnum = IfcAddressTypeEnum;\n class IfcAirTerminalBoxTypeEnum {\n }\n IfcAirTerminalBoxTypeEnum.CONSTANTFLOW = { type: 3, value: \"CONSTANTFLOW\" };\n IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT = { type: 3, value: \"VARIABLEFLOWPRESSUREDEPENDANT\" };\n IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT = { type: 3, value: \"VARIABLEFLOWPRESSUREINDEPENDANT\" };\n IfcAirTerminalBoxTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcAirTerminalBoxTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcAirTerminalBoxTypeEnum = IfcAirTerminalBoxTypeEnum;\n class IfcAirTerminalTypeEnum {\n }\n IfcAirTerminalTypeEnum.DIFFUSER = { type: 3, value: \"DIFFUSER\" };\n IfcAirTerminalTypeEnum.GRILLE = { type: 3, value: \"GRILLE\" };\n IfcAirTerminalTypeEnum.LOUVRE = { type: 3, value: \"LOUVRE\" };\n IfcAirTerminalTypeEnum.REGISTER = { type: 3, value: \"REGISTER\" };\n IfcAirTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcAirTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcAirTerminalTypeEnum = IfcAirTerminalTypeEnum;\n class IfcAirToAirHeatRecoveryTypeEnum {\n }\n IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER = { type: 3, value: \"FIXEDPLATECOUNTERFLOWEXCHANGER\" };\n IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER = { type: 3, value: \"FIXEDPLATECROSSFLOWEXCHANGER\" };\n IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER = { type: 3, value: \"FIXEDPLATEPARALLELFLOWEXCHANGER\" };\n IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE = { type: 3, value: \"HEATPIPE\" };\n IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL = { type: 3, value: \"ROTARYWHEEL\" };\n IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP = { type: 3, value: \"RUNAROUNDCOILLOOP\" };\n IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS = { type: 3, value: \"THERMOSIPHONCOILTYPEHEATEXCHANGERS\" };\n IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS = { type: 3, value: \"THERMOSIPHONSEALEDTUBEHEATEXCHANGERS\" };\n IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS = { type: 3, value: \"TWINTOWERENTHALPYRECOVERYLOOPS\" };\n IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcAirToAirHeatRecoveryTypeEnum = IfcAirToAirHeatRecoveryTypeEnum;\n class IfcAlarmTypeEnum {\n }\n IfcAlarmTypeEnum.BELL = { type: 3, value: \"BELL\" };\n IfcAlarmTypeEnum.BREAKGLASSBUTTON = { type: 3, value: \"BREAKGLASSBUTTON\" };\n IfcAlarmTypeEnum.LIGHT = { type: 3, value: \"LIGHT\" };\n IfcAlarmTypeEnum.MANUALPULLBOX = { type: 3, value: \"MANUALPULLBOX\" };\n IfcAlarmTypeEnum.RAILWAYCROCODILE = { type: 3, value: \"RAILWAYCROCODILE\" };\n IfcAlarmTypeEnum.RAILWAYDETONATOR = { type: 3, value: \"RAILWAYDETONATOR\" };\n IfcAlarmTypeEnum.SIREN = { type: 3, value: \"SIREN\" };\n IfcAlarmTypeEnum.WHISTLE = { type: 3, value: \"WHISTLE\" };\n IfcAlarmTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcAlarmTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcAlarmTypeEnum = IfcAlarmTypeEnum;\n class IfcAlignmentCantSegmentTypeEnum {\n }\n IfcAlignmentCantSegmentTypeEnum.BLOSSCURVE = { type: 3, value: \"BLOSSCURVE\" };\n IfcAlignmentCantSegmentTypeEnum.CONSTANTCANT = { type: 3, value: \"CONSTANTCANT\" };\n IfcAlignmentCantSegmentTypeEnum.COSINECURVE = { type: 3, value: \"COSINECURVE\" };\n IfcAlignmentCantSegmentTypeEnum.HELMERTCURVE = { type: 3, value: \"HELMERTCURVE\" };\n IfcAlignmentCantSegmentTypeEnum.LINEARTRANSITION = { type: 3, value: \"LINEARTRANSITION\" };\n IfcAlignmentCantSegmentTypeEnum.SINECURVE = { type: 3, value: \"SINECURVE\" };\n IfcAlignmentCantSegmentTypeEnum.VIENNESEBEND = { type: 3, value: \"VIENNESEBEND\" };\n IFC4X32.IfcAlignmentCantSegmentTypeEnum = IfcAlignmentCantSegmentTypeEnum;\n class IfcAlignmentHorizontalSegmentTypeEnum {\n }\n IfcAlignmentHorizontalSegmentTypeEnum.BLOSSCURVE = { type: 3, value: \"BLOSSCURVE\" };\n IfcAlignmentHorizontalSegmentTypeEnum.CIRCULARARC = { type: 3, value: \"CIRCULARARC\" };\n IfcAlignmentHorizontalSegmentTypeEnum.CLOTHOID = { type: 3, value: \"CLOTHOID\" };\n IfcAlignmentHorizontalSegmentTypeEnum.COSINECURVE = { type: 3, value: \"COSINECURVE\" };\n IfcAlignmentHorizontalSegmentTypeEnum.CUBIC = { type: 3, value: \"CUBIC\" };\n IfcAlignmentHorizontalSegmentTypeEnum.HELMERTCURVE = { type: 3, value: \"HELMERTCURVE\" };\n IfcAlignmentHorizontalSegmentTypeEnum.LINE = { type: 3, value: \"LINE\" };\n IfcAlignmentHorizontalSegmentTypeEnum.SINECURVE = { type: 3, value: \"SINECURVE\" };\n IfcAlignmentHorizontalSegmentTypeEnum.VIENNESEBEND = { type: 3, value: \"VIENNESEBEND\" };\n IFC4X32.IfcAlignmentHorizontalSegmentTypeEnum = IfcAlignmentHorizontalSegmentTypeEnum;\n class IfcAlignmentTypeEnum {\n }\n IfcAlignmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcAlignmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcAlignmentTypeEnum = IfcAlignmentTypeEnum;\n class IfcAlignmentVerticalSegmentTypeEnum {\n }\n IfcAlignmentVerticalSegmentTypeEnum.CIRCULARARC = { type: 3, value: \"CIRCULARARC\" };\n IfcAlignmentVerticalSegmentTypeEnum.CLOTHOID = { type: 3, value: \"CLOTHOID\" };\n IfcAlignmentVerticalSegmentTypeEnum.CONSTANTGRADIENT = { type: 3, value: \"CONSTANTGRADIENT\" };\n IfcAlignmentVerticalSegmentTypeEnum.PARABOLICARC = { type: 3, value: \"PARABOLICARC\" };\n IFC4X32.IfcAlignmentVerticalSegmentTypeEnum = IfcAlignmentVerticalSegmentTypeEnum;\n class IfcAnalysisModelTypeEnum {\n }\n IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D = { type: 3, value: \"IN_PLANE_LOADING_2D\" };\n IfcAnalysisModelTypeEnum.LOADING_3D = { type: 3, value: \"LOADING_3D\" };\n IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D = { type: 3, value: \"OUT_PLANE_LOADING_2D\" };\n IfcAnalysisModelTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcAnalysisModelTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcAnalysisModelTypeEnum = IfcAnalysisModelTypeEnum;\n class IfcAnalysisTheoryTypeEnum {\n }\n IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY = { type: 3, value: \"FIRST_ORDER_THEORY\" };\n IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY = { type: 3, value: \"FULL_NONLINEAR_THEORY\" };\n IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY = { type: 3, value: \"SECOND_ORDER_THEORY\" };\n IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY = { type: 3, value: \"THIRD_ORDER_THEORY\" };\n IfcAnalysisTheoryTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcAnalysisTheoryTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcAnalysisTheoryTypeEnum = IfcAnalysisTheoryTypeEnum;\n class IfcAnnotationTypeEnum {\n }\n IfcAnnotationTypeEnum.ASBUILTAREA = { type: 3, value: \"ASBUILTAREA\" };\n IfcAnnotationTypeEnum.ASBUILTLINE = { type: 3, value: \"ASBUILTLINE\" };\n IfcAnnotationTypeEnum.ASBUILTPOINT = { type: 3, value: \"ASBUILTPOINT\" };\n IfcAnnotationTypeEnum.ASSUMEDAREA = { type: 3, value: \"ASSUMEDAREA\" };\n IfcAnnotationTypeEnum.ASSUMEDLINE = { type: 3, value: \"ASSUMEDLINE\" };\n IfcAnnotationTypeEnum.ASSUMEDPOINT = { type: 3, value: \"ASSUMEDPOINT\" };\n IfcAnnotationTypeEnum.NON_PHYSICAL_SIGNAL = { type: 3, value: \"NON_PHYSICAL_SIGNAL\" };\n IfcAnnotationTypeEnum.SUPERELEVATIONEVENT = { type: 3, value: \"SUPERELEVATIONEVENT\" };\n IfcAnnotationTypeEnum.WIDTHEVENT = { type: 3, value: \"WIDTHEVENT\" };\n IfcAnnotationTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcAnnotationTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcAnnotationTypeEnum = IfcAnnotationTypeEnum;\n class IfcArithmeticOperatorEnum {\n }\n IfcArithmeticOperatorEnum.ADD = { type: 3, value: \"ADD\" };\n IfcArithmeticOperatorEnum.DIVIDE = { type: 3, value: \"DIVIDE\" };\n IfcArithmeticOperatorEnum.MULTIPLY = { type: 3, value: \"MULTIPLY\" };\n IfcArithmeticOperatorEnum.SUBTRACT = { type: 3, value: \"SUBTRACT\" };\n IFC4X32.IfcArithmeticOperatorEnum = IfcArithmeticOperatorEnum;\n class IfcAssemblyPlaceEnum {\n }\n IfcAssemblyPlaceEnum.FACTORY = { type: 3, value: \"FACTORY\" };\n IfcAssemblyPlaceEnum.SITE = { type: 3, value: \"SITE\" };\n IfcAssemblyPlaceEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcAssemblyPlaceEnum = IfcAssemblyPlaceEnum;\n class IfcAudioVisualApplianceTypeEnum {\n }\n IfcAudioVisualApplianceTypeEnum.AMPLIFIER = { type: 3, value: \"AMPLIFIER\" };\n IfcAudioVisualApplianceTypeEnum.CAMERA = { type: 3, value: \"CAMERA\" };\n IfcAudioVisualApplianceTypeEnum.COMMUNICATIONTERMINAL = { type: 3, value: \"COMMUNICATIONTERMINAL\" };\n IfcAudioVisualApplianceTypeEnum.DISPLAY = { type: 3, value: \"DISPLAY\" };\n IfcAudioVisualApplianceTypeEnum.MICROPHONE = { type: 3, value: \"MICROPHONE\" };\n IfcAudioVisualApplianceTypeEnum.PLAYER = { type: 3, value: \"PLAYER\" };\n IfcAudioVisualApplianceTypeEnum.PROJECTOR = { type: 3, value: \"PROJECTOR\" };\n IfcAudioVisualApplianceTypeEnum.RECEIVER = { type: 3, value: \"RECEIVER\" };\n IfcAudioVisualApplianceTypeEnum.RECORDINGEQUIPMENT = { type: 3, value: \"RECORDINGEQUIPMENT\" };\n IfcAudioVisualApplianceTypeEnum.SPEAKER = { type: 3, value: \"SPEAKER\" };\n IfcAudioVisualApplianceTypeEnum.SWITCHER = { type: 3, value: \"SWITCHER\" };\n IfcAudioVisualApplianceTypeEnum.TELEPHONE = { type: 3, value: \"TELEPHONE\" };\n IfcAudioVisualApplianceTypeEnum.TUNER = { type: 3, value: \"TUNER\" };\n IfcAudioVisualApplianceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcAudioVisualApplianceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcAudioVisualApplianceTypeEnum = IfcAudioVisualApplianceTypeEnum;\n class IfcBSplineCurveForm {\n }\n IfcBSplineCurveForm.CIRCULAR_ARC = { type: 3, value: \"CIRCULAR_ARC\" };\n IfcBSplineCurveForm.ELLIPTIC_ARC = { type: 3, value: \"ELLIPTIC_ARC\" };\n IfcBSplineCurveForm.HYPERBOLIC_ARC = { type: 3, value: \"HYPERBOLIC_ARC\" };\n IfcBSplineCurveForm.PARABOLIC_ARC = { type: 3, value: \"PARABOLIC_ARC\" };\n IfcBSplineCurveForm.POLYLINE_FORM = { type: 3, value: \"POLYLINE_FORM\" };\n IfcBSplineCurveForm.UNSPECIFIED = { type: 3, value: \"UNSPECIFIED\" };\n IFC4X32.IfcBSplineCurveForm = IfcBSplineCurveForm;\n class IfcBSplineSurfaceForm {\n }\n IfcBSplineSurfaceForm.CONICAL_SURF = { type: 3, value: \"CONICAL_SURF\" };\n IfcBSplineSurfaceForm.CYLINDRICAL_SURF = { type: 3, value: \"CYLINDRICAL_SURF\" };\n IfcBSplineSurfaceForm.GENERALISED_CONE = { type: 3, value: \"GENERALISED_CONE\" };\n IfcBSplineSurfaceForm.PLANE_SURF = { type: 3, value: \"PLANE_SURF\" };\n IfcBSplineSurfaceForm.QUADRIC_SURF = { type: 3, value: \"QUADRIC_SURF\" };\n IfcBSplineSurfaceForm.RULED_SURF = { type: 3, value: \"RULED_SURF\" };\n IfcBSplineSurfaceForm.SPHERICAL_SURF = { type: 3, value: \"SPHERICAL_SURF\" };\n IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION = { type: 3, value: \"SURF_OF_LINEAR_EXTRUSION\" };\n IfcBSplineSurfaceForm.SURF_OF_REVOLUTION = { type: 3, value: \"SURF_OF_REVOLUTION\" };\n IfcBSplineSurfaceForm.TOROIDAL_SURF = { type: 3, value: \"TOROIDAL_SURF\" };\n IfcBSplineSurfaceForm.UNSPECIFIED = { type: 3, value: \"UNSPECIFIED\" };\n IFC4X32.IfcBSplineSurfaceForm = IfcBSplineSurfaceForm;\n class IfcBeamTypeEnum {\n }\n IfcBeamTypeEnum.BEAM = { type: 3, value: \"BEAM\" };\n IfcBeamTypeEnum.CORNICE = { type: 3, value: \"CORNICE\" };\n IfcBeamTypeEnum.DIAPHRAGM = { type: 3, value: \"DIAPHRAGM\" };\n IfcBeamTypeEnum.EDGEBEAM = { type: 3, value: \"EDGEBEAM\" };\n IfcBeamTypeEnum.GIRDER_SEGMENT = { type: 3, value: \"GIRDER_SEGMENT\" };\n IfcBeamTypeEnum.HATSTONE = { type: 3, value: \"HATSTONE\" };\n IfcBeamTypeEnum.HOLLOWCORE = { type: 3, value: \"HOLLOWCORE\" };\n IfcBeamTypeEnum.JOIST = { type: 3, value: \"JOIST\" };\n IfcBeamTypeEnum.LINTEL = { type: 3, value: \"LINTEL\" };\n IfcBeamTypeEnum.PIERCAP = { type: 3, value: \"PIERCAP\" };\n IfcBeamTypeEnum.SPANDREL = { type: 3, value: \"SPANDREL\" };\n IfcBeamTypeEnum.T_BEAM = { type: 3, value: \"T_BEAM\" };\n IfcBeamTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcBeamTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcBeamTypeEnum = IfcBeamTypeEnum;\n class IfcBearingTypeDisplacementEnum {\n }\n IfcBearingTypeDisplacementEnum.FIXED_MOVEMENT = { type: 3, value: \"FIXED_MOVEMENT\" };\n IfcBearingTypeDisplacementEnum.FREE_MOVEMENT = { type: 3, value: \"FREE_MOVEMENT\" };\n IfcBearingTypeDisplacementEnum.GUIDED_LONGITUDINAL = { type: 3, value: \"GUIDED_LONGITUDINAL\" };\n IfcBearingTypeDisplacementEnum.GUIDED_TRANSVERSAL = { type: 3, value: \"GUIDED_TRANSVERSAL\" };\n IfcBearingTypeDisplacementEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcBearingTypeDisplacementEnum = IfcBearingTypeDisplacementEnum;\n class IfcBearingTypeEnum {\n }\n IfcBearingTypeEnum.CYLINDRICAL = { type: 3, value: \"CYLINDRICAL\" };\n IfcBearingTypeEnum.DISK = { type: 3, value: \"DISK\" };\n IfcBearingTypeEnum.ELASTOMERIC = { type: 3, value: \"ELASTOMERIC\" };\n IfcBearingTypeEnum.GUIDE = { type: 3, value: \"GUIDE\" };\n IfcBearingTypeEnum.POT = { type: 3, value: \"POT\" };\n IfcBearingTypeEnum.ROCKER = { type: 3, value: \"ROCKER\" };\n IfcBearingTypeEnum.ROLLER = { type: 3, value: \"ROLLER\" };\n IfcBearingTypeEnum.SPHERICAL = { type: 3, value: \"SPHERICAL\" };\n IfcBearingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcBearingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcBearingTypeEnum = IfcBearingTypeEnum;\n class IfcBenchmarkEnum {\n }\n IfcBenchmarkEnum.EQUALTO = { type: 3, value: \"EQUALTO\" };\n IfcBenchmarkEnum.GREATERTHAN = { type: 3, value: \"GREATERTHAN\" };\n IfcBenchmarkEnum.GREATERTHANOREQUALTO = { type: 3, value: \"GREATERTHANOREQUALTO\" };\n IfcBenchmarkEnum.INCLUDEDIN = { type: 3, value: \"INCLUDEDIN\" };\n IfcBenchmarkEnum.INCLUDES = { type: 3, value: \"INCLUDES\" };\n IfcBenchmarkEnum.LESSTHAN = { type: 3, value: \"LESSTHAN\" };\n IfcBenchmarkEnum.LESSTHANOREQUALTO = { type: 3, value: \"LESSTHANOREQUALTO\" };\n IfcBenchmarkEnum.NOTEQUALTO = { type: 3, value: \"NOTEQUALTO\" };\n IfcBenchmarkEnum.NOTINCLUDEDIN = { type: 3, value: \"NOTINCLUDEDIN\" };\n IfcBenchmarkEnum.NOTINCLUDES = { type: 3, value: \"NOTINCLUDES\" };\n IFC4X32.IfcBenchmarkEnum = IfcBenchmarkEnum;\n class IfcBoilerTypeEnum {\n }\n IfcBoilerTypeEnum.STEAM = { type: 3, value: \"STEAM\" };\n IfcBoilerTypeEnum.WATER = { type: 3, value: \"WATER\" };\n IfcBoilerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcBoilerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcBoilerTypeEnum = IfcBoilerTypeEnum;\n class IfcBooleanOperator {\n }\n IfcBooleanOperator.DIFFERENCE = { type: 3, value: \"DIFFERENCE\" };\n IfcBooleanOperator.INTERSECTION = { type: 3, value: \"INTERSECTION\" };\n IfcBooleanOperator.UNION = { type: 3, value: \"UNION\" };\n IFC4X32.IfcBooleanOperator = IfcBooleanOperator;\n class IfcBridgePartTypeEnum {\n }\n IfcBridgePartTypeEnum.ABUTMENT = { type: 3, value: \"ABUTMENT\" };\n IfcBridgePartTypeEnum.DECK = { type: 3, value: \"DECK\" };\n IfcBridgePartTypeEnum.DECK_SEGMENT = { type: 3, value: \"DECK_SEGMENT\" };\n IfcBridgePartTypeEnum.FOUNDATION = { type: 3, value: \"FOUNDATION\" };\n IfcBridgePartTypeEnum.PIER = { type: 3, value: \"PIER\" };\n IfcBridgePartTypeEnum.PIER_SEGMENT = { type: 3, value: \"PIER_SEGMENT\" };\n IfcBridgePartTypeEnum.PYLON = { type: 3, value: \"PYLON\" };\n IfcBridgePartTypeEnum.SUBSTRUCTURE = { type: 3, value: \"SUBSTRUCTURE\" };\n IfcBridgePartTypeEnum.SUPERSTRUCTURE = { type: 3, value: \"SUPERSTRUCTURE\" };\n IfcBridgePartTypeEnum.SURFACESTRUCTURE = { type: 3, value: \"SURFACESTRUCTURE\" };\n IfcBridgePartTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcBridgePartTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcBridgePartTypeEnum = IfcBridgePartTypeEnum;\n class IfcBridgeTypeEnum {\n }\n IfcBridgeTypeEnum.ARCHED = { type: 3, value: \"ARCHED\" };\n IfcBridgeTypeEnum.CABLE_STAYED = { type: 3, value: \"CABLE_STAYED\" };\n IfcBridgeTypeEnum.CANTILEVER = { type: 3, value: \"CANTILEVER\" };\n IfcBridgeTypeEnum.CULVERT = { type: 3, value: \"CULVERT\" };\n IfcBridgeTypeEnum.FRAMEWORK = { type: 3, value: \"FRAMEWORK\" };\n IfcBridgeTypeEnum.GIRDER = { type: 3, value: \"GIRDER\" };\n IfcBridgeTypeEnum.SUSPENSION = { type: 3, value: \"SUSPENSION\" };\n IfcBridgeTypeEnum.TRUSS = { type: 3, value: \"TRUSS\" };\n IfcBridgeTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcBridgeTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcBridgeTypeEnum = IfcBridgeTypeEnum;\n class IfcBuildingElementPartTypeEnum {\n }\n IfcBuildingElementPartTypeEnum.APRON = { type: 3, value: \"APRON\" };\n IfcBuildingElementPartTypeEnum.ARMOURUNIT = { type: 3, value: \"ARMOURUNIT\" };\n IfcBuildingElementPartTypeEnum.INSULATION = { type: 3, value: \"INSULATION\" };\n IfcBuildingElementPartTypeEnum.PRECASTPANEL = { type: 3, value: \"PRECASTPANEL\" };\n IfcBuildingElementPartTypeEnum.SAFETYCAGE = { type: 3, value: \"SAFETYCAGE\" };\n IfcBuildingElementPartTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcBuildingElementPartTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcBuildingElementPartTypeEnum = IfcBuildingElementPartTypeEnum;\n class IfcBuildingElementProxyTypeEnum {\n }\n IfcBuildingElementProxyTypeEnum.COMPLEX = { type: 3, value: \"COMPLEX\" };\n IfcBuildingElementProxyTypeEnum.ELEMENT = { type: 3, value: \"ELEMENT\" };\n IfcBuildingElementProxyTypeEnum.PARTIAL = { type: 3, value: \"PARTIAL\" };\n IfcBuildingElementProxyTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcBuildingElementProxyTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcBuildingElementProxyTypeEnum = IfcBuildingElementProxyTypeEnum;\n class IfcBuildingSystemTypeEnum {\n }\n IfcBuildingSystemTypeEnum.EROSIONPREVENTION = { type: 3, value: \"EROSIONPREVENTION\" };\n IfcBuildingSystemTypeEnum.FENESTRATION = { type: 3, value: \"FENESTRATION\" };\n IfcBuildingSystemTypeEnum.FOUNDATION = { type: 3, value: \"FOUNDATION\" };\n IfcBuildingSystemTypeEnum.LOADBEARING = { type: 3, value: \"LOADBEARING\" };\n IfcBuildingSystemTypeEnum.OUTERSHELL = { type: 3, value: \"OUTERSHELL\" };\n IfcBuildingSystemTypeEnum.PRESTRESSING = { type: 3, value: \"PRESTRESSING\" };\n IfcBuildingSystemTypeEnum.REINFORCING = { type: 3, value: \"REINFORCING\" };\n IfcBuildingSystemTypeEnum.SHADING = { type: 3, value: \"SHADING\" };\n IfcBuildingSystemTypeEnum.TRANSPORT = { type: 3, value: \"TRANSPORT\" };\n IfcBuildingSystemTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcBuildingSystemTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcBuildingSystemTypeEnum = IfcBuildingSystemTypeEnum;\n class IfcBuiltSystemTypeEnum {\n }\n IfcBuiltSystemTypeEnum.EROSIONPREVENTION = { type: 3, value: \"EROSIONPREVENTION\" };\n IfcBuiltSystemTypeEnum.FENESTRATION = { type: 3, value: \"FENESTRATION\" };\n IfcBuiltSystemTypeEnum.FOUNDATION = { type: 3, value: \"FOUNDATION\" };\n IfcBuiltSystemTypeEnum.LOADBEARING = { type: 3, value: \"LOADBEARING\" };\n IfcBuiltSystemTypeEnum.MOORING = { type: 3, value: \"MOORING\" };\n IfcBuiltSystemTypeEnum.OUTERSHELL = { type: 3, value: \"OUTERSHELL\" };\n IfcBuiltSystemTypeEnum.PRESTRESSING = { type: 3, value: \"PRESTRESSING\" };\n IfcBuiltSystemTypeEnum.RAILWAYLINE = { type: 3, value: \"RAILWAYLINE\" };\n IfcBuiltSystemTypeEnum.RAILWAYTRACK = { type: 3, value: \"RAILWAYTRACK\" };\n IfcBuiltSystemTypeEnum.REINFORCING = { type: 3, value: \"REINFORCING\" };\n IfcBuiltSystemTypeEnum.SHADING = { type: 3, value: \"SHADING\" };\n IfcBuiltSystemTypeEnum.TRACKCIRCUIT = { type: 3, value: \"TRACKCIRCUIT\" };\n IfcBuiltSystemTypeEnum.TRANSPORT = { type: 3, value: \"TRANSPORT\" };\n IfcBuiltSystemTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcBuiltSystemTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcBuiltSystemTypeEnum = IfcBuiltSystemTypeEnum;\n class IfcBurnerTypeEnum {\n }\n IfcBurnerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcBurnerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcBurnerTypeEnum = IfcBurnerTypeEnum;\n class IfcCableCarrierFittingTypeEnum {\n }\n IfcCableCarrierFittingTypeEnum.BEND = { type: 3, value: \"BEND\" };\n IfcCableCarrierFittingTypeEnum.CONNECTOR = { type: 3, value: \"CONNECTOR\" };\n IfcCableCarrierFittingTypeEnum.CROSS = { type: 3, value: \"CROSS\" };\n IfcCableCarrierFittingTypeEnum.JUNCTION = { type: 3, value: \"JUNCTION\" };\n IfcCableCarrierFittingTypeEnum.TEE = { type: 3, value: \"TEE\" };\n IfcCableCarrierFittingTypeEnum.TRANSITION = { type: 3, value: \"TRANSITION\" };\n IfcCableCarrierFittingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCableCarrierFittingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcCableCarrierFittingTypeEnum = IfcCableCarrierFittingTypeEnum;\n class IfcCableCarrierSegmentTypeEnum {\n }\n IfcCableCarrierSegmentTypeEnum.CABLEBRACKET = { type: 3, value: \"CABLEBRACKET\" };\n IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT = { type: 3, value: \"CABLELADDERSEGMENT\" };\n IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT = { type: 3, value: \"CABLETRAYSEGMENT\" };\n IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT = { type: 3, value: \"CABLETRUNKINGSEGMENT\" };\n IfcCableCarrierSegmentTypeEnum.CATENARYWIRE = { type: 3, value: \"CATENARYWIRE\" };\n IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT = { type: 3, value: \"CONDUITSEGMENT\" };\n IfcCableCarrierSegmentTypeEnum.DROPPER = { type: 3, value: \"DROPPER\" };\n IfcCableCarrierSegmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCableCarrierSegmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcCableCarrierSegmentTypeEnum = IfcCableCarrierSegmentTypeEnum;\n class IfcCableFittingTypeEnum {\n }\n IfcCableFittingTypeEnum.CONNECTOR = { type: 3, value: \"CONNECTOR\" };\n IfcCableFittingTypeEnum.ENTRY = { type: 3, value: \"ENTRY\" };\n IfcCableFittingTypeEnum.EXIT = { type: 3, value: \"EXIT\" };\n IfcCableFittingTypeEnum.FANOUT = { type: 3, value: \"FANOUT\" };\n IfcCableFittingTypeEnum.JUNCTION = { type: 3, value: \"JUNCTION\" };\n IfcCableFittingTypeEnum.TRANSITION = { type: 3, value: \"TRANSITION\" };\n IfcCableFittingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCableFittingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcCableFittingTypeEnum = IfcCableFittingTypeEnum;\n class IfcCableSegmentTypeEnum {\n }\n IfcCableSegmentTypeEnum.BUSBARSEGMENT = { type: 3, value: \"BUSBARSEGMENT\" };\n IfcCableSegmentTypeEnum.CABLESEGMENT = { type: 3, value: \"CABLESEGMENT\" };\n IfcCableSegmentTypeEnum.CONDUCTORSEGMENT = { type: 3, value: \"CONDUCTORSEGMENT\" };\n IfcCableSegmentTypeEnum.CONTACTWIRESEGMENT = { type: 3, value: \"CONTACTWIRESEGMENT\" };\n IfcCableSegmentTypeEnum.CORESEGMENT = { type: 3, value: \"CORESEGMENT\" };\n IfcCableSegmentTypeEnum.FIBERSEGMENT = { type: 3, value: \"FIBERSEGMENT\" };\n IfcCableSegmentTypeEnum.FIBERTUBE = { type: 3, value: \"FIBERTUBE\" };\n IfcCableSegmentTypeEnum.OPTICALCABLESEGMENT = { type: 3, value: \"OPTICALCABLESEGMENT\" };\n IfcCableSegmentTypeEnum.STITCHWIRE = { type: 3, value: \"STITCHWIRE\" };\n IfcCableSegmentTypeEnum.WIREPAIRSEGMENT = { type: 3, value: \"WIREPAIRSEGMENT\" };\n IfcCableSegmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCableSegmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcCableSegmentTypeEnum = IfcCableSegmentTypeEnum;\n class IfcCaissonFoundationTypeEnum {\n }\n IfcCaissonFoundationTypeEnum.CAISSON = { type: 3, value: \"CAISSON\" };\n IfcCaissonFoundationTypeEnum.WELL = { type: 3, value: \"WELL\" };\n IfcCaissonFoundationTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCaissonFoundationTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcCaissonFoundationTypeEnum = IfcCaissonFoundationTypeEnum;\n class IfcChangeActionEnum {\n }\n IfcChangeActionEnum.ADDED = { type: 3, value: \"ADDED\" };\n IfcChangeActionEnum.DELETED = { type: 3, value: \"DELETED\" };\n IfcChangeActionEnum.MODIFIED = { type: 3, value: \"MODIFIED\" };\n IfcChangeActionEnum.NOCHANGE = { type: 3, value: \"NOCHANGE\" };\n IfcChangeActionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcChangeActionEnum = IfcChangeActionEnum;\n class IfcChillerTypeEnum {\n }\n IfcChillerTypeEnum.AIRCOOLED = { type: 3, value: \"AIRCOOLED\" };\n IfcChillerTypeEnum.HEATRECOVERY = { type: 3, value: \"HEATRECOVERY\" };\n IfcChillerTypeEnum.WATERCOOLED = { type: 3, value: \"WATERCOOLED\" };\n IfcChillerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcChillerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcChillerTypeEnum = IfcChillerTypeEnum;\n class IfcChimneyTypeEnum {\n }\n IfcChimneyTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcChimneyTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcChimneyTypeEnum = IfcChimneyTypeEnum;\n class IfcCoilTypeEnum {\n }\n IfcCoilTypeEnum.DXCOOLINGCOIL = { type: 3, value: \"DXCOOLINGCOIL\" };\n IfcCoilTypeEnum.ELECTRICHEATINGCOIL = { type: 3, value: \"ELECTRICHEATINGCOIL\" };\n IfcCoilTypeEnum.GASHEATINGCOIL = { type: 3, value: \"GASHEATINGCOIL\" };\n IfcCoilTypeEnum.HYDRONICCOIL = { type: 3, value: \"HYDRONICCOIL\" };\n IfcCoilTypeEnum.STEAMHEATINGCOIL = { type: 3, value: \"STEAMHEATINGCOIL\" };\n IfcCoilTypeEnum.WATERCOOLINGCOIL = { type: 3, value: \"WATERCOOLINGCOIL\" };\n IfcCoilTypeEnum.WATERHEATINGCOIL = { type: 3, value: \"WATERHEATINGCOIL\" };\n IfcCoilTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCoilTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcCoilTypeEnum = IfcCoilTypeEnum;\n class IfcColumnTypeEnum {\n }\n IfcColumnTypeEnum.COLUMN = { type: 3, value: \"COLUMN\" };\n IfcColumnTypeEnum.PIERSTEM = { type: 3, value: \"PIERSTEM\" };\n IfcColumnTypeEnum.PIERSTEM_SEGMENT = { type: 3, value: \"PIERSTEM_SEGMENT\" };\n IfcColumnTypeEnum.PILASTER = { type: 3, value: \"PILASTER\" };\n IfcColumnTypeEnum.STANDCOLUMN = { type: 3, value: \"STANDCOLUMN\" };\n IfcColumnTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcColumnTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcColumnTypeEnum = IfcColumnTypeEnum;\n class IfcCommunicationsApplianceTypeEnum {\n }\n IfcCommunicationsApplianceTypeEnum.ANTENNA = { type: 3, value: \"ANTENNA\" };\n IfcCommunicationsApplianceTypeEnum.AUTOMATON = { type: 3, value: \"AUTOMATON\" };\n IfcCommunicationsApplianceTypeEnum.COMPUTER = { type: 3, value: \"COMPUTER\" };\n IfcCommunicationsApplianceTypeEnum.FAX = { type: 3, value: \"FAX\" };\n IfcCommunicationsApplianceTypeEnum.GATEWAY = { type: 3, value: \"GATEWAY\" };\n IfcCommunicationsApplianceTypeEnum.INTELLIGENTPERIPHERAL = { type: 3, value: \"INTELLIGENTPERIPHERAL\" };\n IfcCommunicationsApplianceTypeEnum.IPNETWORKEQUIPMENT = { type: 3, value: \"IPNETWORKEQUIPMENT\" };\n IfcCommunicationsApplianceTypeEnum.LINESIDEELECTRONICUNIT = { type: 3, value: \"LINESIDEELECTRONICUNIT\" };\n IfcCommunicationsApplianceTypeEnum.MODEM = { type: 3, value: \"MODEM\" };\n IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE = { type: 3, value: \"NETWORKAPPLIANCE\" };\n IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE = { type: 3, value: \"NETWORKBRIDGE\" };\n IfcCommunicationsApplianceTypeEnum.NETWORKHUB = { type: 3, value: \"NETWORKHUB\" };\n IfcCommunicationsApplianceTypeEnum.OPTICALLINETERMINAL = { type: 3, value: \"OPTICALLINETERMINAL\" };\n IfcCommunicationsApplianceTypeEnum.OPTICALNETWORKUNIT = { type: 3, value: \"OPTICALNETWORKUNIT\" };\n IfcCommunicationsApplianceTypeEnum.PRINTER = { type: 3, value: \"PRINTER\" };\n IfcCommunicationsApplianceTypeEnum.RADIOBLOCKCENTER = { type: 3, value: \"RADIOBLOCKCENTER\" };\n IfcCommunicationsApplianceTypeEnum.REPEATER = { type: 3, value: \"REPEATER\" };\n IfcCommunicationsApplianceTypeEnum.ROUTER = { type: 3, value: \"ROUTER\" };\n IfcCommunicationsApplianceTypeEnum.SCANNER = { type: 3, value: \"SCANNER\" };\n IfcCommunicationsApplianceTypeEnum.TELECOMMAND = { type: 3, value: \"TELECOMMAND\" };\n IfcCommunicationsApplianceTypeEnum.TELEPHONYEXCHANGE = { type: 3, value: \"TELEPHONYEXCHANGE\" };\n IfcCommunicationsApplianceTypeEnum.TRANSITIONCOMPONENT = { type: 3, value: \"TRANSITIONCOMPONENT\" };\n IfcCommunicationsApplianceTypeEnum.TRANSPONDER = { type: 3, value: \"TRANSPONDER\" };\n IfcCommunicationsApplianceTypeEnum.TRANSPORTEQUIPMENT = { type: 3, value: \"TRANSPORTEQUIPMENT\" };\n IfcCommunicationsApplianceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCommunicationsApplianceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcCommunicationsApplianceTypeEnum = IfcCommunicationsApplianceTypeEnum;\n class IfcComplexPropertyTemplateTypeEnum {\n }\n IfcComplexPropertyTemplateTypeEnum.P_COMPLEX = { type: 3, value: \"P_COMPLEX\" };\n IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX = { type: 3, value: \"Q_COMPLEX\" };\n IFC4X32.IfcComplexPropertyTemplateTypeEnum = IfcComplexPropertyTemplateTypeEnum;\n class IfcCompressorTypeEnum {\n }\n IfcCompressorTypeEnum.BOOSTER = { type: 3, value: \"BOOSTER\" };\n IfcCompressorTypeEnum.DYNAMIC = { type: 3, value: \"DYNAMIC\" };\n IfcCompressorTypeEnum.HERMETIC = { type: 3, value: \"HERMETIC\" };\n IfcCompressorTypeEnum.OPENTYPE = { type: 3, value: \"OPENTYPE\" };\n IfcCompressorTypeEnum.RECIPROCATING = { type: 3, value: \"RECIPROCATING\" };\n IfcCompressorTypeEnum.ROLLINGPISTON = { type: 3, value: \"ROLLINGPISTON\" };\n IfcCompressorTypeEnum.ROTARY = { type: 3, value: \"ROTARY\" };\n IfcCompressorTypeEnum.ROTARYVANE = { type: 3, value: \"ROTARYVANE\" };\n IfcCompressorTypeEnum.SCROLL = { type: 3, value: \"SCROLL\" };\n IfcCompressorTypeEnum.SEMIHERMETIC = { type: 3, value: \"SEMIHERMETIC\" };\n IfcCompressorTypeEnum.SINGLESCREW = { type: 3, value: \"SINGLESCREW\" };\n IfcCompressorTypeEnum.SINGLESTAGE = { type: 3, value: \"SINGLESTAGE\" };\n IfcCompressorTypeEnum.TROCHOIDAL = { type: 3, value: \"TROCHOIDAL\" };\n IfcCompressorTypeEnum.TWINSCREW = { type: 3, value: \"TWINSCREW\" };\n IfcCompressorTypeEnum.WELDEDSHELLHERMETIC = { type: 3, value: \"WELDEDSHELLHERMETIC\" };\n IfcCompressorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCompressorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcCompressorTypeEnum = IfcCompressorTypeEnum;\n class IfcCondenserTypeEnum {\n }\n IfcCondenserTypeEnum.AIRCOOLED = { type: 3, value: \"AIRCOOLED\" };\n IfcCondenserTypeEnum.EVAPORATIVECOOLED = { type: 3, value: \"EVAPORATIVECOOLED\" };\n IfcCondenserTypeEnum.WATERCOOLED = { type: 3, value: \"WATERCOOLED\" };\n IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE = { type: 3, value: \"WATERCOOLEDBRAZEDPLATE\" };\n IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL = { type: 3, value: \"WATERCOOLEDSHELLCOIL\" };\n IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE = { type: 3, value: \"WATERCOOLEDSHELLTUBE\" };\n IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE = { type: 3, value: \"WATERCOOLEDTUBEINTUBE\" };\n IfcCondenserTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCondenserTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcCondenserTypeEnum = IfcCondenserTypeEnum;\n class IfcConnectionTypeEnum {\n }\n IfcConnectionTypeEnum.ATEND = { type: 3, value: \"ATEND\" };\n IfcConnectionTypeEnum.ATPATH = { type: 3, value: \"ATPATH\" };\n IfcConnectionTypeEnum.ATSTART = { type: 3, value: \"ATSTART\" };\n IfcConnectionTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcConnectionTypeEnum = IfcConnectionTypeEnum;\n class IfcConstraintEnum {\n }\n IfcConstraintEnum.ADVISORY = { type: 3, value: \"ADVISORY\" };\n IfcConstraintEnum.HARD = { type: 3, value: \"HARD\" };\n IfcConstraintEnum.SOFT = { type: 3, value: \"SOFT\" };\n IfcConstraintEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcConstraintEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcConstraintEnum = IfcConstraintEnum;\n class IfcConstructionEquipmentResourceTypeEnum {\n }\n IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING = { type: 3, value: \"DEMOLISHING\" };\n IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING = { type: 3, value: \"EARTHMOVING\" };\n IfcConstructionEquipmentResourceTypeEnum.ERECTING = { type: 3, value: \"ERECTING\" };\n IfcConstructionEquipmentResourceTypeEnum.HEATING = { type: 3, value: \"HEATING\" };\n IfcConstructionEquipmentResourceTypeEnum.LIGHTING = { type: 3, value: \"LIGHTING\" };\n IfcConstructionEquipmentResourceTypeEnum.PAVING = { type: 3, value: \"PAVING\" };\n IfcConstructionEquipmentResourceTypeEnum.PUMPING = { type: 3, value: \"PUMPING\" };\n IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING = { type: 3, value: \"TRANSPORTING\" };\n IfcConstructionEquipmentResourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcConstructionEquipmentResourceTypeEnum = IfcConstructionEquipmentResourceTypeEnum;\n class IfcConstructionMaterialResourceTypeEnum {\n }\n IfcConstructionMaterialResourceTypeEnum.AGGREGATES = { type: 3, value: \"AGGREGATES\" };\n IfcConstructionMaterialResourceTypeEnum.CONCRETE = { type: 3, value: \"CONCRETE\" };\n IfcConstructionMaterialResourceTypeEnum.DRYWALL = { type: 3, value: \"DRYWALL\" };\n IfcConstructionMaterialResourceTypeEnum.FUEL = { type: 3, value: \"FUEL\" };\n IfcConstructionMaterialResourceTypeEnum.GYPSUM = { type: 3, value: \"GYPSUM\" };\n IfcConstructionMaterialResourceTypeEnum.MASONRY = { type: 3, value: \"MASONRY\" };\n IfcConstructionMaterialResourceTypeEnum.METAL = { type: 3, value: \"METAL\" };\n IfcConstructionMaterialResourceTypeEnum.PLASTIC = { type: 3, value: \"PLASTIC\" };\n IfcConstructionMaterialResourceTypeEnum.WOOD = { type: 3, value: \"WOOD\" };\n IfcConstructionMaterialResourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcConstructionMaterialResourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcConstructionMaterialResourceTypeEnum = IfcConstructionMaterialResourceTypeEnum;\n class IfcConstructionProductResourceTypeEnum {\n }\n IfcConstructionProductResourceTypeEnum.ASSEMBLY = { type: 3, value: \"ASSEMBLY\" };\n IfcConstructionProductResourceTypeEnum.FORMWORK = { type: 3, value: \"FORMWORK\" };\n IfcConstructionProductResourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcConstructionProductResourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcConstructionProductResourceTypeEnum = IfcConstructionProductResourceTypeEnum;\n class IfcControllerTypeEnum {\n }\n IfcControllerTypeEnum.FLOATING = { type: 3, value: \"FLOATING\" };\n IfcControllerTypeEnum.MULTIPOSITION = { type: 3, value: \"MULTIPOSITION\" };\n IfcControllerTypeEnum.PROGRAMMABLE = { type: 3, value: \"PROGRAMMABLE\" };\n IfcControllerTypeEnum.PROPORTIONAL = { type: 3, value: \"PROPORTIONAL\" };\n IfcControllerTypeEnum.TWOPOSITION = { type: 3, value: \"TWOPOSITION\" };\n IfcControllerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcControllerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcControllerTypeEnum = IfcControllerTypeEnum;\n class IfcConveyorSegmentTypeEnum {\n }\n IfcConveyorSegmentTypeEnum.BELTCONVEYOR = { type: 3, value: \"BELTCONVEYOR\" };\n IfcConveyorSegmentTypeEnum.BUCKETCONVEYOR = { type: 3, value: \"BUCKETCONVEYOR\" };\n IfcConveyorSegmentTypeEnum.CHUTECONVEYOR = { type: 3, value: \"CHUTECONVEYOR\" };\n IfcConveyorSegmentTypeEnum.SCREWCONVEYOR = { type: 3, value: \"SCREWCONVEYOR\" };\n IfcConveyorSegmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcConveyorSegmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcConveyorSegmentTypeEnum = IfcConveyorSegmentTypeEnum;\n class IfcCooledBeamTypeEnum {\n }\n IfcCooledBeamTypeEnum.ACTIVE = { type: 3, value: \"ACTIVE\" };\n IfcCooledBeamTypeEnum.PASSIVE = { type: 3, value: \"PASSIVE\" };\n IfcCooledBeamTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCooledBeamTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcCooledBeamTypeEnum = IfcCooledBeamTypeEnum;\n class IfcCoolingTowerTypeEnum {\n }\n IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT = { type: 3, value: \"MECHANICALFORCEDDRAFT\" };\n IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT = { type: 3, value: \"MECHANICALINDUCEDDRAFT\" };\n IfcCoolingTowerTypeEnum.NATURALDRAFT = { type: 3, value: \"NATURALDRAFT\" };\n IfcCoolingTowerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCoolingTowerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcCoolingTowerTypeEnum = IfcCoolingTowerTypeEnum;\n class IfcCostItemTypeEnum {\n }\n IfcCostItemTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCostItemTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcCostItemTypeEnum = IfcCostItemTypeEnum;\n class IfcCostScheduleTypeEnum {\n }\n IfcCostScheduleTypeEnum.BUDGET = { type: 3, value: \"BUDGET\" };\n IfcCostScheduleTypeEnum.COSTPLAN = { type: 3, value: \"COSTPLAN\" };\n IfcCostScheduleTypeEnum.ESTIMATE = { type: 3, value: \"ESTIMATE\" };\n IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES = { type: 3, value: \"PRICEDBILLOFQUANTITIES\" };\n IfcCostScheduleTypeEnum.SCHEDULEOFRATES = { type: 3, value: \"SCHEDULEOFRATES\" };\n IfcCostScheduleTypeEnum.TENDER = { type: 3, value: \"TENDER\" };\n IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES = { type: 3, value: \"UNPRICEDBILLOFQUANTITIES\" };\n IfcCostScheduleTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCostScheduleTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcCostScheduleTypeEnum = IfcCostScheduleTypeEnum;\n class IfcCourseTypeEnum {\n }\n IfcCourseTypeEnum.ARMOUR = { type: 3, value: \"ARMOUR\" };\n IfcCourseTypeEnum.BALLASTBED = { type: 3, value: \"BALLASTBED\" };\n IfcCourseTypeEnum.CORE = { type: 3, value: \"CORE\" };\n IfcCourseTypeEnum.FILTER = { type: 3, value: \"FILTER\" };\n IfcCourseTypeEnum.PAVEMENT = { type: 3, value: \"PAVEMENT\" };\n IfcCourseTypeEnum.PROTECTION = { type: 3, value: \"PROTECTION\" };\n IfcCourseTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCourseTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcCourseTypeEnum = IfcCourseTypeEnum;\n class IfcCoveringTypeEnum {\n }\n IfcCoveringTypeEnum.CEILING = { type: 3, value: \"CEILING\" };\n IfcCoveringTypeEnum.CLADDING = { type: 3, value: \"CLADDING\" };\n IfcCoveringTypeEnum.COPING = { type: 3, value: \"COPING\" };\n IfcCoveringTypeEnum.FLOORING = { type: 3, value: \"FLOORING\" };\n IfcCoveringTypeEnum.INSULATION = { type: 3, value: \"INSULATION\" };\n IfcCoveringTypeEnum.MEMBRANE = { type: 3, value: \"MEMBRANE\" };\n IfcCoveringTypeEnum.MOLDING = { type: 3, value: \"MOLDING\" };\n IfcCoveringTypeEnum.ROOFING = { type: 3, value: \"ROOFING\" };\n IfcCoveringTypeEnum.SKIRTINGBOARD = { type: 3, value: \"SKIRTINGBOARD\" };\n IfcCoveringTypeEnum.SLEEVING = { type: 3, value: \"SLEEVING\" };\n IfcCoveringTypeEnum.TOPPING = { type: 3, value: \"TOPPING\" };\n IfcCoveringTypeEnum.WRAPPING = { type: 3, value: \"WRAPPING\" };\n IfcCoveringTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCoveringTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcCoveringTypeEnum = IfcCoveringTypeEnum;\n class IfcCrewResourceTypeEnum {\n }\n IfcCrewResourceTypeEnum.OFFICE = { type: 3, value: \"OFFICE\" };\n IfcCrewResourceTypeEnum.SITE = { type: 3, value: \"SITE\" };\n IfcCrewResourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCrewResourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcCrewResourceTypeEnum = IfcCrewResourceTypeEnum;\n class IfcCurtainWallTypeEnum {\n }\n IfcCurtainWallTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcCurtainWallTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcCurtainWallTypeEnum = IfcCurtainWallTypeEnum;\n class IfcCurveInterpolationEnum {\n }\n IfcCurveInterpolationEnum.LINEAR = { type: 3, value: \"LINEAR\" };\n IfcCurveInterpolationEnum.LOG_LINEAR = { type: 3, value: \"LOG_LINEAR\" };\n IfcCurveInterpolationEnum.LOG_LOG = { type: 3, value: \"LOG_LOG\" };\n IfcCurveInterpolationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcCurveInterpolationEnum = IfcCurveInterpolationEnum;\n class IfcDamperTypeEnum {\n }\n IfcDamperTypeEnum.BACKDRAFTDAMPER = { type: 3, value: \"BACKDRAFTDAMPER\" };\n IfcDamperTypeEnum.BALANCINGDAMPER = { type: 3, value: \"BALANCINGDAMPER\" };\n IfcDamperTypeEnum.BLASTDAMPER = { type: 3, value: \"BLASTDAMPER\" };\n IfcDamperTypeEnum.CONTROLDAMPER = { type: 3, value: \"CONTROLDAMPER\" };\n IfcDamperTypeEnum.FIREDAMPER = { type: 3, value: \"FIREDAMPER\" };\n IfcDamperTypeEnum.FIRESMOKEDAMPER = { type: 3, value: \"FIRESMOKEDAMPER\" };\n IfcDamperTypeEnum.FUMEHOODEXHAUST = { type: 3, value: \"FUMEHOODEXHAUST\" };\n IfcDamperTypeEnum.GRAVITYDAMPER = { type: 3, value: \"GRAVITYDAMPER\" };\n IfcDamperTypeEnum.GRAVITYRELIEFDAMPER = { type: 3, value: \"GRAVITYRELIEFDAMPER\" };\n IfcDamperTypeEnum.RELIEFDAMPER = { type: 3, value: \"RELIEFDAMPER\" };\n IfcDamperTypeEnum.SMOKEDAMPER = { type: 3, value: \"SMOKEDAMPER\" };\n IfcDamperTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDamperTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcDamperTypeEnum = IfcDamperTypeEnum;\n class IfcDataOriginEnum {\n }\n IfcDataOriginEnum.MEASURED = { type: 3, value: \"MEASURED\" };\n IfcDataOriginEnum.PREDICTED = { type: 3, value: \"PREDICTED\" };\n IfcDataOriginEnum.SIMULATED = { type: 3, value: \"SIMULATED\" };\n IfcDataOriginEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDataOriginEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcDataOriginEnum = IfcDataOriginEnum;\n class IfcDerivedUnitEnum {\n }\n IfcDerivedUnitEnum.ACCELERATIONUNIT = { type: 3, value: \"ACCELERATIONUNIT\" };\n IfcDerivedUnitEnum.ANGULARVELOCITYUNIT = { type: 3, value: \"ANGULARVELOCITYUNIT\" };\n IfcDerivedUnitEnum.AREADENSITYUNIT = { type: 3, value: \"AREADENSITYUNIT\" };\n IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT = { type: 3, value: \"COMPOUNDPLANEANGLEUNIT\" };\n IfcDerivedUnitEnum.CURVATUREUNIT = { type: 3, value: \"CURVATUREUNIT\" };\n IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT = { type: 3, value: \"DYNAMICVISCOSITYUNIT\" };\n IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT = { type: 3, value: \"HEATFLUXDENSITYUNIT\" };\n IfcDerivedUnitEnum.HEATINGVALUEUNIT = { type: 3, value: \"HEATINGVALUEUNIT\" };\n IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT = { type: 3, value: \"INTEGERCOUNTRATEUNIT\" };\n IfcDerivedUnitEnum.IONCONCENTRATIONUNIT = { type: 3, value: \"IONCONCENTRATIONUNIT\" };\n IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT = { type: 3, value: \"ISOTHERMALMOISTURECAPACITYUNIT\" };\n IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT = { type: 3, value: \"KINEMATICVISCOSITYUNIT\" };\n IfcDerivedUnitEnum.LINEARFORCEUNIT = { type: 3, value: \"LINEARFORCEUNIT\" };\n IfcDerivedUnitEnum.LINEARMOMENTUNIT = { type: 3, value: \"LINEARMOMENTUNIT\" };\n IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT = { type: 3, value: \"LINEARSTIFFNESSUNIT\" };\n IfcDerivedUnitEnum.LINEARVELOCITYUNIT = { type: 3, value: \"LINEARVELOCITYUNIT\" };\n IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT = { type: 3, value: \"LUMINOUSINTENSITYDISTRIBUTIONUNIT\" };\n IfcDerivedUnitEnum.MASSDENSITYUNIT = { type: 3, value: \"MASSDENSITYUNIT\" };\n IfcDerivedUnitEnum.MASSFLOWRATEUNIT = { type: 3, value: \"MASSFLOWRATEUNIT\" };\n IfcDerivedUnitEnum.MASSPERLENGTHUNIT = { type: 3, value: \"MASSPERLENGTHUNIT\" };\n IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT = { type: 3, value: \"MODULUSOFELASTICITYUNIT\" };\n IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT = { type: 3, value: \"MODULUSOFLINEARSUBGRADEREACTIONUNIT\" };\n IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT = { type: 3, value: \"MODULUSOFROTATIONALSUBGRADEREACTIONUNIT\" };\n IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT = { type: 3, value: \"MODULUSOFSUBGRADEREACTIONUNIT\" };\n IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT = { type: 3, value: \"MOISTUREDIFFUSIVITYUNIT\" };\n IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT = { type: 3, value: \"MOLECULARWEIGHTUNIT\" };\n IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT = { type: 3, value: \"MOMENTOFINERTIAUNIT\" };\n IfcDerivedUnitEnum.PHUNIT = { type: 3, value: \"PHUNIT\" };\n IfcDerivedUnitEnum.PLANARFORCEUNIT = { type: 3, value: \"PLANARFORCEUNIT\" };\n IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT = { type: 3, value: \"ROTATIONALFREQUENCYUNIT\" };\n IfcDerivedUnitEnum.ROTATIONALMASSUNIT = { type: 3, value: \"ROTATIONALMASSUNIT\" };\n IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT = { type: 3, value: \"ROTATIONALSTIFFNESSUNIT\" };\n IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT = { type: 3, value: \"SECTIONAREAINTEGRALUNIT\" };\n IfcDerivedUnitEnum.SECTIONMODULUSUNIT = { type: 3, value: \"SECTIONMODULUSUNIT\" };\n IfcDerivedUnitEnum.SHEARMODULUSUNIT = { type: 3, value: \"SHEARMODULUSUNIT\" };\n IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT = { type: 3, value: \"SOUNDPOWERLEVELUNIT\" };\n IfcDerivedUnitEnum.SOUNDPOWERUNIT = { type: 3, value: \"SOUNDPOWERUNIT\" };\n IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT = { type: 3, value: \"SOUNDPRESSURELEVELUNIT\" };\n IfcDerivedUnitEnum.SOUNDPRESSUREUNIT = { type: 3, value: \"SOUNDPRESSUREUNIT\" };\n IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT = { type: 3, value: \"SPECIFICHEATCAPACITYUNIT\" };\n IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT = { type: 3, value: \"TEMPERATUREGRADIENTUNIT\" };\n IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT = { type: 3, value: \"TEMPERATURERATEOFCHANGEUNIT\" };\n IfcDerivedUnitEnum.THERMALADMITTANCEUNIT = { type: 3, value: \"THERMALADMITTANCEUNIT\" };\n IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT = { type: 3, value: \"THERMALCONDUCTANCEUNIT\" };\n IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT = { type: 3, value: \"THERMALEXPANSIONCOEFFICIENTUNIT\" };\n IfcDerivedUnitEnum.THERMALRESISTANCEUNIT = { type: 3, value: \"THERMALRESISTANCEUNIT\" };\n IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT = { type: 3, value: \"THERMALTRANSMITTANCEUNIT\" };\n IfcDerivedUnitEnum.TORQUEUNIT = { type: 3, value: \"TORQUEUNIT\" };\n IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT = { type: 3, value: \"VAPORPERMEABILITYUNIT\" };\n IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT = { type: 3, value: \"VOLUMETRICFLOWRATEUNIT\" };\n IfcDerivedUnitEnum.WARPINGCONSTANTUNIT = { type: 3, value: \"WARPINGCONSTANTUNIT\" };\n IfcDerivedUnitEnum.WARPINGMOMENTUNIT = { type: 3, value: \"WARPINGMOMENTUNIT\" };\n IfcDerivedUnitEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IFC4X32.IfcDerivedUnitEnum = IfcDerivedUnitEnum;\n class IfcDirectionSenseEnum {\n }\n IfcDirectionSenseEnum.NEGATIVE = { type: 3, value: \"NEGATIVE\" };\n IfcDirectionSenseEnum.POSITIVE = { type: 3, value: \"POSITIVE\" };\n IFC4X32.IfcDirectionSenseEnum = IfcDirectionSenseEnum;\n class IfcDiscreteAccessoryTypeEnum {\n }\n IfcDiscreteAccessoryTypeEnum.ANCHORPLATE = { type: 3, value: \"ANCHORPLATE\" };\n IfcDiscreteAccessoryTypeEnum.BIRDPROTECTION = { type: 3, value: \"BIRDPROTECTION\" };\n IfcDiscreteAccessoryTypeEnum.BRACKET = { type: 3, value: \"BRACKET\" };\n IfcDiscreteAccessoryTypeEnum.CABLEARRANGER = { type: 3, value: \"CABLEARRANGER\" };\n IfcDiscreteAccessoryTypeEnum.ELASTIC_CUSHION = { type: 3, value: \"ELASTIC_CUSHION\" };\n IfcDiscreteAccessoryTypeEnum.EXPANSION_JOINT_DEVICE = { type: 3, value: \"EXPANSION_JOINT_DEVICE\" };\n IfcDiscreteAccessoryTypeEnum.FILLER = { type: 3, value: \"FILLER\" };\n IfcDiscreteAccessoryTypeEnum.FLASHING = { type: 3, value: \"FLASHING\" };\n IfcDiscreteAccessoryTypeEnum.INSULATOR = { type: 3, value: \"INSULATOR\" };\n IfcDiscreteAccessoryTypeEnum.LOCK = { type: 3, value: \"LOCK\" };\n IfcDiscreteAccessoryTypeEnum.PANEL_STRENGTHENING = { type: 3, value: \"PANEL_STRENGTHENING\" };\n IfcDiscreteAccessoryTypeEnum.POINTMACHINEMOUNTINGDEVICE = { type: 3, value: \"POINTMACHINEMOUNTINGDEVICE\" };\n IfcDiscreteAccessoryTypeEnum.POINT_MACHINE_LOCKING_DEVICE = { type: 3, value: \"POINT_MACHINE_LOCKING_DEVICE\" };\n IfcDiscreteAccessoryTypeEnum.RAILBRACE = { type: 3, value: \"RAILBRACE\" };\n IfcDiscreteAccessoryTypeEnum.RAILPAD = { type: 3, value: \"RAILPAD\" };\n IfcDiscreteAccessoryTypeEnum.RAIL_LUBRICATION = { type: 3, value: \"RAIL_LUBRICATION\" };\n IfcDiscreteAccessoryTypeEnum.RAIL_MECHANICAL_EQUIPMENT = { type: 3, value: \"RAIL_MECHANICAL_EQUIPMENT\" };\n IfcDiscreteAccessoryTypeEnum.SHOE = { type: 3, value: \"SHOE\" };\n IfcDiscreteAccessoryTypeEnum.SLIDINGCHAIR = { type: 3, value: \"SLIDINGCHAIR\" };\n IfcDiscreteAccessoryTypeEnum.SOUNDABSORPTION = { type: 3, value: \"SOUNDABSORPTION\" };\n IfcDiscreteAccessoryTypeEnum.TENSIONINGEQUIPMENT = { type: 3, value: \"TENSIONINGEQUIPMENT\" };\n IfcDiscreteAccessoryTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDiscreteAccessoryTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcDiscreteAccessoryTypeEnum = IfcDiscreteAccessoryTypeEnum;\n class IfcDistributionBoardTypeEnum {\n }\n IfcDistributionBoardTypeEnum.CONSUMERUNIT = { type: 3, value: \"CONSUMERUNIT\" };\n IfcDistributionBoardTypeEnum.DISPATCHINGBOARD = { type: 3, value: \"DISPATCHINGBOARD\" };\n IfcDistributionBoardTypeEnum.DISTRIBUTIONBOARD = { type: 3, value: \"DISTRIBUTIONBOARD\" };\n IfcDistributionBoardTypeEnum.DISTRIBUTIONFRAME = { type: 3, value: \"DISTRIBUTIONFRAME\" };\n IfcDistributionBoardTypeEnum.MOTORCONTROLCENTRE = { type: 3, value: \"MOTORCONTROLCENTRE\" };\n IfcDistributionBoardTypeEnum.SWITCHBOARD = { type: 3, value: \"SWITCHBOARD\" };\n IfcDistributionBoardTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDistributionBoardTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcDistributionBoardTypeEnum = IfcDistributionBoardTypeEnum;\n class IfcDistributionChamberElementTypeEnum {\n }\n IfcDistributionChamberElementTypeEnum.FORMEDDUCT = { type: 3, value: \"FORMEDDUCT\" };\n IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER = { type: 3, value: \"INSPECTIONCHAMBER\" };\n IfcDistributionChamberElementTypeEnum.INSPECTIONPIT = { type: 3, value: \"INSPECTIONPIT\" };\n IfcDistributionChamberElementTypeEnum.MANHOLE = { type: 3, value: \"MANHOLE\" };\n IfcDistributionChamberElementTypeEnum.METERCHAMBER = { type: 3, value: \"METERCHAMBER\" };\n IfcDistributionChamberElementTypeEnum.SUMP = { type: 3, value: \"SUMP\" };\n IfcDistributionChamberElementTypeEnum.TRENCH = { type: 3, value: \"TRENCH\" };\n IfcDistributionChamberElementTypeEnum.VALVECHAMBER = { type: 3, value: \"VALVECHAMBER\" };\n IfcDistributionChamberElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDistributionChamberElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcDistributionChamberElementTypeEnum = IfcDistributionChamberElementTypeEnum;\n class IfcDistributionPortTypeEnum {\n }\n IfcDistributionPortTypeEnum.CABLE = { type: 3, value: \"CABLE\" };\n IfcDistributionPortTypeEnum.CABLECARRIER = { type: 3, value: \"CABLECARRIER\" };\n IfcDistributionPortTypeEnum.DUCT = { type: 3, value: \"DUCT\" };\n IfcDistributionPortTypeEnum.PIPE = { type: 3, value: \"PIPE\" };\n IfcDistributionPortTypeEnum.WIRELESS = { type: 3, value: \"WIRELESS\" };\n IfcDistributionPortTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDistributionPortTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcDistributionPortTypeEnum = IfcDistributionPortTypeEnum;\n class IfcDistributionSystemEnum {\n }\n IfcDistributionSystemEnum.AIRCONDITIONING = { type: 3, value: \"AIRCONDITIONING\" };\n IfcDistributionSystemEnum.AUDIOVISUAL = { type: 3, value: \"AUDIOVISUAL\" };\n IfcDistributionSystemEnum.CATENARY_SYSTEM = { type: 3, value: \"CATENARY_SYSTEM\" };\n IfcDistributionSystemEnum.CHEMICAL = { type: 3, value: \"CHEMICAL\" };\n IfcDistributionSystemEnum.CHILLEDWATER = { type: 3, value: \"CHILLEDWATER\" };\n IfcDistributionSystemEnum.COMMUNICATION = { type: 3, value: \"COMMUNICATION\" };\n IfcDistributionSystemEnum.COMPRESSEDAIR = { type: 3, value: \"COMPRESSEDAIR\" };\n IfcDistributionSystemEnum.CONDENSERWATER = { type: 3, value: \"CONDENSERWATER\" };\n IfcDistributionSystemEnum.CONTROL = { type: 3, value: \"CONTROL\" };\n IfcDistributionSystemEnum.CONVEYING = { type: 3, value: \"CONVEYING\" };\n IfcDistributionSystemEnum.DATA = { type: 3, value: \"DATA\" };\n IfcDistributionSystemEnum.DISPOSAL = { type: 3, value: \"DISPOSAL\" };\n IfcDistributionSystemEnum.DOMESTICCOLDWATER = { type: 3, value: \"DOMESTICCOLDWATER\" };\n IfcDistributionSystemEnum.DOMESTICHOTWATER = { type: 3, value: \"DOMESTICHOTWATER\" };\n IfcDistributionSystemEnum.DRAINAGE = { type: 3, value: \"DRAINAGE\" };\n IfcDistributionSystemEnum.EARTHING = { type: 3, value: \"EARTHING\" };\n IfcDistributionSystemEnum.ELECTRICAL = { type: 3, value: \"ELECTRICAL\" };\n IfcDistributionSystemEnum.ELECTROACOUSTIC = { type: 3, value: \"ELECTROACOUSTIC\" };\n IfcDistributionSystemEnum.EXHAUST = { type: 3, value: \"EXHAUST\" };\n IfcDistributionSystemEnum.FIREPROTECTION = { type: 3, value: \"FIREPROTECTION\" };\n IfcDistributionSystemEnum.FIXEDTRANSMISSIONNETWORK = { type: 3, value: \"FIXEDTRANSMISSIONNETWORK\" };\n IfcDistributionSystemEnum.FUEL = { type: 3, value: \"FUEL\" };\n IfcDistributionSystemEnum.GAS = { type: 3, value: \"GAS\" };\n IfcDistributionSystemEnum.HAZARDOUS = { type: 3, value: \"HAZARDOUS\" };\n IfcDistributionSystemEnum.HEATING = { type: 3, value: \"HEATING\" };\n IfcDistributionSystemEnum.LIGHTING = { type: 3, value: \"LIGHTING\" };\n IfcDistributionSystemEnum.LIGHTNINGPROTECTION = { type: 3, value: \"LIGHTNINGPROTECTION\" };\n IfcDistributionSystemEnum.MOBILENETWORK = { type: 3, value: \"MOBILENETWORK\" };\n IfcDistributionSystemEnum.MONITORINGSYSTEM = { type: 3, value: \"MONITORINGSYSTEM\" };\n IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE = { type: 3, value: \"MUNICIPALSOLIDWASTE\" };\n IfcDistributionSystemEnum.OIL = { type: 3, value: \"OIL\" };\n IfcDistributionSystemEnum.OPERATIONAL = { type: 3, value: \"OPERATIONAL\" };\n IfcDistributionSystemEnum.OPERATIONALTELEPHONYSYSTEM = { type: 3, value: \"OPERATIONALTELEPHONYSYSTEM\" };\n IfcDistributionSystemEnum.OVERHEAD_CONTACTLINE_SYSTEM = { type: 3, value: \"OVERHEAD_CONTACTLINE_SYSTEM\" };\n IfcDistributionSystemEnum.POWERGENERATION = { type: 3, value: \"POWERGENERATION\" };\n IfcDistributionSystemEnum.RAINWATER = { type: 3, value: \"RAINWATER\" };\n IfcDistributionSystemEnum.REFRIGERATION = { type: 3, value: \"REFRIGERATION\" };\n IfcDistributionSystemEnum.RETURN_CIRCUIT = { type: 3, value: \"RETURN_CIRCUIT\" };\n IfcDistributionSystemEnum.SECURITY = { type: 3, value: \"SECURITY\" };\n IfcDistributionSystemEnum.SEWAGE = { type: 3, value: \"SEWAGE\" };\n IfcDistributionSystemEnum.SIGNAL = { type: 3, value: \"SIGNAL\" };\n IfcDistributionSystemEnum.STORMWATER = { type: 3, value: \"STORMWATER\" };\n IfcDistributionSystemEnum.TELEPHONE = { type: 3, value: \"TELEPHONE\" };\n IfcDistributionSystemEnum.TV = { type: 3, value: \"TV\" };\n IfcDistributionSystemEnum.VACUUM = { type: 3, value: \"VACUUM\" };\n IfcDistributionSystemEnum.VENT = { type: 3, value: \"VENT\" };\n IfcDistributionSystemEnum.VENTILATION = { type: 3, value: \"VENTILATION\" };\n IfcDistributionSystemEnum.WASTEWATER = { type: 3, value: \"WASTEWATER\" };\n IfcDistributionSystemEnum.WATERSUPPLY = { type: 3, value: \"WATERSUPPLY\" };\n IfcDistributionSystemEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDistributionSystemEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcDistributionSystemEnum = IfcDistributionSystemEnum;\n class IfcDocumentConfidentialityEnum {\n }\n IfcDocumentConfidentialityEnum.CONFIDENTIAL = { type: 3, value: \"CONFIDENTIAL\" };\n IfcDocumentConfidentialityEnum.PERSONAL = { type: 3, value: \"PERSONAL\" };\n IfcDocumentConfidentialityEnum.PUBLIC = { type: 3, value: \"PUBLIC\" };\n IfcDocumentConfidentialityEnum.RESTRICTED = { type: 3, value: \"RESTRICTED\" };\n IfcDocumentConfidentialityEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDocumentConfidentialityEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcDocumentConfidentialityEnum = IfcDocumentConfidentialityEnum;\n class IfcDocumentStatusEnum {\n }\n IfcDocumentStatusEnum.DRAFT = { type: 3, value: \"DRAFT\" };\n IfcDocumentStatusEnum.FINAL = { type: 3, value: \"FINAL\" };\n IfcDocumentStatusEnum.FINALDRAFT = { type: 3, value: \"FINALDRAFT\" };\n IfcDocumentStatusEnum.REVISION = { type: 3, value: \"REVISION\" };\n IfcDocumentStatusEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcDocumentStatusEnum = IfcDocumentStatusEnum;\n class IfcDoorPanelOperationEnum {\n }\n IfcDoorPanelOperationEnum.DOUBLE_ACTING = { type: 3, value: \"DOUBLE_ACTING\" };\n IfcDoorPanelOperationEnum.FIXEDPANEL = { type: 3, value: \"FIXEDPANEL\" };\n IfcDoorPanelOperationEnum.FOLDING = { type: 3, value: \"FOLDING\" };\n IfcDoorPanelOperationEnum.REVOLVING = { type: 3, value: \"REVOLVING\" };\n IfcDoorPanelOperationEnum.ROLLINGUP = { type: 3, value: \"ROLLINGUP\" };\n IfcDoorPanelOperationEnum.SLIDING = { type: 3, value: \"SLIDING\" };\n IfcDoorPanelOperationEnum.SWINGING = { type: 3, value: \"SWINGING\" };\n IfcDoorPanelOperationEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDoorPanelOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcDoorPanelOperationEnum = IfcDoorPanelOperationEnum;\n class IfcDoorPanelPositionEnum {\n }\n IfcDoorPanelPositionEnum.LEFT = { type: 3, value: \"LEFT\" };\n IfcDoorPanelPositionEnum.MIDDLE = { type: 3, value: \"MIDDLE\" };\n IfcDoorPanelPositionEnum.RIGHT = { type: 3, value: \"RIGHT\" };\n IfcDoorPanelPositionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcDoorPanelPositionEnum = IfcDoorPanelPositionEnum;\n class IfcDoorStyleConstructionEnum {\n }\n IfcDoorStyleConstructionEnum.ALUMINIUM = { type: 3, value: \"ALUMINIUM\" };\n IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC = { type: 3, value: \"ALUMINIUM_PLASTIC\" };\n IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: \"ALUMINIUM_WOOD\" };\n IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: \"HIGH_GRADE_STEEL\" };\n IfcDoorStyleConstructionEnum.PLASTIC = { type: 3, value: \"PLASTIC\" };\n IfcDoorStyleConstructionEnum.STEEL = { type: 3, value: \"STEEL\" };\n IfcDoorStyleConstructionEnum.WOOD = { type: 3, value: \"WOOD\" };\n IfcDoorStyleConstructionEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDoorStyleConstructionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcDoorStyleConstructionEnum = IfcDoorStyleConstructionEnum;\n class IfcDoorStyleOperationEnum {\n }\n IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: \"DOUBLE_DOOR_DOUBLE_SWING\" };\n IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: \"DOUBLE_DOOR_FOLDING\" };\n IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: \"DOUBLE_DOOR_SINGLE_SWING\" };\n IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: \"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT\" };\n IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: \"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT\" };\n IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: \"DOUBLE_DOOR_SLIDING\" };\n IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: \"DOUBLE_SWING_LEFT\" };\n IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: \"DOUBLE_SWING_RIGHT\" };\n IfcDoorStyleOperationEnum.FOLDING_TO_LEFT = { type: 3, value: \"FOLDING_TO_LEFT\" };\n IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: \"FOLDING_TO_RIGHT\" };\n IfcDoorStyleOperationEnum.REVOLVING = { type: 3, value: \"REVOLVING\" };\n IfcDoorStyleOperationEnum.ROLLINGUP = { type: 3, value: \"ROLLINGUP\" };\n IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: \"SINGLE_SWING_LEFT\" };\n IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: \"SINGLE_SWING_RIGHT\" };\n IfcDoorStyleOperationEnum.SLIDING_TO_LEFT = { type: 3, value: \"SLIDING_TO_LEFT\" };\n IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: \"SLIDING_TO_RIGHT\" };\n IfcDoorStyleOperationEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDoorStyleOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcDoorStyleOperationEnum = IfcDoorStyleOperationEnum;\n class IfcDoorTypeEnum {\n }\n IfcDoorTypeEnum.BOOM_BARRIER = { type: 3, value: \"BOOM_BARRIER\" };\n IfcDoorTypeEnum.DOOR = { type: 3, value: \"DOOR\" };\n IfcDoorTypeEnum.GATE = { type: 3, value: \"GATE\" };\n IfcDoorTypeEnum.TRAPDOOR = { type: 3, value: \"TRAPDOOR\" };\n IfcDoorTypeEnum.TURNSTILE = { type: 3, value: \"TURNSTILE\" };\n IfcDoorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDoorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcDoorTypeEnum = IfcDoorTypeEnum;\n class IfcDoorTypeOperationEnum {\n }\n IfcDoorTypeOperationEnum.DOUBLE_PANEL_DOUBLE_SWING = { type: 3, value: \"DOUBLE_PANEL_DOUBLE_SWING\" };\n IfcDoorTypeOperationEnum.DOUBLE_PANEL_FOLDING = { type: 3, value: \"DOUBLE_PANEL_FOLDING\" };\n IfcDoorTypeOperationEnum.DOUBLE_PANEL_LIFTING_VERTICAL = { type: 3, value: \"DOUBLE_PANEL_LIFTING_VERTICAL\" };\n IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING = { type: 3, value: \"DOUBLE_PANEL_SINGLE_SWING\" };\n IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: \"DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT\" };\n IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: \"DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT\" };\n IfcDoorTypeOperationEnum.DOUBLE_PANEL_SLIDING = { type: 3, value: \"DOUBLE_PANEL_SLIDING\" };\n IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: \"DOUBLE_SWING_LEFT\" };\n IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: \"DOUBLE_SWING_RIGHT\" };\n IfcDoorTypeOperationEnum.FOLDING_TO_LEFT = { type: 3, value: \"FOLDING_TO_LEFT\" };\n IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: \"FOLDING_TO_RIGHT\" };\n IfcDoorTypeOperationEnum.LIFTING_HORIZONTAL = { type: 3, value: \"LIFTING_HORIZONTAL\" };\n IfcDoorTypeOperationEnum.LIFTING_VERTICAL_LEFT = { type: 3, value: \"LIFTING_VERTICAL_LEFT\" };\n IfcDoorTypeOperationEnum.LIFTING_VERTICAL_RIGHT = { type: 3, value: \"LIFTING_VERTICAL_RIGHT\" };\n IfcDoorTypeOperationEnum.REVOLVING_HORIZONTAL = { type: 3, value: \"REVOLVING_HORIZONTAL\" };\n IfcDoorTypeOperationEnum.REVOLVING_VERTICAL = { type: 3, value: \"REVOLVING_VERTICAL\" };\n IfcDoorTypeOperationEnum.ROLLINGUP = { type: 3, value: \"ROLLINGUP\" };\n IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: \"SINGLE_SWING_LEFT\" };\n IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: \"SINGLE_SWING_RIGHT\" };\n IfcDoorTypeOperationEnum.SLIDING_TO_LEFT = { type: 3, value: \"SLIDING_TO_LEFT\" };\n IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: \"SLIDING_TO_RIGHT\" };\n IfcDoorTypeOperationEnum.SWING_FIXED_LEFT = { type: 3, value: \"SWING_FIXED_LEFT\" };\n IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT = { type: 3, value: \"SWING_FIXED_RIGHT\" };\n IfcDoorTypeOperationEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDoorTypeOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcDoorTypeOperationEnum = IfcDoorTypeOperationEnum;\n class IfcDuctFittingTypeEnum {\n }\n IfcDuctFittingTypeEnum.BEND = { type: 3, value: \"BEND\" };\n IfcDuctFittingTypeEnum.CONNECTOR = { type: 3, value: \"CONNECTOR\" };\n IfcDuctFittingTypeEnum.ENTRY = { type: 3, value: \"ENTRY\" };\n IfcDuctFittingTypeEnum.EXIT = { type: 3, value: \"EXIT\" };\n IfcDuctFittingTypeEnum.JUNCTION = { type: 3, value: \"JUNCTION\" };\n IfcDuctFittingTypeEnum.OBSTRUCTION = { type: 3, value: \"OBSTRUCTION\" };\n IfcDuctFittingTypeEnum.TRANSITION = { type: 3, value: \"TRANSITION\" };\n IfcDuctFittingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDuctFittingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcDuctFittingTypeEnum = IfcDuctFittingTypeEnum;\n class IfcDuctSegmentTypeEnum {\n }\n IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: \"FLEXIBLESEGMENT\" };\n IfcDuctSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: \"RIGIDSEGMENT\" };\n IfcDuctSegmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDuctSegmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcDuctSegmentTypeEnum = IfcDuctSegmentTypeEnum;\n class IfcDuctSilencerTypeEnum {\n }\n IfcDuctSilencerTypeEnum.FLATOVAL = { type: 3, value: \"FLATOVAL\" };\n IfcDuctSilencerTypeEnum.RECTANGULAR = { type: 3, value: \"RECTANGULAR\" };\n IfcDuctSilencerTypeEnum.ROUND = { type: 3, value: \"ROUND\" };\n IfcDuctSilencerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcDuctSilencerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcDuctSilencerTypeEnum = IfcDuctSilencerTypeEnum;\n class IfcEarthworksCutTypeEnum {\n }\n IfcEarthworksCutTypeEnum.BASE_EXCAVATION = { type: 3, value: \"BASE_EXCAVATION\" };\n IfcEarthworksCutTypeEnum.CUT = { type: 3, value: \"CUT\" };\n IfcEarthworksCutTypeEnum.DREDGING = { type: 3, value: \"DREDGING\" };\n IfcEarthworksCutTypeEnum.EXCAVATION = { type: 3, value: \"EXCAVATION\" };\n IfcEarthworksCutTypeEnum.OVEREXCAVATION = { type: 3, value: \"OVEREXCAVATION\" };\n IfcEarthworksCutTypeEnum.PAVEMENTMILLING = { type: 3, value: \"PAVEMENTMILLING\" };\n IfcEarthworksCutTypeEnum.STEPEXCAVATION = { type: 3, value: \"STEPEXCAVATION\" };\n IfcEarthworksCutTypeEnum.TOPSOILREMOVAL = { type: 3, value: \"TOPSOILREMOVAL\" };\n IfcEarthworksCutTypeEnum.TRENCH = { type: 3, value: \"TRENCH\" };\n IfcEarthworksCutTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcEarthworksCutTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcEarthworksCutTypeEnum = IfcEarthworksCutTypeEnum;\n class IfcEarthworksFillTypeEnum {\n }\n IfcEarthworksFillTypeEnum.BACKFILL = { type: 3, value: \"BACKFILL\" };\n IfcEarthworksFillTypeEnum.COUNTERWEIGHT = { type: 3, value: \"COUNTERWEIGHT\" };\n IfcEarthworksFillTypeEnum.EMBANKMENT = { type: 3, value: \"EMBANKMENT\" };\n IfcEarthworksFillTypeEnum.SLOPEFILL = { type: 3, value: \"SLOPEFILL\" };\n IfcEarthworksFillTypeEnum.SUBGRADE = { type: 3, value: \"SUBGRADE\" };\n IfcEarthworksFillTypeEnum.SUBGRADEBED = { type: 3, value: \"SUBGRADEBED\" };\n IfcEarthworksFillTypeEnum.TRANSITIONSECTION = { type: 3, value: \"TRANSITIONSECTION\" };\n IfcEarthworksFillTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcEarthworksFillTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcEarthworksFillTypeEnum = IfcEarthworksFillTypeEnum;\n class IfcElectricApplianceTypeEnum {\n }\n IfcElectricApplianceTypeEnum.DISHWASHER = { type: 3, value: \"DISHWASHER\" };\n IfcElectricApplianceTypeEnum.ELECTRICCOOKER = { type: 3, value: \"ELECTRICCOOKER\" };\n IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER = { type: 3, value: \"FREESTANDINGELECTRICHEATER\" };\n IfcElectricApplianceTypeEnum.FREESTANDINGFAN = { type: 3, value: \"FREESTANDINGFAN\" };\n IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER = { type: 3, value: \"FREESTANDINGWATERCOOLER\" };\n IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER = { type: 3, value: \"FREESTANDINGWATERHEATER\" };\n IfcElectricApplianceTypeEnum.FREEZER = { type: 3, value: \"FREEZER\" };\n IfcElectricApplianceTypeEnum.FRIDGE_FREEZER = { type: 3, value: \"FRIDGE_FREEZER\" };\n IfcElectricApplianceTypeEnum.HANDDRYER = { type: 3, value: \"HANDDRYER\" };\n IfcElectricApplianceTypeEnum.KITCHENMACHINE = { type: 3, value: \"KITCHENMACHINE\" };\n IfcElectricApplianceTypeEnum.MICROWAVE = { type: 3, value: \"MICROWAVE\" };\n IfcElectricApplianceTypeEnum.PHOTOCOPIER = { type: 3, value: \"PHOTOCOPIER\" };\n IfcElectricApplianceTypeEnum.REFRIGERATOR = { type: 3, value: \"REFRIGERATOR\" };\n IfcElectricApplianceTypeEnum.TUMBLEDRYER = { type: 3, value: \"TUMBLEDRYER\" };\n IfcElectricApplianceTypeEnum.VENDINGMACHINE = { type: 3, value: \"VENDINGMACHINE\" };\n IfcElectricApplianceTypeEnum.WASHINGMACHINE = { type: 3, value: \"WASHINGMACHINE\" };\n IfcElectricApplianceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcElectricApplianceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcElectricApplianceTypeEnum = IfcElectricApplianceTypeEnum;\n class IfcElectricDistributionBoardTypeEnum {\n }\n IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT = { type: 3, value: \"CONSUMERUNIT\" };\n IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD = { type: 3, value: \"DISTRIBUTIONBOARD\" };\n IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE = { type: 3, value: \"MOTORCONTROLCENTRE\" };\n IfcElectricDistributionBoardTypeEnum.SWITCHBOARD = { type: 3, value: \"SWITCHBOARD\" };\n IfcElectricDistributionBoardTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcElectricDistributionBoardTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcElectricDistributionBoardTypeEnum = IfcElectricDistributionBoardTypeEnum;\n class IfcElectricFlowStorageDeviceTypeEnum {\n }\n IfcElectricFlowStorageDeviceTypeEnum.BATTERY = { type: 3, value: \"BATTERY\" };\n IfcElectricFlowStorageDeviceTypeEnum.CAPACITOR = { type: 3, value: \"CAPACITOR\" };\n IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK = { type: 3, value: \"CAPACITORBANK\" };\n IfcElectricFlowStorageDeviceTypeEnum.COMPENSATOR = { type: 3, value: \"COMPENSATOR\" };\n IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER = { type: 3, value: \"HARMONICFILTER\" };\n IfcElectricFlowStorageDeviceTypeEnum.INDUCTOR = { type: 3, value: \"INDUCTOR\" };\n IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK = { type: 3, value: \"INDUCTORBANK\" };\n IfcElectricFlowStorageDeviceTypeEnum.RECHARGER = { type: 3, value: \"RECHARGER\" };\n IfcElectricFlowStorageDeviceTypeEnum.UPS = { type: 3, value: \"UPS\" };\n IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcElectricFlowStorageDeviceTypeEnum = IfcElectricFlowStorageDeviceTypeEnum;\n class IfcElectricFlowTreatmentDeviceTypeEnum {\n }\n IfcElectricFlowTreatmentDeviceTypeEnum.ELECTRONICFILTER = { type: 3, value: \"ELECTRONICFILTER\" };\n IfcElectricFlowTreatmentDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcElectricFlowTreatmentDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcElectricFlowTreatmentDeviceTypeEnum = IfcElectricFlowTreatmentDeviceTypeEnum;\n class IfcElectricGeneratorTypeEnum {\n }\n IfcElectricGeneratorTypeEnum.CHP = { type: 3, value: \"CHP\" };\n IfcElectricGeneratorTypeEnum.ENGINEGENERATOR = { type: 3, value: \"ENGINEGENERATOR\" };\n IfcElectricGeneratorTypeEnum.STANDALONE = { type: 3, value: \"STANDALONE\" };\n IfcElectricGeneratorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcElectricGeneratorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcElectricGeneratorTypeEnum = IfcElectricGeneratorTypeEnum;\n class IfcElectricMotorTypeEnum {\n }\n IfcElectricMotorTypeEnum.DC = { type: 3, value: \"DC\" };\n IfcElectricMotorTypeEnum.INDUCTION = { type: 3, value: \"INDUCTION\" };\n IfcElectricMotorTypeEnum.POLYPHASE = { type: 3, value: \"POLYPHASE\" };\n IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS = { type: 3, value: \"RELUCTANCESYNCHRONOUS\" };\n IfcElectricMotorTypeEnum.SYNCHRONOUS = { type: 3, value: \"SYNCHRONOUS\" };\n IfcElectricMotorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcElectricMotorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcElectricMotorTypeEnum = IfcElectricMotorTypeEnum;\n class IfcElectricTimeControlTypeEnum {\n }\n IfcElectricTimeControlTypeEnum.RELAY = { type: 3, value: \"RELAY\" };\n IfcElectricTimeControlTypeEnum.TIMECLOCK = { type: 3, value: \"TIMECLOCK\" };\n IfcElectricTimeControlTypeEnum.TIMEDELAY = { type: 3, value: \"TIMEDELAY\" };\n IfcElectricTimeControlTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcElectricTimeControlTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcElectricTimeControlTypeEnum = IfcElectricTimeControlTypeEnum;\n class IfcElementAssemblyTypeEnum {\n }\n IfcElementAssemblyTypeEnum.ABUTMENT = { type: 3, value: \"ABUTMENT\" };\n IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY = { type: 3, value: \"ACCESSORY_ASSEMBLY\" };\n IfcElementAssemblyTypeEnum.ARCH = { type: 3, value: \"ARCH\" };\n IfcElementAssemblyTypeEnum.BEAM_GRID = { type: 3, value: \"BEAM_GRID\" };\n IfcElementAssemblyTypeEnum.BRACED_FRAME = { type: 3, value: \"BRACED_FRAME\" };\n IfcElementAssemblyTypeEnum.CROSS_BRACING = { type: 3, value: \"CROSS_BRACING\" };\n IfcElementAssemblyTypeEnum.DECK = { type: 3, value: \"DECK\" };\n IfcElementAssemblyTypeEnum.DILATATIONPANEL = { type: 3, value: \"DILATATIONPANEL\" };\n IfcElementAssemblyTypeEnum.ENTRANCEWORKS = { type: 3, value: \"ENTRANCEWORKS\" };\n IfcElementAssemblyTypeEnum.GIRDER = { type: 3, value: \"GIRDER\" };\n IfcElementAssemblyTypeEnum.GRID = { type: 3, value: \"GRID\" };\n IfcElementAssemblyTypeEnum.MAST = { type: 3, value: \"MAST\" };\n IfcElementAssemblyTypeEnum.PIER = { type: 3, value: \"PIER\" };\n IfcElementAssemblyTypeEnum.PYLON = { type: 3, value: \"PYLON\" };\n IfcElementAssemblyTypeEnum.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY = { type: 3, value: \"RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY\" };\n IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT = { type: 3, value: \"REINFORCEMENT_UNIT\" };\n IfcElementAssemblyTypeEnum.RIGID_FRAME = { type: 3, value: \"RIGID_FRAME\" };\n IfcElementAssemblyTypeEnum.SHELTER = { type: 3, value: \"SHELTER\" };\n IfcElementAssemblyTypeEnum.SIGNALASSEMBLY = { type: 3, value: \"SIGNALASSEMBLY\" };\n IfcElementAssemblyTypeEnum.SLAB_FIELD = { type: 3, value: \"SLAB_FIELD\" };\n IfcElementAssemblyTypeEnum.SUMPBUSTER = { type: 3, value: \"SUMPBUSTER\" };\n IfcElementAssemblyTypeEnum.SUPPORTINGASSEMBLY = { type: 3, value: \"SUPPORTINGASSEMBLY\" };\n IfcElementAssemblyTypeEnum.SUSPENSIONASSEMBLY = { type: 3, value: \"SUSPENSIONASSEMBLY\" };\n IfcElementAssemblyTypeEnum.TRACKPANEL = { type: 3, value: \"TRACKPANEL\" };\n IfcElementAssemblyTypeEnum.TRACTION_SWITCHING_ASSEMBLY = { type: 3, value: \"TRACTION_SWITCHING_ASSEMBLY\" };\n IfcElementAssemblyTypeEnum.TRAFFIC_CALMING_DEVICE = { type: 3, value: \"TRAFFIC_CALMING_DEVICE\" };\n IfcElementAssemblyTypeEnum.TRUSS = { type: 3, value: \"TRUSS\" };\n IfcElementAssemblyTypeEnum.TURNOUTPANEL = { type: 3, value: \"TURNOUTPANEL\" };\n IfcElementAssemblyTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcElementAssemblyTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcElementAssemblyTypeEnum = IfcElementAssemblyTypeEnum;\n class IfcElementCompositionEnum {\n }\n IfcElementCompositionEnum.COMPLEX = { type: 3, value: \"COMPLEX\" };\n IfcElementCompositionEnum.ELEMENT = { type: 3, value: \"ELEMENT\" };\n IfcElementCompositionEnum.PARTIAL = { type: 3, value: \"PARTIAL\" };\n IFC4X32.IfcElementCompositionEnum = IfcElementCompositionEnum;\n class IfcEngineTypeEnum {\n }\n IfcEngineTypeEnum.EXTERNALCOMBUSTION = { type: 3, value: \"EXTERNALCOMBUSTION\" };\n IfcEngineTypeEnum.INTERNALCOMBUSTION = { type: 3, value: \"INTERNALCOMBUSTION\" };\n IfcEngineTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcEngineTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcEngineTypeEnum = IfcEngineTypeEnum;\n class IfcEvaporativeCoolerTypeEnum {\n }\n IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER = { type: 3, value: \"DIRECTEVAPORATIVEAIRWASHER\" };\n IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER = { type: 3, value: \"DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER\" };\n IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER = { type: 3, value: \"DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER\" };\n IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER = { type: 3, value: \"DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER\" };\n IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER = { type: 3, value: \"DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER\" };\n IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION = { type: 3, value: \"INDIRECTDIRECTCOMBINATION\" };\n IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER = { type: 3, value: \"INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER\" };\n IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER = { type: 3, value: \"INDIRECTEVAPORATIVEPACKAGEAIRCOOLER\" };\n IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL = { type: 3, value: \"INDIRECTEVAPORATIVEWETCOIL\" };\n IfcEvaporativeCoolerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcEvaporativeCoolerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcEvaporativeCoolerTypeEnum = IfcEvaporativeCoolerTypeEnum;\n class IfcEvaporatorTypeEnum {\n }\n IfcEvaporatorTypeEnum.DIRECTEXPANSION = { type: 3, value: \"DIRECTEXPANSION\" };\n IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE = { type: 3, value: \"DIRECTEXPANSIONBRAZEDPLATE\" };\n IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE = { type: 3, value: \"DIRECTEXPANSIONSHELLANDTUBE\" };\n IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE = { type: 3, value: \"DIRECTEXPANSIONTUBEINTUBE\" };\n IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE = { type: 3, value: \"FLOODEDSHELLANDTUBE\" };\n IfcEvaporatorTypeEnum.SHELLANDCOIL = { type: 3, value: \"SHELLANDCOIL\" };\n IfcEvaporatorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcEvaporatorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcEvaporatorTypeEnum = IfcEvaporatorTypeEnum;\n class IfcEventTriggerTypeEnum {\n }\n IfcEventTriggerTypeEnum.EVENTCOMPLEX = { type: 3, value: \"EVENTCOMPLEX\" };\n IfcEventTriggerTypeEnum.EVENTMESSAGE = { type: 3, value: \"EVENTMESSAGE\" };\n IfcEventTriggerTypeEnum.EVENTRULE = { type: 3, value: \"EVENTRULE\" };\n IfcEventTriggerTypeEnum.EVENTTIME = { type: 3, value: \"EVENTTIME\" };\n IfcEventTriggerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcEventTriggerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcEventTriggerTypeEnum = IfcEventTriggerTypeEnum;\n class IfcEventTypeEnum {\n }\n IfcEventTypeEnum.ENDEVENT = { type: 3, value: \"ENDEVENT\" };\n IfcEventTypeEnum.INTERMEDIATEEVENT = { type: 3, value: \"INTERMEDIATEEVENT\" };\n IfcEventTypeEnum.STARTEVENT = { type: 3, value: \"STARTEVENT\" };\n IfcEventTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcEventTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcEventTypeEnum = IfcEventTypeEnum;\n class IfcExternalSpatialElementTypeEnum {\n }\n IfcExternalSpatialElementTypeEnum.EXTERNAL = { type: 3, value: \"EXTERNAL\" };\n IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH = { type: 3, value: \"EXTERNAL_EARTH\" };\n IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE = { type: 3, value: \"EXTERNAL_FIRE\" };\n IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER = { type: 3, value: \"EXTERNAL_WATER\" };\n IfcExternalSpatialElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcExternalSpatialElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcExternalSpatialElementTypeEnum = IfcExternalSpatialElementTypeEnum;\n class IfcFacilityPartCommonTypeEnum {\n }\n IfcFacilityPartCommonTypeEnum.ABOVEGROUND = { type: 3, value: \"ABOVEGROUND\" };\n IfcFacilityPartCommonTypeEnum.BELOWGROUND = { type: 3, value: \"BELOWGROUND\" };\n IfcFacilityPartCommonTypeEnum.JUNCTION = { type: 3, value: \"JUNCTION\" };\n IfcFacilityPartCommonTypeEnum.LEVELCROSSING = { type: 3, value: \"LEVELCROSSING\" };\n IfcFacilityPartCommonTypeEnum.SEGMENT = { type: 3, value: \"SEGMENT\" };\n IfcFacilityPartCommonTypeEnum.SUBSTRUCTURE = { type: 3, value: \"SUBSTRUCTURE\" };\n IfcFacilityPartCommonTypeEnum.SUPERSTRUCTURE = { type: 3, value: \"SUPERSTRUCTURE\" };\n IfcFacilityPartCommonTypeEnum.TERMINAL = { type: 3, value: \"TERMINAL\" };\n IfcFacilityPartCommonTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcFacilityPartCommonTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcFacilityPartCommonTypeEnum = IfcFacilityPartCommonTypeEnum;\n class IfcFacilityUsageEnum {\n }\n IfcFacilityUsageEnum.LATERAL = { type: 3, value: \"LATERAL\" };\n IfcFacilityUsageEnum.LONGITUDINAL = { type: 3, value: \"LONGITUDINAL\" };\n IfcFacilityUsageEnum.REGION = { type: 3, value: \"REGION\" };\n IfcFacilityUsageEnum.VERTICAL = { type: 3, value: \"VERTICAL\" };\n IfcFacilityUsageEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcFacilityUsageEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcFacilityUsageEnum = IfcFacilityUsageEnum;\n class IfcFanTypeEnum {\n }\n IfcFanTypeEnum.CENTRIFUGALAIRFOIL = { type: 3, value: \"CENTRIFUGALAIRFOIL\" };\n IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED = { type: 3, value: \"CENTRIFUGALBACKWARDINCLINEDCURVED\" };\n IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED = { type: 3, value: \"CENTRIFUGALFORWARDCURVED\" };\n IfcFanTypeEnum.CENTRIFUGALRADIAL = { type: 3, value: \"CENTRIFUGALRADIAL\" };\n IfcFanTypeEnum.PROPELLORAXIAL = { type: 3, value: \"PROPELLORAXIAL\" };\n IfcFanTypeEnum.TUBEAXIAL = { type: 3, value: \"TUBEAXIAL\" };\n IfcFanTypeEnum.VANEAXIAL = { type: 3, value: \"VANEAXIAL\" };\n IfcFanTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcFanTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcFanTypeEnum = IfcFanTypeEnum;\n class IfcFastenerTypeEnum {\n }\n IfcFastenerTypeEnum.GLUE = { type: 3, value: \"GLUE\" };\n IfcFastenerTypeEnum.MORTAR = { type: 3, value: \"MORTAR\" };\n IfcFastenerTypeEnum.WELD = { type: 3, value: \"WELD\" };\n IfcFastenerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcFastenerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcFastenerTypeEnum = IfcFastenerTypeEnum;\n class IfcFilterTypeEnum {\n }\n IfcFilterTypeEnum.AIRPARTICLEFILTER = { type: 3, value: \"AIRPARTICLEFILTER\" };\n IfcFilterTypeEnum.COMPRESSEDAIRFILTER = { type: 3, value: \"COMPRESSEDAIRFILTER\" };\n IfcFilterTypeEnum.ODORFILTER = { type: 3, value: \"ODORFILTER\" };\n IfcFilterTypeEnum.OILFILTER = { type: 3, value: \"OILFILTER\" };\n IfcFilterTypeEnum.STRAINER = { type: 3, value: \"STRAINER\" };\n IfcFilterTypeEnum.WATERFILTER = { type: 3, value: \"WATERFILTER\" };\n IfcFilterTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcFilterTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcFilterTypeEnum = IfcFilterTypeEnum;\n class IfcFireSuppressionTerminalTypeEnum {\n }\n IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET = { type: 3, value: \"BREECHINGINLET\" };\n IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT = { type: 3, value: \"FIREHYDRANT\" };\n IfcFireSuppressionTerminalTypeEnum.FIREMONITOR = { type: 3, value: \"FIREMONITOR\" };\n IfcFireSuppressionTerminalTypeEnum.HOSEREEL = { type: 3, value: \"HOSEREEL\" };\n IfcFireSuppressionTerminalTypeEnum.SPRINKLER = { type: 3, value: \"SPRINKLER\" };\n IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR = { type: 3, value: \"SPRINKLERDEFLECTOR\" };\n IfcFireSuppressionTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcFireSuppressionTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcFireSuppressionTerminalTypeEnum = IfcFireSuppressionTerminalTypeEnum;\n class IfcFlowDirectionEnum {\n }\n IfcFlowDirectionEnum.SINK = { type: 3, value: \"SINK\" };\n IfcFlowDirectionEnum.SOURCE = { type: 3, value: \"SOURCE\" };\n IfcFlowDirectionEnum.SOURCEANDSINK = { type: 3, value: \"SOURCEANDSINK\" };\n IfcFlowDirectionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcFlowDirectionEnum = IfcFlowDirectionEnum;\n class IfcFlowInstrumentTypeEnum {\n }\n IfcFlowInstrumentTypeEnum.AMMETER = { type: 3, value: \"AMMETER\" };\n IfcFlowInstrumentTypeEnum.COMBINED = { type: 3, value: \"COMBINED\" };\n IfcFlowInstrumentTypeEnum.FREQUENCYMETER = { type: 3, value: \"FREQUENCYMETER\" };\n IfcFlowInstrumentTypeEnum.PHASEANGLEMETER = { type: 3, value: \"PHASEANGLEMETER\" };\n IfcFlowInstrumentTypeEnum.POWERFACTORMETER = { type: 3, value: \"POWERFACTORMETER\" };\n IfcFlowInstrumentTypeEnum.PRESSUREGAUGE = { type: 3, value: \"PRESSUREGAUGE\" };\n IfcFlowInstrumentTypeEnum.THERMOMETER = { type: 3, value: \"THERMOMETER\" };\n IfcFlowInstrumentTypeEnum.VOLTMETER = { type: 3, value: \"VOLTMETER\" };\n IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK = { type: 3, value: \"VOLTMETER_PEAK\" };\n IfcFlowInstrumentTypeEnum.VOLTMETER_RMS = { type: 3, value: \"VOLTMETER_RMS\" };\n IfcFlowInstrumentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcFlowInstrumentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcFlowInstrumentTypeEnum = IfcFlowInstrumentTypeEnum;\n class IfcFlowMeterTypeEnum {\n }\n IfcFlowMeterTypeEnum.ENERGYMETER = { type: 3, value: \"ENERGYMETER\" };\n IfcFlowMeterTypeEnum.GASMETER = { type: 3, value: \"GASMETER\" };\n IfcFlowMeterTypeEnum.OILMETER = { type: 3, value: \"OILMETER\" };\n IfcFlowMeterTypeEnum.WATERMETER = { type: 3, value: \"WATERMETER\" };\n IfcFlowMeterTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcFlowMeterTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcFlowMeterTypeEnum = IfcFlowMeterTypeEnum;\n class IfcFootingTypeEnum {\n }\n IfcFootingTypeEnum.CAISSON_FOUNDATION = { type: 3, value: \"CAISSON_FOUNDATION\" };\n IfcFootingTypeEnum.FOOTING_BEAM = { type: 3, value: \"FOOTING_BEAM\" };\n IfcFootingTypeEnum.PAD_FOOTING = { type: 3, value: \"PAD_FOOTING\" };\n IfcFootingTypeEnum.PILE_CAP = { type: 3, value: \"PILE_CAP\" };\n IfcFootingTypeEnum.STRIP_FOOTING = { type: 3, value: \"STRIP_FOOTING\" };\n IfcFootingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcFootingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcFootingTypeEnum = IfcFootingTypeEnum;\n class IfcFurnitureTypeEnum {\n }\n IfcFurnitureTypeEnum.BED = { type: 3, value: \"BED\" };\n IfcFurnitureTypeEnum.CHAIR = { type: 3, value: \"CHAIR\" };\n IfcFurnitureTypeEnum.DESK = { type: 3, value: \"DESK\" };\n IfcFurnitureTypeEnum.FILECABINET = { type: 3, value: \"FILECABINET\" };\n IfcFurnitureTypeEnum.SHELF = { type: 3, value: \"SHELF\" };\n IfcFurnitureTypeEnum.SOFA = { type: 3, value: \"SOFA\" };\n IfcFurnitureTypeEnum.TABLE = { type: 3, value: \"TABLE\" };\n IfcFurnitureTypeEnum.TECHNICALCABINET = { type: 3, value: \"TECHNICALCABINET\" };\n IfcFurnitureTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcFurnitureTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcFurnitureTypeEnum = IfcFurnitureTypeEnum;\n class IfcGeographicElementTypeEnum {\n }\n IfcGeographicElementTypeEnum.SOIL_BORING_POINT = { type: 3, value: \"SOIL_BORING_POINT\" };\n IfcGeographicElementTypeEnum.TERRAIN = { type: 3, value: \"TERRAIN\" };\n IfcGeographicElementTypeEnum.VEGETATION = { type: 3, value: \"VEGETATION\" };\n IfcGeographicElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcGeographicElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcGeographicElementTypeEnum = IfcGeographicElementTypeEnum;\n class IfcGeometricProjectionEnum {\n }\n IfcGeometricProjectionEnum.ELEVATION_VIEW = { type: 3, value: \"ELEVATION_VIEW\" };\n IfcGeometricProjectionEnum.GRAPH_VIEW = { type: 3, value: \"GRAPH_VIEW\" };\n IfcGeometricProjectionEnum.MODEL_VIEW = { type: 3, value: \"MODEL_VIEW\" };\n IfcGeometricProjectionEnum.PLAN_VIEW = { type: 3, value: \"PLAN_VIEW\" };\n IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW = { type: 3, value: \"REFLECTED_PLAN_VIEW\" };\n IfcGeometricProjectionEnum.SECTION_VIEW = { type: 3, value: \"SECTION_VIEW\" };\n IfcGeometricProjectionEnum.SKETCH_VIEW = { type: 3, value: \"SKETCH_VIEW\" };\n IfcGeometricProjectionEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcGeometricProjectionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcGeometricProjectionEnum = IfcGeometricProjectionEnum;\n class IfcGeotechnicalStratumTypeEnum {\n }\n IfcGeotechnicalStratumTypeEnum.SOLID = { type: 3, value: \"SOLID\" };\n IfcGeotechnicalStratumTypeEnum.VOID = { type: 3, value: \"VOID\" };\n IfcGeotechnicalStratumTypeEnum.WATER = { type: 3, value: \"WATER\" };\n IfcGeotechnicalStratumTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcGeotechnicalStratumTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcGeotechnicalStratumTypeEnum = IfcGeotechnicalStratumTypeEnum;\n class IfcGlobalOrLocalEnum {\n }\n IfcGlobalOrLocalEnum.GLOBAL_COORDS = { type: 3, value: \"GLOBAL_COORDS\" };\n IfcGlobalOrLocalEnum.LOCAL_COORDS = { type: 3, value: \"LOCAL_COORDS\" };\n IFC4X32.IfcGlobalOrLocalEnum = IfcGlobalOrLocalEnum;\n class IfcGridTypeEnum {\n }\n IfcGridTypeEnum.IRREGULAR = { type: 3, value: \"IRREGULAR\" };\n IfcGridTypeEnum.RADIAL = { type: 3, value: \"RADIAL\" };\n IfcGridTypeEnum.RECTANGULAR = { type: 3, value: \"RECTANGULAR\" };\n IfcGridTypeEnum.TRIANGULAR = { type: 3, value: \"TRIANGULAR\" };\n IfcGridTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcGridTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcGridTypeEnum = IfcGridTypeEnum;\n class IfcHeatExchangerTypeEnum {\n }\n IfcHeatExchangerTypeEnum.PLATE = { type: 3, value: \"PLATE\" };\n IfcHeatExchangerTypeEnum.SHELLANDTUBE = { type: 3, value: \"SHELLANDTUBE\" };\n IfcHeatExchangerTypeEnum.TURNOUTHEATING = { type: 3, value: \"TURNOUTHEATING\" };\n IfcHeatExchangerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcHeatExchangerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcHeatExchangerTypeEnum = IfcHeatExchangerTypeEnum;\n class IfcHumidifierTypeEnum {\n }\n IfcHumidifierTypeEnum.ADIABATICAIRWASHER = { type: 3, value: \"ADIABATICAIRWASHER\" };\n IfcHumidifierTypeEnum.ADIABATICATOMIZING = { type: 3, value: \"ADIABATICATOMIZING\" };\n IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE = { type: 3, value: \"ADIABATICCOMPRESSEDAIRNOZZLE\" };\n IfcHumidifierTypeEnum.ADIABATICPAN = { type: 3, value: \"ADIABATICPAN\" };\n IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA = { type: 3, value: \"ADIABATICRIGIDMEDIA\" };\n IfcHumidifierTypeEnum.ADIABATICULTRASONIC = { type: 3, value: \"ADIABATICULTRASONIC\" };\n IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT = { type: 3, value: \"ADIABATICWETTEDELEMENT\" };\n IfcHumidifierTypeEnum.ASSISTEDBUTANE = { type: 3, value: \"ASSISTEDBUTANE\" };\n IfcHumidifierTypeEnum.ASSISTEDELECTRIC = { type: 3, value: \"ASSISTEDELECTRIC\" };\n IfcHumidifierTypeEnum.ASSISTEDNATURALGAS = { type: 3, value: \"ASSISTEDNATURALGAS\" };\n IfcHumidifierTypeEnum.ASSISTEDPROPANE = { type: 3, value: \"ASSISTEDPROPANE\" };\n IfcHumidifierTypeEnum.ASSISTEDSTEAM = { type: 3, value: \"ASSISTEDSTEAM\" };\n IfcHumidifierTypeEnum.STEAMINJECTION = { type: 3, value: \"STEAMINJECTION\" };\n IfcHumidifierTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcHumidifierTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcHumidifierTypeEnum = IfcHumidifierTypeEnum;\n class IfcImpactProtectionDeviceTypeEnum {\n }\n IfcImpactProtectionDeviceTypeEnum.BUMPER = { type: 3, value: \"BUMPER\" };\n IfcImpactProtectionDeviceTypeEnum.CRASHCUSHION = { type: 3, value: \"CRASHCUSHION\" };\n IfcImpactProtectionDeviceTypeEnum.DAMPINGSYSTEM = { type: 3, value: \"DAMPINGSYSTEM\" };\n IfcImpactProtectionDeviceTypeEnum.FENDER = { type: 3, value: \"FENDER\" };\n IfcImpactProtectionDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcImpactProtectionDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcImpactProtectionDeviceTypeEnum = IfcImpactProtectionDeviceTypeEnum;\n class IfcInterceptorTypeEnum {\n }\n IfcInterceptorTypeEnum.CYCLONIC = { type: 3, value: \"CYCLONIC\" };\n IfcInterceptorTypeEnum.GREASE = { type: 3, value: \"GREASE\" };\n IfcInterceptorTypeEnum.OIL = { type: 3, value: \"OIL\" };\n IfcInterceptorTypeEnum.PETROL = { type: 3, value: \"PETROL\" };\n IfcInterceptorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcInterceptorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcInterceptorTypeEnum = IfcInterceptorTypeEnum;\n class IfcInternalOrExternalEnum {\n }\n IfcInternalOrExternalEnum.EXTERNAL = { type: 3, value: \"EXTERNAL\" };\n IfcInternalOrExternalEnum.EXTERNAL_EARTH = { type: 3, value: \"EXTERNAL_EARTH\" };\n IfcInternalOrExternalEnum.EXTERNAL_FIRE = { type: 3, value: \"EXTERNAL_FIRE\" };\n IfcInternalOrExternalEnum.EXTERNAL_WATER = { type: 3, value: \"EXTERNAL_WATER\" };\n IfcInternalOrExternalEnum.INTERNAL = { type: 3, value: \"INTERNAL\" };\n IfcInternalOrExternalEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcInternalOrExternalEnum = IfcInternalOrExternalEnum;\n class IfcInventoryTypeEnum {\n }\n IfcInventoryTypeEnum.ASSETINVENTORY = { type: 3, value: \"ASSETINVENTORY\" };\n IfcInventoryTypeEnum.FURNITUREINVENTORY = { type: 3, value: \"FURNITUREINVENTORY\" };\n IfcInventoryTypeEnum.SPACEINVENTORY = { type: 3, value: \"SPACEINVENTORY\" };\n IfcInventoryTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcInventoryTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcInventoryTypeEnum = IfcInventoryTypeEnum;\n class IfcJunctionBoxTypeEnum {\n }\n IfcJunctionBoxTypeEnum.DATA = { type: 3, value: \"DATA\" };\n IfcJunctionBoxTypeEnum.POWER = { type: 3, value: \"POWER\" };\n IfcJunctionBoxTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcJunctionBoxTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcJunctionBoxTypeEnum = IfcJunctionBoxTypeEnum;\n class IfcKnotType {\n }\n IfcKnotType.PIECEWISE_BEZIER_KNOTS = { type: 3, value: \"PIECEWISE_BEZIER_KNOTS\" };\n IfcKnotType.QUASI_UNIFORM_KNOTS = { type: 3, value: \"QUASI_UNIFORM_KNOTS\" };\n IfcKnotType.UNIFORM_KNOTS = { type: 3, value: \"UNIFORM_KNOTS\" };\n IfcKnotType.UNSPECIFIED = { type: 3, value: \"UNSPECIFIED\" };\n IFC4X32.IfcKnotType = IfcKnotType;\n class IfcLaborResourceTypeEnum {\n }\n IfcLaborResourceTypeEnum.ADMINISTRATION = { type: 3, value: \"ADMINISTRATION\" };\n IfcLaborResourceTypeEnum.CARPENTRY = { type: 3, value: \"CARPENTRY\" };\n IfcLaborResourceTypeEnum.CLEANING = { type: 3, value: \"CLEANING\" };\n IfcLaborResourceTypeEnum.CONCRETE = { type: 3, value: \"CONCRETE\" };\n IfcLaborResourceTypeEnum.DRYWALL = { type: 3, value: \"DRYWALL\" };\n IfcLaborResourceTypeEnum.ELECTRIC = { type: 3, value: \"ELECTRIC\" };\n IfcLaborResourceTypeEnum.FINISHING = { type: 3, value: \"FINISHING\" };\n IfcLaborResourceTypeEnum.FLOORING = { type: 3, value: \"FLOORING\" };\n IfcLaborResourceTypeEnum.GENERAL = { type: 3, value: \"GENERAL\" };\n IfcLaborResourceTypeEnum.HVAC = { type: 3, value: \"HVAC\" };\n IfcLaborResourceTypeEnum.LANDSCAPING = { type: 3, value: \"LANDSCAPING\" };\n IfcLaborResourceTypeEnum.MASONRY = { type: 3, value: \"MASONRY\" };\n IfcLaborResourceTypeEnum.PAINTING = { type: 3, value: \"PAINTING\" };\n IfcLaborResourceTypeEnum.PAVING = { type: 3, value: \"PAVING\" };\n IfcLaborResourceTypeEnum.PLUMBING = { type: 3, value: \"PLUMBING\" };\n IfcLaborResourceTypeEnum.ROOFING = { type: 3, value: \"ROOFING\" };\n IfcLaborResourceTypeEnum.SITEGRADING = { type: 3, value: \"SITEGRADING\" };\n IfcLaborResourceTypeEnum.STEELWORK = { type: 3, value: \"STEELWORK\" };\n IfcLaborResourceTypeEnum.SURVEYING = { type: 3, value: \"SURVEYING\" };\n IfcLaborResourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcLaborResourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcLaborResourceTypeEnum = IfcLaborResourceTypeEnum;\n class IfcLampTypeEnum {\n }\n IfcLampTypeEnum.COMPACTFLUORESCENT = { type: 3, value: \"COMPACTFLUORESCENT\" };\n IfcLampTypeEnum.FLUORESCENT = { type: 3, value: \"FLUORESCENT\" };\n IfcLampTypeEnum.HALOGEN = { type: 3, value: \"HALOGEN\" };\n IfcLampTypeEnum.HIGHPRESSUREMERCURY = { type: 3, value: \"HIGHPRESSUREMERCURY\" };\n IfcLampTypeEnum.HIGHPRESSURESODIUM = { type: 3, value: \"HIGHPRESSURESODIUM\" };\n IfcLampTypeEnum.LED = { type: 3, value: \"LED\" };\n IfcLampTypeEnum.METALHALIDE = { type: 3, value: \"METALHALIDE\" };\n IfcLampTypeEnum.OLED = { type: 3, value: \"OLED\" };\n IfcLampTypeEnum.TUNGSTENFILAMENT = { type: 3, value: \"TUNGSTENFILAMENT\" };\n IfcLampTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcLampTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcLampTypeEnum = IfcLampTypeEnum;\n class IfcLayerSetDirectionEnum {\n }\n IfcLayerSetDirectionEnum.AXIS1 = { type: 3, value: \"AXIS1\" };\n IfcLayerSetDirectionEnum.AXIS2 = { type: 3, value: \"AXIS2\" };\n IfcLayerSetDirectionEnum.AXIS3 = { type: 3, value: \"AXIS3\" };\n IFC4X32.IfcLayerSetDirectionEnum = IfcLayerSetDirectionEnum;\n class IfcLightDistributionCurveEnum {\n }\n IfcLightDistributionCurveEnum.TYPE_A = { type: 3, value: \"TYPE_A\" };\n IfcLightDistributionCurveEnum.TYPE_B = { type: 3, value: \"TYPE_B\" };\n IfcLightDistributionCurveEnum.TYPE_C = { type: 3, value: \"TYPE_C\" };\n IfcLightDistributionCurveEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcLightDistributionCurveEnum = IfcLightDistributionCurveEnum;\n class IfcLightEmissionSourceEnum {\n }\n IfcLightEmissionSourceEnum.COMPACTFLUORESCENT = { type: 3, value: \"COMPACTFLUORESCENT\" };\n IfcLightEmissionSourceEnum.FLUORESCENT = { type: 3, value: \"FLUORESCENT\" };\n IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY = { type: 3, value: \"HIGHPRESSUREMERCURY\" };\n IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM = { type: 3, value: \"HIGHPRESSURESODIUM\" };\n IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE = { type: 3, value: \"LIGHTEMITTINGDIODE\" };\n IfcLightEmissionSourceEnum.LOWPRESSURESODIUM = { type: 3, value: \"LOWPRESSURESODIUM\" };\n IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN = { type: 3, value: \"LOWVOLTAGEHALOGEN\" };\n IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN = { type: 3, value: \"MAINVOLTAGEHALOGEN\" };\n IfcLightEmissionSourceEnum.METALHALIDE = { type: 3, value: \"METALHALIDE\" };\n IfcLightEmissionSourceEnum.TUNGSTENFILAMENT = { type: 3, value: \"TUNGSTENFILAMENT\" };\n IfcLightEmissionSourceEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcLightEmissionSourceEnum = IfcLightEmissionSourceEnum;\n class IfcLightFixtureTypeEnum {\n }\n IfcLightFixtureTypeEnum.DIRECTIONSOURCE = { type: 3, value: \"DIRECTIONSOURCE\" };\n IfcLightFixtureTypeEnum.POINTSOURCE = { type: 3, value: \"POINTSOURCE\" };\n IfcLightFixtureTypeEnum.SECURITYLIGHTING = { type: 3, value: \"SECURITYLIGHTING\" };\n IfcLightFixtureTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcLightFixtureTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcLightFixtureTypeEnum = IfcLightFixtureTypeEnum;\n class IfcLiquidTerminalTypeEnum {\n }\n IfcLiquidTerminalTypeEnum.HOSEREEL = { type: 3, value: \"HOSEREEL\" };\n IfcLiquidTerminalTypeEnum.LOADINGARM = { type: 3, value: \"LOADINGARM\" };\n IfcLiquidTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcLiquidTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcLiquidTerminalTypeEnum = IfcLiquidTerminalTypeEnum;\n class IfcLoadGroupTypeEnum {\n }\n IfcLoadGroupTypeEnum.LOAD_CASE = { type: 3, value: \"LOAD_CASE\" };\n IfcLoadGroupTypeEnum.LOAD_COMBINATION = { type: 3, value: \"LOAD_COMBINATION\" };\n IfcLoadGroupTypeEnum.LOAD_GROUP = { type: 3, value: \"LOAD_GROUP\" };\n IfcLoadGroupTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcLoadGroupTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcLoadGroupTypeEnum = IfcLoadGroupTypeEnum;\n class IfcLogicalOperatorEnum {\n }\n IfcLogicalOperatorEnum.LOGICALAND = { type: 3, value: \"LOGICALAND\" };\n IfcLogicalOperatorEnum.LOGICALNOTAND = { type: 3, value: \"LOGICALNOTAND\" };\n IfcLogicalOperatorEnum.LOGICALNOTOR = { type: 3, value: \"LOGICALNOTOR\" };\n IfcLogicalOperatorEnum.LOGICALOR = { type: 3, value: \"LOGICALOR\" };\n IfcLogicalOperatorEnum.LOGICALXOR = { type: 3, value: \"LOGICALXOR\" };\n IFC4X32.IfcLogicalOperatorEnum = IfcLogicalOperatorEnum;\n class IfcMarineFacilityTypeEnum {\n }\n IfcMarineFacilityTypeEnum.BARRIERBEACH = { type: 3, value: \"BARRIERBEACH\" };\n IfcMarineFacilityTypeEnum.BREAKWATER = { type: 3, value: \"BREAKWATER\" };\n IfcMarineFacilityTypeEnum.CANAL = { type: 3, value: \"CANAL\" };\n IfcMarineFacilityTypeEnum.DRYDOCK = { type: 3, value: \"DRYDOCK\" };\n IfcMarineFacilityTypeEnum.FLOATINGDOCK = { type: 3, value: \"FLOATINGDOCK\" };\n IfcMarineFacilityTypeEnum.HYDROLIFT = { type: 3, value: \"HYDROLIFT\" };\n IfcMarineFacilityTypeEnum.JETTY = { type: 3, value: \"JETTY\" };\n IfcMarineFacilityTypeEnum.LAUNCHRECOVERY = { type: 3, value: \"LAUNCHRECOVERY\" };\n IfcMarineFacilityTypeEnum.MARINEDEFENCE = { type: 3, value: \"MARINEDEFENCE\" };\n IfcMarineFacilityTypeEnum.NAVIGATIONALCHANNEL = { type: 3, value: \"NAVIGATIONALCHANNEL\" };\n IfcMarineFacilityTypeEnum.PORT = { type: 3, value: \"PORT\" };\n IfcMarineFacilityTypeEnum.QUAY = { type: 3, value: \"QUAY\" };\n IfcMarineFacilityTypeEnum.REVETMENT = { type: 3, value: \"REVETMENT\" };\n IfcMarineFacilityTypeEnum.SHIPLIFT = { type: 3, value: \"SHIPLIFT\" };\n IfcMarineFacilityTypeEnum.SHIPLOCK = { type: 3, value: \"SHIPLOCK\" };\n IfcMarineFacilityTypeEnum.SHIPYARD = { type: 3, value: \"SHIPYARD\" };\n IfcMarineFacilityTypeEnum.SLIPWAY = { type: 3, value: \"SLIPWAY\" };\n IfcMarineFacilityTypeEnum.WATERWAY = { type: 3, value: \"WATERWAY\" };\n IfcMarineFacilityTypeEnum.WATERWAYSHIPLIFT = { type: 3, value: \"WATERWAYSHIPLIFT\" };\n IfcMarineFacilityTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcMarineFacilityTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcMarineFacilityTypeEnum = IfcMarineFacilityTypeEnum;\n class IfcMarinePartTypeEnum {\n }\n IfcMarinePartTypeEnum.ABOVEWATERLINE = { type: 3, value: \"ABOVEWATERLINE\" };\n IfcMarinePartTypeEnum.ANCHORAGE = { type: 3, value: \"ANCHORAGE\" };\n IfcMarinePartTypeEnum.APPROACHCHANNEL = { type: 3, value: \"APPROACHCHANNEL\" };\n IfcMarinePartTypeEnum.BELOWWATERLINE = { type: 3, value: \"BELOWWATERLINE\" };\n IfcMarinePartTypeEnum.BERTHINGSTRUCTURE = { type: 3, value: \"BERTHINGSTRUCTURE\" };\n IfcMarinePartTypeEnum.CHAMBER = { type: 3, value: \"CHAMBER\" };\n IfcMarinePartTypeEnum.CILL_LEVEL = { type: 3, value: \"CILL_LEVEL\" };\n IfcMarinePartTypeEnum.COPELEVEL = { type: 3, value: \"COPELEVEL\" };\n IfcMarinePartTypeEnum.CORE = { type: 3, value: \"CORE\" };\n IfcMarinePartTypeEnum.CREST = { type: 3, value: \"CREST\" };\n IfcMarinePartTypeEnum.GATEHEAD = { type: 3, value: \"GATEHEAD\" };\n IfcMarinePartTypeEnum.GUDINGSTRUCTURE = { type: 3, value: \"GUDINGSTRUCTURE\" };\n IfcMarinePartTypeEnum.HIGHWATERLINE = { type: 3, value: \"HIGHWATERLINE\" };\n IfcMarinePartTypeEnum.LANDFIELD = { type: 3, value: \"LANDFIELD\" };\n IfcMarinePartTypeEnum.LEEWARDSIDE = { type: 3, value: \"LEEWARDSIDE\" };\n IfcMarinePartTypeEnum.LOWWATERLINE = { type: 3, value: \"LOWWATERLINE\" };\n IfcMarinePartTypeEnum.MANUFACTURING = { type: 3, value: \"MANUFACTURING\" };\n IfcMarinePartTypeEnum.NAVIGATIONALAREA = { type: 3, value: \"NAVIGATIONALAREA\" };\n IfcMarinePartTypeEnum.PROTECTION = { type: 3, value: \"PROTECTION\" };\n IfcMarinePartTypeEnum.SHIPTRANSFER = { type: 3, value: \"SHIPTRANSFER\" };\n IfcMarinePartTypeEnum.STORAGEAREA = { type: 3, value: \"STORAGEAREA\" };\n IfcMarinePartTypeEnum.VEHICLESERVICING = { type: 3, value: \"VEHICLESERVICING\" };\n IfcMarinePartTypeEnum.WATERFIELD = { type: 3, value: \"WATERFIELD\" };\n IfcMarinePartTypeEnum.WEATHERSIDE = { type: 3, value: \"WEATHERSIDE\" };\n IfcMarinePartTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcMarinePartTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcMarinePartTypeEnum = IfcMarinePartTypeEnum;\n class IfcMechanicalFastenerTypeEnum {\n }\n IfcMechanicalFastenerTypeEnum.ANCHORBOLT = { type: 3, value: \"ANCHORBOLT\" };\n IfcMechanicalFastenerTypeEnum.BOLT = { type: 3, value: \"BOLT\" };\n IfcMechanicalFastenerTypeEnum.CHAIN = { type: 3, value: \"CHAIN\" };\n IfcMechanicalFastenerTypeEnum.COUPLER = { type: 3, value: \"COUPLER\" };\n IfcMechanicalFastenerTypeEnum.DOWEL = { type: 3, value: \"DOWEL\" };\n IfcMechanicalFastenerTypeEnum.NAIL = { type: 3, value: \"NAIL\" };\n IfcMechanicalFastenerTypeEnum.NAILPLATE = { type: 3, value: \"NAILPLATE\" };\n IfcMechanicalFastenerTypeEnum.RAILFASTENING = { type: 3, value: \"RAILFASTENING\" };\n IfcMechanicalFastenerTypeEnum.RAILJOINT = { type: 3, value: \"RAILJOINT\" };\n IfcMechanicalFastenerTypeEnum.RIVET = { type: 3, value: \"RIVET\" };\n IfcMechanicalFastenerTypeEnum.ROPE = { type: 3, value: \"ROPE\" };\n IfcMechanicalFastenerTypeEnum.SCREW = { type: 3, value: \"SCREW\" };\n IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR = { type: 3, value: \"SHEARCONNECTOR\" };\n IfcMechanicalFastenerTypeEnum.STAPLE = { type: 3, value: \"STAPLE\" };\n IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR = { type: 3, value: \"STUDSHEARCONNECTOR\" };\n IfcMechanicalFastenerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcMechanicalFastenerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcMechanicalFastenerTypeEnum = IfcMechanicalFastenerTypeEnum;\n class IfcMedicalDeviceTypeEnum {\n }\n IfcMedicalDeviceTypeEnum.AIRSTATION = { type: 3, value: \"AIRSTATION\" };\n IfcMedicalDeviceTypeEnum.FEEDAIRUNIT = { type: 3, value: \"FEEDAIRUNIT\" };\n IfcMedicalDeviceTypeEnum.OXYGENGENERATOR = { type: 3, value: \"OXYGENGENERATOR\" };\n IfcMedicalDeviceTypeEnum.OXYGENPLANT = { type: 3, value: \"OXYGENPLANT\" };\n IfcMedicalDeviceTypeEnum.VACUUMSTATION = { type: 3, value: \"VACUUMSTATION\" };\n IfcMedicalDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcMedicalDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcMedicalDeviceTypeEnum = IfcMedicalDeviceTypeEnum;\n class IfcMemberTypeEnum {\n }\n IfcMemberTypeEnum.ARCH_SEGMENT = { type: 3, value: \"ARCH_SEGMENT\" };\n IfcMemberTypeEnum.BRACE = { type: 3, value: \"BRACE\" };\n IfcMemberTypeEnum.CHORD = { type: 3, value: \"CHORD\" };\n IfcMemberTypeEnum.COLLAR = { type: 3, value: \"COLLAR\" };\n IfcMemberTypeEnum.MEMBER = { type: 3, value: \"MEMBER\" };\n IfcMemberTypeEnum.MULLION = { type: 3, value: \"MULLION\" };\n IfcMemberTypeEnum.PLATE = { type: 3, value: \"PLATE\" };\n IfcMemberTypeEnum.POST = { type: 3, value: \"POST\" };\n IfcMemberTypeEnum.PURLIN = { type: 3, value: \"PURLIN\" };\n IfcMemberTypeEnum.RAFTER = { type: 3, value: \"RAFTER\" };\n IfcMemberTypeEnum.STAY_CABLE = { type: 3, value: \"STAY_CABLE\" };\n IfcMemberTypeEnum.STIFFENING_RIB = { type: 3, value: \"STIFFENING_RIB\" };\n IfcMemberTypeEnum.STRINGER = { type: 3, value: \"STRINGER\" };\n IfcMemberTypeEnum.STRUCTURALCABLE = { type: 3, value: \"STRUCTURALCABLE\" };\n IfcMemberTypeEnum.STRUT = { type: 3, value: \"STRUT\" };\n IfcMemberTypeEnum.STUD = { type: 3, value: \"STUD\" };\n IfcMemberTypeEnum.SUSPENDER = { type: 3, value: \"SUSPENDER\" };\n IfcMemberTypeEnum.SUSPENSION_CABLE = { type: 3, value: \"SUSPENSION_CABLE\" };\n IfcMemberTypeEnum.TIEBAR = { type: 3, value: \"TIEBAR\" };\n IfcMemberTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcMemberTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcMemberTypeEnum = IfcMemberTypeEnum;\n class IfcMobileTelecommunicationsApplianceTypeEnum {\n }\n IfcMobileTelecommunicationsApplianceTypeEnum.ACCESSPOINT = { type: 3, value: \"ACCESSPOINT\" };\n IfcMobileTelecommunicationsApplianceTypeEnum.BASEBANDUNIT = { type: 3, value: \"BASEBANDUNIT\" };\n IfcMobileTelecommunicationsApplianceTypeEnum.BASETRANSCEIVERSTATION = { type: 3, value: \"BASETRANSCEIVERSTATION\" };\n IfcMobileTelecommunicationsApplianceTypeEnum.E_UTRAN_NODE_B = { type: 3, value: \"E_UTRAN_NODE_B\" };\n IfcMobileTelecommunicationsApplianceTypeEnum.GATEWAY_GPRS_SUPPORT_NODE = { type: 3, value: \"GATEWAY_GPRS_SUPPORT_NODE\" };\n IfcMobileTelecommunicationsApplianceTypeEnum.MASTERUNIT = { type: 3, value: \"MASTERUNIT\" };\n IfcMobileTelecommunicationsApplianceTypeEnum.MOBILESWITCHINGCENTER = { type: 3, value: \"MOBILESWITCHINGCENTER\" };\n IfcMobileTelecommunicationsApplianceTypeEnum.MSCSERVER = { type: 3, value: \"MSCSERVER\" };\n IfcMobileTelecommunicationsApplianceTypeEnum.PACKETCONTROLUNIT = { type: 3, value: \"PACKETCONTROLUNIT\" };\n IfcMobileTelecommunicationsApplianceTypeEnum.REMOTERADIOUNIT = { type: 3, value: \"REMOTERADIOUNIT\" };\n IfcMobileTelecommunicationsApplianceTypeEnum.REMOTEUNIT = { type: 3, value: \"REMOTEUNIT\" };\n IfcMobileTelecommunicationsApplianceTypeEnum.SERVICE_GPRS_SUPPORT_NODE = { type: 3, value: \"SERVICE_GPRS_SUPPORT_NODE\" };\n IfcMobileTelecommunicationsApplianceTypeEnum.SUBSCRIBERSERVER = { type: 3, value: \"SUBSCRIBERSERVER\" };\n IfcMobileTelecommunicationsApplianceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcMobileTelecommunicationsApplianceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcMobileTelecommunicationsApplianceTypeEnum = IfcMobileTelecommunicationsApplianceTypeEnum;\n class IfcMooringDeviceTypeEnum {\n }\n IfcMooringDeviceTypeEnum.BOLLARD = { type: 3, value: \"BOLLARD\" };\n IfcMooringDeviceTypeEnum.LINETENSIONER = { type: 3, value: \"LINETENSIONER\" };\n IfcMooringDeviceTypeEnum.MAGNETICDEVICE = { type: 3, value: \"MAGNETICDEVICE\" };\n IfcMooringDeviceTypeEnum.MOORINGHOOKS = { type: 3, value: \"MOORINGHOOKS\" };\n IfcMooringDeviceTypeEnum.VACUUMDEVICE = { type: 3, value: \"VACUUMDEVICE\" };\n IfcMooringDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcMooringDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcMooringDeviceTypeEnum = IfcMooringDeviceTypeEnum;\n class IfcMotorConnectionTypeEnum {\n }\n IfcMotorConnectionTypeEnum.BELTDRIVE = { type: 3, value: \"BELTDRIVE\" };\n IfcMotorConnectionTypeEnum.COUPLING = { type: 3, value: \"COUPLING\" };\n IfcMotorConnectionTypeEnum.DIRECTDRIVE = { type: 3, value: \"DIRECTDRIVE\" };\n IfcMotorConnectionTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcMotorConnectionTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcMotorConnectionTypeEnum = IfcMotorConnectionTypeEnum;\n class IfcNavigationElementTypeEnum {\n }\n IfcNavigationElementTypeEnum.BEACON = { type: 3, value: \"BEACON\" };\n IfcNavigationElementTypeEnum.BUOY = { type: 3, value: \"BUOY\" };\n IfcNavigationElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcNavigationElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcNavigationElementTypeEnum = IfcNavigationElementTypeEnum;\n class IfcObjectTypeEnum {\n }\n IfcObjectTypeEnum.ACTOR = { type: 3, value: \"ACTOR\" };\n IfcObjectTypeEnum.CONTROL = { type: 3, value: \"CONTROL\" };\n IfcObjectTypeEnum.GROUP = { type: 3, value: \"GROUP\" };\n IfcObjectTypeEnum.PROCESS = { type: 3, value: \"PROCESS\" };\n IfcObjectTypeEnum.PRODUCT = { type: 3, value: \"PRODUCT\" };\n IfcObjectTypeEnum.PROJECT = { type: 3, value: \"PROJECT\" };\n IfcObjectTypeEnum.RESOURCE = { type: 3, value: \"RESOURCE\" };\n IfcObjectTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcObjectTypeEnum = IfcObjectTypeEnum;\n class IfcObjectiveEnum {\n }\n IfcObjectiveEnum.CODECOMPLIANCE = { type: 3, value: \"CODECOMPLIANCE\" };\n IfcObjectiveEnum.CODEWAIVER = { type: 3, value: \"CODEWAIVER\" };\n IfcObjectiveEnum.DESIGNINTENT = { type: 3, value: \"DESIGNINTENT\" };\n IfcObjectiveEnum.EXTERNAL = { type: 3, value: \"EXTERNAL\" };\n IfcObjectiveEnum.HEALTHANDSAFETY = { type: 3, value: \"HEALTHANDSAFETY\" };\n IfcObjectiveEnum.MERGECONFLICT = { type: 3, value: \"MERGECONFLICT\" };\n IfcObjectiveEnum.MODELVIEW = { type: 3, value: \"MODELVIEW\" };\n IfcObjectiveEnum.PARAMETER = { type: 3, value: \"PARAMETER\" };\n IfcObjectiveEnum.REQUIREMENT = { type: 3, value: \"REQUIREMENT\" };\n IfcObjectiveEnum.SPECIFICATION = { type: 3, value: \"SPECIFICATION\" };\n IfcObjectiveEnum.TRIGGERCONDITION = { type: 3, value: \"TRIGGERCONDITION\" };\n IfcObjectiveEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcObjectiveEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcObjectiveEnum = IfcObjectiveEnum;\n class IfcOccupantTypeEnum {\n }\n IfcOccupantTypeEnum.ASSIGNEE = { type: 3, value: \"ASSIGNEE\" };\n IfcOccupantTypeEnum.ASSIGNOR = { type: 3, value: \"ASSIGNOR\" };\n IfcOccupantTypeEnum.LESSEE = { type: 3, value: \"LESSEE\" };\n IfcOccupantTypeEnum.LESSOR = { type: 3, value: \"LESSOR\" };\n IfcOccupantTypeEnum.LETTINGAGENT = { type: 3, value: \"LETTINGAGENT\" };\n IfcOccupantTypeEnum.OWNER = { type: 3, value: \"OWNER\" };\n IfcOccupantTypeEnum.TENANT = { type: 3, value: \"TENANT\" };\n IfcOccupantTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcOccupantTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcOccupantTypeEnum = IfcOccupantTypeEnum;\n class IfcOpeningElementTypeEnum {\n }\n IfcOpeningElementTypeEnum.OPENING = { type: 3, value: \"OPENING\" };\n IfcOpeningElementTypeEnum.RECESS = { type: 3, value: \"RECESS\" };\n IfcOpeningElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcOpeningElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcOpeningElementTypeEnum = IfcOpeningElementTypeEnum;\n class IfcOutletTypeEnum {\n }\n IfcOutletTypeEnum.AUDIOVISUALOUTLET = { type: 3, value: \"AUDIOVISUALOUTLET\" };\n IfcOutletTypeEnum.COMMUNICATIONSOUTLET = { type: 3, value: \"COMMUNICATIONSOUTLET\" };\n IfcOutletTypeEnum.DATAOUTLET = { type: 3, value: \"DATAOUTLET\" };\n IfcOutletTypeEnum.POWEROUTLET = { type: 3, value: \"POWEROUTLET\" };\n IfcOutletTypeEnum.TELEPHONEOUTLET = { type: 3, value: \"TELEPHONEOUTLET\" };\n IfcOutletTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcOutletTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcOutletTypeEnum = IfcOutletTypeEnum;\n class IfcPavementTypeEnum {\n }\n IfcPavementTypeEnum.FLEXIBLE = { type: 3, value: \"FLEXIBLE\" };\n IfcPavementTypeEnum.RIGID = { type: 3, value: \"RIGID\" };\n IfcPavementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcPavementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcPavementTypeEnum = IfcPavementTypeEnum;\n class IfcPerformanceHistoryTypeEnum {\n }\n IfcPerformanceHistoryTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcPerformanceHistoryTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcPerformanceHistoryTypeEnum = IfcPerformanceHistoryTypeEnum;\n class IfcPermeableCoveringOperationEnum {\n }\n IfcPermeableCoveringOperationEnum.GRILL = { type: 3, value: \"GRILL\" };\n IfcPermeableCoveringOperationEnum.LOUVER = { type: 3, value: \"LOUVER\" };\n IfcPermeableCoveringOperationEnum.SCREEN = { type: 3, value: \"SCREEN\" };\n IfcPermeableCoveringOperationEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcPermeableCoveringOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcPermeableCoveringOperationEnum = IfcPermeableCoveringOperationEnum;\n class IfcPermitTypeEnum {\n }\n IfcPermitTypeEnum.ACCESS = { type: 3, value: \"ACCESS\" };\n IfcPermitTypeEnum.BUILDING = { type: 3, value: \"BUILDING\" };\n IfcPermitTypeEnum.WORK = { type: 3, value: \"WORK\" };\n IfcPermitTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcPermitTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcPermitTypeEnum = IfcPermitTypeEnum;\n class IfcPhysicalOrVirtualEnum {\n }\n IfcPhysicalOrVirtualEnum.PHYSICAL = { type: 3, value: \"PHYSICAL\" };\n IfcPhysicalOrVirtualEnum.VIRTUAL = { type: 3, value: \"VIRTUAL\" };\n IfcPhysicalOrVirtualEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcPhysicalOrVirtualEnum = IfcPhysicalOrVirtualEnum;\n class IfcPileConstructionEnum {\n }\n IfcPileConstructionEnum.CAST_IN_PLACE = { type: 3, value: \"CAST_IN_PLACE\" };\n IfcPileConstructionEnum.COMPOSITE = { type: 3, value: \"COMPOSITE\" };\n IfcPileConstructionEnum.PRECAST_CONCRETE = { type: 3, value: \"PRECAST_CONCRETE\" };\n IfcPileConstructionEnum.PREFAB_STEEL = { type: 3, value: \"PREFAB_STEEL\" };\n IfcPileConstructionEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcPileConstructionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcPileConstructionEnum = IfcPileConstructionEnum;\n class IfcPileTypeEnum {\n }\n IfcPileTypeEnum.BORED = { type: 3, value: \"BORED\" };\n IfcPileTypeEnum.COHESION = { type: 3, value: \"COHESION\" };\n IfcPileTypeEnum.DRIVEN = { type: 3, value: \"DRIVEN\" };\n IfcPileTypeEnum.FRICTION = { type: 3, value: \"FRICTION\" };\n IfcPileTypeEnum.JETGROUTING = { type: 3, value: \"JETGROUTING\" };\n IfcPileTypeEnum.SUPPORT = { type: 3, value: \"SUPPORT\" };\n IfcPileTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcPileTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcPileTypeEnum = IfcPileTypeEnum;\n class IfcPipeFittingTypeEnum {\n }\n IfcPipeFittingTypeEnum.BEND = { type: 3, value: \"BEND\" };\n IfcPipeFittingTypeEnum.CONNECTOR = { type: 3, value: \"CONNECTOR\" };\n IfcPipeFittingTypeEnum.ENTRY = { type: 3, value: \"ENTRY\" };\n IfcPipeFittingTypeEnum.EXIT = { type: 3, value: \"EXIT\" };\n IfcPipeFittingTypeEnum.JUNCTION = { type: 3, value: \"JUNCTION\" };\n IfcPipeFittingTypeEnum.OBSTRUCTION = { type: 3, value: \"OBSTRUCTION\" };\n IfcPipeFittingTypeEnum.TRANSITION = { type: 3, value: \"TRANSITION\" };\n IfcPipeFittingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcPipeFittingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcPipeFittingTypeEnum = IfcPipeFittingTypeEnum;\n class IfcPipeSegmentTypeEnum {\n }\n IfcPipeSegmentTypeEnum.CULVERT = { type: 3, value: \"CULVERT\" };\n IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: \"FLEXIBLESEGMENT\" };\n IfcPipeSegmentTypeEnum.GUTTER = { type: 3, value: \"GUTTER\" };\n IfcPipeSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: \"RIGIDSEGMENT\" };\n IfcPipeSegmentTypeEnum.SPOOL = { type: 3, value: \"SPOOL\" };\n IfcPipeSegmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcPipeSegmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcPipeSegmentTypeEnum = IfcPipeSegmentTypeEnum;\n class IfcPlateTypeEnum {\n }\n IfcPlateTypeEnum.BASE_PLATE = { type: 3, value: \"BASE_PLATE\" };\n IfcPlateTypeEnum.COVER_PLATE = { type: 3, value: \"COVER_PLATE\" };\n IfcPlateTypeEnum.CURTAIN_PANEL = { type: 3, value: \"CURTAIN_PANEL\" };\n IfcPlateTypeEnum.FLANGE_PLATE = { type: 3, value: \"FLANGE_PLATE\" };\n IfcPlateTypeEnum.GUSSET_PLATE = { type: 3, value: \"GUSSET_PLATE\" };\n IfcPlateTypeEnum.SHEET = { type: 3, value: \"SHEET\" };\n IfcPlateTypeEnum.SPLICE_PLATE = { type: 3, value: \"SPLICE_PLATE\" };\n IfcPlateTypeEnum.STIFFENER_PLATE = { type: 3, value: \"STIFFENER_PLATE\" };\n IfcPlateTypeEnum.WEB_PLATE = { type: 3, value: \"WEB_PLATE\" };\n IfcPlateTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcPlateTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcPlateTypeEnum = IfcPlateTypeEnum;\n class IfcPreferredSurfaceCurveRepresentation {\n }\n IfcPreferredSurfaceCurveRepresentation.CURVE3D = { type: 3, value: \"CURVE3D\" };\n IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 = { type: 3, value: \"PCURVE_S1\" };\n IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 = { type: 3, value: \"PCURVE_S2\" };\n IFC4X32.IfcPreferredSurfaceCurveRepresentation = IfcPreferredSurfaceCurveRepresentation;\n class IfcProcedureTypeEnum {\n }\n IfcProcedureTypeEnum.ADVICE_CAUTION = { type: 3, value: \"ADVICE_CAUTION\" };\n IfcProcedureTypeEnum.ADVICE_NOTE = { type: 3, value: \"ADVICE_NOTE\" };\n IfcProcedureTypeEnum.ADVICE_WARNING = { type: 3, value: \"ADVICE_WARNING\" };\n IfcProcedureTypeEnum.CALIBRATION = { type: 3, value: \"CALIBRATION\" };\n IfcProcedureTypeEnum.DIAGNOSTIC = { type: 3, value: \"DIAGNOSTIC\" };\n IfcProcedureTypeEnum.SHUTDOWN = { type: 3, value: \"SHUTDOWN\" };\n IfcProcedureTypeEnum.STARTUP = { type: 3, value: \"STARTUP\" };\n IfcProcedureTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcProcedureTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcProcedureTypeEnum = IfcProcedureTypeEnum;\n class IfcProfileTypeEnum {\n }\n IfcProfileTypeEnum.AREA = { type: 3, value: \"AREA\" };\n IfcProfileTypeEnum.CURVE = { type: 3, value: \"CURVE\" };\n IFC4X32.IfcProfileTypeEnum = IfcProfileTypeEnum;\n class IfcProjectOrderTypeEnum {\n }\n IfcProjectOrderTypeEnum.CHANGEORDER = { type: 3, value: \"CHANGEORDER\" };\n IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER = { type: 3, value: \"MAINTENANCEWORKORDER\" };\n IfcProjectOrderTypeEnum.MOVEORDER = { type: 3, value: \"MOVEORDER\" };\n IfcProjectOrderTypeEnum.PURCHASEORDER = { type: 3, value: \"PURCHASEORDER\" };\n IfcProjectOrderTypeEnum.WORKORDER = { type: 3, value: \"WORKORDER\" };\n IfcProjectOrderTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcProjectOrderTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcProjectOrderTypeEnum = IfcProjectOrderTypeEnum;\n class IfcProjectedOrTrueLengthEnum {\n }\n IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH = { type: 3, value: \"PROJECTED_LENGTH\" };\n IfcProjectedOrTrueLengthEnum.TRUE_LENGTH = { type: 3, value: \"TRUE_LENGTH\" };\n IFC4X32.IfcProjectedOrTrueLengthEnum = IfcProjectedOrTrueLengthEnum;\n class IfcProjectionElementTypeEnum {\n }\n IfcProjectionElementTypeEnum.BLISTER = { type: 3, value: \"BLISTER\" };\n IfcProjectionElementTypeEnum.DEVIATOR = { type: 3, value: \"DEVIATOR\" };\n IfcProjectionElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcProjectionElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcProjectionElementTypeEnum = IfcProjectionElementTypeEnum;\n class IfcPropertySetTemplateTypeEnum {\n }\n IfcPropertySetTemplateTypeEnum.PSET_MATERIALDRIVEN = { type: 3, value: \"PSET_MATERIALDRIVEN\" };\n IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN = { type: 3, value: \"PSET_OCCURRENCEDRIVEN\" };\n IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN = { type: 3, value: \"PSET_PERFORMANCEDRIVEN\" };\n IfcPropertySetTemplateTypeEnum.PSET_PROFILEDRIVEN = { type: 3, value: \"PSET_PROFILEDRIVEN\" };\n IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY = { type: 3, value: \"PSET_TYPEDRIVENONLY\" };\n IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE = { type: 3, value: \"PSET_TYPEDRIVENOVERRIDE\" };\n IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN = { type: 3, value: \"QTO_OCCURRENCEDRIVEN\" };\n IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY = { type: 3, value: \"QTO_TYPEDRIVENONLY\" };\n IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE = { type: 3, value: \"QTO_TYPEDRIVENOVERRIDE\" };\n IfcPropertySetTemplateTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcPropertySetTemplateTypeEnum = IfcPropertySetTemplateTypeEnum;\n class IfcProtectiveDeviceTrippingUnitTypeEnum {\n }\n IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC = { type: 3, value: \"ELECTROMAGNETIC\" };\n IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC = { type: 3, value: \"ELECTRONIC\" };\n IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT = { type: 3, value: \"RESIDUALCURRENT\" };\n IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL = { type: 3, value: \"THERMAL\" };\n IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcProtectiveDeviceTrippingUnitTypeEnum = IfcProtectiveDeviceTrippingUnitTypeEnum;\n class IfcProtectiveDeviceTypeEnum {\n }\n IfcProtectiveDeviceTypeEnum.ANTI_ARCING_DEVICE = { type: 3, value: \"ANTI_ARCING_DEVICE\" };\n IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER = { type: 3, value: \"CIRCUITBREAKER\" };\n IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH = { type: 3, value: \"EARTHINGSWITCH\" };\n IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER = { type: 3, value: \"EARTHLEAKAGECIRCUITBREAKER\" };\n IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR = { type: 3, value: \"FUSEDISCONNECTOR\" };\n IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER = { type: 3, value: \"RESIDUALCURRENTCIRCUITBREAKER\" };\n IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH = { type: 3, value: \"RESIDUALCURRENTSWITCH\" };\n IfcProtectiveDeviceTypeEnum.SPARKGAP = { type: 3, value: \"SPARKGAP\" };\n IfcProtectiveDeviceTypeEnum.VARISTOR = { type: 3, value: \"VARISTOR\" };\n IfcProtectiveDeviceTypeEnum.VOLTAGELIMITER = { type: 3, value: \"VOLTAGELIMITER\" };\n IfcProtectiveDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcProtectiveDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcProtectiveDeviceTypeEnum = IfcProtectiveDeviceTypeEnum;\n class IfcPumpTypeEnum {\n }\n IfcPumpTypeEnum.CIRCULATOR = { type: 3, value: \"CIRCULATOR\" };\n IfcPumpTypeEnum.ENDSUCTION = { type: 3, value: \"ENDSUCTION\" };\n IfcPumpTypeEnum.SPLITCASE = { type: 3, value: \"SPLITCASE\" };\n IfcPumpTypeEnum.SUBMERSIBLEPUMP = { type: 3, value: \"SUBMERSIBLEPUMP\" };\n IfcPumpTypeEnum.SUMPPUMP = { type: 3, value: \"SUMPPUMP\" };\n IfcPumpTypeEnum.VERTICALINLINE = { type: 3, value: \"VERTICALINLINE\" };\n IfcPumpTypeEnum.VERTICALTURBINE = { type: 3, value: \"VERTICALTURBINE\" };\n IfcPumpTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcPumpTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcPumpTypeEnum = IfcPumpTypeEnum;\n class IfcRailTypeEnum {\n }\n IfcRailTypeEnum.BLADE = { type: 3, value: \"BLADE\" };\n IfcRailTypeEnum.CHECKRAIL = { type: 3, value: \"CHECKRAIL\" };\n IfcRailTypeEnum.GUARDRAIL = { type: 3, value: \"GUARDRAIL\" };\n IfcRailTypeEnum.RACKRAIL = { type: 3, value: \"RACKRAIL\" };\n IfcRailTypeEnum.RAIL = { type: 3, value: \"RAIL\" };\n IfcRailTypeEnum.STOCKRAIL = { type: 3, value: \"STOCKRAIL\" };\n IfcRailTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcRailTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcRailTypeEnum = IfcRailTypeEnum;\n class IfcRailingTypeEnum {\n }\n IfcRailingTypeEnum.BALUSTRADE = { type: 3, value: \"BALUSTRADE\" };\n IfcRailingTypeEnum.FENCE = { type: 3, value: \"FENCE\" };\n IfcRailingTypeEnum.GUARDRAIL = { type: 3, value: \"GUARDRAIL\" };\n IfcRailingTypeEnum.HANDRAIL = { type: 3, value: \"HANDRAIL\" };\n IfcRailingTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcRailingTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcRailingTypeEnum = IfcRailingTypeEnum;\n class IfcRailwayPartTypeEnum {\n }\n IfcRailwayPartTypeEnum.DILATATIONSUPERSTRUCTURE = { type: 3, value: \"DILATATIONSUPERSTRUCTURE\" };\n IfcRailwayPartTypeEnum.LINESIDESTRUCTURE = { type: 3, value: \"LINESIDESTRUCTURE\" };\n IfcRailwayPartTypeEnum.LINESIDESTRUCTUREPART = { type: 3, value: \"LINESIDESTRUCTUREPART\" };\n IfcRailwayPartTypeEnum.PLAINTRACKSUPERSTRUCTURE = { type: 3, value: \"PLAINTRACKSUPERSTRUCTURE\" };\n IfcRailwayPartTypeEnum.SUPERSTRUCTURE = { type: 3, value: \"SUPERSTRUCTURE\" };\n IfcRailwayPartTypeEnum.TRACKSTRUCTURE = { type: 3, value: \"TRACKSTRUCTURE\" };\n IfcRailwayPartTypeEnum.TRACKSTRUCTUREPART = { type: 3, value: \"TRACKSTRUCTUREPART\" };\n IfcRailwayPartTypeEnum.TURNOUTSUPERSTRUCTURE = { type: 3, value: \"TURNOUTSUPERSTRUCTURE\" };\n IfcRailwayPartTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcRailwayPartTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcRailwayPartTypeEnum = IfcRailwayPartTypeEnum;\n class IfcRailwayTypeEnum {\n }\n IfcRailwayTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcRailwayTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcRailwayTypeEnum = IfcRailwayTypeEnum;\n class IfcRampFlightTypeEnum {\n }\n IfcRampFlightTypeEnum.SPIRAL = { type: 3, value: \"SPIRAL\" };\n IfcRampFlightTypeEnum.STRAIGHT = { type: 3, value: \"STRAIGHT\" };\n IfcRampFlightTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcRampFlightTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcRampFlightTypeEnum = IfcRampFlightTypeEnum;\n class IfcRampTypeEnum {\n }\n IfcRampTypeEnum.HALF_TURN_RAMP = { type: 3, value: \"HALF_TURN_RAMP\" };\n IfcRampTypeEnum.QUARTER_TURN_RAMP = { type: 3, value: \"QUARTER_TURN_RAMP\" };\n IfcRampTypeEnum.SPIRAL_RAMP = { type: 3, value: \"SPIRAL_RAMP\" };\n IfcRampTypeEnum.STRAIGHT_RUN_RAMP = { type: 3, value: \"STRAIGHT_RUN_RAMP\" };\n IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP = { type: 3, value: \"TWO_QUARTER_TURN_RAMP\" };\n IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP = { type: 3, value: \"TWO_STRAIGHT_RUN_RAMP\" };\n IfcRampTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcRampTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcRampTypeEnum = IfcRampTypeEnum;\n class IfcRecurrenceTypeEnum {\n }\n IfcRecurrenceTypeEnum.BY_DAY_COUNT = { type: 3, value: \"BY_DAY_COUNT\" };\n IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT = { type: 3, value: \"BY_WEEKDAY_COUNT\" };\n IfcRecurrenceTypeEnum.DAILY = { type: 3, value: \"DAILY\" };\n IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH = { type: 3, value: \"MONTHLY_BY_DAY_OF_MONTH\" };\n IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION = { type: 3, value: \"MONTHLY_BY_POSITION\" };\n IfcRecurrenceTypeEnum.WEEKLY = { type: 3, value: \"WEEKLY\" };\n IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH = { type: 3, value: \"YEARLY_BY_DAY_OF_MONTH\" };\n IfcRecurrenceTypeEnum.YEARLY_BY_POSITION = { type: 3, value: \"YEARLY_BY_POSITION\" };\n IFC4X32.IfcRecurrenceTypeEnum = IfcRecurrenceTypeEnum;\n class IfcReferentTypeEnum {\n }\n IfcReferentTypeEnum.BOUNDARY = { type: 3, value: \"BOUNDARY\" };\n IfcReferentTypeEnum.INTERSECTION = { type: 3, value: \"INTERSECTION\" };\n IfcReferentTypeEnum.KILOPOINT = { type: 3, value: \"KILOPOINT\" };\n IfcReferentTypeEnum.LANDMARK = { type: 3, value: \"LANDMARK\" };\n IfcReferentTypeEnum.MILEPOINT = { type: 3, value: \"MILEPOINT\" };\n IfcReferentTypeEnum.POSITION = { type: 3, value: \"POSITION\" };\n IfcReferentTypeEnum.REFERENCEMARKER = { type: 3, value: \"REFERENCEMARKER\" };\n IfcReferentTypeEnum.STATION = { type: 3, value: \"STATION\" };\n IfcReferentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcReferentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcReferentTypeEnum = IfcReferentTypeEnum;\n class IfcReflectanceMethodEnum {\n }\n IfcReflectanceMethodEnum.BLINN = { type: 3, value: \"BLINN\" };\n IfcReflectanceMethodEnum.FLAT = { type: 3, value: \"FLAT\" };\n IfcReflectanceMethodEnum.GLASS = { type: 3, value: \"GLASS\" };\n IfcReflectanceMethodEnum.MATT = { type: 3, value: \"MATT\" };\n IfcReflectanceMethodEnum.METAL = { type: 3, value: \"METAL\" };\n IfcReflectanceMethodEnum.MIRROR = { type: 3, value: \"MIRROR\" };\n IfcReflectanceMethodEnum.PHONG = { type: 3, value: \"PHONG\" };\n IfcReflectanceMethodEnum.PHYSICAL = { type: 3, value: \"PHYSICAL\" };\n IfcReflectanceMethodEnum.PLASTIC = { type: 3, value: \"PLASTIC\" };\n IfcReflectanceMethodEnum.STRAUSS = { type: 3, value: \"STRAUSS\" };\n IfcReflectanceMethodEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcReflectanceMethodEnum = IfcReflectanceMethodEnum;\n class IfcReinforcedSoilTypeEnum {\n }\n IfcReinforcedSoilTypeEnum.DYNAMICALLYCOMPACTED = { type: 3, value: \"DYNAMICALLYCOMPACTED\" };\n IfcReinforcedSoilTypeEnum.GROUTED = { type: 3, value: \"GROUTED\" };\n IfcReinforcedSoilTypeEnum.REPLACED = { type: 3, value: \"REPLACED\" };\n IfcReinforcedSoilTypeEnum.ROLLERCOMPACTED = { type: 3, value: \"ROLLERCOMPACTED\" };\n IfcReinforcedSoilTypeEnum.SURCHARGEPRELOADED = { type: 3, value: \"SURCHARGEPRELOADED\" };\n IfcReinforcedSoilTypeEnum.VERTICALLYDRAINED = { type: 3, value: \"VERTICALLYDRAINED\" };\n IfcReinforcedSoilTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcReinforcedSoilTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcReinforcedSoilTypeEnum = IfcReinforcedSoilTypeEnum;\n class IfcReinforcingBarRoleEnum {\n }\n IfcReinforcingBarRoleEnum.ANCHORING = { type: 3, value: \"ANCHORING\" };\n IfcReinforcingBarRoleEnum.EDGE = { type: 3, value: \"EDGE\" };\n IfcReinforcingBarRoleEnum.LIGATURE = { type: 3, value: \"LIGATURE\" };\n IfcReinforcingBarRoleEnum.MAIN = { type: 3, value: \"MAIN\" };\n IfcReinforcingBarRoleEnum.PUNCHING = { type: 3, value: \"PUNCHING\" };\n IfcReinforcingBarRoleEnum.RING = { type: 3, value: \"RING\" };\n IfcReinforcingBarRoleEnum.SHEAR = { type: 3, value: \"SHEAR\" };\n IfcReinforcingBarRoleEnum.STUD = { type: 3, value: \"STUD\" };\n IfcReinforcingBarRoleEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcReinforcingBarRoleEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcReinforcingBarRoleEnum = IfcReinforcingBarRoleEnum;\n class IfcReinforcingBarSurfaceEnum {\n }\n IfcReinforcingBarSurfaceEnum.PLAIN = { type: 3, value: \"PLAIN\" };\n IfcReinforcingBarSurfaceEnum.TEXTURED = { type: 3, value: \"TEXTURED\" };\n IFC4X32.IfcReinforcingBarSurfaceEnum = IfcReinforcingBarSurfaceEnum;\n class IfcReinforcingBarTypeEnum {\n }\n IfcReinforcingBarTypeEnum.ANCHORING = { type: 3, value: \"ANCHORING\" };\n IfcReinforcingBarTypeEnum.EDGE = { type: 3, value: \"EDGE\" };\n IfcReinforcingBarTypeEnum.LIGATURE = { type: 3, value: \"LIGATURE\" };\n IfcReinforcingBarTypeEnum.MAIN = { type: 3, value: \"MAIN\" };\n IfcReinforcingBarTypeEnum.PUNCHING = { type: 3, value: \"PUNCHING\" };\n IfcReinforcingBarTypeEnum.RING = { type: 3, value: \"RING\" };\n IfcReinforcingBarTypeEnum.SHEAR = { type: 3, value: \"SHEAR\" };\n IfcReinforcingBarTypeEnum.SPACEBAR = { type: 3, value: \"SPACEBAR\" };\n IfcReinforcingBarTypeEnum.STUD = { type: 3, value: \"STUD\" };\n IfcReinforcingBarTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcReinforcingBarTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcReinforcingBarTypeEnum = IfcReinforcingBarTypeEnum;\n class IfcReinforcingMeshTypeEnum {\n }\n IfcReinforcingMeshTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcReinforcingMeshTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcReinforcingMeshTypeEnum = IfcReinforcingMeshTypeEnum;\n class IfcRoadPartTypeEnum {\n }\n IfcRoadPartTypeEnum.BICYCLECROSSING = { type: 3, value: \"BICYCLECROSSING\" };\n IfcRoadPartTypeEnum.BUS_STOP = { type: 3, value: \"BUS_STOP\" };\n IfcRoadPartTypeEnum.CARRIAGEWAY = { type: 3, value: \"CARRIAGEWAY\" };\n IfcRoadPartTypeEnum.CENTRALISLAND = { type: 3, value: \"CENTRALISLAND\" };\n IfcRoadPartTypeEnum.CENTRALRESERVE = { type: 3, value: \"CENTRALRESERVE\" };\n IfcRoadPartTypeEnum.HARDSHOULDER = { type: 3, value: \"HARDSHOULDER\" };\n IfcRoadPartTypeEnum.INTERSECTION = { type: 3, value: \"INTERSECTION\" };\n IfcRoadPartTypeEnum.LAYBY = { type: 3, value: \"LAYBY\" };\n IfcRoadPartTypeEnum.PARKINGBAY = { type: 3, value: \"PARKINGBAY\" };\n IfcRoadPartTypeEnum.PASSINGBAY = { type: 3, value: \"PASSINGBAY\" };\n IfcRoadPartTypeEnum.PEDESTRIAN_CROSSING = { type: 3, value: \"PEDESTRIAN_CROSSING\" };\n IfcRoadPartTypeEnum.RAILWAYCROSSING = { type: 3, value: \"RAILWAYCROSSING\" };\n IfcRoadPartTypeEnum.REFUGEISLAND = { type: 3, value: \"REFUGEISLAND\" };\n IfcRoadPartTypeEnum.ROADSEGMENT = { type: 3, value: \"ROADSEGMENT\" };\n IfcRoadPartTypeEnum.ROADSIDE = { type: 3, value: \"ROADSIDE\" };\n IfcRoadPartTypeEnum.ROADSIDEPART = { type: 3, value: \"ROADSIDEPART\" };\n IfcRoadPartTypeEnum.ROADWAYPLATEAU = { type: 3, value: \"ROADWAYPLATEAU\" };\n IfcRoadPartTypeEnum.ROUNDABOUT = { type: 3, value: \"ROUNDABOUT\" };\n IfcRoadPartTypeEnum.SHOULDER = { type: 3, value: \"SHOULDER\" };\n IfcRoadPartTypeEnum.SIDEWALK = { type: 3, value: \"SIDEWALK\" };\n IfcRoadPartTypeEnum.SOFTSHOULDER = { type: 3, value: \"SOFTSHOULDER\" };\n IfcRoadPartTypeEnum.TOLLPLAZA = { type: 3, value: \"TOLLPLAZA\" };\n IfcRoadPartTypeEnum.TRAFFICISLAND = { type: 3, value: \"TRAFFICISLAND\" };\n IfcRoadPartTypeEnum.TRAFFICLANE = { type: 3, value: \"TRAFFICLANE\" };\n IfcRoadPartTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcRoadPartTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcRoadPartTypeEnum = IfcRoadPartTypeEnum;\n class IfcRoadTypeEnum {\n }\n IfcRoadTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcRoadTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcRoadTypeEnum = IfcRoadTypeEnum;\n class IfcRoleEnum {\n }\n IfcRoleEnum.ARCHITECT = { type: 3, value: \"ARCHITECT\" };\n IfcRoleEnum.BUILDINGOPERATOR = { type: 3, value: \"BUILDINGOPERATOR\" };\n IfcRoleEnum.BUILDINGOWNER = { type: 3, value: \"BUILDINGOWNER\" };\n IfcRoleEnum.CIVILENGINEER = { type: 3, value: \"CIVILENGINEER\" };\n IfcRoleEnum.CLIENT = { type: 3, value: \"CLIENT\" };\n IfcRoleEnum.COMMISSIONINGENGINEER = { type: 3, value: \"COMMISSIONINGENGINEER\" };\n IfcRoleEnum.CONSTRUCTIONMANAGER = { type: 3, value: \"CONSTRUCTIONMANAGER\" };\n IfcRoleEnum.CONSULTANT = { type: 3, value: \"CONSULTANT\" };\n IfcRoleEnum.CONTRACTOR = { type: 3, value: \"CONTRACTOR\" };\n IfcRoleEnum.COSTENGINEER = { type: 3, value: \"COSTENGINEER\" };\n IfcRoleEnum.ELECTRICALENGINEER = { type: 3, value: \"ELECTRICALENGINEER\" };\n IfcRoleEnum.ENGINEER = { type: 3, value: \"ENGINEER\" };\n IfcRoleEnum.FACILITIESMANAGER = { type: 3, value: \"FACILITIESMANAGER\" };\n IfcRoleEnum.FIELDCONSTRUCTIONMANAGER = { type: 3, value: \"FIELDCONSTRUCTIONMANAGER\" };\n IfcRoleEnum.MANUFACTURER = { type: 3, value: \"MANUFACTURER\" };\n IfcRoleEnum.MECHANICALENGINEER = { type: 3, value: \"MECHANICALENGINEER\" };\n IfcRoleEnum.OWNER = { type: 3, value: \"OWNER\" };\n IfcRoleEnum.PROJECTMANAGER = { type: 3, value: \"PROJECTMANAGER\" };\n IfcRoleEnum.RESELLER = { type: 3, value: \"RESELLER\" };\n IfcRoleEnum.STRUCTURALENGINEER = { type: 3, value: \"STRUCTURALENGINEER\" };\n IfcRoleEnum.SUBCONTRACTOR = { type: 3, value: \"SUBCONTRACTOR\" };\n IfcRoleEnum.SUPPLIER = { type: 3, value: \"SUPPLIER\" };\n IfcRoleEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IFC4X32.IfcRoleEnum = IfcRoleEnum;\n class IfcRoofTypeEnum {\n }\n IfcRoofTypeEnum.BARREL_ROOF = { type: 3, value: \"BARREL_ROOF\" };\n IfcRoofTypeEnum.BUTTERFLY_ROOF = { type: 3, value: \"BUTTERFLY_ROOF\" };\n IfcRoofTypeEnum.DOME_ROOF = { type: 3, value: \"DOME_ROOF\" };\n IfcRoofTypeEnum.FLAT_ROOF = { type: 3, value: \"FLAT_ROOF\" };\n IfcRoofTypeEnum.FREEFORM = { type: 3, value: \"FREEFORM\" };\n IfcRoofTypeEnum.GABLE_ROOF = { type: 3, value: \"GABLE_ROOF\" };\n IfcRoofTypeEnum.GAMBREL_ROOF = { type: 3, value: \"GAMBREL_ROOF\" };\n IfcRoofTypeEnum.HIPPED_GABLE_ROOF = { type: 3, value: \"HIPPED_GABLE_ROOF\" };\n IfcRoofTypeEnum.HIP_ROOF = { type: 3, value: \"HIP_ROOF\" };\n IfcRoofTypeEnum.MANSARD_ROOF = { type: 3, value: \"MANSARD_ROOF\" };\n IfcRoofTypeEnum.PAVILION_ROOF = { type: 3, value: \"PAVILION_ROOF\" };\n IfcRoofTypeEnum.RAINBOW_ROOF = { type: 3, value: \"RAINBOW_ROOF\" };\n IfcRoofTypeEnum.SHED_ROOF = { type: 3, value: \"SHED_ROOF\" };\n IfcRoofTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcRoofTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcRoofTypeEnum = IfcRoofTypeEnum;\n class IfcSIPrefix {\n }\n IfcSIPrefix.ATTO = { type: 3, value: \"ATTO\" };\n IfcSIPrefix.CENTI = { type: 3, value: \"CENTI\" };\n IfcSIPrefix.DECA = { type: 3, value: \"DECA\" };\n IfcSIPrefix.DECI = { type: 3, value: \"DECI\" };\n IfcSIPrefix.EXA = { type: 3, value: \"EXA\" };\n IfcSIPrefix.FEMTO = { type: 3, value: \"FEMTO\" };\n IfcSIPrefix.GIGA = { type: 3, value: \"GIGA\" };\n IfcSIPrefix.HECTO = { type: 3, value: \"HECTO\" };\n IfcSIPrefix.KILO = { type: 3, value: \"KILO\" };\n IfcSIPrefix.MEGA = { type: 3, value: \"MEGA\" };\n IfcSIPrefix.MICRO = { type: 3, value: \"MICRO\" };\n IfcSIPrefix.MILLI = { type: 3, value: \"MILLI\" };\n IfcSIPrefix.NANO = { type: 3, value: \"NANO\" };\n IfcSIPrefix.PETA = { type: 3, value: \"PETA\" };\n IfcSIPrefix.PICO = { type: 3, value: \"PICO\" };\n IfcSIPrefix.TERA = { type: 3, value: \"TERA\" };\n IFC4X32.IfcSIPrefix = IfcSIPrefix;\n class IfcSIUnitName {\n }\n IfcSIUnitName.AMPERE = { type: 3, value: \"AMPERE\" };\n IfcSIUnitName.BECQUEREL = { type: 3, value: \"BECQUEREL\" };\n IfcSIUnitName.CANDELA = { type: 3, value: \"CANDELA\" };\n IfcSIUnitName.COULOMB = { type: 3, value: \"COULOMB\" };\n IfcSIUnitName.CUBIC_METRE = { type: 3, value: \"CUBIC_METRE\" };\n IfcSIUnitName.DEGREE_CELSIUS = { type: 3, value: \"DEGREE_CELSIUS\" };\n IfcSIUnitName.FARAD = { type: 3, value: \"FARAD\" };\n IfcSIUnitName.GRAM = { type: 3, value: \"GRAM\" };\n IfcSIUnitName.GRAY = { type: 3, value: \"GRAY\" };\n IfcSIUnitName.HENRY = { type: 3, value: \"HENRY\" };\n IfcSIUnitName.HERTZ = { type: 3, value: \"HERTZ\" };\n IfcSIUnitName.JOULE = { type: 3, value: \"JOULE\" };\n IfcSIUnitName.KELVIN = { type: 3, value: \"KELVIN\" };\n IfcSIUnitName.LUMEN = { type: 3, value: \"LUMEN\" };\n IfcSIUnitName.LUX = { type: 3, value: \"LUX\" };\n IfcSIUnitName.METRE = { type: 3, value: \"METRE\" };\n IfcSIUnitName.MOLE = { type: 3, value: \"MOLE\" };\n IfcSIUnitName.NEWTON = { type: 3, value: \"NEWTON\" };\n IfcSIUnitName.OHM = { type: 3, value: \"OHM\" };\n IfcSIUnitName.PASCAL = { type: 3, value: \"PASCAL\" };\n IfcSIUnitName.RADIAN = { type: 3, value: \"RADIAN\" };\n IfcSIUnitName.SECOND = { type: 3, value: \"SECOND\" };\n IfcSIUnitName.SIEMENS = { type: 3, value: \"SIEMENS\" };\n IfcSIUnitName.SIEVERT = { type: 3, value: \"SIEVERT\" };\n IfcSIUnitName.SQUARE_METRE = { type: 3, value: \"SQUARE_METRE\" };\n IfcSIUnitName.STERADIAN = { type: 3, value: \"STERADIAN\" };\n IfcSIUnitName.TESLA = { type: 3, value: \"TESLA\" };\n IfcSIUnitName.VOLT = { type: 3, value: \"VOLT\" };\n IfcSIUnitName.WATT = { type: 3, value: \"WATT\" };\n IfcSIUnitName.WEBER = { type: 3, value: \"WEBER\" };\n IFC4X32.IfcSIUnitName = IfcSIUnitName;\n class IfcSanitaryTerminalTypeEnum {\n }\n IfcSanitaryTerminalTypeEnum.BATH = { type: 3, value: \"BATH\" };\n IfcSanitaryTerminalTypeEnum.BIDET = { type: 3, value: \"BIDET\" };\n IfcSanitaryTerminalTypeEnum.CISTERN = { type: 3, value: \"CISTERN\" };\n IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN = { type: 3, value: \"SANITARYFOUNTAIN\" };\n IfcSanitaryTerminalTypeEnum.SHOWER = { type: 3, value: \"SHOWER\" };\n IfcSanitaryTerminalTypeEnum.SINK = { type: 3, value: \"SINK\" };\n IfcSanitaryTerminalTypeEnum.TOILETPAN = { type: 3, value: \"TOILETPAN\" };\n IfcSanitaryTerminalTypeEnum.URINAL = { type: 3, value: \"URINAL\" };\n IfcSanitaryTerminalTypeEnum.WASHHANDBASIN = { type: 3, value: \"WASHHANDBASIN\" };\n IfcSanitaryTerminalTypeEnum.WCSEAT = { type: 3, value: \"WCSEAT\" };\n IfcSanitaryTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSanitaryTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcSanitaryTerminalTypeEnum = IfcSanitaryTerminalTypeEnum;\n class IfcSectionTypeEnum {\n }\n IfcSectionTypeEnum.TAPERED = { type: 3, value: \"TAPERED\" };\n IfcSectionTypeEnum.UNIFORM = { type: 3, value: \"UNIFORM\" };\n IFC4X32.IfcSectionTypeEnum = IfcSectionTypeEnum;\n class IfcSensorTypeEnum {\n }\n IfcSensorTypeEnum.CO2SENSOR = { type: 3, value: \"CO2SENSOR\" };\n IfcSensorTypeEnum.CONDUCTANCESENSOR = { type: 3, value: \"CONDUCTANCESENSOR\" };\n IfcSensorTypeEnum.CONTACTSENSOR = { type: 3, value: \"CONTACTSENSOR\" };\n IfcSensorTypeEnum.COSENSOR = { type: 3, value: \"COSENSOR\" };\n IfcSensorTypeEnum.EARTHQUAKESENSOR = { type: 3, value: \"EARTHQUAKESENSOR\" };\n IfcSensorTypeEnum.FIRESENSOR = { type: 3, value: \"FIRESENSOR\" };\n IfcSensorTypeEnum.FLOWSENSOR = { type: 3, value: \"FLOWSENSOR\" };\n IfcSensorTypeEnum.FOREIGNOBJECTDETECTIONSENSOR = { type: 3, value: \"FOREIGNOBJECTDETECTIONSENSOR\" };\n IfcSensorTypeEnum.FROSTSENSOR = { type: 3, value: \"FROSTSENSOR\" };\n IfcSensorTypeEnum.GASSENSOR = { type: 3, value: \"GASSENSOR\" };\n IfcSensorTypeEnum.HEATSENSOR = { type: 3, value: \"HEATSENSOR\" };\n IfcSensorTypeEnum.HUMIDITYSENSOR = { type: 3, value: \"HUMIDITYSENSOR\" };\n IfcSensorTypeEnum.IDENTIFIERSENSOR = { type: 3, value: \"IDENTIFIERSENSOR\" };\n IfcSensorTypeEnum.IONCONCENTRATIONSENSOR = { type: 3, value: \"IONCONCENTRATIONSENSOR\" };\n IfcSensorTypeEnum.LEVELSENSOR = { type: 3, value: \"LEVELSENSOR\" };\n IfcSensorTypeEnum.LIGHTSENSOR = { type: 3, value: \"LIGHTSENSOR\" };\n IfcSensorTypeEnum.MOISTURESENSOR = { type: 3, value: \"MOISTURESENSOR\" };\n IfcSensorTypeEnum.MOVEMENTSENSOR = { type: 3, value: \"MOVEMENTSENSOR\" };\n IfcSensorTypeEnum.OBSTACLESENSOR = { type: 3, value: \"OBSTACLESENSOR\" };\n IfcSensorTypeEnum.PHSENSOR = { type: 3, value: \"PHSENSOR\" };\n IfcSensorTypeEnum.PRESSURESENSOR = { type: 3, value: \"PRESSURESENSOR\" };\n IfcSensorTypeEnum.RADIATIONSENSOR = { type: 3, value: \"RADIATIONSENSOR\" };\n IfcSensorTypeEnum.RADIOACTIVITYSENSOR = { type: 3, value: \"RADIOACTIVITYSENSOR\" };\n IfcSensorTypeEnum.RAINSENSOR = { type: 3, value: \"RAINSENSOR\" };\n IfcSensorTypeEnum.SMOKESENSOR = { type: 3, value: \"SMOKESENSOR\" };\n IfcSensorTypeEnum.SNOWDEPTHSENSOR = { type: 3, value: \"SNOWDEPTHSENSOR\" };\n IfcSensorTypeEnum.SOUNDSENSOR = { type: 3, value: \"SOUNDSENSOR\" };\n IfcSensorTypeEnum.TEMPERATURESENSOR = { type: 3, value: \"TEMPERATURESENSOR\" };\n IfcSensorTypeEnum.TRAINSENSOR = { type: 3, value: \"TRAINSENSOR\" };\n IfcSensorTypeEnum.TURNOUTCLOSURESENSOR = { type: 3, value: \"TURNOUTCLOSURESENSOR\" };\n IfcSensorTypeEnum.WHEELSENSOR = { type: 3, value: \"WHEELSENSOR\" };\n IfcSensorTypeEnum.WINDSENSOR = { type: 3, value: \"WINDSENSOR\" };\n IfcSensorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSensorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcSensorTypeEnum = IfcSensorTypeEnum;\n class IfcSequenceEnum {\n }\n IfcSequenceEnum.FINISH_FINISH = { type: 3, value: \"FINISH_FINISH\" };\n IfcSequenceEnum.FINISH_START = { type: 3, value: \"FINISH_START\" };\n IfcSequenceEnum.START_FINISH = { type: 3, value: \"START_FINISH\" };\n IfcSequenceEnum.START_START = { type: 3, value: \"START_START\" };\n IfcSequenceEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSequenceEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcSequenceEnum = IfcSequenceEnum;\n class IfcShadingDeviceTypeEnum {\n }\n IfcShadingDeviceTypeEnum.AWNING = { type: 3, value: \"AWNING\" };\n IfcShadingDeviceTypeEnum.JALOUSIE = { type: 3, value: \"JALOUSIE\" };\n IfcShadingDeviceTypeEnum.SHUTTER = { type: 3, value: \"SHUTTER\" };\n IfcShadingDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcShadingDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcShadingDeviceTypeEnum = IfcShadingDeviceTypeEnum;\n class IfcSignTypeEnum {\n }\n IfcSignTypeEnum.MARKER = { type: 3, value: \"MARKER\" };\n IfcSignTypeEnum.MIRROR = { type: 3, value: \"MIRROR\" };\n IfcSignTypeEnum.PICTORAL = { type: 3, value: \"PICTORAL\" };\n IfcSignTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSignTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcSignTypeEnum = IfcSignTypeEnum;\n class IfcSignalTypeEnum {\n }\n IfcSignalTypeEnum.AUDIO = { type: 3, value: \"AUDIO\" };\n IfcSignalTypeEnum.MIXED = { type: 3, value: \"MIXED\" };\n IfcSignalTypeEnum.VISUAL = { type: 3, value: \"VISUAL\" };\n IfcSignalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSignalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcSignalTypeEnum = IfcSignalTypeEnum;\n class IfcSimplePropertyTemplateTypeEnum {\n }\n IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE = { type: 3, value: \"P_BOUNDEDVALUE\" };\n IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE = { type: 3, value: \"P_ENUMERATEDVALUE\" };\n IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE = { type: 3, value: \"P_LISTVALUE\" };\n IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE = { type: 3, value: \"P_REFERENCEVALUE\" };\n IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE = { type: 3, value: \"P_SINGLEVALUE\" };\n IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE = { type: 3, value: \"P_TABLEVALUE\" };\n IfcSimplePropertyTemplateTypeEnum.Q_AREA = { type: 3, value: \"Q_AREA\" };\n IfcSimplePropertyTemplateTypeEnum.Q_COUNT = { type: 3, value: \"Q_COUNT\" };\n IfcSimplePropertyTemplateTypeEnum.Q_LENGTH = { type: 3, value: \"Q_LENGTH\" };\n IfcSimplePropertyTemplateTypeEnum.Q_NUMBER = { type: 3, value: \"Q_NUMBER\" };\n IfcSimplePropertyTemplateTypeEnum.Q_TIME = { type: 3, value: \"Q_TIME\" };\n IfcSimplePropertyTemplateTypeEnum.Q_VOLUME = { type: 3, value: \"Q_VOLUME\" };\n IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT = { type: 3, value: \"Q_WEIGHT\" };\n IFC4X32.IfcSimplePropertyTemplateTypeEnum = IfcSimplePropertyTemplateTypeEnum;\n class IfcSlabTypeEnum {\n }\n IfcSlabTypeEnum.APPROACH_SLAB = { type: 3, value: \"APPROACH_SLAB\" };\n IfcSlabTypeEnum.BASESLAB = { type: 3, value: \"BASESLAB\" };\n IfcSlabTypeEnum.FLOOR = { type: 3, value: \"FLOOR\" };\n IfcSlabTypeEnum.LANDING = { type: 3, value: \"LANDING\" };\n IfcSlabTypeEnum.PAVING = { type: 3, value: \"PAVING\" };\n IfcSlabTypeEnum.ROOF = { type: 3, value: \"ROOF\" };\n IfcSlabTypeEnum.SIDEWALK = { type: 3, value: \"SIDEWALK\" };\n IfcSlabTypeEnum.TRACKSLAB = { type: 3, value: \"TRACKSLAB\" };\n IfcSlabTypeEnum.WEARING = { type: 3, value: \"WEARING\" };\n IfcSlabTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSlabTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcSlabTypeEnum = IfcSlabTypeEnum;\n class IfcSolarDeviceTypeEnum {\n }\n IfcSolarDeviceTypeEnum.SOLARCOLLECTOR = { type: 3, value: \"SOLARCOLLECTOR\" };\n IfcSolarDeviceTypeEnum.SOLARPANEL = { type: 3, value: \"SOLARPANEL\" };\n IfcSolarDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSolarDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcSolarDeviceTypeEnum = IfcSolarDeviceTypeEnum;\n class IfcSpaceHeaterTypeEnum {\n }\n IfcSpaceHeaterTypeEnum.CONVECTOR = { type: 3, value: \"CONVECTOR\" };\n IfcSpaceHeaterTypeEnum.RADIATOR = { type: 3, value: \"RADIATOR\" };\n IfcSpaceHeaterTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSpaceHeaterTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcSpaceHeaterTypeEnum = IfcSpaceHeaterTypeEnum;\n class IfcSpaceTypeEnum {\n }\n IfcSpaceTypeEnum.BERTH = { type: 3, value: \"BERTH\" };\n IfcSpaceTypeEnum.EXTERNAL = { type: 3, value: \"EXTERNAL\" };\n IfcSpaceTypeEnum.GFA = { type: 3, value: \"GFA\" };\n IfcSpaceTypeEnum.INTERNAL = { type: 3, value: \"INTERNAL\" };\n IfcSpaceTypeEnum.PARKING = { type: 3, value: \"PARKING\" };\n IfcSpaceTypeEnum.SPACE = { type: 3, value: \"SPACE\" };\n IfcSpaceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSpaceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcSpaceTypeEnum = IfcSpaceTypeEnum;\n class IfcSpatialZoneTypeEnum {\n }\n IfcSpatialZoneTypeEnum.CONSTRUCTION = { type: 3, value: \"CONSTRUCTION\" };\n IfcSpatialZoneTypeEnum.FIRESAFETY = { type: 3, value: \"FIRESAFETY\" };\n IfcSpatialZoneTypeEnum.INTERFERENCE = { type: 3, value: \"INTERFERENCE\" };\n IfcSpatialZoneTypeEnum.LIGHTING = { type: 3, value: \"LIGHTING\" };\n IfcSpatialZoneTypeEnum.OCCUPANCY = { type: 3, value: \"OCCUPANCY\" };\n IfcSpatialZoneTypeEnum.RESERVATION = { type: 3, value: \"RESERVATION\" };\n IfcSpatialZoneTypeEnum.SECURITY = { type: 3, value: \"SECURITY\" };\n IfcSpatialZoneTypeEnum.THERMAL = { type: 3, value: \"THERMAL\" };\n IfcSpatialZoneTypeEnum.TRANSPORT = { type: 3, value: \"TRANSPORT\" };\n IfcSpatialZoneTypeEnum.VENTILATION = { type: 3, value: \"VENTILATION\" };\n IfcSpatialZoneTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSpatialZoneTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcSpatialZoneTypeEnum = IfcSpatialZoneTypeEnum;\n class IfcStackTerminalTypeEnum {\n }\n IfcStackTerminalTypeEnum.BIRDCAGE = { type: 3, value: \"BIRDCAGE\" };\n IfcStackTerminalTypeEnum.COWL = { type: 3, value: \"COWL\" };\n IfcStackTerminalTypeEnum.RAINWATERHOPPER = { type: 3, value: \"RAINWATERHOPPER\" };\n IfcStackTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcStackTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcStackTerminalTypeEnum = IfcStackTerminalTypeEnum;\n class IfcStairFlightTypeEnum {\n }\n IfcStairFlightTypeEnum.CURVED = { type: 3, value: \"CURVED\" };\n IfcStairFlightTypeEnum.FREEFORM = { type: 3, value: \"FREEFORM\" };\n IfcStairFlightTypeEnum.SPIRAL = { type: 3, value: \"SPIRAL\" };\n IfcStairFlightTypeEnum.STRAIGHT = { type: 3, value: \"STRAIGHT\" };\n IfcStairFlightTypeEnum.WINDER = { type: 3, value: \"WINDER\" };\n IfcStairFlightTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcStairFlightTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcStairFlightTypeEnum = IfcStairFlightTypeEnum;\n class IfcStairTypeEnum {\n }\n IfcStairTypeEnum.CURVED_RUN_STAIR = { type: 3, value: \"CURVED_RUN_STAIR\" };\n IfcStairTypeEnum.DOUBLE_RETURN_STAIR = { type: 3, value: \"DOUBLE_RETURN_STAIR\" };\n IfcStairTypeEnum.HALF_TURN_STAIR = { type: 3, value: \"HALF_TURN_STAIR\" };\n IfcStairTypeEnum.HALF_WINDING_STAIR = { type: 3, value: \"HALF_WINDING_STAIR\" };\n IfcStairTypeEnum.LADDER = { type: 3, value: \"LADDER\" };\n IfcStairTypeEnum.QUARTER_TURN_STAIR = { type: 3, value: \"QUARTER_TURN_STAIR\" };\n IfcStairTypeEnum.QUARTER_WINDING_STAIR = { type: 3, value: \"QUARTER_WINDING_STAIR\" };\n IfcStairTypeEnum.SPIRAL_STAIR = { type: 3, value: \"SPIRAL_STAIR\" };\n IfcStairTypeEnum.STRAIGHT_RUN_STAIR = { type: 3, value: \"STRAIGHT_RUN_STAIR\" };\n IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR = { type: 3, value: \"THREE_QUARTER_TURN_STAIR\" };\n IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR = { type: 3, value: \"THREE_QUARTER_WINDING_STAIR\" };\n IfcStairTypeEnum.TWO_CURVED_RUN_STAIR = { type: 3, value: \"TWO_CURVED_RUN_STAIR\" };\n IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR = { type: 3, value: \"TWO_QUARTER_TURN_STAIR\" };\n IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR = { type: 3, value: \"TWO_QUARTER_WINDING_STAIR\" };\n IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR = { type: 3, value: \"TWO_STRAIGHT_RUN_STAIR\" };\n IfcStairTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcStairTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcStairTypeEnum = IfcStairTypeEnum;\n class IfcStateEnum {\n }\n IfcStateEnum.LOCKED = { type: 3, value: \"LOCKED\" };\n IfcStateEnum.READONLY = { type: 3, value: \"READONLY\" };\n IfcStateEnum.READONLYLOCKED = { type: 3, value: \"READONLYLOCKED\" };\n IfcStateEnum.READWRITE = { type: 3, value: \"READWRITE\" };\n IfcStateEnum.READWRITELOCKED = { type: 3, value: \"READWRITELOCKED\" };\n IFC4X32.IfcStateEnum = IfcStateEnum;\n class IfcStructuralCurveActivityTypeEnum {\n }\n IfcStructuralCurveActivityTypeEnum.CONST = { type: 3, value: \"CONST\" };\n IfcStructuralCurveActivityTypeEnum.DISCRETE = { type: 3, value: \"DISCRETE\" };\n IfcStructuralCurveActivityTypeEnum.EQUIDISTANT = { type: 3, value: \"EQUIDISTANT\" };\n IfcStructuralCurveActivityTypeEnum.LINEAR = { type: 3, value: \"LINEAR\" };\n IfcStructuralCurveActivityTypeEnum.PARABOLA = { type: 3, value: \"PARABOLA\" };\n IfcStructuralCurveActivityTypeEnum.POLYGONAL = { type: 3, value: \"POLYGONAL\" };\n IfcStructuralCurveActivityTypeEnum.SINUS = { type: 3, value: \"SINUS\" };\n IfcStructuralCurveActivityTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcStructuralCurveActivityTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcStructuralCurveActivityTypeEnum = IfcStructuralCurveActivityTypeEnum;\n class IfcStructuralCurveMemberTypeEnum {\n }\n IfcStructuralCurveMemberTypeEnum.CABLE = { type: 3, value: \"CABLE\" };\n IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER = { type: 3, value: \"COMPRESSION_MEMBER\" };\n IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER = { type: 3, value: \"PIN_JOINED_MEMBER\" };\n IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER = { type: 3, value: \"RIGID_JOINED_MEMBER\" };\n IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER = { type: 3, value: \"TENSION_MEMBER\" };\n IfcStructuralCurveMemberTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcStructuralCurveMemberTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcStructuralCurveMemberTypeEnum = IfcStructuralCurveMemberTypeEnum;\n class IfcStructuralSurfaceActivityTypeEnum {\n }\n IfcStructuralSurfaceActivityTypeEnum.BILINEAR = { type: 3, value: \"BILINEAR\" };\n IfcStructuralSurfaceActivityTypeEnum.CONST = { type: 3, value: \"CONST\" };\n IfcStructuralSurfaceActivityTypeEnum.DISCRETE = { type: 3, value: \"DISCRETE\" };\n IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR = { type: 3, value: \"ISOCONTOUR\" };\n IfcStructuralSurfaceActivityTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcStructuralSurfaceActivityTypeEnum = IfcStructuralSurfaceActivityTypeEnum;\n class IfcStructuralSurfaceMemberTypeEnum {\n }\n IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT = { type: 3, value: \"BENDING_ELEMENT\" };\n IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT = { type: 3, value: \"MEMBRANE_ELEMENT\" };\n IfcStructuralSurfaceMemberTypeEnum.SHELL = { type: 3, value: \"SHELL\" };\n IfcStructuralSurfaceMemberTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcStructuralSurfaceMemberTypeEnum = IfcStructuralSurfaceMemberTypeEnum;\n class IfcSubContractResourceTypeEnum {\n }\n IfcSubContractResourceTypeEnum.PURCHASE = { type: 3, value: \"PURCHASE\" };\n IfcSubContractResourceTypeEnum.WORK = { type: 3, value: \"WORK\" };\n IfcSubContractResourceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSubContractResourceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcSubContractResourceTypeEnum = IfcSubContractResourceTypeEnum;\n class IfcSurfaceFeatureTypeEnum {\n }\n IfcSurfaceFeatureTypeEnum.DEFECT = { type: 3, value: \"DEFECT\" };\n IfcSurfaceFeatureTypeEnum.HATCHMARKING = { type: 3, value: \"HATCHMARKING\" };\n IfcSurfaceFeatureTypeEnum.LINEMARKING = { type: 3, value: \"LINEMARKING\" };\n IfcSurfaceFeatureTypeEnum.MARK = { type: 3, value: \"MARK\" };\n IfcSurfaceFeatureTypeEnum.NONSKIDSURFACING = { type: 3, value: \"NONSKIDSURFACING\" };\n IfcSurfaceFeatureTypeEnum.PAVEMENTSURFACEMARKING = { type: 3, value: \"PAVEMENTSURFACEMARKING\" };\n IfcSurfaceFeatureTypeEnum.RUMBLESTRIP = { type: 3, value: \"RUMBLESTRIP\" };\n IfcSurfaceFeatureTypeEnum.SYMBOLMARKING = { type: 3, value: \"SYMBOLMARKING\" };\n IfcSurfaceFeatureTypeEnum.TAG = { type: 3, value: \"TAG\" };\n IfcSurfaceFeatureTypeEnum.TRANSVERSERUMBLESTRIP = { type: 3, value: \"TRANSVERSERUMBLESTRIP\" };\n IfcSurfaceFeatureTypeEnum.TREATMENT = { type: 3, value: \"TREATMENT\" };\n IfcSurfaceFeatureTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSurfaceFeatureTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcSurfaceFeatureTypeEnum = IfcSurfaceFeatureTypeEnum;\n class IfcSurfaceSide {\n }\n IfcSurfaceSide.BOTH = { type: 3, value: \"BOTH\" };\n IfcSurfaceSide.NEGATIVE = { type: 3, value: \"NEGATIVE\" };\n IfcSurfaceSide.POSITIVE = { type: 3, value: \"POSITIVE\" };\n IFC4X32.IfcSurfaceSide = IfcSurfaceSide;\n class IfcSwitchingDeviceTypeEnum {\n }\n IfcSwitchingDeviceTypeEnum.CONTACTOR = { type: 3, value: \"CONTACTOR\" };\n IfcSwitchingDeviceTypeEnum.DIMMERSWITCH = { type: 3, value: \"DIMMERSWITCH\" };\n IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP = { type: 3, value: \"EMERGENCYSTOP\" };\n IfcSwitchingDeviceTypeEnum.KEYPAD = { type: 3, value: \"KEYPAD\" };\n IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH = { type: 3, value: \"MOMENTARYSWITCH\" };\n IfcSwitchingDeviceTypeEnum.RELAY = { type: 3, value: \"RELAY\" };\n IfcSwitchingDeviceTypeEnum.SELECTORSWITCH = { type: 3, value: \"SELECTORSWITCH\" };\n IfcSwitchingDeviceTypeEnum.STARTER = { type: 3, value: \"STARTER\" };\n IfcSwitchingDeviceTypeEnum.START_AND_STOP_EQUIPMENT = { type: 3, value: \"START_AND_STOP_EQUIPMENT\" };\n IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR = { type: 3, value: \"SWITCHDISCONNECTOR\" };\n IfcSwitchingDeviceTypeEnum.TOGGLESWITCH = { type: 3, value: \"TOGGLESWITCH\" };\n IfcSwitchingDeviceTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSwitchingDeviceTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcSwitchingDeviceTypeEnum = IfcSwitchingDeviceTypeEnum;\n class IfcSystemFurnitureElementTypeEnum {\n }\n IfcSystemFurnitureElementTypeEnum.PANEL = { type: 3, value: \"PANEL\" };\n IfcSystemFurnitureElementTypeEnum.SUBRACK = { type: 3, value: \"SUBRACK\" };\n IfcSystemFurnitureElementTypeEnum.WORKSURFACE = { type: 3, value: \"WORKSURFACE\" };\n IfcSystemFurnitureElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcSystemFurnitureElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcSystemFurnitureElementTypeEnum = IfcSystemFurnitureElementTypeEnum;\n class IfcTankTypeEnum {\n }\n IfcTankTypeEnum.BASIN = { type: 3, value: \"BASIN\" };\n IfcTankTypeEnum.BREAKPRESSURE = { type: 3, value: \"BREAKPRESSURE\" };\n IfcTankTypeEnum.EXPANSION = { type: 3, value: \"EXPANSION\" };\n IfcTankTypeEnum.FEEDANDEXPANSION = { type: 3, value: \"FEEDANDEXPANSION\" };\n IfcTankTypeEnum.OILRETENTIONTRAY = { type: 3, value: \"OILRETENTIONTRAY\" };\n IfcTankTypeEnum.PRESSUREVESSEL = { type: 3, value: \"PRESSUREVESSEL\" };\n IfcTankTypeEnum.STORAGE = { type: 3, value: \"STORAGE\" };\n IfcTankTypeEnum.VESSEL = { type: 3, value: \"VESSEL\" };\n IfcTankTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcTankTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcTankTypeEnum = IfcTankTypeEnum;\n class IfcTaskDurationEnum {\n }\n IfcTaskDurationEnum.ELAPSEDTIME = { type: 3, value: \"ELAPSEDTIME\" };\n IfcTaskDurationEnum.WORKTIME = { type: 3, value: \"WORKTIME\" };\n IfcTaskDurationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcTaskDurationEnum = IfcTaskDurationEnum;\n class IfcTaskTypeEnum {\n }\n IfcTaskTypeEnum.ADJUSTMENT = { type: 3, value: \"ADJUSTMENT\" };\n IfcTaskTypeEnum.ATTENDANCE = { type: 3, value: \"ATTENDANCE\" };\n IfcTaskTypeEnum.CALIBRATION = { type: 3, value: \"CALIBRATION\" };\n IfcTaskTypeEnum.CONSTRUCTION = { type: 3, value: \"CONSTRUCTION\" };\n IfcTaskTypeEnum.DEMOLITION = { type: 3, value: \"DEMOLITION\" };\n IfcTaskTypeEnum.DISMANTLE = { type: 3, value: \"DISMANTLE\" };\n IfcTaskTypeEnum.DISPOSAL = { type: 3, value: \"DISPOSAL\" };\n IfcTaskTypeEnum.EMERGENCY = { type: 3, value: \"EMERGENCY\" };\n IfcTaskTypeEnum.INSPECTION = { type: 3, value: \"INSPECTION\" };\n IfcTaskTypeEnum.INSTALLATION = { type: 3, value: \"INSTALLATION\" };\n IfcTaskTypeEnum.LOGISTIC = { type: 3, value: \"LOGISTIC\" };\n IfcTaskTypeEnum.MAINTENANCE = { type: 3, value: \"MAINTENANCE\" };\n IfcTaskTypeEnum.MOVE = { type: 3, value: \"MOVE\" };\n IfcTaskTypeEnum.OPERATION = { type: 3, value: \"OPERATION\" };\n IfcTaskTypeEnum.REMOVAL = { type: 3, value: \"REMOVAL\" };\n IfcTaskTypeEnum.RENOVATION = { type: 3, value: \"RENOVATION\" };\n IfcTaskTypeEnum.SAFETY = { type: 3, value: \"SAFETY\" };\n IfcTaskTypeEnum.SHUTDOWN = { type: 3, value: \"SHUTDOWN\" };\n IfcTaskTypeEnum.STARTUP = { type: 3, value: \"STARTUP\" };\n IfcTaskTypeEnum.TESTING = { type: 3, value: \"TESTING\" };\n IfcTaskTypeEnum.TROUBLESHOOTING = { type: 3, value: \"TROUBLESHOOTING\" };\n IfcTaskTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcTaskTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcTaskTypeEnum = IfcTaskTypeEnum;\n class IfcTendonAnchorTypeEnum {\n }\n IfcTendonAnchorTypeEnum.COUPLER = { type: 3, value: \"COUPLER\" };\n IfcTendonAnchorTypeEnum.FIXED_END = { type: 3, value: \"FIXED_END\" };\n IfcTendonAnchorTypeEnum.TENSIONING_END = { type: 3, value: \"TENSIONING_END\" };\n IfcTendonAnchorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcTendonAnchorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcTendonAnchorTypeEnum = IfcTendonAnchorTypeEnum;\n class IfcTendonConduitTypeEnum {\n }\n IfcTendonConduitTypeEnum.COUPLER = { type: 3, value: \"COUPLER\" };\n IfcTendonConduitTypeEnum.DIABOLO = { type: 3, value: \"DIABOLO\" };\n IfcTendonConduitTypeEnum.DUCT = { type: 3, value: \"DUCT\" };\n IfcTendonConduitTypeEnum.GROUTING_DUCT = { type: 3, value: \"GROUTING_DUCT\" };\n IfcTendonConduitTypeEnum.TRUMPET = { type: 3, value: \"TRUMPET\" };\n IfcTendonConduitTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcTendonConduitTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcTendonConduitTypeEnum = IfcTendonConduitTypeEnum;\n class IfcTendonTypeEnum {\n }\n IfcTendonTypeEnum.BAR = { type: 3, value: \"BAR\" };\n IfcTendonTypeEnum.COATED = { type: 3, value: \"COATED\" };\n IfcTendonTypeEnum.STRAND = { type: 3, value: \"STRAND\" };\n IfcTendonTypeEnum.WIRE = { type: 3, value: \"WIRE\" };\n IfcTendonTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcTendonTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcTendonTypeEnum = IfcTendonTypeEnum;\n class IfcTextPath {\n }\n IfcTextPath.DOWN = { type: 3, value: \"DOWN\" };\n IfcTextPath.LEFT = { type: 3, value: \"LEFT\" };\n IfcTextPath.RIGHT = { type: 3, value: \"RIGHT\" };\n IfcTextPath.UP = { type: 3, value: \"UP\" };\n IFC4X32.IfcTextPath = IfcTextPath;\n class IfcTimeSeriesDataTypeEnum {\n }\n IfcTimeSeriesDataTypeEnum.CONTINUOUS = { type: 3, value: \"CONTINUOUS\" };\n IfcTimeSeriesDataTypeEnum.DISCRETE = { type: 3, value: \"DISCRETE\" };\n IfcTimeSeriesDataTypeEnum.DISCRETEBINARY = { type: 3, value: \"DISCRETEBINARY\" };\n IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY = { type: 3, value: \"PIECEWISEBINARY\" };\n IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT = { type: 3, value: \"PIECEWISECONSTANT\" };\n IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS = { type: 3, value: \"PIECEWISECONTINUOUS\" };\n IfcTimeSeriesDataTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcTimeSeriesDataTypeEnum = IfcTimeSeriesDataTypeEnum;\n class IfcTrackElementTypeEnum {\n }\n IfcTrackElementTypeEnum.BLOCKINGDEVICE = { type: 3, value: \"BLOCKINGDEVICE\" };\n IfcTrackElementTypeEnum.DERAILER = { type: 3, value: \"DERAILER\" };\n IfcTrackElementTypeEnum.FROG = { type: 3, value: \"FROG\" };\n IfcTrackElementTypeEnum.HALF_SET_OF_BLADES = { type: 3, value: \"HALF_SET_OF_BLADES\" };\n IfcTrackElementTypeEnum.SLEEPER = { type: 3, value: \"SLEEPER\" };\n IfcTrackElementTypeEnum.SPEEDREGULATOR = { type: 3, value: \"SPEEDREGULATOR\" };\n IfcTrackElementTypeEnum.TRACKENDOFALIGNMENT = { type: 3, value: \"TRACKENDOFALIGNMENT\" };\n IfcTrackElementTypeEnum.VEHICLESTOP = { type: 3, value: \"VEHICLESTOP\" };\n IfcTrackElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcTrackElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcTrackElementTypeEnum = IfcTrackElementTypeEnum;\n class IfcTransformerTypeEnum {\n }\n IfcTransformerTypeEnum.CHOPPER = { type: 3, value: \"CHOPPER\" };\n IfcTransformerTypeEnum.COMBINED = { type: 3, value: \"COMBINED\" };\n IfcTransformerTypeEnum.CURRENT = { type: 3, value: \"CURRENT\" };\n IfcTransformerTypeEnum.FREQUENCY = { type: 3, value: \"FREQUENCY\" };\n IfcTransformerTypeEnum.INVERTER = { type: 3, value: \"INVERTER\" };\n IfcTransformerTypeEnum.RECTIFIER = { type: 3, value: \"RECTIFIER\" };\n IfcTransformerTypeEnum.VOLTAGE = { type: 3, value: \"VOLTAGE\" };\n IfcTransformerTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcTransformerTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcTransformerTypeEnum = IfcTransformerTypeEnum;\n class IfcTransitionCode {\n }\n IfcTransitionCode.CONTINUOUS = { type: 3, value: \"CONTINUOUS\" };\n IfcTransitionCode.CONTSAMEGRADIENT = { type: 3, value: \"CONTSAMEGRADIENT\" };\n IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE = { type: 3, value: \"CONTSAMEGRADIENTSAMECURVATURE\" };\n IfcTransitionCode.DISCONTINUOUS = { type: 3, value: \"DISCONTINUOUS\" };\n IFC4X32.IfcTransitionCode = IfcTransitionCode;\n class IfcTransportElementTypeEnum {\n }\n IfcTransportElementTypeEnum.CRANEWAY = { type: 3, value: \"CRANEWAY\" };\n IfcTransportElementTypeEnum.ELEVATOR = { type: 3, value: \"ELEVATOR\" };\n IfcTransportElementTypeEnum.ESCALATOR = { type: 3, value: \"ESCALATOR\" };\n IfcTransportElementTypeEnum.HAULINGGEAR = { type: 3, value: \"HAULINGGEAR\" };\n IfcTransportElementTypeEnum.LIFTINGGEAR = { type: 3, value: \"LIFTINGGEAR\" };\n IfcTransportElementTypeEnum.MOVINGWALKWAY = { type: 3, value: \"MOVINGWALKWAY\" };\n IfcTransportElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcTransportElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcTransportElementTypeEnum = IfcTransportElementTypeEnum;\n class IfcTrimmingPreference {\n }\n IfcTrimmingPreference.CARTESIAN = { type: 3, value: \"CARTESIAN\" };\n IfcTrimmingPreference.PARAMETER = { type: 3, value: \"PARAMETER\" };\n IfcTrimmingPreference.UNSPECIFIED = { type: 3, value: \"UNSPECIFIED\" };\n IFC4X32.IfcTrimmingPreference = IfcTrimmingPreference;\n class IfcTubeBundleTypeEnum {\n }\n IfcTubeBundleTypeEnum.FINNED = { type: 3, value: \"FINNED\" };\n IfcTubeBundleTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcTubeBundleTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcTubeBundleTypeEnum = IfcTubeBundleTypeEnum;\n class IfcUnitEnum {\n }\n IfcUnitEnum.ABSORBEDDOSEUNIT = { type: 3, value: \"ABSORBEDDOSEUNIT\" };\n IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT = { type: 3, value: \"AMOUNTOFSUBSTANCEUNIT\" };\n IfcUnitEnum.AREAUNIT = { type: 3, value: \"AREAUNIT\" };\n IfcUnitEnum.DOSEEQUIVALENTUNIT = { type: 3, value: \"DOSEEQUIVALENTUNIT\" };\n IfcUnitEnum.ELECTRICCAPACITANCEUNIT = { type: 3, value: \"ELECTRICCAPACITANCEUNIT\" };\n IfcUnitEnum.ELECTRICCHARGEUNIT = { type: 3, value: \"ELECTRICCHARGEUNIT\" };\n IfcUnitEnum.ELECTRICCONDUCTANCEUNIT = { type: 3, value: \"ELECTRICCONDUCTANCEUNIT\" };\n IfcUnitEnum.ELECTRICCURRENTUNIT = { type: 3, value: \"ELECTRICCURRENTUNIT\" };\n IfcUnitEnum.ELECTRICRESISTANCEUNIT = { type: 3, value: \"ELECTRICRESISTANCEUNIT\" };\n IfcUnitEnum.ELECTRICVOLTAGEUNIT = { type: 3, value: \"ELECTRICVOLTAGEUNIT\" };\n IfcUnitEnum.ENERGYUNIT = { type: 3, value: \"ENERGYUNIT\" };\n IfcUnitEnum.FORCEUNIT = { type: 3, value: \"FORCEUNIT\" };\n IfcUnitEnum.FREQUENCYUNIT = { type: 3, value: \"FREQUENCYUNIT\" };\n IfcUnitEnum.ILLUMINANCEUNIT = { type: 3, value: \"ILLUMINANCEUNIT\" };\n IfcUnitEnum.INDUCTANCEUNIT = { type: 3, value: \"INDUCTANCEUNIT\" };\n IfcUnitEnum.LENGTHUNIT = { type: 3, value: \"LENGTHUNIT\" };\n IfcUnitEnum.LUMINOUSFLUXUNIT = { type: 3, value: \"LUMINOUSFLUXUNIT\" };\n IfcUnitEnum.LUMINOUSINTENSITYUNIT = { type: 3, value: \"LUMINOUSINTENSITYUNIT\" };\n IfcUnitEnum.MAGNETICFLUXDENSITYUNIT = { type: 3, value: \"MAGNETICFLUXDENSITYUNIT\" };\n IfcUnitEnum.MAGNETICFLUXUNIT = { type: 3, value: \"MAGNETICFLUXUNIT\" };\n IfcUnitEnum.MASSUNIT = { type: 3, value: \"MASSUNIT\" };\n IfcUnitEnum.PLANEANGLEUNIT = { type: 3, value: \"PLANEANGLEUNIT\" };\n IfcUnitEnum.POWERUNIT = { type: 3, value: \"POWERUNIT\" };\n IfcUnitEnum.PRESSUREUNIT = { type: 3, value: \"PRESSUREUNIT\" };\n IfcUnitEnum.RADIOACTIVITYUNIT = { type: 3, value: \"RADIOACTIVITYUNIT\" };\n IfcUnitEnum.SOLIDANGLEUNIT = { type: 3, value: \"SOLIDANGLEUNIT\" };\n IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT = { type: 3, value: \"THERMODYNAMICTEMPERATUREUNIT\" };\n IfcUnitEnum.TIMEUNIT = { type: 3, value: \"TIMEUNIT\" };\n IfcUnitEnum.VOLUMEUNIT = { type: 3, value: \"VOLUMEUNIT\" };\n IfcUnitEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IFC4X32.IfcUnitEnum = IfcUnitEnum;\n class IfcUnitaryControlElementTypeEnum {\n }\n IfcUnitaryControlElementTypeEnum.ALARMPANEL = { type: 3, value: \"ALARMPANEL\" };\n IfcUnitaryControlElementTypeEnum.BASESTATIONCONTROLLER = { type: 3, value: \"BASESTATIONCONTROLLER\" };\n IfcUnitaryControlElementTypeEnum.COMBINED = { type: 3, value: \"COMBINED\" };\n IfcUnitaryControlElementTypeEnum.CONTROLPANEL = { type: 3, value: \"CONTROLPANEL\" };\n IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL = { type: 3, value: \"GASDETECTIONPANEL\" };\n IfcUnitaryControlElementTypeEnum.HUMIDISTAT = { type: 3, value: \"HUMIDISTAT\" };\n IfcUnitaryControlElementTypeEnum.INDICATORPANEL = { type: 3, value: \"INDICATORPANEL\" };\n IfcUnitaryControlElementTypeEnum.MIMICPANEL = { type: 3, value: \"MIMICPANEL\" };\n IfcUnitaryControlElementTypeEnum.THERMOSTAT = { type: 3, value: \"THERMOSTAT\" };\n IfcUnitaryControlElementTypeEnum.WEATHERSTATION = { type: 3, value: \"WEATHERSTATION\" };\n IfcUnitaryControlElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcUnitaryControlElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcUnitaryControlElementTypeEnum = IfcUnitaryControlElementTypeEnum;\n class IfcUnitaryEquipmentTypeEnum {\n }\n IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT = { type: 3, value: \"AIRCONDITIONINGUNIT\" };\n IfcUnitaryEquipmentTypeEnum.AIRHANDLER = { type: 3, value: \"AIRHANDLER\" };\n IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER = { type: 3, value: \"DEHUMIDIFIER\" };\n IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT = { type: 3, value: \"ROOFTOPUNIT\" };\n IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM = { type: 3, value: \"SPLITSYSTEM\" };\n IfcUnitaryEquipmentTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcUnitaryEquipmentTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcUnitaryEquipmentTypeEnum = IfcUnitaryEquipmentTypeEnum;\n class IfcValveTypeEnum {\n }\n IfcValveTypeEnum.AIRRELEASE = { type: 3, value: \"AIRRELEASE\" };\n IfcValveTypeEnum.ANTIVACUUM = { type: 3, value: \"ANTIVACUUM\" };\n IfcValveTypeEnum.CHANGEOVER = { type: 3, value: \"CHANGEOVER\" };\n IfcValveTypeEnum.CHECK = { type: 3, value: \"CHECK\" };\n IfcValveTypeEnum.COMMISSIONING = { type: 3, value: \"COMMISSIONING\" };\n IfcValveTypeEnum.DIVERTING = { type: 3, value: \"DIVERTING\" };\n IfcValveTypeEnum.DOUBLECHECK = { type: 3, value: \"DOUBLECHECK\" };\n IfcValveTypeEnum.DOUBLEREGULATING = { type: 3, value: \"DOUBLEREGULATING\" };\n IfcValveTypeEnum.DRAWOFFCOCK = { type: 3, value: \"DRAWOFFCOCK\" };\n IfcValveTypeEnum.FAUCET = { type: 3, value: \"FAUCET\" };\n IfcValveTypeEnum.FLUSHING = { type: 3, value: \"FLUSHING\" };\n IfcValveTypeEnum.GASCOCK = { type: 3, value: \"GASCOCK\" };\n IfcValveTypeEnum.GASTAP = { type: 3, value: \"GASTAP\" };\n IfcValveTypeEnum.ISOLATING = { type: 3, value: \"ISOLATING\" };\n IfcValveTypeEnum.MIXING = { type: 3, value: \"MIXING\" };\n IfcValveTypeEnum.PRESSUREREDUCING = { type: 3, value: \"PRESSUREREDUCING\" };\n IfcValveTypeEnum.PRESSURERELIEF = { type: 3, value: \"PRESSURERELIEF\" };\n IfcValveTypeEnum.REGULATING = { type: 3, value: \"REGULATING\" };\n IfcValveTypeEnum.SAFETYCUTOFF = { type: 3, value: \"SAFETYCUTOFF\" };\n IfcValveTypeEnum.STEAMTRAP = { type: 3, value: \"STEAMTRAP\" };\n IfcValveTypeEnum.STOPCOCK = { type: 3, value: \"STOPCOCK\" };\n IfcValveTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcValveTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcValveTypeEnum = IfcValveTypeEnum;\n class IfcVehicleTypeEnum {\n }\n IfcVehicleTypeEnum.CARGO = { type: 3, value: \"CARGO\" };\n IfcVehicleTypeEnum.ROLLINGSTOCK = { type: 3, value: \"ROLLINGSTOCK\" };\n IfcVehicleTypeEnum.VEHICLE = { type: 3, value: \"VEHICLE\" };\n IfcVehicleTypeEnum.VEHICLEAIR = { type: 3, value: \"VEHICLEAIR\" };\n IfcVehicleTypeEnum.VEHICLEMARINE = { type: 3, value: \"VEHICLEMARINE\" };\n IfcVehicleTypeEnum.VEHICLETRACKED = { type: 3, value: \"VEHICLETRACKED\" };\n IfcVehicleTypeEnum.VEHICLEWHEELED = { type: 3, value: \"VEHICLEWHEELED\" };\n IfcVehicleTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcVehicleTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcVehicleTypeEnum = IfcVehicleTypeEnum;\n class IfcVibrationDamperTypeEnum {\n }\n IfcVibrationDamperTypeEnum.AXIAL_YIELD = { type: 3, value: \"AXIAL_YIELD\" };\n IfcVibrationDamperTypeEnum.BENDING_YIELD = { type: 3, value: \"BENDING_YIELD\" };\n IfcVibrationDamperTypeEnum.FRICTION = { type: 3, value: \"FRICTION\" };\n IfcVibrationDamperTypeEnum.RUBBER = { type: 3, value: \"RUBBER\" };\n IfcVibrationDamperTypeEnum.SHEAR_YIELD = { type: 3, value: \"SHEAR_YIELD\" };\n IfcVibrationDamperTypeEnum.VISCOUS = { type: 3, value: \"VISCOUS\" };\n IfcVibrationDamperTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcVibrationDamperTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcVibrationDamperTypeEnum = IfcVibrationDamperTypeEnum;\n class IfcVibrationIsolatorTypeEnum {\n }\n IfcVibrationIsolatorTypeEnum.BASE = { type: 3, value: \"BASE\" };\n IfcVibrationIsolatorTypeEnum.COMPRESSION = { type: 3, value: \"COMPRESSION\" };\n IfcVibrationIsolatorTypeEnum.SPRING = { type: 3, value: \"SPRING\" };\n IfcVibrationIsolatorTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcVibrationIsolatorTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcVibrationIsolatorTypeEnum = IfcVibrationIsolatorTypeEnum;\n class IfcVirtualElementTypeEnum {\n }\n IfcVirtualElementTypeEnum.BOUNDARY = { type: 3, value: \"BOUNDARY\" };\n IfcVirtualElementTypeEnum.CLEARANCE = { type: 3, value: \"CLEARANCE\" };\n IfcVirtualElementTypeEnum.PROVISIONFORVOID = { type: 3, value: \"PROVISIONFORVOID\" };\n IfcVirtualElementTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcVirtualElementTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcVirtualElementTypeEnum = IfcVirtualElementTypeEnum;\n class IfcVoidingFeatureTypeEnum {\n }\n IfcVoidingFeatureTypeEnum.CHAMFER = { type: 3, value: \"CHAMFER\" };\n IfcVoidingFeatureTypeEnum.CUTOUT = { type: 3, value: \"CUTOUT\" };\n IfcVoidingFeatureTypeEnum.EDGE = { type: 3, value: \"EDGE\" };\n IfcVoidingFeatureTypeEnum.HOLE = { type: 3, value: \"HOLE\" };\n IfcVoidingFeatureTypeEnum.MITER = { type: 3, value: \"MITER\" };\n IfcVoidingFeatureTypeEnum.NOTCH = { type: 3, value: \"NOTCH\" };\n IfcVoidingFeatureTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcVoidingFeatureTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcVoidingFeatureTypeEnum = IfcVoidingFeatureTypeEnum;\n class IfcWallTypeEnum {\n }\n IfcWallTypeEnum.ELEMENTEDWALL = { type: 3, value: \"ELEMENTEDWALL\" };\n IfcWallTypeEnum.MOVABLE = { type: 3, value: \"MOVABLE\" };\n IfcWallTypeEnum.PARAPET = { type: 3, value: \"PARAPET\" };\n IfcWallTypeEnum.PARTITIONING = { type: 3, value: \"PARTITIONING\" };\n IfcWallTypeEnum.PLUMBINGWALL = { type: 3, value: \"PLUMBINGWALL\" };\n IfcWallTypeEnum.POLYGONAL = { type: 3, value: \"POLYGONAL\" };\n IfcWallTypeEnum.RETAININGWALL = { type: 3, value: \"RETAININGWALL\" };\n IfcWallTypeEnum.SHEAR = { type: 3, value: \"SHEAR\" };\n IfcWallTypeEnum.SOLIDWALL = { type: 3, value: \"SOLIDWALL\" };\n IfcWallTypeEnum.STANDARD = { type: 3, value: \"STANDARD\" };\n IfcWallTypeEnum.WAVEWALL = { type: 3, value: \"WAVEWALL\" };\n IfcWallTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcWallTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcWallTypeEnum = IfcWallTypeEnum;\n class IfcWasteTerminalTypeEnum {\n }\n IfcWasteTerminalTypeEnum.FLOORTRAP = { type: 3, value: \"FLOORTRAP\" };\n IfcWasteTerminalTypeEnum.FLOORWASTE = { type: 3, value: \"FLOORWASTE\" };\n IfcWasteTerminalTypeEnum.GULLYSUMP = { type: 3, value: \"GULLYSUMP\" };\n IfcWasteTerminalTypeEnum.GULLYTRAP = { type: 3, value: \"GULLYTRAP\" };\n IfcWasteTerminalTypeEnum.ROOFDRAIN = { type: 3, value: \"ROOFDRAIN\" };\n IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT = { type: 3, value: \"WASTEDISPOSALUNIT\" };\n IfcWasteTerminalTypeEnum.WASTETRAP = { type: 3, value: \"WASTETRAP\" };\n IfcWasteTerminalTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcWasteTerminalTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcWasteTerminalTypeEnum = IfcWasteTerminalTypeEnum;\n class IfcWindowPanelOperationEnum {\n }\n IfcWindowPanelOperationEnum.BOTTOMHUNG = { type: 3, value: \"BOTTOMHUNG\" };\n IfcWindowPanelOperationEnum.FIXEDCASEMENT = { type: 3, value: \"FIXEDCASEMENT\" };\n IfcWindowPanelOperationEnum.OTHEROPERATION = { type: 3, value: \"OTHEROPERATION\" };\n IfcWindowPanelOperationEnum.PIVOTHORIZONTAL = { type: 3, value: \"PIVOTHORIZONTAL\" };\n IfcWindowPanelOperationEnum.PIVOTVERTICAL = { type: 3, value: \"PIVOTVERTICAL\" };\n IfcWindowPanelOperationEnum.REMOVABLECASEMENT = { type: 3, value: \"REMOVABLECASEMENT\" };\n IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND = { type: 3, value: \"SIDEHUNGLEFTHAND\" };\n IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND = { type: 3, value: \"SIDEHUNGRIGHTHAND\" };\n IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL = { type: 3, value: \"SLIDINGHORIZONTAL\" };\n IfcWindowPanelOperationEnum.SLIDINGVERTICAL = { type: 3, value: \"SLIDINGVERTICAL\" };\n IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND = { type: 3, value: \"TILTANDTURNLEFTHAND\" };\n IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND = { type: 3, value: \"TILTANDTURNRIGHTHAND\" };\n IfcWindowPanelOperationEnum.TOPHUNG = { type: 3, value: \"TOPHUNG\" };\n IfcWindowPanelOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcWindowPanelOperationEnum = IfcWindowPanelOperationEnum;\n class IfcWindowPanelPositionEnum {\n }\n IfcWindowPanelPositionEnum.BOTTOM = { type: 3, value: \"BOTTOM\" };\n IfcWindowPanelPositionEnum.LEFT = { type: 3, value: \"LEFT\" };\n IfcWindowPanelPositionEnum.MIDDLE = { type: 3, value: \"MIDDLE\" };\n IfcWindowPanelPositionEnum.RIGHT = { type: 3, value: \"RIGHT\" };\n IfcWindowPanelPositionEnum.TOP = { type: 3, value: \"TOP\" };\n IfcWindowPanelPositionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcWindowPanelPositionEnum = IfcWindowPanelPositionEnum;\n class IfcWindowStyleConstructionEnum {\n }\n IfcWindowStyleConstructionEnum.ALUMINIUM = { type: 3, value: \"ALUMINIUM\" };\n IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: \"ALUMINIUM_WOOD\" };\n IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: \"HIGH_GRADE_STEEL\" };\n IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION = { type: 3, value: \"OTHER_CONSTRUCTION\" };\n IfcWindowStyleConstructionEnum.PLASTIC = { type: 3, value: \"PLASTIC\" };\n IfcWindowStyleConstructionEnum.STEEL = { type: 3, value: \"STEEL\" };\n IfcWindowStyleConstructionEnum.WOOD = { type: 3, value: \"WOOD\" };\n IfcWindowStyleConstructionEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcWindowStyleConstructionEnum = IfcWindowStyleConstructionEnum;\n class IfcWindowStyleOperationEnum {\n }\n IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: \"DOUBLE_PANEL_HORIZONTAL\" };\n IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: \"DOUBLE_PANEL_VERTICAL\" };\n IfcWindowStyleOperationEnum.SINGLE_PANEL = { type: 3, value: \"SINGLE_PANEL\" };\n IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: \"TRIPLE_PANEL_BOTTOM\" };\n IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: \"TRIPLE_PANEL_HORIZONTAL\" };\n IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT = { type: 3, value: \"TRIPLE_PANEL_LEFT\" };\n IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: \"TRIPLE_PANEL_RIGHT\" };\n IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP = { type: 3, value: \"TRIPLE_PANEL_TOP\" };\n IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: \"TRIPLE_PANEL_VERTICAL\" };\n IfcWindowStyleOperationEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcWindowStyleOperationEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcWindowStyleOperationEnum = IfcWindowStyleOperationEnum;\n class IfcWindowTypeEnum {\n }\n IfcWindowTypeEnum.LIGHTDOME = { type: 3, value: \"LIGHTDOME\" };\n IfcWindowTypeEnum.SKYLIGHT = { type: 3, value: \"SKYLIGHT\" };\n IfcWindowTypeEnum.WINDOW = { type: 3, value: \"WINDOW\" };\n IfcWindowTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcWindowTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcWindowTypeEnum = IfcWindowTypeEnum;\n class IfcWindowTypePartitioningEnum {\n }\n IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: \"DOUBLE_PANEL_HORIZONTAL\" };\n IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: \"DOUBLE_PANEL_VERTICAL\" };\n IfcWindowTypePartitioningEnum.SINGLE_PANEL = { type: 3, value: \"SINGLE_PANEL\" };\n IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: \"TRIPLE_PANEL_BOTTOM\" };\n IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: \"TRIPLE_PANEL_HORIZONTAL\" };\n IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT = { type: 3, value: \"TRIPLE_PANEL_LEFT\" };\n IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: \"TRIPLE_PANEL_RIGHT\" };\n IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP = { type: 3, value: \"TRIPLE_PANEL_TOP\" };\n IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: \"TRIPLE_PANEL_VERTICAL\" };\n IfcWindowTypePartitioningEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcWindowTypePartitioningEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcWindowTypePartitioningEnum = IfcWindowTypePartitioningEnum;\n class IfcWorkCalendarTypeEnum {\n }\n IfcWorkCalendarTypeEnum.FIRSTSHIFT = { type: 3, value: \"FIRSTSHIFT\" };\n IfcWorkCalendarTypeEnum.SECONDSHIFT = { type: 3, value: \"SECONDSHIFT\" };\n IfcWorkCalendarTypeEnum.THIRDSHIFT = { type: 3, value: \"THIRDSHIFT\" };\n IfcWorkCalendarTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcWorkCalendarTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcWorkCalendarTypeEnum = IfcWorkCalendarTypeEnum;\n class IfcWorkPlanTypeEnum {\n }\n IfcWorkPlanTypeEnum.ACTUAL = { type: 3, value: \"ACTUAL\" };\n IfcWorkPlanTypeEnum.BASELINE = { type: 3, value: \"BASELINE\" };\n IfcWorkPlanTypeEnum.PLANNED = { type: 3, value: \"PLANNED\" };\n IfcWorkPlanTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcWorkPlanTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcWorkPlanTypeEnum = IfcWorkPlanTypeEnum;\n class IfcWorkScheduleTypeEnum {\n }\n IfcWorkScheduleTypeEnum.ACTUAL = { type: 3, value: \"ACTUAL\" };\n IfcWorkScheduleTypeEnum.BASELINE = { type: 3, value: \"BASELINE\" };\n IfcWorkScheduleTypeEnum.PLANNED = { type: 3, value: \"PLANNED\" };\n IfcWorkScheduleTypeEnum.USERDEFINED = { type: 3, value: \"USERDEFINED\" };\n IfcWorkScheduleTypeEnum.NOTDEFINED = { type: 3, value: \"NOTDEFINED\" };\n IFC4X32.IfcWorkScheduleTypeEnum = IfcWorkScheduleTypeEnum;\n class IfcActorRole extends IfcLineObject {\n constructor(Role, UserDefinedRole, Description) {\n super();\n this.Role = Role;\n this.UserDefinedRole = UserDefinedRole;\n this.Description = Description;\n this.type = 3630933823;\n }\n }\n IFC4X32.IfcActorRole = IfcActorRole;\n class IfcAddress extends IfcLineObject {\n constructor(Purpose, Description, UserDefinedPurpose) {\n super();\n this.Purpose = Purpose;\n this.Description = Description;\n this.UserDefinedPurpose = UserDefinedPurpose;\n this.type = 618182010;\n }\n }\n IFC4X32.IfcAddress = IfcAddress;\n class IfcAlignmentParameterSegment extends IfcLineObject {\n constructor(StartTag, EndTag) {\n super();\n this.StartTag = StartTag;\n this.EndTag = EndTag;\n this.type = 2879124712;\n }\n }\n IFC4X32.IfcAlignmentParameterSegment = IfcAlignmentParameterSegment;\n class IfcAlignmentVerticalSegment extends IfcAlignmentParameterSegment {\n constructor(StartTag, EndTag, StartDistAlong, HorizontalLength, StartHeight, StartGradient, EndGradient, RadiusOfCurvature, PredefinedType) {\n super(StartTag, EndTag);\n this.StartTag = StartTag;\n this.EndTag = EndTag;\n this.StartDistAlong = StartDistAlong;\n this.HorizontalLength = HorizontalLength;\n this.StartHeight = StartHeight;\n this.StartGradient = StartGradient;\n this.EndGradient = EndGradient;\n this.RadiusOfCurvature = RadiusOfCurvature;\n this.PredefinedType = PredefinedType;\n this.type = 3633395639;\n }\n }\n IFC4X32.IfcAlignmentVerticalSegment = IfcAlignmentVerticalSegment;\n class IfcApplication extends IfcLineObject {\n constructor(ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier) {\n super();\n this.ApplicationDeveloper = ApplicationDeveloper;\n this.Version = Version;\n this.ApplicationFullName = ApplicationFullName;\n this.ApplicationIdentifier = ApplicationIdentifier;\n this.type = 639542469;\n }\n }\n IFC4X32.IfcApplication = IfcApplication;\n class IfcAppliedValue extends IfcLineObject {\n constructor(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.AppliedValue = AppliedValue;\n this.UnitBasis = UnitBasis;\n this.ApplicableDate = ApplicableDate;\n this.FixedUntilDate = FixedUntilDate;\n this.Category = Category;\n this.Condition = Condition;\n this.ArithmeticOperator = ArithmeticOperator;\n this.Components = Components;\n this.type = 411424972;\n }\n }\n IFC4X32.IfcAppliedValue = IfcAppliedValue;\n class IfcApproval extends IfcLineObject {\n constructor(Identifier, Name, Description, TimeOfApproval, Status, Level, Qualifier, RequestingApproval, GivingApproval) {\n super();\n this.Identifier = Identifier;\n this.Name = Name;\n this.Description = Description;\n this.TimeOfApproval = TimeOfApproval;\n this.Status = Status;\n this.Level = Level;\n this.Qualifier = Qualifier;\n this.RequestingApproval = RequestingApproval;\n this.GivingApproval = GivingApproval;\n this.type = 130549933;\n }\n }\n IFC4X32.IfcApproval = IfcApproval;\n class IfcBoundaryCondition extends IfcLineObject {\n constructor(Name) {\n super();\n this.Name = Name;\n this.type = 4037036970;\n }\n }\n IFC4X32.IfcBoundaryCondition = IfcBoundaryCondition;\n class IfcBoundaryEdgeCondition extends IfcBoundaryCondition {\n constructor(Name, TranslationalStiffnessByLengthX, TranslationalStiffnessByLengthY, TranslationalStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ) {\n super(Name);\n this.Name = Name;\n this.TranslationalStiffnessByLengthX = TranslationalStiffnessByLengthX;\n this.TranslationalStiffnessByLengthY = TranslationalStiffnessByLengthY;\n this.TranslationalStiffnessByLengthZ = TranslationalStiffnessByLengthZ;\n this.RotationalStiffnessByLengthX = RotationalStiffnessByLengthX;\n this.RotationalStiffnessByLengthY = RotationalStiffnessByLengthY;\n this.RotationalStiffnessByLengthZ = RotationalStiffnessByLengthZ;\n this.type = 1560379544;\n }\n }\n IFC4X32.IfcBoundaryEdgeCondition = IfcBoundaryEdgeCondition;\n class IfcBoundaryFaceCondition extends IfcBoundaryCondition {\n constructor(Name, TranslationalStiffnessByAreaX, TranslationalStiffnessByAreaY, TranslationalStiffnessByAreaZ) {\n super(Name);\n this.Name = Name;\n this.TranslationalStiffnessByAreaX = TranslationalStiffnessByAreaX;\n this.TranslationalStiffnessByAreaY = TranslationalStiffnessByAreaY;\n this.TranslationalStiffnessByAreaZ = TranslationalStiffnessByAreaZ;\n this.type = 3367102660;\n }\n }\n IFC4X32.IfcBoundaryFaceCondition = IfcBoundaryFaceCondition;\n class IfcBoundaryNodeCondition extends IfcBoundaryCondition {\n constructor(Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ) {\n super(Name);\n this.Name = Name;\n this.TranslationalStiffnessX = TranslationalStiffnessX;\n this.TranslationalStiffnessY = TranslationalStiffnessY;\n this.TranslationalStiffnessZ = TranslationalStiffnessZ;\n this.RotationalStiffnessX = RotationalStiffnessX;\n this.RotationalStiffnessY = RotationalStiffnessY;\n this.RotationalStiffnessZ = RotationalStiffnessZ;\n this.type = 1387855156;\n }\n }\n IFC4X32.IfcBoundaryNodeCondition = IfcBoundaryNodeCondition;\n class IfcBoundaryNodeConditionWarping extends IfcBoundaryNodeCondition {\n constructor(Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness) {\n super(Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ);\n this.Name = Name;\n this.TranslationalStiffnessX = TranslationalStiffnessX;\n this.TranslationalStiffnessY = TranslationalStiffnessY;\n this.TranslationalStiffnessZ = TranslationalStiffnessZ;\n this.RotationalStiffnessX = RotationalStiffnessX;\n this.RotationalStiffnessY = RotationalStiffnessY;\n this.RotationalStiffnessZ = RotationalStiffnessZ;\n this.WarpingStiffness = WarpingStiffness;\n this.type = 2069777674;\n }\n }\n IFC4X32.IfcBoundaryNodeConditionWarping = IfcBoundaryNodeConditionWarping;\n class IfcConnectionGeometry extends IfcLineObject {\n constructor() {\n super();\n this.type = 2859738748;\n }\n }\n IFC4X32.IfcConnectionGeometry = IfcConnectionGeometry;\n class IfcConnectionPointGeometry extends IfcConnectionGeometry {\n constructor(PointOnRelatingElement, PointOnRelatedElement) {\n super();\n this.PointOnRelatingElement = PointOnRelatingElement;\n this.PointOnRelatedElement = PointOnRelatedElement;\n this.type = 2614616156;\n }\n }\n IFC4X32.IfcConnectionPointGeometry = IfcConnectionPointGeometry;\n class IfcConnectionSurfaceGeometry extends IfcConnectionGeometry {\n constructor(SurfaceOnRelatingElement, SurfaceOnRelatedElement) {\n super();\n this.SurfaceOnRelatingElement = SurfaceOnRelatingElement;\n this.SurfaceOnRelatedElement = SurfaceOnRelatedElement;\n this.type = 2732653382;\n }\n }\n IFC4X32.IfcConnectionSurfaceGeometry = IfcConnectionSurfaceGeometry;\n class IfcConnectionVolumeGeometry extends IfcConnectionGeometry {\n constructor(VolumeOnRelatingElement, VolumeOnRelatedElement) {\n super();\n this.VolumeOnRelatingElement = VolumeOnRelatingElement;\n this.VolumeOnRelatedElement = VolumeOnRelatedElement;\n this.type = 775493141;\n }\n }\n IFC4X32.IfcConnectionVolumeGeometry = IfcConnectionVolumeGeometry;\n class IfcConstraint extends IfcLineObject {\n constructor(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.ConstraintGrade = ConstraintGrade;\n this.ConstraintSource = ConstraintSource;\n this.CreatingActor = CreatingActor;\n this.CreationTime = CreationTime;\n this.UserDefinedGrade = UserDefinedGrade;\n this.type = 1959218052;\n }\n }\n IFC4X32.IfcConstraint = IfcConstraint;\n class IfcCoordinateOperation extends IfcLineObject {\n constructor(SourceCRS, TargetCRS) {\n super();\n this.SourceCRS = SourceCRS;\n this.TargetCRS = TargetCRS;\n this.type = 1785450214;\n }\n }\n IFC4X32.IfcCoordinateOperation = IfcCoordinateOperation;\n class IfcCoordinateReferenceSystem extends IfcLineObject {\n constructor(Name, Description, GeodeticDatum, VerticalDatum) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.GeodeticDatum = GeodeticDatum;\n this.VerticalDatum = VerticalDatum;\n this.type = 1466758467;\n }\n }\n IFC4X32.IfcCoordinateReferenceSystem = IfcCoordinateReferenceSystem;\n class IfcCostValue extends IfcAppliedValue {\n constructor(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) {\n super(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components);\n this.Name = Name;\n this.Description = Description;\n this.AppliedValue = AppliedValue;\n this.UnitBasis = UnitBasis;\n this.ApplicableDate = ApplicableDate;\n this.FixedUntilDate = FixedUntilDate;\n this.Category = Category;\n this.Condition = Condition;\n this.ArithmeticOperator = ArithmeticOperator;\n this.Components = Components;\n this.type = 602808272;\n }\n }\n IFC4X32.IfcCostValue = IfcCostValue;\n class IfcDerivedUnit extends IfcLineObject {\n constructor(Elements, UnitType, UserDefinedType, Name) {\n super();\n this.Elements = Elements;\n this.UnitType = UnitType;\n this.UserDefinedType = UserDefinedType;\n this.Name = Name;\n this.type = 1765591967;\n }\n }\n IFC4X32.IfcDerivedUnit = IfcDerivedUnit;\n class IfcDerivedUnitElement extends IfcLineObject {\n constructor(Unit, Exponent) {\n super();\n this.Unit = Unit;\n this.Exponent = Exponent;\n this.type = 1045800335;\n }\n }\n IFC4X32.IfcDerivedUnitElement = IfcDerivedUnitElement;\n class IfcDimensionalExponents extends IfcLineObject {\n constructor(LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent) {\n super();\n this.LengthExponent = LengthExponent;\n this.MassExponent = MassExponent;\n this.TimeExponent = TimeExponent;\n this.ElectricCurrentExponent = ElectricCurrentExponent;\n this.ThermodynamicTemperatureExponent = ThermodynamicTemperatureExponent;\n this.AmountOfSubstanceExponent = AmountOfSubstanceExponent;\n this.LuminousIntensityExponent = LuminousIntensityExponent;\n this.type = 2949456006;\n }\n }\n IFC4X32.IfcDimensionalExponents = IfcDimensionalExponents;\n class IfcExternalInformation extends IfcLineObject {\n constructor() {\n super();\n this.type = 4294318154;\n }\n }\n IFC4X32.IfcExternalInformation = IfcExternalInformation;\n class IfcExternalReference extends IfcLineObject {\n constructor(Location, Identification, Name) {\n super();\n this.Location = Location;\n this.Identification = Identification;\n this.Name = Name;\n this.type = 3200245327;\n }\n }\n IFC4X32.IfcExternalReference = IfcExternalReference;\n class IfcExternallyDefinedHatchStyle extends IfcExternalReference {\n constructor(Location, Identification, Name) {\n super(Location, Identification, Name);\n this.Location = Location;\n this.Identification = Identification;\n this.Name = Name;\n this.type = 2242383968;\n }\n }\n IFC4X32.IfcExternallyDefinedHatchStyle = IfcExternallyDefinedHatchStyle;\n class IfcExternallyDefinedSurfaceStyle extends IfcExternalReference {\n constructor(Location, Identification, Name) {\n super(Location, Identification, Name);\n this.Location = Location;\n this.Identification = Identification;\n this.Name = Name;\n this.type = 1040185647;\n }\n }\n IFC4X32.IfcExternallyDefinedSurfaceStyle = IfcExternallyDefinedSurfaceStyle;\n class IfcExternallyDefinedTextFont extends IfcExternalReference {\n constructor(Location, Identification, Name) {\n super(Location, Identification, Name);\n this.Location = Location;\n this.Identification = Identification;\n this.Name = Name;\n this.type = 3548104201;\n }\n }\n IFC4X32.IfcExternallyDefinedTextFont = IfcExternallyDefinedTextFont;\n class IfcGridAxis extends IfcLineObject {\n constructor(AxisTag, AxisCurve, SameSense) {\n super();\n this.AxisTag = AxisTag;\n this.AxisCurve = AxisCurve;\n this.SameSense = SameSense;\n this.type = 852622518;\n }\n }\n IFC4X32.IfcGridAxis = IfcGridAxis;\n class IfcIrregularTimeSeriesValue extends IfcLineObject {\n constructor(TimeStamp, ListValues) {\n super();\n this.TimeStamp = TimeStamp;\n this.ListValues = ListValues;\n this.type = 3020489413;\n }\n }\n IFC4X32.IfcIrregularTimeSeriesValue = IfcIrregularTimeSeriesValue;\n class IfcLibraryInformation extends IfcExternalInformation {\n constructor(Name, Version, Publisher, VersionDate, Location, Description) {\n super();\n this.Name = Name;\n this.Version = Version;\n this.Publisher = Publisher;\n this.VersionDate = VersionDate;\n this.Location = Location;\n this.Description = Description;\n this.type = 2655187982;\n }\n }\n IFC4X32.IfcLibraryInformation = IfcLibraryInformation;\n class IfcLibraryReference extends IfcExternalReference {\n constructor(Location, Identification, Name, Description, Language, ReferencedLibrary) {\n super(Location, Identification, Name);\n this.Location = Location;\n this.Identification = Identification;\n this.Name = Name;\n this.Description = Description;\n this.Language = Language;\n this.ReferencedLibrary = ReferencedLibrary;\n this.type = 3452421091;\n }\n }\n IFC4X32.IfcLibraryReference = IfcLibraryReference;\n class IfcLightDistributionData extends IfcLineObject {\n constructor(MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity) {\n super();\n this.MainPlaneAngle = MainPlaneAngle;\n this.SecondaryPlaneAngle = SecondaryPlaneAngle;\n this.LuminousIntensity = LuminousIntensity;\n this.type = 4162380809;\n }\n }\n IFC4X32.IfcLightDistributionData = IfcLightDistributionData;\n class IfcLightIntensityDistribution extends IfcLineObject {\n constructor(LightDistributionCurve, DistributionData) {\n super();\n this.LightDistributionCurve = LightDistributionCurve;\n this.DistributionData = DistributionData;\n this.type = 1566485204;\n }\n }\n IFC4X32.IfcLightIntensityDistribution = IfcLightIntensityDistribution;\n class IfcMapConversion extends IfcCoordinateOperation {\n constructor(SourceCRS, TargetCRS, Eastings, Northings, OrthogonalHeight, XAxisAbscissa, XAxisOrdinate, Scale, ScaleY, ScaleZ) {\n super(SourceCRS, TargetCRS);\n this.SourceCRS = SourceCRS;\n this.TargetCRS = TargetCRS;\n this.Eastings = Eastings;\n this.Northings = Northings;\n this.OrthogonalHeight = OrthogonalHeight;\n this.XAxisAbscissa = XAxisAbscissa;\n this.XAxisOrdinate = XAxisOrdinate;\n this.Scale = Scale;\n this.ScaleY = ScaleY;\n this.ScaleZ = ScaleZ;\n this.type = 3057273783;\n }\n }\n IFC4X32.IfcMapConversion = IfcMapConversion;\n class IfcMaterialClassificationRelationship extends IfcLineObject {\n constructor(MaterialClassifications, ClassifiedMaterial) {\n super();\n this.MaterialClassifications = MaterialClassifications;\n this.ClassifiedMaterial = ClassifiedMaterial;\n this.type = 1847130766;\n }\n }\n IFC4X32.IfcMaterialClassificationRelationship = IfcMaterialClassificationRelationship;\n class IfcMaterialDefinition extends IfcLineObject {\n constructor() {\n super();\n this.type = 760658860;\n }\n }\n IFC4X32.IfcMaterialDefinition = IfcMaterialDefinition;\n class IfcMaterialLayer extends IfcMaterialDefinition {\n constructor(Material, LayerThickness, IsVentilated, Name, Description, Category, Priority) {\n super();\n this.Material = Material;\n this.LayerThickness = LayerThickness;\n this.IsVentilated = IsVentilated;\n this.Name = Name;\n this.Description = Description;\n this.Category = Category;\n this.Priority = Priority;\n this.type = 248100487;\n }\n }\n IFC4X32.IfcMaterialLayer = IfcMaterialLayer;\n class IfcMaterialLayerSet extends IfcMaterialDefinition {\n constructor(MaterialLayers, LayerSetName, Description) {\n super();\n this.MaterialLayers = MaterialLayers;\n this.LayerSetName = LayerSetName;\n this.Description = Description;\n this.type = 3303938423;\n }\n }\n IFC4X32.IfcMaterialLayerSet = IfcMaterialLayerSet;\n class IfcMaterialLayerWithOffsets extends IfcMaterialLayer {\n constructor(Material, LayerThickness, IsVentilated, Name, Description, Category, Priority, OffsetDirection, OffsetValues) {\n super(Material, LayerThickness, IsVentilated, Name, Description, Category, Priority);\n this.Material = Material;\n this.LayerThickness = LayerThickness;\n this.IsVentilated = IsVentilated;\n this.Name = Name;\n this.Description = Description;\n this.Category = Category;\n this.Priority = Priority;\n this.OffsetDirection = OffsetDirection;\n this.OffsetValues = OffsetValues;\n this.type = 1847252529;\n }\n }\n IFC4X32.IfcMaterialLayerWithOffsets = IfcMaterialLayerWithOffsets;\n class IfcMaterialList extends IfcLineObject {\n constructor(Materials) {\n super();\n this.Materials = Materials;\n this.type = 2199411900;\n }\n }\n IFC4X32.IfcMaterialList = IfcMaterialList;\n class IfcMaterialProfile extends IfcMaterialDefinition {\n constructor(Name, Description, Material, Profile, Priority, Category) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.Material = Material;\n this.Profile = Profile;\n this.Priority = Priority;\n this.Category = Category;\n this.type = 2235152071;\n }\n }\n IFC4X32.IfcMaterialProfile = IfcMaterialProfile;\n class IfcMaterialProfileSet extends IfcMaterialDefinition {\n constructor(Name, Description, MaterialProfiles, CompositeProfile) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.MaterialProfiles = MaterialProfiles;\n this.CompositeProfile = CompositeProfile;\n this.type = 164193824;\n }\n }\n IFC4X32.IfcMaterialProfileSet = IfcMaterialProfileSet;\n class IfcMaterialProfileWithOffsets extends IfcMaterialProfile {\n constructor(Name, Description, Material, Profile, Priority, Category, OffsetValues) {\n super(Name, Description, Material, Profile, Priority, Category);\n this.Name = Name;\n this.Description = Description;\n this.Material = Material;\n this.Profile = Profile;\n this.Priority = Priority;\n this.Category = Category;\n this.OffsetValues = OffsetValues;\n this.type = 552965576;\n }\n }\n IFC4X32.IfcMaterialProfileWithOffsets = IfcMaterialProfileWithOffsets;\n class IfcMaterialUsageDefinition extends IfcLineObject {\n constructor() {\n super();\n this.type = 1507914824;\n }\n }\n IFC4X32.IfcMaterialUsageDefinition = IfcMaterialUsageDefinition;\n class IfcMeasureWithUnit extends IfcLineObject {\n constructor(ValueComponent, UnitComponent) {\n super();\n this.ValueComponent = ValueComponent;\n this.UnitComponent = UnitComponent;\n this.type = 2597039031;\n }\n }\n IFC4X32.IfcMeasureWithUnit = IfcMeasureWithUnit;\n class IfcMetric extends IfcConstraint {\n constructor(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue, ReferencePath) {\n super(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade);\n this.Name = Name;\n this.Description = Description;\n this.ConstraintGrade = ConstraintGrade;\n this.ConstraintSource = ConstraintSource;\n this.CreatingActor = CreatingActor;\n this.CreationTime = CreationTime;\n this.UserDefinedGrade = UserDefinedGrade;\n this.Benchmark = Benchmark;\n this.ValueSource = ValueSource;\n this.DataValue = DataValue;\n this.ReferencePath = ReferencePath;\n this.type = 3368373690;\n }\n }\n IFC4X32.IfcMetric = IfcMetric;\n class IfcMonetaryUnit extends IfcLineObject {\n constructor(Currency) {\n super();\n this.Currency = Currency;\n this.type = 2706619895;\n }\n }\n IFC4X32.IfcMonetaryUnit = IfcMonetaryUnit;\n class IfcNamedUnit extends IfcLineObject {\n constructor(Dimensions, UnitType) {\n super();\n this.Dimensions = Dimensions;\n this.UnitType = UnitType;\n this.type = 1918398963;\n }\n }\n IFC4X32.IfcNamedUnit = IfcNamedUnit;\n class IfcObjectPlacement extends IfcLineObject {\n constructor(PlacementRelTo) {\n super();\n this.PlacementRelTo = PlacementRelTo;\n this.type = 3701648758;\n }\n }\n IFC4X32.IfcObjectPlacement = IfcObjectPlacement;\n class IfcObjective extends IfcConstraint {\n constructor(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, LogicalAggregator, ObjectiveQualifier, UserDefinedQualifier) {\n super(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade);\n this.Name = Name;\n this.Description = Description;\n this.ConstraintGrade = ConstraintGrade;\n this.ConstraintSource = ConstraintSource;\n this.CreatingActor = CreatingActor;\n this.CreationTime = CreationTime;\n this.UserDefinedGrade = UserDefinedGrade;\n this.BenchmarkValues = BenchmarkValues;\n this.LogicalAggregator = LogicalAggregator;\n this.ObjectiveQualifier = ObjectiveQualifier;\n this.UserDefinedQualifier = UserDefinedQualifier;\n this.type = 2251480897;\n }\n }\n IFC4X32.IfcObjective = IfcObjective;\n class IfcOrganization extends IfcLineObject {\n constructor(Identification, Name, Description, Roles, Addresses) {\n super();\n this.Identification = Identification;\n this.Name = Name;\n this.Description = Description;\n this.Roles = Roles;\n this.Addresses = Addresses;\n this.type = 4251960020;\n }\n }\n IFC4X32.IfcOrganization = IfcOrganization;\n class IfcOwnerHistory extends IfcLineObject {\n constructor(OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate) {\n super();\n this.OwningUser = OwningUser;\n this.OwningApplication = OwningApplication;\n this.State = State;\n this.ChangeAction = ChangeAction;\n this.LastModifiedDate = LastModifiedDate;\n this.LastModifyingUser = LastModifyingUser;\n this.LastModifyingApplication = LastModifyingApplication;\n this.CreationDate = CreationDate;\n this.type = 1207048766;\n }\n }\n IFC4X32.IfcOwnerHistory = IfcOwnerHistory;\n class IfcPerson extends IfcLineObject {\n constructor(Identification, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses) {\n super();\n this.Identification = Identification;\n this.FamilyName = FamilyName;\n this.GivenName = GivenName;\n this.MiddleNames = MiddleNames;\n this.PrefixTitles = PrefixTitles;\n this.SuffixTitles = SuffixTitles;\n this.Roles = Roles;\n this.Addresses = Addresses;\n this.type = 2077209135;\n }\n }\n IFC4X32.IfcPerson = IfcPerson;\n class IfcPersonAndOrganization extends IfcLineObject {\n constructor(ThePerson, TheOrganization, Roles) {\n super();\n this.ThePerson = ThePerson;\n this.TheOrganization = TheOrganization;\n this.Roles = Roles;\n this.type = 101040310;\n }\n }\n IFC4X32.IfcPersonAndOrganization = IfcPersonAndOrganization;\n class IfcPhysicalQuantity extends IfcLineObject {\n constructor(Name, Description) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.type = 2483315170;\n }\n }\n IFC4X32.IfcPhysicalQuantity = IfcPhysicalQuantity;\n class IfcPhysicalSimpleQuantity extends IfcPhysicalQuantity {\n constructor(Name, Description, Unit) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.Unit = Unit;\n this.type = 2226359599;\n }\n }\n IFC4X32.IfcPhysicalSimpleQuantity = IfcPhysicalSimpleQuantity;\n class IfcPostalAddress extends IfcAddress {\n constructor(Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country) {\n super(Purpose, Description, UserDefinedPurpose);\n this.Purpose = Purpose;\n this.Description = Description;\n this.UserDefinedPurpose = UserDefinedPurpose;\n this.InternalLocation = InternalLocation;\n this.AddressLines = AddressLines;\n this.PostalBox = PostalBox;\n this.Town = Town;\n this.Region = Region;\n this.PostalCode = PostalCode;\n this.Country = Country;\n this.type = 3355820592;\n }\n }\n IFC4X32.IfcPostalAddress = IfcPostalAddress;\n class IfcPresentationItem extends IfcLineObject {\n constructor() {\n super();\n this.type = 677532197;\n }\n }\n IFC4X32.IfcPresentationItem = IfcPresentationItem;\n class IfcPresentationLayerAssignment extends IfcLineObject {\n constructor(Name, Description, AssignedItems, Identifier) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.AssignedItems = AssignedItems;\n this.Identifier = Identifier;\n this.type = 2022622350;\n }\n }\n IFC4X32.IfcPresentationLayerAssignment = IfcPresentationLayerAssignment;\n class IfcPresentationLayerWithStyle extends IfcPresentationLayerAssignment {\n constructor(Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles) {\n super(Name, Description, AssignedItems, Identifier);\n this.Name = Name;\n this.Description = Description;\n this.AssignedItems = AssignedItems;\n this.Identifier = Identifier;\n this.LayerOn = LayerOn;\n this.LayerFrozen = LayerFrozen;\n this.LayerBlocked = LayerBlocked;\n this.LayerStyles = LayerStyles;\n this.type = 1304840413;\n }\n }\n IFC4X32.IfcPresentationLayerWithStyle = IfcPresentationLayerWithStyle;\n class IfcPresentationStyle extends IfcLineObject {\n constructor(Name) {\n super();\n this.Name = Name;\n this.type = 3119450353;\n }\n }\n IFC4X32.IfcPresentationStyle = IfcPresentationStyle;\n class IfcProductRepresentation extends IfcLineObject {\n constructor(Name, Description, Representations) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.Representations = Representations;\n this.type = 2095639259;\n }\n }\n IFC4X32.IfcProductRepresentation = IfcProductRepresentation;\n class IfcProfileDef extends IfcLineObject {\n constructor(ProfileType, ProfileName) {\n super();\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.type = 3958567839;\n }\n }\n IFC4X32.IfcProfileDef = IfcProfileDef;\n class IfcProjectedCRS extends IfcCoordinateReferenceSystem {\n constructor(Name, Description, GeodeticDatum, VerticalDatum, MapProjection, MapZone, MapUnit) {\n super(Name, Description, GeodeticDatum, VerticalDatum);\n this.Name = Name;\n this.Description = Description;\n this.GeodeticDatum = GeodeticDatum;\n this.VerticalDatum = VerticalDatum;\n this.MapProjection = MapProjection;\n this.MapZone = MapZone;\n this.MapUnit = MapUnit;\n this.type = 3843373140;\n }\n }\n IFC4X32.IfcProjectedCRS = IfcProjectedCRS;\n class IfcPropertyAbstraction extends IfcLineObject {\n constructor() {\n super();\n this.type = 986844984;\n }\n }\n IFC4X32.IfcPropertyAbstraction = IfcPropertyAbstraction;\n class IfcPropertyEnumeration extends IfcPropertyAbstraction {\n constructor(Name, EnumerationValues, Unit) {\n super();\n this.Name = Name;\n this.EnumerationValues = EnumerationValues;\n this.Unit = Unit;\n this.type = 3710013099;\n }\n }\n IFC4X32.IfcPropertyEnumeration = IfcPropertyEnumeration;\n class IfcQuantityArea extends IfcPhysicalSimpleQuantity {\n constructor(Name, Description, Unit, AreaValue, Formula) {\n super(Name, Description, Unit);\n this.Name = Name;\n this.Description = Description;\n this.Unit = Unit;\n this.AreaValue = AreaValue;\n this.Formula = Formula;\n this.type = 2044713172;\n }\n }\n IFC4X32.IfcQuantityArea = IfcQuantityArea;\n class IfcQuantityCount extends IfcPhysicalSimpleQuantity {\n constructor(Name, Description, Unit, CountValue, Formula) {\n super(Name, Description, Unit);\n this.Name = Name;\n this.Description = Description;\n this.Unit = Unit;\n this.CountValue = CountValue;\n this.Formula = Formula;\n this.type = 2093928680;\n }\n }\n IFC4X32.IfcQuantityCount = IfcQuantityCount;\n class IfcQuantityLength extends IfcPhysicalSimpleQuantity {\n constructor(Name, Description, Unit, LengthValue, Formula) {\n super(Name, Description, Unit);\n this.Name = Name;\n this.Description = Description;\n this.Unit = Unit;\n this.LengthValue = LengthValue;\n this.Formula = Formula;\n this.type = 931644368;\n }\n }\n IFC4X32.IfcQuantityLength = IfcQuantityLength;\n class IfcQuantityNumber extends IfcPhysicalSimpleQuantity {\n constructor(Name, Description, Unit, NumberValue, Formula) {\n super(Name, Description, Unit);\n this.Name = Name;\n this.Description = Description;\n this.Unit = Unit;\n this.NumberValue = NumberValue;\n this.Formula = Formula;\n this.type = 2691318326;\n }\n }\n IFC4X32.IfcQuantityNumber = IfcQuantityNumber;\n class IfcQuantityTime extends IfcPhysicalSimpleQuantity {\n constructor(Name, Description, Unit, TimeValue, Formula) {\n super(Name, Description, Unit);\n this.Name = Name;\n this.Description = Description;\n this.Unit = Unit;\n this.TimeValue = TimeValue;\n this.Formula = Formula;\n this.type = 3252649465;\n }\n }\n IFC4X32.IfcQuantityTime = IfcQuantityTime;\n class IfcQuantityVolume extends IfcPhysicalSimpleQuantity {\n constructor(Name, Description, Unit, VolumeValue, Formula) {\n super(Name, Description, Unit);\n this.Name = Name;\n this.Description = Description;\n this.Unit = Unit;\n this.VolumeValue = VolumeValue;\n this.Formula = Formula;\n this.type = 2405470396;\n }\n }\n IFC4X32.IfcQuantityVolume = IfcQuantityVolume;\n class IfcQuantityWeight extends IfcPhysicalSimpleQuantity {\n constructor(Name, Description, Unit, WeightValue, Formula) {\n super(Name, Description, Unit);\n this.Name = Name;\n this.Description = Description;\n this.Unit = Unit;\n this.WeightValue = WeightValue;\n this.Formula = Formula;\n this.type = 825690147;\n }\n }\n IFC4X32.IfcQuantityWeight = IfcQuantityWeight;\n class IfcRecurrencePattern extends IfcLineObject {\n constructor(RecurrenceType, DayComponent, WeekdayComponent, MonthComponent, Position, Interval, Occurrences, TimePeriods) {\n super();\n this.RecurrenceType = RecurrenceType;\n this.DayComponent = DayComponent;\n this.WeekdayComponent = WeekdayComponent;\n this.MonthComponent = MonthComponent;\n this.Position = Position;\n this.Interval = Interval;\n this.Occurrences = Occurrences;\n this.TimePeriods = TimePeriods;\n this.type = 3915482550;\n }\n }\n IFC4X32.IfcRecurrencePattern = IfcRecurrencePattern;\n class IfcReference extends IfcLineObject {\n constructor(TypeIdentifier, AttributeIdentifier, InstanceName, ListPositions, InnerReference) {\n super();\n this.TypeIdentifier = TypeIdentifier;\n this.AttributeIdentifier = AttributeIdentifier;\n this.InstanceName = InstanceName;\n this.ListPositions = ListPositions;\n this.InnerReference = InnerReference;\n this.type = 2433181523;\n }\n }\n IFC4X32.IfcReference = IfcReference;\n class IfcRepresentation extends IfcLineObject {\n constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n super();\n this.ContextOfItems = ContextOfItems;\n this.RepresentationIdentifier = RepresentationIdentifier;\n this.RepresentationType = RepresentationType;\n this.Items = Items;\n this.type = 1076942058;\n }\n }\n IFC4X32.IfcRepresentation = IfcRepresentation;\n class IfcRepresentationContext extends IfcLineObject {\n constructor(ContextIdentifier, ContextType) {\n super();\n this.ContextIdentifier = ContextIdentifier;\n this.ContextType = ContextType;\n this.type = 3377609919;\n }\n }\n IFC4X32.IfcRepresentationContext = IfcRepresentationContext;\n class IfcRepresentationItem extends IfcLineObject {\n constructor() {\n super();\n this.type = 3008791417;\n }\n }\n IFC4X32.IfcRepresentationItem = IfcRepresentationItem;\n class IfcRepresentationMap extends IfcLineObject {\n constructor(MappingOrigin, MappedRepresentation) {\n super();\n this.MappingOrigin = MappingOrigin;\n this.MappedRepresentation = MappedRepresentation;\n this.type = 1660063152;\n }\n }\n IFC4X32.IfcRepresentationMap = IfcRepresentationMap;\n class IfcResourceLevelRelationship extends IfcLineObject {\n constructor(Name, Description) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.type = 2439245199;\n }\n }\n IFC4X32.IfcResourceLevelRelationship = IfcResourceLevelRelationship;\n class IfcRoot extends IfcLineObject {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super();\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 2341007311;\n }\n }\n IFC4X32.IfcRoot = IfcRoot;\n class IfcSIUnit extends IfcNamedUnit {\n constructor(Dimensions, UnitType, Prefix, Name) {\n super(Dimensions, UnitType);\n this.Dimensions = Dimensions;\n this.UnitType = UnitType;\n this.Prefix = Prefix;\n this.Name = Name;\n this.type = 448429030;\n }\n }\n IFC4X32.IfcSIUnit = IfcSIUnit;\n class IfcSchedulingTime extends IfcLineObject {\n constructor(Name, DataOrigin, UserDefinedDataOrigin) {\n super();\n this.Name = Name;\n this.DataOrigin = DataOrigin;\n this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n this.type = 1054537805;\n }\n }\n IFC4X32.IfcSchedulingTime = IfcSchedulingTime;\n class IfcShapeAspect extends IfcLineObject {\n constructor(ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape) {\n super();\n this.ShapeRepresentations = ShapeRepresentations;\n this.Name = Name;\n this.Description = Description;\n this.ProductDefinitional = ProductDefinitional;\n this.PartOfProductDefinitionShape = PartOfProductDefinitionShape;\n this.type = 867548509;\n }\n }\n IFC4X32.IfcShapeAspect = IfcShapeAspect;\n class IfcShapeModel extends IfcRepresentation {\n constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n this.ContextOfItems = ContextOfItems;\n this.RepresentationIdentifier = RepresentationIdentifier;\n this.RepresentationType = RepresentationType;\n this.Items = Items;\n this.type = 3982875396;\n }\n }\n IFC4X32.IfcShapeModel = IfcShapeModel;\n class IfcShapeRepresentation extends IfcShapeModel {\n constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n this.ContextOfItems = ContextOfItems;\n this.RepresentationIdentifier = RepresentationIdentifier;\n this.RepresentationType = RepresentationType;\n this.Items = Items;\n this.type = 4240577450;\n }\n }\n IFC4X32.IfcShapeRepresentation = IfcShapeRepresentation;\n class IfcStructuralConnectionCondition extends IfcLineObject {\n constructor(Name) {\n super();\n this.Name = Name;\n this.type = 2273995522;\n }\n }\n IFC4X32.IfcStructuralConnectionCondition = IfcStructuralConnectionCondition;\n class IfcStructuralLoad extends IfcLineObject {\n constructor(Name) {\n super();\n this.Name = Name;\n this.type = 2162789131;\n }\n }\n IFC4X32.IfcStructuralLoad = IfcStructuralLoad;\n class IfcStructuralLoadConfiguration extends IfcStructuralLoad {\n constructor(Name, Values, Locations) {\n super(Name);\n this.Name = Name;\n this.Values = Values;\n this.Locations = Locations;\n this.type = 3478079324;\n }\n }\n IFC4X32.IfcStructuralLoadConfiguration = IfcStructuralLoadConfiguration;\n class IfcStructuralLoadOrResult extends IfcStructuralLoad {\n constructor(Name) {\n super(Name);\n this.Name = Name;\n this.type = 609421318;\n }\n }\n IFC4X32.IfcStructuralLoadOrResult = IfcStructuralLoadOrResult;\n class IfcStructuralLoadStatic extends IfcStructuralLoadOrResult {\n constructor(Name) {\n super(Name);\n this.Name = Name;\n this.type = 2525727697;\n }\n }\n IFC4X32.IfcStructuralLoadStatic = IfcStructuralLoadStatic;\n class IfcStructuralLoadTemperature extends IfcStructuralLoadStatic {\n constructor(Name, DeltaTConstant, DeltaTY, DeltaTZ) {\n super(Name);\n this.Name = Name;\n this.DeltaTConstant = DeltaTConstant;\n this.DeltaTY = DeltaTY;\n this.DeltaTZ = DeltaTZ;\n this.type = 3408363356;\n }\n }\n IFC4X32.IfcStructuralLoadTemperature = IfcStructuralLoadTemperature;\n class IfcStyleModel extends IfcRepresentation {\n constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n this.ContextOfItems = ContextOfItems;\n this.RepresentationIdentifier = RepresentationIdentifier;\n this.RepresentationType = RepresentationType;\n this.Items = Items;\n this.type = 2830218821;\n }\n }\n IFC4X32.IfcStyleModel = IfcStyleModel;\n class IfcStyledItem extends IfcRepresentationItem {\n constructor(Item, Styles, Name) {\n super();\n this.Item = Item;\n this.Styles = Styles;\n this.Name = Name;\n this.type = 3958052878;\n }\n }\n IFC4X32.IfcStyledItem = IfcStyledItem;\n class IfcStyledRepresentation extends IfcStyleModel {\n constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n this.ContextOfItems = ContextOfItems;\n this.RepresentationIdentifier = RepresentationIdentifier;\n this.RepresentationType = RepresentationType;\n this.Items = Items;\n this.type = 3049322572;\n }\n }\n IFC4X32.IfcStyledRepresentation = IfcStyledRepresentation;\n class IfcSurfaceReinforcementArea extends IfcStructuralLoadOrResult {\n constructor(Name, SurfaceReinforcement1, SurfaceReinforcement2, ShearReinforcement) {\n super(Name);\n this.Name = Name;\n this.SurfaceReinforcement1 = SurfaceReinforcement1;\n this.SurfaceReinforcement2 = SurfaceReinforcement2;\n this.ShearReinforcement = ShearReinforcement;\n this.type = 2934153892;\n }\n }\n IFC4X32.IfcSurfaceReinforcementArea = IfcSurfaceReinforcementArea;\n class IfcSurfaceStyle extends IfcPresentationStyle {\n constructor(Name, Side, Styles) {\n super(Name);\n this.Name = Name;\n this.Side = Side;\n this.Styles = Styles;\n this.type = 1300840506;\n }\n }\n IFC4X32.IfcSurfaceStyle = IfcSurfaceStyle;\n class IfcSurfaceStyleLighting extends IfcPresentationItem {\n constructor(DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour) {\n super();\n this.DiffuseTransmissionColour = DiffuseTransmissionColour;\n this.DiffuseReflectionColour = DiffuseReflectionColour;\n this.TransmissionColour = TransmissionColour;\n this.ReflectanceColour = ReflectanceColour;\n this.type = 3303107099;\n }\n }\n IFC4X32.IfcSurfaceStyleLighting = IfcSurfaceStyleLighting;\n class IfcSurfaceStyleRefraction extends IfcPresentationItem {\n constructor(RefractionIndex, DispersionFactor) {\n super();\n this.RefractionIndex = RefractionIndex;\n this.DispersionFactor = DispersionFactor;\n this.type = 1607154358;\n }\n }\n IFC4X32.IfcSurfaceStyleRefraction = IfcSurfaceStyleRefraction;\n class IfcSurfaceStyleShading extends IfcPresentationItem {\n constructor(SurfaceColour, Transparency) {\n super();\n this.SurfaceColour = SurfaceColour;\n this.Transparency = Transparency;\n this.type = 846575682;\n }\n }\n IFC4X32.IfcSurfaceStyleShading = IfcSurfaceStyleShading;\n class IfcSurfaceStyleWithTextures extends IfcPresentationItem {\n constructor(Textures) {\n super();\n this.Textures = Textures;\n this.type = 1351298697;\n }\n }\n IFC4X32.IfcSurfaceStyleWithTextures = IfcSurfaceStyleWithTextures;\n class IfcSurfaceTexture extends IfcPresentationItem {\n constructor(RepeatS, RepeatT, Mode, TextureTransform, Parameter) {\n super();\n this.RepeatS = RepeatS;\n this.RepeatT = RepeatT;\n this.Mode = Mode;\n this.TextureTransform = TextureTransform;\n this.Parameter = Parameter;\n this.type = 626085974;\n }\n }\n IFC4X32.IfcSurfaceTexture = IfcSurfaceTexture;\n class IfcTable extends IfcLineObject {\n constructor(Name, Rows, Columns) {\n super();\n this.Name = Name;\n this.Rows = Rows;\n this.Columns = Columns;\n this.type = 985171141;\n }\n }\n IFC4X32.IfcTable = IfcTable;\n class IfcTableColumn extends IfcLineObject {\n constructor(Identifier, Name, Description, Unit, ReferencePath) {\n super();\n this.Identifier = Identifier;\n this.Name = Name;\n this.Description = Description;\n this.Unit = Unit;\n this.ReferencePath = ReferencePath;\n this.type = 2043862942;\n }\n }\n IFC4X32.IfcTableColumn = IfcTableColumn;\n class IfcTableRow extends IfcLineObject {\n constructor(RowCells, IsHeading) {\n super();\n this.RowCells = RowCells;\n this.IsHeading = IsHeading;\n this.type = 531007025;\n }\n }\n IFC4X32.IfcTableRow = IfcTableRow;\n class IfcTaskTime extends IfcSchedulingTime {\n constructor(Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion) {\n super(Name, DataOrigin, UserDefinedDataOrigin);\n this.Name = Name;\n this.DataOrigin = DataOrigin;\n this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n this.DurationType = DurationType;\n this.ScheduleDuration = ScheduleDuration;\n this.ScheduleStart = ScheduleStart;\n this.ScheduleFinish = ScheduleFinish;\n this.EarlyStart = EarlyStart;\n this.EarlyFinish = EarlyFinish;\n this.LateStart = LateStart;\n this.LateFinish = LateFinish;\n this.FreeFloat = FreeFloat;\n this.TotalFloat = TotalFloat;\n this.IsCritical = IsCritical;\n this.StatusTime = StatusTime;\n this.ActualDuration = ActualDuration;\n this.ActualStart = ActualStart;\n this.ActualFinish = ActualFinish;\n this.RemainingTime = RemainingTime;\n this.Completion = Completion;\n this.type = 1549132990;\n }\n }\n IFC4X32.IfcTaskTime = IfcTaskTime;\n class IfcTaskTimeRecurring extends IfcTaskTime {\n constructor(Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion, Recurrence) {\n super(Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion);\n this.Name = Name;\n this.DataOrigin = DataOrigin;\n this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n this.DurationType = DurationType;\n this.ScheduleDuration = ScheduleDuration;\n this.ScheduleStart = ScheduleStart;\n this.ScheduleFinish = ScheduleFinish;\n this.EarlyStart = EarlyStart;\n this.EarlyFinish = EarlyFinish;\n this.LateStart = LateStart;\n this.LateFinish = LateFinish;\n this.FreeFloat = FreeFloat;\n this.TotalFloat = TotalFloat;\n this.IsCritical = IsCritical;\n this.StatusTime = StatusTime;\n this.ActualDuration = ActualDuration;\n this.ActualStart = ActualStart;\n this.ActualFinish = ActualFinish;\n this.RemainingTime = RemainingTime;\n this.Completion = Completion;\n this.Recurrence = Recurrence;\n this.type = 2771591690;\n }\n }\n IFC4X32.IfcTaskTimeRecurring = IfcTaskTimeRecurring;\n class IfcTelecomAddress extends IfcAddress {\n constructor(Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL, MessagingIDs) {\n super(Purpose, Description, UserDefinedPurpose);\n this.Purpose = Purpose;\n this.Description = Description;\n this.UserDefinedPurpose = UserDefinedPurpose;\n this.TelephoneNumbers = TelephoneNumbers;\n this.FacsimileNumbers = FacsimileNumbers;\n this.PagerNumber = PagerNumber;\n this.ElectronicMailAddresses = ElectronicMailAddresses;\n this.WWWHomePageURL = WWWHomePageURL;\n this.MessagingIDs = MessagingIDs;\n this.type = 912023232;\n }\n }\n IFC4X32.IfcTelecomAddress = IfcTelecomAddress;\n class IfcTextStyle extends IfcPresentationStyle {\n constructor(Name, TextCharacterAppearance, TextStyle, TextFontStyle, ModelOrDraughting) {\n super(Name);\n this.Name = Name;\n this.TextCharacterAppearance = TextCharacterAppearance;\n this.TextStyle = TextStyle;\n this.TextFontStyle = TextFontStyle;\n this.ModelOrDraughting = ModelOrDraughting;\n this.type = 1447204868;\n }\n }\n IFC4X32.IfcTextStyle = IfcTextStyle;\n class IfcTextStyleForDefinedFont extends IfcPresentationItem {\n constructor(Colour, BackgroundColour) {\n super();\n this.Colour = Colour;\n this.BackgroundColour = BackgroundColour;\n this.type = 2636378356;\n }\n }\n IFC4X32.IfcTextStyleForDefinedFont = IfcTextStyleForDefinedFont;\n class IfcTextStyleTextModel extends IfcPresentationItem {\n constructor(TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight) {\n super();\n this.TextIndent = TextIndent;\n this.TextAlign = TextAlign;\n this.TextDecoration = TextDecoration;\n this.LetterSpacing = LetterSpacing;\n this.WordSpacing = WordSpacing;\n this.TextTransform = TextTransform;\n this.LineHeight = LineHeight;\n this.type = 1640371178;\n }\n }\n IFC4X32.IfcTextStyleTextModel = IfcTextStyleTextModel;\n class IfcTextureCoordinate extends IfcPresentationItem {\n constructor(Maps) {\n super();\n this.Maps = Maps;\n this.type = 280115917;\n }\n }\n IFC4X32.IfcTextureCoordinate = IfcTextureCoordinate;\n class IfcTextureCoordinateGenerator extends IfcTextureCoordinate {\n constructor(Maps, Mode, Parameter) {\n super(Maps);\n this.Maps = Maps;\n this.Mode = Mode;\n this.Parameter = Parameter;\n this.type = 1742049831;\n }\n }\n IFC4X32.IfcTextureCoordinateGenerator = IfcTextureCoordinateGenerator;\n class IfcTextureCoordinateIndices extends IfcLineObject {\n constructor(TexCoordIndex, TexCoordsOf) {\n super();\n this.TexCoordIndex = TexCoordIndex;\n this.TexCoordsOf = TexCoordsOf;\n this.type = 222769930;\n }\n }\n IFC4X32.IfcTextureCoordinateIndices = IfcTextureCoordinateIndices;\n class IfcTextureCoordinateIndicesWithVoids extends IfcTextureCoordinateIndices {\n constructor(TexCoordIndex, TexCoordsOf, InnerTexCoordIndices) {\n super(TexCoordIndex, TexCoordsOf);\n this.TexCoordIndex = TexCoordIndex;\n this.TexCoordsOf = TexCoordsOf;\n this.InnerTexCoordIndices = InnerTexCoordIndices;\n this.type = 1010789467;\n }\n }\n IFC4X32.IfcTextureCoordinateIndicesWithVoids = IfcTextureCoordinateIndicesWithVoids;\n class IfcTextureMap extends IfcTextureCoordinate {\n constructor(Maps, Vertices, MappedTo) {\n super(Maps);\n this.Maps = Maps;\n this.Vertices = Vertices;\n this.MappedTo = MappedTo;\n this.type = 2552916305;\n }\n }\n IFC4X32.IfcTextureMap = IfcTextureMap;\n class IfcTextureVertex extends IfcPresentationItem {\n constructor(Coordinates) {\n super();\n this.Coordinates = Coordinates;\n this.type = 1210645708;\n }\n }\n IFC4X32.IfcTextureVertex = IfcTextureVertex;\n class IfcTextureVertexList extends IfcPresentationItem {\n constructor(TexCoordsList) {\n super();\n this.TexCoordsList = TexCoordsList;\n this.type = 3611470254;\n }\n }\n IFC4X32.IfcTextureVertexList = IfcTextureVertexList;\n class IfcTimePeriod extends IfcLineObject {\n constructor(StartTime, EndTime) {\n super();\n this.StartTime = StartTime;\n this.EndTime = EndTime;\n this.type = 1199560280;\n }\n }\n IFC4X32.IfcTimePeriod = IfcTimePeriod;\n class IfcTimeSeries extends IfcLineObject {\n constructor(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.StartTime = StartTime;\n this.EndTime = EndTime;\n this.TimeSeriesDataType = TimeSeriesDataType;\n this.DataOrigin = DataOrigin;\n this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n this.Unit = Unit;\n this.type = 3101149627;\n }\n }\n IFC4X32.IfcTimeSeries = IfcTimeSeries;\n class IfcTimeSeriesValue extends IfcLineObject {\n constructor(ListValues) {\n super();\n this.ListValues = ListValues;\n this.type = 581633288;\n }\n }\n IFC4X32.IfcTimeSeriesValue = IfcTimeSeriesValue;\n class IfcTopologicalRepresentationItem extends IfcRepresentationItem {\n constructor() {\n super();\n this.type = 1377556343;\n }\n }\n IFC4X32.IfcTopologicalRepresentationItem = IfcTopologicalRepresentationItem;\n class IfcTopologyRepresentation extends IfcShapeModel {\n constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {\n super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);\n this.ContextOfItems = ContextOfItems;\n this.RepresentationIdentifier = RepresentationIdentifier;\n this.RepresentationType = RepresentationType;\n this.Items = Items;\n this.type = 1735638870;\n }\n }\n IFC4X32.IfcTopologyRepresentation = IfcTopologyRepresentation;\n class IfcUnitAssignment extends IfcLineObject {\n constructor(Units) {\n super();\n this.Units = Units;\n this.type = 180925521;\n }\n }\n IFC4X32.IfcUnitAssignment = IfcUnitAssignment;\n class IfcVertex extends IfcTopologicalRepresentationItem {\n constructor() {\n super();\n this.type = 2799835756;\n }\n }\n IFC4X32.IfcVertex = IfcVertex;\n class IfcVertexPoint extends IfcVertex {\n constructor(VertexGeometry) {\n super();\n this.VertexGeometry = VertexGeometry;\n this.type = 1907098498;\n }\n }\n IFC4X32.IfcVertexPoint = IfcVertexPoint;\n class IfcVirtualGridIntersection extends IfcLineObject {\n constructor(IntersectingAxes, OffsetDistances) {\n super();\n this.IntersectingAxes = IntersectingAxes;\n this.OffsetDistances = OffsetDistances;\n this.type = 891718957;\n }\n }\n IFC4X32.IfcVirtualGridIntersection = IfcVirtualGridIntersection;\n class IfcWorkTime extends IfcSchedulingTime {\n constructor(Name, DataOrigin, UserDefinedDataOrigin, RecurrencePattern, StartDate, FinishDate) {\n super(Name, DataOrigin, UserDefinedDataOrigin);\n this.Name = Name;\n this.DataOrigin = DataOrigin;\n this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n this.RecurrencePattern = RecurrencePattern;\n this.StartDate = StartDate;\n this.FinishDate = FinishDate;\n this.type = 1236880293;\n }\n }\n IFC4X32.IfcWorkTime = IfcWorkTime;\n class IfcAlignmentCantSegment extends IfcAlignmentParameterSegment {\n constructor(StartTag, EndTag, StartDistAlong, HorizontalLength, StartCantLeft, EndCantLeft, StartCantRight, EndCantRight, PredefinedType) {\n super(StartTag, EndTag);\n this.StartTag = StartTag;\n this.EndTag = EndTag;\n this.StartDistAlong = StartDistAlong;\n this.HorizontalLength = HorizontalLength;\n this.StartCantLeft = StartCantLeft;\n this.EndCantLeft = EndCantLeft;\n this.StartCantRight = StartCantRight;\n this.EndCantRight = EndCantRight;\n this.PredefinedType = PredefinedType;\n this.type = 3752311538;\n }\n }\n IFC4X32.IfcAlignmentCantSegment = IfcAlignmentCantSegment;\n class IfcAlignmentHorizontalSegment extends IfcAlignmentParameterSegment {\n constructor(StartTag, EndTag, StartPoint, StartDirection, StartRadiusOfCurvature, EndRadiusOfCurvature, SegmentLength, GravityCenterLineHeight, PredefinedType) {\n super(StartTag, EndTag);\n this.StartTag = StartTag;\n this.EndTag = EndTag;\n this.StartPoint = StartPoint;\n this.StartDirection = StartDirection;\n this.StartRadiusOfCurvature = StartRadiusOfCurvature;\n this.EndRadiusOfCurvature = EndRadiusOfCurvature;\n this.SegmentLength = SegmentLength;\n this.GravityCenterLineHeight = GravityCenterLineHeight;\n this.PredefinedType = PredefinedType;\n this.type = 536804194;\n }\n }\n IFC4X32.IfcAlignmentHorizontalSegment = IfcAlignmentHorizontalSegment;\n class IfcApprovalRelationship extends IfcResourceLevelRelationship {\n constructor(Name, Description, RelatingApproval, RelatedApprovals) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.RelatingApproval = RelatingApproval;\n this.RelatedApprovals = RelatedApprovals;\n this.type = 3869604511;\n }\n }\n IFC4X32.IfcApprovalRelationship = IfcApprovalRelationship;\n class IfcArbitraryClosedProfileDef extends IfcProfileDef {\n constructor(ProfileType, ProfileName, OuterCurve) {\n super(ProfileType, ProfileName);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.OuterCurve = OuterCurve;\n this.type = 3798115385;\n }\n }\n IFC4X32.IfcArbitraryClosedProfileDef = IfcArbitraryClosedProfileDef;\n class IfcArbitraryOpenProfileDef extends IfcProfileDef {\n constructor(ProfileType, ProfileName, Curve) {\n super(ProfileType, ProfileName);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Curve = Curve;\n this.type = 1310608509;\n }\n }\n IFC4X32.IfcArbitraryOpenProfileDef = IfcArbitraryOpenProfileDef;\n class IfcArbitraryProfileDefWithVoids extends IfcArbitraryClosedProfileDef {\n constructor(ProfileType, ProfileName, OuterCurve, InnerCurves) {\n super(ProfileType, ProfileName, OuterCurve);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.OuterCurve = OuterCurve;\n this.InnerCurves = InnerCurves;\n this.type = 2705031697;\n }\n }\n IFC4X32.IfcArbitraryProfileDefWithVoids = IfcArbitraryProfileDefWithVoids;\n class IfcBlobTexture extends IfcSurfaceTexture {\n constructor(RepeatS, RepeatT, Mode, TextureTransform, Parameter, RasterFormat, RasterCode) {\n super(RepeatS, RepeatT, Mode, TextureTransform, Parameter);\n this.RepeatS = RepeatS;\n this.RepeatT = RepeatT;\n this.Mode = Mode;\n this.TextureTransform = TextureTransform;\n this.Parameter = Parameter;\n this.RasterFormat = RasterFormat;\n this.RasterCode = RasterCode;\n this.type = 616511568;\n }\n }\n IFC4X32.IfcBlobTexture = IfcBlobTexture;\n class IfcCenterLineProfileDef extends IfcArbitraryOpenProfileDef {\n constructor(ProfileType, ProfileName, Curve, Thickness) {\n super(ProfileType, ProfileName, Curve);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Curve = Curve;\n this.Thickness = Thickness;\n this.type = 3150382593;\n }\n }\n IFC4X32.IfcCenterLineProfileDef = IfcCenterLineProfileDef;\n class IfcClassification extends IfcExternalInformation {\n constructor(Source, Edition, EditionDate, Name, Description, Specification, ReferenceTokens) {\n super();\n this.Source = Source;\n this.Edition = Edition;\n this.EditionDate = EditionDate;\n this.Name = Name;\n this.Description = Description;\n this.Specification = Specification;\n this.ReferenceTokens = ReferenceTokens;\n this.type = 747523909;\n }\n }\n IFC4X32.IfcClassification = IfcClassification;\n class IfcClassificationReference extends IfcExternalReference {\n constructor(Location, Identification, Name, ReferencedSource, Description, Sort) {\n super(Location, Identification, Name);\n this.Location = Location;\n this.Identification = Identification;\n this.Name = Name;\n this.ReferencedSource = ReferencedSource;\n this.Description = Description;\n this.Sort = Sort;\n this.type = 647927063;\n }\n }\n IFC4X32.IfcClassificationReference = IfcClassificationReference;\n class IfcColourRgbList extends IfcPresentationItem {\n constructor(ColourList) {\n super();\n this.ColourList = ColourList;\n this.type = 3285139300;\n }\n }\n IFC4X32.IfcColourRgbList = IfcColourRgbList;\n class IfcColourSpecification extends IfcPresentationItem {\n constructor(Name) {\n super();\n this.Name = Name;\n this.type = 3264961684;\n }\n }\n IFC4X32.IfcColourSpecification = IfcColourSpecification;\n class IfcCompositeProfileDef extends IfcProfileDef {\n constructor(ProfileType, ProfileName, Profiles, Label) {\n super(ProfileType, ProfileName);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Profiles = Profiles;\n this.Label = Label;\n this.type = 1485152156;\n }\n }\n IFC4X32.IfcCompositeProfileDef = IfcCompositeProfileDef;\n class IfcConnectedFaceSet extends IfcTopologicalRepresentationItem {\n constructor(CfsFaces) {\n super();\n this.CfsFaces = CfsFaces;\n this.type = 370225590;\n }\n }\n IFC4X32.IfcConnectedFaceSet = IfcConnectedFaceSet;\n class IfcConnectionCurveGeometry extends IfcConnectionGeometry {\n constructor(CurveOnRelatingElement, CurveOnRelatedElement) {\n super();\n this.CurveOnRelatingElement = CurveOnRelatingElement;\n this.CurveOnRelatedElement = CurveOnRelatedElement;\n this.type = 1981873012;\n }\n }\n IFC4X32.IfcConnectionCurveGeometry = IfcConnectionCurveGeometry;\n class IfcConnectionPointEccentricity extends IfcConnectionPointGeometry {\n constructor(PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ) {\n super(PointOnRelatingElement, PointOnRelatedElement);\n this.PointOnRelatingElement = PointOnRelatingElement;\n this.PointOnRelatedElement = PointOnRelatedElement;\n this.EccentricityInX = EccentricityInX;\n this.EccentricityInY = EccentricityInY;\n this.EccentricityInZ = EccentricityInZ;\n this.type = 45288368;\n }\n }\n IFC4X32.IfcConnectionPointEccentricity = IfcConnectionPointEccentricity;\n class IfcContextDependentUnit extends IfcNamedUnit {\n constructor(Dimensions, UnitType, Name) {\n super(Dimensions, UnitType);\n this.Dimensions = Dimensions;\n this.UnitType = UnitType;\n this.Name = Name;\n this.type = 3050246964;\n }\n }\n IFC4X32.IfcContextDependentUnit = IfcContextDependentUnit;\n class IfcConversionBasedUnit extends IfcNamedUnit {\n constructor(Dimensions, UnitType, Name, ConversionFactor) {\n super(Dimensions, UnitType);\n this.Dimensions = Dimensions;\n this.UnitType = UnitType;\n this.Name = Name;\n this.ConversionFactor = ConversionFactor;\n this.type = 2889183280;\n }\n }\n IFC4X32.IfcConversionBasedUnit = IfcConversionBasedUnit;\n class IfcConversionBasedUnitWithOffset extends IfcConversionBasedUnit {\n constructor(Dimensions, UnitType, Name, ConversionFactor, ConversionOffset) {\n super(Dimensions, UnitType, Name, ConversionFactor);\n this.Dimensions = Dimensions;\n this.UnitType = UnitType;\n this.Name = Name;\n this.ConversionFactor = ConversionFactor;\n this.ConversionOffset = ConversionOffset;\n this.type = 2713554722;\n }\n }\n IFC4X32.IfcConversionBasedUnitWithOffset = IfcConversionBasedUnitWithOffset;\n class IfcCurrencyRelationship extends IfcResourceLevelRelationship {\n constructor(Name, Description, RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.RelatingMonetaryUnit = RelatingMonetaryUnit;\n this.RelatedMonetaryUnit = RelatedMonetaryUnit;\n this.ExchangeRate = ExchangeRate;\n this.RateDateTime = RateDateTime;\n this.RateSource = RateSource;\n this.type = 539742890;\n }\n }\n IFC4X32.IfcCurrencyRelationship = IfcCurrencyRelationship;\n class IfcCurveStyle extends IfcPresentationStyle {\n constructor(Name, CurveFont, CurveWidth, CurveColour, ModelOrDraughting) {\n super(Name);\n this.Name = Name;\n this.CurveFont = CurveFont;\n this.CurveWidth = CurveWidth;\n this.CurveColour = CurveColour;\n this.ModelOrDraughting = ModelOrDraughting;\n this.type = 3800577675;\n }\n }\n IFC4X32.IfcCurveStyle = IfcCurveStyle;\n class IfcCurveStyleFont extends IfcPresentationItem {\n constructor(Name, PatternList) {\n super();\n this.Name = Name;\n this.PatternList = PatternList;\n this.type = 1105321065;\n }\n }\n IFC4X32.IfcCurveStyleFont = IfcCurveStyleFont;\n class IfcCurveStyleFontAndScaling extends IfcPresentationItem {\n constructor(Name, CurveStyleFont, CurveFontScaling) {\n super();\n this.Name = Name;\n this.CurveStyleFont = CurveStyleFont;\n this.CurveFontScaling = CurveFontScaling;\n this.type = 2367409068;\n }\n }\n IFC4X32.IfcCurveStyleFontAndScaling = IfcCurveStyleFontAndScaling;\n class IfcCurveStyleFontPattern extends IfcPresentationItem {\n constructor(VisibleSegmentLength, InvisibleSegmentLength) {\n super();\n this.VisibleSegmentLength = VisibleSegmentLength;\n this.InvisibleSegmentLength = InvisibleSegmentLength;\n this.type = 3510044353;\n }\n }\n IFC4X32.IfcCurveStyleFontPattern = IfcCurveStyleFontPattern;\n class IfcDerivedProfileDef extends IfcProfileDef {\n constructor(ProfileType, ProfileName, ParentProfile, Operator, Label) {\n super(ProfileType, ProfileName);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.ParentProfile = ParentProfile;\n this.Operator = Operator;\n this.Label = Label;\n this.type = 3632507154;\n }\n }\n IFC4X32.IfcDerivedProfileDef = IfcDerivedProfileDef;\n class IfcDocumentInformation extends IfcExternalInformation {\n constructor(Identification, Name, Description, Location, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status) {\n super();\n this.Identification = Identification;\n this.Name = Name;\n this.Description = Description;\n this.Location = Location;\n this.Purpose = Purpose;\n this.IntendedUse = IntendedUse;\n this.Scope = Scope;\n this.Revision = Revision;\n this.DocumentOwner = DocumentOwner;\n this.Editors = Editors;\n this.CreationTime = CreationTime;\n this.LastRevisionTime = LastRevisionTime;\n this.ElectronicFormat = ElectronicFormat;\n this.ValidFrom = ValidFrom;\n this.ValidUntil = ValidUntil;\n this.Confidentiality = Confidentiality;\n this.Status = Status;\n this.type = 1154170062;\n }\n }\n IFC4X32.IfcDocumentInformation = IfcDocumentInformation;\n class IfcDocumentInformationRelationship extends IfcResourceLevelRelationship {\n constructor(Name, Description, RelatingDocument, RelatedDocuments, RelationshipType) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.RelatingDocument = RelatingDocument;\n this.RelatedDocuments = RelatedDocuments;\n this.RelationshipType = RelationshipType;\n this.type = 770865208;\n }\n }\n IFC4X32.IfcDocumentInformationRelationship = IfcDocumentInformationRelationship;\n class IfcDocumentReference extends IfcExternalReference {\n constructor(Location, Identification, Name, Description, ReferencedDocument) {\n super(Location, Identification, Name);\n this.Location = Location;\n this.Identification = Identification;\n this.Name = Name;\n this.Description = Description;\n this.ReferencedDocument = ReferencedDocument;\n this.type = 3732053477;\n }\n }\n IFC4X32.IfcDocumentReference = IfcDocumentReference;\n class IfcEdge extends IfcTopologicalRepresentationItem {\n constructor(EdgeStart, EdgeEnd) {\n super();\n this.EdgeStart = EdgeStart;\n this.EdgeEnd = EdgeEnd;\n this.type = 3900360178;\n }\n }\n IFC4X32.IfcEdge = IfcEdge;\n class IfcEdgeCurve extends IfcEdge {\n constructor(EdgeStart, EdgeEnd, EdgeGeometry, SameSense) {\n super(EdgeStart, EdgeEnd);\n this.EdgeStart = EdgeStart;\n this.EdgeEnd = EdgeEnd;\n this.EdgeGeometry = EdgeGeometry;\n this.SameSense = SameSense;\n this.type = 476780140;\n }\n }\n IFC4X32.IfcEdgeCurve = IfcEdgeCurve;\n class IfcEventTime extends IfcSchedulingTime {\n constructor(Name, DataOrigin, UserDefinedDataOrigin, ActualDate, EarlyDate, LateDate, ScheduleDate) {\n super(Name, DataOrigin, UserDefinedDataOrigin);\n this.Name = Name;\n this.DataOrigin = DataOrigin;\n this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n this.ActualDate = ActualDate;\n this.EarlyDate = EarlyDate;\n this.LateDate = LateDate;\n this.ScheduleDate = ScheduleDate;\n this.type = 211053100;\n }\n }\n IFC4X32.IfcEventTime = IfcEventTime;\n class IfcExtendedProperties extends IfcPropertyAbstraction {\n constructor(Name, Description, Properties2) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.Properties = Properties2;\n this.type = 297599258;\n }\n }\n IFC4X32.IfcExtendedProperties = IfcExtendedProperties;\n class IfcExternalReferenceRelationship extends IfcResourceLevelRelationship {\n constructor(Name, Description, RelatingReference, RelatedResourceObjects) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.RelatingReference = RelatingReference;\n this.RelatedResourceObjects = RelatedResourceObjects;\n this.type = 1437805879;\n }\n }\n IFC4X32.IfcExternalReferenceRelationship = IfcExternalReferenceRelationship;\n class IfcFace extends IfcTopologicalRepresentationItem {\n constructor(Bounds) {\n super();\n this.Bounds = Bounds;\n this.type = 2556980723;\n }\n }\n IFC4X32.IfcFace = IfcFace;\n class IfcFaceBound extends IfcTopologicalRepresentationItem {\n constructor(Bound, Orientation) {\n super();\n this.Bound = Bound;\n this.Orientation = Orientation;\n this.type = 1809719519;\n }\n }\n IFC4X32.IfcFaceBound = IfcFaceBound;\n class IfcFaceOuterBound extends IfcFaceBound {\n constructor(Bound, Orientation) {\n super(Bound, Orientation);\n this.Bound = Bound;\n this.Orientation = Orientation;\n this.type = 803316827;\n }\n }\n IFC4X32.IfcFaceOuterBound = IfcFaceOuterBound;\n class IfcFaceSurface extends IfcFace {\n constructor(Bounds, FaceSurface, SameSense) {\n super(Bounds);\n this.Bounds = Bounds;\n this.FaceSurface = FaceSurface;\n this.SameSense = SameSense;\n this.type = 3008276851;\n }\n }\n IFC4X32.IfcFaceSurface = IfcFaceSurface;\n class IfcFailureConnectionCondition extends IfcStructuralConnectionCondition {\n constructor(Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ) {\n super(Name);\n this.Name = Name;\n this.TensionFailureX = TensionFailureX;\n this.TensionFailureY = TensionFailureY;\n this.TensionFailureZ = TensionFailureZ;\n this.CompressionFailureX = CompressionFailureX;\n this.CompressionFailureY = CompressionFailureY;\n this.CompressionFailureZ = CompressionFailureZ;\n this.type = 4219587988;\n }\n }\n IFC4X32.IfcFailureConnectionCondition = IfcFailureConnectionCondition;\n class IfcFillAreaStyle extends IfcPresentationStyle {\n constructor(Name, FillStyles, ModelOrDraughting) {\n super(Name);\n this.Name = Name;\n this.FillStyles = FillStyles;\n this.ModelOrDraughting = ModelOrDraughting;\n this.type = 738692330;\n }\n }\n IFC4X32.IfcFillAreaStyle = IfcFillAreaStyle;\n class IfcGeometricRepresentationContext extends IfcRepresentationContext {\n constructor(ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth) {\n super(ContextIdentifier, ContextType);\n this.ContextIdentifier = ContextIdentifier;\n this.ContextType = ContextType;\n this.CoordinateSpaceDimension = CoordinateSpaceDimension;\n this.Precision = Precision;\n this.WorldCoordinateSystem = WorldCoordinateSystem;\n this.TrueNorth = TrueNorth;\n this.type = 3448662350;\n }\n }\n IFC4X32.IfcGeometricRepresentationContext = IfcGeometricRepresentationContext;\n class IfcGeometricRepresentationItem extends IfcRepresentationItem {\n constructor() {\n super();\n this.type = 2453401579;\n }\n }\n IFC4X32.IfcGeometricRepresentationItem = IfcGeometricRepresentationItem;\n class IfcGeometricRepresentationSubContext extends IfcGeometricRepresentationContext {\n constructor(ContextIdentifier, ContextType, WorldCoordinateSystem, ParentContext, TargetScale, TargetView, UserDefinedTargetView) {\n super(ContextIdentifier, ContextType, new IfcDimensionCount(0), null, WorldCoordinateSystem, null);\n this.ContextIdentifier = ContextIdentifier;\n this.ContextType = ContextType;\n this.WorldCoordinateSystem = WorldCoordinateSystem;\n this.ParentContext = ParentContext;\n this.TargetScale = TargetScale;\n this.TargetView = TargetView;\n this.UserDefinedTargetView = UserDefinedTargetView;\n this.type = 4142052618;\n }\n }\n IFC4X32.IfcGeometricRepresentationSubContext = IfcGeometricRepresentationSubContext;\n class IfcGeometricSet extends IfcGeometricRepresentationItem {\n constructor(Elements) {\n super();\n this.Elements = Elements;\n this.type = 3590301190;\n }\n }\n IFC4X32.IfcGeometricSet = IfcGeometricSet;\n class IfcGridPlacement extends IfcObjectPlacement {\n constructor(PlacementRelTo, PlacementLocation, PlacementRefDirection) {\n super(PlacementRelTo);\n this.PlacementRelTo = PlacementRelTo;\n this.PlacementLocation = PlacementLocation;\n this.PlacementRefDirection = PlacementRefDirection;\n this.type = 178086475;\n }\n }\n IFC4X32.IfcGridPlacement = IfcGridPlacement;\n class IfcHalfSpaceSolid extends IfcGeometricRepresentationItem {\n constructor(BaseSurface, AgreementFlag) {\n super();\n this.BaseSurface = BaseSurface;\n this.AgreementFlag = AgreementFlag;\n this.type = 812098782;\n }\n }\n IFC4X32.IfcHalfSpaceSolid = IfcHalfSpaceSolid;\n class IfcImageTexture extends IfcSurfaceTexture {\n constructor(RepeatS, RepeatT, Mode, TextureTransform, Parameter, URLReference) {\n super(RepeatS, RepeatT, Mode, TextureTransform, Parameter);\n this.RepeatS = RepeatS;\n this.RepeatT = RepeatT;\n this.Mode = Mode;\n this.TextureTransform = TextureTransform;\n this.Parameter = Parameter;\n this.URLReference = URLReference;\n this.type = 3905492369;\n }\n }\n IFC4X32.IfcImageTexture = IfcImageTexture;\n class IfcIndexedColourMap extends IfcPresentationItem {\n constructor(MappedTo, Opacity, Colours, ColourIndex) {\n super();\n this.MappedTo = MappedTo;\n this.Opacity = Opacity;\n this.Colours = Colours;\n this.ColourIndex = ColourIndex;\n this.type = 3570813810;\n }\n }\n IFC4X32.IfcIndexedColourMap = IfcIndexedColourMap;\n class IfcIndexedTextureMap extends IfcTextureCoordinate {\n constructor(Maps, MappedTo, TexCoords) {\n super(Maps);\n this.Maps = Maps;\n this.MappedTo = MappedTo;\n this.TexCoords = TexCoords;\n this.type = 1437953363;\n }\n }\n IFC4X32.IfcIndexedTextureMap = IfcIndexedTextureMap;\n class IfcIndexedTriangleTextureMap extends IfcIndexedTextureMap {\n constructor(Maps, MappedTo, TexCoords, TexCoordIndex) {\n super(Maps, MappedTo, TexCoords);\n this.Maps = Maps;\n this.MappedTo = MappedTo;\n this.TexCoords = TexCoords;\n this.TexCoordIndex = TexCoordIndex;\n this.type = 2133299955;\n }\n }\n IFC4X32.IfcIndexedTriangleTextureMap = IfcIndexedTriangleTextureMap;\n class IfcIrregularTimeSeries extends IfcTimeSeries {\n constructor(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values) {\n super(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit);\n this.Name = Name;\n this.Description = Description;\n this.StartTime = StartTime;\n this.EndTime = EndTime;\n this.TimeSeriesDataType = TimeSeriesDataType;\n this.DataOrigin = DataOrigin;\n this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n this.Unit = Unit;\n this.Values = Values;\n this.type = 3741457305;\n }\n }\n IFC4X32.IfcIrregularTimeSeries = IfcIrregularTimeSeries;\n class IfcLagTime extends IfcSchedulingTime {\n constructor(Name, DataOrigin, UserDefinedDataOrigin, LagValue, DurationType) {\n super(Name, DataOrigin, UserDefinedDataOrigin);\n this.Name = Name;\n this.DataOrigin = DataOrigin;\n this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n this.LagValue = LagValue;\n this.DurationType = DurationType;\n this.type = 1585845231;\n }\n }\n IFC4X32.IfcLagTime = IfcLagTime;\n class IfcLightSource extends IfcGeometricRepresentationItem {\n constructor(Name, LightColour, AmbientIntensity, Intensity) {\n super();\n this.Name = Name;\n this.LightColour = LightColour;\n this.AmbientIntensity = AmbientIntensity;\n this.Intensity = Intensity;\n this.type = 1402838566;\n }\n }\n IFC4X32.IfcLightSource = IfcLightSource;\n class IfcLightSourceAmbient extends IfcLightSource {\n constructor(Name, LightColour, AmbientIntensity, Intensity) {\n super(Name, LightColour, AmbientIntensity, Intensity);\n this.Name = Name;\n this.LightColour = LightColour;\n this.AmbientIntensity = AmbientIntensity;\n this.Intensity = Intensity;\n this.type = 125510826;\n }\n }\n IFC4X32.IfcLightSourceAmbient = IfcLightSourceAmbient;\n class IfcLightSourceDirectional extends IfcLightSource {\n constructor(Name, LightColour, AmbientIntensity, Intensity, Orientation) {\n super(Name, LightColour, AmbientIntensity, Intensity);\n this.Name = Name;\n this.LightColour = LightColour;\n this.AmbientIntensity = AmbientIntensity;\n this.Intensity = Intensity;\n this.Orientation = Orientation;\n this.type = 2604431987;\n }\n }\n IFC4X32.IfcLightSourceDirectional = IfcLightSourceDirectional;\n class IfcLightSourceGoniometric extends IfcLightSource {\n constructor(Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource) {\n super(Name, LightColour, AmbientIntensity, Intensity);\n this.Name = Name;\n this.LightColour = LightColour;\n this.AmbientIntensity = AmbientIntensity;\n this.Intensity = Intensity;\n this.Position = Position;\n this.ColourAppearance = ColourAppearance;\n this.ColourTemperature = ColourTemperature;\n this.LuminousFlux = LuminousFlux;\n this.LightEmissionSource = LightEmissionSource;\n this.LightDistributionDataSource = LightDistributionDataSource;\n this.type = 4266656042;\n }\n }\n IFC4X32.IfcLightSourceGoniometric = IfcLightSourceGoniometric;\n class IfcLightSourcePositional extends IfcLightSource {\n constructor(Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation) {\n super(Name, LightColour, AmbientIntensity, Intensity);\n this.Name = Name;\n this.LightColour = LightColour;\n this.AmbientIntensity = AmbientIntensity;\n this.Intensity = Intensity;\n this.Position = Position;\n this.Radius = Radius;\n this.ConstantAttenuation = ConstantAttenuation;\n this.DistanceAttenuation = DistanceAttenuation;\n this.QuadricAttenuation = QuadricAttenuation;\n this.type = 1520743889;\n }\n }\n IFC4X32.IfcLightSourcePositional = IfcLightSourcePositional;\n class IfcLightSourceSpot extends IfcLightSourcePositional {\n constructor(Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle) {\n super(Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation);\n this.Name = Name;\n this.LightColour = LightColour;\n this.AmbientIntensity = AmbientIntensity;\n this.Intensity = Intensity;\n this.Position = Position;\n this.Radius = Radius;\n this.ConstantAttenuation = ConstantAttenuation;\n this.DistanceAttenuation = DistanceAttenuation;\n this.QuadricAttenuation = QuadricAttenuation;\n this.Orientation = Orientation;\n this.ConcentrationExponent = ConcentrationExponent;\n this.SpreadAngle = SpreadAngle;\n this.BeamWidthAngle = BeamWidthAngle;\n this.type = 3422422726;\n }\n }\n IFC4X32.IfcLightSourceSpot = IfcLightSourceSpot;\n class IfcLinearPlacement extends IfcObjectPlacement {\n constructor(PlacementRelTo, RelativePlacement, CartesianPosition) {\n super(PlacementRelTo);\n this.PlacementRelTo = PlacementRelTo;\n this.RelativePlacement = RelativePlacement;\n this.CartesianPosition = CartesianPosition;\n this.type = 388784114;\n }\n }\n IFC4X32.IfcLinearPlacement = IfcLinearPlacement;\n class IfcLocalPlacement extends IfcObjectPlacement {\n constructor(PlacementRelTo, RelativePlacement) {\n super(PlacementRelTo);\n this.PlacementRelTo = PlacementRelTo;\n this.RelativePlacement = RelativePlacement;\n this.type = 2624227202;\n }\n }\n IFC4X32.IfcLocalPlacement = IfcLocalPlacement;\n class IfcLoop extends IfcTopologicalRepresentationItem {\n constructor() {\n super();\n this.type = 1008929658;\n }\n }\n IFC4X32.IfcLoop = IfcLoop;\n class IfcMappedItem extends IfcRepresentationItem {\n constructor(MappingSource, MappingTarget) {\n super();\n this.MappingSource = MappingSource;\n this.MappingTarget = MappingTarget;\n this.type = 2347385850;\n }\n }\n IFC4X32.IfcMappedItem = IfcMappedItem;\n class IfcMaterial extends IfcMaterialDefinition {\n constructor(Name, Description, Category) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.Category = Category;\n this.type = 1838606355;\n }\n }\n IFC4X32.IfcMaterial = IfcMaterial;\n class IfcMaterialConstituent extends IfcMaterialDefinition {\n constructor(Name, Description, Material, Fraction, Category) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.Material = Material;\n this.Fraction = Fraction;\n this.Category = Category;\n this.type = 3708119e3;\n }\n }\n IFC4X32.IfcMaterialConstituent = IfcMaterialConstituent;\n class IfcMaterialConstituentSet extends IfcMaterialDefinition {\n constructor(Name, Description, MaterialConstituents) {\n super();\n this.Name = Name;\n this.Description = Description;\n this.MaterialConstituents = MaterialConstituents;\n this.type = 2852063980;\n }\n }\n IFC4X32.IfcMaterialConstituentSet = IfcMaterialConstituentSet;\n class IfcMaterialDefinitionRepresentation extends IfcProductRepresentation {\n constructor(Name, Description, Representations, RepresentedMaterial) {\n super(Name, Description, Representations);\n this.Name = Name;\n this.Description = Description;\n this.Representations = Representations;\n this.RepresentedMaterial = RepresentedMaterial;\n this.type = 2022407955;\n }\n }\n IFC4X32.IfcMaterialDefinitionRepresentation = IfcMaterialDefinitionRepresentation;\n class IfcMaterialLayerSetUsage extends IfcMaterialUsageDefinition {\n constructor(ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine, ReferenceExtent) {\n super();\n this.ForLayerSet = ForLayerSet;\n this.LayerSetDirection = LayerSetDirection;\n this.DirectionSense = DirectionSense;\n this.OffsetFromReferenceLine = OffsetFromReferenceLine;\n this.ReferenceExtent = ReferenceExtent;\n this.type = 1303795690;\n }\n }\n IFC4X32.IfcMaterialLayerSetUsage = IfcMaterialLayerSetUsage;\n class IfcMaterialProfileSetUsage extends IfcMaterialUsageDefinition {\n constructor(ForProfileSet, CardinalPoint, ReferenceExtent) {\n super();\n this.ForProfileSet = ForProfileSet;\n this.CardinalPoint = CardinalPoint;\n this.ReferenceExtent = ReferenceExtent;\n this.type = 3079605661;\n }\n }\n IFC4X32.IfcMaterialProfileSetUsage = IfcMaterialProfileSetUsage;\n class IfcMaterialProfileSetUsageTapering extends IfcMaterialProfileSetUsage {\n constructor(ForProfileSet, CardinalPoint, ReferenceExtent, ForProfileEndSet, CardinalEndPoint) {\n super(ForProfileSet, CardinalPoint, ReferenceExtent);\n this.ForProfileSet = ForProfileSet;\n this.CardinalPoint = CardinalPoint;\n this.ReferenceExtent = ReferenceExtent;\n this.ForProfileEndSet = ForProfileEndSet;\n this.CardinalEndPoint = CardinalEndPoint;\n this.type = 3404854881;\n }\n }\n IFC4X32.IfcMaterialProfileSetUsageTapering = IfcMaterialProfileSetUsageTapering;\n class IfcMaterialProperties extends IfcExtendedProperties {\n constructor(Name, Description, Properties2, Material) {\n super(Name, Description, Properties2);\n this.Name = Name;\n this.Description = Description;\n this.Properties = Properties2;\n this.Material = Material;\n this.type = 3265635763;\n }\n }\n IFC4X32.IfcMaterialProperties = IfcMaterialProperties;\n class IfcMaterialRelationship extends IfcResourceLevelRelationship {\n constructor(Name, Description, RelatingMaterial, RelatedMaterials, MaterialExpression) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.RelatingMaterial = RelatingMaterial;\n this.RelatedMaterials = RelatedMaterials;\n this.MaterialExpression = MaterialExpression;\n this.type = 853536259;\n }\n }\n IFC4X32.IfcMaterialRelationship = IfcMaterialRelationship;\n class IfcMirroredProfileDef extends IfcDerivedProfileDef {\n constructor(ProfileType, ProfileName, ParentProfile, Operator, Label) {\n super(ProfileType, ProfileName, ParentProfile, Operator, Label);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.ParentProfile = ParentProfile;\n this.Operator = Operator;\n this.Label = Label;\n this.type = 2998442950;\n }\n }\n IFC4X32.IfcMirroredProfileDef = IfcMirroredProfileDef;\n class IfcObjectDefinition extends IfcRoot {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 219451334;\n }\n }\n IFC4X32.IfcObjectDefinition = IfcObjectDefinition;\n class IfcOpenCrossProfileDef extends IfcProfileDef {\n constructor(ProfileType, ProfileName, HorizontalWidths, Widths, Slopes, Tags, OffsetPoint) {\n super(ProfileType, ProfileName);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.HorizontalWidths = HorizontalWidths;\n this.Widths = Widths;\n this.Slopes = Slopes;\n this.Tags = Tags;\n this.OffsetPoint = OffsetPoint;\n this.type = 182550632;\n }\n }\n IFC4X32.IfcOpenCrossProfileDef = IfcOpenCrossProfileDef;\n class IfcOpenShell extends IfcConnectedFaceSet {\n constructor(CfsFaces) {\n super(CfsFaces);\n this.CfsFaces = CfsFaces;\n this.type = 2665983363;\n }\n }\n IFC4X32.IfcOpenShell = IfcOpenShell;\n class IfcOrganizationRelationship extends IfcResourceLevelRelationship {\n constructor(Name, Description, RelatingOrganization, RelatedOrganizations) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.RelatingOrganization = RelatingOrganization;\n this.RelatedOrganizations = RelatedOrganizations;\n this.type = 1411181986;\n }\n }\n IFC4X32.IfcOrganizationRelationship = IfcOrganizationRelationship;\n class IfcOrientedEdge extends IfcEdge {\n constructor(EdgeStart, EdgeElement, Orientation) {\n super(EdgeStart, new Handle(0));\n this.EdgeStart = EdgeStart;\n this.EdgeElement = EdgeElement;\n this.Orientation = Orientation;\n this.type = 1029017970;\n }\n }\n IFC4X32.IfcOrientedEdge = IfcOrientedEdge;\n class IfcParameterizedProfileDef extends IfcProfileDef {\n constructor(ProfileType, ProfileName, Position) {\n super(ProfileType, ProfileName);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.type = 2529465313;\n }\n }\n IFC4X32.IfcParameterizedProfileDef = IfcParameterizedProfileDef;\n class IfcPath extends IfcTopologicalRepresentationItem {\n constructor(EdgeList) {\n super();\n this.EdgeList = EdgeList;\n this.type = 2519244187;\n }\n }\n IFC4X32.IfcPath = IfcPath;\n class IfcPhysicalComplexQuantity extends IfcPhysicalQuantity {\n constructor(Name, Description, HasQuantities, Discrimination, Quality, Usage) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.HasQuantities = HasQuantities;\n this.Discrimination = Discrimination;\n this.Quality = Quality;\n this.Usage = Usage;\n this.type = 3021840470;\n }\n }\n IFC4X32.IfcPhysicalComplexQuantity = IfcPhysicalComplexQuantity;\n class IfcPixelTexture extends IfcSurfaceTexture {\n constructor(RepeatS, RepeatT, Mode, TextureTransform, Parameter, Width, Height, ColourComponents, Pixel) {\n super(RepeatS, RepeatT, Mode, TextureTransform, Parameter);\n this.RepeatS = RepeatS;\n this.RepeatT = RepeatT;\n this.Mode = Mode;\n this.TextureTransform = TextureTransform;\n this.Parameter = Parameter;\n this.Width = Width;\n this.Height = Height;\n this.ColourComponents = ColourComponents;\n this.Pixel = Pixel;\n this.type = 597895409;\n }\n }\n IFC4X32.IfcPixelTexture = IfcPixelTexture;\n class IfcPlacement extends IfcGeometricRepresentationItem {\n constructor(Location) {\n super();\n this.Location = Location;\n this.type = 2004835150;\n }\n }\n IFC4X32.IfcPlacement = IfcPlacement;\n class IfcPlanarExtent extends IfcGeometricRepresentationItem {\n constructor(SizeInX, SizeInY) {\n super();\n this.SizeInX = SizeInX;\n this.SizeInY = SizeInY;\n this.type = 1663979128;\n }\n }\n IFC4X32.IfcPlanarExtent = IfcPlanarExtent;\n class IfcPoint extends IfcGeometricRepresentationItem {\n constructor() {\n super();\n this.type = 2067069095;\n }\n }\n IFC4X32.IfcPoint = IfcPoint;\n class IfcPointByDistanceExpression extends IfcPoint {\n constructor(DistanceAlong, OffsetLateral, OffsetVertical, OffsetLongitudinal, BasisCurve) {\n super();\n this.DistanceAlong = DistanceAlong;\n this.OffsetLateral = OffsetLateral;\n this.OffsetVertical = OffsetVertical;\n this.OffsetLongitudinal = OffsetLongitudinal;\n this.BasisCurve = BasisCurve;\n this.type = 2165702409;\n }\n }\n IFC4X32.IfcPointByDistanceExpression = IfcPointByDistanceExpression;\n class IfcPointOnCurve extends IfcPoint {\n constructor(BasisCurve, PointParameter) {\n super();\n this.BasisCurve = BasisCurve;\n this.PointParameter = PointParameter;\n this.type = 4022376103;\n }\n }\n IFC4X32.IfcPointOnCurve = IfcPointOnCurve;\n class IfcPointOnSurface extends IfcPoint {\n constructor(BasisSurface, PointParameterU, PointParameterV) {\n super();\n this.BasisSurface = BasisSurface;\n this.PointParameterU = PointParameterU;\n this.PointParameterV = PointParameterV;\n this.type = 1423911732;\n }\n }\n IFC4X32.IfcPointOnSurface = IfcPointOnSurface;\n class IfcPolyLoop extends IfcLoop {\n constructor(Polygon) {\n super();\n this.Polygon = Polygon;\n this.type = 2924175390;\n }\n }\n IFC4X32.IfcPolyLoop = IfcPolyLoop;\n class IfcPolygonalBoundedHalfSpace extends IfcHalfSpaceSolid {\n constructor(BaseSurface, AgreementFlag, Position, PolygonalBoundary) {\n super(BaseSurface, AgreementFlag);\n this.BaseSurface = BaseSurface;\n this.AgreementFlag = AgreementFlag;\n this.Position = Position;\n this.PolygonalBoundary = PolygonalBoundary;\n this.type = 2775532180;\n }\n }\n IFC4X32.IfcPolygonalBoundedHalfSpace = IfcPolygonalBoundedHalfSpace;\n class IfcPreDefinedItem extends IfcPresentationItem {\n constructor(Name) {\n super();\n this.Name = Name;\n this.type = 3727388367;\n }\n }\n IFC4X32.IfcPreDefinedItem = IfcPreDefinedItem;\n class IfcPreDefinedProperties extends IfcPropertyAbstraction {\n constructor() {\n super();\n this.type = 3778827333;\n }\n }\n IFC4X32.IfcPreDefinedProperties = IfcPreDefinedProperties;\n class IfcPreDefinedTextFont extends IfcPreDefinedItem {\n constructor(Name) {\n super(Name);\n this.Name = Name;\n this.type = 1775413392;\n }\n }\n IFC4X32.IfcPreDefinedTextFont = IfcPreDefinedTextFont;\n class IfcProductDefinitionShape extends IfcProductRepresentation {\n constructor(Name, Description, Representations) {\n super(Name, Description, Representations);\n this.Name = Name;\n this.Description = Description;\n this.Representations = Representations;\n this.type = 673634403;\n }\n }\n IFC4X32.IfcProductDefinitionShape = IfcProductDefinitionShape;\n class IfcProfileProperties extends IfcExtendedProperties {\n constructor(Name, Description, Properties2, ProfileDefinition) {\n super(Name, Description, Properties2);\n this.Name = Name;\n this.Description = Description;\n this.Properties = Properties2;\n this.ProfileDefinition = ProfileDefinition;\n this.type = 2802850158;\n }\n }\n IFC4X32.IfcProfileProperties = IfcProfileProperties;\n class IfcProperty extends IfcPropertyAbstraction {\n constructor(Name, Specification) {\n super();\n this.Name = Name;\n this.Specification = Specification;\n this.type = 2598011224;\n }\n }\n IFC4X32.IfcProperty = IfcProperty;\n class IfcPropertyDefinition extends IfcRoot {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 1680319473;\n }\n }\n IFC4X32.IfcPropertyDefinition = IfcPropertyDefinition;\n class IfcPropertyDependencyRelationship extends IfcResourceLevelRelationship {\n constructor(Name, Description, DependingProperty, DependantProperty, Expression) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.DependingProperty = DependingProperty;\n this.DependantProperty = DependantProperty;\n this.Expression = Expression;\n this.type = 148025276;\n }\n }\n IFC4X32.IfcPropertyDependencyRelationship = IfcPropertyDependencyRelationship;\n class IfcPropertySetDefinition extends IfcPropertyDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 3357820518;\n }\n }\n IFC4X32.IfcPropertySetDefinition = IfcPropertySetDefinition;\n class IfcPropertyTemplateDefinition extends IfcPropertyDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 1482703590;\n }\n }\n IFC4X32.IfcPropertyTemplateDefinition = IfcPropertyTemplateDefinition;\n class IfcQuantitySet extends IfcPropertySetDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 2090586900;\n }\n }\n IFC4X32.IfcQuantitySet = IfcQuantitySet;\n class IfcRectangleProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, XDim, YDim) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.XDim = XDim;\n this.YDim = YDim;\n this.type = 3615266464;\n }\n }\n IFC4X32.IfcRectangleProfileDef = IfcRectangleProfileDef;\n class IfcRegularTimeSeries extends IfcTimeSeries {\n constructor(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values) {\n super(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit);\n this.Name = Name;\n this.Description = Description;\n this.StartTime = StartTime;\n this.EndTime = EndTime;\n this.TimeSeriesDataType = TimeSeriesDataType;\n this.DataOrigin = DataOrigin;\n this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n this.Unit = Unit;\n this.TimeStep = TimeStep;\n this.Values = Values;\n this.type = 3413951693;\n }\n }\n IFC4X32.IfcRegularTimeSeries = IfcRegularTimeSeries;\n class IfcReinforcementBarProperties extends IfcPreDefinedProperties {\n constructor(TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount) {\n super();\n this.TotalCrossSectionArea = TotalCrossSectionArea;\n this.SteelGrade = SteelGrade;\n this.BarSurface = BarSurface;\n this.EffectiveDepth = EffectiveDepth;\n this.NominalBarDiameter = NominalBarDiameter;\n this.BarCount = BarCount;\n this.type = 1580146022;\n }\n }\n IFC4X32.IfcReinforcementBarProperties = IfcReinforcementBarProperties;\n class IfcRelationship extends IfcRoot {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 478536968;\n }\n }\n IFC4X32.IfcRelationship = IfcRelationship;\n class IfcResourceApprovalRelationship extends IfcResourceLevelRelationship {\n constructor(Name, Description, RelatedResourceObjects, RelatingApproval) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.RelatedResourceObjects = RelatedResourceObjects;\n this.RelatingApproval = RelatingApproval;\n this.type = 2943643501;\n }\n }\n IFC4X32.IfcResourceApprovalRelationship = IfcResourceApprovalRelationship;\n class IfcResourceConstraintRelationship extends IfcResourceLevelRelationship {\n constructor(Name, Description, RelatingConstraint, RelatedResourceObjects) {\n super(Name, Description);\n this.Name = Name;\n this.Description = Description;\n this.RelatingConstraint = RelatingConstraint;\n this.RelatedResourceObjects = RelatedResourceObjects;\n this.type = 1608871552;\n }\n }\n IFC4X32.IfcResourceConstraintRelationship = IfcResourceConstraintRelationship;\n class IfcResourceTime extends IfcSchedulingTime {\n constructor(Name, DataOrigin, UserDefinedDataOrigin, ScheduleWork, ScheduleUsage, ScheduleStart, ScheduleFinish, ScheduleContour, LevelingDelay, IsOverAllocated, StatusTime, ActualWork, ActualUsage, ActualStart, ActualFinish, RemainingWork, RemainingUsage, Completion) {\n super(Name, DataOrigin, UserDefinedDataOrigin);\n this.Name = Name;\n this.DataOrigin = DataOrigin;\n this.UserDefinedDataOrigin = UserDefinedDataOrigin;\n this.ScheduleWork = ScheduleWork;\n this.ScheduleUsage = ScheduleUsage;\n this.ScheduleStart = ScheduleStart;\n this.ScheduleFinish = ScheduleFinish;\n this.ScheduleContour = ScheduleContour;\n this.LevelingDelay = LevelingDelay;\n this.IsOverAllocated = IsOverAllocated;\n this.StatusTime = StatusTime;\n this.ActualWork = ActualWork;\n this.ActualUsage = ActualUsage;\n this.ActualStart = ActualStart;\n this.ActualFinish = ActualFinish;\n this.RemainingWork = RemainingWork;\n this.RemainingUsage = RemainingUsage;\n this.Completion = Completion;\n this.type = 1042787934;\n }\n }\n IFC4X32.IfcResourceTime = IfcResourceTime;\n class IfcRoundedRectangleProfileDef extends IfcRectangleProfileDef {\n constructor(ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius) {\n super(ProfileType, ProfileName, Position, XDim, YDim);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.XDim = XDim;\n this.YDim = YDim;\n this.RoundingRadius = RoundingRadius;\n this.type = 2778083089;\n }\n }\n IFC4X32.IfcRoundedRectangleProfileDef = IfcRoundedRectangleProfileDef;\n class IfcSectionProperties extends IfcPreDefinedProperties {\n constructor(SectionType, StartProfile, EndProfile) {\n super();\n this.SectionType = SectionType;\n this.StartProfile = StartProfile;\n this.EndProfile = EndProfile;\n this.type = 2042790032;\n }\n }\n IFC4X32.IfcSectionProperties = IfcSectionProperties;\n class IfcSectionReinforcementProperties extends IfcPreDefinedProperties {\n constructor(LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions) {\n super();\n this.LongitudinalStartPosition = LongitudinalStartPosition;\n this.LongitudinalEndPosition = LongitudinalEndPosition;\n this.TransversePosition = TransversePosition;\n this.ReinforcementRole = ReinforcementRole;\n this.SectionDefinition = SectionDefinition;\n this.CrossSectionReinforcementDefinitions = CrossSectionReinforcementDefinitions;\n this.type = 4165799628;\n }\n }\n IFC4X32.IfcSectionReinforcementProperties = IfcSectionReinforcementProperties;\n class IfcSectionedSpine extends IfcGeometricRepresentationItem {\n constructor(SpineCurve, CrossSections, CrossSectionPositions) {\n super();\n this.SpineCurve = SpineCurve;\n this.CrossSections = CrossSections;\n this.CrossSectionPositions = CrossSectionPositions;\n this.type = 1509187699;\n }\n }\n IFC4X32.IfcSectionedSpine = IfcSectionedSpine;\n class IfcSegment extends IfcGeometricRepresentationItem {\n constructor(Transition) {\n super();\n this.Transition = Transition;\n this.type = 823603102;\n }\n }\n IFC4X32.IfcSegment = IfcSegment;\n class IfcShellBasedSurfaceModel extends IfcGeometricRepresentationItem {\n constructor(SbsmBoundary) {\n super();\n this.SbsmBoundary = SbsmBoundary;\n this.type = 4124623270;\n }\n }\n IFC4X32.IfcShellBasedSurfaceModel = IfcShellBasedSurfaceModel;\n class IfcSimpleProperty extends IfcProperty {\n constructor(Name, Specification) {\n super(Name, Specification);\n this.Name = Name;\n this.Specification = Specification;\n this.type = 3692461612;\n }\n }\n IFC4X32.IfcSimpleProperty = IfcSimpleProperty;\n class IfcSlippageConnectionCondition extends IfcStructuralConnectionCondition {\n constructor(Name, SlippageX, SlippageY, SlippageZ) {\n super(Name);\n this.Name = Name;\n this.SlippageX = SlippageX;\n this.SlippageY = SlippageY;\n this.SlippageZ = SlippageZ;\n this.type = 2609359061;\n }\n }\n IFC4X32.IfcSlippageConnectionCondition = IfcSlippageConnectionCondition;\n class IfcSolidModel extends IfcGeometricRepresentationItem {\n constructor() {\n super();\n this.type = 723233188;\n }\n }\n IFC4X32.IfcSolidModel = IfcSolidModel;\n class IfcStructuralLoadLinearForce extends IfcStructuralLoadStatic {\n constructor(Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ) {\n super(Name);\n this.Name = Name;\n this.LinearForceX = LinearForceX;\n this.LinearForceY = LinearForceY;\n this.LinearForceZ = LinearForceZ;\n this.LinearMomentX = LinearMomentX;\n this.LinearMomentY = LinearMomentY;\n this.LinearMomentZ = LinearMomentZ;\n this.type = 1595516126;\n }\n }\n IFC4X32.IfcStructuralLoadLinearForce = IfcStructuralLoadLinearForce;\n class IfcStructuralLoadPlanarForce extends IfcStructuralLoadStatic {\n constructor(Name, PlanarForceX, PlanarForceY, PlanarForceZ) {\n super(Name);\n this.Name = Name;\n this.PlanarForceX = PlanarForceX;\n this.PlanarForceY = PlanarForceY;\n this.PlanarForceZ = PlanarForceZ;\n this.type = 2668620305;\n }\n }\n IFC4X32.IfcStructuralLoadPlanarForce = IfcStructuralLoadPlanarForce;\n class IfcStructuralLoadSingleDisplacement extends IfcStructuralLoadStatic {\n constructor(Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ) {\n super(Name);\n this.Name = Name;\n this.DisplacementX = DisplacementX;\n this.DisplacementY = DisplacementY;\n this.DisplacementZ = DisplacementZ;\n this.RotationalDisplacementRX = RotationalDisplacementRX;\n this.RotationalDisplacementRY = RotationalDisplacementRY;\n this.RotationalDisplacementRZ = RotationalDisplacementRZ;\n this.type = 2473145415;\n }\n }\n IFC4X32.IfcStructuralLoadSingleDisplacement = IfcStructuralLoadSingleDisplacement;\n class IfcStructuralLoadSingleDisplacementDistortion extends IfcStructuralLoadSingleDisplacement {\n constructor(Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion) {\n super(Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ);\n this.Name = Name;\n this.DisplacementX = DisplacementX;\n this.DisplacementY = DisplacementY;\n this.DisplacementZ = DisplacementZ;\n this.RotationalDisplacementRX = RotationalDisplacementRX;\n this.RotationalDisplacementRY = RotationalDisplacementRY;\n this.RotationalDisplacementRZ = RotationalDisplacementRZ;\n this.Distortion = Distortion;\n this.type = 1973038258;\n }\n }\n IFC4X32.IfcStructuralLoadSingleDisplacementDistortion = IfcStructuralLoadSingleDisplacementDistortion;\n class IfcStructuralLoadSingleForce extends IfcStructuralLoadStatic {\n constructor(Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ) {\n super(Name);\n this.Name = Name;\n this.ForceX = ForceX;\n this.ForceY = ForceY;\n this.ForceZ = ForceZ;\n this.MomentX = MomentX;\n this.MomentY = MomentY;\n this.MomentZ = MomentZ;\n this.type = 1597423693;\n }\n }\n IFC4X32.IfcStructuralLoadSingleForce = IfcStructuralLoadSingleForce;\n class IfcStructuralLoadSingleForceWarping extends IfcStructuralLoadSingleForce {\n constructor(Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment) {\n super(Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ);\n this.Name = Name;\n this.ForceX = ForceX;\n this.ForceY = ForceY;\n this.ForceZ = ForceZ;\n this.MomentX = MomentX;\n this.MomentY = MomentY;\n this.MomentZ = MomentZ;\n this.WarpingMoment = WarpingMoment;\n this.type = 1190533807;\n }\n }\n IFC4X32.IfcStructuralLoadSingleForceWarping = IfcStructuralLoadSingleForceWarping;\n class IfcSubedge extends IfcEdge {\n constructor(EdgeStart, EdgeEnd, ParentEdge) {\n super(EdgeStart, EdgeEnd);\n this.EdgeStart = EdgeStart;\n this.EdgeEnd = EdgeEnd;\n this.ParentEdge = ParentEdge;\n this.type = 2233826070;\n }\n }\n IFC4X32.IfcSubedge = IfcSubedge;\n class IfcSurface extends IfcGeometricRepresentationItem {\n constructor() {\n super();\n this.type = 2513912981;\n }\n }\n IFC4X32.IfcSurface = IfcSurface;\n class IfcSurfaceStyleRendering extends IfcSurfaceStyleShading {\n constructor(SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod) {\n super(SurfaceColour, Transparency);\n this.SurfaceColour = SurfaceColour;\n this.Transparency = Transparency;\n this.DiffuseColour = DiffuseColour;\n this.TransmissionColour = TransmissionColour;\n this.DiffuseTransmissionColour = DiffuseTransmissionColour;\n this.ReflectionColour = ReflectionColour;\n this.SpecularColour = SpecularColour;\n this.SpecularHighlight = SpecularHighlight;\n this.ReflectanceMethod = ReflectanceMethod;\n this.type = 1878645084;\n }\n }\n IFC4X32.IfcSurfaceStyleRendering = IfcSurfaceStyleRendering;\n class IfcSweptAreaSolid extends IfcSolidModel {\n constructor(SweptArea, Position) {\n super();\n this.SweptArea = SweptArea;\n this.Position = Position;\n this.type = 2247615214;\n }\n }\n IFC4X32.IfcSweptAreaSolid = IfcSweptAreaSolid;\n class IfcSweptDiskSolid extends IfcSolidModel {\n constructor(Directrix, Radius, InnerRadius, StartParam, EndParam) {\n super();\n this.Directrix = Directrix;\n this.Radius = Radius;\n this.InnerRadius = InnerRadius;\n this.StartParam = StartParam;\n this.EndParam = EndParam;\n this.type = 1260650574;\n }\n }\n IFC4X32.IfcSweptDiskSolid = IfcSweptDiskSolid;\n class IfcSweptDiskSolidPolygonal extends IfcSweptDiskSolid {\n constructor(Directrix, Radius, InnerRadius, StartParam, EndParam, FilletRadius) {\n super(Directrix, Radius, InnerRadius, StartParam, EndParam);\n this.Directrix = Directrix;\n this.Radius = Radius;\n this.InnerRadius = InnerRadius;\n this.StartParam = StartParam;\n this.EndParam = EndParam;\n this.FilletRadius = FilletRadius;\n this.type = 1096409881;\n }\n }\n IFC4X32.IfcSweptDiskSolidPolygonal = IfcSweptDiskSolidPolygonal;\n class IfcSweptSurface extends IfcSurface {\n constructor(SweptCurve, Position) {\n super();\n this.SweptCurve = SweptCurve;\n this.Position = Position;\n this.type = 230924584;\n }\n }\n IFC4X32.IfcSweptSurface = IfcSweptSurface;\n class IfcTShapeProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.Depth = Depth;\n this.FlangeWidth = FlangeWidth;\n this.WebThickness = WebThickness;\n this.FlangeThickness = FlangeThickness;\n this.FilletRadius = FilletRadius;\n this.FlangeEdgeRadius = FlangeEdgeRadius;\n this.WebEdgeRadius = WebEdgeRadius;\n this.WebSlope = WebSlope;\n this.FlangeSlope = FlangeSlope;\n this.type = 3071757647;\n }\n }\n IFC4X32.IfcTShapeProfileDef = IfcTShapeProfileDef;\n class IfcTessellatedItem extends IfcGeometricRepresentationItem {\n constructor() {\n super();\n this.type = 901063453;\n }\n }\n IFC4X32.IfcTessellatedItem = IfcTessellatedItem;\n class IfcTextLiteral extends IfcGeometricRepresentationItem {\n constructor(Literal, Placement, Path) {\n super();\n this.Literal = Literal;\n this.Placement = Placement;\n this.Path = Path;\n this.type = 4282788508;\n }\n }\n IFC4X32.IfcTextLiteral = IfcTextLiteral;\n class IfcTextLiteralWithExtent extends IfcTextLiteral {\n constructor(Literal, Placement, Path, Extent, BoxAlignment) {\n super(Literal, Placement, Path);\n this.Literal = Literal;\n this.Placement = Placement;\n this.Path = Path;\n this.Extent = Extent;\n this.BoxAlignment = BoxAlignment;\n this.type = 3124975700;\n }\n }\n IFC4X32.IfcTextLiteralWithExtent = IfcTextLiteralWithExtent;\n class IfcTextStyleFontModel extends IfcPreDefinedTextFont {\n constructor(Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize) {\n super(Name);\n this.Name = Name;\n this.FontFamily = FontFamily;\n this.FontStyle = FontStyle;\n this.FontVariant = FontVariant;\n this.FontWeight = FontWeight;\n this.FontSize = FontSize;\n this.type = 1983826977;\n }\n }\n IFC4X32.IfcTextStyleFontModel = IfcTextStyleFontModel;\n class IfcTrapeziumProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.BottomXDim = BottomXDim;\n this.TopXDim = TopXDim;\n this.YDim = YDim;\n this.TopXOffset = TopXOffset;\n this.type = 2715220739;\n }\n }\n IFC4X32.IfcTrapeziumProfileDef = IfcTrapeziumProfileDef;\n class IfcTypeObject extends IfcObjectDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.type = 1628702193;\n }\n }\n IFC4X32.IfcTypeObject = IfcTypeObject;\n class IfcTypeProcess extends IfcTypeObject {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.ProcessType = ProcessType;\n this.type = 3736923433;\n }\n }\n IFC4X32.IfcTypeProcess = IfcTypeProcess;\n class IfcTypeProduct extends IfcTypeObject {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.type = 2347495698;\n }\n }\n IFC4X32.IfcTypeProduct = IfcTypeProduct;\n class IfcTypeResource extends IfcTypeObject {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.ResourceType = ResourceType;\n this.type = 3698973494;\n }\n }\n IFC4X32.IfcTypeResource = IfcTypeResource;\n class IfcUShapeProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.Depth = Depth;\n this.FlangeWidth = FlangeWidth;\n this.WebThickness = WebThickness;\n this.FlangeThickness = FlangeThickness;\n this.FilletRadius = FilletRadius;\n this.EdgeRadius = EdgeRadius;\n this.FlangeSlope = FlangeSlope;\n this.type = 427810014;\n }\n }\n IFC4X32.IfcUShapeProfileDef = IfcUShapeProfileDef;\n class IfcVector extends IfcGeometricRepresentationItem {\n constructor(Orientation, Magnitude) {\n super();\n this.Orientation = Orientation;\n this.Magnitude = Magnitude;\n this.type = 1417489154;\n }\n }\n IFC4X32.IfcVector = IfcVector;\n class IfcVertexLoop extends IfcLoop {\n constructor(LoopVertex) {\n super();\n this.LoopVertex = LoopVertex;\n this.type = 2759199220;\n }\n }\n IFC4X32.IfcVertexLoop = IfcVertexLoop;\n class IfcZShapeProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.Depth = Depth;\n this.FlangeWidth = FlangeWidth;\n this.WebThickness = WebThickness;\n this.FlangeThickness = FlangeThickness;\n this.FilletRadius = FilletRadius;\n this.EdgeRadius = EdgeRadius;\n this.type = 2543172580;\n }\n }\n IFC4X32.IfcZShapeProfileDef = IfcZShapeProfileDef;\n class IfcAdvancedFace extends IfcFaceSurface {\n constructor(Bounds, FaceSurface, SameSense) {\n super(Bounds, FaceSurface, SameSense);\n this.Bounds = Bounds;\n this.FaceSurface = FaceSurface;\n this.SameSense = SameSense;\n this.type = 3406155212;\n }\n }\n IFC4X32.IfcAdvancedFace = IfcAdvancedFace;\n class IfcAnnotationFillArea extends IfcGeometricRepresentationItem {\n constructor(OuterBoundary, InnerBoundaries) {\n super();\n this.OuterBoundary = OuterBoundary;\n this.InnerBoundaries = InnerBoundaries;\n this.type = 669184980;\n }\n }\n IFC4X32.IfcAnnotationFillArea = IfcAnnotationFillArea;\n class IfcAsymmetricIShapeProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, BottomFlangeWidth, OverallDepth, WebThickness, BottomFlangeThickness, BottomFlangeFilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, BottomFlangeEdgeRadius, BottomFlangeSlope, TopFlangeEdgeRadius, TopFlangeSlope) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.BottomFlangeWidth = BottomFlangeWidth;\n this.OverallDepth = OverallDepth;\n this.WebThickness = WebThickness;\n this.BottomFlangeThickness = BottomFlangeThickness;\n this.BottomFlangeFilletRadius = BottomFlangeFilletRadius;\n this.TopFlangeWidth = TopFlangeWidth;\n this.TopFlangeThickness = TopFlangeThickness;\n this.TopFlangeFilletRadius = TopFlangeFilletRadius;\n this.BottomFlangeEdgeRadius = BottomFlangeEdgeRadius;\n this.BottomFlangeSlope = BottomFlangeSlope;\n this.TopFlangeEdgeRadius = TopFlangeEdgeRadius;\n this.TopFlangeSlope = TopFlangeSlope;\n this.type = 3207858831;\n }\n }\n IFC4X32.IfcAsymmetricIShapeProfileDef = IfcAsymmetricIShapeProfileDef;\n class IfcAxis1Placement extends IfcPlacement {\n constructor(Location, Axis) {\n super(Location);\n this.Location = Location;\n this.Axis = Axis;\n this.type = 4261334040;\n }\n }\n IFC4X32.IfcAxis1Placement = IfcAxis1Placement;\n class IfcAxis2Placement2D extends IfcPlacement {\n constructor(Location, RefDirection) {\n super(Location);\n this.Location = Location;\n this.RefDirection = RefDirection;\n this.type = 3125803723;\n }\n }\n IFC4X32.IfcAxis2Placement2D = IfcAxis2Placement2D;\n class IfcAxis2Placement3D extends IfcPlacement {\n constructor(Location, Axis, RefDirection) {\n super(Location);\n this.Location = Location;\n this.Axis = Axis;\n this.RefDirection = RefDirection;\n this.type = 2740243338;\n }\n }\n IFC4X32.IfcAxis2Placement3D = IfcAxis2Placement3D;\n class IfcAxis2PlacementLinear extends IfcPlacement {\n constructor(Location, Axis, RefDirection) {\n super(Location);\n this.Location = Location;\n this.Axis = Axis;\n this.RefDirection = RefDirection;\n this.type = 3425423356;\n }\n }\n IFC4X32.IfcAxis2PlacementLinear = IfcAxis2PlacementLinear;\n class IfcBooleanResult extends IfcGeometricRepresentationItem {\n constructor(Operator, FirstOperand, SecondOperand) {\n super();\n this.Operator = Operator;\n this.FirstOperand = FirstOperand;\n this.SecondOperand = SecondOperand;\n this.type = 2736907675;\n }\n }\n IFC4X32.IfcBooleanResult = IfcBooleanResult;\n class IfcBoundedSurface extends IfcSurface {\n constructor() {\n super();\n this.type = 4182860854;\n }\n }\n IFC4X32.IfcBoundedSurface = IfcBoundedSurface;\n class IfcBoundingBox extends IfcGeometricRepresentationItem {\n constructor(Corner, XDim, YDim, ZDim) {\n super();\n this.Corner = Corner;\n this.XDim = XDim;\n this.YDim = YDim;\n this.ZDim = ZDim;\n this.type = 2581212453;\n }\n }\n IFC4X32.IfcBoundingBox = IfcBoundingBox;\n class IfcBoxedHalfSpace extends IfcHalfSpaceSolid {\n constructor(BaseSurface, AgreementFlag, Enclosure) {\n super(BaseSurface, AgreementFlag);\n this.BaseSurface = BaseSurface;\n this.AgreementFlag = AgreementFlag;\n this.Enclosure = Enclosure;\n this.type = 2713105998;\n }\n }\n IFC4X32.IfcBoxedHalfSpace = IfcBoxedHalfSpace;\n class IfcCShapeProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.Depth = Depth;\n this.Width = Width;\n this.WallThickness = WallThickness;\n this.Girth = Girth;\n this.InternalFilletRadius = InternalFilletRadius;\n this.type = 2898889636;\n }\n }\n IFC4X32.IfcCShapeProfileDef = IfcCShapeProfileDef;\n class IfcCartesianPoint extends IfcPoint {\n constructor(Coordinates) {\n super();\n this.Coordinates = Coordinates;\n this.type = 1123145078;\n }\n }\n IFC4X32.IfcCartesianPoint = IfcCartesianPoint;\n class IfcCartesianPointList extends IfcGeometricRepresentationItem {\n constructor() {\n super();\n this.type = 574549367;\n }\n }\n IFC4X32.IfcCartesianPointList = IfcCartesianPointList;\n class IfcCartesianPointList2D extends IfcCartesianPointList {\n constructor(CoordList, TagList) {\n super();\n this.CoordList = CoordList;\n this.TagList = TagList;\n this.type = 1675464909;\n }\n }\n IFC4X32.IfcCartesianPointList2D = IfcCartesianPointList2D;\n class IfcCartesianPointList3D extends IfcCartesianPointList {\n constructor(CoordList, TagList) {\n super();\n this.CoordList = CoordList;\n this.TagList = TagList;\n this.type = 2059837836;\n }\n }\n IFC4X32.IfcCartesianPointList3D = IfcCartesianPointList3D;\n class IfcCartesianTransformationOperator extends IfcGeometricRepresentationItem {\n constructor(Axis1, Axis2, LocalOrigin, Scale) {\n super();\n this.Axis1 = Axis1;\n this.Axis2 = Axis2;\n this.LocalOrigin = LocalOrigin;\n this.Scale = Scale;\n this.type = 59481748;\n }\n }\n IFC4X32.IfcCartesianTransformationOperator = IfcCartesianTransformationOperator;\n class IfcCartesianTransformationOperator2D extends IfcCartesianTransformationOperator {\n constructor(Axis1, Axis2, LocalOrigin, Scale) {\n super(Axis1, Axis2, LocalOrigin, Scale);\n this.Axis1 = Axis1;\n this.Axis2 = Axis2;\n this.LocalOrigin = LocalOrigin;\n this.Scale = Scale;\n this.type = 3749851601;\n }\n }\n IFC4X32.IfcCartesianTransformationOperator2D = IfcCartesianTransformationOperator2D;\n class IfcCartesianTransformationOperator2DnonUniform extends IfcCartesianTransformationOperator2D {\n constructor(Axis1, Axis2, LocalOrigin, Scale, Scale2) {\n super(Axis1, Axis2, LocalOrigin, Scale);\n this.Axis1 = Axis1;\n this.Axis2 = Axis2;\n this.LocalOrigin = LocalOrigin;\n this.Scale = Scale;\n this.Scale2 = Scale2;\n this.type = 3486308946;\n }\n }\n IFC4X32.IfcCartesianTransformationOperator2DnonUniform = IfcCartesianTransformationOperator2DnonUniform;\n class IfcCartesianTransformationOperator3D extends IfcCartesianTransformationOperator {\n constructor(Axis1, Axis2, LocalOrigin, Scale, Axis3) {\n super(Axis1, Axis2, LocalOrigin, Scale);\n this.Axis1 = Axis1;\n this.Axis2 = Axis2;\n this.LocalOrigin = LocalOrigin;\n this.Scale = Scale;\n this.Axis3 = Axis3;\n this.type = 3331915920;\n }\n }\n IFC4X32.IfcCartesianTransformationOperator3D = IfcCartesianTransformationOperator3D;\n class IfcCartesianTransformationOperator3DnonUniform extends IfcCartesianTransformationOperator3D {\n constructor(Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3) {\n super(Axis1, Axis2, LocalOrigin, Scale, Axis3);\n this.Axis1 = Axis1;\n this.Axis2 = Axis2;\n this.LocalOrigin = LocalOrigin;\n this.Scale = Scale;\n this.Axis3 = Axis3;\n this.Scale2 = Scale2;\n this.Scale3 = Scale3;\n this.type = 1416205885;\n }\n }\n IFC4X32.IfcCartesianTransformationOperator3DnonUniform = IfcCartesianTransformationOperator3DnonUniform;\n class IfcCircleProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, Radius) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.Radius = Radius;\n this.type = 1383045692;\n }\n }\n IFC4X32.IfcCircleProfileDef = IfcCircleProfileDef;\n class IfcClosedShell extends IfcConnectedFaceSet {\n constructor(CfsFaces) {\n super(CfsFaces);\n this.CfsFaces = CfsFaces;\n this.type = 2205249479;\n }\n }\n IFC4X32.IfcClosedShell = IfcClosedShell;\n class IfcColourRgb extends IfcColourSpecification {\n constructor(Name, Red, Green, Blue) {\n super(Name);\n this.Name = Name;\n this.Red = Red;\n this.Green = Green;\n this.Blue = Blue;\n this.type = 776857604;\n }\n }\n IFC4X32.IfcColourRgb = IfcColourRgb;\n class IfcComplexProperty extends IfcProperty {\n constructor(Name, Specification, UsageName, HasProperties) {\n super(Name, Specification);\n this.Name = Name;\n this.Specification = Specification;\n this.UsageName = UsageName;\n this.HasProperties = HasProperties;\n this.type = 2542286263;\n }\n }\n IFC4X32.IfcComplexProperty = IfcComplexProperty;\n class IfcCompositeCurveSegment extends IfcSegment {\n constructor(Transition, SameSense, ParentCurve) {\n super(Transition);\n this.Transition = Transition;\n this.SameSense = SameSense;\n this.ParentCurve = ParentCurve;\n this.type = 2485617015;\n }\n }\n IFC4X32.IfcCompositeCurveSegment = IfcCompositeCurveSegment;\n class IfcConstructionResourceType extends IfcTypeResource {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.ResourceType = ResourceType;\n this.BaseCosts = BaseCosts;\n this.BaseQuantity = BaseQuantity;\n this.type = 2574617495;\n }\n }\n IFC4X32.IfcConstructionResourceType = IfcConstructionResourceType;\n class IfcContext extends IfcObjectDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.LongName = LongName;\n this.Phase = Phase;\n this.RepresentationContexts = RepresentationContexts;\n this.UnitsInContext = UnitsInContext;\n this.type = 3419103109;\n }\n }\n IFC4X32.IfcContext = IfcContext;\n class IfcCrewResourceType extends IfcConstructionResourceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.ResourceType = ResourceType;\n this.BaseCosts = BaseCosts;\n this.BaseQuantity = BaseQuantity;\n this.PredefinedType = PredefinedType;\n this.type = 1815067380;\n }\n }\n IFC4X32.IfcCrewResourceType = IfcCrewResourceType;\n class IfcCsgPrimitive3D extends IfcGeometricRepresentationItem {\n constructor(Position) {\n super();\n this.Position = Position;\n this.type = 2506170314;\n }\n }\n IFC4X32.IfcCsgPrimitive3D = IfcCsgPrimitive3D;\n class IfcCsgSolid extends IfcSolidModel {\n constructor(TreeRootExpression) {\n super();\n this.TreeRootExpression = TreeRootExpression;\n this.type = 2147822146;\n }\n }\n IFC4X32.IfcCsgSolid = IfcCsgSolid;\n class IfcCurve extends IfcGeometricRepresentationItem {\n constructor() {\n super();\n this.type = 2601014836;\n }\n }\n IFC4X32.IfcCurve = IfcCurve;\n class IfcCurveBoundedPlane extends IfcBoundedSurface {\n constructor(BasisSurface, OuterBoundary, InnerBoundaries) {\n super();\n this.BasisSurface = BasisSurface;\n this.OuterBoundary = OuterBoundary;\n this.InnerBoundaries = InnerBoundaries;\n this.type = 2827736869;\n }\n }\n IFC4X32.IfcCurveBoundedPlane = IfcCurveBoundedPlane;\n class IfcCurveBoundedSurface extends IfcBoundedSurface {\n constructor(BasisSurface, Boundaries, ImplicitOuter) {\n super();\n this.BasisSurface = BasisSurface;\n this.Boundaries = Boundaries;\n this.ImplicitOuter = ImplicitOuter;\n this.type = 2629017746;\n }\n }\n IFC4X32.IfcCurveBoundedSurface = IfcCurveBoundedSurface;\n class IfcCurveSegment extends IfcSegment {\n constructor(Transition, Placement, SegmentStart, SegmentLength, ParentCurve) {\n super(Transition);\n this.Transition = Transition;\n this.Placement = Placement;\n this.SegmentStart = SegmentStart;\n this.SegmentLength = SegmentLength;\n this.ParentCurve = ParentCurve;\n this.type = 4212018352;\n }\n }\n IFC4X32.IfcCurveSegment = IfcCurveSegment;\n class IfcDirection extends IfcGeometricRepresentationItem {\n constructor(DirectionRatios) {\n super();\n this.DirectionRatios = DirectionRatios;\n this.type = 32440307;\n }\n }\n IFC4X32.IfcDirection = IfcDirection;\n class IfcDirectrixCurveSweptAreaSolid extends IfcSweptAreaSolid {\n constructor(SweptArea, Position, Directrix, StartParam, EndParam) {\n super(SweptArea, Position);\n this.SweptArea = SweptArea;\n this.Position = Position;\n this.Directrix = Directrix;\n this.StartParam = StartParam;\n this.EndParam = EndParam;\n this.type = 593015953;\n }\n }\n IFC4X32.IfcDirectrixCurveSweptAreaSolid = IfcDirectrixCurveSweptAreaSolid;\n class IfcEdgeLoop extends IfcLoop {\n constructor(EdgeList) {\n super();\n this.EdgeList = EdgeList;\n this.type = 1472233963;\n }\n }\n IFC4X32.IfcEdgeLoop = IfcEdgeLoop;\n class IfcElementQuantity extends IfcQuantitySet {\n constructor(GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.MethodOfMeasurement = MethodOfMeasurement;\n this.Quantities = Quantities;\n this.type = 1883228015;\n }\n }\n IFC4X32.IfcElementQuantity = IfcElementQuantity;\n class IfcElementType extends IfcTypeProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 339256511;\n }\n }\n IFC4X32.IfcElementType = IfcElementType;\n class IfcElementarySurface extends IfcSurface {\n constructor(Position) {\n super();\n this.Position = Position;\n this.type = 2777663545;\n }\n }\n IFC4X32.IfcElementarySurface = IfcElementarySurface;\n class IfcEllipseProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.SemiAxis1 = SemiAxis1;\n this.SemiAxis2 = SemiAxis2;\n this.type = 2835456948;\n }\n }\n IFC4X32.IfcEllipseProfileDef = IfcEllipseProfileDef;\n class IfcEventType extends IfcTypeProcess {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, EventTriggerType, UserDefinedEventTriggerType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.ProcessType = ProcessType;\n this.PredefinedType = PredefinedType;\n this.EventTriggerType = EventTriggerType;\n this.UserDefinedEventTriggerType = UserDefinedEventTriggerType;\n this.type = 4024345920;\n }\n }\n IFC4X32.IfcEventType = IfcEventType;\n class IfcExtrudedAreaSolid extends IfcSweptAreaSolid {\n constructor(SweptArea, Position, ExtrudedDirection, Depth) {\n super(SweptArea, Position);\n this.SweptArea = SweptArea;\n this.Position = Position;\n this.ExtrudedDirection = ExtrudedDirection;\n this.Depth = Depth;\n this.type = 477187591;\n }\n }\n IFC4X32.IfcExtrudedAreaSolid = IfcExtrudedAreaSolid;\n class IfcExtrudedAreaSolidTapered extends IfcExtrudedAreaSolid {\n constructor(SweptArea, Position, ExtrudedDirection, Depth, EndSweptArea) {\n super(SweptArea, Position, ExtrudedDirection, Depth);\n this.SweptArea = SweptArea;\n this.Position = Position;\n this.ExtrudedDirection = ExtrudedDirection;\n this.Depth = Depth;\n this.EndSweptArea = EndSweptArea;\n this.type = 2804161546;\n }\n }\n IFC4X32.IfcExtrudedAreaSolidTapered = IfcExtrudedAreaSolidTapered;\n class IfcFaceBasedSurfaceModel extends IfcGeometricRepresentationItem {\n constructor(FbsmFaces) {\n super();\n this.FbsmFaces = FbsmFaces;\n this.type = 2047409740;\n }\n }\n IFC4X32.IfcFaceBasedSurfaceModel = IfcFaceBasedSurfaceModel;\n class IfcFillAreaStyleHatching extends IfcGeometricRepresentationItem {\n constructor(HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle) {\n super();\n this.HatchLineAppearance = HatchLineAppearance;\n this.StartOfNextHatchLine = StartOfNextHatchLine;\n this.PointOfReferenceHatchLine = PointOfReferenceHatchLine;\n this.PatternStart = PatternStart;\n this.HatchLineAngle = HatchLineAngle;\n this.type = 374418227;\n }\n }\n IFC4X32.IfcFillAreaStyleHatching = IfcFillAreaStyleHatching;\n class IfcFillAreaStyleTiles extends IfcGeometricRepresentationItem {\n constructor(TilingPattern, Tiles, TilingScale) {\n super();\n this.TilingPattern = TilingPattern;\n this.Tiles = Tiles;\n this.TilingScale = TilingScale;\n this.type = 315944413;\n }\n }\n IFC4X32.IfcFillAreaStyleTiles = IfcFillAreaStyleTiles;\n class IfcFixedReferenceSweptAreaSolid extends IfcDirectrixCurveSweptAreaSolid {\n constructor(SweptArea, Position, Directrix, StartParam, EndParam, FixedReference) {\n super(SweptArea, Position, Directrix, StartParam, EndParam);\n this.SweptArea = SweptArea;\n this.Position = Position;\n this.Directrix = Directrix;\n this.StartParam = StartParam;\n this.EndParam = EndParam;\n this.FixedReference = FixedReference;\n this.type = 2652556860;\n }\n }\n IFC4X32.IfcFixedReferenceSweptAreaSolid = IfcFixedReferenceSweptAreaSolid;\n class IfcFurnishingElementType extends IfcElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 4238390223;\n }\n }\n IFC4X32.IfcFurnishingElementType = IfcFurnishingElementType;\n class IfcFurnitureType extends IfcFurnishingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.AssemblyPlace = AssemblyPlace;\n this.PredefinedType = PredefinedType;\n this.type = 1268542332;\n }\n }\n IFC4X32.IfcFurnitureType = IfcFurnitureType;\n class IfcGeographicElementType extends IfcElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 4095422895;\n }\n }\n IFC4X32.IfcGeographicElementType = IfcGeographicElementType;\n class IfcGeometricCurveSet extends IfcGeometricSet {\n constructor(Elements) {\n super(Elements);\n this.Elements = Elements;\n this.type = 987898635;\n }\n }\n IFC4X32.IfcGeometricCurveSet = IfcGeometricCurveSet;\n class IfcIShapeProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, FlangeSlope) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.OverallWidth = OverallWidth;\n this.OverallDepth = OverallDepth;\n this.WebThickness = WebThickness;\n this.FlangeThickness = FlangeThickness;\n this.FilletRadius = FilletRadius;\n this.FlangeEdgeRadius = FlangeEdgeRadius;\n this.FlangeSlope = FlangeSlope;\n this.type = 1484403080;\n }\n }\n IFC4X32.IfcIShapeProfileDef = IfcIShapeProfileDef;\n class IfcIndexedPolygonalFace extends IfcTessellatedItem {\n constructor(CoordIndex) {\n super();\n this.CoordIndex = CoordIndex;\n this.type = 178912537;\n }\n }\n IFC4X32.IfcIndexedPolygonalFace = IfcIndexedPolygonalFace;\n class IfcIndexedPolygonalFaceWithVoids extends IfcIndexedPolygonalFace {\n constructor(CoordIndex, InnerCoordIndices) {\n super(CoordIndex);\n this.CoordIndex = CoordIndex;\n this.InnerCoordIndices = InnerCoordIndices;\n this.type = 2294589976;\n }\n }\n IFC4X32.IfcIndexedPolygonalFaceWithVoids = IfcIndexedPolygonalFaceWithVoids;\n class IfcIndexedPolygonalTextureMap extends IfcIndexedTextureMap {\n constructor(Maps, MappedTo, TexCoords, TexCoordIndices) {\n super(Maps, MappedTo, TexCoords);\n this.Maps = Maps;\n this.MappedTo = MappedTo;\n this.TexCoords = TexCoords;\n this.TexCoordIndices = TexCoordIndices;\n this.type = 3465909080;\n }\n }\n IFC4X32.IfcIndexedPolygonalTextureMap = IfcIndexedPolygonalTextureMap;\n class IfcLShapeProfileDef extends IfcParameterizedProfileDef {\n constructor(ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope) {\n super(ProfileType, ProfileName, Position);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.Depth = Depth;\n this.Width = Width;\n this.Thickness = Thickness;\n this.FilletRadius = FilletRadius;\n this.EdgeRadius = EdgeRadius;\n this.LegSlope = LegSlope;\n this.type = 572779678;\n }\n }\n IFC4X32.IfcLShapeProfileDef = IfcLShapeProfileDef;\n class IfcLaborResourceType extends IfcConstructionResourceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.ResourceType = ResourceType;\n this.BaseCosts = BaseCosts;\n this.BaseQuantity = BaseQuantity;\n this.PredefinedType = PredefinedType;\n this.type = 428585644;\n }\n }\n IFC4X32.IfcLaborResourceType = IfcLaborResourceType;\n class IfcLine extends IfcCurve {\n constructor(Pnt, Dir) {\n super();\n this.Pnt = Pnt;\n this.Dir = Dir;\n this.type = 1281925730;\n }\n }\n IFC4X32.IfcLine = IfcLine;\n class IfcManifoldSolidBrep extends IfcSolidModel {\n constructor(Outer) {\n super();\n this.Outer = Outer;\n this.type = 1425443689;\n }\n }\n IFC4X32.IfcManifoldSolidBrep = IfcManifoldSolidBrep;\n class IfcObject extends IfcObjectDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.type = 3888040117;\n }\n }\n IFC4X32.IfcObject = IfcObject;\n class IfcOffsetCurve extends IfcCurve {\n constructor(BasisCurve) {\n super();\n this.BasisCurve = BasisCurve;\n this.type = 590820931;\n }\n }\n IFC4X32.IfcOffsetCurve = IfcOffsetCurve;\n class IfcOffsetCurve2D extends IfcOffsetCurve {\n constructor(BasisCurve, Distance, SelfIntersect) {\n super(BasisCurve);\n this.BasisCurve = BasisCurve;\n this.Distance = Distance;\n this.SelfIntersect = SelfIntersect;\n this.type = 3388369263;\n }\n }\n IFC4X32.IfcOffsetCurve2D = IfcOffsetCurve2D;\n class IfcOffsetCurve3D extends IfcOffsetCurve {\n constructor(BasisCurve, Distance, SelfIntersect, RefDirection) {\n super(BasisCurve);\n this.BasisCurve = BasisCurve;\n this.Distance = Distance;\n this.SelfIntersect = SelfIntersect;\n this.RefDirection = RefDirection;\n this.type = 3505215534;\n }\n }\n IFC4X32.IfcOffsetCurve3D = IfcOffsetCurve3D;\n class IfcOffsetCurveByDistances extends IfcOffsetCurve {\n constructor(BasisCurve, OffsetValues, Tag) {\n super(BasisCurve);\n this.BasisCurve = BasisCurve;\n this.OffsetValues = OffsetValues;\n this.Tag = Tag;\n this.type = 2485787929;\n }\n }\n IFC4X32.IfcOffsetCurveByDistances = IfcOffsetCurveByDistances;\n class IfcPcurve extends IfcCurve {\n constructor(BasisSurface, ReferenceCurve) {\n super();\n this.BasisSurface = BasisSurface;\n this.ReferenceCurve = ReferenceCurve;\n this.type = 1682466193;\n }\n }\n IFC4X32.IfcPcurve = IfcPcurve;\n class IfcPlanarBox extends IfcPlanarExtent {\n constructor(SizeInX, SizeInY, Placement) {\n super(SizeInX, SizeInY);\n this.SizeInX = SizeInX;\n this.SizeInY = SizeInY;\n this.Placement = Placement;\n this.type = 603570806;\n }\n }\n IFC4X32.IfcPlanarBox = IfcPlanarBox;\n class IfcPlane extends IfcElementarySurface {\n constructor(Position) {\n super(Position);\n this.Position = Position;\n this.type = 220341763;\n }\n }\n IFC4X32.IfcPlane = IfcPlane;\n class IfcPolynomialCurve extends IfcCurve {\n constructor(Position, CoefficientsX, CoefficientsY, CoefficientsZ) {\n super();\n this.Position = Position;\n this.CoefficientsX = CoefficientsX;\n this.CoefficientsY = CoefficientsY;\n this.CoefficientsZ = CoefficientsZ;\n this.type = 3381221214;\n }\n }\n IFC4X32.IfcPolynomialCurve = IfcPolynomialCurve;\n class IfcPreDefinedColour extends IfcPreDefinedItem {\n constructor(Name) {\n super(Name);\n this.Name = Name;\n this.type = 759155922;\n }\n }\n IFC4X32.IfcPreDefinedColour = IfcPreDefinedColour;\n class IfcPreDefinedCurveFont extends IfcPreDefinedItem {\n constructor(Name) {\n super(Name);\n this.Name = Name;\n this.type = 2559016684;\n }\n }\n IFC4X32.IfcPreDefinedCurveFont = IfcPreDefinedCurveFont;\n class IfcPreDefinedPropertySet extends IfcPropertySetDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 3967405729;\n }\n }\n IFC4X32.IfcPreDefinedPropertySet = IfcPreDefinedPropertySet;\n class IfcProcedureType extends IfcTypeProcess {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.ProcessType = ProcessType;\n this.PredefinedType = PredefinedType;\n this.type = 569719735;\n }\n }\n IFC4X32.IfcProcedureType = IfcProcedureType;\n class IfcProcess extends IfcObject {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.type = 2945172077;\n }\n }\n IFC4X32.IfcProcess = IfcProcess;\n class IfcProduct extends IfcObject {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.type = 4208778838;\n }\n }\n IFC4X32.IfcProduct = IfcProduct;\n class IfcProject extends IfcContext {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.LongName = LongName;\n this.Phase = Phase;\n this.RepresentationContexts = RepresentationContexts;\n this.UnitsInContext = UnitsInContext;\n this.type = 103090709;\n }\n }\n IFC4X32.IfcProject = IfcProject;\n class IfcProjectLibrary extends IfcContext {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.LongName = LongName;\n this.Phase = Phase;\n this.RepresentationContexts = RepresentationContexts;\n this.UnitsInContext = UnitsInContext;\n this.type = 653396225;\n }\n }\n IFC4X32.IfcProjectLibrary = IfcProjectLibrary;\n class IfcPropertyBoundedValue extends IfcSimpleProperty {\n constructor(Name, Specification, UpperBoundValue, LowerBoundValue, Unit, SetPointValue) {\n super(Name, Specification);\n this.Name = Name;\n this.Specification = Specification;\n this.UpperBoundValue = UpperBoundValue;\n this.LowerBoundValue = LowerBoundValue;\n this.Unit = Unit;\n this.SetPointValue = SetPointValue;\n this.type = 871118103;\n }\n }\n IFC4X32.IfcPropertyBoundedValue = IfcPropertyBoundedValue;\n class IfcPropertyEnumeratedValue extends IfcSimpleProperty {\n constructor(Name, Specification, EnumerationValues, EnumerationReference) {\n super(Name, Specification);\n this.Name = Name;\n this.Specification = Specification;\n this.EnumerationValues = EnumerationValues;\n this.EnumerationReference = EnumerationReference;\n this.type = 4166981789;\n }\n }\n IFC4X32.IfcPropertyEnumeratedValue = IfcPropertyEnumeratedValue;\n class IfcPropertyListValue extends IfcSimpleProperty {\n constructor(Name, Specification, ListValues, Unit) {\n super(Name, Specification);\n this.Name = Name;\n this.Specification = Specification;\n this.ListValues = ListValues;\n this.Unit = Unit;\n this.type = 2752243245;\n }\n }\n IFC4X32.IfcPropertyListValue = IfcPropertyListValue;\n class IfcPropertyReferenceValue extends IfcSimpleProperty {\n constructor(Name, Specification, UsageName, PropertyReference) {\n super(Name, Specification);\n this.Name = Name;\n this.Specification = Specification;\n this.UsageName = UsageName;\n this.PropertyReference = PropertyReference;\n this.type = 941946838;\n }\n }\n IFC4X32.IfcPropertyReferenceValue = IfcPropertyReferenceValue;\n class IfcPropertySet extends IfcPropertySetDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description, HasProperties) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.HasProperties = HasProperties;\n this.type = 1451395588;\n }\n }\n IFC4X32.IfcPropertySet = IfcPropertySet;\n class IfcPropertySetTemplate extends IfcPropertyTemplateDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description, TemplateType, ApplicableEntity, HasPropertyTemplates) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.TemplateType = TemplateType;\n this.ApplicableEntity = ApplicableEntity;\n this.HasPropertyTemplates = HasPropertyTemplates;\n this.type = 492091185;\n }\n }\n IFC4X32.IfcPropertySetTemplate = IfcPropertySetTemplate;\n class IfcPropertySingleValue extends IfcSimpleProperty {\n constructor(Name, Specification, NominalValue, Unit) {\n super(Name, Specification);\n this.Name = Name;\n this.Specification = Specification;\n this.NominalValue = NominalValue;\n this.Unit = Unit;\n this.type = 3650150729;\n }\n }\n IFC4X32.IfcPropertySingleValue = IfcPropertySingleValue;\n class IfcPropertyTableValue extends IfcSimpleProperty {\n constructor(Name, Specification, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit, CurveInterpolation) {\n super(Name, Specification);\n this.Name = Name;\n this.Specification = Specification;\n this.DefiningValues = DefiningValues;\n this.DefinedValues = DefinedValues;\n this.Expression = Expression;\n this.DefiningUnit = DefiningUnit;\n this.DefinedUnit = DefinedUnit;\n this.CurveInterpolation = CurveInterpolation;\n this.type = 110355661;\n }\n }\n IFC4X32.IfcPropertyTableValue = IfcPropertyTableValue;\n class IfcPropertyTemplate extends IfcPropertyTemplateDefinition {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 3521284610;\n }\n }\n IFC4X32.IfcPropertyTemplate = IfcPropertyTemplate;\n class IfcRectangleHollowProfileDef extends IfcRectangleProfileDef {\n constructor(ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius) {\n super(ProfileType, ProfileName, Position, XDim, YDim);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.XDim = XDim;\n this.YDim = YDim;\n this.WallThickness = WallThickness;\n this.InnerFilletRadius = InnerFilletRadius;\n this.OuterFilletRadius = OuterFilletRadius;\n this.type = 2770003689;\n }\n }\n IFC4X32.IfcRectangleHollowProfileDef = IfcRectangleHollowProfileDef;\n class IfcRectangularPyramid extends IfcCsgPrimitive3D {\n constructor(Position, XLength, YLength, Height) {\n super(Position);\n this.Position = Position;\n this.XLength = XLength;\n this.YLength = YLength;\n this.Height = Height;\n this.type = 2798486643;\n }\n }\n IFC4X32.IfcRectangularPyramid = IfcRectangularPyramid;\n class IfcRectangularTrimmedSurface extends IfcBoundedSurface {\n constructor(BasisSurface, U1, V1, U2, V2, Usense, Vsense) {\n super();\n this.BasisSurface = BasisSurface;\n this.U1 = U1;\n this.V1 = V1;\n this.U2 = U2;\n this.V2 = V2;\n this.Usense = Usense;\n this.Vsense = Vsense;\n this.type = 3454111270;\n }\n }\n IFC4X32.IfcRectangularTrimmedSurface = IfcRectangularTrimmedSurface;\n class IfcReinforcementDefinitionProperties extends IfcPreDefinedPropertySet {\n constructor(GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.DefinitionType = DefinitionType;\n this.ReinforcementSectionDefinitions = ReinforcementSectionDefinitions;\n this.type = 3765753017;\n }\n }\n IFC4X32.IfcReinforcementDefinitionProperties = IfcReinforcementDefinitionProperties;\n class IfcRelAssigns extends IfcRelationship {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatedObjectsType = RelatedObjectsType;\n this.type = 3939117080;\n }\n }\n IFC4X32.IfcRelAssigns = IfcRelAssigns;\n class IfcRelAssignsToActor extends IfcRelAssigns {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatedObjectsType = RelatedObjectsType;\n this.RelatingActor = RelatingActor;\n this.ActingRole = ActingRole;\n this.type = 1683148259;\n }\n }\n IFC4X32.IfcRelAssignsToActor = IfcRelAssignsToActor;\n class IfcRelAssignsToControl extends IfcRelAssigns {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatedObjectsType = RelatedObjectsType;\n this.RelatingControl = RelatingControl;\n this.type = 2495723537;\n }\n }\n IFC4X32.IfcRelAssignsToControl = IfcRelAssignsToControl;\n class IfcRelAssignsToGroup extends IfcRelAssigns {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatedObjectsType = RelatedObjectsType;\n this.RelatingGroup = RelatingGroup;\n this.type = 1307041759;\n }\n }\n IFC4X32.IfcRelAssignsToGroup = IfcRelAssignsToGroup;\n class IfcRelAssignsToGroupByFactor extends IfcRelAssignsToGroup {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup, Factor) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatedObjectsType = RelatedObjectsType;\n this.RelatingGroup = RelatingGroup;\n this.Factor = Factor;\n this.type = 1027710054;\n }\n }\n IFC4X32.IfcRelAssignsToGroupByFactor = IfcRelAssignsToGroupByFactor;\n class IfcRelAssignsToProcess extends IfcRelAssigns {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatedObjectsType = RelatedObjectsType;\n this.RelatingProcess = RelatingProcess;\n this.QuantityInProcess = QuantityInProcess;\n this.type = 4278684876;\n }\n }\n IFC4X32.IfcRelAssignsToProcess = IfcRelAssignsToProcess;\n class IfcRelAssignsToProduct extends IfcRelAssigns {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatedObjectsType = RelatedObjectsType;\n this.RelatingProduct = RelatingProduct;\n this.type = 2857406711;\n }\n }\n IFC4X32.IfcRelAssignsToProduct = IfcRelAssignsToProduct;\n class IfcRelAssignsToResource extends IfcRelAssigns {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatedObjectsType = RelatedObjectsType;\n this.RelatingResource = RelatingResource;\n this.type = 205026976;\n }\n }\n IFC4X32.IfcRelAssignsToResource = IfcRelAssignsToResource;\n class IfcRelAssociates extends IfcRelationship {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.type = 1865459582;\n }\n }\n IFC4X32.IfcRelAssociates = IfcRelAssociates;\n class IfcRelAssociatesApproval extends IfcRelAssociates {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatingApproval = RelatingApproval;\n this.type = 4095574036;\n }\n }\n IFC4X32.IfcRelAssociatesApproval = IfcRelAssociatesApproval;\n class IfcRelAssociatesClassification extends IfcRelAssociates {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatingClassification = RelatingClassification;\n this.type = 919958153;\n }\n }\n IFC4X32.IfcRelAssociatesClassification = IfcRelAssociatesClassification;\n class IfcRelAssociatesConstraint extends IfcRelAssociates {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.Intent = Intent;\n this.RelatingConstraint = RelatingConstraint;\n this.type = 2728634034;\n }\n }\n IFC4X32.IfcRelAssociatesConstraint = IfcRelAssociatesConstraint;\n class IfcRelAssociatesDocument extends IfcRelAssociates {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatingDocument = RelatingDocument;\n this.type = 982818633;\n }\n }\n IFC4X32.IfcRelAssociatesDocument = IfcRelAssociatesDocument;\n class IfcRelAssociatesLibrary extends IfcRelAssociates {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatingLibrary = RelatingLibrary;\n this.type = 3840914261;\n }\n }\n IFC4X32.IfcRelAssociatesLibrary = IfcRelAssociatesLibrary;\n class IfcRelAssociatesMaterial extends IfcRelAssociates {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatingMaterial = RelatingMaterial;\n this.type = 2655215786;\n }\n }\n IFC4X32.IfcRelAssociatesMaterial = IfcRelAssociatesMaterial;\n class IfcRelAssociatesProfileDef extends IfcRelAssociates {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingProfileDef) {\n super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatingProfileDef = RelatingProfileDef;\n this.type = 1033248425;\n }\n }\n IFC4X32.IfcRelAssociatesProfileDef = IfcRelAssociatesProfileDef;\n class IfcRelConnects extends IfcRelationship {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 826625072;\n }\n }\n IFC4X32.IfcRelConnects = IfcRelConnects;\n class IfcRelConnectsElements extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ConnectionGeometry = ConnectionGeometry;\n this.RelatingElement = RelatingElement;\n this.RelatedElement = RelatedElement;\n this.type = 1204542856;\n }\n }\n IFC4X32.IfcRelConnectsElements = IfcRelConnectsElements;\n class IfcRelConnectsPathElements extends IfcRelConnectsElements {\n constructor(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType) {\n super(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ConnectionGeometry = ConnectionGeometry;\n this.RelatingElement = RelatingElement;\n this.RelatedElement = RelatedElement;\n this.RelatingPriorities = RelatingPriorities;\n this.RelatedPriorities = RelatedPriorities;\n this.RelatedConnectionType = RelatedConnectionType;\n this.RelatingConnectionType = RelatingConnectionType;\n this.type = 3945020480;\n }\n }\n IFC4X32.IfcRelConnectsPathElements = IfcRelConnectsPathElements;\n class IfcRelConnectsPortToElement extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingPort = RelatingPort;\n this.RelatedElement = RelatedElement;\n this.type = 4201705270;\n }\n }\n IFC4X32.IfcRelConnectsPortToElement = IfcRelConnectsPortToElement;\n class IfcRelConnectsPorts extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingPort = RelatingPort;\n this.RelatedPort = RelatedPort;\n this.RealizingElement = RealizingElement;\n this.type = 3190031847;\n }\n }\n IFC4X32.IfcRelConnectsPorts = IfcRelConnectsPorts;\n class IfcRelConnectsStructuralActivity extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingElement = RelatingElement;\n this.RelatedStructuralActivity = RelatedStructuralActivity;\n this.type = 2127690289;\n }\n }\n IFC4X32.IfcRelConnectsStructuralActivity = IfcRelConnectsStructuralActivity;\n class IfcRelConnectsStructuralMember extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingStructuralMember = RelatingStructuralMember;\n this.RelatedStructuralConnection = RelatedStructuralConnection;\n this.AppliedCondition = AppliedCondition;\n this.AdditionalConditions = AdditionalConditions;\n this.SupportedLength = SupportedLength;\n this.ConditionCoordinateSystem = ConditionCoordinateSystem;\n this.type = 1638771189;\n }\n }\n IFC4X32.IfcRelConnectsStructuralMember = IfcRelConnectsStructuralMember;\n class IfcRelConnectsWithEccentricity extends IfcRelConnectsStructuralMember {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint) {\n super(GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingStructuralMember = RelatingStructuralMember;\n this.RelatedStructuralConnection = RelatedStructuralConnection;\n this.AppliedCondition = AppliedCondition;\n this.AdditionalConditions = AdditionalConditions;\n this.SupportedLength = SupportedLength;\n this.ConditionCoordinateSystem = ConditionCoordinateSystem;\n this.ConnectionConstraint = ConnectionConstraint;\n this.type = 504942748;\n }\n }\n IFC4X32.IfcRelConnectsWithEccentricity = IfcRelConnectsWithEccentricity;\n class IfcRelConnectsWithRealizingElements extends IfcRelConnectsElements {\n constructor(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType) {\n super(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ConnectionGeometry = ConnectionGeometry;\n this.RelatingElement = RelatingElement;\n this.RelatedElement = RelatedElement;\n this.RealizingElements = RealizingElements;\n this.ConnectionType = ConnectionType;\n this.type = 3678494232;\n }\n }\n IFC4X32.IfcRelConnectsWithRealizingElements = IfcRelConnectsWithRealizingElements;\n class IfcRelContainedInSpatialStructure extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedElements = RelatedElements;\n this.RelatingStructure = RelatingStructure;\n this.type = 3242617779;\n }\n }\n IFC4X32.IfcRelContainedInSpatialStructure = IfcRelContainedInSpatialStructure;\n class IfcRelCoversBldgElements extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingBuildingElement = RelatingBuildingElement;\n this.RelatedCoverings = RelatedCoverings;\n this.type = 886880790;\n }\n }\n IFC4X32.IfcRelCoversBldgElements = IfcRelCoversBldgElements;\n class IfcRelCoversSpaces extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedCoverings) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingSpace = RelatingSpace;\n this.RelatedCoverings = RelatedCoverings;\n this.type = 2802773753;\n }\n }\n IFC4X32.IfcRelCoversSpaces = IfcRelCoversSpaces;\n class IfcRelDeclares extends IfcRelationship {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingContext, RelatedDefinitions) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingContext = RelatingContext;\n this.RelatedDefinitions = RelatedDefinitions;\n this.type = 2565941209;\n }\n }\n IFC4X32.IfcRelDeclares = IfcRelDeclares;\n class IfcRelDecomposes extends IfcRelationship {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 2551354335;\n }\n }\n IFC4X32.IfcRelDecomposes = IfcRelDecomposes;\n class IfcRelDefines extends IfcRelationship {\n constructor(GlobalId, OwnerHistory, Name, Description) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.type = 693640335;\n }\n }\n IFC4X32.IfcRelDefines = IfcRelDefines;\n class IfcRelDefinesByObject extends IfcRelDefines {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingObject) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatingObject = RelatingObject;\n this.type = 1462361463;\n }\n }\n IFC4X32.IfcRelDefinesByObject = IfcRelDefinesByObject;\n class IfcRelDefinesByProperties extends IfcRelDefines {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatingPropertyDefinition = RelatingPropertyDefinition;\n this.type = 4186316022;\n }\n }\n IFC4X32.IfcRelDefinesByProperties = IfcRelDefinesByProperties;\n class IfcRelDefinesByTemplate extends IfcRelDefines {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedPropertySets, RelatingTemplate) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedPropertySets = RelatedPropertySets;\n this.RelatingTemplate = RelatingTemplate;\n this.type = 307848117;\n }\n }\n IFC4X32.IfcRelDefinesByTemplate = IfcRelDefinesByTemplate;\n class IfcRelDefinesByType extends IfcRelDefines {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedObjects = RelatedObjects;\n this.RelatingType = RelatingType;\n this.type = 781010003;\n }\n }\n IFC4X32.IfcRelDefinesByType = IfcRelDefinesByType;\n class IfcRelFillsElement extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingOpeningElement = RelatingOpeningElement;\n this.RelatedBuildingElement = RelatedBuildingElement;\n this.type = 3940055652;\n }\n }\n IFC4X32.IfcRelFillsElement = IfcRelFillsElement;\n class IfcRelFlowControlElements extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedControlElements = RelatedControlElements;\n this.RelatingFlowElement = RelatingFlowElement;\n this.type = 279856033;\n }\n }\n IFC4X32.IfcRelFlowControlElements = IfcRelFlowControlElements;\n class IfcRelInterferesElements extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedElement, InterferenceGeometry, InterferenceSpace, InterferenceType, ImpliedOrder) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingElement = RelatingElement;\n this.RelatedElement = RelatedElement;\n this.InterferenceGeometry = InterferenceGeometry;\n this.InterferenceSpace = InterferenceSpace;\n this.InterferenceType = InterferenceType;\n this.ImpliedOrder = ImpliedOrder;\n this.type = 427948657;\n }\n }\n IFC4X32.IfcRelInterferesElements = IfcRelInterferesElements;\n class IfcRelNests extends IfcRelDecomposes {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingObject = RelatingObject;\n this.RelatedObjects = RelatedObjects;\n this.type = 3268803585;\n }\n }\n IFC4X32.IfcRelNests = IfcRelNests;\n class IfcRelPositions extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingPositioningElement, RelatedProducts) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingPositioningElement = RelatingPositioningElement;\n this.RelatedProducts = RelatedProducts;\n this.type = 1441486842;\n }\n }\n IFC4X32.IfcRelPositions = IfcRelPositions;\n class IfcRelProjectsElement extends IfcRelDecomposes {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingElement = RelatingElement;\n this.RelatedFeatureElement = RelatedFeatureElement;\n this.type = 750771296;\n }\n }\n IFC4X32.IfcRelProjectsElement = IfcRelProjectsElement;\n class IfcRelReferencedInSpatialStructure extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatedElements = RelatedElements;\n this.RelatingStructure = RelatingStructure;\n this.type = 1245217292;\n }\n }\n IFC4X32.IfcRelReferencedInSpatialStructure = IfcRelReferencedInSpatialStructure;\n class IfcRelSequence extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType, UserDefinedSequenceType) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingProcess = RelatingProcess;\n this.RelatedProcess = RelatedProcess;\n this.TimeLag = TimeLag;\n this.SequenceType = SequenceType;\n this.UserDefinedSequenceType = UserDefinedSequenceType;\n this.type = 4122056220;\n }\n }\n IFC4X32.IfcRelSequence = IfcRelSequence;\n class IfcRelServicesBuildings extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingSystem = RelatingSystem;\n this.RelatedBuildings = RelatedBuildings;\n this.type = 366585022;\n }\n }\n IFC4X32.IfcRelServicesBuildings = IfcRelServicesBuildings;\n class IfcRelSpaceBoundary extends IfcRelConnects {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingSpace = RelatingSpace;\n this.RelatedBuildingElement = RelatedBuildingElement;\n this.ConnectionGeometry = ConnectionGeometry;\n this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary;\n this.InternalOrExternalBoundary = InternalOrExternalBoundary;\n this.type = 3451746338;\n }\n }\n IFC4X32.IfcRelSpaceBoundary = IfcRelSpaceBoundary;\n class IfcRelSpaceBoundary1stLevel extends IfcRelSpaceBoundary {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary) {\n super(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingSpace = RelatingSpace;\n this.RelatedBuildingElement = RelatedBuildingElement;\n this.ConnectionGeometry = ConnectionGeometry;\n this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary;\n this.InternalOrExternalBoundary = InternalOrExternalBoundary;\n this.ParentBoundary = ParentBoundary;\n this.type = 3523091289;\n }\n }\n IFC4X32.IfcRelSpaceBoundary1stLevel = IfcRelSpaceBoundary1stLevel;\n class IfcRelSpaceBoundary2ndLevel extends IfcRelSpaceBoundary1stLevel {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary, CorrespondingBoundary) {\n super(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingSpace = RelatingSpace;\n this.RelatedBuildingElement = RelatedBuildingElement;\n this.ConnectionGeometry = ConnectionGeometry;\n this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary;\n this.InternalOrExternalBoundary = InternalOrExternalBoundary;\n this.ParentBoundary = ParentBoundary;\n this.CorrespondingBoundary = CorrespondingBoundary;\n this.type = 1521410863;\n }\n }\n IFC4X32.IfcRelSpaceBoundary2ndLevel = IfcRelSpaceBoundary2ndLevel;\n class IfcRelVoidsElement extends IfcRelDecomposes {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingBuildingElement = RelatingBuildingElement;\n this.RelatedOpeningElement = RelatedOpeningElement;\n this.type = 1401173127;\n }\n }\n IFC4X32.IfcRelVoidsElement = IfcRelVoidsElement;\n class IfcReparametrisedCompositeCurveSegment extends IfcCompositeCurveSegment {\n constructor(Transition, SameSense, ParentCurve, ParamLength) {\n super(Transition, SameSense, ParentCurve);\n this.Transition = Transition;\n this.SameSense = SameSense;\n this.ParentCurve = ParentCurve;\n this.ParamLength = ParamLength;\n this.type = 816062949;\n }\n }\n IFC4X32.IfcReparametrisedCompositeCurveSegment = IfcReparametrisedCompositeCurveSegment;\n class IfcResource extends IfcObject {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.type = 2914609552;\n }\n }\n IFC4X32.IfcResource = IfcResource;\n class IfcRevolvedAreaSolid extends IfcSweptAreaSolid {\n constructor(SweptArea, Position, Axis, Angle) {\n super(SweptArea, Position);\n this.SweptArea = SweptArea;\n this.Position = Position;\n this.Axis = Axis;\n this.Angle = Angle;\n this.type = 1856042241;\n }\n }\n IFC4X32.IfcRevolvedAreaSolid = IfcRevolvedAreaSolid;\n class IfcRevolvedAreaSolidTapered extends IfcRevolvedAreaSolid {\n constructor(SweptArea, Position, Axis, Angle, EndSweptArea) {\n super(SweptArea, Position, Axis, Angle);\n this.SweptArea = SweptArea;\n this.Position = Position;\n this.Axis = Axis;\n this.Angle = Angle;\n this.EndSweptArea = EndSweptArea;\n this.type = 3243963512;\n }\n }\n IFC4X32.IfcRevolvedAreaSolidTapered = IfcRevolvedAreaSolidTapered;\n class IfcRightCircularCone extends IfcCsgPrimitive3D {\n constructor(Position, Height, BottomRadius) {\n super(Position);\n this.Position = Position;\n this.Height = Height;\n this.BottomRadius = BottomRadius;\n this.type = 4158566097;\n }\n }\n IFC4X32.IfcRightCircularCone = IfcRightCircularCone;\n class IfcRightCircularCylinder extends IfcCsgPrimitive3D {\n constructor(Position, Height, Radius) {\n super(Position);\n this.Position = Position;\n this.Height = Height;\n this.Radius = Radius;\n this.type = 3626867408;\n }\n }\n IFC4X32.IfcRightCircularCylinder = IfcRightCircularCylinder;\n class IfcSectionedSolid extends IfcSolidModel {\n constructor(Directrix, CrossSections) {\n super();\n this.Directrix = Directrix;\n this.CrossSections = CrossSections;\n this.type = 1862484736;\n }\n }\n IFC4X32.IfcSectionedSolid = IfcSectionedSolid;\n class IfcSectionedSolidHorizontal extends IfcSectionedSolid {\n constructor(Directrix, CrossSections, CrossSectionPositions) {\n super(Directrix, CrossSections);\n this.Directrix = Directrix;\n this.CrossSections = CrossSections;\n this.CrossSectionPositions = CrossSectionPositions;\n this.type = 1290935644;\n }\n }\n IFC4X32.IfcSectionedSolidHorizontal = IfcSectionedSolidHorizontal;\n class IfcSectionedSurface extends IfcSurface {\n constructor(Directrix, CrossSectionPositions, CrossSections) {\n super();\n this.Directrix = Directrix;\n this.CrossSectionPositions = CrossSectionPositions;\n this.CrossSections = CrossSections;\n this.type = 1356537516;\n }\n }\n IFC4X32.IfcSectionedSurface = IfcSectionedSurface;\n class IfcSimplePropertyTemplate extends IfcPropertyTemplate {\n constructor(GlobalId, OwnerHistory, Name, Description, TemplateType, PrimaryMeasureType, SecondaryMeasureType, Enumerators, PrimaryUnit, SecondaryUnit, Expression, AccessState) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.TemplateType = TemplateType;\n this.PrimaryMeasureType = PrimaryMeasureType;\n this.SecondaryMeasureType = SecondaryMeasureType;\n this.Enumerators = Enumerators;\n this.PrimaryUnit = PrimaryUnit;\n this.SecondaryUnit = SecondaryUnit;\n this.Expression = Expression;\n this.AccessState = AccessState;\n this.type = 3663146110;\n }\n }\n IFC4X32.IfcSimplePropertyTemplate = IfcSimplePropertyTemplate;\n class IfcSpatialElement extends IfcProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.type = 1412071761;\n }\n }\n IFC4X32.IfcSpatialElement = IfcSpatialElement;\n class IfcSpatialElementType extends IfcTypeProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 710998568;\n }\n }\n IFC4X32.IfcSpatialElementType = IfcSpatialElementType;\n class IfcSpatialStructureElement extends IfcSpatialElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.CompositionType = CompositionType;\n this.type = 2706606064;\n }\n }\n IFC4X32.IfcSpatialStructureElement = IfcSpatialStructureElement;\n class IfcSpatialStructureElementType extends IfcSpatialElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 3893378262;\n }\n }\n IFC4X32.IfcSpatialStructureElementType = IfcSpatialStructureElementType;\n class IfcSpatialZone extends IfcSpatialElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.PredefinedType = PredefinedType;\n this.type = 463610769;\n }\n }\n IFC4X32.IfcSpatialZone = IfcSpatialZone;\n class IfcSpatialZoneType extends IfcSpatialElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.LongName = LongName;\n this.type = 2481509218;\n }\n }\n IFC4X32.IfcSpatialZoneType = IfcSpatialZoneType;\n class IfcSphere extends IfcCsgPrimitive3D {\n constructor(Position, Radius) {\n super(Position);\n this.Position = Position;\n this.Radius = Radius;\n this.type = 451544542;\n }\n }\n IFC4X32.IfcSphere = IfcSphere;\n class IfcSphericalSurface extends IfcElementarySurface {\n constructor(Position, Radius) {\n super(Position);\n this.Position = Position;\n this.Radius = Radius;\n this.type = 4015995234;\n }\n }\n IFC4X32.IfcSphericalSurface = IfcSphericalSurface;\n class IfcSpiral extends IfcCurve {\n constructor(Position) {\n super();\n this.Position = Position;\n this.type = 2735484536;\n }\n }\n IFC4X32.IfcSpiral = IfcSpiral;\n class IfcStructuralActivity extends IfcProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.type = 3544373492;\n }\n }\n IFC4X32.IfcStructuralActivity = IfcStructuralActivity;\n class IfcStructuralItem extends IfcProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.type = 3136571912;\n }\n }\n IFC4X32.IfcStructuralItem = IfcStructuralItem;\n class IfcStructuralMember extends IfcStructuralItem {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.type = 530289379;\n }\n }\n IFC4X32.IfcStructuralMember = IfcStructuralMember;\n class IfcStructuralReaction extends IfcStructuralActivity {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.type = 3689010777;\n }\n }\n IFC4X32.IfcStructuralReaction = IfcStructuralReaction;\n class IfcStructuralSurfaceMember extends IfcStructuralMember {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.PredefinedType = PredefinedType;\n this.Thickness = Thickness;\n this.type = 3979015343;\n }\n }\n IFC4X32.IfcStructuralSurfaceMember = IfcStructuralSurfaceMember;\n class IfcStructuralSurfaceMemberVarying extends IfcStructuralSurfaceMember {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.PredefinedType = PredefinedType;\n this.Thickness = Thickness;\n this.type = 2218152070;\n }\n }\n IFC4X32.IfcStructuralSurfaceMemberVarying = IfcStructuralSurfaceMemberVarying;\n class IfcStructuralSurfaceReaction extends IfcStructuralReaction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.PredefinedType = PredefinedType;\n this.type = 603775116;\n }\n }\n IFC4X32.IfcStructuralSurfaceReaction = IfcStructuralSurfaceReaction;\n class IfcSubContractResourceType extends IfcConstructionResourceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.ResourceType = ResourceType;\n this.BaseCosts = BaseCosts;\n this.BaseQuantity = BaseQuantity;\n this.PredefinedType = PredefinedType;\n this.type = 4095615324;\n }\n }\n IFC4X32.IfcSubContractResourceType = IfcSubContractResourceType;\n class IfcSurfaceCurve extends IfcCurve {\n constructor(Curve3D, AssociatedGeometry, MasterRepresentation) {\n super();\n this.Curve3D = Curve3D;\n this.AssociatedGeometry = AssociatedGeometry;\n this.MasterRepresentation = MasterRepresentation;\n this.type = 699246055;\n }\n }\n IFC4X32.IfcSurfaceCurve = IfcSurfaceCurve;\n class IfcSurfaceCurveSweptAreaSolid extends IfcDirectrixCurveSweptAreaSolid {\n constructor(SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface) {\n super(SweptArea, Position, Directrix, StartParam, EndParam);\n this.SweptArea = SweptArea;\n this.Position = Position;\n this.Directrix = Directrix;\n this.StartParam = StartParam;\n this.EndParam = EndParam;\n this.ReferenceSurface = ReferenceSurface;\n this.type = 2028607225;\n }\n }\n IFC4X32.IfcSurfaceCurveSweptAreaSolid = IfcSurfaceCurveSweptAreaSolid;\n class IfcSurfaceOfLinearExtrusion extends IfcSweptSurface {\n constructor(SweptCurve, Position, ExtrudedDirection, Depth) {\n super(SweptCurve, Position);\n this.SweptCurve = SweptCurve;\n this.Position = Position;\n this.ExtrudedDirection = ExtrudedDirection;\n this.Depth = Depth;\n this.type = 2809605785;\n }\n }\n IFC4X32.IfcSurfaceOfLinearExtrusion = IfcSurfaceOfLinearExtrusion;\n class IfcSurfaceOfRevolution extends IfcSweptSurface {\n constructor(SweptCurve, Position, AxisPosition) {\n super(SweptCurve, Position);\n this.SweptCurve = SweptCurve;\n this.Position = Position;\n this.AxisPosition = AxisPosition;\n this.type = 4124788165;\n }\n }\n IFC4X32.IfcSurfaceOfRevolution = IfcSurfaceOfRevolution;\n class IfcSystemFurnitureElementType extends IfcFurnishingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1580310250;\n }\n }\n IFC4X32.IfcSystemFurnitureElementType = IfcSystemFurnitureElementType;\n class IfcTask extends IfcProcess {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Status, WorkMethod, IsMilestone, Priority, TaskTime, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.Status = Status;\n this.WorkMethod = WorkMethod;\n this.IsMilestone = IsMilestone;\n this.Priority = Priority;\n this.TaskTime = TaskTime;\n this.PredefinedType = PredefinedType;\n this.type = 3473067441;\n }\n }\n IFC4X32.IfcTask = IfcTask;\n class IfcTaskType extends IfcTypeProcess {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, WorkMethod) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.ProcessType = ProcessType;\n this.PredefinedType = PredefinedType;\n this.WorkMethod = WorkMethod;\n this.type = 3206491090;\n }\n }\n IFC4X32.IfcTaskType = IfcTaskType;\n class IfcTessellatedFaceSet extends IfcTessellatedItem {\n constructor(Coordinates, Closed) {\n super();\n this.Coordinates = Coordinates;\n this.Closed = Closed;\n this.type = 2387106220;\n }\n }\n IFC4X32.IfcTessellatedFaceSet = IfcTessellatedFaceSet;\n class IfcThirdOrderPolynomialSpiral extends IfcSpiral {\n constructor(Position, CubicTerm, QuadraticTerm, LinearTerm, ConstantTerm) {\n super(Position);\n this.Position = Position;\n this.CubicTerm = CubicTerm;\n this.QuadraticTerm = QuadraticTerm;\n this.LinearTerm = LinearTerm;\n this.ConstantTerm = ConstantTerm;\n this.type = 782932809;\n }\n }\n IFC4X32.IfcThirdOrderPolynomialSpiral = IfcThirdOrderPolynomialSpiral;\n class IfcToroidalSurface extends IfcElementarySurface {\n constructor(Position, MajorRadius, MinorRadius) {\n super(Position);\n this.Position = Position;\n this.MajorRadius = MajorRadius;\n this.MinorRadius = MinorRadius;\n this.type = 1935646853;\n }\n }\n IFC4X32.IfcToroidalSurface = IfcToroidalSurface;\n class IfcTransportationDeviceType extends IfcElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 3665877780;\n }\n }\n IFC4X32.IfcTransportationDeviceType = IfcTransportationDeviceType;\n class IfcTriangulatedFaceSet extends IfcTessellatedFaceSet {\n constructor(Coordinates, Closed, Normals, CoordIndex, PnIndex) {\n super(Coordinates, Closed);\n this.Coordinates = Coordinates;\n this.Closed = Closed;\n this.Normals = Normals;\n this.CoordIndex = CoordIndex;\n this.PnIndex = PnIndex;\n this.type = 2916149573;\n }\n }\n IFC4X32.IfcTriangulatedFaceSet = IfcTriangulatedFaceSet;\n class IfcTriangulatedIrregularNetwork extends IfcTriangulatedFaceSet {\n constructor(Coordinates, Closed, Normals, CoordIndex, PnIndex, Flags) {\n super(Coordinates, Closed, Normals, CoordIndex, PnIndex);\n this.Coordinates = Coordinates;\n this.Closed = Closed;\n this.Normals = Normals;\n this.CoordIndex = CoordIndex;\n this.PnIndex = PnIndex;\n this.Flags = Flags;\n this.type = 1229763772;\n }\n }\n IFC4X32.IfcTriangulatedIrregularNetwork = IfcTriangulatedIrregularNetwork;\n class IfcVehicleType extends IfcTransportationDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3651464721;\n }\n }\n IFC4X32.IfcVehicleType = IfcVehicleType;\n class IfcWindowLiningProperties extends IfcPreDefinedPropertySet {\n constructor(GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle, LiningOffset, LiningToPanelOffsetX, LiningToPanelOffsetY) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.LiningDepth = LiningDepth;\n this.LiningThickness = LiningThickness;\n this.TransomThickness = TransomThickness;\n this.MullionThickness = MullionThickness;\n this.FirstTransomOffset = FirstTransomOffset;\n this.SecondTransomOffset = SecondTransomOffset;\n this.FirstMullionOffset = FirstMullionOffset;\n this.SecondMullionOffset = SecondMullionOffset;\n this.ShapeAspectStyle = ShapeAspectStyle;\n this.LiningOffset = LiningOffset;\n this.LiningToPanelOffsetX = LiningToPanelOffsetX;\n this.LiningToPanelOffsetY = LiningToPanelOffsetY;\n this.type = 336235671;\n }\n }\n IFC4X32.IfcWindowLiningProperties = IfcWindowLiningProperties;\n class IfcWindowPanelProperties extends IfcPreDefinedPropertySet {\n constructor(GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.OperationType = OperationType;\n this.PanelPosition = PanelPosition;\n this.FrameDepth = FrameDepth;\n this.FrameThickness = FrameThickness;\n this.ShapeAspectStyle = ShapeAspectStyle;\n this.type = 512836454;\n }\n }\n IFC4X32.IfcWindowPanelProperties = IfcWindowPanelProperties;\n class IfcActor extends IfcObject {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.TheActor = TheActor;\n this.type = 2296667514;\n }\n }\n IFC4X32.IfcActor = IfcActor;\n class IfcAdvancedBrep extends IfcManifoldSolidBrep {\n constructor(Outer) {\n super(Outer);\n this.Outer = Outer;\n this.type = 1635779807;\n }\n }\n IFC4X32.IfcAdvancedBrep = IfcAdvancedBrep;\n class IfcAdvancedBrepWithVoids extends IfcAdvancedBrep {\n constructor(Outer, Voids) {\n super(Outer);\n this.Outer = Outer;\n this.Voids = Voids;\n this.type = 2603310189;\n }\n }\n IFC4X32.IfcAdvancedBrepWithVoids = IfcAdvancedBrepWithVoids;\n class IfcAnnotation extends IfcProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.PredefinedType = PredefinedType;\n this.type = 1674181508;\n }\n }\n IFC4X32.IfcAnnotation = IfcAnnotation;\n class IfcBSplineSurface extends IfcBoundedSurface {\n constructor(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect) {\n super();\n this.UDegree = UDegree;\n this.VDegree = VDegree;\n this.ControlPointsList = ControlPointsList;\n this.SurfaceForm = SurfaceForm;\n this.UClosed = UClosed;\n this.VClosed = VClosed;\n this.SelfIntersect = SelfIntersect;\n this.type = 2887950389;\n }\n }\n IFC4X32.IfcBSplineSurface = IfcBSplineSurface;\n class IfcBSplineSurfaceWithKnots extends IfcBSplineSurface {\n constructor(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec) {\n super(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect);\n this.UDegree = UDegree;\n this.VDegree = VDegree;\n this.ControlPointsList = ControlPointsList;\n this.SurfaceForm = SurfaceForm;\n this.UClosed = UClosed;\n this.VClosed = VClosed;\n this.SelfIntersect = SelfIntersect;\n this.UMultiplicities = UMultiplicities;\n this.VMultiplicities = VMultiplicities;\n this.UKnots = UKnots;\n this.VKnots = VKnots;\n this.KnotSpec = KnotSpec;\n this.type = 167062518;\n }\n }\n IFC4X32.IfcBSplineSurfaceWithKnots = IfcBSplineSurfaceWithKnots;\n class IfcBlock extends IfcCsgPrimitive3D {\n constructor(Position, XLength, YLength, ZLength) {\n super(Position);\n this.Position = Position;\n this.XLength = XLength;\n this.YLength = YLength;\n this.ZLength = ZLength;\n this.type = 1334484129;\n }\n }\n IFC4X32.IfcBlock = IfcBlock;\n class IfcBooleanClippingResult extends IfcBooleanResult {\n constructor(Operator, FirstOperand, SecondOperand) {\n super(Operator, FirstOperand, SecondOperand);\n this.Operator = Operator;\n this.FirstOperand = FirstOperand;\n this.SecondOperand = SecondOperand;\n this.type = 3649129432;\n }\n }\n IFC4X32.IfcBooleanClippingResult = IfcBooleanClippingResult;\n class IfcBoundedCurve extends IfcCurve {\n constructor() {\n super();\n this.type = 1260505505;\n }\n }\n IFC4X32.IfcBoundedCurve = IfcBoundedCurve;\n class IfcBuildingStorey extends IfcSpatialStructureElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.CompositionType = CompositionType;\n this.Elevation = Elevation;\n this.type = 3124254112;\n }\n }\n IFC4X32.IfcBuildingStorey = IfcBuildingStorey;\n class IfcBuiltElementType extends IfcElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 1626504194;\n }\n }\n IFC4X32.IfcBuiltElementType = IfcBuiltElementType;\n class IfcChimneyType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2197970202;\n }\n }\n IFC4X32.IfcChimneyType = IfcChimneyType;\n class IfcCircleHollowProfileDef extends IfcCircleProfileDef {\n constructor(ProfileType, ProfileName, Position, Radius, WallThickness) {\n super(ProfileType, ProfileName, Position, Radius);\n this.ProfileType = ProfileType;\n this.ProfileName = ProfileName;\n this.Position = Position;\n this.Radius = Radius;\n this.WallThickness = WallThickness;\n this.type = 2937912522;\n }\n }\n IFC4X32.IfcCircleHollowProfileDef = IfcCircleHollowProfileDef;\n class IfcCivilElementType extends IfcElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 3893394355;\n }\n }\n IFC4X32.IfcCivilElementType = IfcCivilElementType;\n class IfcClothoid extends IfcSpiral {\n constructor(Position, ClothoidConstant) {\n super(Position);\n this.Position = Position;\n this.ClothoidConstant = ClothoidConstant;\n this.type = 3497074424;\n }\n }\n IFC4X32.IfcClothoid = IfcClothoid;\n class IfcColumnType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 300633059;\n }\n }\n IFC4X32.IfcColumnType = IfcColumnType;\n class IfcComplexPropertyTemplate extends IfcPropertyTemplate {\n constructor(GlobalId, OwnerHistory, Name, Description, UsageName, TemplateType, HasPropertyTemplates) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.UsageName = UsageName;\n this.TemplateType = TemplateType;\n this.HasPropertyTemplates = HasPropertyTemplates;\n this.type = 3875453745;\n }\n }\n IFC4X32.IfcComplexPropertyTemplate = IfcComplexPropertyTemplate;\n class IfcCompositeCurve extends IfcBoundedCurve {\n constructor(Segments, SelfIntersect) {\n super();\n this.Segments = Segments;\n this.SelfIntersect = SelfIntersect;\n this.type = 3732776249;\n }\n }\n IFC4X32.IfcCompositeCurve = IfcCompositeCurve;\n class IfcCompositeCurveOnSurface extends IfcCompositeCurve {\n constructor(Segments, SelfIntersect) {\n super(Segments, SelfIntersect);\n this.Segments = Segments;\n this.SelfIntersect = SelfIntersect;\n this.type = 15328376;\n }\n }\n IFC4X32.IfcCompositeCurveOnSurface = IfcCompositeCurveOnSurface;\n class IfcConic extends IfcCurve {\n constructor(Position) {\n super();\n this.Position = Position;\n this.type = 2510884976;\n }\n }\n IFC4X32.IfcConic = IfcConic;\n class IfcConstructionEquipmentResourceType extends IfcConstructionResourceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.ResourceType = ResourceType;\n this.BaseCosts = BaseCosts;\n this.BaseQuantity = BaseQuantity;\n this.PredefinedType = PredefinedType;\n this.type = 2185764099;\n }\n }\n IFC4X32.IfcConstructionEquipmentResourceType = IfcConstructionEquipmentResourceType;\n class IfcConstructionMaterialResourceType extends IfcConstructionResourceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.ResourceType = ResourceType;\n this.BaseCosts = BaseCosts;\n this.BaseQuantity = BaseQuantity;\n this.PredefinedType = PredefinedType;\n this.type = 4105962743;\n }\n }\n IFC4X32.IfcConstructionMaterialResourceType = IfcConstructionMaterialResourceType;\n class IfcConstructionProductResourceType extends IfcConstructionResourceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.ResourceType = ResourceType;\n this.BaseCosts = BaseCosts;\n this.BaseQuantity = BaseQuantity;\n this.PredefinedType = PredefinedType;\n this.type = 1525564444;\n }\n }\n IFC4X32.IfcConstructionProductResourceType = IfcConstructionProductResourceType;\n class IfcConstructionResource extends IfcResource {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.Usage = Usage;\n this.BaseCosts = BaseCosts;\n this.BaseQuantity = BaseQuantity;\n this.type = 2559216714;\n }\n }\n IFC4X32.IfcConstructionResource = IfcConstructionResource;\n class IfcControl extends IfcObject {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.type = 3293443760;\n }\n }\n IFC4X32.IfcControl = IfcControl;\n class IfcCosineSpiral extends IfcSpiral {\n constructor(Position, CosineTerm, ConstantTerm) {\n super(Position);\n this.Position = Position;\n this.CosineTerm = CosineTerm;\n this.ConstantTerm = ConstantTerm;\n this.type = 2000195564;\n }\n }\n IFC4X32.IfcCosineSpiral = IfcCosineSpiral;\n class IfcCostItem extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, CostValues, CostQuantities) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.PredefinedType = PredefinedType;\n this.CostValues = CostValues;\n this.CostQuantities = CostQuantities;\n this.type = 3895139033;\n }\n }\n IFC4X32.IfcCostItem = IfcCostItem;\n class IfcCostSchedule extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, SubmittedOn, UpdateDate) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.PredefinedType = PredefinedType;\n this.Status = Status;\n this.SubmittedOn = SubmittedOn;\n this.UpdateDate = UpdateDate;\n this.type = 1419761937;\n }\n }\n IFC4X32.IfcCostSchedule = IfcCostSchedule;\n class IfcCourseType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 4189326743;\n }\n }\n IFC4X32.IfcCourseType = IfcCourseType;\n class IfcCoveringType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1916426348;\n }\n }\n IFC4X32.IfcCoveringType = IfcCoveringType;\n class IfcCrewResource extends IfcConstructionResource {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.Usage = Usage;\n this.BaseCosts = BaseCosts;\n this.BaseQuantity = BaseQuantity;\n this.PredefinedType = PredefinedType;\n this.type = 3295246426;\n }\n }\n IFC4X32.IfcCrewResource = IfcCrewResource;\n class IfcCurtainWallType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1457835157;\n }\n }\n IFC4X32.IfcCurtainWallType = IfcCurtainWallType;\n class IfcCylindricalSurface extends IfcElementarySurface {\n constructor(Position, Radius) {\n super(Position);\n this.Position = Position;\n this.Radius = Radius;\n this.type = 1213902940;\n }\n }\n IFC4X32.IfcCylindricalSurface = IfcCylindricalSurface;\n class IfcDeepFoundationType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 1306400036;\n }\n }\n IFC4X32.IfcDeepFoundationType = IfcDeepFoundationType;\n class IfcDirectrixDerivedReferenceSweptAreaSolid extends IfcFixedReferenceSweptAreaSolid {\n constructor(SweptArea, Position, Directrix, StartParam, EndParam, FixedReference) {\n super(SweptArea, Position, Directrix, StartParam, EndParam, FixedReference);\n this.SweptArea = SweptArea;\n this.Position = Position;\n this.Directrix = Directrix;\n this.StartParam = StartParam;\n this.EndParam = EndParam;\n this.FixedReference = FixedReference;\n this.type = 4234616927;\n }\n }\n IFC4X32.IfcDirectrixDerivedReferenceSweptAreaSolid = IfcDirectrixDerivedReferenceSweptAreaSolid;\n class IfcDistributionElementType extends IfcElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 3256556792;\n }\n }\n IFC4X32.IfcDistributionElementType = IfcDistributionElementType;\n class IfcDistributionFlowElementType extends IfcDistributionElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 3849074793;\n }\n }\n IFC4X32.IfcDistributionFlowElementType = IfcDistributionFlowElementType;\n class IfcDoorLiningProperties extends IfcPreDefinedPropertySet {\n constructor(GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle, LiningToPanelOffsetX, LiningToPanelOffsetY) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.LiningDepth = LiningDepth;\n this.LiningThickness = LiningThickness;\n this.ThresholdDepth = ThresholdDepth;\n this.ThresholdThickness = ThresholdThickness;\n this.TransomThickness = TransomThickness;\n this.TransomOffset = TransomOffset;\n this.LiningOffset = LiningOffset;\n this.ThresholdOffset = ThresholdOffset;\n this.CasingThickness = CasingThickness;\n this.CasingDepth = CasingDepth;\n this.ShapeAspectStyle = ShapeAspectStyle;\n this.LiningToPanelOffsetX = LiningToPanelOffsetX;\n this.LiningToPanelOffsetY = LiningToPanelOffsetY;\n this.type = 2963535650;\n }\n }\n IFC4X32.IfcDoorLiningProperties = IfcDoorLiningProperties;\n class IfcDoorPanelProperties extends IfcPreDefinedPropertySet {\n constructor(GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.PanelDepth = PanelDepth;\n this.PanelOperation = PanelOperation;\n this.PanelWidth = PanelWidth;\n this.PanelPosition = PanelPosition;\n this.ShapeAspectStyle = ShapeAspectStyle;\n this.type = 1714330368;\n }\n }\n IFC4X32.IfcDoorPanelProperties = IfcDoorPanelProperties;\n class IfcDoorType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, OperationType, ParameterTakesPrecedence, UserDefinedOperationType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.OperationType = OperationType;\n this.ParameterTakesPrecedence = ParameterTakesPrecedence;\n this.UserDefinedOperationType = UserDefinedOperationType;\n this.type = 2323601079;\n }\n }\n IFC4X32.IfcDoorType = IfcDoorType;\n class IfcDraughtingPreDefinedColour extends IfcPreDefinedColour {\n constructor(Name) {\n super(Name);\n this.Name = Name;\n this.type = 445594917;\n }\n }\n IFC4X32.IfcDraughtingPreDefinedColour = IfcDraughtingPreDefinedColour;\n class IfcDraughtingPreDefinedCurveFont extends IfcPreDefinedCurveFont {\n constructor(Name) {\n super(Name);\n this.Name = Name;\n this.type = 4006246654;\n }\n }\n IFC4X32.IfcDraughtingPreDefinedCurveFont = IfcDraughtingPreDefinedCurveFont;\n class IfcElement extends IfcProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 1758889154;\n }\n }\n IFC4X32.IfcElement = IfcElement;\n class IfcElementAssembly extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.AssemblyPlace = AssemblyPlace;\n this.PredefinedType = PredefinedType;\n this.type = 4123344466;\n }\n }\n IFC4X32.IfcElementAssembly = IfcElementAssembly;\n class IfcElementAssemblyType extends IfcElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2397081782;\n }\n }\n IFC4X32.IfcElementAssemblyType = IfcElementAssemblyType;\n class IfcElementComponent extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 1623761950;\n }\n }\n IFC4X32.IfcElementComponent = IfcElementComponent;\n class IfcElementComponentType extends IfcElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 2590856083;\n }\n }\n IFC4X32.IfcElementComponentType = IfcElementComponentType;\n class IfcEllipse extends IfcConic {\n constructor(Position, SemiAxis1, SemiAxis2) {\n super(Position);\n this.Position = Position;\n this.SemiAxis1 = SemiAxis1;\n this.SemiAxis2 = SemiAxis2;\n this.type = 1704287377;\n }\n }\n IFC4X32.IfcEllipse = IfcEllipse;\n class IfcEnergyConversionDeviceType extends IfcDistributionFlowElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 2107101300;\n }\n }\n IFC4X32.IfcEnergyConversionDeviceType = IfcEnergyConversionDeviceType;\n class IfcEngineType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 132023988;\n }\n }\n IFC4X32.IfcEngineType = IfcEngineType;\n class IfcEvaporativeCoolerType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3174744832;\n }\n }\n IFC4X32.IfcEvaporativeCoolerType = IfcEvaporativeCoolerType;\n class IfcEvaporatorType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3390157468;\n }\n }\n IFC4X32.IfcEvaporatorType = IfcEvaporatorType;\n class IfcEvent extends IfcProcess {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType, EventTriggerType, UserDefinedEventTriggerType, EventOccurenceTime) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.PredefinedType = PredefinedType;\n this.EventTriggerType = EventTriggerType;\n this.UserDefinedEventTriggerType = UserDefinedEventTriggerType;\n this.EventOccurenceTime = EventOccurenceTime;\n this.type = 4148101412;\n }\n }\n IFC4X32.IfcEvent = IfcEvent;\n class IfcExternalSpatialStructureElement extends IfcSpatialElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.type = 2853485674;\n }\n }\n IFC4X32.IfcExternalSpatialStructureElement = IfcExternalSpatialStructureElement;\n class IfcFacetedBrep extends IfcManifoldSolidBrep {\n constructor(Outer) {\n super(Outer);\n this.Outer = Outer;\n this.type = 807026263;\n }\n }\n IFC4X32.IfcFacetedBrep = IfcFacetedBrep;\n class IfcFacetedBrepWithVoids extends IfcFacetedBrep {\n constructor(Outer, Voids) {\n super(Outer);\n this.Outer = Outer;\n this.Voids = Voids;\n this.type = 3737207727;\n }\n }\n IFC4X32.IfcFacetedBrepWithVoids = IfcFacetedBrepWithVoids;\n class IfcFacility extends IfcSpatialStructureElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.CompositionType = CompositionType;\n this.type = 24185140;\n }\n }\n IFC4X32.IfcFacility = IfcFacility;\n class IfcFacilityPart extends IfcSpatialStructureElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.CompositionType = CompositionType;\n this.UsageType = UsageType;\n this.type = 1310830890;\n }\n }\n IFC4X32.IfcFacilityPart = IfcFacilityPart;\n class IfcFacilityPartCommon extends IfcFacilityPart {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.CompositionType = CompositionType;\n this.UsageType = UsageType;\n this.PredefinedType = PredefinedType;\n this.type = 4228831410;\n }\n }\n IFC4X32.IfcFacilityPartCommon = IfcFacilityPartCommon;\n class IfcFastener extends IfcElementComponent {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 647756555;\n }\n }\n IFC4X32.IfcFastener = IfcFastener;\n class IfcFastenerType extends IfcElementComponentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2489546625;\n }\n }\n IFC4X32.IfcFastenerType = IfcFastenerType;\n class IfcFeatureElement extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 2827207264;\n }\n }\n IFC4X32.IfcFeatureElement = IfcFeatureElement;\n class IfcFeatureElementAddition extends IfcFeatureElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 2143335405;\n }\n }\n IFC4X32.IfcFeatureElementAddition = IfcFeatureElementAddition;\n class IfcFeatureElementSubtraction extends IfcFeatureElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 1287392070;\n }\n }\n IFC4X32.IfcFeatureElementSubtraction = IfcFeatureElementSubtraction;\n class IfcFlowControllerType extends IfcDistributionFlowElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 3907093117;\n }\n }\n IFC4X32.IfcFlowControllerType = IfcFlowControllerType;\n class IfcFlowFittingType extends IfcDistributionFlowElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 3198132628;\n }\n }\n IFC4X32.IfcFlowFittingType = IfcFlowFittingType;\n class IfcFlowMeterType extends IfcFlowControllerType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3815607619;\n }\n }\n IFC4X32.IfcFlowMeterType = IfcFlowMeterType;\n class IfcFlowMovingDeviceType extends IfcDistributionFlowElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 1482959167;\n }\n }\n IFC4X32.IfcFlowMovingDeviceType = IfcFlowMovingDeviceType;\n class IfcFlowSegmentType extends IfcDistributionFlowElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 1834744321;\n }\n }\n IFC4X32.IfcFlowSegmentType = IfcFlowSegmentType;\n class IfcFlowStorageDeviceType extends IfcDistributionFlowElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 1339347760;\n }\n }\n IFC4X32.IfcFlowStorageDeviceType = IfcFlowStorageDeviceType;\n class IfcFlowTerminalType extends IfcDistributionFlowElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 2297155007;\n }\n }\n IFC4X32.IfcFlowTerminalType = IfcFlowTerminalType;\n class IfcFlowTreatmentDeviceType extends IfcDistributionFlowElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 3009222698;\n }\n }\n IFC4X32.IfcFlowTreatmentDeviceType = IfcFlowTreatmentDeviceType;\n class IfcFootingType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1893162501;\n }\n }\n IFC4X32.IfcFootingType = IfcFootingType;\n class IfcFurnishingElement extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 263784265;\n }\n }\n IFC4X32.IfcFurnishingElement = IfcFurnishingElement;\n class IfcFurniture extends IfcFurnishingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1509553395;\n }\n }\n IFC4X32.IfcFurniture = IfcFurniture;\n class IfcGeographicElement extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3493046030;\n }\n }\n IFC4X32.IfcGeographicElement = IfcGeographicElement;\n class IfcGeotechnicalElement extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 4230923436;\n }\n }\n IFC4X32.IfcGeotechnicalElement = IfcGeotechnicalElement;\n class IfcGeotechnicalStratum extends IfcGeotechnicalElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1594536857;\n }\n }\n IFC4X32.IfcGeotechnicalStratum = IfcGeotechnicalStratum;\n class IfcGradientCurve extends IfcCompositeCurve {\n constructor(Segments, SelfIntersect, BaseCurve, EndPoint) {\n super(Segments, SelfIntersect);\n this.Segments = Segments;\n this.SelfIntersect = SelfIntersect;\n this.BaseCurve = BaseCurve;\n this.EndPoint = EndPoint;\n this.type = 2898700619;\n }\n }\n IFC4X32.IfcGradientCurve = IfcGradientCurve;\n class IfcGroup extends IfcObject {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.type = 2706460486;\n }\n }\n IFC4X32.IfcGroup = IfcGroup;\n class IfcHeatExchangerType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1251058090;\n }\n }\n IFC4X32.IfcHeatExchangerType = IfcHeatExchangerType;\n class IfcHumidifierType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1806887404;\n }\n }\n IFC4X32.IfcHumidifierType = IfcHumidifierType;\n class IfcImpactProtectionDevice extends IfcElementComponent {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2568555532;\n }\n }\n IFC4X32.IfcImpactProtectionDevice = IfcImpactProtectionDevice;\n class IfcImpactProtectionDeviceType extends IfcElementComponentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3948183225;\n }\n }\n IFC4X32.IfcImpactProtectionDeviceType = IfcImpactProtectionDeviceType;\n class IfcIndexedPolyCurve extends IfcBoundedCurve {\n constructor(Points, Segments, SelfIntersect) {\n super();\n this.Points = Points;\n this.Segments = Segments;\n this.SelfIntersect = SelfIntersect;\n this.type = 2571569899;\n }\n }\n IFC4X32.IfcIndexedPolyCurve = IfcIndexedPolyCurve;\n class IfcInterceptorType extends IfcFlowTreatmentDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3946677679;\n }\n }\n IFC4X32.IfcInterceptorType = IfcInterceptorType;\n class IfcIntersectionCurve extends IfcSurfaceCurve {\n constructor(Curve3D, AssociatedGeometry, MasterRepresentation) {\n super(Curve3D, AssociatedGeometry, MasterRepresentation);\n this.Curve3D = Curve3D;\n this.AssociatedGeometry = AssociatedGeometry;\n this.MasterRepresentation = MasterRepresentation;\n this.type = 3113134337;\n }\n }\n IFC4X32.IfcIntersectionCurve = IfcIntersectionCurve;\n class IfcInventory extends IfcGroup {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.PredefinedType = PredefinedType;\n this.Jurisdiction = Jurisdiction;\n this.ResponsiblePersons = ResponsiblePersons;\n this.LastUpdateDate = LastUpdateDate;\n this.CurrentValue = CurrentValue;\n this.OriginalValue = OriginalValue;\n this.type = 2391368822;\n }\n }\n IFC4X32.IfcInventory = IfcInventory;\n class IfcJunctionBoxType extends IfcFlowFittingType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 4288270099;\n }\n }\n IFC4X32.IfcJunctionBoxType = IfcJunctionBoxType;\n class IfcKerbType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, Mountable) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.Mountable = Mountable;\n this.type = 679976338;\n }\n }\n IFC4X32.IfcKerbType = IfcKerbType;\n class IfcLaborResource extends IfcConstructionResource {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.Usage = Usage;\n this.BaseCosts = BaseCosts;\n this.BaseQuantity = BaseQuantity;\n this.PredefinedType = PredefinedType;\n this.type = 3827777499;\n }\n }\n IFC4X32.IfcLaborResource = IfcLaborResource;\n class IfcLampType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1051575348;\n }\n }\n IFC4X32.IfcLampType = IfcLampType;\n class IfcLightFixtureType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1161773419;\n }\n }\n IFC4X32.IfcLightFixtureType = IfcLightFixtureType;\n class IfcLinearElement extends IfcProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.type = 2176059722;\n }\n }\n IFC4X32.IfcLinearElement = IfcLinearElement;\n class IfcLiquidTerminalType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1770583370;\n }\n }\n IFC4X32.IfcLiquidTerminalType = IfcLiquidTerminalType;\n class IfcMarineFacility extends IfcFacility {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.CompositionType = CompositionType;\n this.PredefinedType = PredefinedType;\n this.type = 525669439;\n }\n }\n IFC4X32.IfcMarineFacility = IfcMarineFacility;\n class IfcMarinePart extends IfcFacilityPart {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.CompositionType = CompositionType;\n this.UsageType = UsageType;\n this.PredefinedType = PredefinedType;\n this.type = 976884017;\n }\n }\n IFC4X32.IfcMarinePart = IfcMarinePart;\n class IfcMechanicalFastener extends IfcElementComponent {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.NominalDiameter = NominalDiameter;\n this.NominalLength = NominalLength;\n this.PredefinedType = PredefinedType;\n this.type = 377706215;\n }\n }\n IFC4X32.IfcMechanicalFastener = IfcMechanicalFastener;\n class IfcMechanicalFastenerType extends IfcElementComponentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, NominalLength) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.NominalDiameter = NominalDiameter;\n this.NominalLength = NominalLength;\n this.type = 2108223431;\n }\n }\n IFC4X32.IfcMechanicalFastenerType = IfcMechanicalFastenerType;\n class IfcMedicalDeviceType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1114901282;\n }\n }\n IFC4X32.IfcMedicalDeviceType = IfcMedicalDeviceType;\n class IfcMemberType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3181161470;\n }\n }\n IFC4X32.IfcMemberType = IfcMemberType;\n class IfcMobileTelecommunicationsApplianceType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1950438474;\n }\n }\n IFC4X32.IfcMobileTelecommunicationsApplianceType = IfcMobileTelecommunicationsApplianceType;\n class IfcMooringDeviceType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 710110818;\n }\n }\n IFC4X32.IfcMooringDeviceType = IfcMooringDeviceType;\n class IfcMotorConnectionType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 977012517;\n }\n }\n IFC4X32.IfcMotorConnectionType = IfcMotorConnectionType;\n class IfcNavigationElementType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 506776471;\n }\n }\n IFC4X32.IfcNavigationElementType = IfcNavigationElementType;\n class IfcOccupant extends IfcActor {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.TheActor = TheActor;\n this.PredefinedType = PredefinedType;\n this.type = 4143007308;\n }\n }\n IFC4X32.IfcOccupant = IfcOccupant;\n class IfcOpeningElement extends IfcFeatureElementSubtraction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3588315303;\n }\n }\n IFC4X32.IfcOpeningElement = IfcOpeningElement;\n class IfcOutletType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2837617999;\n }\n }\n IFC4X32.IfcOutletType = IfcOutletType;\n class IfcPavementType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 514975943;\n }\n }\n IFC4X32.IfcPavementType = IfcPavementType;\n class IfcPerformanceHistory extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LifeCyclePhase, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.LifeCyclePhase = LifeCyclePhase;\n this.PredefinedType = PredefinedType;\n this.type = 2382730787;\n }\n }\n IFC4X32.IfcPerformanceHistory = IfcPerformanceHistory;\n class IfcPermeableCoveringProperties extends IfcPreDefinedPropertySet {\n constructor(GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.OperationType = OperationType;\n this.PanelPosition = PanelPosition;\n this.FrameDepth = FrameDepth;\n this.FrameThickness = FrameThickness;\n this.ShapeAspectStyle = ShapeAspectStyle;\n this.type = 3566463478;\n }\n }\n IFC4X32.IfcPermeableCoveringProperties = IfcPermeableCoveringProperties;\n class IfcPermit extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.PredefinedType = PredefinedType;\n this.Status = Status;\n this.LongDescription = LongDescription;\n this.type = 3327091369;\n }\n }\n IFC4X32.IfcPermit = IfcPermit;\n class IfcPileType extends IfcDeepFoundationType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1158309216;\n }\n }\n IFC4X32.IfcPileType = IfcPileType;\n class IfcPipeFittingType extends IfcFlowFittingType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 804291784;\n }\n }\n IFC4X32.IfcPipeFittingType = IfcPipeFittingType;\n class IfcPipeSegmentType extends IfcFlowSegmentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 4231323485;\n }\n }\n IFC4X32.IfcPipeSegmentType = IfcPipeSegmentType;\n class IfcPlateType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 4017108033;\n }\n }\n IFC4X32.IfcPlateType = IfcPlateType;\n class IfcPolygonalFaceSet extends IfcTessellatedFaceSet {\n constructor(Coordinates, Closed, Faces, PnIndex) {\n super(Coordinates, Closed);\n this.Coordinates = Coordinates;\n this.Closed = Closed;\n this.Faces = Faces;\n this.PnIndex = PnIndex;\n this.type = 2839578677;\n }\n }\n IFC4X32.IfcPolygonalFaceSet = IfcPolygonalFaceSet;\n class IfcPolyline extends IfcBoundedCurve {\n constructor(Points) {\n super();\n this.Points = Points;\n this.type = 3724593414;\n }\n }\n IFC4X32.IfcPolyline = IfcPolyline;\n class IfcPort extends IfcProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.type = 3740093272;\n }\n }\n IFC4X32.IfcPort = IfcPort;\n class IfcPositioningElement extends IfcProduct {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.type = 1946335990;\n }\n }\n IFC4X32.IfcPositioningElement = IfcPositioningElement;\n class IfcProcedure extends IfcProcess {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.PredefinedType = PredefinedType;\n this.type = 2744685151;\n }\n }\n IFC4X32.IfcProcedure = IfcProcedure;\n class IfcProjectOrder extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.PredefinedType = PredefinedType;\n this.Status = Status;\n this.LongDescription = LongDescription;\n this.type = 2904328755;\n }\n }\n IFC4X32.IfcProjectOrder = IfcProjectOrder;\n class IfcProjectionElement extends IfcFeatureElementAddition {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3651124850;\n }\n }\n IFC4X32.IfcProjectionElement = IfcProjectionElement;\n class IfcProtectiveDeviceType extends IfcFlowControllerType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1842657554;\n }\n }\n IFC4X32.IfcProtectiveDeviceType = IfcProtectiveDeviceType;\n class IfcPumpType extends IfcFlowMovingDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2250791053;\n }\n }\n IFC4X32.IfcPumpType = IfcPumpType;\n class IfcRailType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1763565496;\n }\n }\n IFC4X32.IfcRailType = IfcRailType;\n class IfcRailingType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2893384427;\n }\n }\n IFC4X32.IfcRailingType = IfcRailingType;\n class IfcRailway extends IfcFacility {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.CompositionType = CompositionType;\n this.PredefinedType = PredefinedType;\n this.type = 3992365140;\n }\n }\n IFC4X32.IfcRailway = IfcRailway;\n class IfcRailwayPart extends IfcFacilityPart {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.CompositionType = CompositionType;\n this.UsageType = UsageType;\n this.PredefinedType = PredefinedType;\n this.type = 1891881377;\n }\n }\n IFC4X32.IfcRailwayPart = IfcRailwayPart;\n class IfcRampFlightType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2324767716;\n }\n }\n IFC4X32.IfcRampFlightType = IfcRampFlightType;\n class IfcRampType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1469900589;\n }\n }\n IFC4X32.IfcRampType = IfcRampType;\n class IfcRationalBSplineSurfaceWithKnots extends IfcBSplineSurfaceWithKnots {\n constructor(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec, WeightsData) {\n super(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec);\n this.UDegree = UDegree;\n this.VDegree = VDegree;\n this.ControlPointsList = ControlPointsList;\n this.SurfaceForm = SurfaceForm;\n this.UClosed = UClosed;\n this.VClosed = VClosed;\n this.SelfIntersect = SelfIntersect;\n this.UMultiplicities = UMultiplicities;\n this.VMultiplicities = VMultiplicities;\n this.UKnots = UKnots;\n this.VKnots = VKnots;\n this.KnotSpec = KnotSpec;\n this.WeightsData = WeightsData;\n this.type = 683857671;\n }\n }\n IFC4X32.IfcRationalBSplineSurfaceWithKnots = IfcRationalBSplineSurfaceWithKnots;\n class IfcReferent extends IfcPositioningElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.PredefinedType = PredefinedType;\n this.type = 4021432810;\n }\n }\n IFC4X32.IfcReferent = IfcReferent;\n class IfcReinforcingElement extends IfcElementComponent {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.SteelGrade = SteelGrade;\n this.type = 3027567501;\n }\n }\n IFC4X32.IfcReinforcingElement = IfcReinforcingElement;\n class IfcReinforcingElementType extends IfcElementComponentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 964333572;\n }\n }\n IFC4X32.IfcReinforcingElementType = IfcReinforcingElementType;\n class IfcReinforcingMesh extends IfcReinforcingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.SteelGrade = SteelGrade;\n this.MeshLength = MeshLength;\n this.MeshWidth = MeshWidth;\n this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter;\n this.TransverseBarNominalDiameter = TransverseBarNominalDiameter;\n this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea;\n this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea;\n this.LongitudinalBarSpacing = LongitudinalBarSpacing;\n this.TransverseBarSpacing = TransverseBarSpacing;\n this.PredefinedType = PredefinedType;\n this.type = 2320036040;\n }\n }\n IFC4X32.IfcReinforcingMesh = IfcReinforcingMesh;\n class IfcReinforcingMeshType extends IfcReinforcingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, BendingShapeCode, BendingParameters) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.MeshLength = MeshLength;\n this.MeshWidth = MeshWidth;\n this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter;\n this.TransverseBarNominalDiameter = TransverseBarNominalDiameter;\n this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea;\n this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea;\n this.LongitudinalBarSpacing = LongitudinalBarSpacing;\n this.TransverseBarSpacing = TransverseBarSpacing;\n this.BendingShapeCode = BendingShapeCode;\n this.BendingParameters = BendingParameters;\n this.type = 2310774935;\n }\n }\n IFC4X32.IfcReinforcingMeshType = IfcReinforcingMeshType;\n class IfcRelAdheresToElement extends IfcRelDecomposes {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedSurfaceFeatures) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingElement = RelatingElement;\n this.RelatedSurfaceFeatures = RelatedSurfaceFeatures;\n this.type = 3818125796;\n }\n }\n IFC4X32.IfcRelAdheresToElement = IfcRelAdheresToElement;\n class IfcRelAggregates extends IfcRelDecomposes {\n constructor(GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) {\n super(GlobalId, OwnerHistory, Name, Description);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.RelatingObject = RelatingObject;\n this.RelatedObjects = RelatedObjects;\n this.type = 160246688;\n }\n }\n IFC4X32.IfcRelAggregates = IfcRelAggregates;\n class IfcRoad extends IfcFacility {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.CompositionType = CompositionType;\n this.PredefinedType = PredefinedType;\n this.type = 146592293;\n }\n }\n IFC4X32.IfcRoad = IfcRoad;\n class IfcRoadPart extends IfcFacilityPart {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.CompositionType = CompositionType;\n this.UsageType = UsageType;\n this.PredefinedType = PredefinedType;\n this.type = 550521510;\n }\n }\n IFC4X32.IfcRoadPart = IfcRoadPart;\n class IfcRoofType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2781568857;\n }\n }\n IFC4X32.IfcRoofType = IfcRoofType;\n class IfcSanitaryTerminalType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1768891740;\n }\n }\n IFC4X32.IfcSanitaryTerminalType = IfcSanitaryTerminalType;\n class IfcSeamCurve extends IfcSurfaceCurve {\n constructor(Curve3D, AssociatedGeometry, MasterRepresentation) {\n super(Curve3D, AssociatedGeometry, MasterRepresentation);\n this.Curve3D = Curve3D;\n this.AssociatedGeometry = AssociatedGeometry;\n this.MasterRepresentation = MasterRepresentation;\n this.type = 2157484638;\n }\n }\n IFC4X32.IfcSeamCurve = IfcSeamCurve;\n class IfcSecondOrderPolynomialSpiral extends IfcSpiral {\n constructor(Position, QuadraticTerm, LinearTerm, ConstantTerm) {\n super(Position);\n this.Position = Position;\n this.QuadraticTerm = QuadraticTerm;\n this.LinearTerm = LinearTerm;\n this.ConstantTerm = ConstantTerm;\n this.type = 3649235739;\n }\n }\n IFC4X32.IfcSecondOrderPolynomialSpiral = IfcSecondOrderPolynomialSpiral;\n class IfcSegmentedReferenceCurve extends IfcCompositeCurve {\n constructor(Segments, SelfIntersect, BaseCurve, EndPoint) {\n super(Segments, SelfIntersect);\n this.Segments = Segments;\n this.SelfIntersect = SelfIntersect;\n this.BaseCurve = BaseCurve;\n this.EndPoint = EndPoint;\n this.type = 544395925;\n }\n }\n IFC4X32.IfcSegmentedReferenceCurve = IfcSegmentedReferenceCurve;\n class IfcSeventhOrderPolynomialSpiral extends IfcSpiral {\n constructor(Position, SepticTerm, SexticTerm, QuinticTerm, QuarticTerm, CubicTerm, QuadraticTerm, LinearTerm, ConstantTerm) {\n super(Position);\n this.Position = Position;\n this.SepticTerm = SepticTerm;\n this.SexticTerm = SexticTerm;\n this.QuinticTerm = QuinticTerm;\n this.QuarticTerm = QuarticTerm;\n this.CubicTerm = CubicTerm;\n this.QuadraticTerm = QuadraticTerm;\n this.LinearTerm = LinearTerm;\n this.ConstantTerm = ConstantTerm;\n this.type = 1027922057;\n }\n }\n IFC4X32.IfcSeventhOrderPolynomialSpiral = IfcSeventhOrderPolynomialSpiral;\n class IfcShadingDeviceType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 4074543187;\n }\n }\n IFC4X32.IfcShadingDeviceType = IfcShadingDeviceType;\n class IfcSign extends IfcElementComponent {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 33720170;\n }\n }\n IFC4X32.IfcSign = IfcSign;\n class IfcSignType extends IfcElementComponentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3599934289;\n }\n }\n IFC4X32.IfcSignType = IfcSignType;\n class IfcSignalType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1894708472;\n }\n }\n IFC4X32.IfcSignalType = IfcSignalType;\n class IfcSineSpiral extends IfcSpiral {\n constructor(Position, SineTerm, LinearTerm, ConstantTerm) {\n super(Position);\n this.Position = Position;\n this.SineTerm = SineTerm;\n this.LinearTerm = LinearTerm;\n this.ConstantTerm = ConstantTerm;\n this.type = 42703149;\n }\n }\n IFC4X32.IfcSineSpiral = IfcSineSpiral;\n class IfcSite extends IfcSpatialStructureElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.CompositionType = CompositionType;\n this.RefLatitude = RefLatitude;\n this.RefLongitude = RefLongitude;\n this.RefElevation = RefElevation;\n this.LandTitleNumber = LandTitleNumber;\n this.SiteAddress = SiteAddress;\n this.type = 4097777520;\n }\n }\n IFC4X32.IfcSite = IfcSite;\n class IfcSlabType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2533589738;\n }\n }\n IFC4X32.IfcSlabType = IfcSlabType;\n class IfcSolarDeviceType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1072016465;\n }\n }\n IFC4X32.IfcSolarDeviceType = IfcSolarDeviceType;\n class IfcSpace extends IfcSpatialStructureElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType, ElevationWithFlooring) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.CompositionType = CompositionType;\n this.PredefinedType = PredefinedType;\n this.ElevationWithFlooring = ElevationWithFlooring;\n this.type = 3856911033;\n }\n }\n IFC4X32.IfcSpace = IfcSpace;\n class IfcSpaceHeaterType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1305183839;\n }\n }\n IFC4X32.IfcSpaceHeaterType = IfcSpaceHeaterType;\n class IfcSpaceType extends IfcSpatialStructureElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.LongName = LongName;\n this.type = 3812236995;\n }\n }\n IFC4X32.IfcSpaceType = IfcSpaceType;\n class IfcStackTerminalType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3112655638;\n }\n }\n IFC4X32.IfcStackTerminalType = IfcStackTerminalType;\n class IfcStairFlightType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1039846685;\n }\n }\n IFC4X32.IfcStairFlightType = IfcStairFlightType;\n class IfcStairType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 338393293;\n }\n }\n IFC4X32.IfcStairType = IfcStairType;\n class IfcStructuralAction extends IfcStructuralActivity {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.DestabilizingLoad = DestabilizingLoad;\n this.type = 682877961;\n }\n }\n IFC4X32.IfcStructuralAction = IfcStructuralAction;\n class IfcStructuralConnection extends IfcStructuralItem {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedCondition = AppliedCondition;\n this.type = 1179482911;\n }\n }\n IFC4X32.IfcStructuralConnection = IfcStructuralConnection;\n class IfcStructuralCurveAction extends IfcStructuralAction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.DestabilizingLoad = DestabilizingLoad;\n this.ProjectedOrTrue = ProjectedOrTrue;\n this.PredefinedType = PredefinedType;\n this.type = 1004757350;\n }\n }\n IFC4X32.IfcStructuralCurveAction = IfcStructuralCurveAction;\n class IfcStructuralCurveConnection extends IfcStructuralConnection {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, AxisDirection) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedCondition = AppliedCondition;\n this.AxisDirection = AxisDirection;\n this.type = 4243806635;\n }\n }\n IFC4X32.IfcStructuralCurveConnection = IfcStructuralCurveConnection;\n class IfcStructuralCurveMember extends IfcStructuralMember {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.PredefinedType = PredefinedType;\n this.Axis = Axis;\n this.type = 214636428;\n }\n }\n IFC4X32.IfcStructuralCurveMember = IfcStructuralCurveMember;\n class IfcStructuralCurveMemberVarying extends IfcStructuralCurveMember {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.PredefinedType = PredefinedType;\n this.Axis = Axis;\n this.type = 2445595289;\n }\n }\n IFC4X32.IfcStructuralCurveMemberVarying = IfcStructuralCurveMemberVarying;\n class IfcStructuralCurveReaction extends IfcStructuralReaction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.PredefinedType = PredefinedType;\n this.type = 2757150158;\n }\n }\n IFC4X32.IfcStructuralCurveReaction = IfcStructuralCurveReaction;\n class IfcStructuralLinearAction extends IfcStructuralCurveAction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.DestabilizingLoad = DestabilizingLoad;\n this.ProjectedOrTrue = ProjectedOrTrue;\n this.PredefinedType = PredefinedType;\n this.type = 1807405624;\n }\n }\n IFC4X32.IfcStructuralLinearAction = IfcStructuralLinearAction;\n class IfcStructuralLoadGroup extends IfcGroup {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.PredefinedType = PredefinedType;\n this.ActionType = ActionType;\n this.ActionSource = ActionSource;\n this.Coefficient = Coefficient;\n this.Purpose = Purpose;\n this.type = 1252848954;\n }\n }\n IFC4X32.IfcStructuralLoadGroup = IfcStructuralLoadGroup;\n class IfcStructuralPointAction extends IfcStructuralAction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.DestabilizingLoad = DestabilizingLoad;\n this.type = 2082059205;\n }\n }\n IFC4X32.IfcStructuralPointAction = IfcStructuralPointAction;\n class IfcStructuralPointConnection extends IfcStructuralConnection {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, ConditionCoordinateSystem) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedCondition = AppliedCondition;\n this.ConditionCoordinateSystem = ConditionCoordinateSystem;\n this.type = 734778138;\n }\n }\n IFC4X32.IfcStructuralPointConnection = IfcStructuralPointConnection;\n class IfcStructuralPointReaction extends IfcStructuralReaction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.type = 1235345126;\n }\n }\n IFC4X32.IfcStructuralPointReaction = IfcStructuralPointReaction;\n class IfcStructuralResultGroup extends IfcGroup {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.TheoryType = TheoryType;\n this.ResultForLoadGroup = ResultForLoadGroup;\n this.IsLinear = IsLinear;\n this.type = 2986769608;\n }\n }\n IFC4X32.IfcStructuralResultGroup = IfcStructuralResultGroup;\n class IfcStructuralSurfaceAction extends IfcStructuralAction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.DestabilizingLoad = DestabilizingLoad;\n this.ProjectedOrTrue = ProjectedOrTrue;\n this.PredefinedType = PredefinedType;\n this.type = 3657597509;\n }\n }\n IFC4X32.IfcStructuralSurfaceAction = IfcStructuralSurfaceAction;\n class IfcStructuralSurfaceConnection extends IfcStructuralConnection {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedCondition = AppliedCondition;\n this.type = 1975003073;\n }\n }\n IFC4X32.IfcStructuralSurfaceConnection = IfcStructuralSurfaceConnection;\n class IfcSubContractResource extends IfcConstructionResource {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.Usage = Usage;\n this.BaseCosts = BaseCosts;\n this.BaseQuantity = BaseQuantity;\n this.PredefinedType = PredefinedType;\n this.type = 148013059;\n }\n }\n IFC4X32.IfcSubContractResource = IfcSubContractResource;\n class IfcSurfaceFeature extends IfcFeatureElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3101698114;\n }\n }\n IFC4X32.IfcSurfaceFeature = IfcSurfaceFeature;\n class IfcSwitchingDeviceType extends IfcFlowControllerType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2315554128;\n }\n }\n IFC4X32.IfcSwitchingDeviceType = IfcSwitchingDeviceType;\n class IfcSystem extends IfcGroup {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.type = 2254336722;\n }\n }\n IFC4X32.IfcSystem = IfcSystem;\n class IfcSystemFurnitureElement extends IfcFurnishingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 413509423;\n }\n }\n IFC4X32.IfcSystemFurnitureElement = IfcSystemFurnitureElement;\n class IfcTankType extends IfcFlowStorageDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 5716631;\n }\n }\n IFC4X32.IfcTankType = IfcTankType;\n class IfcTendon extends IfcReinforcingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.SteelGrade = SteelGrade;\n this.PredefinedType = PredefinedType;\n this.NominalDiameter = NominalDiameter;\n this.CrossSectionArea = CrossSectionArea;\n this.TensionForce = TensionForce;\n this.PreStress = PreStress;\n this.FrictionCoefficient = FrictionCoefficient;\n this.AnchorageSlip = AnchorageSlip;\n this.MinCurvatureRadius = MinCurvatureRadius;\n this.type = 3824725483;\n }\n }\n IFC4X32.IfcTendon = IfcTendon;\n class IfcTendonAnchor extends IfcReinforcingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.SteelGrade = SteelGrade;\n this.PredefinedType = PredefinedType;\n this.type = 2347447852;\n }\n }\n IFC4X32.IfcTendonAnchor = IfcTendonAnchor;\n class IfcTendonAnchorType extends IfcReinforcingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3081323446;\n }\n }\n IFC4X32.IfcTendonAnchorType = IfcTendonAnchorType;\n class IfcTendonConduit extends IfcReinforcingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.SteelGrade = SteelGrade;\n this.PredefinedType = PredefinedType;\n this.type = 3663046924;\n }\n }\n IFC4X32.IfcTendonConduit = IfcTendonConduit;\n class IfcTendonConduitType extends IfcReinforcingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2281632017;\n }\n }\n IFC4X32.IfcTendonConduitType = IfcTendonConduitType;\n class IfcTendonType extends IfcReinforcingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, SheathDiameter) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.NominalDiameter = NominalDiameter;\n this.CrossSectionArea = CrossSectionArea;\n this.SheathDiameter = SheathDiameter;\n this.type = 2415094496;\n }\n }\n IFC4X32.IfcTendonType = IfcTendonType;\n class IfcTrackElementType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 618700268;\n }\n }\n IFC4X32.IfcTrackElementType = IfcTrackElementType;\n class IfcTransformerType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1692211062;\n }\n }\n IFC4X32.IfcTransformerType = IfcTransformerType;\n class IfcTransportElementType extends IfcTransportationDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2097647324;\n }\n }\n IFC4X32.IfcTransportElementType = IfcTransportElementType;\n class IfcTransportationDevice extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 1953115116;\n }\n }\n IFC4X32.IfcTransportationDevice = IfcTransportationDevice;\n class IfcTrimmedCurve extends IfcBoundedCurve {\n constructor(BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation) {\n super();\n this.BasisCurve = BasisCurve;\n this.Trim1 = Trim1;\n this.Trim2 = Trim2;\n this.SenseAgreement = SenseAgreement;\n this.MasterRepresentation = MasterRepresentation;\n this.type = 3593883385;\n }\n }\n IFC4X32.IfcTrimmedCurve = IfcTrimmedCurve;\n class IfcTubeBundleType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1600972822;\n }\n }\n IFC4X32.IfcTubeBundleType = IfcTubeBundleType;\n class IfcUnitaryEquipmentType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1911125066;\n }\n }\n IFC4X32.IfcUnitaryEquipmentType = IfcUnitaryEquipmentType;\n class IfcValveType extends IfcFlowControllerType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 728799441;\n }\n }\n IFC4X32.IfcValveType = IfcValveType;\n class IfcVehicle extends IfcTransportationDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 840318589;\n }\n }\n IFC4X32.IfcVehicle = IfcVehicle;\n class IfcVibrationDamper extends IfcElementComponent {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1530820697;\n }\n }\n IFC4X32.IfcVibrationDamper = IfcVibrationDamper;\n class IfcVibrationDamperType extends IfcElementComponentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3956297820;\n }\n }\n IFC4X32.IfcVibrationDamperType = IfcVibrationDamperType;\n class IfcVibrationIsolator extends IfcElementComponent {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2391383451;\n }\n }\n IFC4X32.IfcVibrationIsolator = IfcVibrationIsolator;\n class IfcVibrationIsolatorType extends IfcElementComponentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3313531582;\n }\n }\n IFC4X32.IfcVibrationIsolatorType = IfcVibrationIsolatorType;\n class IfcVirtualElement extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2769231204;\n }\n }\n IFC4X32.IfcVirtualElement = IfcVirtualElement;\n class IfcVoidingFeature extends IfcFeatureElementSubtraction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 926996030;\n }\n }\n IFC4X32.IfcVoidingFeature = IfcVoidingFeature;\n class IfcWallType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1898987631;\n }\n }\n IFC4X32.IfcWallType = IfcWallType;\n class IfcWasteTerminalType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1133259667;\n }\n }\n IFC4X32.IfcWasteTerminalType = IfcWasteTerminalType;\n class IfcWindowType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, PartitioningType, ParameterTakesPrecedence, UserDefinedPartitioningType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.PartitioningType = PartitioningType;\n this.ParameterTakesPrecedence = ParameterTakesPrecedence;\n this.UserDefinedPartitioningType = UserDefinedPartitioningType;\n this.type = 4009809668;\n }\n }\n IFC4X32.IfcWindowType = IfcWindowType;\n class IfcWorkCalendar extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, WorkingTimes, ExceptionTimes, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.WorkingTimes = WorkingTimes;\n this.ExceptionTimes = ExceptionTimes;\n this.PredefinedType = PredefinedType;\n this.type = 4088093105;\n }\n }\n IFC4X32.IfcWorkCalendar = IfcWorkCalendar;\n class IfcWorkControl extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.CreationDate = CreationDate;\n this.Creators = Creators;\n this.Purpose = Purpose;\n this.Duration = Duration;\n this.TotalFloat = TotalFloat;\n this.StartTime = StartTime;\n this.FinishTime = FinishTime;\n this.type = 1028945134;\n }\n }\n IFC4X32.IfcWorkControl = IfcWorkControl;\n class IfcWorkPlan extends IfcWorkControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.CreationDate = CreationDate;\n this.Creators = Creators;\n this.Purpose = Purpose;\n this.Duration = Duration;\n this.TotalFloat = TotalFloat;\n this.StartTime = StartTime;\n this.FinishTime = FinishTime;\n this.PredefinedType = PredefinedType;\n this.type = 4218914973;\n }\n }\n IFC4X32.IfcWorkPlan = IfcWorkPlan;\n class IfcWorkSchedule extends IfcWorkControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.CreationDate = CreationDate;\n this.Creators = Creators;\n this.Purpose = Purpose;\n this.Duration = Duration;\n this.TotalFloat = TotalFloat;\n this.StartTime = StartTime;\n this.FinishTime = FinishTime;\n this.PredefinedType = PredefinedType;\n this.type = 3342526732;\n }\n }\n IFC4X32.IfcWorkSchedule = IfcWorkSchedule;\n class IfcZone extends IfcSystem {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.LongName = LongName;\n this.type = 1033361043;\n }\n }\n IFC4X32.IfcZone = IfcZone;\n class IfcActionRequest extends IfcControl {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.PredefinedType = PredefinedType;\n this.Status = Status;\n this.LongDescription = LongDescription;\n this.type = 3821786052;\n }\n }\n IFC4X32.IfcActionRequest = IfcActionRequest;\n class IfcAirTerminalBoxType extends IfcFlowControllerType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1411407467;\n }\n }\n IFC4X32.IfcAirTerminalBoxType = IfcAirTerminalBoxType;\n class IfcAirTerminalType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3352864051;\n }\n }\n IFC4X32.IfcAirTerminalType = IfcAirTerminalType;\n class IfcAirToAirHeatRecoveryType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1871374353;\n }\n }\n IFC4X32.IfcAirToAirHeatRecoveryType = IfcAirToAirHeatRecoveryType;\n class IfcAlignmentCant extends IfcLinearElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, RailHeadDistance) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.RailHeadDistance = RailHeadDistance;\n this.type = 4266260250;\n }\n }\n IFC4X32.IfcAlignmentCant = IfcAlignmentCant;\n class IfcAlignmentHorizontal extends IfcLinearElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.type = 1545765605;\n }\n }\n IFC4X32.IfcAlignmentHorizontal = IfcAlignmentHorizontal;\n class IfcAlignmentSegment extends IfcLinearElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, DesignParameters) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.DesignParameters = DesignParameters;\n this.type = 317615605;\n }\n }\n IFC4X32.IfcAlignmentSegment = IfcAlignmentSegment;\n class IfcAlignmentVertical extends IfcLinearElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.type = 1662888072;\n }\n }\n IFC4X32.IfcAlignmentVertical = IfcAlignmentVertical;\n class IfcAsset extends IfcGroup {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.OriginalValue = OriginalValue;\n this.CurrentValue = CurrentValue;\n this.TotalReplacementCost = TotalReplacementCost;\n this.Owner = Owner;\n this.User = User;\n this.ResponsiblePerson = ResponsiblePerson;\n this.IncorporationDate = IncorporationDate;\n this.DepreciatedValue = DepreciatedValue;\n this.type = 3460190687;\n }\n }\n IFC4X32.IfcAsset = IfcAsset;\n class IfcAudioVisualApplianceType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1532957894;\n }\n }\n IFC4X32.IfcAudioVisualApplianceType = IfcAudioVisualApplianceType;\n class IfcBSplineCurve extends IfcBoundedCurve {\n constructor(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) {\n super();\n this.Degree = Degree;\n this.ControlPointsList = ControlPointsList;\n this.CurveForm = CurveForm;\n this.ClosedCurve = ClosedCurve;\n this.SelfIntersect = SelfIntersect;\n this.type = 1967976161;\n }\n }\n IFC4X32.IfcBSplineCurve = IfcBSplineCurve;\n class IfcBSplineCurveWithKnots extends IfcBSplineCurve {\n constructor(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec) {\n super(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect);\n this.Degree = Degree;\n this.ControlPointsList = ControlPointsList;\n this.CurveForm = CurveForm;\n this.ClosedCurve = ClosedCurve;\n this.SelfIntersect = SelfIntersect;\n this.KnotMultiplicities = KnotMultiplicities;\n this.Knots = Knots;\n this.KnotSpec = KnotSpec;\n this.type = 2461110595;\n }\n }\n IFC4X32.IfcBSplineCurveWithKnots = IfcBSplineCurveWithKnots;\n class IfcBeamType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 819618141;\n }\n }\n IFC4X32.IfcBeamType = IfcBeamType;\n class IfcBearingType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3649138523;\n }\n }\n IFC4X32.IfcBearingType = IfcBearingType;\n class IfcBoilerType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 231477066;\n }\n }\n IFC4X32.IfcBoilerType = IfcBoilerType;\n class IfcBoundaryCurve extends IfcCompositeCurveOnSurface {\n constructor(Segments, SelfIntersect) {\n super(Segments, SelfIntersect);\n this.Segments = Segments;\n this.SelfIntersect = SelfIntersect;\n this.type = 1136057603;\n }\n }\n IFC4X32.IfcBoundaryCurve = IfcBoundaryCurve;\n class IfcBridge extends IfcFacility {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.CompositionType = CompositionType;\n this.PredefinedType = PredefinedType;\n this.type = 644574406;\n }\n }\n IFC4X32.IfcBridge = IfcBridge;\n class IfcBridgePart extends IfcFacilityPart {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.CompositionType = CompositionType;\n this.UsageType = UsageType;\n this.PredefinedType = PredefinedType;\n this.type = 963979645;\n }\n }\n IFC4X32.IfcBridgePart = IfcBridgePart;\n class IfcBuilding extends IfcFacility {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.CompositionType = CompositionType;\n this.ElevationOfRefHeight = ElevationOfRefHeight;\n this.ElevationOfTerrain = ElevationOfTerrain;\n this.BuildingAddress = BuildingAddress;\n this.type = 4031249490;\n }\n }\n IFC4X32.IfcBuilding = IfcBuilding;\n class IfcBuildingElementPart extends IfcElementComponent {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2979338954;\n }\n }\n IFC4X32.IfcBuildingElementPart = IfcBuildingElementPart;\n class IfcBuildingElementPartType extends IfcElementComponentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 39481116;\n }\n }\n IFC4X32.IfcBuildingElementPartType = IfcBuildingElementPartType;\n class IfcBuildingElementProxyType extends IfcBuiltElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1909888760;\n }\n }\n IFC4X32.IfcBuildingElementProxyType = IfcBuildingElementProxyType;\n class IfcBuildingSystem extends IfcSystem {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.PredefinedType = PredefinedType;\n this.LongName = LongName;\n this.type = 1177604601;\n }\n }\n IFC4X32.IfcBuildingSystem = IfcBuildingSystem;\n class IfcBuiltElement extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 1876633798;\n }\n }\n IFC4X32.IfcBuiltElement = IfcBuiltElement;\n class IfcBuiltSystem extends IfcSystem {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.PredefinedType = PredefinedType;\n this.LongName = LongName;\n this.type = 3862327254;\n }\n }\n IFC4X32.IfcBuiltSystem = IfcBuiltSystem;\n class IfcBurnerType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2188180465;\n }\n }\n IFC4X32.IfcBurnerType = IfcBurnerType;\n class IfcCableCarrierFittingType extends IfcFlowFittingType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 395041908;\n }\n }\n IFC4X32.IfcCableCarrierFittingType = IfcCableCarrierFittingType;\n class IfcCableCarrierSegmentType extends IfcFlowSegmentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3293546465;\n }\n }\n IFC4X32.IfcCableCarrierSegmentType = IfcCableCarrierSegmentType;\n class IfcCableFittingType extends IfcFlowFittingType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2674252688;\n }\n }\n IFC4X32.IfcCableFittingType = IfcCableFittingType;\n class IfcCableSegmentType extends IfcFlowSegmentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1285652485;\n }\n }\n IFC4X32.IfcCableSegmentType = IfcCableSegmentType;\n class IfcCaissonFoundationType extends IfcDeepFoundationType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3203706013;\n }\n }\n IFC4X32.IfcCaissonFoundationType = IfcCaissonFoundationType;\n class IfcChillerType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2951183804;\n }\n }\n IFC4X32.IfcChillerType = IfcChillerType;\n class IfcChimney extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3296154744;\n }\n }\n IFC4X32.IfcChimney = IfcChimney;\n class IfcCircle extends IfcConic {\n constructor(Position, Radius) {\n super(Position);\n this.Position = Position;\n this.Radius = Radius;\n this.type = 2611217952;\n }\n }\n IFC4X32.IfcCircle = IfcCircle;\n class IfcCivilElement extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 1677625105;\n }\n }\n IFC4X32.IfcCivilElement = IfcCivilElement;\n class IfcCoilType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2301859152;\n }\n }\n IFC4X32.IfcCoilType = IfcCoilType;\n class IfcColumn extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 843113511;\n }\n }\n IFC4X32.IfcColumn = IfcColumn;\n class IfcCommunicationsApplianceType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 400855858;\n }\n }\n IFC4X32.IfcCommunicationsApplianceType = IfcCommunicationsApplianceType;\n class IfcCompressorType extends IfcFlowMovingDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3850581409;\n }\n }\n IFC4X32.IfcCompressorType = IfcCompressorType;\n class IfcCondenserType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2816379211;\n }\n }\n IFC4X32.IfcCondenserType = IfcCondenserType;\n class IfcConstructionEquipmentResource extends IfcConstructionResource {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.Usage = Usage;\n this.BaseCosts = BaseCosts;\n this.BaseQuantity = BaseQuantity;\n this.PredefinedType = PredefinedType;\n this.type = 3898045240;\n }\n }\n IFC4X32.IfcConstructionEquipmentResource = IfcConstructionEquipmentResource;\n class IfcConstructionMaterialResource extends IfcConstructionResource {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.Usage = Usage;\n this.BaseCosts = BaseCosts;\n this.BaseQuantity = BaseQuantity;\n this.PredefinedType = PredefinedType;\n this.type = 1060000209;\n }\n }\n IFC4X32.IfcConstructionMaterialResource = IfcConstructionMaterialResource;\n class IfcConstructionProductResource extends IfcConstructionResource {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.Identification = Identification;\n this.LongDescription = LongDescription;\n this.Usage = Usage;\n this.BaseCosts = BaseCosts;\n this.BaseQuantity = BaseQuantity;\n this.PredefinedType = PredefinedType;\n this.type = 488727124;\n }\n }\n IFC4X32.IfcConstructionProductResource = IfcConstructionProductResource;\n class IfcConveyorSegmentType extends IfcFlowSegmentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2940368186;\n }\n }\n IFC4X32.IfcConveyorSegmentType = IfcConveyorSegmentType;\n class IfcCooledBeamType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 335055490;\n }\n }\n IFC4X32.IfcCooledBeamType = IfcCooledBeamType;\n class IfcCoolingTowerType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2954562838;\n }\n }\n IFC4X32.IfcCoolingTowerType = IfcCoolingTowerType;\n class IfcCourse extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1502416096;\n }\n }\n IFC4X32.IfcCourse = IfcCourse;\n class IfcCovering extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1973544240;\n }\n }\n IFC4X32.IfcCovering = IfcCovering;\n class IfcCurtainWall extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3495092785;\n }\n }\n IFC4X32.IfcCurtainWall = IfcCurtainWall;\n class IfcDamperType extends IfcFlowControllerType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3961806047;\n }\n }\n IFC4X32.IfcDamperType = IfcDamperType;\n class IfcDeepFoundation extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 3426335179;\n }\n }\n IFC4X32.IfcDeepFoundation = IfcDeepFoundation;\n class IfcDiscreteAccessory extends IfcElementComponent {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1335981549;\n }\n }\n IFC4X32.IfcDiscreteAccessory = IfcDiscreteAccessory;\n class IfcDiscreteAccessoryType extends IfcElementComponentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2635815018;\n }\n }\n IFC4X32.IfcDiscreteAccessoryType = IfcDiscreteAccessoryType;\n class IfcDistributionBoardType extends IfcFlowControllerType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 479945903;\n }\n }\n IFC4X32.IfcDistributionBoardType = IfcDistributionBoardType;\n class IfcDistributionChamberElementType extends IfcDistributionFlowElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1599208980;\n }\n }\n IFC4X32.IfcDistributionChamberElementType = IfcDistributionChamberElementType;\n class IfcDistributionControlElementType extends IfcDistributionElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.type = 2063403501;\n }\n }\n IFC4X32.IfcDistributionControlElementType = IfcDistributionControlElementType;\n class IfcDistributionElement extends IfcElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 1945004755;\n }\n }\n IFC4X32.IfcDistributionElement = IfcDistributionElement;\n class IfcDistributionFlowElement extends IfcDistributionElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 3040386961;\n }\n }\n IFC4X32.IfcDistributionFlowElement = IfcDistributionFlowElement;\n class IfcDistributionPort extends IfcPort {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection, PredefinedType, SystemType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.FlowDirection = FlowDirection;\n this.PredefinedType = PredefinedType;\n this.SystemType = SystemType;\n this.type = 3041715199;\n }\n }\n IFC4X32.IfcDistributionPort = IfcDistributionPort;\n class IfcDistributionSystem extends IfcSystem {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.LongName = LongName;\n this.PredefinedType = PredefinedType;\n this.type = 3205830791;\n }\n }\n IFC4X32.IfcDistributionSystem = IfcDistributionSystem;\n class IfcDoor extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.OverallHeight = OverallHeight;\n this.OverallWidth = OverallWidth;\n this.PredefinedType = PredefinedType;\n this.OperationType = OperationType;\n this.UserDefinedOperationType = UserDefinedOperationType;\n this.type = 395920057;\n }\n }\n IFC4X32.IfcDoor = IfcDoor;\n class IfcDuctFittingType extends IfcFlowFittingType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 869906466;\n }\n }\n IFC4X32.IfcDuctFittingType = IfcDuctFittingType;\n class IfcDuctSegmentType extends IfcFlowSegmentType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3760055223;\n }\n }\n IFC4X32.IfcDuctSegmentType = IfcDuctSegmentType;\n class IfcDuctSilencerType extends IfcFlowTreatmentDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2030761528;\n }\n }\n IFC4X32.IfcDuctSilencerType = IfcDuctSilencerType;\n class IfcEarthworksCut extends IfcFeatureElementSubtraction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3071239417;\n }\n }\n IFC4X32.IfcEarthworksCut = IfcEarthworksCut;\n class IfcEarthworksElement extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 1077100507;\n }\n }\n IFC4X32.IfcEarthworksElement = IfcEarthworksElement;\n class IfcEarthworksFill extends IfcEarthworksElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3376911765;\n }\n }\n IFC4X32.IfcEarthworksFill = IfcEarthworksFill;\n class IfcElectricApplianceType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 663422040;\n }\n }\n IFC4X32.IfcElectricApplianceType = IfcElectricApplianceType;\n class IfcElectricDistributionBoardType extends IfcFlowControllerType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2417008758;\n }\n }\n IFC4X32.IfcElectricDistributionBoardType = IfcElectricDistributionBoardType;\n class IfcElectricFlowStorageDeviceType extends IfcFlowStorageDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3277789161;\n }\n }\n IFC4X32.IfcElectricFlowStorageDeviceType = IfcElectricFlowStorageDeviceType;\n class IfcElectricFlowTreatmentDeviceType extends IfcFlowTreatmentDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2142170206;\n }\n }\n IFC4X32.IfcElectricFlowTreatmentDeviceType = IfcElectricFlowTreatmentDeviceType;\n class IfcElectricGeneratorType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1534661035;\n }\n }\n IFC4X32.IfcElectricGeneratorType = IfcElectricGeneratorType;\n class IfcElectricMotorType extends IfcEnergyConversionDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1217240411;\n }\n }\n IFC4X32.IfcElectricMotorType = IfcElectricMotorType;\n class IfcElectricTimeControlType extends IfcFlowControllerType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 712377611;\n }\n }\n IFC4X32.IfcElectricTimeControlType = IfcElectricTimeControlType;\n class IfcEnergyConversionDevice extends IfcDistributionFlowElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 1658829314;\n }\n }\n IFC4X32.IfcEnergyConversionDevice = IfcEnergyConversionDevice;\n class IfcEngine extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2814081492;\n }\n }\n IFC4X32.IfcEngine = IfcEngine;\n class IfcEvaporativeCooler extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3747195512;\n }\n }\n IFC4X32.IfcEvaporativeCooler = IfcEvaporativeCooler;\n class IfcEvaporator extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 484807127;\n }\n }\n IFC4X32.IfcEvaporator = IfcEvaporator;\n class IfcExternalSpatialElement extends IfcExternalSpatialStructureElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.LongName = LongName;\n this.PredefinedType = PredefinedType;\n this.type = 1209101575;\n }\n }\n IFC4X32.IfcExternalSpatialElement = IfcExternalSpatialElement;\n class IfcFanType extends IfcFlowMovingDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 346874300;\n }\n }\n IFC4X32.IfcFanType = IfcFanType;\n class IfcFilterType extends IfcFlowTreatmentDeviceType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1810631287;\n }\n }\n IFC4X32.IfcFilterType = IfcFilterType;\n class IfcFireSuppressionTerminalType extends IfcFlowTerminalType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 4222183408;\n }\n }\n IFC4X32.IfcFireSuppressionTerminalType = IfcFireSuppressionTerminalType;\n class IfcFlowController extends IfcDistributionFlowElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 2058353004;\n }\n }\n IFC4X32.IfcFlowController = IfcFlowController;\n class IfcFlowFitting extends IfcDistributionFlowElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 4278956645;\n }\n }\n IFC4X32.IfcFlowFitting = IfcFlowFitting;\n class IfcFlowInstrumentType extends IfcDistributionControlElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 4037862832;\n }\n }\n IFC4X32.IfcFlowInstrumentType = IfcFlowInstrumentType;\n class IfcFlowMeter extends IfcFlowController {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2188021234;\n }\n }\n IFC4X32.IfcFlowMeter = IfcFlowMeter;\n class IfcFlowMovingDevice extends IfcDistributionFlowElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 3132237377;\n }\n }\n IFC4X32.IfcFlowMovingDevice = IfcFlowMovingDevice;\n class IfcFlowSegment extends IfcDistributionFlowElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 987401354;\n }\n }\n IFC4X32.IfcFlowSegment = IfcFlowSegment;\n class IfcFlowStorageDevice extends IfcDistributionFlowElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 707683696;\n }\n }\n IFC4X32.IfcFlowStorageDevice = IfcFlowStorageDevice;\n class IfcFlowTerminal extends IfcDistributionFlowElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 2223149337;\n }\n }\n IFC4X32.IfcFlowTerminal = IfcFlowTerminal;\n class IfcFlowTreatmentDevice extends IfcDistributionFlowElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 3508470533;\n }\n }\n IFC4X32.IfcFlowTreatmentDevice = IfcFlowTreatmentDevice;\n class IfcFooting extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 900683007;\n }\n }\n IFC4X32.IfcFooting = IfcFooting;\n class IfcGeotechnicalAssembly extends IfcGeotechnicalElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 2713699986;\n }\n }\n IFC4X32.IfcGeotechnicalAssembly = IfcGeotechnicalAssembly;\n class IfcGrid extends IfcPositioningElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.UAxes = UAxes;\n this.VAxes = VAxes;\n this.WAxes = WAxes;\n this.PredefinedType = PredefinedType;\n this.type = 3009204131;\n }\n }\n IFC4X32.IfcGrid = IfcGrid;\n class IfcHeatExchanger extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3319311131;\n }\n }\n IFC4X32.IfcHeatExchanger = IfcHeatExchanger;\n class IfcHumidifier extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2068733104;\n }\n }\n IFC4X32.IfcHumidifier = IfcHumidifier;\n class IfcInterceptor extends IfcFlowTreatmentDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 4175244083;\n }\n }\n IFC4X32.IfcInterceptor = IfcInterceptor;\n class IfcJunctionBox extends IfcFlowFitting {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2176052936;\n }\n }\n IFC4X32.IfcJunctionBox = IfcJunctionBox;\n class IfcKerb extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, Mountable) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.Mountable = Mountable;\n this.type = 2696325953;\n }\n }\n IFC4X32.IfcKerb = IfcKerb;\n class IfcLamp extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 76236018;\n }\n }\n IFC4X32.IfcLamp = IfcLamp;\n class IfcLightFixture extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 629592764;\n }\n }\n IFC4X32.IfcLightFixture = IfcLightFixture;\n class IfcLinearPositioningElement extends IfcPositioningElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.type = 1154579445;\n }\n }\n IFC4X32.IfcLinearPositioningElement = IfcLinearPositioningElement;\n class IfcLiquidTerminal extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1638804497;\n }\n }\n IFC4X32.IfcLiquidTerminal = IfcLiquidTerminal;\n class IfcMedicalDevice extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1437502449;\n }\n }\n IFC4X32.IfcMedicalDevice = IfcMedicalDevice;\n class IfcMember extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1073191201;\n }\n }\n IFC4X32.IfcMember = IfcMember;\n class IfcMobileTelecommunicationsAppliance extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2078563270;\n }\n }\n IFC4X32.IfcMobileTelecommunicationsAppliance = IfcMobileTelecommunicationsAppliance;\n class IfcMooringDevice extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 234836483;\n }\n }\n IFC4X32.IfcMooringDevice = IfcMooringDevice;\n class IfcMotorConnection extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2474470126;\n }\n }\n IFC4X32.IfcMotorConnection = IfcMotorConnection;\n class IfcNavigationElement extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2182337498;\n }\n }\n IFC4X32.IfcNavigationElement = IfcNavigationElement;\n class IfcOuterBoundaryCurve extends IfcBoundaryCurve {\n constructor(Segments, SelfIntersect) {\n super(Segments, SelfIntersect);\n this.Segments = Segments;\n this.SelfIntersect = SelfIntersect;\n this.type = 144952367;\n }\n }\n IFC4X32.IfcOuterBoundaryCurve = IfcOuterBoundaryCurve;\n class IfcOutlet extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3694346114;\n }\n }\n IFC4X32.IfcOutlet = IfcOutlet;\n class IfcPavement extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1383356374;\n }\n }\n IFC4X32.IfcPavement = IfcPavement;\n class IfcPile extends IfcDeepFoundation {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.ConstructionType = ConstructionType;\n this.type = 1687234759;\n }\n }\n IFC4X32.IfcPile = IfcPile;\n class IfcPipeFitting extends IfcFlowFitting {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 310824031;\n }\n }\n IFC4X32.IfcPipeFitting = IfcPipeFitting;\n class IfcPipeSegment extends IfcFlowSegment {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3612865200;\n }\n }\n IFC4X32.IfcPipeSegment = IfcPipeSegment;\n class IfcPlate extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3171933400;\n }\n }\n IFC4X32.IfcPlate = IfcPlate;\n class IfcProtectiveDevice extends IfcFlowController {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 738039164;\n }\n }\n IFC4X32.IfcProtectiveDevice = IfcProtectiveDevice;\n class IfcProtectiveDeviceTrippingUnitType extends IfcDistributionControlElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 655969474;\n }\n }\n IFC4X32.IfcProtectiveDeviceTrippingUnitType = IfcProtectiveDeviceTrippingUnitType;\n class IfcPump extends IfcFlowMovingDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 90941305;\n }\n }\n IFC4X32.IfcPump = IfcPump;\n class IfcRail extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3290496277;\n }\n }\n IFC4X32.IfcRail = IfcRail;\n class IfcRailing extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2262370178;\n }\n }\n IFC4X32.IfcRailing = IfcRailing;\n class IfcRamp extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3024970846;\n }\n }\n IFC4X32.IfcRamp = IfcRamp;\n class IfcRampFlight extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3283111854;\n }\n }\n IFC4X32.IfcRampFlight = IfcRampFlight;\n class IfcRationalBSplineCurveWithKnots extends IfcBSplineCurveWithKnots {\n constructor(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec, WeightsData) {\n super(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec);\n this.Degree = Degree;\n this.ControlPointsList = ControlPointsList;\n this.CurveForm = CurveForm;\n this.ClosedCurve = ClosedCurve;\n this.SelfIntersect = SelfIntersect;\n this.KnotMultiplicities = KnotMultiplicities;\n this.Knots = Knots;\n this.KnotSpec = KnotSpec;\n this.WeightsData = WeightsData;\n this.type = 1232101972;\n }\n }\n IFC4X32.IfcRationalBSplineCurveWithKnots = IfcRationalBSplineCurveWithKnots;\n class IfcReinforcedSoil extends IfcEarthworksElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3798194928;\n }\n }\n IFC4X32.IfcReinforcedSoil = IfcReinforcedSoil;\n class IfcReinforcingBar extends IfcReinforcingElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, PredefinedType, BarSurface) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.SteelGrade = SteelGrade;\n this.NominalDiameter = NominalDiameter;\n this.CrossSectionArea = CrossSectionArea;\n this.BarLength = BarLength;\n this.PredefinedType = PredefinedType;\n this.BarSurface = BarSurface;\n this.type = 979691226;\n }\n }\n IFC4X32.IfcReinforcingBar = IfcReinforcingBar;\n class IfcReinforcingBarType extends IfcReinforcingElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, BarLength, BarSurface, BendingShapeCode, BendingParameters) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.NominalDiameter = NominalDiameter;\n this.CrossSectionArea = CrossSectionArea;\n this.BarLength = BarLength;\n this.BarSurface = BarSurface;\n this.BendingShapeCode = BendingShapeCode;\n this.BendingParameters = BendingParameters;\n this.type = 2572171363;\n }\n }\n IFC4X32.IfcReinforcingBarType = IfcReinforcingBarType;\n class IfcRoof extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2016517767;\n }\n }\n IFC4X32.IfcRoof = IfcRoof;\n class IfcSanitaryTerminal extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3053780830;\n }\n }\n IFC4X32.IfcSanitaryTerminal = IfcSanitaryTerminal;\n class IfcSensorType extends IfcDistributionControlElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 1783015770;\n }\n }\n IFC4X32.IfcSensorType = IfcSensorType;\n class IfcShadingDevice extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1329646415;\n }\n }\n IFC4X32.IfcShadingDevice = IfcShadingDevice;\n class IfcSignal extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 991950508;\n }\n }\n IFC4X32.IfcSignal = IfcSignal;\n class IfcSlab extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1529196076;\n }\n }\n IFC4X32.IfcSlab = IfcSlab;\n class IfcSolarDevice extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3420628829;\n }\n }\n IFC4X32.IfcSolarDevice = IfcSolarDevice;\n class IfcSpaceHeater extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1999602285;\n }\n }\n IFC4X32.IfcSpaceHeater = IfcSpaceHeater;\n class IfcStackTerminal extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1404847402;\n }\n }\n IFC4X32.IfcStackTerminal = IfcStackTerminal;\n class IfcStair extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 331165859;\n }\n }\n IFC4X32.IfcStair = IfcStair;\n class IfcStairFlight extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRisers, NumberOfTreads, RiserHeight, TreadLength, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.NumberOfRisers = NumberOfRisers;\n this.NumberOfTreads = NumberOfTreads;\n this.RiserHeight = RiserHeight;\n this.TreadLength = TreadLength;\n this.PredefinedType = PredefinedType;\n this.type = 4252922144;\n }\n }\n IFC4X32.IfcStairFlight = IfcStairFlight;\n class IfcStructuralAnalysisModel extends IfcSystem {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults, SharedPlacement) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.PredefinedType = PredefinedType;\n this.OrientationOf2DPlane = OrientationOf2DPlane;\n this.LoadedBy = LoadedBy;\n this.HasResults = HasResults;\n this.SharedPlacement = SharedPlacement;\n this.type = 2515109513;\n }\n }\n IFC4X32.IfcStructuralAnalysisModel = IfcStructuralAnalysisModel;\n class IfcStructuralLoadCase extends IfcStructuralLoadGroup {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose, SelfWeightCoefficients) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.PredefinedType = PredefinedType;\n this.ActionType = ActionType;\n this.ActionSource = ActionSource;\n this.Coefficient = Coefficient;\n this.Purpose = Purpose;\n this.SelfWeightCoefficients = SelfWeightCoefficients;\n this.type = 385403989;\n }\n }\n IFC4X32.IfcStructuralLoadCase = IfcStructuralLoadCase;\n class IfcStructuralPlanarAction extends IfcStructuralSurfaceAction {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.AppliedLoad = AppliedLoad;\n this.GlobalOrLocal = GlobalOrLocal;\n this.DestabilizingLoad = DestabilizingLoad;\n this.ProjectedOrTrue = ProjectedOrTrue;\n this.PredefinedType = PredefinedType;\n this.type = 1621171031;\n }\n }\n IFC4X32.IfcStructuralPlanarAction = IfcStructuralPlanarAction;\n class IfcSwitchingDevice extends IfcFlowController {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1162798199;\n }\n }\n IFC4X32.IfcSwitchingDevice = IfcSwitchingDevice;\n class IfcTank extends IfcFlowStorageDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 812556717;\n }\n }\n IFC4X32.IfcTank = IfcTank;\n class IfcTrackElement extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3425753595;\n }\n }\n IFC4X32.IfcTrackElement = IfcTrackElement;\n class IfcTransformer extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3825984169;\n }\n }\n IFC4X32.IfcTransformer = IfcTransformer;\n class IfcTransportElement extends IfcTransportationDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1620046519;\n }\n }\n IFC4X32.IfcTransportElement = IfcTransportElement;\n class IfcTubeBundle extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3026737570;\n }\n }\n IFC4X32.IfcTubeBundle = IfcTubeBundle;\n class IfcUnitaryControlElementType extends IfcDistributionControlElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3179687236;\n }\n }\n IFC4X32.IfcUnitaryControlElementType = IfcUnitaryControlElementType;\n class IfcUnitaryEquipment extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 4292641817;\n }\n }\n IFC4X32.IfcUnitaryEquipment = IfcUnitaryEquipment;\n class IfcValve extends IfcFlowController {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 4207607924;\n }\n }\n IFC4X32.IfcValve = IfcValve;\n class IfcWall extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2391406946;\n }\n }\n IFC4X32.IfcWall = IfcWall;\n class IfcWallStandardCase extends IfcWall {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3512223829;\n }\n }\n IFC4X32.IfcWallStandardCase = IfcWallStandardCase;\n class IfcWasteTerminal extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 4237592921;\n }\n }\n IFC4X32.IfcWasteTerminal = IfcWasteTerminal;\n class IfcWindow extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.OverallHeight = OverallHeight;\n this.OverallWidth = OverallWidth;\n this.PredefinedType = PredefinedType;\n this.PartitioningType = PartitioningType;\n this.UserDefinedPartitioningType = UserDefinedPartitioningType;\n this.type = 3304561284;\n }\n }\n IFC4X32.IfcWindow = IfcWindow;\n class IfcActuatorType extends IfcDistributionControlElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 2874132201;\n }\n }\n IFC4X32.IfcActuatorType = IfcActuatorType;\n class IfcAirTerminal extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1634111441;\n }\n }\n IFC4X32.IfcAirTerminal = IfcAirTerminal;\n class IfcAirTerminalBox extends IfcFlowController {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 177149247;\n }\n }\n IFC4X32.IfcAirTerminalBox = IfcAirTerminalBox;\n class IfcAirToAirHeatRecovery extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2056796094;\n }\n }\n IFC4X32.IfcAirToAirHeatRecovery = IfcAirToAirHeatRecovery;\n class IfcAlarmType extends IfcDistributionControlElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 3001207471;\n }\n }\n IFC4X32.IfcAlarmType = IfcAlarmType;\n class IfcAlignment extends IfcLinearPositioningElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.PredefinedType = PredefinedType;\n this.type = 325726236;\n }\n }\n IFC4X32.IfcAlignment = IfcAlignment;\n class IfcAudioVisualAppliance extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 277319702;\n }\n }\n IFC4X32.IfcAudioVisualAppliance = IfcAudioVisualAppliance;\n class IfcBeam extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 753842376;\n }\n }\n IFC4X32.IfcBeam = IfcBeam;\n class IfcBearing extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 4196446775;\n }\n }\n IFC4X32.IfcBearing = IfcBearing;\n class IfcBoiler extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 32344328;\n }\n }\n IFC4X32.IfcBoiler = IfcBoiler;\n class IfcBorehole extends IfcGeotechnicalAssembly {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 3314249567;\n }\n }\n IFC4X32.IfcBorehole = IfcBorehole;\n class IfcBuildingElementProxy extends IfcBuiltElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1095909175;\n }\n }\n IFC4X32.IfcBuildingElementProxy = IfcBuildingElementProxy;\n class IfcBurner extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2938176219;\n }\n }\n IFC4X32.IfcBurner = IfcBurner;\n class IfcCableCarrierFitting extends IfcFlowFitting {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 635142910;\n }\n }\n IFC4X32.IfcCableCarrierFitting = IfcCableCarrierFitting;\n class IfcCableCarrierSegment extends IfcFlowSegment {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3758799889;\n }\n }\n IFC4X32.IfcCableCarrierSegment = IfcCableCarrierSegment;\n class IfcCableFitting extends IfcFlowFitting {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1051757585;\n }\n }\n IFC4X32.IfcCableFitting = IfcCableFitting;\n class IfcCableSegment extends IfcFlowSegment {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 4217484030;\n }\n }\n IFC4X32.IfcCableSegment = IfcCableSegment;\n class IfcCaissonFoundation extends IfcDeepFoundation {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3999819293;\n }\n }\n IFC4X32.IfcCaissonFoundation = IfcCaissonFoundation;\n class IfcChiller extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3902619387;\n }\n }\n IFC4X32.IfcChiller = IfcChiller;\n class IfcCoil extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 639361253;\n }\n }\n IFC4X32.IfcCoil = IfcCoil;\n class IfcCommunicationsAppliance extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3221913625;\n }\n }\n IFC4X32.IfcCommunicationsAppliance = IfcCommunicationsAppliance;\n class IfcCompressor extends IfcFlowMovingDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3571504051;\n }\n }\n IFC4X32.IfcCompressor = IfcCompressor;\n class IfcCondenser extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2272882330;\n }\n }\n IFC4X32.IfcCondenser = IfcCondenser;\n class IfcControllerType extends IfcDistributionControlElementType {\n constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ApplicableOccurrence = ApplicableOccurrence;\n this.HasPropertySets = HasPropertySets;\n this.RepresentationMaps = RepresentationMaps;\n this.Tag = Tag;\n this.ElementType = ElementType;\n this.PredefinedType = PredefinedType;\n this.type = 578613899;\n }\n }\n IFC4X32.IfcControllerType = IfcControllerType;\n class IfcConveyorSegment extends IfcFlowSegment {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3460952963;\n }\n }\n IFC4X32.IfcConveyorSegment = IfcConveyorSegment;\n class IfcCooledBeam extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 4136498852;\n }\n }\n IFC4X32.IfcCooledBeam = IfcCooledBeam;\n class IfcCoolingTower extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3640358203;\n }\n }\n IFC4X32.IfcCoolingTower = IfcCoolingTower;\n class IfcDamper extends IfcFlowController {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 4074379575;\n }\n }\n IFC4X32.IfcDamper = IfcDamper;\n class IfcDistributionBoard extends IfcFlowController {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3693000487;\n }\n }\n IFC4X32.IfcDistributionBoard = IfcDistributionBoard;\n class IfcDistributionChamberElement extends IfcDistributionFlowElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1052013943;\n }\n }\n IFC4X32.IfcDistributionChamberElement = IfcDistributionChamberElement;\n class IfcDistributionCircuit extends IfcDistributionSystem {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.LongName = LongName;\n this.PredefinedType = PredefinedType;\n this.type = 562808652;\n }\n }\n IFC4X32.IfcDistributionCircuit = IfcDistributionCircuit;\n class IfcDistributionControlElement extends IfcDistributionElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 1062813311;\n }\n }\n IFC4X32.IfcDistributionControlElement = IfcDistributionControlElement;\n class IfcDuctFitting extends IfcFlowFitting {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 342316401;\n }\n }\n IFC4X32.IfcDuctFitting = IfcDuctFitting;\n class IfcDuctSegment extends IfcFlowSegment {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3518393246;\n }\n }\n IFC4X32.IfcDuctSegment = IfcDuctSegment;\n class IfcDuctSilencer extends IfcFlowTreatmentDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1360408905;\n }\n }\n IFC4X32.IfcDuctSilencer = IfcDuctSilencer;\n class IfcElectricAppliance extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1904799276;\n }\n }\n IFC4X32.IfcElectricAppliance = IfcElectricAppliance;\n class IfcElectricDistributionBoard extends IfcFlowController {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 862014818;\n }\n }\n IFC4X32.IfcElectricDistributionBoard = IfcElectricDistributionBoard;\n class IfcElectricFlowStorageDevice extends IfcFlowStorageDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3310460725;\n }\n }\n IFC4X32.IfcElectricFlowStorageDevice = IfcElectricFlowStorageDevice;\n class IfcElectricFlowTreatmentDevice extends IfcFlowTreatmentDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 24726584;\n }\n }\n IFC4X32.IfcElectricFlowTreatmentDevice = IfcElectricFlowTreatmentDevice;\n class IfcElectricGenerator extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 264262732;\n }\n }\n IFC4X32.IfcElectricGenerator = IfcElectricGenerator;\n class IfcElectricMotor extends IfcEnergyConversionDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 402227799;\n }\n }\n IFC4X32.IfcElectricMotor = IfcElectricMotor;\n class IfcElectricTimeControl extends IfcFlowController {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1003880860;\n }\n }\n IFC4X32.IfcElectricTimeControl = IfcElectricTimeControl;\n class IfcFan extends IfcFlowMovingDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3415622556;\n }\n }\n IFC4X32.IfcFan = IfcFan;\n class IfcFilter extends IfcFlowTreatmentDevice {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 819412036;\n }\n }\n IFC4X32.IfcFilter = IfcFilter;\n class IfcFireSuppressionTerminal extends IfcFlowTerminal {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 1426591983;\n }\n }\n IFC4X32.IfcFireSuppressionTerminal = IfcFireSuppressionTerminal;\n class IfcFlowInstrument extends IfcDistributionControlElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 182646315;\n }\n }\n IFC4X32.IfcFlowInstrument = IfcFlowInstrument;\n class IfcGeomodel extends IfcGeotechnicalAssembly {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 2680139844;\n }\n }\n IFC4X32.IfcGeomodel = IfcGeomodel;\n class IfcGeoslice extends IfcGeotechnicalAssembly {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.type = 1971632696;\n }\n }\n IFC4X32.IfcGeoslice = IfcGeoslice;\n class IfcProtectiveDeviceTrippingUnit extends IfcDistributionControlElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 2295281155;\n }\n }\n IFC4X32.IfcProtectiveDeviceTrippingUnit = IfcProtectiveDeviceTrippingUnit;\n class IfcSensor extends IfcDistributionControlElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 4086658281;\n }\n }\n IFC4X32.IfcSensor = IfcSensor;\n class IfcUnitaryControlElement extends IfcDistributionControlElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 630975310;\n }\n }\n IFC4X32.IfcUnitaryControlElement = IfcUnitaryControlElement;\n class IfcActuator extends IfcDistributionControlElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 4288193352;\n }\n }\n IFC4X32.IfcActuator = IfcActuator;\n class IfcAlarm extends IfcDistributionControlElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 3087945054;\n }\n }\n IFC4X32.IfcAlarm = IfcAlarm;\n class IfcController extends IfcDistributionControlElement {\n constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {\n super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);\n this.GlobalId = GlobalId;\n this.OwnerHistory = OwnerHistory;\n this.Name = Name;\n this.Description = Description;\n this.ObjectType = ObjectType;\n this.ObjectPlacement = ObjectPlacement;\n this.Representation = Representation;\n this.Tag = Tag;\n this.PredefinedType = PredefinedType;\n this.type = 25142252;\n }\n }\n IFC4X32.IfcController = IfcController;\n})(IFC4X3 || (IFC4X3 = {}));\n\n// dist/helpers/properties.ts\nvar PropsNames = {\n aggregates: {\n name: IFCRELAGGREGATES,\n relating: \"RelatingObject\",\n related: \"RelatedObjects\",\n key: \"children\"\n },\n spatial: {\n name: IFCRELCONTAINEDINSPATIALSTRUCTURE,\n relating: \"RelatingStructure\",\n related: \"RelatedElements\",\n key: \"children\"\n },\n psets: {\n name: IFCRELDEFINESBYPROPERTIES,\n relating: \"RelatingPropertyDefinition\",\n related: \"RelatedObjects\",\n key: \"IsDefinedBy\"\n },\n materials: {\n name: IFCRELASSOCIATESMATERIAL,\n relating: \"RelatingMaterial\",\n related: \"RelatedObjects\",\n key: \"HasAssociations\"\n },\n type: {\n name: IFCRELDEFINESBYTYPE,\n relating: \"RelatingType\",\n related: \"RelatedObjects\",\n key: \"IsDefinedBy\"\n }\n};\nvar Properties = class {\n constructor(api) {\n this.api = api;\n }\n getItemProperties(modelID, id, recursive = false, inverse = false) {\n return __async(this, null, function* () {\n return this.api.GetLine(modelID, id, recursive, inverse);\n });\n }\n getPropertySets(modelID, elementID = 0, recursive = false, includeTypeProperties = false) {\n return __async(this, null, function* () {\n if (includeTypeProperties) {\n let types = yield this.getTypeProperties(modelID, elementID, false);\n let results = [];\n for (let t of types)\n results.push(...yield this.getPropertySets(modelID, t.expressID, recursive));\n return results;\n } else\n return yield this.getRelatedProperties(modelID, elementID, PropsNames.psets, recursive);\n });\n }\n setPropertySets(modelID, elementID, psetID) {\n return __async(this, null, function* () {\n return this.setItemProperties(modelID, elementID, psetID, PropsNames.psets);\n });\n }\n getTypeProperties(modelID, elementID = 0, recursive = false) {\n return __async(this, null, function* () {\n if (this.api.GetModelSchema(modelID) == \"IFC2X3\") {\n return yield this.getRelatedProperties(modelID, elementID, PropsNames.type, recursive);\n } else {\n return yield this.getRelatedProperties(modelID, elementID, __spreadProps(__spreadValues({}, PropsNames.type), { key: \"IsTypedBy\" }), recursive);\n }\n });\n }\n getMaterialsProperties(modelID, elementID = 0, recursive = false, includeTypeMaterials = false) {\n return __async(this, null, function* () {\n if (includeTypeMaterials) {\n let types = yield this.getTypeProperties(modelID, elementID, false);\n let results = [];\n for (let t of types)\n results.push(...yield this.getMaterialsProperties(modelID, t.expressID, recursive));\n return results;\n } else\n return yield this.getRelatedProperties(modelID, elementID, PropsNames.materials, recursive);\n });\n }\n setMaterialsProperties(modelID, elementID, materialID) {\n return __async(this, null, function* () {\n return this.setItemProperties(modelID, elementID, materialID, PropsNames.materials);\n });\n }\n getSpatialStructure(modelID, includeProperties = false) {\n return __async(this, null, function* () {\n const chunks = yield this.getSpatialTreeChunks(modelID);\n const allLines = yield this.api.GetLineIDsWithType(modelID, IFCPROJECT);\n const projectID = allLines.get(0);\n const project = Properties.newIfcProject(projectID);\n yield this.getSpatialNode(modelID, project, chunks, includeProperties);\n return project;\n });\n }\n getRelatedProperties(modelID, elementID, propsName, recursive = false) {\n return __async(this, null, function* () {\n const result = [];\n let rels = null;\n if (elementID !== 0)\n rels = yield this.api.GetLine(modelID, elementID, false, true, propsName.key)[propsName.key];\n else {\n let vec = this.api.GetLineIDsWithType(modelID, propsName.name);\n rels = [];\n for (let i = 0; i < vec.size(); ++i)\n rels.push({ value: vec.get(i) });\n }\n if (rels == null)\n return result;\n if (!Array.isArray(rels))\n rels = [rels];\n for (let i = 0; i < rels.length; i++) {\n let propSetIds = yield this.api.GetLine(modelID, rels[i].value, false, false)[propsName.relating];\n if (propSetIds == null)\n continue;\n if (!Array.isArray(propSetIds))\n propSetIds = [propSetIds];\n for (let x = 0; x < propSetIds.length; x++) {\n result.push(yield this.api.GetLine(modelID, propSetIds[x].value, recursive));\n }\n }\n return result;\n });\n }\n getChunks(modelID, chunks, propNames) {\n return __async(this, null, function* () {\n const relation = yield this.api.GetLineIDsWithType(modelID, propNames.name, true);\n for (let i = 0; i < relation.size(); i++) {\n const rel = yield this.api.GetLine(modelID, relation.get(i), false);\n this.saveChunk(chunks, propNames, rel);\n }\n });\n }\n static newIfcProject(id) {\n return {\n expressID: id,\n type: \"IFCPROJECT\",\n children: []\n };\n }\n getSpatialNode(modelID, node, treeChunks, includeProperties) {\n return __async(this, null, function* () {\n yield this.getChildren(modelID, node, treeChunks, PropsNames.aggregates, includeProperties);\n yield this.getChildren(modelID, node, treeChunks, PropsNames.spatial, includeProperties);\n });\n }\n getChildren(modelID, node, treeChunks, propNames, includeProperties) {\n return __async(this, null, function* () {\n const children = treeChunks[node.expressID];\n if (children == void 0)\n return;\n const prop = propNames.key;\n const nodes = [];\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n let node2 = this.newNode(child, this.api.GetLineType(modelID, child));\n if (includeProperties) {\n const properties = yield this.getItemProperties(modelID, node2.expressID);\n node2 = __spreadValues(__spreadValues({}, properties), node2);\n }\n yield this.getSpatialNode(modelID, node2, treeChunks, includeProperties);\n nodes.push(node2);\n }\n node[prop] = nodes;\n });\n }\n newNode(id, type) {\n return {\n expressID: id,\n type: this.api.GetNameFromTypeCode(type),\n children: []\n };\n }\n getSpatialTreeChunks(modelID) {\n return __async(this, null, function* () {\n const treeChunks = {};\n yield this.getChunks(modelID, treeChunks, PropsNames.aggregates);\n yield this.getChunks(modelID, treeChunks, PropsNames.spatial);\n return treeChunks;\n });\n }\n saveChunk(chunks, propNames, rel) {\n const relating = rel[propNames.relating].value;\n const related = rel[propNames.related].map((r) => r.value);\n if (chunks[relating] == void 0) {\n chunks[relating] = related;\n } else {\n chunks[relating] = chunks[relating].concat(related);\n }\n }\n setItemProperties(modelID, elementID, propID, propsName) {\n return __async(this, null, function* () {\n if (!Array.isArray(elementID))\n elementID = [elementID];\n if (!Array.isArray(propID))\n propID = [propID];\n let foundRel = 0;\n const rels = [];\n const elements = [];\n for (const elID of elementID) {\n const element = yield this.api.GetLine(modelID, elID, false, true);\n if (!element[propsName.key])\n continue;\n elements.push(element);\n }\n if (elements.length < 1)\n return false;\n const relations = this.api.GetLineIDsWithType(modelID, propsName.name);\n for (let i = 0; i < relations.size(); ++i) {\n const rel = yield this.api.GetLine(modelID, relations.get(i));\n if (propID.includes(Number(rel[propsName.relating].value))) {\n rels.push(rel);\n foundRel++;\n }\n if (foundRel == propID.length)\n break;\n }\n for (const element of elements) {\n for (const rel of rels) {\n if (!element[propsName.key].some((e) => e.value === rel.expressID))\n element[propsName.key].push({ type: 5, value: rel.expressID });\n if (!rel[propsName.related].some((e) => e.value === element.expressID)) {\n rel[propsName.related].push({ type: 5, value: element.expressID });\n this.api.WriteLine(modelID, rel);\n }\n }\n this.api.WriteLine(modelID, element);\n }\n return true;\n });\n }\n};\n\n// dist/helpers/log.ts\nvar LogLevel;\n(function(LogLevel2) {\n LogLevel2[LogLevel2[\"LOG_LEVEL_DEBUG\"] = 1] = \"LOG_LEVEL_DEBUG\";\n LogLevel2[LogLevel2[\"LOG_LEVEL_WARN\"] = 3] = \"LOG_LEVEL_WARN\";\n LogLevel2[LogLevel2[\"LOG_LEVEL_ERROR\"] = 4] = \"LOG_LEVEL_ERROR\";\n LogLevel2[LogLevel2[\"LOG_LEVEL_OFF\"] = 6] = \"LOG_LEVEL_OFF\";\n})(LogLevel || (LogLevel = {}));\nvar Log = class {\n static setLogLevel(level) {\n this.logLevel = level;\n }\n static log(msg, ...args) {\n if (this.logLevel <= 4) {\n console.log(msg, ...args);\n }\n }\n static debug(msg, ...args) {\n if (this.logLevel <= 1) {\n console.trace(\"DEBUG: \", msg, ...args);\n }\n }\n static warn(msg, ...args) {\n if (this.logLevel <= 3) {\n console.warn(\"WARN: \", msg, ...args);\n }\n }\n static error(msg, ...args) {\n if (this.logLevel <= 4) {\n console.error(\"ERROR: \", msg, ...args);\n }\n }\n};\nLog.logLevel = 4;\n\n// dist/web-ifc-api.ts\nif (false)\n __WASM_PATH__ = \"./web-ifc\";\nvar WebIFCWasm;\nif (typeof self !== \"undefined\" && self.crossOriginIsolated) {\n try {\n WebIFCWasm = require_web_ifc_mt();\n } catch (ex) {\n WebIFCWasm = require_web_ifc();\n }\n} else\n WebIFCWasm = require_web_ifc();\nvar UNKNOWN = 0;\nvar STRING = 1;\nvar LABEL = 2;\nvar ENUM = 3;\nvar REAL = 4;\nvar REF = 5;\nvar EMPTY = 6;\nvar SET_BEGIN = 7;\nvar SET_END = 8;\nvar LINE_END = 9;\nvar INTEGER = 10;\nfunction ms() {\n return new Date().getTime();\n}\nvar IfcAPI2 = class {\n constructor() {\n this.wasmModule = void 0;\n this.wasmPath = \"\";\n this.isWasmPathAbsolute = false;\n this.modelSchemaList = [];\n this.modelSchemaNameList = [];\n this.ifcGuidMap = new Map();\n this.deletedLines = new Map();\n this.properties = new Properties(this);\n }\n Init(customLocateFileHandler) {\n return __async(this, null, function* () {\n if (WebIFCWasm) {\n let locateFileHandler = (path, prefix) => {\n if (path.endsWith(\".wasm\")) {\n if (this.isWasmPathAbsolute) {\n return this.wasmPath + path;\n }\n return prefix + this.wasmPath + path;\n }\n return prefix + path;\n };\n this.wasmModule = yield WebIFCWasm({ noInitialRun: true, locateFile: customLocateFileHandler || locateFileHandler });\n this.SetLogLevel(LogLevel.LOG_LEVEL_ERROR);\n } else {\n Log.error(`Could not find wasm module at './web-ifc' from web-ifc-api.ts`);\n }\n });\n }\n OpenModels(dataSets, settings) {\n let s = __spreadValues({\n MEMORY_LIMIT: 2147483648\n }, settings);\n s.MEMORY_LIMIT = s.MEMORY_LIMIT / dataSets.length;\n let modelIDs = [];\n for (let dataSet of dataSets)\n modelIDs.push(this.OpenModel(dataSet, s));\n return modelIDs;\n }\n CreateSettings(settings) {\n let s = __spreadValues({\n OPTIMIZE_PROFILES: false,\n COORDINATE_TO_ORIGIN: false,\n CIRCLE_SEGMENTS: 12,\n TAPE_SIZE: 67108864,\n MEMORY_LIMIT: 2147483648\n }, settings);\n let deprecated = [\"USE_FAST_BOOLS\", \"CIRCLE_SEGMENTS_LOW\", \"CIRCLE_SEGMENTS_MEDIUM\", \"CIRCLE_SEGMENTS_HIGH\"];\n for (let d in deprecated) {\n if (d in s) {\n Log.warn(\"Use of deprecated settings \" + d + \" detected\");\n }\n }\n return s;\n }\n LookupSchemaId(schemaName) {\n for (var i = 0; i < SchemaNames.length; i++) {\n if (typeof SchemaNames[i] !== \"undefined\") {\n for (var j = 0; j < SchemaNames[i].length; j++) {\n if (SchemaNames[i][j] == schemaName)\n return i;\n }\n }\n }\n return -1;\n }\n OpenModel(data, settings) {\n let s = this.CreateSettings(settings);\n let result = this.wasmModule.OpenModel(s, (destPtr, offsetInSrc, destSize) => {\n let srcSize = Math.min(data.byteLength - offsetInSrc, destSize);\n let dest = this.wasmModule.HEAPU8.subarray(destPtr, destPtr + srcSize);\n let src = data.subarray(offsetInSrc, offsetInSrc + srcSize);\n dest.set(src);\n return srcSize;\n });\n this.deletedLines.set(result, new Set());\n var schemaName = this.GetHeaderLine(result, FILE_SCHEMA).arguments[0][0].value;\n this.modelSchemaList[result] = this.LookupSchemaId(schemaName);\n this.modelSchemaNameList[result] = schemaName;\n if (this.modelSchemaList[result] == -1) {\n Log.error(\"Unsupported Schema:\" + schemaName);\n this.CloseModel(result);\n return -1;\n }\n Log.debug(\"Parsing Model using \" + schemaName + \" Schema\");\n return result;\n }\n OpenModelFromCallback(callback, settings) {\n let s = this.CreateSettings(settings);\n let result = this.wasmModule.OpenModel(s, (destPtr, offsetInSrc, destSize) => {\n let data = callback(offsetInSrc, destSize);\n let srcSize = Math.min(data.byteLength, destSize);\n let dest = this.wasmModule.HEAPU8.subarray(destPtr, destPtr + srcSize);\n dest.set(data);\n return srcSize;\n });\n this.deletedLines.set(result, new Set());\n var schemaName = this.GetHeaderLine(result, FILE_SCHEMA).arguments[0][0].value;\n this.modelSchemaList[result] = this.LookupSchemaId(schemaName);\n this.modelSchemaNameList[result] = schemaName;\n if (this.modelSchemaList[result] == -1) {\n Log.error(\"Unsupported Schema:\" + schemaName);\n this.CloseModel(result);\n return -1;\n }\n Log.debug(\"Parsing Model using \" + schemaName + \" Schema\");\n return result;\n }\n GetModelSchema(modelID) {\n return this.modelSchemaNameList[modelID];\n }\n CreateModel(model, settings) {\n var _a, _b, _c;\n let s = this.CreateSettings(settings);\n let result = this.wasmModule.CreateModel(s);\n this.modelSchemaList[result] = this.LookupSchemaId(model.schema);\n this.modelSchemaNameList[result] = model.schema;\n if (this.modelSchemaList[result] == -1) {\n Log.error(\"Unsupported Schema:\" + model.schema);\n this.CloseModel(result);\n return -1;\n }\n this.deletedLines.set(result, new Set());\n const modelName = model.name || \"web-ifc-model-\" + result + \".ifc\";\n const timestamp = new Date().toISOString().slice(0, 19);\n const description = ((_a = model.description) == null ? void 0 : _a.map((d) => ({ type: STRING, value: d }))) || [{ type: STRING, value: \"ViewDefinition [CoordinationView]\" }];\n const authors = ((_b = model.authors) == null ? void 0 : _b.map((a) => ({ type: STRING, value: a }))) || [null];\n const orgs = ((_c = model.organizations) == null ? void 0 : _c.map((o) => ({ type: STRING, value: o }))) || [null];\n const auth = model.authorization ? { type: STRING, value: model.authorization } : null;\n this.wasmModule.WriteHeaderLine(result, FILE_DESCRIPTION, [\n description,\n { type: STRING, value: \"2;1\" }\n ]);\n this.wasmModule.WriteHeaderLine(result, FILE_NAME, [\n { type: STRING, value: modelName },\n { type: STRING, value: timestamp },\n authors,\n orgs,\n { type: STRING, value: \"ifcjs/web-ifc-api\" },\n { type: STRING, value: \"ifcjs/web-ifc-api\" },\n auth\n ]);\n this.wasmModule.WriteHeaderLine(result, FILE_SCHEMA, [[{ type: STRING, value: model.schema }]]);\n return result;\n }\n SaveModel(modelID) {\n let dataBuffer = new Uint8Array(0);\n this.wasmModule.SaveModel(modelID, (srcPtr, srcSize) => {\n let src = this.wasmModule.HEAPU8.subarray(srcPtr, srcPtr + srcSize);\n dataBuffer = new Uint8Array(srcSize);\n dataBuffer.set(src, 0);\n });\n return dataBuffer;\n }\n ExportFileAsIFC(modelID) {\n Log.warn(\"ExportFileAsIFC is deprecated, use SaveModel instead\");\n return this.SaveModel(modelID);\n }\n GetGeometry(modelID, geometryExpressID) {\n return this.wasmModule.GetGeometry(modelID, geometryExpressID);\n }\n GetHeaderLine(modelID, headerType) {\n return this.wasmModule.GetHeaderLine(modelID, headerType);\n }\n GetAllTypesOfModel(modelID) {\n let typesNames = [];\n const elements = Object.keys(FromRawLineData[this.modelSchemaList[modelID]]).map((e) => parseInt(e));\n for (let i = 0; i < elements.length; i++) {\n const lines = this.GetLineIDsWithType(modelID, elements[i]);\n if (lines.size() > 0)\n typesNames.push({ typeID: elements[i], typeName: this.wasmModule.GetNameFromTypeCode(elements[i]) });\n }\n return typesNames;\n }\n GetLine(modelID, expressID, flatten = false, inverse = false, inversePropKey = null) {\n let expressCheck = this.wasmModule.ValidateExpressID(modelID, expressID);\n if (!expressCheck) {\n return;\n }\n let rawLineData = this.GetRawLineData(modelID, expressID);\n let lineData;\n try {\n lineData = FromRawLineData[this.modelSchemaList[modelID]][rawLineData.type](rawLineData.arguments);\n lineData.expressID = rawLineData.ID;\n } catch (e) {\n Log.error(\"Invalid IFC Line:\" + expressID);\n if (rawLineData.ID) {\n throw e;\n } else {\n return;\n }\n }\n if (flatten) {\n this.FlattenLine(modelID, lineData);\n }\n let inverseData = InversePropertyDef[this.modelSchemaList[modelID]][rawLineData.type];\n if (inverse && inverseData != null) {\n for (let inverseProp of inverseData) {\n if (inversePropKey && inverseProp[0] !== inversePropKey)\n continue;\n if (!inverseProp[3])\n lineData[inverseProp[0]] = null;\n else\n lineData[inverseProp[0]] = [];\n let targetTypes = [inverseProp[1]];\n if (typeof InheritanceDef[this.modelSchemaList[modelID]][inverseProp[1]] != \"undefined\") {\n targetTypes = targetTypes.concat(InheritanceDef[this.modelSchemaList[modelID]][inverseProp[1]]);\n }\n let inverseIDs = this.wasmModule.GetInversePropertyForItem(modelID, expressID, targetTypes, inverseProp[2], inverseProp[3]);\n if (!inverseProp[3] && inverseIDs.size() > 0) {\n if (!flatten)\n lineData[inverseProp[0]] = { type: 5, value: inverseIDs.get(0) };\n else\n lineData[inverseProp[0]] = this.GetLine(modelID, inverseIDs.get(0));\n } else {\n for (let x = 0; x < inverseIDs.size(); x++) {\n if (!flatten)\n lineData[inverseProp[0]].push({ type: 5, value: inverseIDs.get(x) });\n else\n lineData[inverseProp[0]].push(this.GetLine(modelID, inverseIDs.get(x)));\n }\n }\n }\n }\n return lineData;\n }\n GetNextExpressID(modelID, expressID) {\n return this.wasmModule.GetNextExpressID(modelID, expressID);\n }\n GetAndClearErrors(_) {\n Log.warn(\"GetAndClearErrors is deprecated and will be removed in the next version\");\n return { size: function() {\n return 0;\n }, get: function(_2) {\n return {};\n } };\n }\n CreateIfcEntity(modelID, type, ...args) {\n return Constructors[this.modelSchemaList[modelID]][type](args);\n }\n CreateIfcType(modelID, type, value) {\n return TypeInitialisers[this.modelSchemaList[modelID]][type](value);\n }\n GetNameFromTypeCode(type) {\n return this.wasmModule.GetNameFromTypeCode(type);\n }\n GetTypeCodeFromName(typeName) {\n return this.wasmModule.GetTypeCodeFromName(typeName);\n }\n IsIfcElement(type) {\n return this.wasmModule.IsIfcElement(type);\n }\n GetIfcEntityList(modelID) {\n return Object.keys(FromRawLineData[this.modelSchemaList[modelID]]).map((x) => parseInt(x));\n }\n DeleteLine(modelID, expressID) {\n this.wasmModule.RemoveLine(modelID, expressID);\n this.deletedLines.get(modelID).add(expressID);\n }\n WriteLines(modelID, lineObjects) {\n this.wasmModule.ExtendLineStorage(modelID, lineObjects.length);\n for (let lineObject of lineObjects)\n this.WriteLine(modelID, lineObject);\n }\n WriteLine(modelID, lineObject) {\n if (lineObject.expressID != -1 && this.deletedLines.get(modelID).has(lineObject.expressID)) {\n Log.error(`Cannot re-use deleted express ID`);\n return;\n }\n if (lineObject.expressID != -1 && lineObject.expressID <= this.GetMaxExpressID(modelID) && this.GetLineType(modelID, lineObject.expressID) != lineObject.type && this.GetLineType(modelID, lineObject.expressID) != 0) {\n Log.error(`Cannot change type of existing IFC Line`);\n return;\n }\n let property;\n for (property in lineObject) {\n const lineProperty = lineObject[property];\n if (lineProperty && lineProperty.expressID !== void 0) {\n this.WriteLine(modelID, lineProperty);\n lineObject[property] = new Handle(lineProperty.expressID);\n } else if (Array.isArray(lineProperty) && lineProperty.length > 0) {\n for (let i = 0; i < lineProperty.length; i++) {\n if (lineProperty[i].expressID !== void 0) {\n this.WriteLine(modelID, lineProperty[i]);\n lineObject[property][i] = new Handle(lineProperty[i].expressID);\n }\n }\n }\n }\n if (lineObject.expressID === void 0 || lineObject.expressID < 0) {\n lineObject.expressID = this.GetMaxExpressID(modelID) + 1;\n }\n let rawLineData = {\n ID: lineObject.expressID,\n type: lineObject.type,\n arguments: ToRawLineData[this.modelSchemaList[modelID]][lineObject.type](lineObject)\n };\n this.WriteRawLineData(modelID, rawLineData);\n }\n FlattenLine(modelID, line) {\n Object.keys(line).forEach((propertyName) => {\n let property = line[propertyName];\n if (property && property.type === 5) {\n if (property.value)\n line[propertyName] = this.GetLine(modelID, property.value, true);\n } else if (Array.isArray(property) && property.length > 0 && property[0] && property[0].type === 5) {\n for (let i = 0; i < property.length; i++) {\n if (property[i].value)\n line[propertyName][i] = this.GetLine(modelID, property[i].value, true);\n }\n }\n });\n }\n GetRawLineData(modelID, expressID) {\n return this.wasmModule.GetLine(modelID, expressID);\n }\n WriteRawLineData(modelID, data) {\n this.wasmModule.WriteLine(modelID, data.ID, data.type, data.arguments);\n }\n WriteRawLinesData(modelID, data) {\n this.wasmModule.ExtendLineStorage(modelID, data.length);\n for (let rawLine of data)\n this.wasmModule.WriteLine(modelID, rawLine.ID, rawLine.type, rawLine.arguments);\n }\n GetLineIDsWithType(modelID, type, includeInherited = false) {\n let types = [];\n types.push(type);\n if (includeInherited && typeof InheritanceDef[this.modelSchemaList[modelID]][type] != \"undefined\") {\n types = types.concat(InheritanceDef[this.modelSchemaList[modelID]][type]);\n }\n return this.wasmModule.GetLineIDsWithType(modelID, types);\n }\n GetAllLines(modelID) {\n return this.wasmModule.GetAllLines(modelID);\n }\n GetAllCrossSections2D(modelID) {\n const crossSections = this.wasmModule.GetAllCrossSections2D(modelID);\n const crossSectionList = [];\n for (let i = 0; i < crossSections.size(); i++) {\n const alignment = crossSections.get(i);\n const curveList = [];\n const expressList = [];\n for (let j = 0; j < alignment.curves.size(); j++) {\n const curve = alignment.curves.get(j);\n const ptList = [];\n for (let p = 0; p < curve.points.size(); p++) {\n const pt = curve.points.get(p);\n const newPoint = { x: pt.x, y: pt.y, z: pt.z };\n ptList.push(newPoint);\n }\n const newCurve = { points: ptList };\n curveList.push(newCurve);\n expressList.push(alignment.expressID.get(j));\n }\n const align = { origin, curves: curveList, expressID: expressList };\n crossSectionList.push(align);\n }\n return crossSectionList;\n }\n GetAllCrossSections3D(modelID) {\n const crossSections = this.wasmModule.GetAllCrossSections3D(modelID);\n const crossSectionList = [];\n for (let i = 0; i < crossSections.size(); i++) {\n const alignment = crossSections.get(i);\n const curveList = [];\n const expressList = [];\n for (let j = 0; j < alignment.curves.size(); j++) {\n const curve = alignment.curves.get(j);\n const ptList = [];\n for (let p = 0; p < curve.points.size(); p++) {\n const pt = curve.points.get(p);\n const newPoint = { x: pt.x, y: pt.y, z: pt.z };\n ptList.push(newPoint);\n }\n const newCurve = { points: ptList };\n curveList.push(newCurve);\n expressList.push(alignment.expressID.get(j));\n }\n const align = { origin, curves: curveList, expressID: expressList };\n crossSectionList.push(align);\n }\n return crossSectionList;\n }\n GetAllAlignments(modelID) {\n const alignments = this.wasmModule.GetAllAlignments(modelID);\n const alignmentList = [];\n for (let i = 0; i < alignments.size(); i++) {\n const alignment = alignments.get(i);\n const horList = [];\n for (let j = 0; j < alignment.Horizontal.curves.size(); j++) {\n const curve = alignment.Horizontal.curves.get(j);\n const ptList = [];\n for (let p = 0; p < curve.points.size(); p++) {\n const pt = curve.points.get(p);\n const newPoint = { x: pt.x, y: pt.y };\n ptList.push(newPoint);\n }\n const dtList = [];\n for (let p = 0; p < curve.userData.size(); p++) {\n const dt = curve.userData.get(p);\n dtList.push(dt);\n }\n const newCurve = { points: ptList, data: dtList };\n horList.push(newCurve);\n }\n const verList = [];\n for (let j = 0; j < alignment.Vertical.curves.size(); j++) {\n const curve = alignment.Vertical.curves.get(j);\n const ptList = [];\n for (let p = 0; p < curve.points.size(); p++) {\n const pt = curve.points.get(p);\n const newPoint = { x: pt.x, y: pt.y };\n ptList.push(newPoint);\n }\n const dtList = [];\n for (let p = 0; p < curve.userData.size(); p++) {\n const dt = curve.userData.get(p);\n dtList.push(dt);\n }\n const newCurve = { points: ptList, data: dtList };\n verList.push(newCurve);\n }\n const curve3DList = [];\n if (alignment.Horizontal.curves.size() > 0 && alignment.Vertical.curves.size() > 0) {\n const startH = { x: 0, y: 0, z: 0 };\n const startV = { x: 0, y: 0, z: 0 };\n let lastx = 0;\n let lasty = 0;\n let length = 0;\n for (let j = 0; j < alignment.Horizontal.curves.size(); j++) {\n const curve = alignment.Horizontal.curves.get(j);\n const points = [];\n for (let k = 0; k < curve.points.size(); k++) {\n let alt = 0;\n const pt = curve.points.get(k);\n if (j === 0 && k === 0) {\n lastx = pt.x;\n lasty = pt.y;\n }\n const valueX = pt.x - lastx;\n const valueY = pt.y - lasty;\n lastx = pt.x;\n lasty = pt.y;\n length += Math.sqrt(valueX * valueX + valueY * valueY);\n let first = true;\n let lastAlt = 0;\n let lastX = 0;\n let done = false;\n for (let ii = 0; ii < alignment.Vertical.curves.size(); ii++) {\n const curve2 = alignment.Vertical.curves.get(ii);\n for (let jj = 0; jj < curve2.points.size(); jj++) {\n const pt2 = curve2.points.get(jj);\n if (first) {\n first = false;\n alt = pt2.y;\n lastAlt = pt2.y;\n if (pt2.x >= length) {\n break;\n }\n }\n if (pt2.x >= length) {\n const value1 = pt2.x - lastX;\n const value2 = length - lastX;\n const value3 = value2 / value1;\n alt = lastAlt * (1 - value3) + pt2.y * value3;\n done = true;\n break;\n }\n lastAlt = pt2.y;\n lastX = pt2.x;\n }\n if (done) {\n break;\n }\n }\n points.push({\n x: pt.x - startH.x,\n y: alt - startV.y,\n z: startH.y - pt.y\n });\n }\n const newCurve = { points };\n curve3DList.push(newCurve);\n }\n }\n const align = {\n origin,\n horizontal: horList,\n vertical: verList,\n curve3D: curve3DList\n };\n alignmentList.push(align);\n }\n return alignmentList;\n }\n SetGeometryTransformation(modelID, transformationMatrix) {\n if (transformationMatrix.length != 16) {\n throw new Error(`invalid matrix size: ${transformationMatrix.length}`);\n }\n this.wasmModule.SetGeometryTransformation(modelID, transformationMatrix);\n }\n GetCoordinationMatrix(modelID) {\n return this.wasmModule.GetCoordinationMatrix(modelID);\n }\n GetVertexArray(ptr, size) {\n return this.getSubArray(this.wasmModule.HEAPF32, ptr, size);\n }\n GetIndexArray(ptr, size) {\n return this.getSubArray(this.wasmModule.HEAPU32, ptr, size);\n }\n getSubArray(heap, startPtr, sizeBytes) {\n return heap.subarray(startPtr / 4, startPtr / 4 + sizeBytes).slice(0);\n }\n CloseModel(modelID) {\n this.ifcGuidMap.delete(modelID);\n this.wasmModule.CloseModel(modelID);\n }\n StreamMeshes(modelID, expressIDs, meshCallback) {\n this.wasmModule.StreamMeshes(modelID, expressIDs, meshCallback);\n }\n StreamAllMeshes(modelID, meshCallback) {\n this.wasmModule.StreamAllMeshes(modelID, meshCallback);\n }\n StreamAllMeshesWithTypes(modelID, types, meshCallback) {\n this.wasmModule.StreamAllMeshesWithTypes(modelID, types, meshCallback);\n }\n IsModelOpen(modelID) {\n return this.wasmModule.IsModelOpen(modelID);\n }\n LoadAllGeometry(modelID) {\n return this.wasmModule.LoadAllGeometry(modelID);\n }\n GetFlatMesh(modelID, expressID) {\n return this.wasmModule.GetFlatMesh(modelID, expressID);\n }\n GetMaxExpressID(modelID) {\n return this.wasmModule.GetMaxExpressID(modelID);\n }\n IncrementMaxExpressID(modelID, incrementSize) {\n Log.warn(\"IncrementMaxExpressID is deprecated, use GetNextExpressID or GetMaxExpressID instead\");\n return this.wasmModule.GetMaxExpressID(modelID) + incrementSize;\n }\n GetLineType(modelID, expressID) {\n return this.wasmModule.GetLineType(modelID, expressID);\n }\n GetVersion() {\n return this.wasmModule.GetVersion();\n }\n GetExpressIdFromGuid(modelID, guid) {\n var _a;\n if (!this.ifcGuidMap.has(modelID))\n this.CreateIfcGuidToExpressIdMapping(modelID);\n return (_a = this.ifcGuidMap.get(modelID)) == null ? void 0 : _a.get(guid);\n }\n GetGuidFromExpressId(modelID, expressID) {\n var _a;\n if (!this.ifcGuidMap.has(modelID))\n this.CreateIfcGuidToExpressIdMapping(modelID);\n return (_a = this.ifcGuidMap.get(modelID)) == null ? void 0 : _a.get(expressID);\n }\n CreateIfcGuidToExpressIdMapping(modelID) {\n const map = new Map();\n let entities = this.GetIfcEntityList(modelID);\n for (const typeId of entities) {\n if (!this.IsIfcElement(typeId))\n continue;\n const lines = this.GetLineIDsWithType(modelID, typeId);\n const size = lines.size();\n for (let y = 0; y < size; y++) {\n const expressID = lines.get(y);\n const info = this.GetLine(modelID, expressID);\n try {\n if (\"GlobalId\" in info) {\n const globalID = info.GlobalId.value;\n map.set(expressID, globalID);\n map.set(globalID, expressID);\n }\n } catch (e) {\n continue;\n }\n }\n }\n this.ifcGuidMap.set(modelID, map);\n }\n SetWasmPath(path, absolute = false) {\n this.wasmPath = path;\n this.isWasmPathAbsolute = absolute;\n }\n SetLogLevel(level) {\n Log.setLogLevel(level);\n this.wasmModule.SetLogLevel(level);\n }\n};\nexport {\n Constructors,\n EMPTY,\n ENUM,\n FILE_DESCRIPTION,\n FILE_NAME,\n FILE_SCHEMA,\n FromRawLineData,\n Handle,\n IFC2DCOMPOSITECURVE,\n IFC2X3,\n IFC4,\n IFC4X3,\n IFCABSORBEDDOSEMEASURE,\n IFCACCELERATIONMEASURE,\n IFCACTIONREQUEST,\n IFCACTOR,\n IFCACTORROLE,\n IFCACTUATOR,\n IFCACTUATORTYPE,\n IFCADDRESS,\n IFCADVANCEDBREP,\n IFCADVANCEDBREPWITHVOIDS,\n IFCADVANCEDFACE,\n IFCAIRTERMINAL,\n IFCAIRTERMINALBOX,\n IFCAIRTERMINALBOXTYPE,\n IFCAIRTERMINALTYPE,\n IFCAIRTOAIRHEATRECOVERY,\n IFCAIRTOAIRHEATRECOVERYTYPE,\n IFCALARM,\n IFCALARMTYPE,\n IFCALIGNMENT,\n IFCALIGNMENTCANT,\n IFCALIGNMENTCANTSEGMENT,\n IFCALIGNMENTHORIZONTAL,\n IFCALIGNMENTHORIZONTALSEGMENT,\n IFCALIGNMENTPARAMETERSEGMENT,\n IFCALIGNMENTSEGMENT,\n IFCALIGNMENTVERTICAL,\n IFCALIGNMENTVERTICALSEGMENT,\n IFCAMOUNTOFSUBSTANCEMEASURE,\n IFCANGULARDIMENSION,\n IFCANGULARVELOCITYMEASURE,\n IFCANNOTATION,\n IFCANNOTATIONCURVEOCCURRENCE,\n IFCANNOTATIONFILLAREA,\n IFCANNOTATIONFILLAREAOCCURRENCE,\n IFCANNOTATIONOCCURRENCE,\n IFCANNOTATIONSURFACE,\n IFCANNOTATIONSURFACEOCCURRENCE,\n IFCANNOTATIONSYMBOLOCCURRENCE,\n IFCANNOTATIONTEXTOCCURRENCE,\n IFCAPPLICATION,\n IFCAPPLIEDVALUE,\n IFCAPPLIEDVALUERELATIONSHIP,\n IFCAPPROVAL,\n IFCAPPROVALACTORRELATIONSHIP,\n IFCAPPROVALPROPERTYRELATIONSHIP,\n IFCAPPROVALRELATIONSHIP,\n IFCARBITRARYCLOSEDPROFILEDEF,\n IFCARBITRARYOPENPROFILEDEF,\n IFCARBITRARYPROFILEDEFWITHVOIDS,\n IFCARCINDEX,\n IFCAREADENSITYMEASURE,\n IFCAREAMEASURE,\n IFCASSET,\n IFCASYMMETRICISHAPEPROFILEDEF,\n IFCAUDIOVISUALAPPLIANCE,\n IFCAUDIOVISUALAPPLIANCETYPE,\n IFCAXIS1PLACEMENT,\n IFCAXIS2PLACEMENT2D,\n IFCAXIS2PLACEMENT3D,\n IFCAXIS2PLACEMENTLINEAR,\n IFCBEAM,\n IFCBEAMSTANDARDCASE,\n IFCBEAMTYPE,\n IFCBEARING,\n IFCBEARINGTYPE,\n IFCBEZIERCURVE,\n IFCBINARY,\n IFCBLOBTEXTURE,\n IFCBLOCK,\n IFCBOILER,\n IFCBOILERTYPE,\n IFCBOOLEAN,\n IFCBOOLEANCLIPPINGRESULT,\n IFCBOOLEANRESULT,\n IFCBOREHOLE,\n IFCBOUNDARYCONDITION,\n IFCBOUNDARYCURVE,\n IFCBOUNDARYEDGECONDITION,\n IFCBOUNDARYFACECONDITION,\n IFCBOUNDARYNODECONDITION,\n IFCBOUNDARYNODECONDITIONWARPING,\n IFCBOUNDEDCURVE,\n IFCBOUNDEDSURFACE,\n IFCBOUNDINGBOX,\n IFCBOXALIGNMENT,\n IFCBOXEDHALFSPACE,\n IFCBRIDGE,\n IFCBRIDGEPART,\n IFCBSPLINECURVE,\n IFCBSPLINECURVEWITHKNOTS,\n IFCBSPLINESURFACE,\n IFCBSPLINESURFACEWITHKNOTS,\n IFCBUILDING,\n IFCBUILDINGELEMENT,\n IFCBUILDINGELEMENTCOMPONENT,\n IFCBUILDINGELEMENTPART,\n IFCBUILDINGELEMENTPARTTYPE,\n IFCBUILDINGELEMENTPROXY,\n IFCBUILDINGELEMENTPROXYTYPE,\n IFCBUILDINGELEMENTTYPE,\n IFCBUILDINGSTOREY,\n IFCBUILDINGSYSTEM,\n IFCBUILTELEMENT,\n IFCBUILTELEMENTTYPE,\n IFCBUILTSYSTEM,\n IFCBURNER,\n IFCBURNERTYPE,\n IFCCABLECARRIERFITTING,\n IFCCABLECARRIERFITTINGTYPE,\n IFCCABLECARRIERSEGMENT,\n IFCCABLECARRIERSEGMENTTYPE,\n IFCCABLEFITTING,\n IFCCABLEFITTINGTYPE,\n IFCCABLESEGMENT,\n IFCCABLESEGMENTTYPE,\n IFCCAISSONFOUNDATION,\n IFCCAISSONFOUNDATIONTYPE,\n IFCCALENDARDATE,\n IFCCARDINALPOINTREFERENCE,\n IFCCARTESIANPOINT,\n IFCCARTESIANPOINTLIST,\n IFCCARTESIANPOINTLIST2D,\n IFCCARTESIANPOINTLIST3D,\n IFCCARTESIANTRANSFORMATIONOPERATOR,\n IFCCARTESIANTRANSFORMATIONOPERATOR2D,\n IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM,\n IFCCARTESIANTRANSFORMATIONOPERATOR3D,\n IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM,\n IFCCENTERLINEPROFILEDEF,\n IFCCHAMFEREDGEFEATURE,\n IFCCHILLER,\n IFCCHILLERTYPE,\n IFCCHIMNEY,\n IFCCHIMNEYTYPE,\n IFCCIRCLE,\n IFCCIRCLEHOLLOWPROFILEDEF,\n IFCCIRCLEPROFILEDEF,\n IFCCIVILELEMENT,\n IFCCIVILELEMENTTYPE,\n IFCCLASSIFICATION,\n IFCCLASSIFICATIONITEM,\n IFCCLASSIFICATIONITEMRELATIONSHIP,\n IFCCLASSIFICATIONNOTATION,\n IFCCLASSIFICATIONNOTATIONFACET,\n IFCCLASSIFICATIONREFERENCE,\n IFCCLOSEDSHELL,\n IFCCLOTHOID,\n IFCCOIL,\n IFCCOILTYPE,\n IFCCOLOURRGB,\n IFCCOLOURRGBLIST,\n IFCCOLOURSPECIFICATION,\n IFCCOLUMN,\n IFCCOLUMNSTANDARDCASE,\n IFCCOLUMNTYPE,\n IFCCOMMUNICATIONSAPPLIANCE,\n IFCCOMMUNICATIONSAPPLIANCETYPE,\n IFCCOMPLEXNUMBER,\n IFCCOMPLEXPROPERTY,\n IFCCOMPLEXPROPERTYTEMPLATE,\n IFCCOMPOSITECURVE,\n IFCCOMPOSITECURVEONSURFACE,\n IFCCOMPOSITECURVESEGMENT,\n IFCCOMPOSITEPROFILEDEF,\n IFCCOMPOUNDPLANEANGLEMEASURE,\n IFCCOMPRESSOR,\n IFCCOMPRESSORTYPE,\n IFCCONDENSER,\n IFCCONDENSERTYPE,\n IFCCONDITION,\n IFCCONDITIONCRITERION,\n IFCCONIC,\n IFCCONNECTEDFACESET,\n IFCCONNECTIONCURVEGEOMETRY,\n IFCCONNECTIONGEOMETRY,\n IFCCONNECTIONPOINTECCENTRICITY,\n IFCCONNECTIONPOINTGEOMETRY,\n IFCCONNECTIONPORTGEOMETRY,\n IFCCONNECTIONSURFACEGEOMETRY,\n IFCCONNECTIONVOLUMEGEOMETRY,\n IFCCONSTRAINT,\n IFCCONSTRAINTAGGREGATIONRELATIONSHIP,\n IFCCONSTRAINTCLASSIFICATIONRELATIONSHIP,\n IFCCONSTRAINTRELATIONSHIP,\n IFCCONSTRUCTIONEQUIPMENTRESOURCE,\n IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE,\n IFCCONSTRUCTIONMATERIALRESOURCE,\n IFCCONSTRUCTIONMATERIALRESOURCETYPE,\n IFCCONSTRUCTIONPRODUCTRESOURCE,\n IFCCONSTRUCTIONPRODUCTRESOURCETYPE,\n IFCCONSTRUCTIONRESOURCE,\n IFCCONSTRUCTIONRESOURCETYPE,\n IFCCONTEXT,\n IFCCONTEXTDEPENDENTMEASURE,\n IFCCONTEXTDEPENDENTUNIT,\n IFCCONTROL,\n IFCCONTROLLER,\n IFCCONTROLLERTYPE,\n IFCCONVERSIONBASEDUNIT,\n IFCCONVERSIONBASEDUNITWITHOFFSET,\n IFCCONVEYORSEGMENT,\n IFCCONVEYORSEGMENTTYPE,\n IFCCOOLEDBEAM,\n IFCCOOLEDBEAMTYPE,\n IFCCOOLINGTOWER,\n IFCCOOLINGTOWERTYPE,\n IFCCOORDINATEDUNIVERSALTIMEOFFSET,\n IFCCOORDINATEOPERATION,\n IFCCOORDINATEREFERENCESYSTEM,\n IFCCOSINESPIRAL,\n IFCCOSTITEM,\n IFCCOSTSCHEDULE,\n IFCCOSTVALUE,\n IFCCOUNTMEASURE,\n IFCCOURSE,\n IFCCOURSETYPE,\n IFCCOVERING,\n IFCCOVERINGTYPE,\n IFCCRANERAILASHAPEPROFILEDEF,\n IFCCRANERAILFSHAPEPROFILEDEF,\n IFCCREWRESOURCE,\n IFCCREWRESOURCETYPE,\n IFCCSGPRIMITIVE3D,\n IFCCSGSOLID,\n IFCCSHAPEPROFILEDEF,\n IFCCURRENCYRELATIONSHIP,\n IFCCURTAINWALL,\n IFCCURTAINWALLTYPE,\n IFCCURVATUREMEASURE,\n IFCCURVE,\n IFCCURVEBOUNDEDPLANE,\n IFCCURVEBOUNDEDSURFACE,\n IFCCURVESEGMENT,\n IFCCURVESTYLE,\n IFCCURVESTYLEFONT,\n IFCCURVESTYLEFONTANDSCALING,\n IFCCURVESTYLEFONTPATTERN,\n IFCCYLINDRICALSURFACE,\n IFCDAMPER,\n IFCDAMPERTYPE,\n IFCDATE,\n IFCDATEANDTIME,\n IFCDATETIME,\n IFCDAYINMONTHNUMBER,\n IFCDAYINWEEKNUMBER,\n IFCDAYLIGHTSAVINGHOUR,\n IFCDEEPFOUNDATION,\n IFCDEEPFOUNDATIONTYPE,\n IFCDEFINEDSYMBOL,\n IFCDERIVEDPROFILEDEF,\n IFCDERIVEDUNIT,\n IFCDERIVEDUNITELEMENT,\n IFCDESCRIPTIVEMEASURE,\n IFCDIAMETERDIMENSION,\n IFCDIMENSIONALEXPONENTS,\n IFCDIMENSIONCALLOUTRELATIONSHIP,\n IFCDIMENSIONCOUNT,\n IFCDIMENSIONCURVE,\n IFCDIMENSIONCURVEDIRECTEDCALLOUT,\n IFCDIMENSIONCURVETERMINATOR,\n IFCDIMENSIONPAIR,\n IFCDIRECTION,\n IFCDIRECTRIXCURVESWEPTAREASOLID,\n IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID,\n IFCDISCRETEACCESSORY,\n IFCDISCRETEACCESSORYTYPE,\n IFCDISTRIBUTIONBOARD,\n IFCDISTRIBUTIONBOARDTYPE,\n IFCDISTRIBUTIONCHAMBERELEMENT,\n IFCDISTRIBUTIONCHAMBERELEMENTTYPE,\n IFCDISTRIBUTIONCIRCUIT,\n IFCDISTRIBUTIONCONTROLELEMENT,\n IFCDISTRIBUTIONCONTROLELEMENTTYPE,\n IFCDISTRIBUTIONELEMENT,\n IFCDISTRIBUTIONELEMENTTYPE,\n IFCDISTRIBUTIONFLOWELEMENT,\n IFCDISTRIBUTIONFLOWELEMENTTYPE,\n IFCDISTRIBUTIONPORT,\n IFCDISTRIBUTIONSYSTEM,\n IFCDOCUMENTELECTRONICFORMAT,\n IFCDOCUMENTINFORMATION,\n IFCDOCUMENTINFORMATIONRELATIONSHIP,\n IFCDOCUMENTREFERENCE,\n IFCDOOR,\n IFCDOORLININGPROPERTIES,\n IFCDOORPANELPROPERTIES,\n IFCDOORSTANDARDCASE,\n IFCDOORSTYLE,\n IFCDOORTYPE,\n IFCDOSEEQUIVALENTMEASURE,\n IFCDRAUGHTINGCALLOUT,\n IFCDRAUGHTINGCALLOUTRELATIONSHIP,\n IFCDRAUGHTINGPREDEFINEDCOLOUR,\n IFCDRAUGHTINGPREDEFINEDCURVEFONT,\n IFCDRAUGHTINGPREDEFINEDTEXTFONT,\n IFCDUCTFITTING,\n IFCDUCTFITTINGTYPE,\n IFCDUCTSEGMENT,\n IFCDUCTSEGMENTTYPE,\n IFCDUCTSILENCER,\n IFCDUCTSILENCERTYPE,\n IFCDURATION,\n IFCDYNAMICVISCOSITYMEASURE,\n IFCEARTHWORKSCUT,\n IFCEARTHWORKSELEMENT,\n IFCEARTHWORKSFILL,\n IFCEDGE,\n IFCEDGECURVE,\n IFCEDGEFEATURE,\n IFCEDGELOOP,\n IFCELECTRICALBASEPROPERTIES,\n IFCELECTRICALCIRCUIT,\n IFCELECTRICALELEMENT,\n IFCELECTRICAPPLIANCE,\n IFCELECTRICAPPLIANCETYPE,\n IFCELECTRICCAPACITANCEMEASURE,\n IFCELECTRICCHARGEMEASURE,\n IFCELECTRICCONDUCTANCEMEASURE,\n IFCELECTRICCURRENTMEASURE,\n IFCELECTRICDISTRIBUTIONBOARD,\n IFCELECTRICDISTRIBUTIONBOARDTYPE,\n IFCELECTRICDISTRIBUTIONPOINT,\n IFCELECTRICFLOWSTORAGEDEVICE,\n IFCELECTRICFLOWSTORAGEDEVICETYPE,\n IFCELECTRICFLOWTREATMENTDEVICE,\n IFCELECTRICFLOWTREATMENTDEVICETYPE,\n IFCELECTRICGENERATOR,\n IFCELECTRICGENERATORTYPE,\n IFCELECTRICHEATERTYPE,\n IFCELECTRICMOTOR,\n IFCELECTRICMOTORTYPE,\n IFCELECTRICRESISTANCEMEASURE,\n IFCELECTRICTIMECONTROL,\n IFCELECTRICTIMECONTROLTYPE,\n IFCELECTRICVOLTAGEMEASURE,\n IFCELEMENT,\n IFCELEMENTARYSURFACE,\n IFCELEMENTASSEMBLY,\n IFCELEMENTASSEMBLYTYPE,\n IFCELEMENTCOMPONENT,\n IFCELEMENTCOMPONENTTYPE,\n IFCELEMENTQUANTITY,\n IFCELEMENTTYPE,\n IFCELLIPSE,\n IFCELLIPSEPROFILEDEF,\n IFCENERGYCONVERSIONDEVICE,\n IFCENERGYCONVERSIONDEVICETYPE,\n IFCENERGYMEASURE,\n IFCENERGYPROPERTIES,\n IFCENGINE,\n IFCENGINETYPE,\n IFCENVIRONMENTALIMPACTVALUE,\n IFCEQUIPMENTELEMENT,\n IFCEQUIPMENTSTANDARD,\n IFCEVAPORATIVECOOLER,\n IFCEVAPORATIVECOOLERTYPE,\n IFCEVAPORATOR,\n IFCEVAPORATORTYPE,\n IFCEVENT,\n IFCEVENTTIME,\n IFCEVENTTYPE,\n IFCEXTENDEDMATERIALPROPERTIES,\n IFCEXTENDEDPROPERTIES,\n IFCEXTERNALINFORMATION,\n IFCEXTERNALLYDEFINEDHATCHSTYLE,\n IFCEXTERNALLYDEFINEDSURFACESTYLE,\n IFCEXTERNALLYDEFINEDSYMBOL,\n IFCEXTERNALLYDEFINEDTEXTFONT,\n IFCEXTERNALREFERENCE,\n IFCEXTERNALREFERENCERELATIONSHIP,\n IFCEXTERNALSPATIALELEMENT,\n IFCEXTERNALSPATIALSTRUCTUREELEMENT,\n IFCEXTRUDEDAREASOLID,\n IFCEXTRUDEDAREASOLIDTAPERED,\n IFCFACE,\n IFCFACEBASEDSURFACEMODEL,\n IFCFACEBOUND,\n IFCFACEOUTERBOUND,\n IFCFACESURFACE,\n IFCFACETEDBREP,\n IFCFACETEDBREPWITHVOIDS,\n IFCFACILITY,\n IFCFACILITYPART,\n IFCFACILITYPARTCOMMON,\n IFCFAILURECONNECTIONCONDITION,\n IFCFAN,\n IFCFANTYPE,\n IFCFASTENER,\n IFCFASTENERTYPE,\n IFCFEATUREELEMENT,\n IFCFEATUREELEMENTADDITION,\n IFCFEATUREELEMENTSUBTRACTION,\n IFCFILLAREASTYLE,\n IFCFILLAREASTYLEHATCHING,\n IFCFILLAREASTYLETILES,\n IFCFILLAREASTYLETILESYMBOLWITHSTYLE,\n IFCFILTER,\n IFCFILTERTYPE,\n IFCFIRESUPPRESSIONTERMINAL,\n IFCFIRESUPPRESSIONTERMINALTYPE,\n IFCFIXEDREFERENCESWEPTAREASOLID,\n IFCFLOWCONTROLLER,\n IFCFLOWCONTROLLERTYPE,\n IFCFLOWFITTING,\n IFCFLOWFITTINGTYPE,\n IFCFLOWINSTRUMENT,\n IFCFLOWINSTRUMENTTYPE,\n IFCFLOWMETER,\n IFCFLOWMETERTYPE,\n IFCFLOWMOVINGDEVICE,\n IFCFLOWMOVINGDEVICETYPE,\n IFCFLOWSEGMENT,\n IFCFLOWSEGMENTTYPE,\n IFCFLOWSTORAGEDEVICE,\n IFCFLOWSTORAGEDEVICETYPE,\n IFCFLOWTERMINAL,\n IFCFLOWTERMINALTYPE,\n IFCFLOWTREATMENTDEVICE,\n IFCFLOWTREATMENTDEVICETYPE,\n IFCFLUIDFLOWPROPERTIES,\n IFCFONTSTYLE,\n IFCFONTVARIANT,\n IFCFONTWEIGHT,\n IFCFOOTING,\n IFCFOOTINGTYPE,\n IFCFORCEMEASURE,\n IFCFREQUENCYMEASURE,\n IFCFUELPROPERTIES,\n IFCFURNISHINGELEMENT,\n IFCFURNISHINGELEMENTTYPE,\n IFCFURNITURE,\n IFCFURNITURESTANDARD,\n IFCFURNITURETYPE,\n IFCGASTERMINALTYPE,\n IFCGENERALMATERIALPROPERTIES,\n IFCGENERALPROFILEPROPERTIES,\n IFCGEOGRAPHICELEMENT,\n IFCGEOGRAPHICELEMENTTYPE,\n IFCGEOMETRICCURVESET,\n IFCGEOMETRICREPRESENTATIONCONTEXT,\n IFCGEOMETRICREPRESENTATIONITEM,\n IFCGEOMETRICREPRESENTATIONSUBCONTEXT,\n IFCGEOMETRICSET,\n IFCGEOMODEL,\n IFCGEOSLICE,\n IFCGEOTECHNICALASSEMBLY,\n IFCGEOTECHNICALELEMENT,\n IFCGEOTECHNICALSTRATUM,\n IFCGLOBALLYUNIQUEID,\n IFCGRADIENTCURVE,\n IFCGRID,\n IFCGRIDAXIS,\n IFCGRIDPLACEMENT,\n IFCGROUP,\n IFCHALFSPACESOLID,\n IFCHEATEXCHANGER,\n IFCHEATEXCHANGERTYPE,\n IFCHEATFLUXDENSITYMEASURE,\n IFCHEATINGVALUEMEASURE,\n IFCHOURINDAY,\n IFCHUMIDIFIER,\n IFCHUMIDIFIERTYPE,\n IFCHYGROSCOPICMATERIALPROPERTIES,\n IFCIDENTIFIER,\n IFCILLUMINANCEMEASURE,\n IFCIMAGETEXTURE,\n IFCIMPACTPROTECTIONDEVICE,\n IFCIMPACTPROTECTIONDEVICETYPE,\n IFCINDEXEDCOLOURMAP,\n IFCINDEXEDPOLYCURVE,\n IFCINDEXEDPOLYGONALFACE,\n IFCINDEXEDPOLYGONALFACEWITHVOIDS,\n IFCINDEXEDPOLYGONALTEXTUREMAP,\n IFCINDEXEDTEXTUREMAP,\n IFCINDEXEDTRIANGLETEXTUREMAP,\n IFCINDUCTANCEMEASURE,\n IFCINTEGER,\n IFCINTEGERCOUNTRATEMEASURE,\n IFCINTERCEPTOR,\n IFCINTERCEPTORTYPE,\n IFCINTERSECTIONCURVE,\n IFCINVENTORY,\n IFCIONCONCENTRATIONMEASURE,\n IFCIRREGULARTIMESERIES,\n IFCIRREGULARTIMESERIESVALUE,\n IFCISHAPEPROFILEDEF,\n IFCISOTHERMALMOISTURECAPACITYMEASURE,\n IFCJUNCTIONBOX,\n IFCJUNCTIONBOXTYPE,\n IFCKERB,\n IFCKERBTYPE,\n IFCKINEMATICVISCOSITYMEASURE,\n IFCLABEL,\n IFCLABORRESOURCE,\n IFCLABORRESOURCETYPE,\n IFCLAGTIME,\n IFCLAMP,\n IFCLAMPTYPE,\n IFCLANGUAGEID,\n IFCLENGTHMEASURE,\n IFCLIBRARYINFORMATION,\n IFCLIBRARYREFERENCE,\n IFCLIGHTDISTRIBUTIONDATA,\n IFCLIGHTFIXTURE,\n IFCLIGHTFIXTURETYPE,\n IFCLIGHTINTENSITYDISTRIBUTION,\n IFCLIGHTSOURCE,\n IFCLIGHTSOURCEAMBIENT,\n IFCLIGHTSOURCEDIRECTIONAL,\n IFCLIGHTSOURCEGONIOMETRIC,\n IFCLIGHTSOURCEPOSITIONAL,\n IFCLIGHTSOURCESPOT,\n IFCLINE,\n IFCLINEARDIMENSION,\n IFCLINEARELEMENT,\n IFCLINEARFORCEMEASURE,\n IFCLINEARMOMENTMEASURE,\n IFCLINEARPLACEMENT,\n IFCLINEARPOSITIONINGELEMENT,\n IFCLINEARSTIFFNESSMEASURE,\n IFCLINEARVELOCITYMEASURE,\n IFCLINEINDEX,\n IFCLIQUIDTERMINAL,\n IFCLIQUIDTERMINALTYPE,\n IFCLOCALPLACEMENT,\n IFCLOCALTIME,\n IFCLOGICAL,\n IFCLOOP,\n IFCLSHAPEPROFILEDEF,\n IFCLUMINOUSFLUXMEASURE,\n IFCLUMINOUSINTENSITYDISTRIBUTIONMEASURE,\n IFCLUMINOUSINTENSITYMEASURE,\n IFCMAGNETICFLUXDENSITYMEASURE,\n IFCMAGNETICFLUXMEASURE,\n IFCMANIFOLDSOLIDBREP,\n IFCMAPCONVERSION,\n IFCMAPPEDITEM,\n IFCMARINEFACILITY,\n IFCMARINEPART,\n IFCMASSDENSITYMEASURE,\n IFCMASSFLOWRATEMEASURE,\n IFCMASSMEASURE,\n IFCMASSPERLENGTHMEASURE,\n IFCMATERIAL,\n IFCMATERIALCLASSIFICATIONRELATIONSHIP,\n IFCMATERIALCONSTITUENT,\n IFCMATERIALCONSTITUENTSET,\n IFCMATERIALDEFINITION,\n IFCMATERIALDEFINITIONREPRESENTATION,\n IFCMATERIALLAYER,\n IFCMATERIALLAYERSET,\n IFCMATERIALLAYERSETUSAGE,\n IFCMATERIALLAYERWITHOFFSETS,\n IFCMATERIALLIST,\n IFCMATERIALPROFILE,\n IFCMATERIALPROFILESET,\n IFCMATERIALPROFILESETUSAGE,\n IFCMATERIALPROFILESETUSAGETAPERING,\n IFCMATERIALPROFILEWITHOFFSETS,\n IFCMATERIALPROPERTIES,\n IFCMATERIALRELATIONSHIP,\n IFCMATERIALUSAGEDEFINITION,\n IFCMEASUREWITHUNIT,\n IFCMECHANICALCONCRETEMATERIALPROPERTIES,\n IFCMECHANICALFASTENER,\n IFCMECHANICALFASTENERTYPE,\n IFCMECHANICALMATERIALPROPERTIES,\n IFCMECHANICALSTEELMATERIALPROPERTIES,\n IFCMEDICALDEVICE,\n IFCMEDICALDEVICETYPE,\n IFCMEMBER,\n IFCMEMBERSTANDARDCASE,\n IFCMEMBERTYPE,\n IFCMETRIC,\n IFCMINUTEINHOUR,\n IFCMIRROREDPROFILEDEF,\n IFCMOBILETELECOMMUNICATIONSAPPLIANCE,\n IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE,\n IFCMODULUSOFELASTICITYMEASURE,\n IFCMODULUSOFLINEARSUBGRADEREACTIONMEASURE,\n IFCMODULUSOFROTATIONALSUBGRADEREACTIONMEASURE,\n IFCMODULUSOFSUBGRADEREACTIONMEASURE,\n IFCMOISTUREDIFFUSIVITYMEASURE,\n IFCMOLECULARWEIGHTMEASURE,\n IFCMOMENTOFINERTIAMEASURE,\n IFCMONETARYMEASURE,\n IFCMONETARYUNIT,\n IFCMONTHINYEARNUMBER,\n IFCMOORINGDEVICE,\n IFCMOORINGDEVICETYPE,\n IFCMOTORCONNECTION,\n IFCMOTORCONNECTIONTYPE,\n IFCMOVE,\n IFCNAMEDUNIT,\n IFCNAVIGATIONELEMENT,\n IFCNAVIGATIONELEMENTTYPE,\n IFCNONNEGATIVELENGTHMEASURE,\n IFCNORMALISEDRATIOMEASURE,\n IFCNUMERICMEASURE,\n IFCOBJECT,\n IFCOBJECTDEFINITION,\n IFCOBJECTIVE,\n IFCOBJECTPLACEMENT,\n IFCOCCUPANT,\n IFCOFFSETCURVE,\n IFCOFFSETCURVE2D,\n IFCOFFSETCURVE3D,\n IFCOFFSETCURVEBYDISTANCES,\n IFCONEDIRECTIONREPEATFACTOR,\n IFCOPENCROSSPROFILEDEF,\n IFCOPENINGELEMENT,\n IFCOPENINGSTANDARDCASE,\n IFCOPENSHELL,\n IFCOPTICALMATERIALPROPERTIES,\n IFCORDERACTION,\n IFCORGANIZATION,\n IFCORGANIZATIONRELATIONSHIP,\n IFCORIENTEDEDGE,\n IFCOUTERBOUNDARYCURVE,\n IFCOUTLET,\n IFCOUTLETTYPE,\n IFCOWNERHISTORY,\n IFCPARAMETERIZEDPROFILEDEF,\n IFCPARAMETERVALUE,\n IFCPATH,\n IFCPAVEMENT,\n IFCPAVEMENTTYPE,\n IFCPCURVE,\n IFCPERFORMANCEHISTORY,\n IFCPERMEABLECOVERINGPROPERTIES,\n IFCPERMIT,\n IFCPERSON,\n IFCPERSONANDORGANIZATION,\n IFCPHMEASURE,\n IFCPHYSICALCOMPLEXQUANTITY,\n IFCPHYSICALQUANTITY,\n IFCPHYSICALSIMPLEQUANTITY,\n IFCPILE,\n IFCPILETYPE,\n IFCPIPEFITTING,\n IFCPIPEFITTINGTYPE,\n IFCPIPESEGMENT,\n IFCPIPESEGMENTTYPE,\n IFCPIXELTEXTURE,\n IFCPLACEMENT,\n IFCPLANARBOX,\n IFCPLANAREXTENT,\n IFCPLANARFORCEMEASURE,\n IFCPLANE,\n IFCPLANEANGLEMEASURE,\n IFCPLATE,\n IFCPLATESTANDARDCASE,\n IFCPLATETYPE,\n IFCPOINT,\n IFCPOINTBYDISTANCEEXPRESSION,\n IFCPOINTONCURVE,\n IFCPOINTONSURFACE,\n IFCPOLYGONALBOUNDEDHALFSPACE,\n IFCPOLYGONALFACESET,\n IFCPOLYLINE,\n IFCPOLYLOOP,\n IFCPOLYNOMIALCURVE,\n IFCPORT,\n IFCPOSITIONINGELEMENT,\n IFCPOSITIVEINTEGER,\n IFCPOSITIVELENGTHMEASURE,\n IFCPOSITIVEPLANEANGLEMEASURE,\n IFCPOSITIVERATIOMEASURE,\n IFCPOSTALADDRESS,\n IFCPOWERMEASURE,\n IFCPREDEFINEDCOLOUR,\n IFCPREDEFINEDCURVEFONT,\n IFCPREDEFINEDDIMENSIONSYMBOL,\n IFCPREDEFINEDITEM,\n IFCPREDEFINEDPOINTMARKERSYMBOL,\n IFCPREDEFINEDPROPERTIES,\n IFCPREDEFINEDPROPERTYSET,\n IFCPREDEFINEDSYMBOL,\n IFCPREDEFINEDTERMINATORSYMBOL,\n IFCPREDEFINEDTEXTFONT,\n IFCPRESENTABLETEXT,\n IFCPRESENTATIONITEM,\n IFCPRESENTATIONLAYERASSIGNMENT,\n IFCPRESENTATIONLAYERWITHSTYLE,\n IFCPRESENTATIONSTYLE,\n IFCPRESENTATIONSTYLEASSIGNMENT,\n IFCPRESSUREMEASURE,\n IFCPROCEDURE,\n IFCPROCEDURETYPE,\n IFCPROCESS,\n IFCPRODUCT,\n IFCPRODUCTDEFINITIONSHAPE,\n IFCPRODUCTREPRESENTATION,\n IFCPRODUCTSOFCOMBUSTIONPROPERTIES,\n IFCPROFILEDEF,\n IFCPROFILEPROPERTIES,\n IFCPROJECT,\n IFCPROJECTEDCRS,\n IFCPROJECTIONCURVE,\n IFCPROJECTIONELEMENT,\n IFCPROJECTLIBRARY,\n IFCPROJECTORDER,\n IFCPROJECTORDERRECORD,\n IFCPROPERTY,\n IFCPROPERTYABSTRACTION,\n IFCPROPERTYBOUNDEDVALUE,\n IFCPROPERTYCONSTRAINTRELATIONSHIP,\n IFCPROPERTYDEFINITION,\n IFCPROPERTYDEPENDENCYRELATIONSHIP,\n IFCPROPERTYENUMERATEDVALUE,\n IFCPROPERTYENUMERATION,\n IFCPROPERTYLISTVALUE,\n IFCPROPERTYREFERENCEVALUE,\n IFCPROPERTYSET,\n IFCPROPERTYSETDEFINITION,\n IFCPROPERTYSETDEFINITIONSET,\n IFCPROPERTYSETTEMPLATE,\n IFCPROPERTYSINGLEVALUE,\n IFCPROPERTYTABLEVALUE,\n IFCPROPERTYTEMPLATE,\n IFCPROPERTYTEMPLATEDEFINITION,\n IFCPROTECTIVEDEVICE,\n IFCPROTECTIVEDEVICETRIPPINGUNIT,\n IFCPROTECTIVEDEVICETRIPPINGUNITTYPE,\n IFCPROTECTIVEDEVICETYPE,\n IFCPROXY,\n IFCPUMP,\n IFCPUMPTYPE,\n IFCQUANTITYAREA,\n IFCQUANTITYCOUNT,\n IFCQUANTITYLENGTH,\n IFCQUANTITYNUMBER,\n IFCQUANTITYSET,\n IFCQUANTITYTIME,\n IFCQUANTITYVOLUME,\n IFCQUANTITYWEIGHT,\n IFCRADIOACTIVITYMEASURE,\n IFCRADIUSDIMENSION,\n IFCRAIL,\n IFCRAILING,\n IFCRAILINGTYPE,\n IFCRAILTYPE,\n IFCRAILWAY,\n IFCRAILWAYPART,\n IFCRAMP,\n IFCRAMPFLIGHT,\n IFCRAMPFLIGHTTYPE,\n IFCRAMPTYPE,\n IFCRATIOMEASURE,\n IFCRATIONALBEZIERCURVE,\n IFCRATIONALBSPLINECURVEWITHKNOTS,\n IFCRATIONALBSPLINESURFACEWITHKNOTS,\n IFCREAL,\n IFCRECTANGLEHOLLOWPROFILEDEF,\n IFCRECTANGLEPROFILEDEF,\n IFCRECTANGULARPYRAMID,\n IFCRECTANGULARTRIMMEDSURFACE,\n IFCRECURRENCEPATTERN,\n IFCREFERENCE,\n IFCREFERENCESVALUEDOCUMENT,\n IFCREFERENT,\n IFCREGULARTIMESERIES,\n IFCREINFORCEDSOIL,\n IFCREINFORCEMENTBARPROPERTIES,\n IFCREINFORCEMENTDEFINITIONPROPERTIES,\n IFCREINFORCINGBAR,\n IFCREINFORCINGBARTYPE,\n IFCREINFORCINGELEMENT,\n IFCREINFORCINGELEMENTTYPE,\n IFCREINFORCINGMESH,\n IFCREINFORCINGMESHTYPE,\n IFCRELADHERESTOELEMENT,\n IFCRELAGGREGATES,\n IFCRELASSIGNS,\n IFCRELASSIGNSTASKS,\n IFCRELASSIGNSTOACTOR,\n IFCRELASSIGNSTOCONTROL,\n IFCRELASSIGNSTOGROUP,\n IFCRELASSIGNSTOGROUPBYFACTOR,\n IFCRELASSIGNSTOPROCESS,\n IFCRELASSIGNSTOPRODUCT,\n IFCRELASSIGNSTOPROJECTORDER,\n IFCRELASSIGNSTORESOURCE,\n IFCRELASSOCIATES,\n IFCRELASSOCIATESAPPLIEDVALUE,\n IFCRELASSOCIATESAPPROVAL,\n IFCRELASSOCIATESCLASSIFICATION,\n IFCRELASSOCIATESCONSTRAINT,\n IFCRELASSOCIATESDOCUMENT,\n IFCRELASSOCIATESLIBRARY,\n IFCRELASSOCIATESMATERIAL,\n IFCRELASSOCIATESPROFILEDEF,\n IFCRELASSOCIATESPROFILEPROPERTIES,\n IFCRELATIONSHIP,\n IFCRELAXATION,\n IFCRELCONNECTS,\n IFCRELCONNECTSELEMENTS,\n IFCRELCONNECTSPATHELEMENTS,\n IFCRELCONNECTSPORTS,\n IFCRELCONNECTSPORTTOELEMENT,\n IFCRELCONNECTSSTRUCTURALACTIVITY,\n IFCRELCONNECTSSTRUCTURALELEMENT,\n IFCRELCONNECTSSTRUCTURALMEMBER,\n IFCRELCONNECTSWITHECCENTRICITY,\n IFCRELCONNECTSWITHREALIZINGELEMENTS,\n IFCRELCONTAINEDINSPATIALSTRUCTURE,\n IFCRELCOVERSBLDGELEMENTS,\n IFCRELCOVERSSPACES,\n IFCRELDECLARES,\n IFCRELDECOMPOSES,\n IFCRELDEFINES,\n IFCRELDEFINESBYOBJECT,\n IFCRELDEFINESBYPROPERTIES,\n IFCRELDEFINESBYTEMPLATE,\n IFCRELDEFINESBYTYPE,\n IFCRELFILLSELEMENT,\n IFCRELFLOWCONTROLELEMENTS,\n IFCRELINTERACTIONREQUIREMENTS,\n IFCRELINTERFERESELEMENTS,\n IFCRELNESTS,\n IFCRELOCCUPIESSPACES,\n IFCRELOVERRIDESPROPERTIES,\n IFCRELPOSITIONS,\n IFCRELPROJECTSELEMENT,\n IFCRELREFERENCEDINSPATIALSTRUCTURE,\n IFCRELSCHEDULESCOSTITEMS,\n IFCRELSEQUENCE,\n IFCRELSERVICESBUILDINGS,\n IFCRELSPACEBOUNDARY,\n IFCRELSPACEBOUNDARY1STLEVEL,\n IFCRELSPACEBOUNDARY2NDLEVEL,\n IFCRELVOIDSELEMENT,\n IFCREPARAMETRISEDCOMPOSITECURVESEGMENT,\n IFCREPRESENTATION,\n IFCREPRESENTATIONCONTEXT,\n IFCREPRESENTATIONITEM,\n IFCREPRESENTATIONMAP,\n IFCRESOURCE,\n IFCRESOURCEAPPROVALRELATIONSHIP,\n IFCRESOURCECONSTRAINTRELATIONSHIP,\n IFCRESOURCELEVELRELATIONSHIP,\n IFCRESOURCETIME,\n IFCREVOLVEDAREASOLID,\n IFCREVOLVEDAREASOLIDTAPERED,\n IFCRIBPLATEPROFILEPROPERTIES,\n IFCRIGHTCIRCULARCONE,\n IFCRIGHTCIRCULARCYLINDER,\n IFCROAD,\n IFCROADPART,\n IFCROOF,\n IFCROOFTYPE,\n IFCROOT,\n IFCROTATIONALFREQUENCYMEASURE,\n IFCROTATIONALMASSMEASURE,\n IFCROTATIONALSTIFFNESSMEASURE,\n IFCROUNDEDEDGEFEATURE,\n IFCROUNDEDRECTANGLEPROFILEDEF,\n IFCSANITARYTERMINAL,\n IFCSANITARYTERMINALTYPE,\n IFCSCHEDULETIMECONTROL,\n IFCSCHEDULINGTIME,\n IFCSEAMCURVE,\n IFCSECONDINMINUTE,\n IFCSECONDORDERPOLYNOMIALSPIRAL,\n IFCSECTIONALAREAINTEGRALMEASURE,\n IFCSECTIONEDSOLID,\n IFCSECTIONEDSOLIDHORIZONTAL,\n IFCSECTIONEDSPINE,\n IFCSECTIONEDSURFACE,\n IFCSECTIONMODULUSMEASURE,\n IFCSECTIONPROPERTIES,\n IFCSECTIONREINFORCEMENTPROPERTIES,\n IFCSEGMENT,\n IFCSEGMENTEDREFERENCECURVE,\n IFCSENSOR,\n IFCSENSORTYPE,\n IFCSERVICELIFE,\n IFCSERVICELIFEFACTOR,\n IFCSEVENTHORDERPOLYNOMIALSPIRAL,\n IFCSHADINGDEVICE,\n IFCSHADINGDEVICETYPE,\n IFCSHAPEASPECT,\n IFCSHAPEMODEL,\n IFCSHAPEREPRESENTATION,\n IFCSHEARMODULUSMEASURE,\n IFCSHELLBASEDSURFACEMODEL,\n IFCSIGN,\n IFCSIGNAL,\n IFCSIGNALTYPE,\n IFCSIGNTYPE,\n IFCSIMPLEPROPERTY,\n IFCSIMPLEPROPERTYTEMPLATE,\n IFCSINESPIRAL,\n IFCSITE,\n IFCSIUNIT,\n IFCSLAB,\n IFCSLABELEMENTEDCASE,\n IFCSLABSTANDARDCASE,\n IFCSLABTYPE,\n IFCSLIPPAGECONNECTIONCONDITION,\n IFCSOLARDEVICE,\n IFCSOLARDEVICETYPE,\n IFCSOLIDANGLEMEASURE,\n IFCSOLIDMODEL,\n IFCSOUNDPOWERLEVELMEASURE,\n IFCSOUNDPOWERMEASURE,\n IFCSOUNDPRESSURELEVELMEASURE,\n IFCSOUNDPRESSUREMEASURE,\n IFCSOUNDPROPERTIES,\n IFCSOUNDVALUE,\n IFCSPACE,\n IFCSPACEHEATER,\n IFCSPACEHEATERTYPE,\n IFCSPACEPROGRAM,\n IFCSPACETHERMALLOADPROPERTIES,\n IFCSPACETYPE,\n IFCSPATIALELEMENT,\n IFCSPATIALELEMENTTYPE,\n IFCSPATIALSTRUCTUREELEMENT,\n IFCSPATIALSTRUCTUREELEMENTTYPE,\n IFCSPATIALZONE,\n IFCSPATIALZONETYPE,\n IFCSPECIFICHEATCAPACITYMEASURE,\n IFCSPECULAREXPONENT,\n IFCSPECULARROUGHNESS,\n IFCSPHERE,\n IFCSPHERICALSURFACE,\n IFCSPIRAL,\n IFCSTACKTERMINAL,\n IFCSTACKTERMINALTYPE,\n IFCSTAIR,\n IFCSTAIRFLIGHT,\n IFCSTAIRFLIGHTTYPE,\n IFCSTAIRTYPE,\n IFCSTRUCTURALACTION,\n IFCSTRUCTURALACTIVITY,\n IFCSTRUCTURALANALYSISMODEL,\n IFCSTRUCTURALCONNECTION,\n IFCSTRUCTURALCONNECTIONCONDITION,\n IFCSTRUCTURALCURVEACTION,\n IFCSTRUCTURALCURVECONNECTION,\n IFCSTRUCTURALCURVEMEMBER,\n IFCSTRUCTURALCURVEMEMBERVARYING,\n IFCSTRUCTURALCURVEREACTION,\n IFCSTRUCTURALITEM,\n IFCSTRUCTURALLINEARACTION,\n IFCSTRUCTURALLINEARACTIONVARYING,\n IFCSTRUCTURALLOAD,\n IFCSTRUCTURALLOADCASE,\n IFCSTRUCTURALLOADCONFIGURATION,\n IFCSTRUCTURALLOADGROUP,\n IFCSTRUCTURALLOADLINEARFORCE,\n IFCSTRUCTURALLOADORRESULT,\n IFCSTRUCTURALLOADPLANARFORCE,\n IFCSTRUCTURALLOADSINGLEDISPLACEMENT,\n IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION,\n IFCSTRUCTURALLOADSINGLEFORCE,\n IFCSTRUCTURALLOADSINGLEFORCEWARPING,\n IFCSTRUCTURALLOADSTATIC,\n IFCSTRUCTURALLOADTEMPERATURE,\n IFCSTRUCTURALMEMBER,\n IFCSTRUCTURALPLANARACTION,\n IFCSTRUCTURALPLANARACTIONVARYING,\n IFCSTRUCTURALPOINTACTION,\n IFCSTRUCTURALPOINTCONNECTION,\n IFCSTRUCTURALPOINTREACTION,\n IFCSTRUCTURALPROFILEPROPERTIES,\n IFCSTRUCTURALREACTION,\n IFCSTRUCTURALRESULTGROUP,\n IFCSTRUCTURALSTEELPROFILEPROPERTIES,\n IFCSTRUCTURALSURFACEACTION,\n IFCSTRUCTURALSURFACECONNECTION,\n IFCSTRUCTURALSURFACEMEMBER,\n IFCSTRUCTURALSURFACEMEMBERVARYING,\n IFCSTRUCTURALSURFACEREACTION,\n IFCSTRUCTUREDDIMENSIONCALLOUT,\n IFCSTYLEDITEM,\n IFCSTYLEDREPRESENTATION,\n IFCSTYLEMODEL,\n IFCSUBCONTRACTRESOURCE,\n IFCSUBCONTRACTRESOURCETYPE,\n IFCSUBEDGE,\n IFCSURFACE,\n IFCSURFACECURVE,\n IFCSURFACECURVESWEPTAREASOLID,\n IFCSURFACEFEATURE,\n IFCSURFACEOFLINEAREXTRUSION,\n IFCSURFACEOFREVOLUTION,\n IFCSURFACEREINFORCEMENTAREA,\n IFCSURFACESTYLE,\n IFCSURFACESTYLELIGHTING,\n IFCSURFACESTYLEREFRACTION,\n IFCSURFACESTYLERENDERING,\n IFCSURFACESTYLESHADING,\n IFCSURFACESTYLEWITHTEXTURES,\n IFCSURFACETEXTURE,\n IFCSWEPTAREASOLID,\n IFCSWEPTDISKSOLID,\n IFCSWEPTDISKSOLIDPOLYGONAL,\n IFCSWEPTSURFACE,\n IFCSWITCHINGDEVICE,\n IFCSWITCHINGDEVICETYPE,\n IFCSYMBOLSTYLE,\n IFCSYSTEM,\n IFCSYSTEMFURNITUREELEMENT,\n IFCSYSTEMFURNITUREELEMENTTYPE,\n IFCTABLE,\n IFCTABLECOLUMN,\n IFCTABLEROW,\n IFCTANK,\n IFCTANKTYPE,\n IFCTASK,\n IFCTASKTIME,\n IFCTASKTIMERECURRING,\n IFCTASKTYPE,\n IFCTELECOMADDRESS,\n IFCTEMPERATUREGRADIENTMEASURE,\n IFCTEMPERATURERATEOFCHANGEMEASURE,\n IFCTENDON,\n IFCTENDONANCHOR,\n IFCTENDONANCHORTYPE,\n IFCTENDONCONDUIT,\n IFCTENDONCONDUITTYPE,\n IFCTENDONTYPE,\n IFCTERMINATORSYMBOL,\n IFCTESSELLATEDFACESET,\n IFCTESSELLATEDITEM,\n IFCTEXT,\n IFCTEXTALIGNMENT,\n IFCTEXTDECORATION,\n IFCTEXTFONTNAME,\n IFCTEXTLITERAL,\n IFCTEXTLITERALWITHEXTENT,\n IFCTEXTSTYLE,\n IFCTEXTSTYLEFONTMODEL,\n IFCTEXTSTYLEFORDEFINEDFONT,\n IFCTEXTSTYLETEXTMODEL,\n IFCTEXTSTYLEWITHBOXCHARACTERISTICS,\n IFCTEXTTRANSFORMATION,\n IFCTEXTURECOORDINATE,\n IFCTEXTURECOORDINATEGENERATOR,\n IFCTEXTURECOORDINATEINDICES,\n IFCTEXTURECOORDINATEINDICESWITHVOIDS,\n IFCTEXTUREMAP,\n IFCTEXTUREVERTEX,\n IFCTEXTUREVERTEXLIST,\n IFCTHERMALADMITTANCEMEASURE,\n IFCTHERMALCONDUCTIVITYMEASURE,\n IFCTHERMALEXPANSIONCOEFFICIENTMEASURE,\n IFCTHERMALMATERIALPROPERTIES,\n IFCTHERMALRESISTANCEMEASURE,\n IFCTHERMALTRANSMITTANCEMEASURE,\n IFCTHERMODYNAMICTEMPERATUREMEASURE,\n IFCTHIRDORDERPOLYNOMIALSPIRAL,\n IFCTIME,\n IFCTIMEMEASURE,\n IFCTIMEPERIOD,\n IFCTIMESERIES,\n IFCTIMESERIESREFERENCERELATIONSHIP,\n IFCTIMESERIESSCHEDULE,\n IFCTIMESERIESVALUE,\n IFCTIMESTAMP,\n IFCTOPOLOGICALREPRESENTATIONITEM,\n IFCTOPOLOGYREPRESENTATION,\n IFCTOROIDALSURFACE,\n IFCTORQUEMEASURE,\n IFCTRACKELEMENT,\n IFCTRACKELEMENTTYPE,\n IFCTRANSFORMER,\n IFCTRANSFORMERTYPE,\n IFCTRANSPORTATIONDEVICE,\n IFCTRANSPORTATIONDEVICETYPE,\n IFCTRANSPORTELEMENT,\n IFCTRANSPORTELEMENTTYPE,\n IFCTRAPEZIUMPROFILEDEF,\n IFCTRIANGULATEDFACESET,\n IFCTRIANGULATEDIRREGULARNETWORK,\n IFCTRIMMEDCURVE,\n IFCTSHAPEPROFILEDEF,\n IFCTUBEBUNDLE,\n IFCTUBEBUNDLETYPE,\n IFCTWODIRECTIONREPEATFACTOR,\n IFCTYPEOBJECT,\n IFCTYPEPROCESS,\n IFCTYPEPRODUCT,\n IFCTYPERESOURCE,\n IFCUNITARYCONTROLELEMENT,\n IFCUNITARYCONTROLELEMENTTYPE,\n IFCUNITARYEQUIPMENT,\n IFCUNITARYEQUIPMENTTYPE,\n IFCUNITASSIGNMENT,\n IFCURIREFERENCE,\n IFCUSHAPEPROFILEDEF,\n IFCVALVE,\n IFCVALVETYPE,\n IFCVAPORPERMEABILITYMEASURE,\n IFCVECTOR,\n IFCVEHICLE,\n IFCVEHICLETYPE,\n IFCVERTEX,\n IFCVERTEXBASEDTEXTUREMAP,\n IFCVERTEXLOOP,\n IFCVERTEXPOINT,\n IFCVIBRATIONDAMPER,\n IFCVIBRATIONDAMPERTYPE,\n IFCVIBRATIONISOLATOR,\n IFCVIBRATIONISOLATORTYPE,\n IFCVIRTUALELEMENT,\n IFCVIRTUALGRIDINTERSECTION,\n IFCVOIDINGFEATURE,\n IFCVOLUMEMEASURE,\n IFCVOLUMETRICFLOWRATEMEASURE,\n IFCWALL,\n IFCWALLELEMENTEDCASE,\n IFCWALLSTANDARDCASE,\n IFCWALLTYPE,\n IFCWARPINGCONSTANTMEASURE,\n IFCWARPINGMOMENTMEASURE,\n IFCWASTETERMINAL,\n IFCWASTETERMINALTYPE,\n IFCWATERPROPERTIES,\n IFCWINDOW,\n IFCWINDOWLININGPROPERTIES,\n IFCWINDOWPANELPROPERTIES,\n IFCWINDOWSTANDARDCASE,\n IFCWINDOWSTYLE,\n IFCWINDOWTYPE,\n IFCWORKCALENDAR,\n IFCWORKCONTROL,\n IFCWORKPLAN,\n IFCWORKSCHEDULE,\n IFCWORKTIME,\n IFCYEARNUMBER,\n IFCZONE,\n IFCZSHAPEPROFILEDEF,\n INTEGER,\n IfcAPI2 as IfcAPI,\n IfcLineObject,\n InheritanceDef,\n InversePropertyDef,\n LABEL,\n LINE_END,\n LogLevel,\n Properties,\n REAL,\n REF,\n SET_BEGIN,\n SET_END,\n STRING,\n SchemaNames,\n Schemas,\n ToRawLineData,\n TypeInitialisers,\n UNKNOWN,\n logical,\n ms\n};\n", "import {\n createMat4,\n createVec3,\n createVec4,\n transformPoint3,\n transformPoint4,\n transformPositions3\n} from \"@xeokit/matrix\";\nimport type {SceneModel} from \"@xeokit/scene\";\nimport type {DataModel} from \"@xeokit/data\";\n//import * as WebIFC from \"web-ifc/web-ifc-api-node\";\nimport * as WebIFC from \"web-ifc\";\nimport {IfcElement, IfcRelAggregates, ifcTypeCodes} from \"@xeokit/ifctypes\";\nimport {worldToRTCPositions} from \"@xeokit/rtc\";\nimport {TrianglesPrimitive} from \"@xeokit/constants\";\nimport {SDKError} from \"@xeokit/core\";\n\nconst tempVec4a = createVec4();\nconst tempVec4b = createVec4();\n\n/**\n * @private\n */\ninterface ParsingContext {\n fileData: ArrayBuffer;\n ifcAPI: WebIFC.IfcAPI;\n sceneModel: SceneModel;\n dataModel?: DataModel;\n nextId: number;\n modelId: number;\n lines: WebIFC.Vector;\n ifcProjectId: number;\n}\n\n/**\n * Loads IFC into a {@link @xeokit/scene!SceneModel | SceneModel} and/or {@link @xeokit/data!DataModel | DataModel}.\n *\n * * Expects {@link @xeokit/scene!SceneModel.built | SceneModel.built} and {@link @xeokit/scene!SceneModel.destroyed | SceneModel.destroyed} to be ````false````\n * * Does not call {@link @xeokit/scene!SceneModel.build | SceneModel.build} - we call that ourselves, when we have finished building the SceneModel\n *\n * See {@link \"@xeokit/webifc\" | @xeokit/webifc} for usage.\n *\n * @param params - Loading parameters.\n * @param params.fileData - IFC file contents.\n * @param params.ifcAPI - WebIFC API.\n * @param params.sceneModel - SceneModel to load into.\n * @param params.dataModel - DataModel to load into.\n * @returns {Promise} Resolves when IFC has been loaded into the SceneModel and/or DataModel.\n * @throws *{@link @xeokit/core!SDKError | SDKError}*\n * * If the SceneModel has already been destroyed.\n * * If the SceneModel has already been built.\n * * If the DataModel has already been destroyed.\n * * If the DataModel has already been built.\n */\nexport function loadWebIFC(params: {\n fileData: ArrayBuffer,\n ifcAPI: WebIFC.IfcAPI,\n sceneModel: SceneModel,\n dataModel?: DataModel\n}): Promise {\n return new Promise(function (resolve, reject) {\n if (params.sceneModel.destroyed) {\n throw new SDKError(\"SceneModel already destroyed\");\n }\n if (params.sceneModel.built) {\n throw new SDKError(\"SceneModel already built\");\n }\n if (params.dataModel) {\n if (params.dataModel.destroyed) {\n throw new SDKError(\"DataModel already destroyed\");\n }\n if (params.dataModel.built) {\n throw new SDKError(\"DataModel already built\");\n }\n }\n const dataArray = new Uint8Array(params.fileData);\n const modelId = params.ifcAPI.OpenModel(dataArray);\n const lines = params.ifcAPI.GetLineIDsWithType(modelId, WebIFC.IFCPROJECT);\n const ifcProjectId = lines.get(0);\n const ctx: ParsingContext = {\n fileData: params.fileData,\n modelId,\n lines,\n ifcProjectId,\n ifcAPI: params.ifcAPI,\n sceneModel: params.sceneModel,\n dataModel: params.dataModel,\n nextId: 0\n };\n parseIFC(ctx);\n resolve();\n });\n}\n\nfunction parseIFC(ctx: ParsingContext) {\n if (ctx.dataModel) {\n parseDataModel(ctx);\n }\n if (ctx.sceneModel) {\n parseSceneModel(ctx);\n }\n}\n\nfunction parseDataModel(ctx: ParsingContext) {\n const lines = ctx.ifcAPI.GetLineIDsWithType(ctx.modelId, WebIFC.IFCPROJECT);\n const ifcProjectId = lines.get(0);\n const ifcProject = ctx.ifcAPI.GetLine(ctx.modelId, ifcProjectId);\n parseDataObjectAggregation(ctx, ifcProject);\n parsePropertySets(ctx);\n}\n\nfunction parsePropertySets(ctx: any) {\n const lines = ctx.ifcAPI.GetLineIDsWithType(ctx.modelId, WebIFC.IFCRELDEFINESBYPROPERTIES);\n for (let i = 0; i < lines.size(); i++) {\n let relID = lines.get(i);\n let rel = ctx.ifcAPI.GetLine(ctx.modelId, relID, true);\n if (rel) {\n const relatingPropertyDefinition = rel.RelatingPropertyDefinition;\n if (!relatingPropertyDefinition) {\n continue;\n }\n const propertySetId = relatingPropertyDefinition.GlobalId.value;\n const props = relatingPropertyDefinition.HasProperties;\n if (props && props.length > 0) {\n const propertySetType = \"Default\";\n const propertySetName = relatingPropertyDefinition.Name.value;\n const properties = [];\n for (let i = 0, len = props.length; i < len; i++) {\n const prop = props[i];\n const name = prop.Name;\n const nominalValue = prop.NominalValue;\n if (name && nominalValue) {\n properties.push({\n name: name.value,\n type: nominalValue.type,\n value: nominalValue.value,\n valueType: nominalValue.valueType,\n description: prop.Description ? prop.Description.value : (nominalValue.description ? nominalValue.description : \"\")\n });\n }\n }\n ctx.dataModel.createPropertySet({\n id: propertySetId,\n type: propertySetType,\n name: propertySetName,\n properties: properties\n });\n const relatedObjects = rel.RelatedObjects;\n if (!relatedObjects || relatedObjects.length === 0) {\n return;\n }\n for (let i = 0, len = relatedObjects.length; i < len; i++) {\n const relatedObject = relatedObjects[i];\n const dataObjectId = relatedObject.GlobalId.value;\n const dataObject = ctx.dataModel.objects[dataObjectId];\n if (dataObject) {\n if (!dataObject.propertySetIds) {\n dataObject.propertySetIds = [];\n }\n dataObject.propertySetIds.push(propertySetId);\n }\n }\n }\n }\n }\n}\n\nfunction parseDataObjectAggregation(ctx: ParsingContext, ifcElement: any, parentDataObjectId?: string) {\n const type = ifcElement.__proto__.constructor.name;\n createDataObject(ctx, ifcElement, parentDataObjectId);\n const dataObjectId = ifcElement.GlobalId.value;\n parseRelatedItemsOfType(ctx, ifcElement.expressID, 'RelatingObject', 'RelatedObjects', WebIFC.IFCRELAGGREGATES, dataObjectId);\n parseRelatedItemsOfType(ctx, ifcElement.expressID, 'RelatingStructure', 'RelatedElements', WebIFC.IFCRELCONTAINEDINSPATIALSTRUCTURE, dataObjectId);\n}\n\nfunction createDataObject(ctx: ParsingContext, ifcElement: any, parentDataObjectId?: string) {\n const id = ifcElement.GlobalId.value;\n const type = ifcElement.__proto__.constructor.name;\n const name = (ifcElement.Name && ifcElement.Name.value !== \"\") ? ifcElement.Name.value : type;\n let typeCode = ifcTypeCodes[type];\n if (typeCode == undefined) {\n typeCode = IfcElement;\n // TODO: Log this\n }\n ctx.dataModel.createObject({\n id,\n name,\n type: typeCode\n });\n if (parentDataObjectId) {\n ctx.dataModel.createRelationship({\n type: IfcRelAggregates,\n relatingObjectId: parentDataObjectId,\n relatedObjectId: id\n });\n }\n}\n\nfunction parseRelatedItemsOfType(ctx: ParsingContext, id: any, relation: string, related: string, type: number, parentDataObjectId: string) {\n const lines = ctx.ifcAPI.GetLineIDsWithType(ctx.modelId, type);\n for (let i = 0; i < lines.size(); i++) {\n const relID = lines.get(i);\n const rel = ctx.ifcAPI.GetLine(ctx.modelId, relID);\n const relatedItems = rel[relation];\n let foundElement = false;\n if (Array.isArray(relatedItems)) {\n const values = relatedItems.map((item) => item.value);\n foundElement = values.includes(id);\n } else {\n foundElement = (relatedItems.value === id);\n }\n if (foundElement) {\n const element = rel[related];\n if (!Array.isArray(element)) {\n const ifcElement = ctx.ifcAPI.GetLine(ctx.modelId, element.value);\n parseDataObjectAggregation(ctx, ifcElement, parentDataObjectId);\n } else {\n element.forEach((element2) => {\n const ifcElement = ctx.ifcAPI.GetLine(ctx.modelId, element2.value);\n parseDataObjectAggregation(ctx, ifcElement, parentDataObjectId);\n });\n }\n }\n }\n}\n\nfunction parseSceneModel(ctx: ParsingContext) {\n ctx.ifcAPI.StreamAllMeshes(ctx.modelId, (flatMesh) => {\n // TODO: Can we do geometry reuse with web-ifc?\n const flatMeshExpressID = flatMesh.expressID;\n const placedGeometries = flatMesh.geometries;\n const meshIds = [];\n const properties = ctx.ifcAPI.GetLine(ctx.modelId, flatMeshExpressID);\n const objectId = properties.GlobalId.value;\n const matrix = createMat4();\n const origin = createVec3();\n for (let j = 0, lenj = placedGeometries.size(); j < lenj; j++) {\n const placedGeometry = placedGeometries.get(j);\n const geometry = ctx.ifcAPI.GetGeometry(ctx.modelId, placedGeometry.geometryExpressID);\n const vertexData = ctx.ifcAPI.GetVertexArray(geometry.GetVertexData(), geometry.GetVertexDataSize());\n const indices = ctx.ifcAPI.GetIndexArray(geometry.GetIndexData(), geometry.GetIndexDataSize());\n // De-interleave vertex arrays\n const positions = new Float64Array(vertexData.length / 2);\n const normals = new Float32Array(vertexData.length / 2);\n (matrix).set(placedGeometry.flatTransformation);\n for (let k = 0, l = 0, lenk = vertexData.length / 6; k < lenk; k++, l += 3) {\n tempVec4a[0] = vertexData[k * 6 + 0];\n tempVec4a[1] = vertexData[k * 6 + 1];\n tempVec4a[2] = vertexData[k * 6 + 2];\n tempVec4a[3] = 1;\n transformPoint4(matrix, tempVec4a, tempVec4b);\n positions[l + 0] = tempVec4b[0];\n positions[l + 1] = tempVec4b[1];\n positions[l + 2] = tempVec4b[2];\n }\n\n const rtcNeeded = worldToRTCPositions(positions, positions, origin);\n const geometryId = \"\" + ctx.nextId++;\n ctx.sceneModel.createGeometry({\n id: geometryId,\n primitive: TrianglesPrimitive,\n positions,\n indices\n });\n const meshId = \"\" + ctx.nextId++;\n ctx.sceneModel.createMesh({\n id: meshId,\n geometryId,\n // TODO: matrix with translation if rtcNeeded\n color: [placedGeometry.color.x, placedGeometry.color.y, placedGeometry.color.z],\n opacity: placedGeometry.color.w\n });\n meshIds.push(meshId);\n }\n ctx.sceneModel.createObject({\n id: objectId,\n meshIds: meshIds\n });\n });\n}\n", "/**\n * [![npm version](https://badge.fury.io/js/%40xeokit%2Fdtx.svg)](https://badge.fury.io/js/%40xeokit%2Fdtx)\n * [![](https://data.jsdelivr.com/v1/package/npm/@xeokit/dtx/badge)](https://www.jsdelivr.com/package/npm/@xeokit/dtx)\n *\n * \n *\n * # xeokit [DTX](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#dtx) Format Importer and Exporter\n *\n * ---\n *\n * ### *Import and export SceneModels as xeokit's native binary [DTX](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#dtx) format*\n *\n * ---\n *\n * This package allows us to import and export xeokit {@link @xeokit/scene!SceneModel | SceneModels} as [DTX](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#dtx), a\n * compact binary-encoded runtime asset delivery format for geometry and materials.\n *\n * To import a [DTX](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#dtx) model into xeokit, use the {@link loadDTX} function, which will load the file into\n * a {@link @xeokit/scene!SceneModel | SceneModel}. To export a [DTX](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#dtx) model, use the {@link saveDTX} function, which will save a\n * {@link @xeokit/scene!SceneModel | SceneModel} to [DTX](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#dtx).\n *\n *
\n *\n * [![](https://mermaid.ink/img/pako:eNqNkk1PwzAMhv9K5RNI3dSPtemqaafd2ASiICGUS9a4ENQ2U5MixrT_Tvo1WiEQvaSvHT9-rfgEqeQIMaQ5U2oj2EvFClrSkosKUy1kaW3vG93mrSTFEnemIrdOtLTMJ3h3yv2bua86kVbINN62oavrLravRc4HwVHpSh4beW7oA38rGX-6ebhjxoUaWqxWh0ajxmq97kKZyHHDNOuUurjqcR0s72DfmKwu25Eayuhewt7xP03HbSYA1QH-aDSZi4JDYTZbU3ApJCNob3hITYpi61Ghsi6mVIOdOP8V29u7pMZFP7BgQ4FVwQQ3S9EOREG_YoEUYvPLMWN1rimYwcxVVmuZHMsUYl3VaEN94Obh-zWCOGO5MlHkQstq1y9ac9hwYCXEJ_iA2HP8eRiFAXHDZUA8J7DhCPHCieYRWRDPJ15EiB-cbfiU0kCdeeD4hLjL0DFh33Nb2HOba1ycvwAqVO7G?type=png)](https://mermaid.live/edit#pako:eNqNkk1PwzAMhv9K5RNI3dSPtemqaafd2ASiICGUS9a4ENQ2U5MixrT_Tvo1WiEQvaSvHT9-rfgEqeQIMaQ5U2oj2EvFClrSkosKUy1kaW3vG93mrSTFEnemIrdOtLTMJ3h3yv2bua86kVbINN62oavrLravRc4HwVHpSh4beW7oA38rGX-6ebhjxoUaWqxWh0ajxmq97kKZyHHDNOuUurjqcR0s72DfmKwu25Eayuhewt7xP03HbSYA1QH-aDSZi4JDYTZbU3ApJCNob3hITYpi61Ghsi6mVIOdOP8V29u7pMZFP7BgQ4FVwQQ3S9EOREG_YoEUYvPLMWN1rimYwcxVVmuZHMsUYl3VaEN94Obh-zWCOGO5MlHkQstq1y9ac9hwYCXEJ_iA2HP8eRiFAXHDZUA8J7DhCPHCieYRWRDPJ15EiB-cbfiU0kCdeeD4hLjL0DFh33Nb2HOba1ycvwAqVO7G)\n *\n *
\n *\n * ## Installation\n *\n * ````bash\n * npm install @xeokit/dtx\n * ````\n *\n * ## Usage\n *\n * In the example below, we will create a {@link @xeokit/viewer!Viewer | Viewer} with\n * a {@link @xeokit/webglrenderer!WebGLRenderer | WebGLRenderer} and a {@link @xeokit/scene!Scene | Scene}, which holds model geometry and materials.\n *\n * On our Viewer, we will create a single {@link @xeokit/viewer!View | View} to render it to a canvas element on the page. We will\n * also attach a {@link @xeokit/cameracontrol!CameraControl | CameraControl} to our View, allowing us to control its camera with mouse and touch input.\n *\n * Within the Scene, we will create a {@link @xeokit/scene!SceneModel | SceneModel} to hold a model. We will then use\n * {@link @xeokit/dtx!loadDTX | loadDTX} to load\n * a [DTX](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#dtx) file into our SceneModel.\n *\n * The {@link @xeokit/core!SDKError | SDKError} class will be used to handle any errors that may occur during this process.\n *\n * * [Run this example]()\n *\n * ````javascript\n * import {SDKError} from \"@xeokit/core\";\n * import {Scene} from \"@xeokit/scene\";\n * import {WebGLRenderer} from \"@xeokit/webglrenderer\";\n * import {Viewer} from \"@xeokit/viewer\";\n * import {CameraControl} from \"@xeokit/cameracontrol\";\n * import {loadDTX, saveDTX} from \"@xeokit/dtx\";\n *\n * const scene = new Scene();\n *\n * const renderer = new WebGLRenderer({});\n *\n * const viewer = new Viewer({\n * id: \"myViewer\",\n * scene,\n * renderer\n * });\n\n * const view = viewer.createView({\n * id: \"myView\",\n * elementId: \"myCanvas\" // << Ensure that this HTMLElement exists in the page\n * });\n *\n * if (view instanceof SDKError) {\n * console.error(`Error creating View: ${view.message}`);\n *\n * } else {\n *\n * view.camera.eye = [1841982.93, 10.03, -5173286.74];\n * view.camera.look = [1842009.49, 9.68, -5173295.85];\n * view.camera.up = [0.0, 1.0, 0.0];\n *\n * new CameraControl(view, {});\n *\n * const sceneModel = scene.createModel({\n * id: \"myModel\"\n * });\n *\n * if (sceneModel instanceof SDKError) {\n * console.error(`Error creating SceneModel: ${sceneModel.message}`);\n *\n * } else {\n *\n * fetch(\"model.dtx\").then(response => {\n *\n * response.arrayBuffer().then(fileData => {\n *\n * loadDTX({\n * fileData,\n * sceneModel\n * }).then(() => {\n *\n * sceneModel.build();\n *\n * }).catch(sdkError => {\n * sceneModel.destroy();\n * console.error(`Error loading DTX: ${sdkError.message}`);\n * });\n *\n * }).catch(message => {\n * console.error(`Error creating ArrayBuffer: ${message}`);\n * });\n *\n * }).catch(message => {\n * console.error(`Error fetching model: ${message}`);\n * });\n * }\n * }\n * ````\n *\n * Using {@link @xeokit/dtx!saveDTX | saveDTX} to export the {@link @xeokit/scene!SceneModel | SceneModel} back to\n * [DTX](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#dtx):\n *\n * ````javascript\n * const arrayBuffer = saveDTX({\n * sceneModel\n * });\n * ````\n *\n * @module @xeokit/dtx\n */\nexport * from \"./loadDTX\";\nexport * from \"./saveDTX\";\nexport * from \"./versions/v1/DTXData_v1\";\n", "\n/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//const Z_FILTERED = 1;\n//const Z_HUFFMAN_ONLY = 2;\n//const Z_RLE = 3;\nconst Z_FIXED$1 = 4;\n//const Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nconst Z_BINARY = 0;\nconst Z_TEXT = 1;\n//const Z_ASCII = 1; // = Z_TEXT\nconst Z_UNKNOWN$1 = 2;\n\n/*============================================================================*/\n\n\nfunction zero$1(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nconst STORED_BLOCK = 0;\nconst STATIC_TREES = 1;\nconst DYN_TREES = 2;\n/* The three kinds of block type */\n\nconst MIN_MATCH$1 = 3;\nconst MAX_MATCH$1 = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nconst LENGTH_CODES$1 = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nconst LITERALS$1 = 256;\n/* number of literal bytes 0..255 */\n\nconst L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nconst D_CODES$1 = 30;\n/* number of distance codes */\n\nconst BL_CODES$1 = 19;\n/* number of codes used to transfer the bit lengths */\n\nconst HEAP_SIZE$1 = 2 * L_CODES$1 + 1;\n/* maximum heap size */\n\nconst MAX_BITS$1 = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nconst MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nconst END_BLOCK = 256;\n/* end of block literal code */\n\nconst REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nconst REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nconst REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nconst extra_lbits = /* extra bits for each length code */\n 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]);\n\nconst extra_dbits = /* extra bits for each distance code */\n 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]);\n\nconst extra_blbits = /* extra bits for each bit length code */\n new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]);\n\nconst bl_order =\n new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nconst DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nconst static_ltree = new Array((L_CODES$1 + 2) * 2);\nzero$1(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nconst static_dtree = new Array(D_CODES$1 * 2);\nzero$1(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nconst _dist_code = new Array(DIST_CODE_LEN);\nzero$1(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nconst _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);\nzero$1(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nconst base_length = new Array(LENGTH_CODES$1);\nzero$1(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nconst base_dist = new Array(D_CODES$1);\nzero$1(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nlet static_l_desc;\nlet static_d_desc;\nlet static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nconst d_code = (dist) => {\n\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n};\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nconst put_short = (s, w) => {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n};\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nconst send_bits = (s, value, length) => {\n\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n};\n\n\nconst send_code = (s, c, tree) => {\n\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n};\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nconst bi_reverse = (code, len) => {\n\n let res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nconst bi_flush = (s) => {\n\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n};\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nconst gen_bitlen = (s, desc) => {\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n\n const tree = desc.dyn_tree;\n const max_code = desc.max_code;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const extra = desc.stat_desc.extra_bits;\n const base = desc.stat_desc.extra_base;\n const max_length = desc.stat_desc.max_length;\n let h; /* heap index */\n let n, m; /* iterate over the tree elements */\n let bits; /* bit length */\n let xbits; /* extra bits */\n let f; /* frequency */\n let overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE$1; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Tracev((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Tracev((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n};\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nconst gen_codes = (tree, max_code, bl_count) => {\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n\n const next_code = new Array(MAX_BITS$1 + 1); /* next code value for each bit length */\n let code = 0; /* running code value */\n let bits; /* bit index */\n let n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS$1; bits++) {\n code = (code + bl_count[bits - 1]) << 1;\n next_code[bits] = code;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< {\n\n let n; /* iterates over tree elements */\n let bits; /* bit counter */\n let length; /* length value */\n let code; /* code value */\n let dist; /* distance index */\n const bl_count = new Array(MAX_BITS$1 + 1);\n /* number of codes at each bit length for an optimal tree */\n\n // do check in _tr_init()\n //if (static_init_done) return;\n\n /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n static_l_desc.static_tree = static_ltree;\n static_l_desc.extra_bits = extra_lbits;\n static_d_desc.static_tree = static_dtree;\n static_d_desc.extra_bits = extra_dbits;\n static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n /* Initialize the mapping length (0..255) -> length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES$1 - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES$1; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES$1 + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES$1; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);\n\n //static_init_done = true;\n};\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nconst init_block = (s) => {\n\n let n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES$1; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES$1; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES$1; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.sym_next = s.matches = 0;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nconst bi_windup = (s) =>\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n};\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nconst smaller = (tree, n, m, depth) => {\n\n const _n2 = n * 2;\n const _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n};\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nconst pqdownheap = (s, tree, k) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n\n const v = s.heap[k];\n let j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n};\n\n\n// inlined manually\n// const SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nconst compress_block = (s, ltree, dtree) => {\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n\n let dist; /* distance of matched string */\n let lc; /* match length or unmatched char (if dist == 0) */\n let sx = 0; /* running index in sym_buf */\n let code; /* the code to send */\n let extra; /* number of extra bits to send */\n\n if (s.sym_next !== 0) {\n do {\n dist = s.pending_buf[s.sym_buf + sx++] & 0xff;\n dist += (s.pending_buf[s.sym_buf + sx++] & 0xff) << 8;\n lc = s.pending_buf[s.sym_buf + sx++];\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS$1 + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and sym_buf is ok: */\n //Assert(s->pending < s->lit_bufsize + sx, \"pendingBuf overflow\");\n\n } while (sx < s.sym_next);\n }\n\n send_code(s, END_BLOCK, ltree);\n};\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nconst build_tree = (s, desc) => {\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n\n const tree = desc.dyn_tree;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const elems = desc.stat_desc.elems;\n let n, m; /* iterate over heap elements */\n let max_code = -1; /* largest code with non zero frequency */\n let node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE$1;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n};\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nconst scan_tree = (s, tree, max_code) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nconst send_tree = (s, tree, max_code) => {\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nconst build_bl_tree = (s) => {\n\n let max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n};\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nconst send_all_trees = (s, lcodes, dcodes, blcodes) => {\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n\n let rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n};\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"block list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"allow list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nconst detect_data_type = (s) => {\n /* block_mask is the bit mask of block-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n let block_mask = 0xf3ffc07f;\n let n;\n\n /* Check for non-textual (\"block-listed\") bytes. */\n for (n = 0; n <= 31; n++, block_mask >>>= 1) {\n if ((block_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"allow-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS$1; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"block-listed\" or \"allow-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n};\n\n\nlet static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nconst _tr_init$1 = (s) =>\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n};\n\n\n/* ===========================================================================\n * Send a stored block\n */\nconst _tr_stored_block$1 = (s, buf, stored_len, last) => {\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n bi_windup(s); /* align on byte boundary */\n put_short(s, stored_len);\n put_short(s, ~stored_len);\n if (stored_len) {\n s.pending_buf.set(s.window.subarray(buf, buf + stored_len), s.pending);\n }\n s.pending += stored_len;\n};\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nconst _tr_align$1 = (s) => {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n};\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and write out the encoded block.\n */\nconst _tr_flush_block$1 = (s, buf, stored_len, last) => {\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n\n let opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n let max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN$1) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->sym_next / 3));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block$1(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n};\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nconst _tr_tally$1 = (s, dist, lc) => {\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n\n s.pending_buf[s.sym_buf + s.sym_next++] = dist;\n s.pending_buf[s.sym_buf + s.sym_next++] = dist >> 8;\n s.pending_buf[s.sym_buf + s.sym_next++] = lc;\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n return (s.sym_next === s.sym_end);\n};\n\nvar _tr_init_1 = _tr_init$1;\nvar _tr_stored_block_1 = _tr_stored_block$1;\nvar _tr_flush_block_1 = _tr_flush_block$1;\nvar _tr_tally_1 = _tr_tally$1;\nvar _tr_align_1 = _tr_align$1;\n\nvar trees = {\n\t_tr_init: _tr_init_1,\n\t_tr_stored_block: _tr_stored_block_1,\n\t_tr_flush_block: _tr_flush_block_1,\n\t_tr_tally: _tr_tally_1,\n\t_tr_align: _tr_align_1\n};\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = (adler, buf, len, pos) => {\n let s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n};\n\n\nvar adler32_1 = adler32;\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nconst makeTable = () => {\n let c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n};\n\n// Create table on load. Just 255 signed longs. Not a problem.\nconst crcTable = new Uint32Array(makeTable());\n\n\nconst crc32 = (crc, buf, len, pos) => {\n const t = crcTable;\n const end = pos + len;\n\n crc ^= -1;\n\n for (let i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n};\n\n\nvar crc32_1 = crc32;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar messages = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar constants$2 = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = trees;\n\n\n\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$2, Z_PARTIAL_FLUSH, Z_FULL_FLUSH: Z_FULL_FLUSH$1, Z_FINISH: Z_FINISH$3, Z_BLOCK: Z_BLOCK$1,\n Z_OK: Z_OK$3, Z_STREAM_END: Z_STREAM_END$3, Z_STREAM_ERROR: Z_STREAM_ERROR$2, Z_DATA_ERROR: Z_DATA_ERROR$2, Z_BUF_ERROR: Z_BUF_ERROR$1,\n Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION$1,\n Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY$1,\n Z_UNKNOWN,\n Z_DEFLATED: Z_DEFLATED$2\n} = constants$2;\n\n/*============================================================================*/\n\n\nconst MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nconst MAX_WBITS$1 = 15;\n/* 32K LZ77 window */\nconst DEF_MEM_LEVEL = 8;\n\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nconst D_CODES = 30;\n/* number of distance codes */\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\nconst MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nconst PRESET_DICT = 0x20;\n\nconst INIT_STATE = 42; /* zlib header -> BUSY_STATE */\n//#ifdef GZIP\nconst GZIP_STATE = 57; /* gzip header -> BUSY_STATE | EXTRA_STATE */\n//#endif\nconst EXTRA_STATE = 69; /* gzip extra block -> NAME_STATE */\nconst NAME_STATE = 73; /* gzip file name -> COMMENT_STATE */\nconst COMMENT_STATE = 91; /* gzip comment -> HCRC_STATE */\nconst HCRC_STATE = 103; /* gzip header CRC -> BUSY_STATE */\nconst BUSY_STATE = 113; /* deflate -> FINISH_STATE */\nconst FINISH_STATE = 666; /* stream complete */\n\nconst BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nconst BS_BLOCK_DONE = 2; /* block flush performed */\nconst BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nconst BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nconst OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nconst err = (strm, errorCode) => {\n strm.msg = messages[errorCode];\n return errorCode;\n};\n\nconst rank = (f) => {\n return ((f) * 2) - ((f) > 4 ? 9 : 0);\n};\n\nconst zero = (buf) => {\n let len = buf.length; while (--len >= 0) { buf[len] = 0; }\n};\n\n/* ===========================================================================\n * Slide the hash table when sliding the window down (could be avoided with 32\n * bit values at the expense of memory usage). We slide even when level == 0 to\n * keep the hash table consistent if we switch back to level > 0 later.\n */\nconst slide_hash = (s) => {\n let n, m;\n let p;\n let wsize = s.w_size;\n\n n = s.hash_size;\n p = n;\n do {\n m = s.head[--p];\n s.head[p] = (m >= wsize ? m - wsize : 0);\n } while (--n);\n n = wsize;\n//#ifndef FASTEST\n p = n;\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= wsize ? m - wsize : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n//#endif\n};\n\n/* eslint-disable new-cap */\nlet HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask;\n// This hash causes less collisions, https://github.com/nodeca/pako/issues/135\n// But breaks binary compatibility\n//let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask;\nlet HASH = HASH_ZLIB;\n\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output, except for\n * some deflate_stored() output, goes through this function so some\n * applications may wish to modify it to avoid allocating a large\n * strm->next_out buffer and copying into it. (See also read_buf()).\n */\nconst flush_pending = (strm) => {\n const s = strm.state;\n\n //_tr_flush_bits(s);\n let len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n};\n\n\nconst flush_block_only = (s, last) => {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n};\n\n\nconst put_byte = (s, b) => {\n s.pending_buf[s.pending++] = b;\n};\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nconst putShortMSB = (s, b) => {\n\n // put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n};\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nconst read_buf = (strm, buf, start, size) => {\n\n let len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32_1(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32_1(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n};\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nconst longest_match = (s, cur_match) => {\n\n let chain_length = s.max_chain_length; /* max hash chain length */\n let scan = s.strstart; /* current string */\n let match; /* matched string */\n let len; /* length of current match */\n let best_len = s.prev_length; /* best match length so far */\n let nice_match = s.nice_match; /* stop if match long enough */\n const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n const _win = s.window; // shortcut\n\n const wmask = s.w_mask;\n const prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n const strend = s.strstart + MAX_MATCH;\n let scan_end1 = _win[scan + best_len - 1];\n let scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n};\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nconst fill_window = (s) => {\n\n const _w_size = s.w_size;\n let n, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n s.window.set(s.window.subarray(_w_size, _w_size + _w_size - more), 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n slide_hash(s);\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// const curr = s.strstart + s.lookahead;\n// let init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n};\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n *\n * In case deflateParams() is used to later switch to a non-zero compression\n * level, s->matches (otherwise unused when storing) keeps track of the number\n * of hash table slides to perform. If s->matches is 1, then one hash table\n * slide will be done when switching. If s->matches is 2, the maximum value\n * allowed here, then the hash table will be cleared, since two or more slides\n * is the same as a clear.\n *\n * deflate_stored() is written to minimize the number of times an input byte is\n * copied. It is most efficient with large input and output buffers, which\n * maximizes the opportunites to have a single copy from next_in to next_out.\n */\nconst deflate_stored = (s, flush) => {\n\n /* Smallest worthy block size when not flushing or finishing. By default\n * this is 32K. This can be as small as 507 bytes for memLevel == 1. For\n * large input and output buffers, the stored block size will be larger.\n */\n let min_block = s.pending_buf_size - 5 > s.w_size ? s.w_size : s.pending_buf_size - 5;\n\n /* Copy as many min_block or larger stored blocks directly to next_out as\n * possible. If flushing, copy the remaining available input to next_out as\n * stored blocks, if there is enough space.\n */\n let len, left, have, last = 0;\n let used = s.strm.avail_in;\n do {\n /* Set len to the maximum size block that we can copy directly with the\n * available input data and output space. Set left to how much of that\n * would be copied from what's left in the window.\n */\n len = 65535/* MAX_STORED */; /* maximum deflate stored block length */\n have = (s.bi_valid + 42) >> 3; /* number of header bytes */\n if (s.strm.avail_out < have) { /* need room for header */\n break;\n }\n /* maximum stored block length that will fit in avail_out: */\n have = s.strm.avail_out - have;\n left = s.strstart - s.block_start; /* bytes left in window */\n if (len > left + s.strm.avail_in) {\n len = left + s.strm.avail_in; /* limit len to the input */\n }\n if (len > have) {\n len = have; /* limit len to the output */\n }\n\n /* If the stored block would be less than min_block in length, or if\n * unable to copy all of the available input when flushing, then try\n * copying to the window and the pending buffer instead. Also don't\n * write an empty block when flushing -- deflate() does that.\n */\n if (len < min_block && ((len === 0 && flush !== Z_FINISH$3) ||\n flush === Z_NO_FLUSH$2 ||\n len !== left + s.strm.avail_in)) {\n break;\n }\n\n /* Make a dummy stored block in pending to get the header bytes,\n * including any pending bits. This also updates the debugging counts.\n */\n last = flush === Z_FINISH$3 && len === left + s.strm.avail_in ? 1 : 0;\n _tr_stored_block(s, 0, 0, last);\n\n /* Replace the lengths in the dummy stored block with len. */\n s.pending_buf[s.pending - 4] = len;\n s.pending_buf[s.pending - 3] = len >> 8;\n s.pending_buf[s.pending - 2] = ~len;\n s.pending_buf[s.pending - 1] = ~len >> 8;\n\n /* Write the stored block header bytes. */\n flush_pending(s.strm);\n\n//#ifdef ZLIB_DEBUG\n// /* Update debugging counts for the data about to be copied. */\n// s->compressed_len += len << 3;\n// s->bits_sent += len << 3;\n//#endif\n\n /* Copy uncompressed bytes from the window to next_out. */\n if (left) {\n if (left > len) {\n left = len;\n }\n //zmemcpy(s->strm->next_out, s->window + s->block_start, left);\n s.strm.output.set(s.window.subarray(s.block_start, s.block_start + left), s.strm.next_out);\n s.strm.next_out += left;\n s.strm.avail_out -= left;\n s.strm.total_out += left;\n s.block_start += left;\n len -= left;\n }\n\n /* Copy uncompressed bytes directly from next_in to next_out, updating\n * the check value.\n */\n if (len) {\n read_buf(s.strm, s.strm.output, s.strm.next_out, len);\n s.strm.next_out += len;\n s.strm.avail_out -= len;\n s.strm.total_out += len;\n }\n } while (last === 0);\n\n /* Update the sliding window with the last s->w_size bytes of the copied\n * data, or append all of the copied data to the existing window if less\n * than s->w_size bytes were copied. Also update the number of bytes to\n * insert in the hash tables, in the event that deflateParams() switches to\n * a non-zero compression level.\n */\n used -= s.strm.avail_in; /* number of input bytes directly copied */\n if (used) {\n /* If any input was used, then no unused input remains in the window,\n * therefore s->block_start == s->strstart.\n */\n if (used >= s.w_size) { /* supplant the previous history */\n s.matches = 2; /* clear hash */\n //zmemcpy(s->window, s->strm->next_in - s->w_size, s->w_size);\n s.window.set(s.strm.input.subarray(s.strm.next_in - s.w_size, s.strm.next_in), 0);\n s.strstart = s.w_size;\n s.insert = s.strstart;\n }\n else {\n if (s.window_size - s.strstart <= used) {\n /* Slide the window down. */\n s.strstart -= s.w_size;\n //zmemcpy(s->window, s->window + s->w_size, s->strstart);\n s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0);\n if (s.matches < 2) {\n s.matches++; /* add a pending slide_hash() */\n }\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n }\n //zmemcpy(s->window + s->strstart, s->strm->next_in - used, used);\n s.window.set(s.strm.input.subarray(s.strm.next_in - used, s.strm.next_in), s.strstart);\n s.strstart += used;\n s.insert += used > s.w_size - s.insert ? s.w_size - s.insert : used;\n }\n s.block_start = s.strstart;\n }\n if (s.high_water < s.strstart) {\n s.high_water = s.strstart;\n }\n\n /* If the last block was written to next_out, then done. */\n if (last) {\n return BS_FINISH_DONE;\n }\n\n /* If flushing and all input has been consumed, then done. */\n if (flush !== Z_NO_FLUSH$2 && flush !== Z_FINISH$3 &&\n s.strm.avail_in === 0 && s.strstart === s.block_start) {\n return BS_BLOCK_DONE;\n }\n\n /* Fill the window with any remaining input. */\n have = s.window_size - s.strstart;\n if (s.strm.avail_in > have && s.block_start >= s.w_size) {\n /* Slide the window down. */\n s.block_start -= s.w_size;\n s.strstart -= s.w_size;\n //zmemcpy(s->window, s->window + s->w_size, s->strstart);\n s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0);\n if (s.matches < 2) {\n s.matches++; /* add a pending slide_hash() */\n }\n have += s.w_size; /* more space now */\n if (s.insert > s.strstart) {\n s.insert = s.strstart;\n }\n }\n if (have > s.strm.avail_in) {\n have = s.strm.avail_in;\n }\n if (have) {\n read_buf(s.strm, s.window, s.strstart, have);\n s.strstart += have;\n s.insert += have > s.w_size - s.insert ? s.w_size - s.insert : have;\n }\n if (s.high_water < s.strstart) {\n s.high_water = s.strstart;\n }\n\n /* There was not enough avail_out to write a complete worthy or flushed\n * stored block to next_out. Write a stored block to pending instead, if we\n * have enough input for a worthy block, or if flushing and there is enough\n * room for the remaining input as a stored block in the pending buffer.\n */\n have = (s.bi_valid + 42) >> 3; /* number of header bytes */\n /* maximum stored block length that will fit in pending: */\n have = s.pending_buf_size - have > 65535/* MAX_STORED */ ? 65535/* MAX_STORED */ : s.pending_buf_size - have;\n min_block = have > s.w_size ? s.w_size : have;\n left = s.strstart - s.block_start;\n if (left >= min_block ||\n ((left || flush === Z_FINISH$3) && flush !== Z_NO_FLUSH$2 &&\n s.strm.avail_in === 0 && left <= have)) {\n len = left > have ? have : left;\n last = flush === Z_FINISH$3 && s.strm.avail_in === 0 &&\n len === left ? 1 : 0;\n _tr_stored_block(s, s.block_start, len, last);\n s.block_start += len;\n flush_pending(s.strm);\n }\n\n /* We've done all we can with the available input and output. */\n return last ? BS_FINISH_STARTED : BS_NEED_MORE;\n};\n\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nconst deflate_fast = (s, flush) => {\n\n let hash_head; /* head of the hash chain */\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nconst deflate_slow = (s, flush) => {\n\n let hash_head; /* head of hash chain */\n let bflush; /* set if current block must be flushed */\n\n let max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n};\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nconst deflate_rle = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n let prev; /* byte at distance one to match */\n let scan, strend; /* scan goes up to strend for length of run */\n\n const _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nconst deflate_huff = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.sym_next) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nconst configuration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nconst lm_init = (s) => {\n\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n};\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED$2; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2);\n this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2);\n this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new Uint16Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new Uint16Array(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new Uint16Array(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.sym_buf = 0; /* buffer for distances and literals/lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.sym_next = 0; /* running index in sym_buf */\n this.sym_end = 0; /* symbol table full when sym_next reaches this */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\n/* =========================================================================\n * Check for a valid deflate stream state. Return 0 if ok, 1 if not.\n */\nconst deflateStateCheck = (strm) => {\n\n if (!strm) {\n return 1;\n }\n const s = strm.state;\n if (!s || s.strm !== strm || (s.status !== INIT_STATE &&\n//#ifdef GZIP\n s.status !== GZIP_STATE &&\n//#endif\n s.status !== EXTRA_STATE &&\n s.status !== NAME_STATE &&\n s.status !== COMMENT_STATE &&\n s.status !== HCRC_STATE &&\n s.status !== BUSY_STATE &&\n s.status !== FINISH_STATE)) {\n return 1;\n }\n return 0;\n};\n\n\nconst deflateResetKeep = (strm) => {\n\n if (deflateStateCheck(strm)) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n const s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status =\n//#ifdef GZIP\n s.wrap === 2 ? GZIP_STATE :\n//#endif\n s.wrap ? INIT_STATE : BUSY_STATE;\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = -2;\n _tr_init(s);\n return Z_OK$3;\n};\n\n\nconst deflateReset = (strm) => {\n\n const ret = deflateResetKeep(strm);\n if (ret === Z_OK$3) {\n lm_init(strm.state);\n }\n return ret;\n};\n\n\nconst deflateSetHeader = (strm, head) => {\n\n if (deflateStateCheck(strm) || strm.state.wrap !== 2) {\n return Z_STREAM_ERROR$2;\n }\n strm.state.gzhead = head;\n return Z_OK$3;\n};\n\n\nconst deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {\n\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR$2;\n }\n let wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION$1) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$2 ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED || (windowBits === 8 && wrap !== 1)) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n const s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n s.status = INIT_STATE; /* to pass state test in deflateReset() */\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new Uint8Array(s.w_size * 2);\n s.head = new Uint16Array(s.hash_size);\n s.prev = new Uint16Array(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n /* We overlay pending_buf and sym_buf. This works since the average size\n * for length/distance pairs over any compressed block is assured to be 31\n * bits or less.\n *\n * Analysis: The longest fixed codes are a length code of 8 bits plus 5\n * extra bits, for lengths 131 to 257. The longest fixed distance codes are\n * 5 bits plus 13 extra bits, for distances 16385 to 32768. The longest\n * possible fixed-codes length/distance pair is then 31 bits total.\n *\n * sym_buf starts one-fourth of the way into pending_buf. So there are\n * three bytes in sym_buf for every four bytes in pending_buf. Each symbol\n * in sym_buf is three bytes -- two for the distance and one for the\n * literal/length. As each symbol is consumed, the pointer to the next\n * sym_buf value to read moves forward three bytes. From that symbol, up to\n * 31 bits are written to pending_buf. The closest the written pending_buf\n * bits gets to the next sym_buf symbol to read is just before the last\n * code is written. At that time, 31*(n-2) bits have been written, just\n * after 24*(n-2) bits have been consumed from sym_buf. sym_buf starts at\n * 8*n bits into pending_buf. (Note that the symbol buffer fills when n-1\n * symbols are written.) The closest the writing gets to what is unread is\n * then n+14 bits. Here n is lit_bufsize, which is 16384 by default, and\n * can range from 128 to 32768.\n *\n * Therefore, at a minimum, there are 142 bits of space between what is\n * written and what is read in the overlain buffers, so the symbols cannot\n * be overwritten by the compressed data. That space is actually 139 bits,\n * due to the three-bit fixed-code block header.\n *\n * That covers the case where either Z_FIXED is specified, forcing fixed\n * codes, or when the use of fixed codes is chosen, because that choice\n * results in a smaller compressed block than dynamic codes. That latter\n * condition then assures that the above analysis also covers all dynamic\n * blocks. A dynamic-code block will only be chosen to be emitted if it has\n * fewer bits than a fixed-code block would for the same set of symbols.\n * Therefore its average symbol length is assured to be less than 31. So\n * the compressed data for a dynamic block also cannot overwrite the\n * symbols from which it is being constructed.\n */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n s.pending_buf = new Uint8Array(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->sym_buf = s->pending_buf + s->lit_bufsize;\n s.sym_buf = s.lit_bufsize;\n\n //s->sym_end = (s->lit_bufsize - 1) * 3;\n s.sym_end = (s.lit_bufsize - 1) * 3;\n /* We avoid equality with lit_bufsize*3 because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n};\n\nconst deflateInit = (strm, level) => {\n\n return deflateInit2(strm, level, Z_DEFLATED$2, MAX_WBITS$1, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY$1);\n};\n\n\n/* ========================================================================= */\nconst deflate$2 = (strm, flush) => {\n\n if (deflateStateCheck(strm) || flush > Z_BLOCK$1 || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n\n if (!strm.output ||\n (strm.avail_in !== 0 && !strm.input) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH$3)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR$1 : Z_STREAM_ERROR$2);\n }\n\n const old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK$3;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH$3) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* Write the header */\n if (s.status === INIT_STATE && s.wrap === 0) {\n s.status = BUSY_STATE;\n }\n if (s.status === INIT_STATE) {\n /* zlib header */\n let header = (Z_DEFLATED$2 + ((s.w_bits - 8) << 4)) << 8;\n let level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n//#ifdef GZIP\n if (s.status === GZIP_STATE) {\n /* gzip header */\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let left = (s.gzhead.extra.length & 0xffff) - s.gzindex;\n while (s.pending + left > s.pending_buf_size) {\n let copy = s.pending_buf_size - s.pending;\n // zmemcpy(s.pending_buf + s.pending,\n // s.gzhead.extra + s.gzindex, copy);\n s.pending_buf.set(s.gzhead.extra.subarray(s.gzindex, s.gzindex + copy), s.pending);\n s.pending = s.pending_buf_size;\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex += copy;\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n beg = 0;\n left -= copy;\n }\n // JS specific: s.gzhead.extra may be TypedArray or Array for backward compatibility\n // TypedArray.slice and TypedArray.from don't exist in IE10-IE11\n let gzhead_extra = new Uint8Array(s.gzhead.extra);\n // zmemcpy(s->pending_buf + s->pending,\n // s->gzhead->extra + s->gzindex, left);\n s.pending_buf.set(gzhead_extra.subarray(s.gzindex, s.gzindex + left), s.pending);\n s.pending += left;\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex = 0;\n }\n s.status = NAME_STATE;\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let val;\n do {\n if (s.pending === s.pending_buf_size) {\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n beg = 0;\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n s.gzindex = 0;\n }\n s.status = COMMENT_STATE;\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n let beg = s.pending; /* start of bytes to update crc */\n let val;\n do {\n if (s.pending === s.pending_buf_size) {\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n beg = 0;\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n //--- HCRC_UPDATE(beg) ---//\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n //---//\n }\n s.status = HCRC_STATE;\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n }\n s.status = BUSY_STATE;\n\n /* Compression must start with an empty pending buffer */\n flush_pending(strm);\n if (s.pending !== 0) {\n s.last_flush = -1;\n return Z_OK$3;\n }\n }\n//#endif\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH$2 && s.status !== FINISH_STATE)) {\n let bstate = s.level === 0 ? deflate_stored(s, flush) :\n s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush) :\n s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush);\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK$3;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n _tr_align(s);\n }\n else if (flush !== Z_BLOCK$1) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH$1) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK$3;\n }\n }\n }\n\n if (flush !== Z_FINISH$3) { return Z_OK$3; }\n if (s.wrap <= 0) { return Z_STREAM_END$3; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK$3 : Z_STREAM_END$3;\n};\n\n\nconst deflateEnd = (strm) => {\n\n if (deflateStateCheck(strm)) {\n return Z_STREAM_ERROR$2;\n }\n\n const status = strm.state.status;\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$2) : Z_OK$3;\n};\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nconst deflateSetDictionary = (strm, dictionary) => {\n\n let dictLength = dictionary.length;\n\n if (deflateStateCheck(strm)) {\n return Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n const wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR$2;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32_1(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n let tmpDict = new Uint8Array(s.w_size);\n tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n const avail = strm.avail_in;\n const next = strm.next_in;\n const input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n let str = s.strstart;\n let n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK$3;\n};\n\n\nvar deflateInit_1 = deflateInit;\nvar deflateInit2_1 = deflateInit2;\nvar deflateReset_1 = deflateReset;\nvar deflateResetKeep_1 = deflateResetKeep;\nvar deflateSetHeader_1 = deflateSetHeader;\nvar deflate_2$1 = deflate$2;\nvar deflateEnd_1 = deflateEnd;\nvar deflateSetDictionary_1 = deflateSetDictionary;\nvar deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.deflateBound = deflateBound;\nmodule.exports.deflateCopy = deflateCopy;\nmodule.exports.deflateGetDictionary = deflateGetDictionary;\nmodule.exports.deflateParams = deflateParams;\nmodule.exports.deflatePending = deflatePending;\nmodule.exports.deflatePrime = deflatePrime;\nmodule.exports.deflateTune = deflateTune;\n*/\n\nvar deflate_1$2 = {\n\tdeflateInit: deflateInit_1,\n\tdeflateInit2: deflateInit2_1,\n\tdeflateReset: deflateReset_1,\n\tdeflateResetKeep: deflateResetKeep_1,\n\tdeflateSetHeader: deflateSetHeader_1,\n\tdeflate: deflate_2$1,\n\tdeflateEnd: deflateEnd_1,\n\tdeflateSetDictionary: deflateSetDictionary_1,\n\tdeflateInfo: deflateInfo\n};\n\nconst _has = (obj, key) => {\n return Object.prototype.hasOwnProperty.call(obj, key);\n};\n\nvar assign = function (obj /*from1, from2, from3, ...*/) {\n const sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n const source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (const p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// Join array of chunks to single array.\nvar flattenChunks = (chunks) => {\n // calculate data length\n let len = 0;\n\n for (let i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n const result = new Uint8Array(len);\n\n for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {\n let chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n};\n\nvar common = {\n\tassign: assign,\n\tflattenChunks: flattenChunks\n};\n\n// String encode/decode helpers\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nlet STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nconst _utf8len = new Uint8Array(256);\nfor (let q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nvar string2buf = (str) => {\n if (typeof TextEncoder === 'function' && TextEncoder.prototype.encode) {\n return new TextEncoder().encode(str);\n }\n\n let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new Uint8Array(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper\nconst buf2binstring = (buf, len) => {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if (buf.subarray && STR_APPLY_UIA_OK) {\n return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));\n }\n }\n\n let result = '';\n for (let i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n};\n\n\n// convert array to string\nvar buf2string = (buf, max) => {\n const len = max || buf.length;\n\n if (typeof TextDecoder === 'function' && TextDecoder.prototype.decode) {\n return new TextDecoder().decode(buf.subarray(0, max));\n }\n\n let i, out;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n const utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n let c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n let c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nvar utf8border = (buf, max) => {\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n let pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\nvar strings = {\n\tstring2buf: string2buf,\n\tbuf2string: buf2string,\n\tutf8border: utf8border\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nvar zstream = ZStream;\n\nconst toString$1 = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$1, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH: Z_FINISH$2,\n Z_OK: Z_OK$2, Z_STREAM_END: Z_STREAM_END$2,\n Z_DEFAULT_COMPRESSION,\n Z_DEFAULT_STRATEGY,\n Z_DEFLATED: Z_DEFLATED$1\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate$1(options) {\n this.options = common.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED$1,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY\n }, options || {});\n\n let opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = deflate_1$2.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n if (opt.header) {\n deflate_1$2.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n let dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = deflate_1$2.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must\n * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending\n * buffers and call [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n let status, _flush_mode;\n\n if (this.ended) { return false; }\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH$2 : Z_NO_FLUSH$1;\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString$1.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n // Make sure avail_out > 6 to avoid repeating markers\n if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n status = deflate_1$2.deflate(strm, _flush_mode);\n\n // Ended => flush and finish\n if (status === Z_STREAM_END$2) {\n if (strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n }\n status = deflate_1$2.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK$2;\n }\n\n // Flush if out buffer full\n if (strm.avail_out === 0) {\n this.onData(strm.output);\n continue;\n }\n\n // Flush if requested and has data\n if (_flush_mode > 0 && strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array): output data.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK$2) {\n this.result = common.flattenChunks(this.chunks);\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate$1(input, options) {\n const deflator = new Deflate$1(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || messages[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return deflate$1(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array\n * - data (Uint8Array|ArrayBuffer|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip$1(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate$1(input, options);\n}\n\n\nvar Deflate_1$1 = Deflate$1;\nvar deflate_2 = deflate$1;\nvar deflateRaw_1$1 = deflateRaw$1;\nvar gzip_1$1 = gzip$1;\nvar constants$1 = constants$2;\n\nvar deflate_1$1 = {\n\tDeflate: Deflate_1$1,\n\tdeflate: deflate_2,\n\tdeflateRaw: deflateRaw_1$1,\n\tgzip: gzip_1$1,\n\tconstants: constants$1\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nconst BAD$1 = 16209; /* got a data error -- remain here until reset */\nconst TYPE$1 = 16191; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nvar inffast = function inflate_fast(strm, start) {\n let _in; /* local strm.input */\n let last; /* have enough input while in < last */\n let _out; /* local strm.output */\n let beg; /* inflate()'s initial strm.output */\n let end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n let dmax; /* maximum distance from zlib header */\n//#endif\n let wsize; /* window size or zero if not using window */\n let whave; /* valid bytes in the window */\n let wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n let s_window; /* allocated sliding window, if wsize != 0 */\n let hold; /* local strm.hold */\n let bits; /* local strm.bits */\n let lcode; /* local strm.lencode */\n let dcode; /* local strm.distcode */\n let lmask; /* mask for first level of length codes */\n let dmask; /* mask for first level of distance codes */\n let here; /* retrieved table entry */\n let op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n let len; /* match length, unused bytes */\n let dist; /* match distance */\n let from; /* where to copy match from */\n let from_source;\n\n\n let input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n const state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE$1;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst MAXBITS = 15;\nconst ENOUGH_LENS$1 = 852;\nconst ENOUGH_DISTS$1 = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst CODES$1 = 0;\nconst LENS$1 = 1;\nconst DISTS$1 = 2;\n\nconst lbase = new Uint16Array([ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n]);\n\nconst lext = new Uint8Array([ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n]);\n\nconst dbase = new Uint16Array([ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n]);\n\nconst dext = new Uint8Array([ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n]);\n\nconst inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) =>\n{\n const bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n let len = 0; /* a code's length in bits */\n let sym = 0; /* index of code symbols */\n let min = 0, max = 0; /* minimum and maximum code lengths */\n let root = 0; /* number of index bits for root table */\n let curr = 0; /* number of index bits for current table */\n let drop = 0; /* code bits to drop for sub-table */\n let left = 0; /* number of prefix codes available */\n let used = 0; /* code entries in table used */\n let huff = 0; /* Huffman code */\n let incr; /* for incrementing code, index */\n let fill; /* index for replicating entries */\n let low; /* low bits for current root entry */\n let mask; /* mask for low root bits */\n let next; /* next available space in table */\n let base = null; /* base value table to use */\n// let shoextra; /* extra bits table to use */\n let match; /* use base and extra for symbol >= match */\n const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n let extra = null;\n\n let here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES$1 || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES$1) {\n base = extra = work; /* dummy value--not used */\n match = 20;\n\n } else if (type === LENS$1) {\n base = lbase;\n extra = lext;\n match = 257;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n match = 0;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] + 1 < match) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] >= match) {\n here_op = extra[work[sym] - match];\n here_val = base[work[sym] - match];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n\nvar inftrees = inflate_table;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n\n\n\n\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_FINISH: Z_FINISH$1, Z_BLOCK, Z_TREES,\n Z_OK: Z_OK$1, Z_STREAM_END: Z_STREAM_END$1, Z_NEED_DICT: Z_NEED_DICT$1, Z_STREAM_ERROR: Z_STREAM_ERROR$1, Z_DATA_ERROR: Z_DATA_ERROR$1, Z_MEM_ERROR: Z_MEM_ERROR$1, Z_BUF_ERROR,\n Z_DEFLATED\n} = constants$2;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nconst HEAD = 16180; /* i: waiting for magic header */\nconst FLAGS = 16181; /* i: waiting for method and flags (gzip) */\nconst TIME = 16182; /* i: waiting for modification time (gzip) */\nconst OS = 16183; /* i: waiting for extra flags and operating system (gzip) */\nconst EXLEN = 16184; /* i: waiting for extra length (gzip) */\nconst EXTRA = 16185; /* i: waiting for extra bytes (gzip) */\nconst NAME = 16186; /* i: waiting for end of file name (gzip) */\nconst COMMENT = 16187; /* i: waiting for end of comment (gzip) */\nconst HCRC = 16188; /* i: waiting for header crc (gzip) */\nconst DICTID = 16189; /* i: waiting for dictionary check value */\nconst DICT = 16190; /* waiting for inflateSetDictionary() call */\nconst TYPE = 16191; /* i: waiting for type bits, including last-flag bit */\nconst TYPEDO = 16192; /* i: same, but skip check to exit inflate on new block */\nconst STORED = 16193; /* i: waiting for stored size (length and complement) */\nconst COPY_ = 16194; /* i/o: same as COPY below, but only first time in */\nconst COPY = 16195; /* i/o: waiting for input or output to copy stored block */\nconst TABLE = 16196; /* i: waiting for dynamic block table lengths */\nconst LENLENS = 16197; /* i: waiting for code length code lengths */\nconst CODELENS = 16198; /* i: waiting for length/lit and distance code lengths */\nconst LEN_ = 16199; /* i: same as LEN below, but only first time in */\nconst LEN = 16200; /* i: waiting for length/lit/eob code */\nconst LENEXT = 16201; /* i: waiting for length extra bits */\nconst DIST = 16202; /* i: waiting for distance code */\nconst DISTEXT = 16203; /* i: waiting for distance extra bits */\nconst MATCH = 16204; /* o: waiting for output space to copy string */\nconst LIT = 16205; /* o: waiting for output space to write literal */\nconst CHECK = 16206; /* i: waiting for 32-bit check value */\nconst LENGTH = 16207; /* i: waiting for 32-bit length (gzip) */\nconst DONE = 16208; /* finished check, done -- remain here until reset */\nconst BAD = 16209; /* got a data error -- remain here until reset */\nconst MEM = 16210; /* got an inflate() memory error -- remain here until reset */\nconst SYNC = 16211; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_WBITS = MAX_WBITS;\n\n\nconst zswap32 = (q) => {\n\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n};\n\n\nfunction InflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip,\n bit 2 true to validate check value */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib), or\n -1 if raw or no header yet */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new Uint16Array(320); /* temporary storage for code lengths */\n this.work = new Uint16Array(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new Int32Array(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\n\nconst inflateStateCheck = (strm) => {\n\n if (!strm) {\n return 1;\n }\n const state = strm.state;\n if (!state || state.strm !== strm ||\n state.mode < HEAD || state.mode > SYNC) {\n return 1;\n }\n return 0;\n};\n\n\nconst inflateResetKeep = (strm) => {\n\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.flags = -1;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);\n state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK$1;\n};\n\n\nconst inflateReset = (strm) => {\n\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n};\n\n\nconst inflateReset2 = (strm, windowBits) => {\n let wrap;\n\n /* get the state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 5;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR$1;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n};\n\n\nconst inflateInit2 = (strm, windowBits) => {\n\n if (!strm) { return Z_STREAM_ERROR$1; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n const state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.strm = strm;\n state.window = null/*Z_NULL*/;\n state.mode = HEAD; /* to pass state test in inflateReset2() */\n const ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK$1) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n};\n\n\nconst inflateInit = (strm) => {\n\n return inflateInit2(strm, DEF_WBITS);\n};\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nlet virgin = true;\n\nlet lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\n\nconst fixedtables = (state) => {\n\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n lenfix = new Int32Array(512);\n distfix = new Int32Array(32);\n\n /* literal/length table */\n let sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inftrees(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inftrees(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n};\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nconst updatewindow = (strm, src, end, copy) => {\n\n let dist;\n const state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new Uint8Array(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n state.window.set(src.subarray(end - state.wsize, end), 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n state.window.set(src.subarray(end - copy, end), 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n};\n\n\nconst inflate$2 = (strm, flush) => {\n\n let state;\n let input, output; // input/output buffers\n let next; /* next input INDEX */\n let put; /* next output INDEX */\n let have, left; /* available input and output */\n let hold; /* bit buffer */\n let bits; /* bits in bit buffer */\n let _in, _out; /* save starting available input and output */\n let copy; /* number of stored or match bytes to copy */\n let from; /* where to copy match bytes from */\n let from_source;\n let here = 0; /* current decoding table entry */\n let here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //let last; /* parent table entry */\n let last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n let len; /* length to copy for repeats, bits to drop */\n let ret; /* return code */\n const hbuf = new Uint8Array(4); /* buffer for gzip header crc calculation */\n let opts;\n\n let n; // temporary variable for NEED_BITS\n\n const order = /* permutation of code lengths */\n new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]);\n\n\n if (inflateStateCheck(strm) || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR$1;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK$1;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n if (state.wbits === 0) {\n state.wbits = 15;\n }\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n if (len > 15 || len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n\n // !!! pako patch. Force use `options.windowBits` if passed.\n // Required to always use max window size by default.\n state.dmax = 1 << state.wbits;\n //state.dmax = 1 << len;\n\n state.flags = 0; /* indicate zlib header */\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32_1(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Uint8Array(state.head.extra_len);\n }\n state.head.extra.set(\n input.subarray(\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n next + copy\n ),\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if ((state.flags & 0x0200) && (state.wrap & 4)) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 4) && hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT$1;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n output.set(input.subarray(next, next + copy), put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inftrees(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inftrees(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inftrees(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inffast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if ((state.wrap & 4) && _out) {\n strm.adler = state.check =\n /*UPDATE_CHECK(state.check, put - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, put - _out) : adler32_1(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.wrap & 4) && (state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 4) && hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END$1;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR$1;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR$1;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR$1;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH$1))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if ((state.wrap & 4) && _out) {\n strm.adler = state.check = /*UPDATE_CHECK(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, strm.next_out - _out) : adler32_1(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n};\n\n\nconst inflateEnd = (strm) => {\n\n if (inflateStateCheck(strm)) {\n return Z_STREAM_ERROR$1;\n }\n\n let state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK$1;\n};\n\n\nconst inflateGetHeader = (strm, head) => {\n\n /* check state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR$1; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK$1;\n};\n\n\nconst inflateSetDictionary = (strm, dictionary) => {\n const dictLength = dictionary.length;\n\n let state;\n let dictid;\n let ret;\n\n /* check state */\n if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR$1;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32_1(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR$1;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR$1;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK$1;\n};\n\n\nvar inflateReset_1 = inflateReset;\nvar inflateReset2_1 = inflateReset2;\nvar inflateResetKeep_1 = inflateResetKeep;\nvar inflateInit_1 = inflateInit;\nvar inflateInit2_1 = inflateInit2;\nvar inflate_2$1 = inflate$2;\nvar inflateEnd_1 = inflateEnd;\nvar inflateGetHeader_1 = inflateGetHeader;\nvar inflateSetDictionary_1 = inflateSetDictionary;\nvar inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.inflateCodesUsed = inflateCodesUsed;\nmodule.exports.inflateCopy = inflateCopy;\nmodule.exports.inflateGetDictionary = inflateGetDictionary;\nmodule.exports.inflateMark = inflateMark;\nmodule.exports.inflatePrime = inflatePrime;\nmodule.exports.inflateSync = inflateSync;\nmodule.exports.inflateSyncPoint = inflateSyncPoint;\nmodule.exports.inflateUndermine = inflateUndermine;\nmodule.exports.inflateValidate = inflateValidate;\n*/\n\nvar inflate_1$2 = {\n\tinflateReset: inflateReset_1,\n\tinflateReset2: inflateReset2_1,\n\tinflateResetKeep: inflateResetKeep_1,\n\tinflateInit: inflateInit_1,\n\tinflateInit2: inflateInit2_1,\n\tinflate: inflate_2$1,\n\tinflateEnd: inflateEnd_1,\n\tinflateGetHeader: inflateGetHeader_1,\n\tinflateSetDictionary: inflateSetDictionary_1,\n\tinflateInfo: inflateInfo\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nvar gzheader = GZheader;\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_FINISH,\n Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate$1(options) {\n this.options = common.assign({\n chunkSize: 1024 * 64,\n windowBits: 15,\n to: ''\n }, options || {});\n\n const opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = inflate_1$2.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n\n this.header = new gzheader();\n\n inflate_1$2.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = inflate_1$2.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer): input data\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE\n * flush modes. See constants. Skipped or `false` means Z_NO_FLUSH,\n * `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. If end of stream detected,\n * [[Inflate#onEnd]] will be called.\n *\n * `flush_mode` is not needed for normal operation, because end of stream\n * detected automatically. You may try to use it for advanced things, but\n * this functionality was not tested.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n const dictionary = this.options.dictionary;\n let status, _flush_mode, last_avail_out;\n\n if (this.ended) return false;\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n // Convert data if needed\n if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = inflate_1$2.inflate(strm, _flush_mode);\n\n if (status === Z_NEED_DICT && dictionary) {\n status = inflate_1$2.inflateSetDictionary(strm, dictionary);\n\n if (status === Z_OK) {\n status = inflate_1$2.inflate(strm, _flush_mode);\n } else if (status === Z_DATA_ERROR) {\n // Replace code with more verbose\n status = Z_NEED_DICT;\n }\n }\n\n // Skip snyc markers if more data follows and not raw mode\n while (strm.avail_in > 0 &&\n status === Z_STREAM_END &&\n strm.state.wrap > 0 &&\n data[strm.next_in] !== 0)\n {\n inflate_1$2.inflateReset(strm);\n status = inflate_1$2.inflate(strm, _flush_mode);\n }\n\n switch (status) {\n case Z_STREAM_ERROR:\n case Z_DATA_ERROR:\n case Z_NEED_DICT:\n case Z_MEM_ERROR:\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n // Remember real `avail_out` value, because we may patch out buffer content\n // to align utf8 strings boundaries.\n last_avail_out = strm.avail_out;\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === Z_STREAM_END) {\n\n if (this.options.to === 'string') {\n\n let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n let tail = strm.next_out - next_out_utf8;\n let utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail & realign counters\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);\n\n this.onData(utf8str);\n\n } else {\n this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));\n }\n }\n }\n\n // Must repeat iteration if out buffer is full\n if (status === Z_OK && last_avail_out === 0) continue;\n\n // Finalize if end of stream reached.\n if (status === Z_STREAM_END) {\n status = inflate_1$2.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return true;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|String): output data. When string output requested,\n * each chunk will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = common.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako');\n * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9]));\n * let output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err) {\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate$1(input, options) {\n const inflator = new Inflate$1(options);\n\n inflator.push(input);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) throw inflator.msg || messages[inflator.err];\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return inflate$1(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|String\n * - data (Uint8Array|ArrayBuffer): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nvar Inflate_1$1 = Inflate$1;\nvar inflate_2 = inflate$1;\nvar inflateRaw_1$1 = inflateRaw$1;\nvar ungzip$1 = inflate$1;\nvar constants = constants$2;\n\nvar inflate_1$1 = {\n\tInflate: Inflate_1$1,\n\tinflate: inflate_2,\n\tinflateRaw: inflateRaw_1$1,\n\tungzip: ungzip$1,\n\tconstants: constants\n};\n\nconst { Deflate, deflate, deflateRaw, gzip } = deflate_1$1;\n\nconst { Inflate, inflate, inflateRaw, ungzip } = inflate_1$1;\n\n\n\nvar Deflate_1 = Deflate;\nvar deflate_1 = deflate;\nvar deflateRaw_1 = deflateRaw;\nvar gzip_1 = gzip;\nvar Inflate_1 = Inflate;\nvar inflate_1 = inflate;\nvar inflateRaw_1 = inflateRaw;\nvar ungzip_1 = ungzip;\nvar constants_1 = constants$2;\n\nvar pako = {\n\tDeflate: Deflate_1,\n\tdeflate: deflate_1,\n\tdeflateRaw: deflateRaw_1,\n\tgzip: gzip_1,\n\tInflate: Inflate_1,\n\tinflate: inflate_1,\n\tinflateRaw: inflateRaw_1,\n\tungzip: ungzip_1,\n\tconstants: constants_1\n};\n\nexport { Deflate_1 as Deflate, Inflate_1 as Inflate, constants_1 as constants, pako as default, deflate_1 as deflate, deflateRaw_1 as deflateRaw, gzip_1 as gzip, inflate_1 as inflate, inflateRaw_1 as inflateRaw, ungzip_1 as ungzip };\n", "import type {DTXDataDeflated} from \"./DTXDataDeflated\";\nimport type {DTXData_v1} from \"./DTXData_v1\";\nimport * as pako from \"pako\";\n\n/**\n * @private\n */\nexport function inflateDTX(dtxDataDeflated: DTXDataDeflated): DTXData_v1 {\n\n function inflate(array:any, options?: any):any {\n return (array.length === 0) ? [] : (pako.inflate(array, options)).buffer;\n }\n\n return {\n positions: new Uint16Array(inflate(dtxDataDeflated.positions)),\n colors: new Uint8Array(inflate(dtxDataDeflated.colors)),\n indices: new Uint32Array(inflate(dtxDataDeflated.indices)),\n edgeIndices: new Uint32Array(inflate(dtxDataDeflated.edgeIndices)),\n aabbs: new Float32Array(inflate(dtxDataDeflated.aabbs)),\n eachGeometryPositionsBase: new Uint32Array(inflate(dtxDataDeflated.eachGeometryPositionsBase)),\n eachGeometryColorsBase: new Uint32Array(inflate(dtxDataDeflated.eachGeometryColorsBase)),\n eachGeometryIndicesBase: new Uint32Array(inflate(dtxDataDeflated.eachGeometryIndicesBase)),\n eachGeometryEdgeIndicesBase: new Uint32Array(inflate(dtxDataDeflated.eachGeometryEdgeIndicesBase)),\n eachGeometryPrimitiveType: new Uint8Array(inflate(dtxDataDeflated.eachGeometryPrimitiveType)),\n eachGeometryAABBBase: new Uint32Array(inflate(dtxDataDeflated.eachGeometryAABBBase)),\n matrices: new Float64Array(inflate(dtxDataDeflated.matrices)),\n eachMeshGeometriesBase: new Uint32Array(inflate(dtxDataDeflated.eachMeshGeometriesBase)),\n eachMeshMatricesBase: new Uint32Array(inflate(dtxDataDeflated.eachMeshMatricesBase)),\n eachMeshMaterialAttributes: new Uint8Array(inflate(dtxDataDeflated.eachMeshMaterialAttributes)),\n eachObjectId: JSON.parse(pako.inflate(dtxDataDeflated.eachObjectId, {to: 'string'})),\n eachObjectMeshesBase: new Uint32Array(inflate(dtxDataDeflated.eachObjectMeshesBase))\n };\n}\n", "import type {DTXDataDeflated} from \"./DTXDataDeflated\";\n\n/**\n * @private\n */\nexport function unpackDTX(arrayBuffer: ArrayBuffer): DTXDataDeflated {\n\n const dataView = new DataView(arrayBuffer);\n const dataArray = new Uint8Array(arrayBuffer);\n const dtxVersion = dataView.getUint32(0, true);\n const numElements = dataView.getUint32(4, true);\n\n const elements = [];\n let byteOffset = (numElements + 2) * 4;\n for (let i = 0; i < numElements; i++) {\n const elementSize = dataView.getUint32((i + 2) * 4, true);\n elements.push(dataArray.subarray(byteOffset, byteOffset + elementSize));\n byteOffset += elementSize;\n }\n\n let i = 0;\n\n return {\n positions: elements[i++],\n colors: elements[i++],\n indices: elements[i++],\n edgeIndices: elements[i++],\n aabbs: elements[i++],\n eachGeometryPositionsBase: elements[i++],\n eachGeometryColorsBase: elements[i++],\n eachGeometryIndicesBase: elements[i++],\n eachGeometryEdgeIndicesBase: elements[i++],\n eachGeometryPrimitiveType: elements[i++],\n eachGeometryAABBBase: elements[i++],\n matrices: elements[i++],\n eachMeshGeometriesBase: elements[i++],\n eachMeshMatricesBase: elements[i++],\n eachMeshMaterialAttributes: elements[i++],\n eachObjectId: elements[i++],\n eachObjectMeshesBase: elements[i++]\n };\n}\n", "import {\n LinesPrimitive,\n PointsPrimitive,\n SolidPrimitive,\n SurfacePrimitive,\n TrianglesPrimitive\n} from \"@xeokit/constants\";\nimport type {SceneGeometryCompressedParams, SceneModel} from \"@xeokit/scene\";\nimport type {DTXData_v1} from \"./DTXData_v1\";\nimport type {FloatArrayParam} from \"@xeokit/math\";\n\n/**\n * @private\n */\nexport function dtxToModel(params: {\n dtxData: DTXData_v1,\n sceneModel: SceneModel\n}): void {\n\n const dtxData = params.dtxData;\n const sceneModel = params.sceneModel;\n\n const numGeometries = dtxData.eachGeometryPositionsBase.length;\n const numMeshes = dtxData.eachMeshGeometriesBase.length;\n const numObjects = dtxData.eachObjectMeshesBase.length;\n\n let nextMeshId = 0;\n\n const geometryCreated: { [key: string]: boolean } = {};\n\n for (let objectIdx = 0; objectIdx < numObjects; objectIdx++) {\n const objectId = dtxData.eachObjectId[objectIdx];\n const lastObjectIdx = (numObjects - 1);\n const atLastObject = (objectIdx === lastObjectIdx);\n const firstMeshIdx = dtxData.eachObjectMeshesBase [objectIdx];\n const lastMeshIdx = atLastObject ? (numMeshes - 1) : (dtxData.eachObjectMeshesBase[objectIdx + 1] - 1);\n const meshIds = [];\n for (let meshIdx = firstMeshIdx; meshIdx <= lastMeshIdx; meshIdx++) {\n const geometryIdx = dtxData.eachMeshGeometriesBase[meshIdx];\n const meshId = `${nextMeshId++}`;\n const color = decompressColor(dtxData.eachMeshMaterialAttributes.subarray((meshIdx * 4), (meshIdx * 4) + 3));\n const opacity = dtxData.eachMeshMaterialAttributes[(meshIdx * 4) + 3] / 255.0;\n const matricesBase = dtxData.eachMeshMatricesBase[meshIdx];\n const matrix = dtxData.matrices.slice(matricesBase, matricesBase + 16);\n const geometryId = `${geometryIdx}`;\n if (!geometryCreated[geometryId]) {\n const geometryCompressedParams = {\n id: geometryId\n };\n const primitiveType = dtxData.eachGeometryPrimitiveType[geometryIdx];\n switch (primitiveType) {\n case 0:\n geometryCompressedParams.primitive = TrianglesPrimitive;\n break;\n case 1:\n geometryCompressedParams.primitive = SolidPrimitive;\n break;\n case 2:\n geometryCompressedParams.primitive = SurfacePrimitive;\n break;\n case 3:\n geometryCompressedParams.primitive = LinesPrimitive;\n break;\n case 5:\n geometryCompressedParams.primitive = PointsPrimitive;\n break;\n }\n const aabbsBase = dtxData.eachGeometryAABBBase[geometryIdx];\n geometryCompressedParams.aabb = dtxData.aabbs.slice(aabbsBase, aabbsBase + 6);\n let geometryValid = false;\n const atLastGeometry = (geometryIdx === (numGeometries - 1));\n switch (geometryCompressedParams.primitive) {\n case TrianglesPrimitive:\n case SurfacePrimitive:\n case SolidPrimitive:\n geometryCompressedParams.positionsCompressed = dtxData.positions.subarray(dtxData.eachGeometryPositionsBase [geometryIdx], atLastGeometry ? dtxData.positions.length : dtxData.eachGeometryPositionsBase [geometryIdx + 1]);\n geometryCompressedParams.indices = dtxData.indices.subarray(dtxData.eachGeometryIndicesBase [geometryIdx], atLastGeometry ? dtxData.indices.length : dtxData.eachGeometryIndicesBase [geometryIdx + 1]);\n geometryCompressedParams.edgeIndices = dtxData.edgeIndices.subarray(dtxData.eachGeometryEdgeIndicesBase [geometryIdx], atLastGeometry ? dtxData.edgeIndices.length : dtxData.eachGeometryEdgeIndicesBase [geometryIdx + 1]);\n geometryValid = (geometryCompressedParams.positionsCompressed.length > 0 && geometryCompressedParams.indices.length > 0);\n break;\n case PointsPrimitive:\n geometryCompressedParams.positionsCompressed = dtxData.positions.subarray(dtxData.eachGeometryPositionsBase [geometryIdx], atLastGeometry ? dtxData.positions.length : dtxData.eachGeometryPositionsBase [geometryIdx + 1]);\n geometryValid = (geometryCompressedParams.positionsCompressed.length > 0);\n break;\n case LinesPrimitive:\n geometryCompressedParams.positionsCompressed = dtxData.positions.subarray(dtxData.eachGeometryPositionsBase [geometryIdx], atLastGeometry ? dtxData.positions.length : dtxData.eachGeometryPositionsBase [geometryIdx + 1]);\n geometryCompressedParams.indices = dtxData.indices.subarray(dtxData.eachGeometryIndicesBase [geometryIdx], atLastGeometry ? dtxData.indices.length : dtxData.eachGeometryIndicesBase [geometryIdx + 1]);\n geometryValid = (geometryCompressedParams.positionsCompressed.length > 0 && geometryCompressedParams.indices.length > 0);\n break;\n default:\n continue;\n }\n if (geometryValid) {\n sceneModel.createGeometryCompressed(geometryCompressedParams);\n geometryCreated[geometryId] = true;\n }\n }\n sceneModel.createMesh({\n id: meshId,\n geometryId,\n matrix,\n color,\n opacity\n });\n meshIds.push(meshId);\n }\n if (meshIds.length > 0) {\n sceneModel.createObject({\n id: objectId,\n meshIds\n });\n }\n }\n}\n\nconst decompressColor = (function () {\n const floatColor = new Float32Array(3);\n return function (intColor: FloatArrayParam) {\n floatColor[0] = intColor[0] / 255;\n floatColor[1] = intColor[1] / 255;\n floatColor[2] = intColor[2] / 255;\n return floatColor;\n };\n})();\n\n", "import {inflateDTX} from \"./inflateDTX\";\nimport {unpackDTX} from \"./unpackDTX\";\nimport {SceneModel} from \"@xeokit/scene\";\nimport {SDKError} from \"@xeokit/core\";\nimport {dtxToModel} from \"./dtxToModel\";\n\n/**\n * @private\n */\nexport function readDTX(params: {\n fileData: ArrayBuffer;\n sceneModel: SceneModel;\n}): Promise {\n const {fileData, sceneModel} = params;\n if (sceneModel.destroyed) {\n return Promise.reject(new SDKError(\"SceneModel already destroyed\"));\n }\n if (sceneModel.built) {\n return Promise.reject(new SDKError(\"SceneModel already built\"));\n }\n dtxToModel({\n dtxData: inflateDTX(unpackDTX(fileData)),\n sceneModel\n });\n return Promise.resolve();\n}\n", "import {SDKError} from \"@xeokit/core\";\nimport type {SceneModel} from \"@xeokit/scene\";\nimport {readDTX} from \"./versions/v1/readDTX\"\n\nconst parsers = {\n 1: readDTX\n};\n\n/**\n * Imports [DTX](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#dtx) file data from an ArrayBuffer\n * into a {@link @xeokit/scene!SceneModel | SceneModel}.\n *\n * * Expects {@link @xeokit/scene!SceneModel.built | SceneModel.built} and\n * {@link @xeokit/scene!SceneModel.destroyed | SceneModel.destroyed} to be ````false````\n *\n * See {@link \"@xeokit/dtx\" | @xeokit/dtx} for usage.\n *\n * @param params - Loading parameters.\n * @param params.fileData - [DTX](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#dtx) file data\n * @param params.sceneModel - SceneModel to load into.\n * @returns {Promise} Resolves when [DTX](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#dtx) has been loaded.\n * @throws *{@link @xeokit/core!SDKError | SDKError}*\n * * If the SceneModel has already been destroyed.\n * * If the SceneModel has already been built.\n */\nexport function loadDTX(params: {\n fileData: ArrayBuffer;\n sceneModel: SceneModel;\n}): Promise {\n const {fileData, sceneModel} = params;\n if (sceneModel.destroyed) {\n return Promise.reject(new SDKError(\"SceneModel already destroyed\"));\n }\n if (sceneModel.built) {\n return Promise.reject(new SDKError(\"SceneModel already built\"));\n }\n return readDTX(params);\n}\n\n\n/*\nexport function loadDTX(params: {\n fileData: ArrayBuffer;\n sceneModel: SceneModel;\n}): Promise {\n const {fileData, sceneModel} = params;\n if (sceneModel.destroyed) {\n return Promise.reject(new SDKError(\"SceneModel already destroyed\"));\n }\n if (sceneModel.built) {\n return Promise.reject(new SDKError(\"SceneModel already built\"));\n }\n const arrayBuffer = params.fileData;\n const dataView = new DataView(arrayBuffer);\n const dataArray = new Uint8Array(arrayBuffer);\n const dtxVersion = dataView.getUint32(0, true);\n const parser = parsers[dtxVersion];\n if (!parser) {\n return Promise.reject(new SDKError(`Unsupported DTX file version: ${dtxVersion} - supports versions are [${Object.keys(parsers)}]`));\n }\n return readDTX({\n sceneModel\n });\n}\n */\n", "import type {DTXDataDeflated} from \"./DTXDataDeflated\";\nimport type {DTXData_v1} from \"./DTXData_v1\";\nimport * as pako from \"pako\";\n\n/**\n * @private\n */\nexport function deflateDTX(dtxData: DTXData_v1, options: { deflateLevel: 0 | 1 | -1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 }): DTXDataDeflated {\n const pakoOptions: pako.DeflateFunctionOptions = {/*level: options.deflateLevel*/};\n return {\n positions: pako.deflate(dtxData.positions.buffer, pakoOptions),\n colors: pako.deflate(dtxData.colors.buffer, pakoOptions),\n indices: pako.deflate(dtxData.indices.buffer, pakoOptions),\n edgeIndices: pako.deflate(dtxData.edgeIndices.buffer, pakoOptions),\n aabbs: pako.deflate(dtxData.aabbs.buffer, pakoOptions),\n eachGeometryPositionsBase: pako.deflate(dtxData.eachGeometryPositionsBase.buffer, pakoOptions),\n eachGeometryColorsBase: pako.deflate(dtxData.eachGeometryColorsBase.buffer, pakoOptions),\n eachGeometryIndicesBase: pako.deflate(dtxData.eachGeometryIndicesBase.buffer, pakoOptions),\n eachGeometryEdgeIndicesBase: pako.deflate(dtxData.eachGeometryEdgeIndicesBase.buffer, pakoOptions),\n eachGeometryPrimitiveType: pako.deflate(dtxData.eachGeometryPrimitiveType.buffer, pakoOptions),\n eachGeometryAABBBase: pako.deflate(dtxData.eachGeometryAABBBase.buffer, pakoOptions),\n matrices: pako.deflate(dtxData.matrices.buffer, pakoOptions),\n eachMeshGeometriesBase: pako.deflate(dtxData.eachMeshGeometriesBase.buffer, pakoOptions),\n eachMeshMatricesBase: pako.deflate(dtxData.eachMeshMatricesBase.buffer, pakoOptions),\n eachMeshMaterialAttributes: pako.deflate(dtxData.eachMeshMaterialAttributes.buffer, pakoOptions),\n eachObjectId: pako.deflate(JSON.stringify(dtxData.eachObjectId)\n .replace(/[\\u007F-\\uFFFF]/g, function (chr) { // Produce only ASCII-chars, so that the data can be inflated later\n return \"\\\\u\" + (\"0000\" + chr.charCodeAt(0).toString(16)).substr(-4)\n }), pakoOptions),\n eachObjectMeshesBase: pako.deflate(dtxData.eachObjectMeshesBase.buffer, pakoOptions)\n };\n}\n", "/**\n * Provides info on the [DTX](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#dtx) generated by {@link @xeokit/dtx!saveDTX | saveDTX}.\n *\n * See {@link \"@xeokit/dtx\" | @xeokit/dtx} for usage.\n */\nexport const DTX_INFO = {\n\n /**\n * The [DTX](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#dtx) version generated by {@link @xeokit/dtx!saveDTX | saveDTX}.\n *\n * @property dtxVersion\n * @type {number}\n */\n dtxVersion: 1\n};\n", "import type {SceneModel} from \"@xeokit/scene\";\nimport {\n LinesPrimitive,\n PointsPrimitive,\n SolidPrimitive,\n SurfacePrimitive,\n TrianglesPrimitive\n} from \"@xeokit/constants\";\nimport {DTX_INFO} from \"./DTX_INFO\";\nimport type {DTXData_v1} from \"./DTXData_v1\";\nimport {isIdentityMat4} from \"@xeokit/matrix\";\n\nconst DTX_VERSION = DTX_INFO.dtxVersion;\nconst NUM_MATERIAL_ATTRIBUTES = 4;\n\n/**\n * @private\n */\nexport function modelToDTX(params: {\n sceneModel: SceneModel\n}): DTXData_v1 {\n\n const sceneModel = params.sceneModel;\n\n const geometriesList = Object.values(sceneModel.geometries);\n const meshesList = Object.values(sceneModel.meshes);\n const objectsList = Object.values(sceneModel.objects);\n\n const numGeometries = geometriesList.length;\n const numMeshes = meshesList.length;\n const numObjects = objectsList.length;\n\n let identityMatrixAdded = false;\n let identityMatrixBase = 0;\n\n let sizePositions = 0;\n let sizeColors = 0;\n let sizeIndices = 0;\n let sizeEdgeIndices = 0;\n\n const geometryIndices: { [key: string]: number } = {};\n\n for (let geometryIdx = 0; geometryIdx < numGeometries; geometryIdx++) {\n const geometry = geometriesList [geometryIdx];\n if (geometry) {\n if (geometry.positionsCompressed) {\n sizePositions += geometry.positionsCompressed.length;\n if (geometry.indices) {\n sizeIndices += geometry.indices.length;\n }\n if (geometry.edgeIndices) {\n sizeEdgeIndices += geometry.edgeIndices.length;\n }\n if (geometry.colorsCompressed) {\n sizeColors += geometry.colorsCompressed.length;\n }\n }\n }\n }\n\n const dtxData = {\n positions: new Uint16Array(sizePositions),\n colors: new Uint8Array(sizeColors),\n indices: new Uint32Array(sizeIndices),\n edgeIndices: new Uint32Array(sizeEdgeIndices),\n aabbs: null,\n eachGeometryPositionsBase: new Uint32Array(numGeometries), // For each geometry, an index to its first element in dtxData.positions. Every primitive type has positions.\n eachGeometryColorsBase: new Uint32Array(numGeometries), // For each geometry, an index to its first element in dtxData.colors. If the next geometry has the same index, then this geometry has no colors.\n eachGeometryIndicesBase: new Uint32Array(numGeometries), // For each geometry, an index to its first element in dtxData.indices. If the next geometry has the same index, then this geometry has no indices.\n eachGeometryEdgeIndicesBase: new Uint32Array(numGeometries), // For each geometry, an index to its first element in dtxData.edgeIndices. If the next geometry has the same index, then this geometry has no edge indices.\n eachGeometryPrimitiveType: new Uint8Array(numGeometries), // Primitive type for each geometry (0=solid triangles, 1=surface triangles, 2=lines, 3=points)\n eachGeometryAABBBase: new Uint32Array(numGeometries), // Positions dequantization matrices\n matrices: null, // Modeling matrices\n eachMeshGeometriesBase: new Uint32Array(numMeshes), // For each mesh, an index into the eachGeometry* arrays\n eachMeshMatricesBase: new Uint32Array(numMeshes), // For each mesh that shares its geometry, an index to its first element in dtxData.matrices, to indicate the modeling matrix that transforms the shared geometry Local-space vertex positions. This is ignored for meshes that don't share geometries, because the vertex positions of non-shared geometries are pre-transformed into World-space.\n eachMeshMaterialAttributes: new Uint8Array(numMeshes * NUM_MATERIAL_ATTRIBUTES), // For each mesh, an RGBA integer color of format [0..255, 0..255, 0..255, 0..255], and PBR metallic and roughness factors, of format [0..255, 0..255]\n eachObjectId: [], // For each object, an ID string\n eachObjectMeshesBase: new Uint32Array(numObjects) // For each object, the index of the first element of meshes used by the object\n };\n\n let positionsBase = 0;\n let colorsBase = 0;\n let indicesBase = 0;\n let edgeIndicesBase = 0;\n let aabbsBase = 0;\n\n const aabbIdxMap = {};\n\n const aabbs = [];\n const matrices = [];\n\n for (let geometryIdx = 0; geometryIdx < numGeometries; geometryIdx++) {\n const geometry = geometriesList[geometryIdx];\n let primitiveType;\n switch (geometry.primitive) {\n case TrianglesPrimitive:\n primitiveType = 0;\n break;\n case SolidPrimitive:\n primitiveType = 1;\n break;\n case SurfacePrimitive:\n primitiveType = 2;\n break;\n case LinesPrimitive:\n primitiveType = 3;\n break;\n case PointsPrimitive:\n primitiveType = 4;\n break;\n }\n dtxData.eachGeometryPrimitiveType [geometryIdx] = primitiveType;\n const aabb = geometry.aabb;\n const aabbHash = `${aabb[0]}-${aabb[1]}-${aabb[2]}-${aabb[3]}-${aabb[4]}-${aabb[5]}`;\n let aabbIdx = aabbIdxMap[aabbHash];\n if (aabbIdx === undefined) {\n aabbIdx = aabbsBase;\n aabbIdxMap[aabbHash] = aabbIdx;\n aabbs.push(...aabb);\n aabbsBase += 6;\n }\n dtxData.eachGeometryAABBBase [geometryIdx] = aabbIdx;\n dtxData.eachGeometryPositionsBase [geometryIdx] = positionsBase;\n dtxData.eachGeometryColorsBase [geometryIdx] = colorsBase;\n dtxData.positions.set(geometry.positionsCompressed, positionsBase);\n positionsBase += geometry.positionsCompressed.length;\n if (geometry.indices) {\n dtxData.indices.set(geometry.indices, indicesBase);\n dtxData.eachGeometryIndicesBase [geometryIdx] = indicesBase;\n indicesBase += geometry.indices.length;\n }\n if (geometry.edgeIndices) {\n dtxData.edgeIndices.set(geometry.edgeIndices, edgeIndicesBase);\n dtxData.eachGeometryEdgeIndicesBase [geometryIdx] = edgeIndicesBase;\n edgeIndicesBase += geometry.edgeIndices.length;\n }\n if (geometry.colorsCompressed) {\n dtxData.colors.set(geometry.colorsCompressed, colorsBase);\n dtxData.eachGeometryColorsBase [geometryIdx] = colorsBase;\n colorsBase += geometry.colorsCompressed.length;\n }\n geometryIndices[geometry.id] = geometryIdx;\n }\n\n // Meshes and objects\n\n let eachMeshMaterialAttributesBase = 0;\n let matricesBase = 0;\n let meshesBase = 0;\n for (let objectIdx = 0; objectIdx < numObjects; objectIdx++) {\n const object = objectsList[objectIdx];\n dtxData.eachObjectId[objectIdx] = object.id;\n dtxData.eachObjectMeshesBase[objectIdx] = meshesBase;\n for (let objectMeshIdx = 0; objectMeshIdx < object.meshes.length; objectMeshIdx++) {\n const mesh = object.meshes[objectMeshIdx];\n dtxData.eachMeshGeometriesBase [meshesBase] = geometryIndices[mesh.geometry.id];\n if (isIdentityMat4(mesh.matrix)) {\n if (!identityMatrixAdded) {\n matrices.push(...mesh.rtcMatrix);\n dtxData.eachMeshMatricesBase [meshesBase] = matricesBase;\n identityMatrixBase = matricesBase;\n matricesBase += 16;\n identityMatrixAdded = true;\n } else {\n dtxData.eachMeshMatricesBase [meshesBase] = identityMatrixBase;\n }\n } else {\n matrices.push(...mesh.matrix);\n dtxData.eachMeshMatricesBase [meshesBase] = matricesBase;\n matricesBase += 16;\n }\n dtxData.eachMeshMaterialAttributes[eachMeshMaterialAttributesBase++] = (mesh.color[0] * 255); // Color RGB\n dtxData.eachMeshMaterialAttributes[eachMeshMaterialAttributesBase++] = (mesh.color[1] * 255);\n dtxData.eachMeshMaterialAttributes[eachMeshMaterialAttributesBase++] = (mesh.color[2] * 255);\n dtxData.eachMeshMaterialAttributes[eachMeshMaterialAttributesBase++] = (mesh.opacity * 255); // Opacity\n meshesBase++;\n }\n }\n\n dtxData.aabbs = new Float32Array(aabbs);\n dtxData.matrices = new Float64Array(matrices);\n\n return dtxData;\n}\n", "import type {DTXDataDeflated} from \"./DTXDataDeflated\";\nimport {DTX_INFO} from \"./DTX_INFO\";\n\n/**\n * @private\n */\nexport function packDTX(deflatedData: DTXDataDeflated): ArrayBuffer {\n return toArrayBuffer([\n deflatedData.positions,\n deflatedData.colors,\n deflatedData.indices,\n deflatedData.edgeIndices,\n deflatedData.aabbs,\n deflatedData.eachGeometryPositionsBase,\n deflatedData.eachGeometryColorsBase,\n deflatedData.eachGeometryIndicesBase,\n deflatedData.eachGeometryEdgeIndicesBase,\n deflatedData.eachGeometryPrimitiveType,\n deflatedData.eachGeometryAABBBase,\n deflatedData.matrices,\n deflatedData.eachMeshGeometriesBase,\n deflatedData.eachMeshMatricesBase,\n deflatedData.eachMeshMaterialAttributes,\n deflatedData.eachObjectId,\n deflatedData.eachObjectMeshesBase\n ]);\n}\n\nfunction toArrayBuffer(elements: Buffer[]): ArrayBuffer {\n const indexData = new Uint32Array(elements.length + 2);\n indexData[0] = DTX_INFO.dtxVersion;\n indexData [1] = elements.length; // Stored Data 1.1: number of stored elements\n let dataLen = 0; // Stored Data 1.2: length of stored elements\n for (let i = 0, len = elements.length; i < len; i++) {\n const element = elements[i];\n const elementsize = element.length;\n indexData[i + 2] = elementsize;\n dataLen += elementsize;\n }\n const indexBuf = new Uint8Array(indexData.buffer);\n const dataArray = new Uint8Array(indexBuf.length + dataLen);\n dataArray.set(indexBuf);\n let offset = indexBuf.length;\n for (let i = 0, len = elements.length; i < len; i++) { // Stored Data 2: the elements themselves\n const element = elements[i];\n dataArray.set(element, offset);\n offset += element.length;\n }\n return dataArray.buffer;\n}\n", "import {SDKError} from \"@xeokit/core\";\nimport type {SceneModel} from \"@xeokit/scene\";\nimport {deflateDTX} from \"./deflateDTX\";\nimport {modelToDTX} from \"./modelToDTX\";\nimport {packDTX} from \"./packDTX\";\n\n/** @private\n */\nexport function writeDTX(params: {\n sceneModel: SceneModel\n}): ArrayBuffer {\n if (params.sceneModel.destroyed) {\n throw new SDKError(\"SceneModel already destroyed\");\n }\n if (!params.sceneModel.built) {\n throw new SDKError(\"SceneModel not yet built\");\n }\n return packDTX(\n deflateDTX(\n modelToDTX({\n sceneModel: params.sceneModel\n }), {\n deflateLevel: 0\n }));\n}\n", "import {SDKError} from \"@xeokit/core\";\nimport type {SceneModel} from \"@xeokit/scene\";\nimport {writeDTX} from \"./versions/v1/writeDTX\"; // Always the latest\n\n/**\n * Exports a {@link @xeokit/scene!SceneModel | SceneModel} to an ArrayBuffer\n * containing [DTX](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#dtx) file data.\n *\n * See {@link \"@xeokit/dtx\" | @xeokit/dtx} for usage.\n *\n * @param params\n * @param params.sceneModel - The SceneModel to export to DTX.\n * @returns The [DTX](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#dtx) file data in an ArrayBuffer.\n * @returns {@link @xeokit/core!SDKError | SDKError} If the SceneModel has already been destroyed.\n * @returns {@link @xeokit/core!SDKError | SDKError} If the SceneModel has not yet been built.\n */\nexport function saveDTX(params: {\n sceneModel: SceneModel\n}): ArrayBuffer {\n if (params.sceneModel.destroyed) {\n throw new SDKError(\"SceneModel already destroyed\");\n }\n if (!params.sceneModel.built) {\n throw new SDKError(\"SceneModel not yet built\");\n }\n return writeDTX({\n sceneModel: params.sceneModel\n });\n}\n", "/**\n * [![npm version](https://badge.fury.io/js/%40xeokit%2Flas.svg)](https://badge.fury.io/js/%40xeokit%2Flas)\n * [![](https://data.jsdelivr.com/v1/package/npm/@xeokit/las/badge)](https://www.jsdelivr.com/package/npm/@xeokit/las)\n *\n * \n *\n *
\n *\n * # xeokit LAS/LAZ Importer\n *\n * ---\n *\n * ### *Import 3D lidar point cloud datasets*\n *\n * ---\n *\n * The xeokit SDK allows us to import 3D models from [LAS](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#las), a\n * file format for the interchange of 3-dimensional point cloud data.\n *\n * The LAS file format is a standardized binary format used for storing and sharing 3D point cloud data from LiDAR\n * scanners. It includes header information and point data attributes, supports compressed and uncompressed data, and\n * is widely used in surveying, mapping, and other industries.\n *\n * To import an LAS model into xeokit, use the {@link loadLAS} function, which will load the file into\n * a {@link @xeokit/scene!SceneModel | SceneModel} and a {@link @xeokit/data!DataModel | DataModel}.\n *\n *
\n *\n * [![](https://mermaid.ink/img/pako:eNqNUsFuwjAM_ZXKp00CabtWqIeN0wQD0WsupnFHpjSpnORQIf59SUMHCImtl9TPznvPjo_QWElQQqPRuaXCL8ZOGGGkYmq8sqZY7VI85ou6IUPreEMXR2GK-CmZT7v_jvUuBw0TetqM0NNzxvZBaTkFkpxnO6TwlNgn_iV6HOkfsfdse2I_1PRIL2M70pi6cAfV32a2F5Z_WcwGVxblu_LDR7353GKclZsGsVj0KSZPXFUZQmYc3kLbEmfA_Y7vrDG1e6OhrzQu7G0w43sk8rH43oqAFwHzeSXgVUB9pfVH6fJi41p7St_fhhl0xB0qGTdndCjAH6gjAWX8ldRi0F5AdBpLMXhbD6aB0nOgGYQ-9k3nXYOyRe0iSlJ5y-vzNqbj9AOT7uJt?type=png)](https://mermaid.live/edit#pako:eNqNUsFuwjAM_ZXKp00CabtWqIeN0wQD0WsupnFHpjSpnORQIf59SUMHCImtl9TPznvPjo_QWElQQqPRuaXCL8ZOGGGkYmq8sqZY7VI85ou6IUPreEMXR2GK-CmZT7v_jvUuBw0TetqM0NNzxvZBaTkFkpxnO6TwlNgn_iV6HOkfsfdse2I_1PRIL2M70pi6cAfV32a2F5Z_WcwGVxblu_LDR7353GKclZsGsVj0KSZPXFUZQmYc3kLbEmfA_Y7vrDG1e6OhrzQu7G0w43sk8rH43oqAFwHzeSXgVUB9pfVH6fJi41p7St_fhhl0xB0qGTdndCjAH6gjAWX8ldRi0F5AdBpLMXhbD6aB0nOgGYQ-9k3nXYOyRe0iSlJ5y-vzNqbj9AOT7uJt)\n *\n *
\n *\n * ## Installation\n *\n * ````bash\n * npm install @xeokit/las\n * ````\n *\n * ## Usage\n *\n * The example below shows how to use {@link @xeokit/las!loadLAS | loadLAS} in context.\n *\n * In this example, we will create a {@link @xeokit/viewer!Viewer | Viewer} with\n * a {@link @xeokit/webglrenderer!WebGLRenderer | WebGLRenderer} and a {@link @xeokit/scene!Scene | Scene}, which holds model geometry\n * and materials.\n *\n * On our Viewer, we will create a single {@link @xeokit/viewer!View | View} to render it to a canvas element on the page. We will\n * also attach a {@link @xeokit/cameracontrol!CameraControl | CameraControl} to our View, allowing us to control its camera with mouse and touch input.\n *\n * Within the Scene, we will create a {@link @xeokit/scene!SceneModel | SceneModel} to hold model geometry and materials.\n *\n * We will then use\n * {@link @xeokit/las!loadLAS | loadLAS} to load an LAS/LAZ file into our SceneModel.\n *\n * The {@link @xeokit/core!SDKError | SDKError} class will be used to handle any errors that may occur during this process.\n *\n * * [Run this example]()\n *\n * ````javascript\n * import {SDKError} from \"@xeokit/core\";\n * import {Scene} from \"@xeokit/scene\";\n * import {WebGLRenderer} from \"@xeokit/webglrenderer\";\n * import {Viewer} from \"@xeokit/viewer\";\n * import {CameraControl} from \"@xeokit/cameracontrol\";\n * import {loadLAS} from \"@xeokit/las\";\n *\n * const scene = new Scene();\n *\n * const renderer = new WebGLRenderer({});\n *\n * const viewer = new Viewer({\n * id: \"myViewer\",\n * scene,\n * renderer\n * });\n *\n * const view = viewer.createView({\n * id: \"myView\",\n * elementId: \"myCanvas\" // << Ensure that this HTMLElement exists in the page\n * });\n *\n * if (view instanceof SDKError) {\n * console.error(`Error creating View: ${view.message}`);\n *\n * } else {\n *\n * view.camera.eye = [1841982.93, 10.03, -5173286.74];\n * view.camera.look = [1842009.49, 9.68, -5173295.85];\n * view.camera.up = [0.0, 1.0, 0.0];\n *\n * new CameraControl(view, {});\n *\n * const sceneModel = scene.createModel({\n * id: \"myModel\"\n * });\n *\n * if (sceneModel instanceof SDKError) {\n * console.error(`Error creating SceneModel: ${sceneModel.message}`);\n *\n * } else {\n * fetch(\"model.las\").then(response => {\n *\n * response.arrayBuffer().then(fileData => {\n *\n * loadLAS({\n * fileData,\n * sceneModel\n *\n * }).then(() => {\n * sceneModel.build();\n *\n * }).catch(sdkError => {\n * sceneModel.destroy();\n * console.error(`Error loading LAS/LAZ file: ${sdkError.message}`);\n * });\n *\n * }).catch(message => {\n * console.error(`Error creating ArrayBuffer: ${message}`);\n * });\n *\n * }).catch(message => {\n * console.error(`Error fetching model: ${message}`);\n * });\n * }).catch(message => {\n * console.error(`Error initializing WebIFC.IfcAPI: ${message}`);\n * });\n * }\n * ````\n *\n * @module @xeokit/las\n */\nexport * from \"./loadLAS\";\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n/**\n * Parses `data` using a specified loader\n * @param data\n * @param loaders\n * @param options\n * @param context\n */\n// implementation signature\nexport async function parseFromContext(data, loaders, options, context) {\n return context._parse(data, loaders, options, context);\n}\n/**\n * Parses `data` synchronously using the specified loader, parse function provided via the loader context\n */\nexport function parseSyncFromContext(data, loader, options, context) {\n if (!context._parseSync) {\n throw new Error('parseSync');\n }\n return context._parseSync(data, loader, options, context);\n}\n/**\n * Parses `data` synchronously using a specified loader, parse function provided via the loader context\n */\nexport async function parseInBatchesFromContext(data, loader, options, context) {\n if (!context._parseInBatches) {\n throw new Error('parseInBatches');\n }\n return context._parseInBatches(data, loader, options, context);\n}\n", "/**\n * Throws an `Error` with the optional `message` if `condition` is falsy\n * @note Replacement for the external assert method to reduce bundle size\n */\nexport function assert(condition, message) {\n if (!condition) {\n throw new Error(message || 'loader assertion failed.');\n }\n}\n", "// Purpose: include this in your module to avoid\n// dependencies on micro modules like 'global' and 'is-browser';\n/* eslint-disable no-restricted-globals */\nconst globals = {\n self: typeof self !== 'undefined' && self,\n window: typeof window !== 'undefined' && window,\n global: typeof global !== 'undefined' && global,\n document: typeof document !== 'undefined' && document\n};\nconst self_ = globals.self || globals.window || globals.global || {};\nconst window_ = globals.window || globals.self || globals.global || {};\nconst global_ = globals.global || globals.self || globals.window || {};\nconst document_ = globals.document || {};\nexport { self_ as self, window_ as window, global_ as global, document_ as document };\n/** true if running in a browser */\nexport const isBrowser = \n// @ts-ignore process does not exist on browser\nBoolean(typeof process !== 'object' || String(process) !== '[object process]' || process.browser);\n/** true if running in a worker thread */\nexport const isWorker = typeof importScripts === 'function';\n// Extract node major version\nconst matches = typeof process !== 'undefined' && process.version && /v([0-9]*)/.exec(process.version);\n/** Major Node version (as a number) */\nexport const nodeVersion = (matches && parseFloat(matches[1])) || 0;\n", "// Do not name these variables the same as the global objects - will break bundling\nconst global_ = globalThis;\nconst window_ = globalThis;\nconst document_ = globalThis.document || {};\nconst process_ = globalThis.process || {};\nconst console_ = globalThis.console;\nconst navigator_ = globalThis.navigator || {};\nexport { global_ as global, global_ as self, window_ as window, document_ as document, process_ as process, console_ as console, navigator_ as navigator };\n", "// based on https://github.com/cheton/is-electron\n// https://github.com/electron/electron/issues/2288\n/* eslint-disable complexity */\nexport function isElectron(mockUserAgent) {\n // Renderer process\n // @ts-expect-error\n if (typeof window !== 'undefined' && window.process?.type === 'renderer') {\n return true;\n }\n // Main process\n // eslint-disable-next-line\n if (typeof process !== 'undefined' && Boolean(process.versions?.['electron'])) {\n return true;\n }\n // Detect the user agent when the `nodeIntegration` option is set to true\n const realUserAgent = typeof navigator !== 'undefined' && navigator.userAgent;\n const userAgent = mockUserAgent || realUserAgent;\n return Boolean(userAgent && userAgent.indexOf('Electron') >= 0);\n}\n", "// This function is needed in initialization stages,\n// make sure it can be imported in isolation\nimport { isElectron } from \"./is-electron.js\";\n/** Check if in browser by duck-typing Node context */\nexport function isBrowser() {\n const isNode = \n // @ts-expect-error\n typeof process === 'object' && String(process) === '[object process]' && !process?.browser;\n return !isNode || isElectron();\n}\n", "// Extract injected version from package.json (injected by babel plugin)\n// @ts-expect-error\nexport const VERSION = typeof \"4.0.7\" !== 'undefined' ? \"4.0.7\" : 'untranspiled source';\n// ENVIRONMENT\nexport { self, window, global, document, process, console } from \"./lib/globals.js\";\nexport { isBrowser } from \"./lib/is-browser.js\";\nexport { getBrowser, isMobile } from \"./lib/get-browser.js\";\nexport { isElectron } from \"./lib/is-electron.js\";\n// ENVIRONMENT'S ASSERT IS 5-15KB, SO WE PROVIDE OUR OWN\nexport { assert } from \"./utils/assert.js\";\n// TODO - wish we could just export a constant\n// export const isBrowser = checkIfBrowser();\n", "// probe.gl, MIT license\nfunction getStorage(type) {\n try {\n const storage = window[type];\n const x = '__storage_test__';\n storage.setItem(x, x);\n storage.removeItem(x);\n return storage;\n }\n catch (e) {\n return null;\n }\n}\n// Store keys in local storage via simple interface\nexport class LocalStorage {\n constructor(id, defaultConfig, type = 'sessionStorage') {\n this.storage = getStorage(type);\n this.id = id;\n this.config = defaultConfig;\n this._loadConfiguration();\n }\n getConfiguration() {\n return this.config;\n }\n setConfiguration(configuration) {\n Object.assign(this.config, configuration);\n if (this.storage) {\n const serialized = JSON.stringify(this.config);\n this.storage.setItem(this.id, serialized);\n }\n }\n // Get config from persistent store, if available\n _loadConfiguration() {\n let configuration = {};\n if (this.storage) {\n const serializedConfiguration = this.storage.getItem(this.id);\n configuration = serializedConfiguration ? JSON.parse(serializedConfiguration) : {};\n }\n Object.assign(this.config, configuration);\n return this;\n }\n}\n", "// probe.gl, MIT license\n/**\n * Format time\n */\nexport function formatTime(ms) {\n let formatted;\n if (ms < 10) {\n formatted = `${ms.toFixed(2)}ms`;\n }\n else if (ms < 100) {\n formatted = `${ms.toFixed(1)}ms`;\n }\n else if (ms < 1000) {\n formatted = `${ms.toFixed(0)}ms`;\n }\n else {\n formatted = `${(ms / 1000).toFixed(2)}s`;\n }\n return formatted;\n}\nexport function leftPad(string, length = 8) {\n const padLength = Math.max(length - string.length, 0);\n return `${' '.repeat(padLength)}${string}`;\n}\nexport function rightPad(string, length = 8) {\n const padLength = Math.max(length - string.length, 0);\n return `${string}${' '.repeat(padLength)}`;\n}\nexport function formatValue(v, options = {}) {\n const EPSILON = 1e-16;\n const { isInteger = false } = options;\n if (Array.isArray(v) || ArrayBuffer.isView(v)) {\n return formatArrayValue(v, options);\n }\n if (!Number.isFinite(v)) {\n return String(v);\n }\n // @ts-expect-error\n if (Math.abs(v) < EPSILON) {\n return isInteger ? '0' : '0.';\n }\n if (isInteger) {\n // @ts-expect-error\n return v.toFixed(0);\n }\n // @ts-expect-error\n if (Math.abs(v) > 100 && Math.abs(v) < 10000) {\n // @ts-expect-error\n return v.toFixed(0);\n }\n // @ts-expect-error\n const string = v.toPrecision(2);\n const decimal = string.indexOf('.0');\n return decimal === string.length - 2 ? string.slice(0, -1) : string;\n}\n/** Helper to formatValue */\nfunction formatArrayValue(v, options) {\n const { maxElts = 16, size = 1 } = options;\n let string = '[';\n for (let i = 0; i < v.length && i < maxElts; ++i) {\n if (i > 0) {\n string += `,${i % size === 0 ? ' ' : ''}`;\n }\n string += formatValue(v[i], options);\n }\n const terminator = v.length > maxElts ? '...' : ']';\n return `${string}${terminator}`;\n}\n", "import { isBrowser } from '@probe.gl/env';\nexport var COLOR;\n(function (COLOR) {\n COLOR[COLOR[\"BLACK\"] = 30] = \"BLACK\";\n COLOR[COLOR[\"RED\"] = 31] = \"RED\";\n COLOR[COLOR[\"GREEN\"] = 32] = \"GREEN\";\n COLOR[COLOR[\"YELLOW\"] = 33] = \"YELLOW\";\n COLOR[COLOR[\"BLUE\"] = 34] = \"BLUE\";\n COLOR[COLOR[\"MAGENTA\"] = 35] = \"MAGENTA\";\n COLOR[COLOR[\"CYAN\"] = 36] = \"CYAN\";\n COLOR[COLOR[\"WHITE\"] = 37] = \"WHITE\";\n COLOR[COLOR[\"BRIGHT_BLACK\"] = 90] = \"BRIGHT_BLACK\";\n COLOR[COLOR[\"BRIGHT_RED\"] = 91] = \"BRIGHT_RED\";\n COLOR[COLOR[\"BRIGHT_GREEN\"] = 92] = \"BRIGHT_GREEN\";\n COLOR[COLOR[\"BRIGHT_YELLOW\"] = 93] = \"BRIGHT_YELLOW\";\n COLOR[COLOR[\"BRIGHT_BLUE\"] = 94] = \"BRIGHT_BLUE\";\n COLOR[COLOR[\"BRIGHT_MAGENTA\"] = 95] = \"BRIGHT_MAGENTA\";\n COLOR[COLOR[\"BRIGHT_CYAN\"] = 96] = \"BRIGHT_CYAN\";\n COLOR[COLOR[\"BRIGHT_WHITE\"] = 97] = \"BRIGHT_WHITE\";\n})(COLOR || (COLOR = {}));\nconst BACKGROUND_INCREMENT = 10;\nfunction getColor(color) {\n if (typeof color !== 'string') {\n return color;\n }\n color = color.toUpperCase();\n return COLOR[color] || COLOR.WHITE;\n}\nexport function addColor(string, color, background) {\n if (!isBrowser && typeof string === 'string') {\n if (color) {\n const colorCode = getColor(color);\n string = `\\u001b[${colorCode}m${string}\\u001b[39m`;\n }\n if (background) {\n // background colors values are +10\n const colorCode = getColor(background);\n string = `\\u001b[${colorCode + BACKGROUND_INCREMENT}m${string}\\u001b[49m`;\n }\n }\n return string;\n}\n", "// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n/**\n * Binds the \"this\" argument of all functions on a class instance to the instance\n * @param obj - class instance (typically a react component)\n */\nexport function autobind(obj, predefined = ['constructor']) {\n const proto = Object.getPrototypeOf(obj);\n const propNames = Object.getOwnPropertyNames(proto);\n const object = obj;\n for (const key of propNames) {\n const value = object[key];\n if (typeof value === 'function') {\n if (!predefined.find(name => key === name)) {\n object[key] = value.bind(obj);\n }\n }\n }\n}\n", "export default function assert(condition, message) {\n if (!condition) {\n throw new Error(message || 'Assertion failed');\n }\n}\n", "// probe.gl, MIT license\nimport { window, process, isBrowser } from '@probe.gl/env';\n/** Get best timer available. */\nexport function getHiResTimestamp() {\n let timestamp;\n if (isBrowser() && window.performance) {\n timestamp = window?.performance?.now?.();\n }\n else if ('hrtime' in process) {\n // @ts-ignore\n const timeParts = process?.hrtime?.();\n timestamp = timeParts[0] * 1000 + timeParts[1] / 1e6;\n }\n else {\n timestamp = Date.now();\n }\n return timestamp;\n}\n", "// probe.gl, MIT license\n/* eslint-disable no-console */\nimport { VERSION, isBrowser } from '@probe.gl/env';\nimport { LocalStorage } from \"./utils/local-storage.js\";\nimport { formatTime, leftPad } from \"./utils/formatters.js\";\nimport { addColor } from \"./utils/color.js\";\nimport { autobind } from \"./utils/autobind.js\";\nimport assert from \"./utils/assert.js\";\nimport { getHiResTimestamp } from \"./utils/hi-res-timestamp.js\";\n// Instrumentation in other packages may override console methods, so preserve them here\nconst originalConsole = {\n debug: isBrowser() ? console.debug || console.log : console.log,\n log: console.log,\n info: console.info,\n warn: console.warn,\n error: console.error\n};\nconst DEFAULT_LOG_CONFIGURATION = {\n enabled: true,\n level: 0\n};\nfunction noop() { } // eslint-disable-line @typescript-eslint/no-empty-function\nconst cache = {};\nconst ONCE = { once: true };\n/** A console wrapper */\nexport class Log {\n constructor({ id } = { id: '' }) {\n this.VERSION = VERSION;\n this._startTs = getHiResTimestamp();\n this._deltaTs = getHiResTimestamp();\n this.userData = {};\n // TODO - fix support from throttling groups\n this.LOG_THROTTLE_TIMEOUT = 0; // Time before throttled messages are logged again\n this.id = id;\n this.userData = {};\n this._storage = new LocalStorage(`__probe-${this.id}__`, DEFAULT_LOG_CONFIGURATION);\n this.timeStamp(`${this.id} started`);\n autobind(this);\n Object.seal(this);\n }\n set level(newLevel) {\n this.setLevel(newLevel);\n }\n get level() {\n return this.getLevel();\n }\n isEnabled() {\n return this._storage.config.enabled;\n }\n getLevel() {\n return this._storage.config.level;\n }\n /** @return milliseconds, with fractions */\n getTotal() {\n return Number((getHiResTimestamp() - this._startTs).toPrecision(10));\n }\n /** @return milliseconds, with fractions */\n getDelta() {\n return Number((getHiResTimestamp() - this._deltaTs).toPrecision(10));\n }\n /** @deprecated use logLevel */\n set priority(newPriority) {\n this.level = newPriority;\n }\n /** @deprecated use logLevel */\n get priority() {\n return this.level;\n }\n /** @deprecated use logLevel */\n getPriority() {\n return this.level;\n }\n // Configure\n enable(enabled = true) {\n this._storage.setConfiguration({ enabled });\n return this;\n }\n setLevel(level) {\n this._storage.setConfiguration({ level });\n return this;\n }\n /** return the current status of the setting */\n get(setting) {\n return this._storage.config[setting];\n }\n // update the status of the setting\n set(setting, value) {\n this._storage.setConfiguration({ [setting]: value });\n }\n /** Logs the current settings as a table */\n settings() {\n if (console.table) {\n console.table(this._storage.config);\n }\n else {\n console.log(this._storage.config);\n }\n }\n // Unconditional logging\n assert(condition, message) {\n if (!condition) {\n throw new Error(message || 'Assertion failed');\n }\n }\n warn(message) {\n return this._getLogFunction(0, message, originalConsole.warn, arguments, ONCE);\n }\n error(message) {\n return this._getLogFunction(0, message, originalConsole.error, arguments);\n }\n /** Print a deprecation warning */\n deprecated(oldUsage, newUsage) {\n return this.warn(`\\`${oldUsage}\\` is deprecated and will be removed \\\nin a later version. Use \\`${newUsage}\\` instead`);\n }\n /** Print a removal warning */\n removed(oldUsage, newUsage) {\n return this.error(`\\`${oldUsage}\\` has been removed. Use \\`${newUsage}\\` instead`);\n }\n probe(logLevel, message) {\n return this._getLogFunction(logLevel, message, originalConsole.log, arguments, {\n time: true,\n once: true\n });\n }\n log(logLevel, message) {\n return this._getLogFunction(logLevel, message, originalConsole.debug, arguments);\n }\n info(logLevel, message) {\n return this._getLogFunction(logLevel, message, console.info, arguments);\n }\n once(logLevel, message) {\n return this._getLogFunction(logLevel, message, originalConsole.debug || originalConsole.info, arguments, ONCE);\n }\n /** Logs an object as a table */\n table(logLevel, table, columns) {\n if (table) {\n return this._getLogFunction(logLevel, table, console.table || noop, (columns && [columns]), {\n tag: getTableHeader(table)\n });\n }\n return noop;\n }\n time(logLevel, message) {\n return this._getLogFunction(logLevel, message, console.time ? console.time : console.info);\n }\n timeEnd(logLevel, message) {\n return this._getLogFunction(logLevel, message, console.timeEnd ? console.timeEnd : console.info);\n }\n timeStamp(logLevel, message) {\n return this._getLogFunction(logLevel, message, console.timeStamp || noop);\n }\n group(logLevel, message, opts = { collapsed: false }) {\n const options = normalizeArguments({ logLevel, message, opts });\n const { collapsed } = opts;\n // @ts-expect-error\n options.method = (collapsed ? console.groupCollapsed : console.group) || console.info;\n return this._getLogFunction(options);\n }\n groupCollapsed(logLevel, message, opts = {}) {\n return this.group(logLevel, message, Object.assign({}, opts, { collapsed: true }));\n }\n groupEnd(logLevel) {\n return this._getLogFunction(logLevel, '', console.groupEnd || noop);\n }\n // EXPERIMENTAL\n withGroup(logLevel, message, func) {\n this.group(logLevel, message)();\n try {\n func();\n }\n finally {\n this.groupEnd(logLevel)();\n }\n }\n trace() {\n if (console.trace) {\n console.trace();\n }\n }\n // PRIVATE METHODS\n /** Deduces log level from a variety of arguments */\n _shouldLog(logLevel) {\n return this.isEnabled() && this.getLevel() >= normalizeLogLevel(logLevel);\n }\n _getLogFunction(logLevel, message, method, args, opts) {\n if (this._shouldLog(logLevel)) {\n // normalized opts + timings\n opts = normalizeArguments({ logLevel, message, args, opts });\n method = method || opts.method;\n assert(method);\n opts.total = this.getTotal();\n opts.delta = this.getDelta();\n // reset delta timer\n this._deltaTs = getHiResTimestamp();\n const tag = opts.tag || opts.message;\n if (opts.once && tag) {\n if (!cache[tag]) {\n cache[tag] = getHiResTimestamp();\n }\n else {\n return noop;\n }\n }\n // TODO - Make throttling work with groups\n // if (opts.nothrottle || !throttle(tag, this.LOG_THROTTLE_TIMEOUT)) {\n // return noop;\n // }\n message = decorateMessage(this.id, opts.message, opts);\n // Bind console function so that it can be called after being returned\n return method.bind(console, message, ...opts.args);\n }\n return noop;\n }\n}\nLog.VERSION = VERSION;\n/**\n * Get logLevel from first argument:\n * - log(logLevel, message, args) => logLevel\n * - log(message, args) => 0\n * - log({logLevel, ...}, message, args) => logLevel\n * - log({logLevel, message, args}) => logLevel\n */\nfunction normalizeLogLevel(logLevel) {\n if (!logLevel) {\n return 0;\n }\n let resolvedLevel;\n switch (typeof logLevel) {\n case 'number':\n resolvedLevel = logLevel;\n break;\n case 'object':\n // Backward compatibility\n // TODO - deprecate `priority`\n // @ts-expect-error\n resolvedLevel = logLevel.logLevel || logLevel.priority || 0;\n break;\n default:\n return 0;\n }\n // 'log level must be a number'\n assert(Number.isFinite(resolvedLevel) && resolvedLevel >= 0);\n return resolvedLevel;\n}\n/**\n * \"Normalizes\" the various argument patterns into an object with known types\n * - log(logLevel, message, args) => {logLevel, message, args}\n * - log(message, args) => {logLevel: 0, message, args}\n * - log({logLevel, ...}, message, args) => {logLevel, message, args}\n * - log({logLevel, message, args}) => {logLevel, message, args}\n */\nexport function normalizeArguments(opts) {\n const { logLevel, message } = opts;\n opts.logLevel = normalizeLogLevel(logLevel);\n // We use `arguments` instead of rest parameters (...args) because IE\n // does not support the syntax. Rest parameters is transpiled to code with\n // perf impact. Doing it here instead avoids constructing args when logging is\n // disabled.\n // TODO - remove when/if IE support is dropped\n const args = opts.args ? Array.from(opts.args) : [];\n // args should only contain arguments that appear after `message`\n // eslint-disable-next-line no-empty\n while (args.length && args.shift() !== message) { }\n switch (typeof logLevel) {\n case 'string':\n case 'function':\n if (message !== undefined) {\n args.unshift(message);\n }\n opts.message = logLevel;\n break;\n case 'object':\n Object.assign(opts, logLevel);\n break;\n default:\n }\n // Resolve functions into strings by calling them\n if (typeof opts.message === 'function') {\n opts.message = opts.message();\n }\n const messageType = typeof opts.message;\n // 'log message must be a string' or object\n assert(messageType === 'string' || messageType === 'object');\n // original opts + normalized opts + opts arg + fixed up message\n return Object.assign(opts, { args }, opts.opts);\n}\nfunction decorateMessage(id, message, opts) {\n if (typeof message === 'string') {\n const time = opts.time ? leftPad(formatTime(opts.total)) : '';\n message = opts.time ? `${id}: ${time} ${message}` : `${id}: ${message}`;\n message = addColor(message, opts.color, opts.background);\n }\n return message;\n}\nfunction getTableHeader(table) {\n for (const key in table) {\n for (const title in table[key]) {\n return title || 'untitled';\n }\n }\n return 'empty';\n}\n", "// @ts-nocheck\n/* eslint-disable */\nglobalThis.probe = {};\n", "import { Log } from \"./log.js\";\n// DEFAULT EXPORT IS A LOG INSTANCE\nexport default new Log({ id: '@probe.gl/log' });\n// LOGGING\nexport { Log } from \"./log.js\";\nexport { COLOR } from \"./utils/color.js\";\n// UTILITIES\nexport { addColor } from \"./utils/color.js\";\nexport { leftPad, rightPad } from \"./utils/formatters.js\";\nexport { autobind } from \"./utils/autobind.js\";\nexport { LocalStorage } from \"./utils/local-storage.js\";\nexport { getHiResTimestamp } from \"./utils/hi-res-timestamp.js\";\nimport \"./init.js\";\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n/**\n *\n * @param baseOptions Can be undefined, in which case a fresh options object will be minted\n * @param newOptions\n * @returns\n */\nexport function mergeLoaderOptions(baseOptions, newOptions) {\n return mergeOptionsRecursively(baseOptions || {}, newOptions);\n}\nfunction mergeOptionsRecursively(baseOptions, newOptions, level = 0) {\n // Sanity check (jest test runner overwrites the console object which can lead to infinite recursion)\n if (level > 3) {\n return newOptions;\n }\n const options = { ...baseOptions };\n for (const [key, newValue] of Object.entries(newOptions)) {\n if (newValue && typeof newValue === 'object' && !Array.isArray(newValue)) {\n options[key] = mergeOptionsRecursively(options[key] || {}, newOptions[key], level + 1);\n // Object.assign(options[key] as object, newOptions[key]);\n }\n else {\n options[key] = newOptions[key];\n }\n }\n return options;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { log } from \"../log-utils/log.js\";\n/**\n * Register application-imported modules\n * These modules are typically to big to bundle, or may have issues on some bundlers/environments\n */\nexport function registerJSModules(modules) {\n globalThis.loaders ||= {};\n globalThis.loaders.modules ||= {};\n Object.assign(globalThis.loaders.modules, modules);\n}\n/**\n * Get a pre-registered application-imported module, warn if not present\n */\nexport function checkJSModule(name, caller) {\n const module = globalThis.loaders?.modules?.[name];\n if (!module) {\n log.warn(`${caller}: ${name} library not installed`)();\n }\n}\n/**\n * Get a pre-registered application-imported module, throw if not present\n */\nexport function getJSModule(name, caller) {\n const module = globalThis.loaders?.modules?.[name];\n if (!module) {\n throw new Error(`${caller}: ${name} library not installed`);\n }\n return module;\n}\n/**\n * Get a pre-registered application-imported module, return null if not present\n */\nexport function getJSModuleOrNull(name) {\n const module = globalThis.loaders?.modules?.[name];\n return module || null;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n// Version constant cannot be imported, it needs to correspond to the build version of **this** module.\n/**\n * TODO - unpkg.com doesn't seem to have a `latest` specifier for alpha releases...\n * 'beta' on beta branch, 'latest' on prod branch\n */\nexport const NPM_TAG = 'latest';\nfunction getVersion() {\n if (!globalThis._loadersgl_?.version) {\n globalThis._loadersgl_ = globalThis._loadersgl_ || {};\n // __VERSION__ is injected by babel-plugin-version-inline\n if (typeof \"4.2.1\" === 'undefined') {\n // eslint-disable-next-line\n console.warn('loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.');\n globalThis._loadersgl_.version = NPM_TAG;\n }\n else {\n globalThis._loadersgl_.version = \"4.2.1\";\n }\n }\n return globalThis._loadersgl_.version;\n}\nexport const VERSION = getVersion();\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n// Replacement for the external assert method to reduce bundle size\n// Note: We don't use the second \"message\" argument in calling code,\n// so no need to support it here\n/** Throws an `Error` with the optional `message` if `condition` is falsy */\nexport function assert(condition, message) {\n if (!condition) {\n throw new Error(message || 'loaders.gl assertion failed.');\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n// Purpose: include this in your module to avoids adding dependencies on\n// micro modules like 'global' and 'is-browser';\n/* eslint-disable no-restricted-globals */\nconst globals = {\n self: typeof self !== 'undefined' && self,\n window: typeof window !== 'undefined' && window,\n global: typeof global !== 'undefined' && global,\n document: typeof document !== 'undefined' && document\n};\nconst self_ = globals.self || globals.window || globals.global || {};\nconst window_ = globals.window || globals.self || globals.global || {};\nconst global_ = globals.global || globals.self || globals.window || {};\nconst document_ = globals.document || {};\nexport { self_ as self, window_ as window, global_ as global, document_ as document };\n/** true if running in the browser, false if running in Node.js */\nexport const isBrowser = \n// @ts-ignore process.browser\ntypeof process !== 'object' || String(process) !== '[object process]' || process.browser;\n/** true if running on a worker thread */\nexport const isWorker = typeof importScripts === 'function';\n/** true if running on a mobile device */\nexport const isMobile = typeof window !== 'undefined' && typeof window.orientation !== 'undefined';\n// Extract node major version\nconst matches = typeof process !== 'undefined' && process.version && /v([0-9]*)/.exec(process.version);\n/** Version of Node.js if running under Node, otherwise 0 */\nexport const nodeVersion = (matches && parseFloat(matches[1])) || 0;\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { assert } from \"../env-utils/assert.js\";\n/**\n * Represents one Job handled by a WorkerPool or WorkerFarm\n */\nexport default class WorkerJob {\n name;\n workerThread;\n isRunning = true;\n /** Promise that resolves when Job is done */\n result;\n _resolve = () => { };\n _reject = () => { };\n constructor(jobName, workerThread) {\n this.name = jobName;\n this.workerThread = workerThread;\n this.result = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n }\n /**\n * Send a message to the job's worker thread\n * @param data any data structure, ideally consisting mostly of transferrable objects\n */\n postMessage(type, payload) {\n this.workerThread.postMessage({\n source: 'loaders.gl', // Lets worker ignore unrelated messages\n type,\n payload\n });\n }\n /**\n * Call to resolve the `result` Promise with the supplied value\n */\n done(value) {\n assert(this.isRunning);\n this.isRunning = false;\n this._resolve(value);\n }\n /**\n * Call to reject the `result` Promise with the supplied error\n */\n error(error) {\n assert(this.isRunning);\n this.isRunning = false;\n this._reject(error);\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n/** Browser polyfill for Node.js built-in `worker_threads` module.\n * These fills are non-functional, and just intended to ensure that\n * `import 'worker_threads` doesn't break browser builds.\n * The replacement is done in package.json browser field\n */\nexport class NodeWorker {\n terminate() { }\n}\nexport const parentPort = null;\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { assert } from \"../env-utils/assert.js\";\nconst workerURLCache = new Map();\n/**\n * Creates a loadable URL from worker source or URL\n * that can be used to create `Worker` instances.\n * Due to CORS issues it may be necessary to wrap a URL in a small importScripts\n * @param props\n * @param props.source Worker source\n * @param props.url Worker URL\n * @returns loadable url\n */\nexport function getLoadableWorkerURL(props) {\n assert((props.source && !props.url) || (!props.source && props.url)); // Either source or url must be defined\n let workerURL = workerURLCache.get(props.source || props.url);\n if (!workerURL) {\n // Differentiate worker urls from worker source code\n if (props.url) {\n workerURL = getLoadableWorkerURLFromURL(props.url);\n workerURLCache.set(props.url, workerURL);\n }\n if (props.source) {\n workerURL = getLoadableWorkerURLFromSource(props.source);\n workerURLCache.set(props.source, workerURL);\n }\n }\n assert(workerURL);\n return workerURL;\n}\n/**\n * Build a loadable worker URL from worker URL\n * @param url\n * @returns loadable URL\n */\nfunction getLoadableWorkerURLFromURL(url) {\n // A local script url, we can use it to initialize a Worker directly\n if (!url.startsWith('http')) {\n return url;\n }\n // A remote script, we need to use `importScripts` to load from different origin\n const workerSource = buildScriptSource(url);\n return getLoadableWorkerURLFromSource(workerSource);\n}\n/**\n * Build a loadable worker URL from worker source\n * @param workerSource\n * @returns loadable url\n */\nfunction getLoadableWorkerURLFromSource(workerSource) {\n const blob = new Blob([workerSource], { type: 'application/javascript' });\n return URL.createObjectURL(blob);\n}\n/**\n * Per spec, worker cannot be initialized with a script from a different origin\n * However a local worker script can still import scripts from other origins,\n * so we simply build a wrapper script.\n *\n * @param workerUrl\n * @returns source\n */\nfunction buildScriptSource(workerUrl) {\n return `\\\ntry {\n importScripts('${workerUrl}');\n} catch (error) {\n console.error(error);\n throw error;\n}`;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n// NOTE - there is a copy of this function is both in core and loader-utils\n// core does not need all the utils in loader-utils, just this one.\n/**\n * Returns an array of Transferrable objects that can be used with postMessage\n * https://developer.mozilla.org/en-US/docs/Web/API/Worker/postMessage\n * @param object data to be sent via postMessage\n * @param recursive - not for application use\n * @param transfers - not for application use\n * @returns a transfer list that can be passed to postMessage\n */\nexport function getTransferList(object, recursive = true, transfers) {\n // Make sure that items in the transfer list is unique\n const transfersSet = transfers || new Set();\n if (!object) {\n // ignore\n }\n else if (isTransferable(object)) {\n transfersSet.add(object);\n }\n else if (isTransferable(object.buffer)) {\n // Typed array\n transfersSet.add(object.buffer);\n }\n else if (ArrayBuffer.isView(object)) {\n // object is a TypeArray viewing into a SharedArrayBuffer (not transferable)\n // Do not iterate through the content in this case\n }\n else if (recursive && typeof object === 'object') {\n for (const key in object) {\n // Avoid perf hit - only go one level deep\n getTransferList(object[key], recursive, transfersSet);\n }\n }\n // If transfers is defined, is internal recursive call\n // Otherwise it's called by the user\n return transfers === undefined ? Array.from(transfersSet) : [];\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/Transferable\nfunction isTransferable(object) {\n if (!object) {\n return false;\n }\n if (object instanceof ArrayBuffer) {\n return true;\n }\n if (typeof MessagePort !== 'undefined' && object instanceof MessagePort) {\n return true;\n }\n if (typeof ImageBitmap !== 'undefined' && object instanceof ImageBitmap) {\n return true;\n }\n // @ts-ignore\n if (typeof OffscreenCanvas !== 'undefined' && object instanceof OffscreenCanvas) {\n return true;\n }\n return false;\n}\n/**\n * Recursively drop non serializable values like functions and regexps.\n * @param object\n */\nexport function getTransferListForWriter(object) {\n if (object === null) {\n return {};\n }\n const clone = Object.assign({}, object);\n Object.keys(clone).forEach((key) => {\n // Typed Arrays and Arrays are passed with no change\n if (typeof object[key] === 'object' &&\n !ArrayBuffer.isView(object[key]) &&\n !(object[key] instanceof Array)) {\n clone[key] = getTransferListForWriter(object[key]);\n }\n else if (typeof clone[key] === 'function' || clone[key] instanceof RegExp) {\n clone[key] = {};\n }\n else {\n clone[key] = object[key];\n }\n });\n return clone;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { NodeWorker } from \"../node/worker_threads.js\";\nimport { isBrowser } from \"../env-utils/globals.js\";\nimport { assert } from \"../env-utils/assert.js\";\nimport { getLoadableWorkerURL } from \"../worker-utils/get-loadable-worker-url.js\";\nimport { getTransferList } from \"../worker-utils/get-transfer-list.js\";\nconst NOOP = () => { };\n/**\n * Represents one worker thread\n */\nexport default class WorkerThread {\n name;\n source;\n url;\n terminated = false;\n worker;\n onMessage;\n onError;\n _loadableURL = '';\n /** Checks if workers are supported on this platform */\n static isSupported() {\n return ((typeof Worker !== 'undefined' && isBrowser) ||\n (typeof NodeWorker !== 'undefined' && !isBrowser));\n }\n constructor(props) {\n const { name, source, url } = props;\n assert(source || url); // Either source or url must be defined\n this.name = name;\n this.source = source;\n this.url = url;\n this.onMessage = NOOP;\n this.onError = (error) => console.log(error); // eslint-disable-line\n this.worker = isBrowser ? this._createBrowserWorker() : this._createNodeWorker();\n }\n /**\n * Terminate this worker thread\n * @note Can free up significant memory\n */\n destroy() {\n this.onMessage = NOOP;\n this.onError = NOOP;\n this.worker.terminate(); // eslint-disable-line @typescript-eslint/no-floating-promises\n this.terminated = true;\n }\n get isRunning() {\n return Boolean(this.onMessage);\n }\n /**\n * Send a message to this worker thread\n * @param data any data structure, ideally consisting mostly of transferrable objects\n * @param transferList If not supplied, calculated automatically by traversing data\n */\n postMessage(data, transferList) {\n transferList = transferList || getTransferList(data);\n // @ts-ignore\n this.worker.postMessage(data, transferList);\n }\n // PRIVATE\n /**\n * Generate a standard Error from an ErrorEvent\n * @param event\n */\n _getErrorFromErrorEvent(event) {\n // Note Error object does not have the expected fields if loading failed completely\n // https://developer.mozilla.org/en-US/docs/Web/API/Worker#Event_handlers\n // https://developer.mozilla.org/en-US/docs/Web/API/ErrorEvent\n let message = 'Failed to load ';\n message += `worker ${this.name} from ${this.url}. `;\n if (event.message) {\n message += `${event.message} in `;\n }\n // const hasFilename = event.filename && !event.filename.startsWith('blob:');\n // message += hasFilename ? event.filename : this.source.slice(0, 100);\n if (event.lineno) {\n message += `:${event.lineno}:${event.colno}`;\n }\n return new Error(message);\n }\n /**\n * Creates a worker thread on the browser\n */\n _createBrowserWorker() {\n this._loadableURL = getLoadableWorkerURL({ source: this.source, url: this.url });\n const worker = new Worker(this._loadableURL, { name: this.name });\n worker.onmessage = (event) => {\n if (!event.data) {\n this.onError(new Error('No data received'));\n }\n else {\n this.onMessage(event.data);\n }\n };\n // This callback represents an uncaught exception in the worker thread\n worker.onerror = (error) => {\n this.onError(this._getErrorFromErrorEvent(error));\n this.terminated = true;\n };\n // TODO - not clear when this would be called, for now just log in case it happens\n worker.onmessageerror = (event) => console.error(event); // eslint-disable-line\n return worker;\n }\n /**\n * Creates a worker thread in node.js\n * @todo https://nodejs.org/api/async_hooks.html#async-resource-worker-pool\n */\n _createNodeWorker() {\n let worker;\n if (this.url) {\n // Make sure relative URLs start with './'\n const absolute = this.url.includes(':/') || this.url.startsWith('/');\n const url = absolute ? this.url : `./${this.url}`;\n // console.log('Starting work from', url);\n worker = new NodeWorker(url, { eval: false });\n }\n else if (this.source) {\n worker = new NodeWorker(this.source, { eval: true });\n }\n else {\n throw new Error('no worker');\n }\n worker.on('message', (data) => {\n // console.error('message', data);\n this.onMessage(data);\n });\n worker.on('error', (error) => {\n // console.error('error', error);\n this.onError(error);\n });\n worker.on('exit', (code) => {\n // console.error('exit', code);\n });\n return worker;\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { isMobile, isBrowser } from \"../env-utils/globals.js\";\nimport WorkerThread from \"./worker-thread.js\";\nimport WorkerJob from \"./worker-job.js\";\n/**\n * Process multiple data messages with small pool of identical workers\n */\nexport default class WorkerPool {\n name = 'unnamed';\n source; // | Function;\n url;\n maxConcurrency = 1;\n maxMobileConcurrency = 1;\n onDebug = () => { };\n reuseWorkers = true;\n props = {};\n jobQueue = [];\n idleQueue = [];\n count = 0;\n isDestroyed = false;\n /** Checks if workers are supported on this platform */\n static isSupported() {\n return WorkerThread.isSupported();\n }\n /**\n * @param processor - worker function\n * @param maxConcurrency - max count of workers\n */\n constructor(props) {\n this.source = props.source;\n this.url = props.url;\n this.setProps(props);\n }\n /**\n * Terminates all workers in the pool\n * @note Can free up significant memory\n */\n destroy() {\n // Destroy idle workers, active Workers will be destroyed on completion\n this.idleQueue.forEach((worker) => worker.destroy());\n this.isDestroyed = true;\n }\n setProps(props) {\n this.props = { ...this.props, ...props };\n if (props.name !== undefined) {\n this.name = props.name;\n }\n if (props.maxConcurrency !== undefined) {\n this.maxConcurrency = props.maxConcurrency;\n }\n if (props.maxMobileConcurrency !== undefined) {\n this.maxMobileConcurrency = props.maxMobileConcurrency;\n }\n if (props.reuseWorkers !== undefined) {\n this.reuseWorkers = props.reuseWorkers;\n }\n if (props.onDebug !== undefined) {\n this.onDebug = props.onDebug;\n }\n }\n async startJob(name, onMessage = (job, type, data) => job.done(data), onError = (job, error) => job.error(error)) {\n // Promise resolves when thread starts working on this job\n const startPromise = new Promise((onStart) => {\n // Promise resolves when thread completes or fails working on this job\n this.jobQueue.push({ name, onMessage, onError, onStart });\n return this;\n });\n this._startQueuedJob(); // eslint-disable-line @typescript-eslint/no-floating-promises\n return await startPromise;\n }\n // PRIVATE\n /**\n * Starts first queued job if worker is available or can be created\n * Called when job is started and whenever a worker returns to the idleQueue\n */\n async _startQueuedJob() {\n if (!this.jobQueue.length) {\n return;\n }\n const workerThread = this._getAvailableWorker();\n if (!workerThread) {\n return;\n }\n // We have a worker, dequeue and start the job\n const queuedJob = this.jobQueue.shift();\n if (queuedJob) {\n // Emit a debug event\n // @ts-ignore\n this.onDebug({\n message: 'Starting job',\n name: queuedJob.name,\n workerThread,\n backlog: this.jobQueue.length\n });\n // Create a worker job to let the app access thread and manage job completion\n const job = new WorkerJob(queuedJob.name, workerThread);\n // Set the worker thread's message handlers\n workerThread.onMessage = (data) => queuedJob.onMessage(job, data.type, data.payload);\n workerThread.onError = (error) => queuedJob.onError(job, error);\n // Resolve the start promise so that the app can start sending messages to worker\n queuedJob.onStart(job);\n // Wait for the app to signal that the job is complete, then return worker to queue\n try {\n await job.result;\n }\n catch (error) {\n // eslint-disable-next-line no-console\n console.error(`Worker exception: ${error}`);\n }\n finally {\n this.returnWorkerToQueue(workerThread);\n }\n }\n }\n /**\n * Returns a worker to the idle queue\n * Destroys the worker if\n * - pool is destroyed\n * - if this pool doesn't reuse workers\n * - if maxConcurrency has been lowered\n * @param worker\n */\n returnWorkerToQueue(worker) {\n const shouldDestroyWorker = \n // Workers on Node.js prevent the process from exiting.\n // Until we figure out how to close them before exit, we always destroy them\n !isBrowser ||\n // If the pool is destroyed, there is no reason to keep the worker around\n this.isDestroyed ||\n // If the app has disabled worker reuse, any completed workers should be destroyed\n !this.reuseWorkers ||\n // If concurrency has been lowered, this worker might be surplus to requirements\n this.count > this._getMaxConcurrency();\n if (shouldDestroyWorker) {\n worker.destroy();\n this.count--;\n }\n else {\n this.idleQueue.push(worker);\n }\n if (!this.isDestroyed) {\n this._startQueuedJob(); // eslint-disable-line @typescript-eslint/no-floating-promises\n }\n }\n /**\n * Returns idle worker or creates new worker if maxConcurrency has not been reached\n */\n _getAvailableWorker() {\n // If a worker has completed and returned to the queue, it can be used\n if (this.idleQueue.length > 0) {\n return this.idleQueue.shift() || null;\n }\n // Create fresh worker if we haven't yet created the max amount of worker threads for this worker source\n if (this.count < this._getMaxConcurrency()) {\n this.count++;\n const name = `${this.name.toLowerCase()} (#${this.count} of ${this.maxConcurrency})`;\n return new WorkerThread({ name, source: this.source, url: this.url });\n }\n // No worker available, have to wait\n return null;\n }\n _getMaxConcurrency() {\n return isMobile ? this.maxMobileConcurrency : this.maxConcurrency;\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport WorkerPool from \"./worker-pool.js\";\nimport WorkerThread from \"./worker-thread.js\";\nconst DEFAULT_PROPS = {\n maxConcurrency: 3,\n maxMobileConcurrency: 1,\n reuseWorkers: true,\n onDebug: () => { }\n};\n/**\n * Process multiple jobs with a \"farm\" of different workers in worker pools.\n */\nexport default class WorkerFarm {\n props;\n workerPools = new Map();\n // singleton\n static _workerFarm;\n /** Checks if workers are supported on this platform */\n static isSupported() {\n return WorkerThread.isSupported();\n }\n /** Get the singleton instance of the global worker farm */\n static getWorkerFarm(props = {}) {\n WorkerFarm._workerFarm = WorkerFarm._workerFarm || new WorkerFarm({});\n WorkerFarm._workerFarm.setProps(props);\n return WorkerFarm._workerFarm;\n }\n /** get global instance with WorkerFarm.getWorkerFarm() */\n constructor(props) {\n this.props = { ...DEFAULT_PROPS };\n this.setProps(props);\n /** @type Map} */\n this.workerPools = new Map();\n }\n /**\n * Terminate all workers in the farm\n * @note Can free up significant memory\n */\n destroy() {\n for (const workerPool of this.workerPools.values()) {\n workerPool.destroy();\n }\n this.workerPools = new Map();\n }\n /**\n * Set props used when initializing worker pools\n * @param props\n */\n setProps(props) {\n this.props = { ...this.props, ...props };\n // Update worker pool props\n for (const workerPool of this.workerPools.values()) {\n workerPool.setProps(this._getWorkerPoolProps());\n }\n }\n /**\n * Returns a worker pool for the specified worker\n * @param options - only used first time for a specific worker name\n * @param options.name - the name of the worker - used to identify worker pool\n * @param options.url -\n * @param options.source -\n * @example\n * const job = WorkerFarm.getWorkerFarm().getWorkerPool({name, url}).startJob(...);\n */\n getWorkerPool(options) {\n const { name, source, url } = options;\n let workerPool = this.workerPools.get(name);\n if (!workerPool) {\n workerPool = new WorkerPool({\n name,\n source,\n url\n });\n workerPool.setProps(this._getWorkerPoolProps());\n this.workerPools.set(name, workerPool);\n }\n return workerPool;\n }\n _getWorkerPoolProps() {\n return {\n maxConcurrency: this.props.maxConcurrency,\n maxMobileConcurrency: this.props.maxMobileConcurrency,\n reuseWorkers: this.props.reuseWorkers,\n onDebug: this.props.onDebug\n };\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { assert } from \"../env-utils/assert.js\";\nimport { isBrowser } from \"../env-utils/globals.js\";\nimport { VERSION, NPM_TAG } from \"../env-utils/version.js\";\n/**\n * Gets worker object's name (for debugging in Chrome thread inspector window)\n */\nexport function getWorkerName(worker) {\n const warning = worker.version !== VERSION ? ` (worker-utils@${VERSION})` : '';\n return `${worker.name}@${worker.version}${warning}`;\n}\n/**\n * Generate a worker URL based on worker object and options\n * @returns A URL to one of the following:\n * - a published worker on unpkg CDN\n * - a local test worker\n * - a URL provided by the user in options\n */\nexport function getWorkerURL(worker, options = {}) {\n const workerOptions = options[worker.id] || {};\n const workerFile = isBrowser ? `${worker.id}-worker.js` : `${worker.id}-worker-node.js`;\n let url = workerOptions.workerUrl;\n // HACK: Allow for non-nested workerUrl for the CompressionWorker.\n // For the compression worker, workerOptions is currently not nested correctly. For most loaders,\n // you'd have options within an object, i.e. `{mvt: {coordinates: ...}}` but the CompressionWorker\n // puts options at the top level, not within a `compression` key (its `id`). For this reason, the\n // above `workerOptions` will always be a string (i.e. `'gzip'`) for the CompressionWorker. To not\n // break backwards compatibility, we allow the CompressionWorker to have options at the top level.\n if (!url && worker.id === 'compression') {\n url = options.workerUrl;\n }\n // If URL is test, generate local loaders.gl url\n // @ts-ignore _workerType\n if (options._workerType === 'test') {\n if (isBrowser) {\n url = `modules/${worker.module}/dist/${workerFile}`;\n }\n else {\n // In the test environment the ts-node loader requires TypeScript code\n url = `modules/${worker.module}/src/workers/${worker.id}-worker-node.ts`;\n }\n }\n // If url override is not provided, generate a URL to published version on npm CDN unpkg.com\n if (!url) {\n // GENERATE\n let version = worker.version;\n // On master we need to load npm alpha releases published with the `beta` tag\n if (version === 'latest') {\n // throw new Error('latest worker version specified');\n version = NPM_TAG;\n }\n const versionTag = version ? `@${version}` : '';\n url = `https://unpkg.com/@loaders.gl/${worker.module}${versionTag}/dist/${workerFile}`;\n }\n assert(url);\n // Allow user to override location\n return url;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { assert } from \"../env-utils/assert.js\";\nimport { VERSION } from \"../env-utils/version.js\";\n/**\n * Check if worker is compatible with this library version\n * @param worker\n * @param libVersion\n * @returns `true` if the two versions are compatible\n */\nexport function validateWorkerVersion(worker, coreVersion = VERSION) {\n assert(worker, 'no worker provided');\n const workerVersion = worker.version;\n if (!coreVersion || !workerVersion) {\n return false;\n }\n // TODO enable when fix the __version__ injection\n // const coreVersions = parseVersion(coreVersion);\n // const workerVersions = parseVersion(workerVersion);\n // assert(\n // coreVersion.major === workerVersion.major && coreVersion.minor <= workerVersion.minor,\n // `worker: ${worker.name} is not compatible. ${coreVersion.major}.${\n // coreVersion.minor\n // }+ is required.`\n // );\n return true;\n}\n// @ts-ignore\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction parseVersion(version) {\n const parts = version.split('.').map(Number);\n return { major: parts[0], minor: parts[1] };\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n/* global importScripts */\nimport { isBrowser, isWorker } from \"../env-utils/globals.js\";\nimport { assert } from \"../env-utils/assert.js\";\nimport { VERSION } from \"../env-utils/version.js\";\nconst loadLibraryPromises = {}; // promises\n/**\n * Dynamically loads a library (\"module\")\n *\n * - wasm library: Array buffer is returned\n * - js library: Parse JS is returned\n *\n * Method depends on environment\n * - browser - script element is created and installed on document\n * - worker - eval is called on global context\n * - node - file is required\n *\n * @param libraryUrl\n * @param moduleName\n * @param options\n */\nexport async function loadLibrary(libraryUrl, moduleName = null, options = {}, libraryName = null) {\n if (moduleName) {\n libraryUrl = getLibraryUrl(libraryUrl, moduleName, options, libraryName);\n }\n // Ensure libraries are only loaded once\n loadLibraryPromises[libraryUrl] =\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n loadLibraryPromises[libraryUrl] || loadLibraryFromFile(libraryUrl);\n return await loadLibraryPromises[libraryUrl];\n}\n// TODO - sort out how to resolve paths for main/worker and dev/prod\nexport function getLibraryUrl(library, moduleName, options = {}, libraryName = null) {\n // Check if already a URL\n if (!options.useLocalLibraries && library.startsWith('http')) {\n return library;\n }\n libraryName = libraryName || library;\n // Allow application to import and supply libraries through `options.modules`\n // TODO - See js-module-utils in loader-utils\n const modules = options.modules || {};\n if (modules[libraryName]) {\n return modules[libraryName];\n }\n // Load from local files, not from CDN scripts in Node.js\n // TODO - needs to locate the modules directory when installed!\n if (!isBrowser) {\n return `modules/${moduleName}/dist/libs/${libraryName}`;\n }\n // In browser, load from external scripts\n if (options.CDN) {\n assert(options.CDN.startsWith('http'));\n return `${options.CDN}/${moduleName}@${VERSION}/dist/libs/${libraryName}`;\n }\n // TODO - loading inside workers requires paths relative to worker script location...\n if (isWorker) {\n return `../src/libs/${libraryName}`;\n }\n return `modules/${moduleName}/src/libs/${libraryName}`;\n}\nasync function loadLibraryFromFile(libraryUrl) {\n if (libraryUrl.endsWith('wasm')) {\n return await loadAsArrayBuffer(libraryUrl);\n }\n if (!isBrowser) {\n // TODO - Node doesn't yet support dynamic import from https URLs\n // try {\n // return await import(libraryUrl);\n // } catch (error) {\n // console.error(error);\n // }\n try {\n const { requireFromFile } = globalThis.loaders || {};\n return await requireFromFile?.(libraryUrl);\n }\n catch (error) {\n console.error(error); // eslint-disable-line no-console\n return null;\n }\n }\n if (isWorker) {\n return importScripts(libraryUrl);\n }\n // TODO - fix - should be more secure than string parsing since observes CORS\n // if (isBrowser) {\n // return await loadScriptFromFile(libraryUrl);\n // }\n const scriptSource = await loadAsText(libraryUrl);\n return loadLibraryFromString(scriptSource, libraryUrl);\n}\n/*\nasync function loadScriptFromFile(libraryUrl) {\n const script = document.createElement('script');\n script.src = libraryUrl;\n return await new Promise((resolve, reject) => {\n script.onload = data => {\n resolve(data);\n };\n script.onerror = reject;\n });\n}\n*/\n// TODO - Needs security audit...\n// - Raw eval call\n// - Potentially bypasses CORS\n// Upside is that this separates fetching and parsing\n// we could create a`LibraryLoader` or`ModuleLoader`\nfunction loadLibraryFromString(scriptSource, id) {\n if (!isBrowser) {\n const { requireFromString } = globalThis.loaders || {};\n return requireFromString?.(scriptSource, id);\n }\n if (isWorker) {\n // Use lvalue trick to make eval run in global scope\n eval.call(globalThis, scriptSource); // eslint-disable-line no-eval\n // https://stackoverflow.com/questions/9107240/1-evalthis-vs-evalthis-in-javascript\n // http://perfectionkills.com/global-eval-what-are-the-options/\n return null;\n }\n const script = document.createElement('script');\n script.id = id;\n // most browsers like a separate text node but some throw an error. The second method covers those.\n try {\n script.appendChild(document.createTextNode(scriptSource));\n }\n catch (e) {\n script.text = scriptSource;\n }\n document.body.appendChild(script);\n return null;\n}\n// TODO - technique for module injection into worker, from THREE.DracoLoader...\n/*\nfunction combineWorkerWithLibrary(worker, jsContent) {\n var fn = wWorker.toString();\n var body = [\n '// injected',\n jsContent,\n '',\n '// worker',\n fn.substring(fn.indexOf('{') + 1, fn.lastIndexOf('}'))\n ].join('\\n');\n this.workerSourceURL = URL.createObjectURL(new Blob([body]));\n}\n*/\nasync function loadAsArrayBuffer(url) {\n const { readFileAsArrayBuffer } = globalThis.loaders || {};\n if (isBrowser || !readFileAsArrayBuffer || url.startsWith('http')) {\n const response = await fetch(url);\n return await response.arrayBuffer();\n }\n return await readFileAsArrayBuffer(url);\n}\n/**\n * Load a file from local file system\n * @param filename\n * @returns\n */\nasync function loadAsText(url) {\n const { readFileAsText } = globalThis.loaders || {};\n if (isBrowser || !readFileAsText || url.startsWith('http')) {\n const response = await fetch(url);\n return await response.text();\n }\n return await readFileAsText(url);\n}\n", "import { isBrowser } from '@loaders.gl/worker-utils';\nimport { WorkerFarm, getWorkerURL } from '@loaders.gl/worker-utils';\n/**\n * Determines if a loader can parse with worker\n * @param loader\n * @param options\n */\nexport function canParseWithWorker(loader, options) {\n if (!WorkerFarm.isSupported()) {\n return false;\n }\n // Node workers are still experimental\n if (!isBrowser && !options?._nodeWorkers) {\n return false;\n }\n return loader.worker && options?.worker;\n}\n/**\n * this function expects that the worker function sends certain messages,\n * this can be automated if the worker is wrapper by a call to createLoaderWorker in @loaders.gl/loader-utils.\n */\nexport async function parseWithWorker(loader, data, options, context, parseOnMainThread) {\n const name = loader.id; // TODO\n const url = getWorkerURL(loader, options);\n const workerFarm = WorkerFarm.getWorkerFarm(options);\n const workerPool = workerFarm.getWorkerPool({ name, url });\n // options.log object contains functions which cannot be transferred\n // context.fetch & context.parse functions cannot be transferred\n // TODO - decide how to handle logging on workers\n options = JSON.parse(JSON.stringify(options));\n context = JSON.parse(JSON.stringify(context || {}));\n const job = await workerPool.startJob('process-on-worker', \n // @ts-expect-error\n onMessage.bind(null, parseOnMainThread) // eslint-disable-line @typescript-eslint/no-misused-promises\n );\n job.postMessage('process', {\n // @ts-ignore\n input: data,\n options,\n context\n });\n const result = await job.result;\n // TODO - what is going on here?\n return await result.result;\n}\n/**\n * Handle worker's responses to the main thread\n * @param job\n * @param type\n * @param payload\n */\nasync function onMessage(parseOnMainThread, job, type, payload) {\n switch (type) {\n case 'done':\n job.done(payload);\n break;\n case 'error':\n job.error(new Error(payload.error));\n break;\n case 'process':\n // Worker is asking for main thread to parseO\n const { id, input, options } = payload;\n try {\n const result = await parseOnMainThread(input, options);\n job.postMessage('done', { id, result });\n }\n catch (error) {\n const message = error instanceof Error ? error.message : 'unknown error';\n job.postMessage('error', { id, error: message });\n }\n break;\n default:\n // eslint-disable-next-line\n console.warn(`parse-with-worker unknown message ${type}`);\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n/**\n * Get the first characters from a binary file (interpret the first bytes as an ASCII string)\n * @param data\n * @param length\n * @returns\n */\nexport function getFirstCharacters(data, length = 5) {\n if (typeof data === 'string') {\n return data.slice(0, length);\n }\n else if (ArrayBuffer.isView(data)) {\n // Typed Arrays can have offsets into underlying buffer\n return getMagicString(data.buffer, data.byteOffset, length);\n }\n else if (data instanceof ArrayBuffer) {\n const byteOffset = 0;\n return getMagicString(data, byteOffset, length);\n }\n return '';\n}\n/**\n * Gets a magic string from a \"file\"\n * Typically used to check or detect file format\n * @param arrayBuffer\n * @param byteOffset\n * @param length\n * @returns\n */\nexport function getMagicString(arrayBuffer, byteOffset, length) {\n if (arrayBuffer.byteLength <= byteOffset + length) {\n return '';\n }\n const dataView = new DataView(arrayBuffer);\n let magic = '';\n for (let i = 0; i < length; i++) {\n magic += String.fromCharCode(dataView.getUint8(byteOffset + i));\n }\n return magic;\n}\n", "import { getFirstCharacters } from \"../binary-utils/get-first-characters.js\";\n/**\n * Minimal JSON parser that throws more meaningful error messages\n */\nexport function parseJSON(string) {\n try {\n return JSON.parse(string);\n }\n catch (_) {\n throw new Error(`Failed to parse JSON from data starting with \"${getFirstCharacters(string)}\"`);\n }\n}\n", "/**\n * compare two binary arrays for equality\n * @param a\n * @param b\n * @param byteLength\n */\nexport function compareArrayBuffers(arrayBuffer1, arrayBuffer2, byteLength) {\n byteLength = byteLength || arrayBuffer1.byteLength;\n if (arrayBuffer1.byteLength < byteLength || arrayBuffer2.byteLength < byteLength) {\n return false;\n }\n const array1 = new Uint8Array(arrayBuffer1);\n const array2 = new Uint8Array(arrayBuffer2);\n for (let i = 0; i < array1.length; ++i) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Concatenate a sequence of ArrayBuffers from arguments\n * @return A concatenated ArrayBuffer\n */\nexport function concatenateArrayBuffers(...sources) {\n return concatenateArrayBuffersFromArray(sources);\n}\n/**\n * Concatenate a sequence of ArrayBuffers from array\n * @return A concatenated ArrayBuffer\n */\nexport function concatenateArrayBuffersFromArray(sources) {\n // Make sure all inputs are wrapped in typed arrays\n const sourceArrays = sources.map((source2) => source2 instanceof ArrayBuffer ? new Uint8Array(source2) : source2);\n // Get length of all inputs\n const byteLength = sourceArrays.reduce((length, typedArray) => length + typedArray.byteLength, 0);\n // Allocate array with space for all inputs\n const result = new Uint8Array(byteLength);\n // Copy the subarrays\n let offset = 0;\n for (const sourceArray of sourceArrays) {\n result.set(sourceArray, offset);\n offset += sourceArray.byteLength;\n }\n // We work with ArrayBuffers, discard the typed array wrapper\n return result.buffer;\n}\n/**\n * Concatenate arbitrary count of typed arrays\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays\n * @param - list of arrays. All arrays should be the same type\n * @return A concatenated TypedArray\n */\nexport function concatenateTypedArrays(...typedArrays) {\n // @ts-ignore\n const arrays = typedArrays;\n // @ts-ignore\n const TypedArrayConstructor = (arrays && arrays.length > 1 && arrays[0].constructor) || null;\n if (!TypedArrayConstructor) {\n throw new Error('\"concatenateTypedArrays\" - incorrect quantity of arguments or arguments have incompatible data types');\n }\n const sumLength = arrays.reduce((acc, value) => acc + value.length, 0);\n // @ts-ignore typescript does not like dynamic constructors\n const result = new TypedArrayConstructor(sumLength);\n let offset = 0;\n for (const array of arrays) {\n result.set(array, offset);\n offset += array.length;\n }\n return result;\n}\n/**\n * Copy a view of an ArrayBuffer into new ArrayBuffer with byteOffset = 0\n * @param arrayBuffer\n * @param byteOffset\n * @param byteLength\n */\nexport function sliceArrayBuffer(arrayBuffer, byteOffset, byteLength) {\n const subArray = byteLength !== undefined\n ? new Uint8Array(arrayBuffer).subarray(byteOffset, byteOffset + byteLength)\n : new Uint8Array(arrayBuffer).subarray(byteOffset);\n const arrayCopy = new Uint8Array(subArray);\n return arrayCopy.buffer;\n}\n", "import { assert } from \"../env-utils/assert.js\";\n/**\n * Calculate new size of an arrayBuffer to be aligned to an n-byte boundary\n * This function increases `byteLength` by the minimum delta,\n * allowing the total length to be divided by `padding`\n * @param byteLength\n * @param padding\n */\nexport function padToNBytes(byteLength, padding) {\n assert(byteLength >= 0); // `Incorrect 'byteLength' value: ${byteLength}`\n assert(padding > 0); // `Incorrect 'padding' value: ${padding}`\n return (byteLength + (padding - 1)) & ~(padding - 1);\n}\n/**\n * Creates a new Uint8Array based on two different ArrayBuffers\n * @param targetBuffer The first buffer.\n * @param sourceBuffer The second buffer.\n * @return The new ArrayBuffer created out of the two.\n */\nexport function copyArrayBuffer(targetBuffer, sourceBuffer, byteOffset, byteLength = sourceBuffer.byteLength) {\n const targetArray = new Uint8Array(targetBuffer, byteOffset, byteLength);\n const sourceArray = new Uint8Array(sourceBuffer);\n targetArray.set(sourceArray);\n return targetBuffer;\n}\n/**\n * Copy from source to target at the targetOffset\n *\n * @param source - The data to copy\n * @param target - The destination to copy data into\n * @param targetOffset - The start offset into target to place the copied data\n * @returns the new offset taking into account proper padding\n */\nexport function copyToArray(source, target, targetOffset) {\n let sourceArray;\n if (source instanceof ArrayBuffer) {\n sourceArray = new Uint8Array(source);\n }\n else {\n // Pack buffer onto the big target array\n //\n // 'source.data.buffer' could be a view onto a larger buffer.\n // We MUST use this constructor to ensure the byteOffset and byteLength is\n // set to correct values from 'source.data' and not the underlying\n // buffer for target.set() to work properly.\n const srcByteOffset = source.byteOffset;\n const srcByteLength = source.byteLength;\n // In gltf parser it is set as \"arrayBuffer\" instead of \"buffer\"\n // https://github.com/visgl/loaders.gl/blob/1e3a82a0a65d7b6a67b1e60633453e5edda2960a/modules/gltf/src/lib/parse-gltf.js#L85\n sourceArray = new Uint8Array(source.buffer || source.arrayBuffer, srcByteOffset, srcByteLength);\n }\n // Pack buffer onto the big target array\n target.set(sourceArray, targetOffset);\n return targetOffset + padToNBytes(sourceArray.byteLength, 4);\n}\n", "import { concatenateArrayBuffers } from \"../binary-utils/array-buffer-utils.js\";\n// GENERAL UTILITIES\n/**\n * Iterate over async iterator, without resetting iterator if end is not reached\n * - forEach intentionally does not reset iterator if exiting loop prematurely\n * so that iteration can continue in a second loop\n * - It is recommended to use a standard for-await as last loop to ensure\n * iterator gets properly reset\n *\n * TODO - optimize using sync iteration if argument is an Iterable?\n *\n * @param iterator\n * @param visitor\n */\nexport async function forEach(iterator, visitor) {\n // eslint-disable-next-line\n while (true) {\n const { done, value } = await iterator.next();\n if (done) {\n iterator.return();\n return;\n }\n const cancel = visitor(value);\n if (cancel) {\n return;\n }\n }\n}\n// Breaking big data into iterable chunks, concatenating iterable chunks into big data objects\n/**\n * Concatenates all data chunks yielded by an (async) iterator\n * This function can e.g. be used to enable atomic parsers to work on (async) iterator inputs\n */\nexport async function concatenateArrayBuffersAsync(asyncIterator) {\n const arrayBuffers = [];\n for await (const chunk of asyncIterator) {\n arrayBuffers.push(chunk);\n }\n return concatenateArrayBuffers(...arrayBuffers);\n}\nexport async function concatenateStringsAsync(asyncIterator) {\n const strings = [];\n for await (const chunk of asyncIterator) {\n strings.push(chunk);\n }\n return strings.join('');\n}\n", "// Simple file alias mechanisms for tests.\nlet pathPrefix = '';\nconst fileAliases = {};\n/*\n * Set a relative path prefix\n */\nexport function setPathPrefix(prefix) {\n pathPrefix = prefix;\n}\n/*\n * Get the relative path prefix\n */\nexport function getPathPrefix() {\n return pathPrefix;\n}\n/**\n *\n * @param aliases\n *\n * Note: addAliases are an experimental export, they are only for testing of loaders.gl loaders\n * not intended as a generic aliasing mechanism\n */\nexport function addAliases(aliases) {\n Object.assign(fileAliases, aliases);\n}\n/**\n * Resolves aliases and adds path-prefix to paths\n */\nexport function resolvePath(filename) {\n for (const alias in fileAliases) {\n if (filename.startsWith(alias)) {\n const replacement = fileAliases[alias];\n filename = filename.replace(alias, replacement);\n }\n }\n if (!filename.startsWith('http://') && !filename.startsWith('https://')) {\n filename = `${pathPrefix}${filename}`;\n }\n return filename;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n// Isolates Buffer references to ensure they are only bundled under Node.js (avoids big webpack polyfill)\n// this file is selected by the package.json \"browser\" field).\n/**\n * Convert Buffer to ArrayBuffer\n * Converts Node.js `Buffer` to `ArrayBuffer` (without triggering bundler to include Buffer polyfill on browser)\n * @todo better data type\n */\nexport function toArrayBuffer(buffer) {\n return buffer;\n}\n/**\n * Convert (copy) ArrayBuffer to Buffer\n */\nexport function toBuffer(binaryData) {\n throw new Error('Buffer not supported in browser');\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport * as node from \"../node/buffer.js\";\n/**\n * Check for Node.js `Buffer` (without triggering bundler to include Buffer polyfill on browser)\n */\nexport function isBuffer(value) {\n return value && typeof value === 'object' && value.isBuffer;\n}\n/**\n * Converts to Node.js `Buffer` (without triggering bundler to include Buffer polyfill on browser)\n * @todo better data type\n */\nexport function toBuffer(data) {\n return node.toBuffer ? node.toBuffer(data) : data;\n}\n/**\n * Convert an object to an array buffer\n */\nexport function toArrayBuffer(data) {\n // Note: Should be called first, Buffers can trigger other detections below\n if (isBuffer(data)) {\n return node.toArrayBuffer(data);\n }\n if (data instanceof ArrayBuffer) {\n return data;\n }\n // Careful - Node Buffers look like Uint8Arrays (keep after isBuffer)\n if (ArrayBuffer.isView(data)) {\n if (data.byteOffset === 0 && data.byteLength === data.buffer.byteLength) {\n return data.buffer;\n }\n return data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);\n }\n if (typeof data === 'string') {\n const text = data;\n const uint8Array = new TextEncoder().encode(text);\n return uint8Array.buffer;\n }\n // HACK to support Blob polyfill\n if (data && typeof data === 'object' && data._toArrayBuffer) {\n return data._toArrayBuffer();\n }\n throw new Error('toArrayBuffer');\n}\n", "// Beginning of a minimal implementation of the Node.js path API, that doesn't pull in big polyfills.\nimport { getCWD } from \"./get-cwd.js\";\n/**\n * Replacement for Node.js path.filename\n * @param url\n */\nexport function filename(url) {\n const slashIndex = url ? url.lastIndexOf('/') : -1;\n return slashIndex >= 0 ? url.substr(slashIndex + 1) : '';\n}\n/**\n * Replacement for Node.js path.dirname\n * @param url\n */\nexport function dirname(url) {\n const slashIndex = url ? url.lastIndexOf('/') : -1;\n return slashIndex >= 0 ? url.substr(0, slashIndex) : '';\n}\n/**\n * Replacement for Node.js path.join\n * @param parts\n */\nexport function join(...parts) {\n const separator = '/';\n parts = parts.map((part, index) => {\n if (index) {\n part = part.replace(new RegExp(`^${separator}`), '');\n }\n if (index !== parts.length - 1) {\n part = part.replace(new RegExp(`${separator}$`), '');\n }\n return part;\n });\n return parts.join(separator);\n}\n/* eslint-disable no-continue */\n/**\n * https://nodejs.org/api/path.html#path_path_resolve_paths\n * @param paths A sequence of paths or path segments.\n * @return resolved path\n * Forked from BTOdell/path-resolve under MIT license\n * @see https://github.com/BTOdell/path-resolve/blob/master/LICENSE\n */\nexport function resolve(...components) {\n const paths = [];\n for (let _i = 0; _i < components.length; _i++) {\n paths[_i] = components[_i];\n }\n let resolvedPath = '';\n let resolvedAbsolute = false;\n let cwd;\n for (let i = paths.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n let path;\n if (i >= 0) {\n path = paths[i];\n }\n else {\n if (cwd === undefined) {\n cwd = getCWD();\n }\n path = cwd;\n }\n // Skip empty entries\n if (path.length === 0) {\n continue;\n }\n resolvedPath = `${path}/${resolvedPath}`;\n resolvedAbsolute = path.charCodeAt(0) === SLASH;\n }\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n // Normalize the path (removes leading slash)\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n if (resolvedAbsolute) {\n return `/${resolvedPath}`;\n }\n else if (resolvedPath.length > 0) {\n return resolvedPath;\n }\n return '.';\n}\nconst SLASH = 47;\nconst DOT = 46;\n/**\n * Resolves . and .. elements in a path with directory names\n * Forked from BTOdell/path-resolve under MIT license\n * @see https://github.com/BTOdell/path-resolve/blob/master/LICENSE\n */\n/* eslint-disable max-depth */\n// eslint-disable-next-line complexity, max-statements\nfunction normalizeStringPosix(path, allowAboveRoot) {\n let res = '';\n let lastSlash = -1;\n let dots = 0;\n let code;\n let isAboveRoot = false;\n for (let i = 0; i <= path.length; ++i) {\n if (i < path.length) {\n code = path.charCodeAt(i);\n }\n else if (code === SLASH) {\n break;\n }\n else {\n code = SLASH;\n }\n if (code === SLASH) {\n if (lastSlash === i - 1 || dots === 1) {\n // NOOP\n }\n else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 ||\n !isAboveRoot ||\n res.charCodeAt(res.length - 1) !== DOT ||\n res.charCodeAt(res.length - 2) !== DOT) {\n if (res.length > 2) {\n const start = res.length - 1;\n let j = start;\n for (; j >= 0; --j) {\n if (res.charCodeAt(j) === SLASH) {\n break;\n }\n }\n if (j !== start) {\n res = j === -1 ? '' : res.slice(0, j);\n lastSlash = i;\n dots = 0;\n isAboveRoot = false;\n continue;\n }\n }\n else if (res.length === 2 || res.length === 1) {\n res = '';\n lastSlash = i;\n dots = 0;\n isAboveRoot = false;\n continue;\n }\n }\n if (allowAboveRoot) {\n if (res.length > 0) {\n res += '/..';\n }\n else {\n res = '..';\n }\n isAboveRoot = true;\n }\n }\n else {\n const slice = path.slice(lastSlash + 1, i);\n if (res.length > 0) {\n res += `/${slice}`;\n }\n else {\n res = slice;\n }\n isAboveRoot = false;\n }\n lastSlash = i;\n dots = 0;\n }\n else if (code === DOT && dots !== -1) {\n ++dots;\n }\n else {\n dots = -1;\n }\n }\n return res;\n}\n", "// loaders.gl MIT license\nexport function getCWD() {\n if (typeof process !== 'undefined' && typeof process.cwd !== 'undefined') {\n return process.cwd();\n }\n const pathname = window.location?.pathname;\n return pathname?.slice(0, pathname.lastIndexOf('/') + 1) || '';\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nconst isBoolean = (x) => typeof x === 'boolean';\nconst isFunction = (x) => typeof x === 'function';\nexport const isObject = (x) => x !== null && typeof x === 'object';\nexport const isPureObject = (x) => isObject(x) && x.constructor === {}.constructor;\nexport const isPromise = (x) => isObject(x) && isFunction(x.then);\nexport const isIterable = (x) => Boolean(x) && typeof x[Symbol.iterator] === 'function';\nexport const isAsyncIterable = (x) => x && typeof x[Symbol.asyncIterator] === 'function';\nexport const isIterator = (x) => x && isFunction(x.next);\nexport const isResponse = (x) => (typeof Response !== 'undefined' && x instanceof Response) ||\n (x && x.arrayBuffer && x.text && x.json);\nexport const isFile = (x) => typeof File !== 'undefined' && x instanceof File;\nexport const isBlob = (x) => typeof Blob !== 'undefined' && x instanceof Blob;\n/** Check for Node.js `Buffer` without triggering bundler to include buffer polyfill */\nexport const isBuffer = (x) => x && typeof x === 'object' && x.isBuffer;\nexport const isWritableDOMStream = (x) => isObject(x) && isFunction(x.abort) && isFunction(x.getWriter);\nexport const isReadableDOMStream = (x) => (typeof ReadableStream !== 'undefined' && x instanceof ReadableStream) ||\n (isObject(x) && isFunction(x.tee) && isFunction(x.cancel) && isFunction(x.getReader));\n// Not implemented in Firefox: && isFunction(x.pipeTo)\nexport const isWritableNodeStream = (x) => isObject(x) && isFunction(x.end) && isFunction(x.write) && isBoolean(x.writable);\nexport const isReadableNodeStream = (x) => isObject(x) && isFunction(x.read) && isFunction(x.pipe) && isBoolean(x.readable);\nexport const isReadableStream = (x) => isReadableDOMStream(x) || isReadableNodeStream(x);\nexport const isWritableStream = (x) => isWritableDOMStream(x) || isWritableNodeStream(x);\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nexport class FetchError extends Error {\n constructor(message, info) {\n super(message);\n this.reason = info.reason;\n this.url = info.url;\n this.response = info.response;\n }\n /** A best effort reason for why the fetch failed */\n reason;\n /** The URL that failed to load. Empty string if not available. */\n url;\n /** The Response object, if any. */\n response;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n// TODO - build/integrate proper MIME type parsing\n// https://mimesniff.spec.whatwg.org/\nconst DATA_URL_PATTERN = /^data:([-\\w.]+\\/[-\\w.+]+)(;|,)/;\nconst MIME_TYPE_PATTERN = /^([-\\w.]+\\/[-\\w.+]+)/;\n/**\n * Compare two MIME types, case insensitively etc.\n * @param mimeType1\n * @param mimeType2\n * @returns true if the MIME types are equivalent\n * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#structure_of_a_mime_type\n */\nexport function compareMIMETypes(mimeType1, mimeType2) {\n if (mimeType1.toLowerCase() === mimeType2.toLowerCase()) {\n return true;\n }\n return false;\n}\n/**\n * Remove extra data like `charset` from MIME types\n * @param mimeString\n * @returns A clean MIME type, or an empty string\n *\n * @todo - handle more advanced MIMETYpes, multiple types\n * @todo - extract charset etc\n */\nexport function parseMIMEType(mimeString) {\n // If resource is a data url, extract any embedded mime type\n const matches = MIME_TYPE_PATTERN.exec(mimeString);\n if (matches) {\n return matches[1];\n }\n return mimeString;\n}\n/**\n * Extract MIME type from data URL\n *\n * @param mimeString\n * @returns A clean MIME type, or an empty string\n *\n * @todo - handle more advanced MIMETYpes, multiple types\n * @todo - extract charset etc\n */\nexport function parseMIMETypeFromURL(url) {\n // If resource is a data URL, extract any embedded mime type\n const matches = DATA_URL_PATTERN.exec(url);\n if (matches) {\n return matches[1];\n }\n return '';\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nconst QUERY_STRING_PATTERN = /\\?.*/;\nexport function extractQueryString(url) {\n const matches = url.match(QUERY_STRING_PATTERN);\n return matches && matches[0];\n}\nexport function stripQueryString(url) {\n return url.replace(QUERY_STRING_PATTERN, '');\n}\nexport function shortenUrlForDisplay(url) {\n if (url.length < 50) {\n return url;\n }\n const urlEnd = url.slice(url.length - 15);\n const urlStart = url.substr(0, 32);\n return `${urlStart}...${urlEnd}`;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { isResponse, isBlob } from \"../../javascript-utils/is-type.js\";\nimport { parseMIMEType, parseMIMETypeFromURL } from \"./mime-type-utils.js\";\nimport { stripQueryString } from \"./url-utils.js\";\n/**\n * Returns the URL associated with this resource.\n * The returned value may include a query string and need further processing.\n * If it cannot determine url, the corresponding value will be an empty string\n *\n * @todo string parameters are assumed to be URLs\n */\nexport function getResourceUrl(resource) {\n // If resource is a `Response`, it contains the information directly as a field\n if (isResponse(resource)) {\n const response = resource;\n return response.url;\n }\n // If the resource is a Blob or a File (subclass of Blob)\n if (isBlob(resource)) {\n const blob = resource;\n // File objects have a \"name\" property. Blob objects don't have any\n // url (name) information\n return blob.name || '';\n }\n if (typeof resource === 'string') {\n return resource;\n }\n // Unknown\n return '';\n}\n/**\n * Returns the URL associated with this resource.\n * The returned value may include a query string and need further processing.\n * If it cannot determine url, the corresponding value will be an empty string\n *\n * @todo string parameters are assumed to be URLs\n */\nexport function getResourceMIMEType(resource) {\n // If resource is a response, it contains the information directly\n if (isResponse(resource)) {\n const response = resource;\n const contentTypeHeader = response.headers.get('content-type') || '';\n const noQueryUrl = stripQueryString(response.url);\n return parseMIMEType(contentTypeHeader) || parseMIMETypeFromURL(noQueryUrl);\n }\n // If the resource is a Blob or a File (subclass of Blob)\n if (isBlob(resource)) {\n const blob = resource;\n return blob.type || '';\n }\n if (typeof resource === 'string') {\n return parseMIMETypeFromURL(resource);\n }\n // Unknown\n return '';\n}\n/**\n * Returns (approximate) content length for a resource if it can be determined.\n * Returns -1 if content length cannot be determined.\n * @param resource\n\n * @note string parameters are NOT assumed to be URLs\n */\nexport function getResourceContentLength(resource) {\n if (isResponse(resource)) {\n const response = resource;\n return response.headers['content-length'] || -1;\n }\n if (isBlob(resource)) {\n const blob = resource;\n return blob.size;\n }\n if (typeof resource === 'string') {\n // TODO - handle data URL?\n return resource.length;\n }\n if (resource instanceof ArrayBuffer) {\n return resource.byteLength;\n }\n if (ArrayBuffer.isView(resource)) {\n return resource.byteLength;\n }\n return -1;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { isResponse } from \"../../javascript-utils/is-type.js\";\nimport { FetchError } from \"../fetch/fetch-error.js\";\nimport { getResourceContentLength, getResourceUrl, getResourceMIMEType } from \"./resource-utils.js\";\nimport { shortenUrlForDisplay } from \"./url-utils.js\";\n/**\n * Returns a Response object\n * Adds content-length header when possible\n *\n * @param resource\n */\nexport async function makeResponse(resource) {\n if (isResponse(resource)) {\n return resource;\n }\n // Add content-length header if possible\n const headers = {};\n const contentLength = getResourceContentLength(resource);\n if (contentLength >= 0) {\n headers['content-length'] = String(contentLength);\n }\n // `new Response(File)` does not preserve content-type and URL\n // so we add them here\n const url = getResourceUrl(resource);\n const type = getResourceMIMEType(resource);\n if (type) {\n headers['content-type'] = type;\n }\n // Add a custom header with initial bytes if available\n const initialDataUrl = await getInitialDataUrl(resource);\n if (initialDataUrl) {\n headers['x-first-bytes'] = initialDataUrl;\n }\n // TODO - is this the best way of handling strings?\n // Maybe package as data URL instead?\n if (typeof resource === 'string') {\n // Convert to ArrayBuffer to avoid Response treating it as a URL\n resource = new TextEncoder().encode(resource);\n }\n // Attempt to create a Response from the resource, adding headers and setting url\n const response = new Response(resource, { headers });\n // We can't control `Response.url` via constructor, use a property override to record URL.\n Object.defineProperty(response, 'url', { value: url });\n return response;\n}\n/**\n * Checks response status (async) and throws a helpful error message if status is not OK.\n * @param response\n */\nexport async function checkResponse(response) {\n if (!response.ok) {\n const error = await getResponseError(response);\n throw error;\n }\n}\n/**\n * Checks response status (sync) and throws a helpful error message if status is not OK.\n * @param response\n */\nexport function checkResponseSync(response) {\n if (!response.ok) {\n let message = `${response.status} ${response.statusText}`;\n message = message.length > 60 ? `${message.slice(0, 60)}...` : message;\n throw new Error(message);\n }\n}\n// HELPERS\nasync function getResponseError(response) {\n const shortUrl = shortenUrlForDisplay(response.url);\n let message = `Failed to fetch resource (${response.status}) ${response.statusText}: ${shortUrl}`;\n message = message.length > 100 ? `${message.slice(0, 100)}...` : message;\n const info = {\n reason: response.statusText,\n url: response.url,\n response\n };\n try {\n const contentType = response.headers.get('Content-Type');\n info.reason = contentType?.includes('application/json')\n ? await response.json()\n : response.text();\n }\n catch (error) {\n // eslint forbids return in a finally statement, so we just catch here\n }\n return new FetchError(message, info);\n}\nasync function getInitialDataUrl(resource) {\n const INITIAL_DATA_LENGTH = 5;\n if (typeof resource === 'string') {\n return `data:,${resource.slice(0, INITIAL_DATA_LENGTH)}`;\n }\n if (resource instanceof Blob) {\n const blobSlice = resource.slice(0, 5);\n return await new Promise((resolve) => {\n const reader = new FileReader();\n reader.onload = (event) => resolve(event?.target?.result);\n reader.readAsDataURL(blobSlice);\n });\n }\n if (resource instanceof ArrayBuffer) {\n const slice = resource.slice(0, INITIAL_DATA_LENGTH);\n const base64 = arrayBufferToBase64(slice);\n return `data:base64,${base64}`;\n }\n return null;\n}\n// https://stackoverflow.com/questions/9267899/arraybuffer-to-base64-encoded-string\nfunction arrayBufferToBase64(buffer) {\n let binary = '';\n const bytes = new Uint8Array(buffer);\n for (let i = 0; i < bytes.byteLength; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return btoa(binary);\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { resolvePath } from '@loaders.gl/loader-utils';\nimport { makeResponse } from \"../utils/response-utils.js\";\n// import {FetchError} from './fetch-error';\nexport function isNodePath(url) {\n return !isRequestURL(url) && !isDataURL(url);\n}\nexport function isRequestURL(url) {\n return url.startsWith('http:') || url.startsWith('https:');\n}\nexport function isDataURL(url) {\n return url.startsWith('data:');\n}\n/**\n * fetch API compatible function\n * - Supports fetching from Node.js local file system paths\n * - Respects pathPrefix and file aliases\n */\nexport async function fetchFile(urlOrData, fetchOptions) {\n if (typeof urlOrData === 'string') {\n const url = resolvePath(urlOrData);\n // Support fetching from local file system\n if (isNodePath(url)) {\n if (globalThis.loaders?.fetchNode) {\n return globalThis.loaders?.fetchNode(url, fetchOptions);\n }\n // throw new Error(\n // 'fetchFile: globalThis.loaders.fetchNode not defined. Install @loaders.gl/polyfills'\n // );\n }\n // Call global fetch\n return await fetch(url, fetchOptions);\n }\n // TODO - should we still call fetch on non-URL inputs?\n return await makeResponse(urlOrData);\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n// probe.gl Log compatible loggers\nimport { Log } from '@probe.gl/log';\nexport const probeLog = new Log({ id: 'loaders.gl' });\n// Logs nothing\nexport class NullLog {\n log() {\n return () => { };\n }\n info() {\n return () => { };\n }\n warn() {\n return () => { };\n }\n error() {\n return () => { };\n }\n}\n// Logs to console\nexport class ConsoleLog {\n console;\n constructor() {\n this.console = console; // eslint-disable-line\n }\n log(...args) {\n return this.console.log.bind(this.console, ...args);\n }\n info(...args) {\n return this.console.info.bind(this.console, ...args);\n }\n warn(...args) {\n return this.console.warn.bind(this.console, ...args);\n }\n error(...args) {\n return this.console.error.bind(this.console, ...args);\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { isBrowser } from '@loaders.gl/loader-utils';\nimport { ConsoleLog } from \"./loggers.js\";\nexport const DEFAULT_LOADER_OPTIONS = {\n // baseUri\n fetch: null,\n mimeType: undefined,\n nothrow: false,\n log: new ConsoleLog(), // A probe.gl compatible (`log.log()()` syntax) that just logs to console\n useLocalLibraries: false,\n CDN: 'https://unpkg.com/@loaders.gl',\n worker: true, // By default, use worker if provided by loader.\n maxConcurrency: 3, // How many worker instances should be created for each loader.\n maxMobileConcurrency: 1, // How many worker instances should be created for each loader on mobile devices.\n reuseWorkers: isBrowser, // By default reuse workers in browser (Node.js refuses to terminate if browsers are running)\n _nodeWorkers: false, // By default do not support node workers\n _workerType: '', // 'test' to use locally generated workers\n limit: 0,\n _limitMB: 0,\n batchSize: 'auto',\n batchDebounceMs: 0,\n metadata: false, // TODO - currently only implemented for parseInBatches, adds initial metadata batch,\n transforms: []\n};\nexport const REMOVED_LOADER_OPTIONS = {\n throws: 'nothrow',\n dataType: '(no longer used)',\n uri: 'baseUri',\n // Warn if fetch options are used on top-level\n method: 'fetch.method',\n headers: 'fetch.headers',\n body: 'fetch.body',\n mode: 'fetch.mode',\n credentials: 'fetch.credentials',\n cache: 'fetch.cache',\n redirect: 'fetch.redirect',\n referrer: 'fetch.referrer',\n referrerPolicy: 'fetch.referrerPolicy',\n integrity: 'fetch.integrity',\n keepalive: 'fetch.keepalive',\n signal: 'fetch.signal'\n};\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { registerJSModules } from '@loaders.gl/loader-utils';\nimport { isPureObject, isObject } from \"../../javascript-utils/is-type.js\";\nimport { probeLog, NullLog } from \"./loggers.js\";\nimport { DEFAULT_LOADER_OPTIONS, REMOVED_LOADER_OPTIONS } from \"./option-defaults.js\";\n/**\n * Helper for safely accessing global loaders.gl variables\n * Wraps initialization of global variable in function to defeat overly aggressive tree-shakers\n */\nexport function getGlobalLoaderState() {\n // @ts-ignore\n globalThis.loaders = globalThis.loaders || {};\n // @ts-ignore\n const { loaders } = globalThis;\n // Add _state object to keep separate from modules added to globalThis.loaders\n if (!loaders._state) {\n loaders._state = {};\n }\n return loaders._state;\n}\n/**\n * Store global loader options on the global object to increase chances of cross loaders-version interoperability\n * NOTE: This use case is not reliable but can help when testing new versions of loaders.gl with existing frameworks\n * @returns global loader options merged with default loader options\n */\nexport function getGlobalLoaderOptions() {\n const state = getGlobalLoaderState();\n // Ensure all default loader options from this library are mentioned\n state.globalOptions = state.globalOptions || { ...DEFAULT_LOADER_OPTIONS };\n return state.globalOptions;\n}\n/**\n * Set global loader options\n * @param options\n */\nexport function setGlobalOptions(options) {\n const state = getGlobalLoaderState();\n const globalOptions = getGlobalLoaderOptions();\n // @ts-expect-error First param looks incorrect\n state.globalOptions = normalizeOptionsInternal(globalOptions, options);\n // Make sure any new modules are registered\n registerJSModules(options.modules);\n}\n/**\n * Merges options with global opts and loader defaults, also injects baseUri\n * @param options\n * @param loader\n * @param loaders\n * @param url\n */\nexport function normalizeOptions(options, loader, loaders, url) {\n loaders = loaders || [];\n loaders = Array.isArray(loaders) ? loaders : [loaders];\n validateOptions(options, loaders);\n return normalizeOptionsInternal(loader, options, url);\n}\n// VALIDATE OPTIONS\n/**\n * Warn for unsupported options\n * @param options\n * @param loaders\n */\nfunction validateOptions(options, loaders) {\n // Check top level options\n validateOptionsObject(options, null, DEFAULT_LOADER_OPTIONS, REMOVED_LOADER_OPTIONS, loaders);\n for (const loader of loaders) {\n // Get the scoped, loader specific options from the user supplied options\n const idOptions = ((options && options[loader.id]) || {});\n // Get scoped, loader specific default and deprecated options from the selected loader\n const loaderOptions = (loader.options && loader.options[loader.id]) || {};\n const deprecatedOptions = (loader.deprecatedOptions && loader.deprecatedOptions[loader.id]) || {};\n // Validate loader specific options\n // @ts-ignore\n validateOptionsObject(idOptions, loader.id, loaderOptions, deprecatedOptions, loaders);\n }\n}\n// eslint-disable-next-line max-params, complexity\nfunction validateOptionsObject(options, id, defaultOptions, deprecatedOptions, loaders) {\n const loaderName = id || 'Top level';\n const prefix = id ? `${id}.` : '';\n for (const key in options) {\n // If top level option value is an object it could options for a loader, so ignore\n const isSubOptions = !id && isObject(options[key]);\n const isBaseUriOption = key === 'baseUri' && !id;\n const isWorkerUrlOption = key === 'workerUrl' && id;\n // .workerUrl requires special handling as it is now auto-generated and no longer specified as a default option.\n if (!(key in defaultOptions) && !isBaseUriOption && !isWorkerUrlOption) {\n // Issue deprecation warnings\n if (key in deprecatedOptions) {\n probeLog.warn(`${loaderName} loader option \\'${prefix}${key}\\' no longer supported, use \\'${deprecatedOptions[key]}\\'`)();\n }\n else if (!isSubOptions) {\n const suggestion = findSimilarOption(key, loaders);\n probeLog.warn(`${loaderName} loader option \\'${prefix}${key}\\' not recognized. ${suggestion}`)();\n }\n }\n }\n}\nfunction findSimilarOption(optionKey, loaders) {\n const lowerCaseOptionKey = optionKey.toLowerCase();\n let bestSuggestion = '';\n for (const loader of loaders) {\n for (const key in loader.options) {\n if (optionKey === key) {\n return `Did you mean \\'${loader.id}.${key}\\'?`;\n }\n const lowerCaseKey = key.toLowerCase();\n const isPartialMatch = lowerCaseOptionKey.startsWith(lowerCaseKey) || lowerCaseKey.startsWith(lowerCaseOptionKey);\n if (isPartialMatch) {\n bestSuggestion = bestSuggestion || `Did you mean \\'${loader.id}.${key}\\'?`;\n }\n }\n }\n return bestSuggestion;\n}\nfunction normalizeOptionsInternal(loader, options, url) {\n const loaderDefaultOptions = loader.options || {};\n const mergedOptions = { ...loaderDefaultOptions };\n addUrlOptions(mergedOptions, url);\n // LOGGING: options.log can be set to `null` to defeat logging\n if (mergedOptions.log === null) {\n mergedOptions.log = new NullLog();\n }\n mergeNestedFields(mergedOptions, getGlobalLoaderOptions());\n mergeNestedFields(mergedOptions, options);\n return mergedOptions;\n}\n// Merge nested options objects\nfunction mergeNestedFields(mergedOptions, options) {\n for (const key in options) {\n // Check for nested options\n // object in options => either no key in defaultOptions or object in defaultOptions\n if (key in options) {\n const value = options[key];\n if (isPureObject(value) && isPureObject(mergedOptions[key])) {\n mergedOptions[key] = {\n ...mergedOptions[key],\n ...options[key]\n };\n }\n else {\n mergedOptions[key] = options[key];\n }\n }\n // else: No need to merge nested opts, and the initial merge already copied over the nested options\n }\n}\n/**\n * Harvest information from the url\n * @deprecated This is mainly there to support a hack in the GLTFLoader\n * TODO - baseUri should be a directory, i.e. remove file component from baseUri\n * TODO - extract extension?\n * TODO - extract query parameters?\n * TODO - should these be injected on context instead of options?\n */\nfunction addUrlOptions(options, url) {\n if (url && !('baseUri' in options)) {\n options.baseUri = url;\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { assert } from '@loaders.gl/loader-utils';\nexport function isLoaderObject(loader) {\n if (!loader) {\n return false;\n }\n if (Array.isArray(loader)) {\n loader = loader[0];\n }\n const hasExtensions = Array.isArray(loader?.extensions);\n /* Now handled by types and worker loaders do not have these\n let hasParser =\n loader.parseTextSync ||\n loader.parseSync ||\n loader.parse ||\n loader.parseStream || // TODO Remove, Replace with parseInBatches\n loader.parseInBatches;\n */\n return hasExtensions;\n}\nexport function normalizeLoader(loader) {\n // This error is fairly easy to trigger by mixing up import statements etc\n // So we make an exception and add a developer error message for this case\n // To help new users from getting stuck here\n assert(loader, 'null loader');\n assert(isLoaderObject(loader), 'invalid loader');\n // NORMALIZE [LOADER, OPTIONS] => LOADER\n // If [loader, options], create a new loaders object with options merged in\n let options;\n if (Array.isArray(loader)) {\n options = loader[1];\n loader = loader[0];\n loader = {\n ...loader,\n options: { ...loader.options, ...options }\n };\n }\n // NORMALIZE text and binary flags\n // Ensure at least one of text/binary flags are properly set\n // @ts-expect-error\n if (loader?.parseTextSync || loader?.parseText) {\n loader.text = true;\n }\n if (!loader.text) {\n loader.binary = true;\n }\n return loader;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { normalizeLoader } from \"../loader-utils/normalize-loader.js\";\nimport { getGlobalLoaderState } from \"../loader-utils/option-utils.js\";\n/**\n * Store global registered loaders on the global object to increase chances of cross loaders-version interoperability\n * This use case is not reliable but can help when testing new versions of loaders.gl with existing frameworks\n */\nconst getGlobalLoaderRegistry = () => {\n const state = getGlobalLoaderState();\n state.loaderRegistry = state.loaderRegistry || [];\n return state.loaderRegistry;\n};\n/** Register a list of global loaders */\nexport function registerLoaders(loaders) {\n const loaderRegistry = getGlobalLoaderRegistry();\n loaders = Array.isArray(loaders) ? loaders : [loaders];\n for (const loader of loaders) {\n const normalizedLoader = normalizeLoader(loader);\n if (!loaderRegistry.find((registeredLoader) => normalizedLoader === registeredLoader)) {\n // add to the beginning of the loaderRegistry, so the last registeredLoader get picked\n loaderRegistry.unshift(normalizedLoader);\n }\n }\n}\nexport function getRegisteredLoaders() {\n return getGlobalLoaderRegistry();\n}\n/** @deprecated For testing only */\nexport function _unregisterLoaders() {\n const state = getGlobalLoaderState();\n state.loaderRegistry = [];\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { Log } from '@probe.gl/log';\nexport const log = new Log({ id: 'loaders.gl' });\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { compareArrayBuffers, path } from '@loaders.gl/loader-utils';\nimport { normalizeLoader } from \"../loader-utils/normalize-loader.js\";\nimport { log } from \"../utils/log.js\";\nimport { getResourceUrl, getResourceMIMEType } from \"../utils/resource-utils.js\";\nimport { compareMIMETypes } from \"../utils/mime-type-utils.js\";\nimport { getRegisteredLoaders } from \"./register-loaders.js\";\nimport { isBlob } from \"../../javascript-utils/is-type.js\";\nimport { stripQueryString } from \"../utils/url-utils.js\";\nconst EXT_PATTERN = /\\.([^.]+)$/;\n// TODO - Need a variant that peeks at streams for parseInBatches\n// TODO - Detect multiple matching loaders? Use heuristics to grade matches?\n// TODO - Allow apps to pass context to disambiguate between multiple matches (e.g. multiple .json formats)?\n/**\n * Find a loader that matches file extension and/or initial file content\n * Search the loaders array argument for a loader that matches url extension or initial data\n * Returns: a normalized loader\n * @param data data to assist\n * @param loaders\n * @param options\n * @param context used internally, applications should not provide this parameter\n */\nexport async function selectLoader(data, loaders = [], options, context) {\n if (!validHTTPResponse(data)) {\n return null;\n }\n // First make a sync attempt, disabling exceptions\n let loader = selectLoaderSync(data, loaders, { ...options, nothrow: true }, context);\n if (loader) {\n return loader;\n }\n // For Blobs and Files, try to asynchronously read a small initial slice and test again with that\n // to see if we can detect by initial content\n if (isBlob(data)) {\n data = await data.slice(0, 10).arrayBuffer();\n loader = selectLoaderSync(data, loaders, options, context);\n }\n // no loader available\n if (!loader && !options?.nothrow) {\n throw new Error(getNoValidLoaderMessage(data));\n }\n return loader;\n}\n/**\n * Find a loader that matches file extension and/or initial file content\n * Search the loaders array argument for a loader that matches url extension or initial data\n * Returns: a normalized loader\n * @param data data to assist\n * @param loaders\n * @param options\n * @param context used internally, applications should not provide this parameter\n */\nexport function selectLoaderSync(data, loaders = [], options, context) {\n if (!validHTTPResponse(data)) {\n return null;\n }\n // eslint-disable-next-line complexity\n // if only a single loader was provided (not as array), force its use\n // TODO - Should this behavior be kept and documented?\n if (loaders && !Array.isArray(loaders)) {\n // TODO - remove support for legacy loaders\n return normalizeLoader(loaders);\n }\n // Build list of candidate loaders that will be searched in order for a match\n let candidateLoaders = [];\n // First search supplied loaders\n if (loaders) {\n candidateLoaders = candidateLoaders.concat(loaders);\n }\n // Then fall back to registered loaders\n if (!options?.ignoreRegisteredLoaders) {\n candidateLoaders.push(...getRegisteredLoaders());\n }\n // TODO - remove support for legacy loaders\n normalizeLoaders(candidateLoaders);\n const loader = selectLoaderInternal(data, candidateLoaders, options, context);\n // no loader available\n if (!loader && !options?.nothrow) {\n throw new Error(getNoValidLoaderMessage(data));\n }\n return loader;\n}\n/** Implements loaders selection logic */\n// eslint-disable-next-line complexity\nfunction selectLoaderInternal(data, loaders, options, context) {\n const url = getResourceUrl(data);\n const type = getResourceMIMEType(data);\n const testUrl = stripQueryString(url) || context?.url;\n let loader = null;\n let reason = '';\n // if options.mimeType is supplied, it takes precedence\n if (options?.mimeType) {\n loader = findLoaderByMIMEType(loaders, options?.mimeType);\n reason = `match forced by supplied MIME type ${options?.mimeType}`;\n }\n // Look up loader by url\n loader = loader || findLoaderByUrl(loaders, testUrl);\n reason = reason || (loader ? `matched url ${testUrl}` : '');\n // Look up loader by mime type\n loader = loader || findLoaderByMIMEType(loaders, type);\n reason = reason || (loader ? `matched MIME type ${type}` : '');\n // Look for loader via initial bytes (Note: not always accessible (e.g. Response, stream, async iterator)\n // @ts-ignore Blob | Response\n loader = loader || findLoaderByInitialBytes(loaders, data);\n // @ts-ignore Blob | Response\n reason = reason || (loader ? `matched initial data ${getFirstCharacters(data)}` : '');\n // Look up loader by fallback mime type\n if (options?.fallbackMimeType) {\n loader = loader || findLoaderByMIMEType(loaders, options?.fallbackMimeType);\n reason = reason || (loader ? `matched fallback MIME type ${type}` : '');\n }\n if (reason) {\n log.log(1, `selectLoader selected ${loader?.name}: ${reason}.`);\n }\n return loader;\n}\n/** Check HTTP Response */\nfunction validHTTPResponse(data) {\n // HANDLE HTTP status\n if (data instanceof Response) {\n // 204 - NO CONTENT. This handles cases where e.g. a tile server responds with 204 for a missing tile\n if (data.status === 204) {\n return false;\n }\n }\n return true;\n}\n/** Generate a helpful message to help explain why loader selection failed. */\nfunction getNoValidLoaderMessage(data) {\n const url = getResourceUrl(data);\n const type = getResourceMIMEType(data);\n let message = 'No valid loader found (';\n message += url ? `${path.filename(url)}, ` : 'no url provided, ';\n message += `MIME type: ${type ? `\"${type}\"` : 'not provided'}, `;\n // First characters are only accessible when called on data (string or arrayBuffer).\n // @ts-ignore Blob | Response\n const firstCharacters = data ? getFirstCharacters(data) : '';\n message += firstCharacters ? ` first bytes: \"${firstCharacters}\"` : 'first bytes: not available';\n message += ')';\n return message;\n}\nfunction normalizeLoaders(loaders) {\n for (const loader of loaders) {\n normalizeLoader(loader);\n }\n}\n// TODO - Would be nice to support http://example.com/file.glb?parameter=1\n// E.g: x = new URL('http://example.com/file.glb?load=1'; x.pathname\nfunction findLoaderByUrl(loaders, url) {\n // Get extension\n const match = url && EXT_PATTERN.exec(url);\n const extension = match && match[1];\n return extension ? findLoaderByExtension(loaders, extension) : null;\n}\nfunction findLoaderByExtension(loaders, extension) {\n extension = extension.toLowerCase();\n for (const loader of loaders) {\n for (const loaderExtension of loader.extensions) {\n if (loaderExtension.toLowerCase() === extension) {\n return loader;\n }\n }\n }\n return null;\n}\nfunction findLoaderByMIMEType(loaders, mimeType) {\n for (const loader of loaders) {\n if (loader.mimeTypes?.some((mimeType1) => compareMIMETypes(mimeType, mimeType1))) {\n return loader;\n }\n // Support referring to loaders using the \"unregistered tree\"\n // https://en.wikipedia.org/wiki/Media_type#Unregistered_tree\n if (compareMIMETypes(mimeType, `application/x.${loader.id}`)) {\n return loader;\n }\n }\n return null;\n}\nfunction findLoaderByInitialBytes(loaders, data) {\n if (!data) {\n return null;\n }\n for (const loader of loaders) {\n if (typeof data === 'string') {\n if (testDataAgainstText(data, loader)) {\n return loader;\n }\n }\n else if (ArrayBuffer.isView(data)) {\n // Typed Arrays can have offsets into underlying buffer\n if (testDataAgainstBinary(data.buffer, data.byteOffset, loader)) {\n return loader;\n }\n }\n else if (data instanceof ArrayBuffer) {\n const byteOffset = 0;\n if (testDataAgainstBinary(data, byteOffset, loader)) {\n return loader;\n }\n }\n // TODO Handle streaming case (requires creating a new AsyncIterator)\n }\n return null;\n}\nfunction testDataAgainstText(data, loader) {\n if (loader.testText) {\n return loader.testText(data);\n }\n const tests = Array.isArray(loader.tests) ? loader.tests : [loader.tests];\n return tests.some((test) => data.startsWith(test));\n}\nfunction testDataAgainstBinary(data, byteOffset, loader) {\n const tests = Array.isArray(loader.tests) ? loader.tests : [loader.tests];\n return tests.some((test) => testBinary(data, byteOffset, loader, test));\n}\nfunction testBinary(data, byteOffset, loader, test) {\n if (test instanceof ArrayBuffer) {\n return compareArrayBuffers(test, data, test.byteLength);\n }\n switch (typeof test) {\n case 'function':\n return test(data);\n case 'string':\n // Magic bytes check: If `test` is a string, check if binary data starts with that strings\n const magic = getMagicString(data, byteOffset, test.length);\n return test === magic;\n default:\n return false;\n }\n}\nfunction getFirstCharacters(data, length = 5) {\n if (typeof data === 'string') {\n return data.slice(0, length);\n }\n else if (ArrayBuffer.isView(data)) {\n // Typed Arrays can have offsets into underlying buffer\n return getMagicString(data.buffer, data.byteOffset, length);\n }\n else if (data instanceof ArrayBuffer) {\n const byteOffset = 0;\n return getMagicString(data, byteOffset, length);\n }\n return '';\n}\nfunction getMagicString(arrayBuffer, byteOffset, length) {\n if (arrayBuffer.byteLength < byteOffset + length) {\n return '';\n }\n const dataView = new DataView(arrayBuffer);\n let magic = '';\n for (let i = 0; i < length; i++) {\n magic += String.fromCharCode(dataView.getUint8(byteOffset + i));\n }\n return magic;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nconst DEFAULT_CHUNK_SIZE = 256 * 1024;\n/**\n * Returns an iterator that breaks a big string into chunks and yields them one-by-one as ArrayBuffers\n * @param blob string to iterate over\n * @param options\n * @param options.chunkSize\n */\nexport function* makeStringIterator(string, options) {\n const chunkSize = options?.chunkSize || DEFAULT_CHUNK_SIZE;\n let offset = 0;\n const textEncoder = new TextEncoder();\n while (offset < string.length) {\n // Create a chunk of the right size\n const chunkLength = Math.min(string.length - offset, chunkSize);\n const chunk = string.slice(offset, offset + chunkLength);\n offset += chunkLength;\n // yield an ArrayBuffer chunk\n yield textEncoder.encode(chunk);\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nconst DEFAULT_CHUNK_SIZE = 256 * 1024;\n/**\n * Returns an iterator that breaks a big ArrayBuffer into chunks and yields them one-by-one\n * @param blob ArrayBuffer to iterate over\n * @param options\n * @param options.chunkSize\n */\nexport function* makeArrayBufferIterator(arrayBuffer, options = {}) {\n const { chunkSize = DEFAULT_CHUNK_SIZE } = options;\n let byteOffset = 0;\n while (byteOffset < arrayBuffer.byteLength) {\n // Create a chunk of the right size\n const chunkByteLength = Math.min(arrayBuffer.byteLength - byteOffset, chunkSize);\n const chunk = new ArrayBuffer(chunkByteLength);\n // Copy data from the big chunk\n const sourceArray = new Uint8Array(arrayBuffer, byteOffset, chunkByteLength);\n const chunkArray = new Uint8Array(chunk);\n chunkArray.set(sourceArray);\n // yield the chunk\n byteOffset += chunkByteLength;\n yield chunk;\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nconst DEFAULT_CHUNK_SIZE = 1024 * 1024; // 1MB \u2014 biggest value that keeps UI responsive\n/**\n * Returns an iterator that breaks a big Blob into chunks and yields them one-by-one\n * @param blob Blob or File object\n * @param options\n * @param options.chunkSize\n */\nexport async function* makeBlobIterator(blob, options) {\n const chunkSize = options?.chunkSize || DEFAULT_CHUNK_SIZE;\n let offset = 0;\n while (offset < blob.size) {\n const end = offset + chunkSize;\n const chunk = await blob.slice(offset, end).arrayBuffer();\n offset = end;\n yield chunk;\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { isBrowser, toArrayBuffer } from '@loaders.gl/loader-utils';\n/**\n * Returns an async iterable that reads from a stream (works in both Node.js and browsers)\n * @param stream stream to iterator over\n */\nexport function makeStreamIterator(stream, options) {\n return isBrowser\n ? makeBrowserStreamIterator(stream, options)\n : makeNodeStreamIterator(stream, options);\n}\n/**\n * Returns an async iterable that reads from a DOM (browser) stream\n * @param stream stream to iterate from\n * @see https://jakearchibald.com/2017/async-iterators-and-generators/#making-streams-iterate\n */\nasync function* makeBrowserStreamIterator(stream, options) {\n // WhatWG: stream is supposed to have a `getIterator` method\n // if (typeof stream.getIterator === 'function') {\n // return stream.getIterator();\n // }\n // if (typeof stream[Symbol.asyncIterator] === 'function') {\n // return makeToArrayBufferIterator(stream);\n // }\n // In the browser, we first need to get a lock on the stream\n const reader = stream.getReader();\n let nextBatchPromise;\n try {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const currentBatchPromise = nextBatchPromise || reader.read();\n // Issue a read for an additional batch, while we await the next batch\n // Idea is to make fetching happen in parallel with processing / parsing\n if (options?._streamReadAhead) {\n nextBatchPromise = reader.read();\n }\n // Read from the stream\n // value is a Uint8Array\n const { done, value } = await currentBatchPromise;\n // Exit if we're done\n if (done) {\n return;\n }\n // Else yield the chunk\n yield toArrayBuffer(value);\n }\n }\n catch (error) {\n // TODO - examples makes it look like this should always be called,\n // but that generates exceptions so only call it if we do not reach the end\n reader.releaseLock();\n }\n}\n/**\n * Returns an async iterable that reads from a DOM (browser) stream\n * @param stream stream to iterate from\n * @note Requires Node.js >= 10\n */\nasync function* makeNodeStreamIterator(stream, options) {\n // Hacky test for node version to ensure we don't call bad polyfills\n // NODE 10+: stream is an asyncIterator\n for await (const chunk of stream) {\n yield toArrayBuffer(chunk); // Coerce each chunk to ArrayBuffer\n }\n}\n/* TODO - remove NODE < 10\n * @see https://github.com/bustle/streaming-iterables, MIT license\n *\n if (typeof stream[Symbol.asyncIterator] === 'function') {\n return;\n }\n\n // TODO - check if is this ever used in Node 10+?\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const data = stream.read();\n if (data !== null) {\n yield toArrayBuffer(data);\n // eslint-disable-next-line no-continue\n continue;\n }\n if (stream._readableState?.ended) {\n return;\n }\n await onceReadable(stream);\n }\n\nasync function onceReadable(stream: Readable): Promise {\n return new Promise((resolve) => {\n stream.once('readable', resolve);\n });\n}\n */\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { makeStringIterator } from \"./make-string-iterator.js\";\nimport { makeArrayBufferIterator } from \"./make-array-buffer-iterator.js\";\nimport { makeBlobIterator } from \"./make-blob-iterator.js\";\nimport { makeStreamIterator } from \"./make-stream-iterator.js\";\nimport { isBlob, isReadableStream, isResponse } from \"../../javascript-utils/is-type.js\";\n/**\n * Returns an iterator that breaks its input into chunks and yields them one-by-one.\n * @param data\n * @param options\n * @returns\n * This function can e.g. be used to enable data sources that can only be read atomically\n * (such as `Blob` and `File` via `FileReader`) to still be parsed in batches.\n */\nexport function makeIterator(data, options) {\n if (typeof data === 'string') {\n // Note: Converts string chunks to binary\n return makeStringIterator(data, options);\n }\n if (data instanceof ArrayBuffer) {\n return makeArrayBufferIterator(data, options);\n }\n if (isBlob(data)) {\n return makeBlobIterator(data, options);\n }\n if (isReadableStream(data)) {\n return makeStreamIterator(data, options);\n }\n if (isResponse(data)) {\n const response = data;\n return makeStreamIterator(response.body, options);\n }\n throw new Error('makeIterator');\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { concatenateArrayBuffersAsync } from '@loaders.gl/loader-utils';\nimport { isResponse, isReadableStream, isAsyncIterable, isIterable, isIterator, isBlob, isBuffer } from \"../../javascript-utils/is-type.js\";\nimport { makeIterator } from \"../../iterators/make-iterator/make-iterator.js\";\nimport { checkResponse, makeResponse } from \"../utils/response-utils.js\";\nconst ERR_DATA = 'Cannot convert supplied data type';\n// eslint-disable-next-line complexity\nexport function getArrayBufferOrStringFromDataSync(data, loader, options) {\n if (loader.text && typeof data === 'string') {\n return data;\n }\n if (isBuffer(data)) {\n // @ts-ignore\n data = data.buffer;\n }\n if (data instanceof ArrayBuffer) {\n const arrayBuffer = data;\n if (loader.text && !loader.binary) {\n const textDecoder = new TextDecoder('utf8');\n return textDecoder.decode(arrayBuffer);\n }\n return arrayBuffer;\n }\n // We may need to handle offsets\n if (ArrayBuffer.isView(data)) {\n // TextDecoder is invoked on typed arrays and will handle offsets\n if (loader.text && !loader.binary) {\n const textDecoder = new TextDecoder('utf8');\n return textDecoder.decode(data);\n }\n let arrayBuffer = data.buffer;\n // Since we are returning the underlying arrayBuffer, we must create a new copy\n // if this typed array / Buffer is a partial view into the ArryayBuffer\n // TODO - this is a potentially unnecessary copy\n const byteLength = data.byteLength || data.length;\n if (data.byteOffset !== 0 || byteLength !== arrayBuffer.byteLength) {\n // console.warn(`loaders.gl copying arraybuffer of length ${byteLength}`);\n arrayBuffer = arrayBuffer.slice(data.byteOffset, data.byteOffset + byteLength);\n }\n return arrayBuffer;\n }\n throw new Error(ERR_DATA);\n}\n// Convert async iterator to a promise\nexport async function getArrayBufferOrStringFromData(data, loader, options) {\n const isArrayBuffer = data instanceof ArrayBuffer || ArrayBuffer.isView(data);\n if (typeof data === 'string' || isArrayBuffer) {\n return getArrayBufferOrStringFromDataSync(data, loader, options);\n }\n // Blobs and files are FileReader compatible\n if (isBlob(data)) {\n data = await makeResponse(data);\n }\n if (isResponse(data)) {\n const response = data;\n await checkResponse(response);\n return loader.binary ? await response.arrayBuffer() : await response.text();\n }\n if (isReadableStream(data)) {\n // @ts-expect-error TS2559 options type\n data = makeIterator(data, options);\n }\n if (isIterable(data) || isAsyncIterable(data)) {\n // Assume arrayBuffer iterator - attempt to concatenate\n return concatenateArrayBuffersAsync(data);\n }\n throw new Error(ERR_DATA);\n}\nexport async function getAsyncIterableFromData(data, options) {\n if (isIterator(data)) {\n return data;\n }\n if (isResponse(data)) {\n const response = data;\n // Note Since this function is not async, we currently can't load error message, just status\n await checkResponse(response);\n // TODO - bug in polyfill, body can be a Promise under Node.js\n // eslint-disable-next-line @typescript-eslint/await-thenable\n const body = await response.body;\n // TODO - body can be null?\n return makeIterator(body, options);\n }\n if (isBlob(data) || isReadableStream(data)) {\n return makeIterator(data, options);\n }\n if (isAsyncIterable(data)) {\n return data;\n }\n return getIterableFromData(data);\n}\nexport async function getReadableStream(data) {\n if (isReadableStream(data)) {\n return data;\n }\n if (isResponse(data)) {\n // @ts-ignore\n return data.body;\n }\n const response = await makeResponse(data);\n // @ts-ignore\n return response.body;\n}\n// HELPERS\nfunction getIterableFromData(data) {\n // generate an iterator that emits a single chunk\n if (ArrayBuffer.isView(data)) {\n return (function* oneChunk() {\n yield data.buffer;\n })();\n }\n if (data instanceof ArrayBuffer) {\n return (function* oneChunk() {\n yield data;\n })();\n }\n if (isIterator(data)) {\n return data;\n }\n if (isIterable(data)) {\n return data[Symbol.iterator]();\n }\n throw new Error(ERR_DATA);\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { isObject } from \"../../javascript-utils/is-type.js\";\nimport { fetchFile } from \"../fetch/fetch-file.js\";\nimport { getGlobalLoaderOptions } from \"./option-utils.js\";\n/**\n * Gets the current fetch function from options and context\n * @param options\n * @param context\n */\nexport function getFetchFunction(options, context) {\n const globalOptions = getGlobalLoaderOptions();\n const loaderOptions = options || globalOptions;\n // options.fetch can be a function\n if (typeof loaderOptions.fetch === 'function') {\n return loaderOptions.fetch;\n }\n // options.fetch can be an options object\n if (isObject(loaderOptions.fetch)) {\n return (url) => fetchFile(url, loaderOptions.fetch);\n }\n // else refer to context (from parent loader) if available\n if (context?.fetch) {\n return context?.fetch;\n }\n // else return the default fetch function\n return fetchFile;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { getFetchFunction } from \"./get-fetch-function.js\";\nimport { extractQueryString, stripQueryString } from \"../utils/url-utils.js\";\nimport { path } from '@loaders.gl/loader-utils';\n/**\n * \"sub\" loaders invoked by other loaders get a \"context\" injected on `this`\n * The context will inject core methods like `parse` and contain information\n * about loaders and options passed in to the top-level `parse` call.\n *\n * @param context\n * @param options\n * @param previousContext\n */\nexport function getLoaderContext(context, options, parentContext) {\n // For recursive calls, we already have a context\n // TODO - add any additional loaders to context?\n if (parentContext) {\n return parentContext;\n }\n const newContext = {\n fetch: getFetchFunction(options, context),\n ...context\n };\n // Parse URLs so that subloaders can easily generate correct strings\n if (newContext.url) {\n const baseUrl = stripQueryString(newContext.url);\n newContext.baseUrl = baseUrl;\n newContext.queryString = extractQueryString(newContext.url);\n newContext.filename = path.filename(baseUrl);\n newContext.baseUrl = path.dirname(baseUrl);\n }\n // Recursive loading does not use single loader\n if (!Array.isArray(newContext.loaders)) {\n newContext.loaders = null;\n }\n return newContext;\n}\n// eslint-disable-next-line complexity\nexport function getLoadersFromContext(loaders, context) {\n // A single loader (non-array) indicates no selection desired. Force select.\n if (loaders && !Array.isArray(loaders)) {\n return loaders;\n }\n // Create a merged list\n let candidateLoaders;\n if (loaders) {\n candidateLoaders = Array.isArray(loaders) ? loaders : [loaders];\n }\n if (context && context.loaders) {\n const contextLoaders = Array.isArray(context.loaders) ? context.loaders : [context.loaders];\n candidateLoaders = candidateLoaders ? [...candidateLoaders, ...contextLoaders] : contextLoaders;\n }\n // If no loaders, return null to look in globally registered loaders\n return candidateLoaders && candidateLoaders.length ? candidateLoaders : undefined;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { parseWithWorker, canParseWithWorker } from '@loaders.gl/loader-utils';\nimport { assert, validateWorkerVersion } from '@loaders.gl/worker-utils';\nimport { isLoaderObject } from \"../loader-utils/normalize-loader.js\";\nimport { isResponse } from \"../../javascript-utils/is-type.js\";\nimport { normalizeOptions } from \"../loader-utils/option-utils.js\";\nimport { mergeLoaderOptions } from '@loaders.gl/loader-utils';\nimport { getArrayBufferOrStringFromData } from \"../loader-utils/get-data.js\";\nimport { getLoaderContext, getLoadersFromContext } from \"../loader-utils/loader-context.js\";\nimport { getResourceUrl } from \"../utils/resource-utils.js\";\nimport { selectLoader } from \"./select-loader.js\";\n/**\n * Parses `data` using a specified loader\n * @param data\n * @param loaders\n * @param options\n * @param context\n */\n// implementation signature\nexport async function parse(data, loaders, options, context) {\n // Signature: parse(data, options, context | url)\n // Uses registered loaders\n if (loaders && !Array.isArray(loaders) && !isLoaderObject(loaders)) {\n context = undefined; // context not supported in short signature\n options = loaders;\n loaders = undefined;\n }\n data = await data; // Resolve any promise\n options = options || {}; // Could be invalid...\n // Extract a url for auto detection\n const url = getResourceUrl(data);\n // Chooses a loader (and normalizes it)\n // Also use any loaders in the context, new loaders take priority\n const typedLoaders = loaders;\n const candidateLoaders = getLoadersFromContext(typedLoaders, context);\n // todo hacky type cast\n const loader = await selectLoader(data, candidateLoaders, options);\n // Note: if no loader was found, if so just return null\n if (!loader) {\n return null;\n }\n // Normalize options\n // @ts-expect-error\n options = normalizeOptions(options, loader, candidateLoaders, url); // Could be invalid...\n // Get a context (if already present, will be unchanged)\n context = getLoaderContext(\n // @ts-expect-error\n { url, _parse: parse, loaders: candidateLoaders }, options, context || null);\n return await parseWithLoader(loader, data, options, context);\n}\n// TODO: support progress and abort\n// TODO - should accept loader.parseAsyncIterator and concatenate.\nasync function parseWithLoader(loader, data, options, context) {\n validateWorkerVersion(loader);\n options = mergeLoaderOptions(loader.options, options);\n if (isResponse(data)) {\n // Serialize to support passing the response to web worker\n const response = data;\n const { ok, redirected, status, statusText, type, url } = response;\n const headers = Object.fromEntries(response.headers.entries());\n // @ts-expect-error TODO - fix this\n context.response = { headers, ok, redirected, status, statusText, type, url };\n }\n data = await getArrayBufferOrStringFromData(data, loader, options);\n const loaderWithParser = loader;\n // First check for synchronous text parser, wrap results in promises\n if (loaderWithParser.parseTextSync && typeof data === 'string') {\n return loaderWithParser.parseTextSync(data, options, context);\n }\n // If we have a workerUrl and the loader can parse the given options efficiently in a worker\n if (canParseWithWorker(loader, options)) {\n return await parseWithWorker(loader, data, options, context, parse);\n }\n // Check for asynchronous parser\n if (loaderWithParser.parseText && typeof data === 'string') {\n return await loaderWithParser.parseText(data, options, context);\n }\n if (loaderWithParser.parse) {\n return await loaderWithParser.parse(data, options, context);\n }\n // This should not happen, all sync loaders should also offer `parse` function\n assert(!loaderWithParser.parseSync);\n // TBD - If asynchronous parser not available, return null\n throw new Error(`${loader.id} loader - no parser found and worker is disabled`);\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n/** Deduce column types from values */\nexport function getDataTypeFromValue(value, defaultNumberType = 'float32') {\n if (value instanceof Date) {\n return 'date-millisecond';\n }\n if (value instanceof Number) {\n return defaultNumberType;\n }\n if (typeof value === 'string') {\n return 'utf8';\n }\n if (value === null || value === 'undefined') {\n return 'null';\n }\n return 'null';\n}\n/**\n * Deduces a simple data type \"descriptor from a typed array instance\n */\nexport function getDataTypeFromArray(array) {\n let type = getDataTypeFromTypedArray(array);\n if (type !== 'null') {\n return { type, nullable: false };\n }\n if (array.length > 0) {\n type = getDataTypeFromValue(array[0]);\n return { type, nullable: true };\n }\n return { type: 'null', nullable: true };\n}\n/**\n * Deduces a simple data type \"descriptor from a typed array instance\n */\nexport function getDataTypeFromTypedArray(array) {\n switch (array.constructor) {\n case Int8Array:\n return 'int8';\n case Uint8Array:\n case Uint8ClampedArray:\n return 'uint8';\n case Int16Array:\n return 'int16';\n case Uint16Array:\n return 'uint16';\n case Int32Array:\n return 'int32';\n case Uint32Array:\n return 'uint32';\n case Float32Array:\n return 'float32';\n case Float64Array:\n return 'float64';\n default:\n return 'null';\n }\n}\nexport function getArrayTypeFromDataType(type, nullable) {\n if (!nullable) {\n switch (type) {\n case 'int8':\n return Int8Array;\n case 'uint8':\n return Uint8Array;\n case 'int16':\n return Int16Array;\n case 'uint16':\n return Uint16Array;\n case 'int32':\n return Int32Array;\n case 'uint32':\n return Uint32Array;\n case 'float32':\n return Float32Array;\n case 'float64':\n return Float64Array;\n default:\n break;\n }\n }\n // if (typeof BigInt64Array !== 'undefined') {\n // TYPED_ARRAY_TO_TYPE.BigInt64Array = new Int64();\n // TYPED_ARRAY_TO_TYPE.BigUint64Array = new Uint64();\n // }\n return Array;\n}\n", "/**\n * Get number of vertices in mesh\n * @param attributes\n */\nexport function getMeshSize(attributes) {\n let size = 0;\n for (const attributeName in attributes) {\n const attribute = attributes[attributeName];\n if (ArrayBuffer.isView(attribute)) {\n // @ts-ignore DataView doesn't have BYTES_PER_ELEMENT\n size += attribute.byteLength * attribute.BYTES_PER_ELEMENT;\n }\n }\n return size;\n}\n/**\n * Get the (axis aligned) bounding box of a mesh\n * @param attributes\n * @returns array of two vectors representing the axis aligned bounding box\n */\n// eslint-disable-next-line complexity\nexport function getMeshBoundingBox(attributes) {\n let minX = Infinity;\n let minY = Infinity;\n let minZ = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n let maxZ = -Infinity;\n const positions = attributes.POSITION ? attributes.POSITION.value : [];\n const len = positions && positions.length;\n for (let i = 0; i < len; i += 3) {\n const x = positions[i];\n const y = positions[i + 1];\n const z = positions[i + 2];\n minX = x < minX ? x : minX;\n minY = y < minY ? y : minY;\n minZ = z < minZ ? z : minZ;\n maxX = x > maxX ? x : maxX;\n maxY = y > maxY ? y : maxY;\n maxZ = z > maxZ ? z : maxZ;\n }\n return [\n [minX, minY, minZ],\n [maxX, maxY, maxZ]\n ];\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { getDataTypeFromTypedArray } from \"../table/simple-table/data-type.js\";\n/**\n * Create a schema for mesh attributes data\n * @param attributes\n * @param metadata\n * @returns\n */\nexport function deduceMeshSchema(attributes, metadata = {}) {\n const fields = deduceMeshFields(attributes);\n return { fields, metadata };\n}\n/**\n * Create arrow-like schema field for mesh attribute\n * @param attributeName\n * @param attribute\n * @param optionalMetadata\n * @returns\n */\nexport function deduceMeshField(name, attribute, optionalMetadata) {\n const type = getDataTypeFromTypedArray(attribute.value);\n const metadata = optionalMetadata ? optionalMetadata : makeMeshAttributeMetadata(attribute);\n return {\n name,\n type: { type: 'fixed-size-list', listSize: attribute.size, children: [{ name: 'value', type }] },\n nullable: false,\n metadata\n };\n}\n/**\n * Create fields array for mesh attributes\n * @param attributes\n * @returns\n */\nfunction deduceMeshFields(attributes) {\n const fields = [];\n for (const attributeName in attributes) {\n const attribute = attributes[attributeName];\n fields.push(deduceMeshField(attributeName, attribute));\n }\n return fields;\n}\n/**\n * Make metadata by mesh attribute properties\n * @param attribute\n * @returns\n */\nexport function makeMeshAttributeMetadata(attribute) {\n const result = {};\n if ('byteOffset' in attribute) {\n result.byteOffset = attribute.byteOffset.toString(10);\n }\n if ('byteStride' in attribute) {\n result.byteStride = attribute.byteStride.toString(10);\n }\n if ('normalized' in attribute) {\n result.normalized = attribute.normalized.toString();\n }\n return result;\n}\n", "// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof \"4.2.1\" !== 'undefined' ? \"4.2.1\" : 'latest';\n/**\n * Loader for the LAS (LASer) point cloud format\n * @note Does not support LAS v1.4\n */\nexport const LASLoader = {\n dataType: null,\n batchType: null,\n name: 'LAS',\n id: 'las',\n module: 'las',\n version: VERSION,\n worker: true,\n extensions: ['las', 'laz'], // LAZ is the \"compressed\" flavor of LAS,\n mimeTypes: ['application/octet-stream'], // TODO - text version?\n text: true,\n binary: true,\n tests: ['LAS'],\n options: {\n las: {\n shape: 'mesh',\n fp64: false,\n skip: 1,\n colorDepth: 8\n }\n }\n};\n", "// @ts-nocheck\n/* eslint-disable */\n/*\n * Last update 2020-07-23\n *\n * Compiled from Howard Butler's laz-perf\n * https://github.com/hobu/laz-perf\n * Under LGPL License\n *\n * To update this file:\n * - git clone https://github.com/hobu/laz-perf\n * - cd laz-perf\n * - echo 'set(CMAKE_CXX_FLAGS \"-s SINGLE_FILE=1 ${CMAKE_CXX_FLAGS}\"' >> emscripten/CMakeLists.txt\n * - mkdir build && cd build\n * - cmake .. -DEMSCRIPTEN=1 -DCMAKE_TOOLCHAIN_FILE=/emscripten//cmake/Modules/Platform/Emscripten.cmake\n * - VERBOSE=1 make\n *\n * See the laz-perf repository for required dependencies\n *\n * The result should be build/emscripten/laz-perf.asm.js\n * Copy the content of this file in the getModule function below\n */\n// laz-perf.js\nexport default function getModule() {\n var Module = typeof Module !== 'undefined' ? Module : {};\n var moduleOverrides = {};\n var key;\n for (key in Module) {\n if (Module.hasOwnProperty(key)) {\n moduleOverrides[key] = Module[key];\n }\n }\n var arguments_ = [];\n var thisProgram = './this.program';\n var quit_ = function (status, toThrow) {\n throw toThrow;\n };\n var ENVIRONMENT_IS_WEB = false;\n var ENVIRONMENT_IS_WORKER = false;\n var ENVIRONMENT_IS_NODE = false;\n var ENVIRONMENT_IS_SHELL = false;\n ENVIRONMENT_IS_WEB = typeof window === 'object';\n ENVIRONMENT_IS_WORKER = typeof importScripts === 'function';\n ENVIRONMENT_IS_NODE =\n typeof process === 'object' &&\n typeof process.versions === 'object' &&\n typeof process.versions.node === 'string';\n ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;\n var scriptDirectory = '';\n function locateFile(path) {\n if (Module['locateFile']) {\n return Module['locateFile'](path, scriptDirectory);\n }\n return scriptDirectory + path;\n }\n var read_, readAsync, readBinary, setWindowTitle;\n var nodeFS;\n var nodePath;\n if (ENVIRONMENT_IS_NODE) {\n if (ENVIRONMENT_IS_WORKER) {\n scriptDirectory = require('path').dirname(scriptDirectory) + '/';\n }\n else {\n const dirname = typeof __dirname !== 'undefined' ? __dirname : '';\n scriptDirectory = dirname + '/';\n }\n read_ = function shell_read(filename, binary) {\n var ret = tryParseAsDataURI(filename);\n if (ret) {\n return binary ? ret : ret.toString();\n }\n if (!nodeFS)\n nodeFS = require('fs');\n if (!nodePath)\n nodePath = require('path');\n filename = nodePath['normalize'](filename);\n return nodeFS['readFileSync'](filename, binary ? null : 'utf8');\n };\n readBinary = function readBinary(filename) {\n var ret = read_(filename, true);\n if (!ret.buffer) {\n ret = new Uint8Array(ret);\n }\n assert(ret.buffer);\n return ret;\n };\n if (process['argv'].length > 1) {\n thisProgram = process['argv'][1].replace(/\\\\/g, '/');\n }\n arguments_ = process['argv'].slice(2);\n if (typeof module !== 'undefined') {\n module['exports'] = Module;\n }\n process['on']('uncaughtException', function (ex) {\n if (!(ex instanceof ExitStatus)) {\n throw ex;\n }\n });\n process['on']('unhandledRejection', abort);\n quit_ = function (status) {\n process['exit'](status);\n };\n Module['inspect'] = function () {\n return '[Emscripten Module object]';\n };\n }\n else if (ENVIRONMENT_IS_SHELL) {\n if (typeof read != 'undefined') {\n read_ = function shell_read(f) {\n var data = tryParseAsDataURI(f);\n if (data) {\n return intArrayToString(data);\n }\n return read(f);\n };\n }\n readBinary = function readBinary(f) {\n var data;\n data = tryParseAsDataURI(f);\n if (data) {\n return data;\n }\n if (typeof readbuffer === 'function') {\n return new Uint8Array(readbuffer(f));\n }\n data = read(f, 'binary');\n assert(typeof data === 'object');\n return data;\n };\n if (typeof scriptArgs != 'undefined') {\n arguments_ = scriptArgs;\n }\n else if (typeof arguments != 'undefined') {\n arguments_ = arguments;\n }\n if (typeof quit === 'function') {\n quit_ = function (status) {\n quit(status);\n };\n }\n if (typeof print !== 'undefined') {\n if (typeof console === 'undefined')\n console = {};\n console.log = print;\n console.warn = console.error = typeof printErr !== 'undefined' ? printErr : print;\n }\n }\n else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {\n if (ENVIRONMENT_IS_WORKER) {\n scriptDirectory = self.location.href;\n }\n else if (document.currentScript) {\n scriptDirectory = document.currentScript.src;\n }\n if (scriptDirectory.indexOf('blob:') !== 0) {\n scriptDirectory = scriptDirectory.substr(0, scriptDirectory.lastIndexOf('/') + 1);\n }\n else {\n scriptDirectory = '';\n }\n {\n read_ = function shell_read(url) {\n try {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, false);\n xhr.send(null);\n return xhr.responseText;\n }\n catch (err) {\n var data = tryParseAsDataURI(url);\n if (data) {\n return intArrayToString(data);\n }\n throw err;\n }\n };\n if (ENVIRONMENT_IS_WORKER) {\n readBinary = function readBinary(url) {\n try {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, false);\n xhr.responseType = 'arraybuffer';\n xhr.send(null);\n return new Uint8Array(xhr.response);\n }\n catch (err) {\n var data = tryParseAsDataURI(url);\n if (data) {\n return data;\n }\n throw err;\n }\n };\n }\n readAsync = function readAsync(url, onload, onerror) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.responseType = 'arraybuffer';\n xhr.onload = function xhr_onload() {\n if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) {\n onload(xhr.response);\n return;\n }\n var data = tryParseAsDataURI(url);\n if (data) {\n onload(data.buffer);\n return;\n }\n onerror();\n };\n xhr.onerror = onerror;\n xhr.send(null);\n };\n }\n setWindowTitle = function (title) {\n document.title = title;\n };\n }\n else {\n }\n var out = Module['print'] || console.log.bind(console);\n var err = Module['printErr'] || console.warn.bind(console);\n for (key in moduleOverrides) {\n if (moduleOverrides.hasOwnProperty(key)) {\n Module[key] = moduleOverrides[key];\n }\n }\n moduleOverrides = null;\n if (Module['arguments'])\n arguments_ = Module['arguments'];\n if (Module['thisProgram'])\n thisProgram = Module['thisProgram'];\n if (Module['quit'])\n quit_ = Module['quit'];\n var STACK_ALIGN = 16;\n function dynamicAlloc(size) {\n var ret = HEAP32[DYNAMICTOP_PTR >> 2];\n var end = (ret + size + 15) & -16;\n HEAP32[DYNAMICTOP_PTR >> 2] = end;\n return ret;\n }\n function getNativeTypeSize(type) {\n switch (type) {\n case 'i1':\n case 'i8':\n return 1;\n case 'i16':\n return 2;\n case 'i32':\n return 4;\n case 'i64':\n return 8;\n case 'float':\n return 4;\n case 'double':\n return 8;\n default: {\n if (type[type.length - 1] === '*') {\n return 4;\n }\n else if (type[0] === 'i') {\n var bits = Number(type.substr(1));\n assert(bits % 8 === 0, 'getNativeTypeSize invalid bits ' + bits + ', type ' + type);\n return bits / 8;\n }\n else {\n return 0;\n }\n }\n }\n }\n function warnOnce(text) {\n if (!warnOnce.shown)\n warnOnce.shown = {};\n if (!warnOnce.shown[text]) {\n warnOnce.shown[text] = 1;\n err(text);\n }\n }\n var jsCallStartIndex = 1;\n var functionPointers = new Array(0);\n var funcWrappers = {};\n function dynCall(sig, ptr, args) {\n if (args && args.length) {\n return Module['dynCall_' + sig].apply(null, [ptr].concat(args));\n }\n else {\n return Module['dynCall_' + sig].call(null, ptr);\n }\n }\n var tempRet0 = 0;\n var setTempRet0 = function (value) {\n tempRet0 = value;\n };\n var getTempRet0 = function () {\n return tempRet0;\n };\n var GLOBAL_BASE = 8;\n var wasmBinary;\n if (Module['wasmBinary'])\n wasmBinary = Module['wasmBinary'];\n var noExitRuntime;\n if (Module['noExitRuntime'])\n noExitRuntime = Module['noExitRuntime'];\n function setValue(ptr, value, type, noSafe) {\n type = type || 'i8';\n if (type.charAt(type.length - 1) === '*')\n type = 'i32';\n switch (type) {\n case 'i1':\n HEAP8[ptr >> 0] = value;\n break;\n case 'i8':\n HEAP8[ptr >> 0] = value;\n break;\n case 'i16':\n HEAP16[ptr >> 1] = value;\n break;\n case 'i32':\n HEAP32[ptr >> 2] = value;\n break;\n case 'i64':\n (tempI64 = [\n value >>> 0,\n ((tempDouble = value),\n +Math_abs(tempDouble) >= +1\n ? tempDouble > +0\n ? (Math_min(+Math_floor(tempDouble / +4294967296), +4294967295) | 0) >>> 0\n : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / +4294967296) >>> 0\n : 0)\n ]),\n (HEAP32[ptr >> 2] = tempI64[0]),\n (HEAP32[(ptr + 4) >> 2] = tempI64[1]);\n break;\n case 'float':\n HEAPF32[ptr >> 2] = value;\n break;\n case 'double':\n HEAPF64[ptr >> 3] = value;\n break;\n default:\n abort('invalid type for setValue: ' + type);\n }\n }\n var ABORT = false;\n var EXITSTATUS = 0;\n function assert(condition, text) {\n if (!condition) {\n abort('Assertion failed: ' + text);\n }\n }\n function getCFunc(ident) {\n var func = Module['_' + ident];\n assert(func, 'Cannot call unknown function ' + ident + ', make sure it is exported');\n return func;\n }\n function ccall(ident, returnType, argTypes, args, opts) {\n var toC = {\n string: function (str) {\n var ret = 0;\n if (str !== null && str !== undefined && str !== 0) {\n var len = (str.length << 2) + 1;\n ret = stackAlloc(len);\n stringToUTF8(str, ret, len);\n }\n return ret;\n },\n array: function (arr) {\n var ret = stackAlloc(arr.length);\n writeArrayToMemory(arr, ret);\n return ret;\n }\n };\n function convertReturnValue(ret) {\n if (returnType === 'string')\n return UTF8ToString(ret);\n if (returnType === 'boolean')\n return Boolean(ret);\n return ret;\n }\n var func = getCFunc(ident);\n var cArgs = [];\n var stack = 0;\n if (args) {\n for (var i = 0; i < args.length; i++) {\n var converter = toC[argTypes[i]];\n if (converter) {\n if (stack === 0)\n stack = stackSave();\n cArgs[i] = converter(args[i]);\n }\n else {\n cArgs[i] = args[i];\n }\n }\n }\n var ret = func.apply(null, cArgs);\n ret = convertReturnValue(ret);\n if (stack !== 0)\n stackRestore(stack);\n return ret;\n }\n var ALLOC_NONE = 3;\n var UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined;\n function UTF8ArrayToString(heap, idx, maxBytesToRead) {\n var endIdx = idx + maxBytesToRead;\n var endPtr = idx;\n while (heap[endPtr] && !(endPtr >= endIdx))\n ++endPtr;\n if (endPtr - idx > 16 && heap.subarray && UTF8Decoder) {\n return UTF8Decoder.decode(heap.subarray(idx, endPtr));\n }\n else {\n var str = '';\n while (idx < endPtr) {\n var u0 = heap[idx++];\n if (!(u0 & 128)) {\n str += String.fromCharCode(u0);\n continue;\n }\n var u1 = heap[idx++] & 63;\n if ((u0 & 224) == 192) {\n str += String.fromCharCode(((u0 & 31) << 6) | u1);\n continue;\n }\n var u2 = heap[idx++] & 63;\n if ((u0 & 240) == 224) {\n u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;\n }\n else {\n u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heap[idx++] & 63);\n }\n if (u0 < 65536) {\n str += String.fromCharCode(u0);\n }\n else {\n var ch = u0 - 65536;\n str += String.fromCharCode(55296 | (ch >> 10), 56320 | (ch & 1023));\n }\n }\n }\n return str;\n }\n function UTF8ToString(ptr, maxBytesToRead) {\n return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : '';\n }\n function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) {\n if (!(maxBytesToWrite > 0))\n return 0;\n var startIdx = outIdx;\n var endIdx = outIdx + maxBytesToWrite - 1;\n for (var i = 0; i < str.length; ++i) {\n var u = str.charCodeAt(i);\n if (u >= 55296 && u <= 57343) {\n var u1 = str.charCodeAt(++i);\n u = (65536 + ((u & 1023) << 10)) | (u1 & 1023);\n }\n if (u <= 127) {\n if (outIdx >= endIdx)\n break;\n heap[outIdx++] = u;\n }\n else if (u <= 2047) {\n if (outIdx + 1 >= endIdx)\n break;\n heap[outIdx++] = 192 | (u >> 6);\n heap[outIdx++] = 128 | (u & 63);\n }\n else if (u <= 65535) {\n if (outIdx + 2 >= endIdx)\n break;\n heap[outIdx++] = 224 | (u >> 12);\n heap[outIdx++] = 128 | ((u >> 6) & 63);\n heap[outIdx++] = 128 | (u & 63);\n }\n else {\n if (outIdx + 3 >= endIdx)\n break;\n heap[outIdx++] = 240 | (u >> 18);\n heap[outIdx++] = 128 | ((u >> 12) & 63);\n heap[outIdx++] = 128 | ((u >> 6) & 63);\n heap[outIdx++] = 128 | (u & 63);\n }\n }\n heap[outIdx] = 0;\n return outIdx - startIdx;\n }\n function stringToUTF8(str, outPtr, maxBytesToWrite) {\n return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);\n }\n function lengthBytesUTF8(str) {\n var len = 0;\n for (var i = 0; i < str.length; ++i) {\n var u = str.charCodeAt(i);\n if (u >= 55296 && u <= 57343)\n u = (65536 + ((u & 1023) << 10)) | (str.charCodeAt(++i) & 1023);\n if (u <= 127)\n ++len;\n else if (u <= 2047)\n len += 2;\n else if (u <= 65535)\n len += 3;\n else\n len += 4;\n }\n return len;\n }\n var UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined;\n function UTF16ToString(ptr, maxBytesToRead) {\n var endPtr = ptr;\n var idx = endPtr >> 1;\n var maxIdx = idx + maxBytesToRead / 2;\n while (!(idx >= maxIdx) && HEAPU16[idx])\n ++idx;\n endPtr = idx << 1;\n if (endPtr - ptr > 32 && UTF16Decoder) {\n return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr));\n }\n else {\n var i = 0;\n var str = '';\n while (1) {\n var codeUnit = HEAP16[(ptr + i * 2) >> 1];\n if (codeUnit == 0 || i == maxBytesToRead / 2)\n return str;\n ++i;\n str += String.fromCharCode(codeUnit);\n }\n }\n }\n function stringToUTF16(str, outPtr, maxBytesToWrite) {\n if (maxBytesToWrite === undefined) {\n maxBytesToWrite = 2147483647;\n }\n if (maxBytesToWrite < 2)\n return 0;\n maxBytesToWrite -= 2;\n var startPtr = outPtr;\n var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length;\n for (var i = 0; i < numCharsToWrite; ++i) {\n var codeUnit = str.charCodeAt(i);\n HEAP16[outPtr >> 1] = codeUnit;\n outPtr += 2;\n }\n HEAP16[outPtr >> 1] = 0;\n return outPtr - startPtr;\n }\n function lengthBytesUTF16(str) {\n return str.length * 2;\n }\n function UTF32ToString(ptr, maxBytesToRead) {\n var i = 0;\n var str = '';\n while (!(i >= maxBytesToRead / 4)) {\n var utf32 = HEAP32[(ptr + i * 4) >> 2];\n if (utf32 == 0)\n break;\n ++i;\n if (utf32 >= 65536) {\n var ch = utf32 - 65536;\n str += String.fromCharCode(55296 | (ch >> 10), 56320 | (ch & 1023));\n }\n else {\n str += String.fromCharCode(utf32);\n }\n }\n return str;\n }\n function stringToUTF32(str, outPtr, maxBytesToWrite) {\n if (maxBytesToWrite === undefined) {\n maxBytesToWrite = 2147483647;\n }\n if (maxBytesToWrite < 4)\n return 0;\n var startPtr = outPtr;\n var endPtr = startPtr + maxBytesToWrite - 4;\n for (var i = 0; i < str.length; ++i) {\n var codeUnit = str.charCodeAt(i);\n if (codeUnit >= 55296 && codeUnit <= 57343) {\n var trailSurrogate = str.charCodeAt(++i);\n codeUnit = (65536 + ((codeUnit & 1023) << 10)) | (trailSurrogate & 1023);\n }\n HEAP32[outPtr >> 2] = codeUnit;\n outPtr += 4;\n if (outPtr + 4 > endPtr)\n break;\n }\n HEAP32[outPtr >> 2] = 0;\n return outPtr - startPtr;\n }\n function lengthBytesUTF32(str) {\n var len = 0;\n for (var i = 0; i < str.length; ++i) {\n var codeUnit = str.charCodeAt(i);\n if (codeUnit >= 55296 && codeUnit <= 57343)\n ++i;\n len += 4;\n }\n return len;\n }\n function writeArrayToMemory(array, buffer) {\n HEAP8.set(array, buffer);\n }\n function writeAsciiToMemory(str, buffer, dontAddNull) {\n for (var i = 0; i < str.length; ++i) {\n HEAP8[buffer++ >> 0] = str.charCodeAt(i);\n }\n if (!dontAddNull)\n HEAP8[buffer >> 0] = 0;\n }\n var buffer, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;\n function updateGlobalBufferAndViews(buf) {\n buffer = buf;\n Module['HEAP8'] = HEAP8 = new Int8Array(buf);\n Module['HEAP16'] = HEAP16 = new Int16Array(buf);\n Module['HEAP32'] = HEAP32 = new Int32Array(buf);\n Module['HEAPU8'] = HEAPU8 = new Uint8Array(buf);\n Module['HEAPU16'] = HEAPU16 = new Uint16Array(buf);\n Module['HEAPU32'] = HEAPU32 = new Uint32Array(buf);\n Module['HEAPF32'] = HEAPF32 = new Float32Array(buf);\n Module['HEAPF64'] = HEAPF64 = new Float64Array(buf);\n }\n var STACK_BASE = 22384, DYNAMIC_BASE = 5265264, DYNAMICTOP_PTR = 22176;\n var INITIAL_INITIAL_MEMORY = Module['INITIAL_MEMORY'] || 167772160;\n if (Module['buffer']) {\n buffer = Module['buffer'];\n }\n else {\n buffer = new ArrayBuffer(INITIAL_INITIAL_MEMORY);\n }\n INITIAL_INITIAL_MEMORY = buffer.byteLength;\n updateGlobalBufferAndViews(buffer);\n HEAP32[DYNAMICTOP_PTR >> 2] = DYNAMIC_BASE;\n function callRuntimeCallbacks(callbacks) {\n while (callbacks.length > 0) {\n var callback = callbacks.shift();\n if (typeof callback == 'function') {\n callback(Module);\n continue;\n }\n var func = callback.func;\n if (typeof func === 'number') {\n if (callback.arg === undefined) {\n Module['dynCall_v'](func);\n }\n else {\n Module['dynCall_vi'](func, callback.arg);\n }\n }\n else {\n func(callback.arg === undefined ? null : callback.arg);\n }\n }\n }\n var __ATPRERUN__ = [];\n var __ATINIT__ = [];\n var __ATMAIN__ = [];\n var __ATPOSTRUN__ = [];\n var runtimeInitialized = false;\n var runtimeExited = false;\n function preRun() {\n if (Module['preRun']) {\n if (typeof Module['preRun'] == 'function')\n Module['preRun'] = [Module['preRun']];\n while (Module['preRun'].length) {\n addOnPreRun(Module['preRun'].shift());\n }\n }\n callRuntimeCallbacks(__ATPRERUN__);\n }\n function initRuntime() {\n runtimeInitialized = true;\n callRuntimeCallbacks(__ATINIT__);\n }\n function preMain() {\n callRuntimeCallbacks(__ATMAIN__);\n }\n function exitRuntime() {\n runtimeExited = true;\n }\n function postRun() {\n if (Module['postRun']) {\n if (typeof Module['postRun'] == 'function')\n Module['postRun'] = [Module['postRun']];\n while (Module['postRun'].length) {\n addOnPostRun(Module['postRun'].shift());\n }\n }\n callRuntimeCallbacks(__ATPOSTRUN__);\n }\n function addOnPreRun(cb) {\n __ATPRERUN__.unshift(cb);\n }\n function addOnPostRun(cb) {\n __ATPOSTRUN__.unshift(cb);\n }\n var Math_abs = Math.abs;\n var Math_ceil = Math.ceil;\n var Math_floor = Math.floor;\n var Math_min = Math.min;\n var runDependencies = 0;\n var runDependencyWatcher = null;\n var dependenciesFulfilled = null;\n function addRunDependency(id) {\n runDependencies++;\n if (Module['monitorRunDependencies']) {\n Module['monitorRunDependencies'](runDependencies);\n }\n }\n function removeRunDependency(id) {\n runDependencies--;\n if (Module['monitorRunDependencies']) {\n Module['monitorRunDependencies'](runDependencies);\n }\n if (runDependencies == 0) {\n if (runDependencyWatcher !== null) {\n clearInterval(runDependencyWatcher);\n runDependencyWatcher = null;\n }\n if (dependenciesFulfilled) {\n var callback = dependenciesFulfilled;\n dependenciesFulfilled = null;\n callback();\n }\n }\n }\n Module['preloadedImages'] = {};\n Module['preloadedAudios'] = {};\n function abort(what) {\n if (Module['onAbort']) {\n Module['onAbort'](what);\n }\n what += '';\n out(what);\n err(what);\n ABORT = true;\n EXITSTATUS = 1;\n what = 'abort(' + what + '). Build with -s ASSERTIONS=1 for more info.';\n throw what;\n }\n var memoryInitializer = null;\n function hasPrefix(str, prefix) {\n return String.prototype.startsWith ? str.startsWith(prefix) : str.indexOf(prefix) === 0;\n }\n var dataURIPrefix = 'data:application/octet-stream;base64,';\n function isDataURI(filename) {\n return hasPrefix(filename, dataURIPrefix);\n }\n var fileURIPrefix = 'file://';\n var tempDouble;\n var tempI64;\n __ATINIT__.push({\n func: function () {\n globalCtors();\n }\n });\n memoryInitializer =\n 'data:application/octet-stream;base64,AAAAAAAAAAAPDg0MCwoJCA4AAQMGCgoJDQECBAcLCwoMAwQFCAwMCwsGBwgJDQ0MCgoLDA0ODg0JCgsMDQ4PDggJCgsMDQ4PAAECAwQFBgcBAAECAwQFBgIBAAECAwQFAwIBAAECAwQEAwIBAAECAwUEAwIBAAECBgUEAwIBAAEHBgUEAwIBAMgPAAAoDQAAEBAAACAQAADIDwAAUA0AABAQAAAgEAAAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAADAAAAAAJDAAAAAAADAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAANAAAABA0AAAAACQ4AAAAAAA4AAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAADwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAASEhIAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAKAAAAAAoAAAAACQsAAAAAAAsAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAAAAAAAAAAAASWxsZWdhbCBieXRlIHNlcXVlbmNlAERvbWFpbiBlcnJvcgBSZXN1bHQgbm90IHJlcHJlc2VudGFibGUATm90IGEgdHR5AFBlcm1pc3Npb24gZGVuaWVkAE9wZXJhdGlvbiBub3QgcGVybWl0dGVkAE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkATm8gc3VjaCBwcm9jZXNzAEZpbGUgZXhpc3RzAFZhbHVlIHRvbyBsYXJnZSBmb3IgZGF0YSB0eXBlAE5vIHNwYWNlIGxlZnQgb24gZGV2aWNlAE91dCBvZiBtZW1vcnkAUmVzb3VyY2UgYnVzeQBJbnRlcnJ1cHRlZCBzeXN0ZW0gY2FsbABSZXNvdXJjZSB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZQBJbnZhbGlkIHNlZWsAQ3Jvc3MtZGV2aWNlIGxpbmsAUmVhZC1vbmx5IGZpbGUgc3lzdGVtAERpcmVjdG9yeSBub3QgZW1wdHkAQ29ubmVjdGlvbiByZXNldCBieSBwZWVyAE9wZXJhdGlvbiB0aW1lZCBvdXQAQ29ubmVjdGlvbiByZWZ1c2VkAEhvc3QgaXMgZG93bgBIb3N0IGlzIHVucmVhY2hhYmxlAEFkZHJlc3MgaW4gdXNlAEJyb2tlbiBwaXBlAEkvTyBlcnJvcgBObyBzdWNoIGRldmljZSBvciBhZGRyZXNzAEJsb2NrIGRldmljZSByZXF1aXJlZABObyBzdWNoIGRldmljZQBOb3QgYSBkaXJlY3RvcnkASXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAE1lc3NhZ2UgdG9vIGxhcmdlAFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldABQcm90b2NvbCBub3QgYXZhaWxhYmxlAFByb3RvY29sIG5vdCBzdXBwb3J0ZWQAU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAFByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAENhbm5vdCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93bgBPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwBPcGVyYXRpb24gaW4gcHJvZ3Jlc3MAU3RhbGUgZmlsZSBoYW5kbGUAUmVtb3RlIEkvTyBlcnJvcgBRdW90YSBleGNlZWRlZABObyBtZWRpdW0gZm91bmQAV3JvbmcgbWVkaXVtIHR5cGUATm8gZXJyb3IgaW5mb3JtYXRpb24AAAAAAADgFgAAmRgAAGAQAAAAAAAA4BYAAEIZAABgEAAAAAAAAOAWAAAqGgAASA8AAAAAAAC4FgAANBsAAOAWAACfGgAAMAoAAAAAAADgFgAAaRsAAEgPAAAAAAAA4BYAAIobAABIDwAAAAAAALgWAAAPHAAA4BYAAHwcAABIDwAAAAAAAOAWAACVHAAASA8AAAAAAADgFgAAHh0AAEgPAAAAAAAA4BYAAHcdAABIDwAAAAAAAOAWAACQHQAASA8AAAAAAADgFgAAQh4AAEgPAAAAAAAA4BYAAIceAABgEAAAAAAAAOAWAACkHwAASA8AAAAAAAC4FgAAZyAAAOAWAADkHwAA8AoAAAAAAADgFgAAjyAAAGAQAAAAAAAAuBYAAMMiAADgFgAAAiIAABgLAAAAAAAA4BYAAOEiAABgEAAAAAAAAOAWAADQJAAAGAsAAAAAAADgFgAAkSUAAGAQAAAAAAAA4BYAAIAnAAAYCwAAAAAAAOAWAAA9KAAAYBAAAAAAAADgFgAAJCoAABgLAAAAAAAA4BYAAOkqAABgEAAAAAAAAOAWAADgLAAA8AoAAAAAAADgFgAAui0AAGAQAAAAAAAA4BYAANsvAADwCgAAAAAAAOAWAADTMAAAYBAAAAAAAADgFgAAMDMAAPAKAAAAAAAA4BYAACQ0AABgEAAAAAAAAOAWAAB5NgAA8AoAAAAAAADgFgAAizcAAGAQAAAAAAAA4BYAABw6AABgEAAAAAAAAOAWAACdOgAAYBAAAAAAAADgFgAAXjsAAPAKAAAAAAAA4BYAALU7AABgEAAAAAAAAOAWAADMPAAAGAsAAAAAAADgFgAATz0AAGAQAAAAAAAA4BYAAL4+AAAYCwAAAAAAAOAWAABBPwAAYBAAAAAAAADgFgAAsEAAABgLAAAAAAAA4BYAADNBAABgEAAAAAAAAOAWAACiQgAAGAsAAAAAAADgFgAAJUMAAGAQAAAAAAAA4BYAAJREAAAYCwAAAAAAAOAWAAAXRQAAYBAAAAAAAADgFgAAhkYAABgLAAAAAAAA4BYAAAlHAABgEAAAAAAAALgWAAB4SAAAiBcAAIBIAAAAAAAAIA0AAIgXAACJSAAAAQAAACANAAC4FgAAqkgAAIgXAAC6SAAAAAAAAEgNAACIFwAAy0gAAAEAAABIDQAAuBYAABhMAAC4FgAAN0wAALgWAABWTAAAuBYAAHVMAAC4FgAAlEwAALgWAACzTAAAuBYAANJMAAC4FgAA8UwAALgWAAAQTQAAuBYAAC9NAAC4FgAATk0AALgWAABtTQAAuBYAAIxNAACkFwAAn00AAAAAAAABAAAA8A0AAAAAAAC4FgAA4U0AAKQXAAAHTgAAAAAAAAEAAADwDQAAAAAAAKQXAABJTgAAAAAAAAEAAADwDQAAAAAAAKQXAACITgAAAAAAAAEAAADwDQAAAAAAAKQXAADHTgAAAAAAAAEAAADwDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALgWAADNTwAA4BYAAC1QAAAADwAAAAAAAOAWAADaTwAAEA8AAAAAAAC4FgAA+08AAOAWAAAIUAAA8A4AAAAAAADgFgAAhlAAAOgOAAAAAAAA4BYAAJNQAADoDgAAAAAAAOAWAACjUAAA6A4AAAAAAADgFgAAtVAAADgPAAAAAAAA4BYAAMZQAAA4DwAAAAAAAOAWAADXUAAAAA8AAAAAAADgFgAA+VAAAHgPAAAAAAAA4BYAAB1RAAAADwAAAAAAAOAWAABCUQAAeA8AAAAAAADgFgAAjlEAAAAPAAAAAAAAbBcAALZRAABsFwAAuFEAAGwXAAC7UQAAbBcAAL1RAABsFwAAv1EAAGwXAADBUQAAbBcAAMNRAABsFwAAxVEAAGwXAADHUQAAbBcAAMlRAABsFwAAy1EAAGwXAADNUQAAbBcAAM9RAABsFwAA0VEAAOAWAADTUQAA8A4AAAAAAADgFgAARlIAAOgOAAAAAAAAuBYAAGJSAACkFwAAe1IAAAAAAAABAAAAWBAAAAAAAADgFgAA9FIAAIgQAAAAAAAA4BYAABdTAACYEAAAAAAAALgWAAAuUwAA4BYAAHBTAACIEAAAAAAAAOAWAACSUwAASA8AAAAAAAAAAAAAAAoAAAEAAAACAAAAAwAAAAEAAAAEAAAAAAAAABAKAAABAAAABQAAAAYAAAACAAAABwAAAAAAAAAgCgAACAAAAAkAAAABAAAAAAAAADgKAAAKAAAACwAAAAIAAAABAAAADAAAAA0AAAACAAAAAwAAAAMAAAAAAAAASAoAAAgAAAAOAAAAAQAAAAAAAABYCgAACAAAAA8AAAABAAAAAAAAAIAKAAAIAAAAEAAAAAEAAAAAAAAAcAoAAAgAAAARAAAAAQAAAAAAAACQCgAACAAAABIAAAABAAAAAAAAAKAKAAAIAAAAEwAAAAEAAAAAAAAAsAoAAAgAAAAUAAAAAQAAAAAAAADACgAACAAAABUAAAABAAAAAAAAANAKAAABAAAAFgAAABcAAAAEAAAAGAAAAAAAAADgCgAACAAAABkAAAABAAAAAAAAAPgKAAAFAAAAGgAAABsAAAAAAAAA8AoAAAEAAAAcAAAAHQAAAAAAAAAICwAAAQAAAB4AAAAfAAAABgAAACAAAAAAAAAAIAsAACEAAAAiAAAABwAAAAgAAAAAAAAAGAsAACMAAAAkAAAABwAAAAkAAAAAAAAAMAsAAAEAAAAlAAAAJgAAAAoAAAAnAAAAAAAAAEALAAAoAAAAKQAAAAcAAAALAAAAAAAAAFALAAABAAAAKgAAACsAAAAMAAAALAAAAAAAAABgCwAALQAAAC4AAAAHAAAADQAAAAAAAABwCwAAAQAAAC8AAAAwAAAADgAAADEAAAAAAAAAgAsAADIAAAAzAAAABwAAAA8AAAAAAAAAkAsAAAEAAAA0AAAANQAAABAAAAA2AAAAAAAAAKALAAARAAAANwAAADgAAAAAAAAAsAsAAAEAAAA5AAAAOgAAABIAAAA7AAAAAAAAAMALAAATAAAAPAAAAD0AAAAAAAAA0AsAAAEAAAA+AAAAPwAAABQAAABAAAAAAAAAAOALAAAVAAAAQQAAAEIAAAAAAAAA8AsAAAEAAABDAAAARAAAABYAAABFAAAAAAAAAAAMAAAXAAAARgAAAEcAAAAAAAAAEAwAAAEAAABIAAAASQAAABgAAABKAAAAAAAAACAMAAABAAAASwAAAEwAAAAZAAAATQAAAAAAAAAwDAAAAQAAAE4AAABPAAAAGgAAAFAAAAAAAAAAQAwAABsAAABRAAAAUgAAAAAAAABQDAAAAQAAAFMAAABUAAAAHAAAAFUAAAAAAAAAYAwAAFYAAABXAAAABwAAAB0AAAAAAAAAcAwAAAEAAABYAAAAWQAAAB4AAABaAAAAAAAAAIAMAABbAAAAXAAAAAcAAAAfAAAAAAAAAJAMAAABAAAAXQAAAF4AAAAgAAAAXwAAAAAAAACgDAAAYAAAAGEAAAAHAAAAIQAAAAAAAACwDAAAAQAAAGIAAABjAAAAIgAAAGQAAAAAAAAAwAwAAGUAAABmAAAABwAAACMAAAAAAAAA0AwAAAEAAABnAAAAaAAAACQAAABpAAAAAAAAAOAMAABqAAAAawAAAAcAAAAlAAAAAAAAAPAMAAABAAAAbAAAAG0AAAAmAAAAbgAAAAAAAAAADQAAbwAAAHAAAAAHAAAAJwAAAAAAAAAQDQAAAQAAAHEAAAByAAAAKAAAAHMAAAAoDQAAyA8AACgNAAAIEAAAEBAAACgNAABQDQAAyA8AAFANAAAgEAAAyA8AAFANAAAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwDgAAdAAAAHUAAAB2AAAAdwAAAAIAAAABAAAAAQAAAAEAAAAAAAAAGA8AAHQAAAB4AAAAdgAAAHcAAAACAAAAAgAAAAIAAAACAAAAAAAAACgPAAB5AAAAegAAAAQAAAAAAAAAOA8AAHsAAAB8AAAABQAAAAAAAABIDwAACAAAAH0AAAABAAAAAAAAAFgPAAB7AAAAfgAAAAUAAAAAAAAAaA8AAHsAAAB/AAAABQAAAAAAAAC4DwAAdAAAAIAAAAB2AAAAdwAAAAMAAAAAAAAAiA8AAHQAAACBAAAAdgAAAHcAAAAEAAAAAAAAADgQAAB0AAAAggAAAHYAAAB3AAAAAgAAAAMAAAADAAAAAwAAAAAAAABIEAAAgwAAAIQAAAAGAAAAAAAAAHgQAACFAAAAhgAAAAcAAAABAAAABQAAAAYAAAACAAAAAAAAAKAQAACFAAAAhwAAAAgAAAADAAAABQAAAAYAAAAEAAAA4BcAAAQYAAAAAAAAsBAAAIgAAACJAAAAAQAAAExBU1ppcABvcGVuAGdldFBvaW50AGdldENvdW50AER5bmFtaWNMQVNaaXAAYWRkRmllbGRGbG9hdGluZwBhZGRGaWVsZFNpZ25lZABhZGRGaWVsZFVuc2lnbmVkAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9wb2ludGVySVBONmxhc3ppcDdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRU5TXzE0ZGVmYXVsdF9kZWxldGVJUzNfRUVOU185YWxsb2NhdG9ySVMzX0VFRUUATlN0M19fMjE0ZGVmYXVsdF9kZWxldGVJTjZsYXN6aXA3c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXAyaW82cmVhZGVyMTBiYXNpY19maWxlSU5TMV83c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRU5TXzE0ZGVmYXVsdF9kZWxldGVJUzdfRUVOU185YWxsb2NhdG9ySVM3X0VFRUUATlN0M19fMjE0ZGVmYXVsdF9kZWxldGVJTjZsYXN6aXAyaW82cmVhZGVyMTBiYXNpY19maWxlSU5TMV83c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRUVFAExBU0YATjZsYXN6aXAxM2ludmFsaWRfbWFnaWNFAGFsbG9jYXRvcjxUPjo6YWxsb2NhdGUoc2l6ZV90IG4pICduJyBleGNlZWRzIG1heGltdW0gc3VwcG9ydGVkIHNpemUARmlsZSBtYWdpYyBpcyBub3QgdmFsaWQATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJWk42bGFzemlwMmlvNnJlYWRlcjEwYmFzaWNfZmlsZUlOUzJfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRTExX3ZhbGlkYXRvcnNFdkVVbFJOUzNfNmhlYWRlckVFX05TXzlhbGxvY2F0b3JJU0JfRUVGdlNBX0VFRQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fYmFzZUlGdlJONmxhc3ppcDJpbzZoZWFkZXJFRUVFAE42bGFzemlwMjFvbGRfc3R5bGVfY29tcHJlc3Npb25FAE42bGFzemlwMTRub3RfY29tcHJlc3NlZEUAVGhlIGZpbGUgc2VlbXMgdG8gaGF2ZSBvbGQgc3R5bGUgY29tcHJlc3Npb24gd2hpY2ggaXMgbm90IHN1cHBvcnRlZABUaGUgZmlsZSBkb2Vzbid0IHNlZW0gdG8gYmUgY29tcHJlc3NlZABaTjZsYXN6aXAyaW82cmVhZGVyMTBiYXNpY19maWxlSU5TXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUUxMV92YWxpZGF0b3JzRXZFVWxSTlMwXzZoZWFkZXJFRV8AbGFzemlwIGVuY29kZWQATjZsYXN6aXAxM25vX2xhc3ppcF92bHJFAE42bGFzemlwMjVsYXN6aXBfZm9ybWF0X3Vuc3VwcG9ydGVkRQBPbmx5IExBU3ppcCBQT0lOVFdJU0UgQ0hVTktFRCBkZWNvbXByZXNzb3IgaXMgc3VwcG9ydGVkAE5vIExBU3ppcCBWTFIgd2FzIGZvdW5kIGluIHRoZSBWTFJzIHNlY3Rpb24ATjZsYXN6aXAyMmNodW5rX3RhYmxlX3JlYWRfZXJyb3JFAENodW5rIHRhYmxlIG9mZnNldCA9PSAtMSBpcyBub3Qgc3VwcG9ydGVkIGF0IHRoaXMgdGltZQBONmxhc3ppcDEzbm90X3N1cHBvcnRlZEUATjZsYXN6aXAyNnVua25vd25fY2h1bmtfdGFibGVfZm9ybWF0RQBjaHVua19zaXplID09IHVpbnQubWF4IGlzIG5vdCBzdXBwb3J0ZWQgYXQgdGhpcyB0aW1lLgBUaGVyZSB3YXMgYSBwcm9ibGVtIHJlYWRpbmcgdGhlIGNodW5rIHRhYmxlAFRoZSBjaHVuayB0YWJsZSB2ZXJzaW9uIG51bWJlciBpcyB1bmtub3duAE42bGFzemlwMTFlbmRfb2ZfZmlsZUUAUmVhY2hlZCBFbmQgb2YgZmlsZQBJbnZhbGlkIG51bWJlciBvZiBzeW1ib2xzAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9wb2ludGVySVBONmxhc3ppcDhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOU18xNGRlZmF1bHRfZGVsZXRlSVM5X0VFTlNfOWFsbG9jYXRvcklTOV9FRUVFAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42bGFzemlwOGRlY29kZXJzMTBhcml0aG1ldGljSU5TMV8yaW8xOF9faWZzdHJlYW1fd3JhcHBlcklOUzFfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRUVFRUVFAE42bGFzemlwMTl1bmtub3duX3NjaGVtYV90eXBlRQBUaGUgTEFaIHNjaGVtYSBpcyBub3QgcmVjb2duaXplZABONmxhc3ppcDdmb3JtYXRzMjZkeW5hbWljX2ZpZWxkX2RlY29tcHJlc3NvcklOU184ZGVjb2RlcnMxMGFyaXRobWV0aWNJTlNfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlNfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRUVFRUVFAE42bGFzemlwN2Zvcm1hdHMyMGR5bmFtaWNfZGVjb21wcmVzc29yRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19maWVsZF9kZWNvbXByZXNzb3JJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVFRU5TXzE0ZGVmYXVsdF9kZWxldGVJU0NfRUVOU185YWxsb2NhdG9ySVNDX0VFRUUATlN0M19fMjE0ZGVmYXVsdF9kZWxldGVJTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19maWVsZF9kZWNvbXByZXNzb3JJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVFRUVFAE42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOU18yaW8xOF9faWZzdHJlYW1fd3JhcHBlcklOU183c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRUVFTlMwXzVmaWVsZElOUzBfM2xhczdwb2ludDEwRU5TMF8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSVNDX0VFRUVFRQBONmxhc3ppcDdmb3JtYXRzMTBiYXNlX2ZpZWxkRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOUzJfNWZpZWxkSU5TMl8zbGFzN3BvaW50MTBFTlMyXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJU0VfRUVFRUVFTlNfMTRkZWZhdWx0X2RlbGV0ZUlTSV9FRU5TXzlhbGxvY2F0b3JJU0lfRUVFRQBOU3QzX18yMTRkZWZhdWx0X2RlbGV0ZUlONmxhc3ppcDdmb3JtYXRzMjZkeW5hbWljX2RlY29tcHJlc3Nvcl9maWVsZElOUzFfOGRlY29kZXJzMTBhcml0aG1ldGljSU5TMV8yaW8xOF9faWZzdHJlYW1fd3JhcHBlcklOUzFfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRUVFRU5TMl81ZmllbGRJTlMyXzNsYXM3cG9pbnQxMEVOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElTRV9FRUVFRUVFRQBONmxhc3ppcDdmb3JtYXRzMjZkeW5hbWljX2RlY29tcHJlc3Nvcl9maWVsZElOU184ZGVjb2RlcnMxMGFyaXRobWV0aWNJTlNfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlNfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRUVFRU5TMF81ZmllbGRJTlMwXzNsYXM3Z3BzdGltZUVOUzBfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElTQ19FRUVFRUUATlN0M19fMjIwX19zaGFyZWRfcHRyX3BvaW50ZXJJUE42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJTlMxXzJpbzE4X19pZnN0cmVhbV93cmFwcGVySU5TMV83c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRUVFTlMyXzVmaWVsZElOUzJfM2xhczdncHN0aW1lRU5TMl8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSVNFX0VFRUVFRU5TXzE0ZGVmYXVsdF9kZWxldGVJU0lfRUVOU185YWxsb2NhdG9ySVNJX0VFRUUATlN0M19fMjE0ZGVmYXVsdF9kZWxldGVJTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOUzJfNWZpZWxkSU5TMl8zbGFzN2dwc3RpbWVFTlMyXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJU0VfRUVFRUVFRUUATjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlNfOGRlY29kZXJzMTBhcml0aG1ldGljSU5TXzJpbzE4X19pZnN0cmVhbV93cmFwcGVySU5TXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOUzBfNWZpZWxkSU5TMF8zbGFzM3JnYkVOUzBfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElTQ19FRUVFRUUATlN0M19fMjIwX19zaGFyZWRfcHRyX3BvaW50ZXJJUE42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJTlMxXzJpbzE4X19pZnN0cmVhbV93cmFwcGVySU5TMV83c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRUVFTlMyXzVmaWVsZElOUzJfM2xhczNyZ2JFTlMyXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJU0VfRUVFRUVFTlNfMTRkZWZhdWx0X2RlbGV0ZUlTSV9FRU5TXzlhbGxvY2F0b3JJU0lfRUVFRQBOU3QzX18yMTRkZWZhdWx0X2RlbGV0ZUlONmxhc3ppcDdmb3JtYXRzMjZkeW5hbWljX2RlY29tcHJlc3Nvcl9maWVsZElOUzFfOGRlY29kZXJzMTBhcml0aG1ldGljSU5TMV8yaW8xOF9faWZzdHJlYW1fd3JhcHBlcklOUzFfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRUVFRU5TMl81ZmllbGRJTlMyXzNsYXMzcmdiRU5TMl8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSVNFX0VFRUVFRUVFAE42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOU18yaW8xOF9faWZzdHJlYW1fd3JhcHBlcklOU183c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRUVFTlMwXzVmaWVsZElOUzBfM2xhczEwZXh0cmFieXRlc0VOUzBfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElTQ19FRUVFRUUATlN0M19fMjIwX19zaGFyZWRfcHRyX3BvaW50ZXJJUE42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJTlMxXzJpbzE4X19pZnN0cmVhbV93cmFwcGVySU5TMV83c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRUVFTlMyXzVmaWVsZElOUzJfM2xhczEwZXh0cmFieXRlc0VOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElTRV9FRUVFRUVOU18xNGRlZmF1bHRfZGVsZXRlSVNJX0VFTlNfOWFsbG9jYXRvcklTSV9FRUVFAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJTlMxXzJpbzE4X19pZnN0cmVhbV93cmFwcGVySU5TMV83c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRUVFTlMyXzVmaWVsZElOUzJfM2xhczEwZXh0cmFieXRlc0VOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElTRV9FRUVFRUVFRQBONmxhc3ppcDdmb3JtYXRzMjFkeW5hbWljX2RlY29tcHJlc3NvcjFJTlNfOGRlY29kZXJzMTBhcml0aG1ldGljSU5TXzJpbzE4X19pZnN0cmVhbV93cmFwcGVySU5TXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOUzBfMTlyZWNvcmRfZGVjb21wcmVzc29ySUpOUzBfNWZpZWxkSU5TMF8zbGFzN3BvaW50MTBFTlMwXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJU0RfRUVFRUVFRUVFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9wb2ludGVySVBONmxhc3ppcDdmb3JtYXRzMjFkeW5hbWljX2RlY29tcHJlc3NvcjFJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOUzJfMTlyZWNvcmRfZGVjb21wcmVzc29ySUpOUzJfNWZpZWxkSU5TMl8zbGFzN3BvaW50MTBFTlMyXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJU0ZfRUVFRUVFRUVFTlNfMTRkZWZhdWx0X2RlbGV0ZUlTS19FRU5TXzlhbGxvY2F0b3JJU0tfRUVFRQBOU3QzX18yMTRkZWZhdWx0X2RlbGV0ZUlONmxhc3ppcDdmb3JtYXRzMjFkeW5hbWljX2RlY29tcHJlc3NvcjFJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOUzJfMTlyZWNvcmRfZGVjb21wcmVzc29ySUpOUzJfNWZpZWxkSU5TMl8zbGFzN3BvaW50MTBFTlMyXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJU0ZfRUVFRUVFRUVFRUUATjZsYXN6aXA3Zm9ybWF0czIxZHluYW1pY19kZWNvbXByZXNzb3IxSU5TXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOU18yaW8xOF9faWZzdHJlYW1fd3JhcHBlcklOU183c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRUVFTlMwXzE5cmVjb3JkX2RlY29tcHJlc3NvcklKTlMwXzVmaWVsZElOUzBfM2xhczdwb2ludDEwRU5TMF8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSVNEX0VFRUVOU0JfSU5TQ183Z3BzdGltZUVOU0VfSVNIX0VFRUVFRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXA3Zm9ybWF0czIxZHluYW1pY19kZWNvbXByZXNzb3IxSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJTlMxXzJpbzE4X19pZnN0cmVhbV93cmFwcGVySU5TMV83c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRUVFTlMyXzE5cmVjb3JkX2RlY29tcHJlc3NvcklKTlMyXzVmaWVsZElOUzJfM2xhczdwb2ludDEwRU5TMl8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSVNGX0VFRUVOU0RfSU5TRV83Z3BzdGltZUVOU0dfSVNKX0VFRUVFRUVFRU5TXzE0ZGVmYXVsdF9kZWxldGVJU05fRUVOU185YWxsb2NhdG9ySVNOX0VFRUUATlN0M19fMjE0ZGVmYXVsdF9kZWxldGVJTjZsYXN6aXA3Zm9ybWF0czIxZHluYW1pY19kZWNvbXByZXNzb3IxSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJTlMxXzJpbzE4X19pZnN0cmVhbV93cmFwcGVySU5TMV83c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRUVFTlMyXzE5cmVjb3JkX2RlY29tcHJlc3NvcklKTlMyXzVmaWVsZElOUzJfM2xhczdwb2ludDEwRU5TMl8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSVNGX0VFRUVOU0RfSU5TRV83Z3BzdGltZUVOU0dfSVNKX0VFRUVFRUVFRUVFAE42bGFzemlwN2Zvcm1hdHMyMWR5bmFtaWNfZGVjb21wcmVzc29yMUlOU184ZGVjb2RlcnMxMGFyaXRobWV0aWNJTlNfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlNfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRUVFRU5TMF8xOXJlY29yZF9kZWNvbXByZXNzb3JJSk5TMF81ZmllbGRJTlMwXzNsYXM3cG9pbnQxMEVOUzBfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElTRF9FRUVFTlNCX0lOU0NfM3JnYkVOU0VfSVNIX0VFRUVFRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXA3Zm9ybWF0czIxZHluYW1pY19kZWNvbXByZXNzb3IxSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJTlMxXzJpbzE4X19pZnN0cmVhbV93cmFwcGVySU5TMV83c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRUVFTlMyXzE5cmVjb3JkX2RlY29tcHJlc3NvcklKTlMyXzVmaWVsZElOUzJfM2xhczdwb2ludDEwRU5TMl8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSVNGX0VFRUVOU0RfSU5TRV8zcmdiRU5TR19JU0pfRUVFRUVFRUVFTlNfMTRkZWZhdWx0X2RlbGV0ZUlTTl9FRU5TXzlhbGxvY2F0b3JJU05fRUVFRQBOU3QzX18yMTRkZWZhdWx0X2RlbGV0ZUlONmxhc3ppcDdmb3JtYXRzMjFkeW5hbWljX2RlY29tcHJlc3NvcjFJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOUzJfMTlyZWNvcmRfZGVjb21wcmVzc29ySUpOUzJfNWZpZWxkSU5TMl8zbGFzN3BvaW50MTBFTlMyXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJU0ZfRUVFRU5TRF9JTlNFXzNyZ2JFTlNHX0lTSl9FRUVFRUVFRUVFRQBONmxhc3ppcDdmb3JtYXRzMjFkeW5hbWljX2RlY29tcHJlc3NvcjFJTlNfOGRlY29kZXJzMTBhcml0aG1ldGljSU5TXzJpbzE4X19pZnN0cmVhbV93cmFwcGVySU5TXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOUzBfMTlyZWNvcmRfZGVjb21wcmVzc29ySUpOUzBfNWZpZWxkSU5TMF8zbGFzN3BvaW50MTBFTlMwXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJU0RfRUVFRU5TQl9JTlNDXzdncHN0aW1lRU5TRV9JU0hfRUVFRU5TQl9JTlNDXzNyZ2JFTlNFX0lTS19FRUVFRUVFRUUATlN0M19fMjIwX19zaGFyZWRfcHRyX3BvaW50ZXJJUE42bGFzemlwN2Zvcm1hdHMyMWR5bmFtaWNfZGVjb21wcmVzc29yMUlOUzFfOGRlY29kZXJzMTBhcml0aG1ldGljSU5TMV8yaW8xOF9faWZzdHJlYW1fd3JhcHBlcklOUzFfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRUVFRU5TMl8xOXJlY29yZF9kZWNvbXByZXNzb3JJSk5TMl81ZmllbGRJTlMyXzNsYXM3cG9pbnQxMEVOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElTRl9FRUVFTlNEX0lOU0VfN2dwc3RpbWVFTlNHX0lTSl9FRUVFTlNEX0lOU0VfM3JnYkVOU0dfSVNNX0VFRUVFRUVFRU5TXzE0ZGVmYXVsdF9kZWxldGVJU1FfRUVOU185YWxsb2NhdG9ySVNRX0VFRUUATlN0M19fMjE0ZGVmYXVsdF9kZWxldGVJTjZsYXN6aXA3Zm9ybWF0czIxZHluYW1pY19kZWNvbXByZXNzb3IxSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJTlMxXzJpbzE4X19pZnN0cmVhbV93cmFwcGVySU5TMV83c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRUVFTlMyXzE5cmVjb3JkX2RlY29tcHJlc3NvcklKTlMyXzVmaWVsZElOUzJfM2xhczdwb2ludDEwRU5TMl8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSVNGX0VFRUVOU0RfSU5TRV83Z3BzdGltZUVOU0dfSVNKX0VFRUVOU0RfSU5TRV8zcmdiRU5TR19JU01fRUVFRUVFRUVFRUUATlN0M19fMjIwX19zaGFyZWRfcHRyX3BvaW50ZXJJUDEwYnVmX3N0cmVhbU5TXzE0ZGVmYXVsdF9kZWxldGVJUzFfRUVOU185YWxsb2NhdG9ySVMxX0VFRUUATlN0M19fMjE0ZGVmYXVsdF9kZWxldGVJMTBidWZfc3RyZWFtRUUATlN0M19fMjIwX19zaGFyZWRfcHRyX3BvaW50ZXJJUE42bGFzemlwOGRlY29kZXJzMTBhcml0aG1ldGljSTEwYnVmX3N0cmVhbUVFTlNfMTRkZWZhdWx0X2RlbGV0ZUlTNV9FRU5TXzlhbGxvY2F0b3JJUzVfRUVFRQBOU3QzX18yMTRkZWZhdWx0X2RlbGV0ZUlONmxhc3ppcDhkZWNvZGVyczEwYXJpdGhtZXRpY0kxMGJ1Zl9zdHJlYW1FRUVFAE42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZmllbGRfZGVjb21wcmVzc29ySU5TXzhkZWNvZGVyczEwYXJpdGhtZXRpY0kxMGJ1Zl9zdHJlYW1FRUVFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9wb2ludGVySVBONmxhc3ppcDdmb3JtYXRzMjZkeW5hbWljX2ZpZWxkX2RlY29tcHJlc3NvcklOUzFfOGRlY29kZXJzMTBhcml0aG1ldGljSTEwYnVmX3N0cmVhbUVFRUVOU18xNGRlZmF1bHRfZGVsZXRlSVM4X0VFTlNfOWFsbG9jYXRvcklTOF9FRUVFAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZmllbGRfZGVjb21wcmVzc29ySU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJMTBidWZfc3RyZWFtRUVFRUVFAE42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TXzhkZWNvZGVyczEwYXJpdGhtZXRpY0kxMGJ1Zl9zdHJlYW1FRU5TMF81ZmllbGRJaU5TMF8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSWlFRUVFRUUATlN0M19fMjIwX19zaGFyZWRfcHRyX3BvaW50ZXJJUE42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJMTBidWZfc3RyZWFtRUVOUzJfNWZpZWxkSWlOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElpRUVFRUVFTlNfMTRkZWZhdWx0X2RlbGV0ZUlTQ19FRU5TXzlhbGxvY2F0b3JJU0NfRUVFRQBOU3QzX18yMTRkZWZhdWx0X2RlbGV0ZUlONmxhc3ppcDdmb3JtYXRzMjZkeW5hbWljX2RlY29tcHJlc3Nvcl9maWVsZElOUzFfOGRlY29kZXJzMTBhcml0aG1ldGljSTEwYnVmX3N0cmVhbUVFTlMyXzVmaWVsZElpTlMyXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJaUVFRUVFRUVFAE42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TXzhkZWNvZGVyczEwYXJpdGhtZXRpY0kxMGJ1Zl9zdHJlYW1FRU5TMF81ZmllbGRJak5TMF8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSWpFRUVFRUUATlN0M19fMjIwX19zaGFyZWRfcHRyX3BvaW50ZXJJUE42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJMTBidWZfc3RyZWFtRUVOUzJfNWZpZWxkSWpOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElqRUVFRUVFTlNfMTRkZWZhdWx0X2RlbGV0ZUlTQ19FRU5TXzlhbGxvY2F0b3JJU0NfRUVFRQBOU3QzX18yMTRkZWZhdWx0X2RlbGV0ZUlONmxhc3ppcDdmb3JtYXRzMjZkeW5hbWljX2RlY29tcHJlc3Nvcl9maWVsZElOUzFfOGRlY29kZXJzMTBhcml0aG1ldGljSTEwYnVmX3N0cmVhbUVFTlMyXzVmaWVsZElqTlMyXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJakVFRUVFRUVFAE42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TXzhkZWNvZGVyczEwYXJpdGhtZXRpY0kxMGJ1Zl9zdHJlYW1FRU5TMF81ZmllbGRJYU5TMF8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSWFFRUVFRUUATlN0M19fMjIwX19zaGFyZWRfcHRyX3BvaW50ZXJJUE42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJMTBidWZfc3RyZWFtRUVOUzJfNWZpZWxkSWFOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElhRUVFRUVFTlNfMTRkZWZhdWx0X2RlbGV0ZUlTQ19FRU5TXzlhbGxvY2F0b3JJU0NfRUVFRQBOU3QzX18yMTRkZWZhdWx0X2RlbGV0ZUlONmxhc3ppcDdmb3JtYXRzMjZkeW5hbWljX2RlY29tcHJlc3Nvcl9maWVsZElOUzFfOGRlY29kZXJzMTBhcml0aG1ldGljSTEwYnVmX3N0cmVhbUVFTlMyXzVmaWVsZElhTlMyXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJYUVFRUVFRUVFAE42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TXzhkZWNvZGVyczEwYXJpdGhtZXRpY0kxMGJ1Zl9zdHJlYW1FRU5TMF81ZmllbGRJc05TMF8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSXNFRUVFRUUATlN0M19fMjIwX19zaGFyZWRfcHRyX3BvaW50ZXJJUE42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJMTBidWZfc3RyZWFtRUVOUzJfNWZpZWxkSXNOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElzRUVFRUVFTlNfMTRkZWZhdWx0X2RlbGV0ZUlTQ19FRU5TXzlhbGxvY2F0b3JJU0NfRUVFRQBOU3QzX18yMTRkZWZhdWx0X2RlbGV0ZUlONmxhc3ppcDdmb3JtYXRzMjZkeW5hbWljX2RlY29tcHJlc3Nvcl9maWVsZElOUzFfOGRlY29kZXJzMTBhcml0aG1ldGljSTEwYnVmX3N0cmVhbUVFTlMyXzVmaWVsZElzTlMyXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJc0VFRUVFRUVFAE42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TXzhkZWNvZGVyczEwYXJpdGhtZXRpY0kxMGJ1Zl9zdHJlYW1FRU5TMF81ZmllbGRJaE5TMF8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSWhFRUVFRUUATlN0M19fMjIwX19zaGFyZWRfcHRyX3BvaW50ZXJJUE42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJMTBidWZfc3RyZWFtRUVOUzJfNWZpZWxkSWhOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZEloRUVFRUVFTlNfMTRkZWZhdWx0X2RlbGV0ZUlTQ19FRU5TXzlhbGxvY2F0b3JJU0NfRUVFRQBOU3QzX18yMTRkZWZhdWx0X2RlbGV0ZUlONmxhc3ppcDdmb3JtYXRzMjZkeW5hbWljX2RlY29tcHJlc3Nvcl9maWVsZElOUzFfOGRlY29kZXJzMTBhcml0aG1ldGljSTEwYnVmX3N0cmVhbUVFTlMyXzVmaWVsZEloTlMyXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJaEVFRUVFRUVFAE42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TXzhkZWNvZGVyczEwYXJpdGhtZXRpY0kxMGJ1Zl9zdHJlYW1FRU5TMF81ZmllbGRJdE5TMF8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSXRFRUVFRUUATlN0M19fMjIwX19zaGFyZWRfcHRyX3BvaW50ZXJJUE42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJMTBidWZfc3RyZWFtRUVOUzJfNWZpZWxkSXROUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZEl0RUVFRUVFTlNfMTRkZWZhdWx0X2RlbGV0ZUlTQ19FRU5TXzlhbGxvY2F0b3JJU0NfRUVFRQBOU3QzX18yMTRkZWZhdWx0X2RlbGV0ZUlONmxhc3ppcDdmb3JtYXRzMjZkeW5hbWljX2RlY29tcHJlc3Nvcl9maWVsZElOUzFfOGRlY29kZXJzMTBhcml0aG1ldGljSTEwYnVmX3N0cmVhbUVFTlMyXzVmaWVsZEl0TlMyXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJdEVFRUVFRUVFADZMQVNaaXAAUDZMQVNaaXAAUEs2TEFTWmlwAGlpAHYAdmkAdmlpaWkAdmlpaQBpaWkAMTNEeW5hbWljTEFTWmlwAFAxM0R5bmFtaWNMQVNaaXAAUEsxM0R5bmFtaWNMQVNaaXAAdm9pZABib29sAGNoYXIAc2lnbmVkIGNoYXIAdW5zaWduZWQgY2hhcgBzaG9ydAB1bnNpZ25lZCBzaG9ydABpbnQAdW5zaWduZWQgaW50AGxvbmcAdW5zaWduZWQgbG9uZwBmbG9hdABkb3VibGUAc3RkOjpzdHJpbmcAc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4Ac3RkOjp3c3RyaW5nAHN0ZDo6dTE2c3RyaW5nAHN0ZDo6dTMyc3RyaW5nAGVtc2NyaXB0ZW46OnZhbABlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxkb3VibGU+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGxvbmcgZG91YmxlPgBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0llRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZEVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWZFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0ltRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJbEVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWpFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lpRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJdEVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXNFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0loRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJYUVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWNFRQBOMTBlbXNjcmlwdGVuM3ZhbEUATlN0M19fMjEyYmFzaWNfc3RyaW5nSURpTlNfMTFjaGFyX3RyYWl0c0lEaUVFTlNfOWFsbG9jYXRvcklEaUVFRUUATlN0M19fMjIxX19iYXNpY19zdHJpbmdfY29tbW9uSUxiMUVFRQBOU3QzX18yMTJiYXNpY19zdHJpbmdJRHNOU18xMWNoYXJfdHJhaXRzSURzRUVOU185YWxsb2NhdG9ySURzRUVFRQBOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQBOU3QzX18yMTJiYXNpY19zdHJpbmdJaE5TXzExY2hhcl90cmFpdHNJaEVFTlNfOWFsbG9jYXRvckloRUVFRQBOU3QzX18yMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQAtKyAgIDBYMHgAKG51bGwpAC0wWCswWCAwWC0weCsweCAweABpbmYASU5GAG5hbgBOQU4ALgB0ZXJtaW5hdGluZyB3aXRoICVzIGV4Y2VwdGlvbiBvZiB0eXBlICVzOiAlcwB0ZXJtaW5hdGluZyB3aXRoICVzIGV4Y2VwdGlvbiBvZiB0eXBlICVzAHRlcm1pbmF0aW5nIHdpdGggJXMgZm9yZWlnbiBleGNlcHRpb24AdGVybWluYXRpbmcAdW5jYXVnaHQAU3Q5ZXhjZXB0aW9uAE4xMF9fY3h4YWJpdjExNl9fc2hpbV90eXBlX2luZm9FAFN0OXR5cGVfaW5mbwBOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5cGVfaW5mb0UATjEwX19jeHhhYml2MTE3X19jbGFzc190eXBlX2luZm9FAHRlcm1pbmF0ZV9oYW5kbGVyIHVuZXhwZWN0ZWRseSByZXR1cm5lZABzdGQ6OmJhZF9hbGxvYwBTdDliYWRfYWxsb2MAU3QxMWxvZ2ljX2Vycm9yAFN0MTNydW50aW1lX2Vycm9yAFN0MTJsZW5ndGhfZXJyb3IAU3QxMm91dF9vZl9yYW5nZQBOMTBfX2N4eGFiaXYxMTdfX3BiYXNlX3R5cGVfaW5mb0UATjEwX19jeHhhYml2MTE5X19wb2ludGVyX3R5cGVfaW5mb0UATjEwX19jeHhhYml2MTIwX19mdW5jdGlvbl90eXBlX2luZm9FAE4xMF9fY3h4YWJpdjEyOV9fcG9pbnRlcl90b19tZW1iZXJfdHlwZV9pbmZvRQBQdXJlIHZpcnR1YWwgZnVuY3Rpb24gY2FsbGVkIQBOMTBfX2N4eGFiaXYxMjNfX2Z1bmRhbWVudGFsX3R5cGVfaW5mb0UAdgBEbgBiAGMAaABhAHMAdABpAGoAbABtAGYAZABOMTBfX2N4eGFiaXYxMjFfX3ZtaV9jbGFzc190eXBlX2luZm9FAF9fY3hhX2d1YXJkX2FjcXVpcmUgZGV0ZWN0ZWQgcmVjdXJzaXZlIGluaXRpYWxpemF0aW9uAHN0ZDo6YmFkX2Z1bmN0aW9uX2NhbGwATlN0M19fMjE3YmFkX2Z1bmN0aW9uX2NhbGxFAE5TdDNfXzIxNF9fc2hhcmVkX2NvdW50RQBOU3QzX18yMTlfX3NoYXJlZF93ZWFrX2NvdW50RQBtdXRleCBsb2NrIGZhaWxlZABiYXNpY19zdHJpbmcAdW5zcGVjaWZpZWQgZ2VuZXJpY19jYXRlZ29yeSBlcnJvcgBVbmtub3duIGVycm9yICVkAGdlbmVyaWMATlN0M19fMjI0X19nZW5lcmljX2Vycm9yX2NhdGVnb3J5RQBOU3QzX18yMTJfX2RvX21lc3NhZ2VFAE5TdDNfXzIxNGVycm9yX2NhdGVnb3J5RQB1bnNwZWNpZmllZCBzeXN0ZW1fY2F0ZWdvcnkgZXJyb3IAc3lzdGVtAE5TdDNfXzIyM19fc3lzdGVtX2Vycm9yX2NhdGVnb3J5RQBOU3QzX18yMTJzeXN0ZW1fZXJyb3JFADogAHZlY3Rvcg==';\n var tempDoublePtr = 22368;\n function demangle(func) {\n return func;\n }\n function demangleAll(text) {\n var regex = /\\b__Z[\\w\\d_]+/g;\n return text.replace(regex, function (x) {\n var y = demangle(x);\n return x === y ? x : y + ' [' + x + ']';\n });\n }\n function jsStackTrace() {\n var err = new Error();\n if (!err.stack) {\n try {\n throw new Error();\n }\n catch (e) {\n err = e;\n }\n if (!err.stack) {\n return '(no stack trace available)';\n }\n }\n return err.stack.toString();\n }\n function ___cxa_allocate_exception(size) {\n return _malloc(size);\n }\n var ___exception_infos = {};\n var ___exception_caught = [];\n function ___exception_addRef(ptr) {\n if (!ptr)\n return;\n var info = ___exception_infos[ptr];\n info.refcount++;\n }\n function ___exception_deAdjust(adjusted) {\n if (!adjusted || ___exception_infos[adjusted])\n return adjusted;\n for (var key in ___exception_infos) {\n var ptr = +key;\n var adj = ___exception_infos[ptr].adjusted;\n var len = adj.length;\n for (var i = 0; i < len; i++) {\n if (adj[i] === adjusted) {\n return ptr;\n }\n }\n }\n return adjusted;\n }\n function ___cxa_begin_catch(ptr) {\n var info = ___exception_infos[ptr];\n if (info && !info.caught) {\n info.caught = true;\n __ZSt18uncaught_exceptionv.uncaught_exceptions--;\n }\n if (info)\n info.rethrown = false;\n ___exception_caught.push(ptr);\n ___exception_addRef(___exception_deAdjust(ptr));\n return ptr;\n }\n var ___exception_last = 0;\n function ___cxa_throw(ptr, type, destructor) {\n ___exception_infos[ptr] = {\n ptr: ptr,\n adjusted: [ptr],\n type: type,\n destructor: destructor,\n refcount: 0,\n caught: false,\n rethrown: false\n };\n ___exception_last = ptr;\n if (!('uncaught_exception' in __ZSt18uncaught_exceptionv)) {\n __ZSt18uncaught_exceptionv.uncaught_exceptions = 1;\n }\n else {\n __ZSt18uncaught_exceptionv.uncaught_exceptions++;\n }\n throw ptr;\n }\n function ___cxa_uncaught_exceptions() {\n return __ZSt18uncaught_exceptionv.uncaught_exceptions;\n }\n function ___gxx_personality_v0() { }\n function getShiftFromSize(size) {\n switch (size) {\n case 1:\n return 0;\n case 2:\n return 1;\n case 4:\n return 2;\n case 8:\n return 3;\n default:\n throw new TypeError('Unknown type size: ' + size);\n }\n }\n function embind_init_charCodes() {\n var codes = new Array(256);\n for (var i = 0; i < 256; ++i) {\n codes[i] = String.fromCharCode(i);\n }\n embind_charCodes = codes;\n }\n var embind_charCodes = undefined;\n function readLatin1String(ptr) {\n var ret = '';\n var c = ptr;\n while (HEAPU8[c]) {\n ret += embind_charCodes[HEAPU8[c++]];\n }\n return ret;\n }\n var awaitingDependencies = {};\n var registeredTypes = {};\n var typeDependencies = {};\n var char_0 = 48;\n var char_9 = 57;\n function makeLegalFunctionName(name) {\n if (undefined === name) {\n return '_unknown';\n }\n name = name.replace(/[^a-zA-Z0-9_]/g, '$');\n var f = name.charCodeAt(0);\n if (f >= char_0 && f <= char_9) {\n return '_' + name;\n }\n else {\n return name;\n }\n }\n function createNamedFunction(name, body) {\n name = makeLegalFunctionName(name);\n return new Function('body', 'return function ' +\n name +\n '() {\\n' +\n ' \"use strict\";' +\n ' return body.apply(this, arguments);\\n' +\n '};\\n')(body);\n }\n function extendError(baseErrorType, errorName) {\n var errorClass = createNamedFunction(errorName, function (message) {\n this.name = errorName;\n this.message = message;\n var stack = new Error(message).stack;\n if (stack !== undefined) {\n this.stack = this.toString() + '\\n' + stack.replace(/^Error(:[^\\n]*)?\\n/, '');\n }\n });\n errorClass.prototype = Object.create(baseErrorType.prototype);\n errorClass.prototype.constructor = errorClass;\n errorClass.prototype.toString = function () {\n if (this.message === undefined) {\n return this.name;\n }\n else {\n return this.name + ': ' + this.message;\n }\n };\n return errorClass;\n }\n var BindingError = undefined;\n function throwBindingError(message) {\n throw new BindingError(message);\n }\n var InternalError = undefined;\n function throwInternalError(message) {\n throw new InternalError(message);\n }\n function whenDependentTypesAreResolved(myTypes, dependentTypes, getTypeConverters) {\n myTypes.forEach(function (type) {\n typeDependencies[type] = dependentTypes;\n });\n function onComplete(typeConverters) {\n var myTypeConverters = getTypeConverters(typeConverters);\n if (myTypeConverters.length !== myTypes.length) {\n throwInternalError('Mismatched type converter count');\n }\n for (var i = 0; i < myTypes.length; ++i) {\n registerType(myTypes[i], myTypeConverters[i]);\n }\n }\n var typeConverters = new Array(dependentTypes.length);\n var unregisteredTypes = [];\n var registered = 0;\n dependentTypes.forEach(function (dt, i) {\n if (registeredTypes.hasOwnProperty(dt)) {\n typeConverters[i] = registeredTypes[dt];\n }\n else {\n unregisteredTypes.push(dt);\n if (!awaitingDependencies.hasOwnProperty(dt)) {\n awaitingDependencies[dt] = [];\n }\n awaitingDependencies[dt].push(function () {\n typeConverters[i] = registeredTypes[dt];\n ++registered;\n if (registered === unregisteredTypes.length) {\n onComplete(typeConverters);\n }\n });\n }\n });\n if (0 === unregisteredTypes.length) {\n onComplete(typeConverters);\n }\n }\n function registerType(rawType, registeredInstance, options) {\n options = options || {};\n if (!('argPackAdvance' in registeredInstance)) {\n throw new TypeError('registerType registeredInstance requires argPackAdvance');\n }\n var name = registeredInstance.name;\n if (!rawType) {\n throwBindingError('type \"' + name + '\" must have a positive integer typeid pointer');\n }\n if (registeredTypes.hasOwnProperty(rawType)) {\n if (options.ignoreDuplicateRegistrations) {\n return;\n }\n else {\n throwBindingError(\"Cannot register type '\" + name + \"' twice\");\n }\n }\n registeredTypes[rawType] = registeredInstance;\n delete typeDependencies[rawType];\n if (awaitingDependencies.hasOwnProperty(rawType)) {\n var callbacks = awaitingDependencies[rawType];\n delete awaitingDependencies[rawType];\n callbacks.forEach(function (cb) {\n cb();\n });\n }\n }\n function __embind_register_bool(rawType, name, size, trueValue, falseValue) {\n var shift = getShiftFromSize(size);\n name = readLatin1String(name);\n registerType(rawType, {\n name: name,\n fromWireType: function (wt) {\n return !!wt;\n },\n toWireType: function (destructors, o) {\n return o ? trueValue : falseValue;\n },\n argPackAdvance: 8,\n readValueFromPointer: function (pointer) {\n var heap;\n if (size === 1) {\n heap = HEAP8;\n }\n else if (size === 2) {\n heap = HEAP16;\n }\n else if (size === 4) {\n heap = HEAP32;\n }\n else {\n throw new TypeError('Unknown boolean type size: ' + name);\n }\n return this['fromWireType'](heap[pointer >> shift]);\n },\n destructorFunction: null\n });\n }\n function ClassHandle_isAliasOf(other) {\n if (!(this instanceof ClassHandle)) {\n return false;\n }\n if (!(other instanceof ClassHandle)) {\n return false;\n }\n var leftClass = this.$$.ptrType.registeredClass;\n var left = this.$$.ptr;\n var rightClass = other.$$.ptrType.registeredClass;\n var right = other.$$.ptr;\n while (leftClass.baseClass) {\n left = leftClass.upcast(left);\n leftClass = leftClass.baseClass;\n }\n while (rightClass.baseClass) {\n right = rightClass.upcast(right);\n rightClass = rightClass.baseClass;\n }\n return leftClass === rightClass && left === right;\n }\n function shallowCopyInternalPointer(o) {\n return {\n count: o.count,\n deleteScheduled: o.deleteScheduled,\n preservePointerOnDelete: o.preservePointerOnDelete,\n ptr: o.ptr,\n ptrType: o.ptrType,\n smartPtr: o.smartPtr,\n smartPtrType: o.smartPtrType\n };\n }\n function throwInstanceAlreadyDeleted(obj) {\n function getInstanceTypeName(handle) {\n return handle.$$.ptrType.registeredClass.name;\n }\n throwBindingError(getInstanceTypeName(obj) + ' instance already deleted');\n }\n var finalizationGroup = false;\n function detachFinalizer(handle) { }\n function runDestructor($$) {\n if ($$.smartPtr) {\n $$.smartPtrType.rawDestructor($$.smartPtr);\n }\n else {\n $$.ptrType.registeredClass.rawDestructor($$.ptr);\n }\n }\n function releaseClassHandle($$) {\n $$.count.value -= 1;\n var toDelete = 0 === $$.count.value;\n if (toDelete) {\n runDestructor($$);\n }\n }\n function attachFinalizer(handle) {\n if ('undefined' === typeof FinalizationGroup) {\n attachFinalizer = function (handle) {\n return handle;\n };\n return handle;\n }\n finalizationGroup = new FinalizationGroup(function (iter) {\n for (var result = iter.next(); !result.done; result = iter.next()) {\n var $$ = result.value;\n if (!$$.ptr) {\n console.warn('object already deleted: ' + $$.ptr);\n }\n else {\n releaseClassHandle($$);\n }\n }\n });\n attachFinalizer = function (handle) {\n finalizationGroup.register(handle, handle.$$, handle.$$);\n return handle;\n };\n detachFinalizer = function (handle) {\n finalizationGroup.unregister(handle.$$);\n };\n return attachFinalizer(handle);\n }\n function ClassHandle_clone() {\n if (!this.$$.ptr) {\n throwInstanceAlreadyDeleted(this);\n }\n if (this.$$.preservePointerOnDelete) {\n this.$$.count.value += 1;\n return this;\n }\n else {\n var clone = attachFinalizer(Object.create(Object.getPrototypeOf(this), {\n $$: {\n value: shallowCopyInternalPointer(this.$$)\n }\n }));\n clone.$$.count.value += 1;\n clone.$$.deleteScheduled = false;\n return clone;\n }\n }\n function ClassHandle_delete() {\n if (!this.$$.ptr) {\n throwInstanceAlreadyDeleted(this);\n }\n if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) {\n throwBindingError('Object already scheduled for deletion');\n }\n detachFinalizer(this);\n releaseClassHandle(this.$$);\n if (!this.$$.preservePointerOnDelete) {\n this.$$.smartPtr = undefined;\n this.$$.ptr = undefined;\n }\n }\n function ClassHandle_isDeleted() {\n return !this.$$.ptr;\n }\n var delayFunction = undefined;\n var deletionQueue = [];\n function flushPendingDeletes() {\n while (deletionQueue.length) {\n var obj = deletionQueue.pop();\n obj.$$.deleteScheduled = false;\n obj['delete']();\n }\n }\n function ClassHandle_deleteLater() {\n if (!this.$$.ptr) {\n throwInstanceAlreadyDeleted(this);\n }\n if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) {\n throwBindingError('Object already scheduled for deletion');\n }\n deletionQueue.push(this);\n if (deletionQueue.length === 1 && delayFunction) {\n delayFunction(flushPendingDeletes);\n }\n this.$$.deleteScheduled = true;\n return this;\n }\n function init_ClassHandle() {\n ClassHandle.prototype['isAliasOf'] = ClassHandle_isAliasOf;\n ClassHandle.prototype['clone'] = ClassHandle_clone;\n ClassHandle.prototype['delete'] = ClassHandle_delete;\n ClassHandle.prototype['isDeleted'] = ClassHandle_isDeleted;\n ClassHandle.prototype['deleteLater'] = ClassHandle_deleteLater;\n }\n function ClassHandle() { }\n var registeredPointers = {};\n function ensureOverloadTable(proto, methodName, humanName) {\n if (undefined === proto[methodName].overloadTable) {\n var prevFunc = proto[methodName];\n proto[methodName] = function () {\n if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) {\n throwBindingError(\"Function '\" +\n humanName +\n \"' called with an invalid number of arguments (\" +\n arguments.length +\n ') - expects one of (' +\n proto[methodName].overloadTable +\n ')!');\n }\n return proto[methodName].overloadTable[arguments.length].apply(this, arguments);\n };\n proto[methodName].overloadTable = [];\n proto[methodName].overloadTable[prevFunc.argCount] = prevFunc;\n }\n }\n function exposePublicSymbol(name, value, numArguments) {\n if (Module.hasOwnProperty(name)) {\n if (undefined === numArguments ||\n (undefined !== Module[name].overloadTable &&\n undefined !== Module[name].overloadTable[numArguments])) {\n throwBindingError(\"Cannot register public name '\" + name + \"' twice\");\n }\n ensureOverloadTable(Module, name, name);\n if (Module.hasOwnProperty(numArguments)) {\n throwBindingError('Cannot register multiple overloads of a function with the same number of arguments (' +\n numArguments +\n ')!');\n }\n Module[name].overloadTable[numArguments] = value;\n }\n else {\n Module[name] = value;\n if (undefined !== numArguments) {\n Module[name].numArguments = numArguments;\n }\n }\n }\n function RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast) {\n this.name = name;\n this.constructor = constructor;\n this.instancePrototype = instancePrototype;\n this.rawDestructor = rawDestructor;\n this.baseClass = baseClass;\n this.getActualType = getActualType;\n this.upcast = upcast;\n this.downcast = downcast;\n this.pureVirtualFunctions = [];\n }\n function upcastPointer(ptr, ptrClass, desiredClass) {\n while (ptrClass !== desiredClass) {\n if (!ptrClass.upcast) {\n throwBindingError('Expected null or instance of ' +\n desiredClass.name +\n ', got an instance of ' +\n ptrClass.name);\n }\n ptr = ptrClass.upcast(ptr);\n ptrClass = ptrClass.baseClass;\n }\n return ptr;\n }\n function constNoSmartPtrRawPointerToWireType(destructors, handle) {\n if (handle === null) {\n if (this.isReference) {\n throwBindingError('null is not a valid ' + this.name);\n }\n return 0;\n }\n if (!handle.$$) {\n throwBindingError('Cannot pass \"' + _embind_repr(handle) + '\" as a ' + this.name);\n }\n if (!handle.$$.ptr) {\n throwBindingError('Cannot pass deleted object as a pointer of type ' + this.name);\n }\n var handleClass = handle.$$.ptrType.registeredClass;\n var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);\n return ptr;\n }\n function genericPointerToWireType(destructors, handle) {\n var ptr;\n if (handle === null) {\n if (this.isReference) {\n throwBindingError('null is not a valid ' + this.name);\n }\n if (this.isSmartPointer) {\n ptr = this.rawConstructor();\n if (destructors !== null) {\n destructors.push(this.rawDestructor, ptr);\n }\n return ptr;\n }\n else {\n return 0;\n }\n }\n if (!handle.$$) {\n throwBindingError('Cannot pass \"' + _embind_repr(handle) + '\" as a ' + this.name);\n }\n if (!handle.$$.ptr) {\n throwBindingError('Cannot pass deleted object as a pointer of type ' + this.name);\n }\n if (!this.isConst && handle.$$.ptrType.isConst) {\n throwBindingError('Cannot convert argument of type ' +\n (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) +\n ' to parameter type ' +\n this.name);\n }\n var handleClass = handle.$$.ptrType.registeredClass;\n ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);\n if (this.isSmartPointer) {\n if (undefined === handle.$$.smartPtr) {\n throwBindingError('Passing raw pointer to smart pointer is illegal');\n }\n switch (this.sharingPolicy) {\n case 0:\n if (handle.$$.smartPtrType === this) {\n ptr = handle.$$.smartPtr;\n }\n else {\n throwBindingError('Cannot convert argument of type ' +\n (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) +\n ' to parameter type ' +\n this.name);\n }\n break;\n case 1:\n ptr = handle.$$.smartPtr;\n break;\n case 2:\n if (handle.$$.smartPtrType === this) {\n ptr = handle.$$.smartPtr;\n }\n else {\n var clonedHandle = handle['clone']();\n ptr = this.rawShare(ptr, __emval_register(function () {\n clonedHandle['delete']();\n }));\n if (destructors !== null) {\n destructors.push(this.rawDestructor, ptr);\n }\n }\n break;\n default:\n throwBindingError('Unsupporting sharing policy');\n }\n }\n return ptr;\n }\n function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) {\n if (handle === null) {\n if (this.isReference) {\n throwBindingError('null is not a valid ' + this.name);\n }\n return 0;\n }\n if (!handle.$$) {\n throwBindingError('Cannot pass \"' + _embind_repr(handle) + '\" as a ' + this.name);\n }\n if (!handle.$$.ptr) {\n throwBindingError('Cannot pass deleted object as a pointer of type ' + this.name);\n }\n if (handle.$$.ptrType.isConst) {\n throwBindingError('Cannot convert argument of type ' +\n handle.$$.ptrType.name +\n ' to parameter type ' +\n this.name);\n }\n var handleClass = handle.$$.ptrType.registeredClass;\n var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);\n return ptr;\n }\n function simpleReadValueFromPointer(pointer) {\n return this['fromWireType'](HEAPU32[pointer >> 2]);\n }\n function RegisteredPointer_getPointee(ptr) {\n if (this.rawGetPointee) {\n ptr = this.rawGetPointee(ptr);\n }\n return ptr;\n }\n function RegisteredPointer_destructor(ptr) {\n if (this.rawDestructor) {\n this.rawDestructor(ptr);\n }\n }\n function RegisteredPointer_deleteObject(handle) {\n if (handle !== null) {\n handle['delete']();\n }\n }\n function downcastPointer(ptr, ptrClass, desiredClass) {\n if (ptrClass === desiredClass) {\n return ptr;\n }\n if (undefined === desiredClass.baseClass) {\n return null;\n }\n var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass);\n if (rv === null) {\n return null;\n }\n return desiredClass.downcast(rv);\n }\n function getInheritedInstanceCount() {\n return Object.keys(registeredInstances).length;\n }\n function getLiveInheritedInstances() {\n var rv = [];\n for (var k in registeredInstances) {\n if (registeredInstances.hasOwnProperty(k)) {\n rv.push(registeredInstances[k]);\n }\n }\n return rv;\n }\n function setDelayFunction(fn) {\n delayFunction = fn;\n if (deletionQueue.length && delayFunction) {\n delayFunction(flushPendingDeletes);\n }\n }\n function init_embind() {\n Module['getInheritedInstanceCount'] = getInheritedInstanceCount;\n Module['getLiveInheritedInstances'] = getLiveInheritedInstances;\n Module['flushPendingDeletes'] = flushPendingDeletes;\n Module['setDelayFunction'] = setDelayFunction;\n }\n var registeredInstances = {};\n function getBasestPointer(class_, ptr) {\n if (ptr === undefined) {\n throwBindingError('ptr should not be undefined');\n }\n while (class_.baseClass) {\n ptr = class_.upcast(ptr);\n class_ = class_.baseClass;\n }\n return ptr;\n }\n function getInheritedInstance(class_, ptr) {\n ptr = getBasestPointer(class_, ptr);\n return registeredInstances[ptr];\n }\n function makeClassHandle(prototype, record) {\n if (!record.ptrType || !record.ptr) {\n throwInternalError('makeClassHandle requires ptr and ptrType');\n }\n var hasSmartPtrType = !!record.smartPtrType;\n var hasSmartPtr = !!record.smartPtr;\n if (hasSmartPtrType !== hasSmartPtr) {\n throwInternalError('Both smartPtrType and smartPtr must be specified');\n }\n record.count = {\n value: 1\n };\n return attachFinalizer(Object.create(prototype, {\n $$: {\n value: record\n }\n }));\n }\n function RegisteredPointer_fromWireType(ptr) {\n var rawPointer = this.getPointee(ptr);\n if (!rawPointer) {\n this.destructor(ptr);\n return null;\n }\n var registeredInstance = getInheritedInstance(this.registeredClass, rawPointer);\n if (undefined !== registeredInstance) {\n if (0 === registeredInstance.$$.count.value) {\n registeredInstance.$$.ptr = rawPointer;\n registeredInstance.$$.smartPtr = ptr;\n return registeredInstance['clone']();\n }\n else {\n var rv = registeredInstance['clone']();\n this.destructor(ptr);\n return rv;\n }\n }\n function makeDefaultHandle() {\n if (this.isSmartPointer) {\n return makeClassHandle(this.registeredClass.instancePrototype, {\n ptrType: this.pointeeType,\n ptr: rawPointer,\n smartPtrType: this,\n smartPtr: ptr\n });\n }\n else {\n return makeClassHandle(this.registeredClass.instancePrototype, {\n ptrType: this,\n ptr: ptr\n });\n }\n }\n var actualType = this.registeredClass.getActualType(rawPointer);\n var registeredPointerRecord = registeredPointers[actualType];\n if (!registeredPointerRecord) {\n return makeDefaultHandle.call(this);\n }\n var toType;\n if (this.isConst) {\n toType = registeredPointerRecord.constPointerType;\n }\n else {\n toType = registeredPointerRecord.pointerType;\n }\n var dp = downcastPointer(rawPointer, this.registeredClass, toType.registeredClass);\n if (dp === null) {\n return makeDefaultHandle.call(this);\n }\n if (this.isSmartPointer) {\n return makeClassHandle(toType.registeredClass.instancePrototype, {\n ptrType: toType,\n ptr: dp,\n smartPtrType: this,\n smartPtr: ptr\n });\n }\n else {\n return makeClassHandle(toType.registeredClass.instancePrototype, {\n ptrType: toType,\n ptr: dp\n });\n }\n }\n function init_RegisteredPointer() {\n RegisteredPointer.prototype.getPointee = RegisteredPointer_getPointee;\n RegisteredPointer.prototype.destructor = RegisteredPointer_destructor;\n RegisteredPointer.prototype['argPackAdvance'] = 8;\n RegisteredPointer.prototype['readValueFromPointer'] = simpleReadValueFromPointer;\n RegisteredPointer.prototype['deleteObject'] = RegisteredPointer_deleteObject;\n RegisteredPointer.prototype['fromWireType'] = RegisteredPointer_fromWireType;\n }\n function RegisteredPointer(name, registeredClass, isReference, isConst, isSmartPointer, pointeeType, sharingPolicy, rawGetPointee, rawConstructor, rawShare, rawDestructor) {\n this.name = name;\n this.registeredClass = registeredClass;\n this.isReference = isReference;\n this.isConst = isConst;\n this.isSmartPointer = isSmartPointer;\n this.pointeeType = pointeeType;\n this.sharingPolicy = sharingPolicy;\n this.rawGetPointee = rawGetPointee;\n this.rawConstructor = rawConstructor;\n this.rawShare = rawShare;\n this.rawDestructor = rawDestructor;\n if (!isSmartPointer && registeredClass.baseClass === undefined) {\n if (isConst) {\n this['toWireType'] = constNoSmartPtrRawPointerToWireType;\n this.destructorFunction = null;\n }\n else {\n this['toWireType'] = nonConstNoSmartPtrRawPointerToWireType;\n this.destructorFunction = null;\n }\n }\n else {\n this['toWireType'] = genericPointerToWireType;\n }\n }\n function replacePublicSymbol(name, value, numArguments) {\n if (!Module.hasOwnProperty(name)) {\n throwInternalError('Replacing nonexistant public symbol');\n }\n if (undefined !== Module[name].overloadTable && undefined !== numArguments) {\n Module[name].overloadTable[numArguments] = value;\n }\n else {\n Module[name] = value;\n Module[name].argCount = numArguments;\n }\n }\n function embind__requireFunction(signature, rawFunction) {\n signature = readLatin1String(signature);\n function makeDynCaller(dynCall) {\n var args = [];\n for (var i = 1; i < signature.length; ++i) {\n args.push('a' + i);\n }\n var name = 'dynCall_' + signature + '_' + rawFunction;\n var body = 'return function ' + name + '(' + args.join(', ') + ') {\\n';\n body +=\n ' return dynCall(rawFunction' + (args.length ? ', ' : '') + args.join(', ') + ');\\n';\n body += '};\\n';\n return new Function('dynCall', 'rawFunction', body)(dynCall, rawFunction);\n }\n var dc = Module['dynCall_' + signature];\n var fp = makeDynCaller(dc);\n if (typeof fp !== 'function') {\n throwBindingError('unknown function pointer with signature ' + signature + ': ' + rawFunction);\n }\n return fp;\n }\n var UnboundTypeError = undefined;\n function getTypeName(type) {\n var ptr = ___getTypeName(type);\n var rv = readLatin1String(ptr);\n _free(ptr);\n return rv;\n }\n function throwUnboundTypeError(message, types) {\n var unboundTypes = [];\n var seen = {};\n function visit(type) {\n if (seen[type]) {\n return;\n }\n if (registeredTypes[type]) {\n return;\n }\n if (typeDependencies[type]) {\n typeDependencies[type].forEach(visit);\n return;\n }\n unboundTypes.push(type);\n seen[type] = true;\n }\n types.forEach(visit);\n throw new UnboundTypeError(message + ': ' + unboundTypes.map(getTypeName).join([', ']));\n }\n function __embind_register_class(rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor) {\n name = readLatin1String(name);\n getActualType = embind__requireFunction(getActualTypeSignature, getActualType);\n if (upcast) {\n upcast = embind__requireFunction(upcastSignature, upcast);\n }\n if (downcast) {\n downcast = embind__requireFunction(downcastSignature, downcast);\n }\n rawDestructor = embind__requireFunction(destructorSignature, rawDestructor);\n var legalFunctionName = makeLegalFunctionName(name);\n exposePublicSymbol(legalFunctionName, function () {\n throwUnboundTypeError('Cannot construct ' + name + ' due to unbound types', [\n baseClassRawType\n ]);\n });\n whenDependentTypesAreResolved([rawType, rawPointerType, rawConstPointerType], baseClassRawType ? [baseClassRawType] : [], function (base) {\n base = base[0];\n var baseClass;\n var basePrototype;\n if (baseClassRawType) {\n baseClass = base.registeredClass;\n basePrototype = baseClass.instancePrototype;\n }\n else {\n basePrototype = ClassHandle.prototype;\n }\n var constructor = createNamedFunction(legalFunctionName, function () {\n if (Object.getPrototypeOf(this) !== instancePrototype) {\n throw new BindingError(\"Use 'new' to construct \" + name);\n }\n if (undefined === registeredClass.constructor_body) {\n throw new BindingError(name + ' has no accessible constructor');\n }\n var body = registeredClass.constructor_body[arguments.length];\n if (undefined === body) {\n throw new BindingError('Tried to invoke ctor of ' +\n name +\n ' with invalid number of parameters (' +\n arguments.length +\n ') - expected (' +\n Object.keys(registeredClass.constructor_body).toString() +\n ') parameters instead!');\n }\n return body.apply(this, arguments);\n });\n var instancePrototype = Object.create(basePrototype, {\n constructor: {\n value: constructor\n }\n });\n constructor.prototype = instancePrototype;\n var registeredClass = new RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast);\n var referenceConverter = new RegisteredPointer(name, registeredClass, true, false, false);\n var pointerConverter = new RegisteredPointer(name + '*', registeredClass, false, false, false);\n var constPointerConverter = new RegisteredPointer(name + ' const*', registeredClass, false, true, false);\n registeredPointers[rawType] = {\n pointerType: pointerConverter,\n constPointerType: constPointerConverter\n };\n replacePublicSymbol(legalFunctionName, constructor);\n return [referenceConverter, pointerConverter, constPointerConverter];\n });\n }\n function heap32VectorToArray(count, firstElement) {\n var array = [];\n for (var i = 0; i < count; i++) {\n array.push(HEAP32[(firstElement >> 2) + i]);\n }\n return array;\n }\n function runDestructors(destructors) {\n while (destructors.length) {\n var ptr = destructors.pop();\n var del = destructors.pop();\n del(ptr);\n }\n }\n function __embind_register_class_constructor(rawClassType, argCount, rawArgTypesAddr, invokerSignature, invoker, rawConstructor) {\n assert(argCount > 0);\n var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);\n invoker = embind__requireFunction(invokerSignature, invoker);\n var args = [rawConstructor];\n var destructors = [];\n whenDependentTypesAreResolved([], [rawClassType], function (classType) {\n classType = classType[0];\n var humanName = 'constructor ' + classType.name;\n if (undefined === classType.registeredClass.constructor_body) {\n classType.registeredClass.constructor_body = [];\n }\n if (undefined !== classType.registeredClass.constructor_body[argCount - 1]) {\n throw new BindingError('Cannot register multiple constructors with identical number of parameters (' +\n (argCount - 1) +\n \") for class '\" +\n classType.name +\n \"'! Overload resolution is currently only performed using the parameter count, not actual type info!\");\n }\n classType.registeredClass.constructor_body[argCount - 1] = function unboundTypeHandler() {\n throwUnboundTypeError('Cannot construct ' + classType.name + ' due to unbound types', rawArgTypes);\n };\n whenDependentTypesAreResolved([], rawArgTypes, function (argTypes) {\n classType.registeredClass.constructor_body[argCount - 1] = function constructor_body() {\n if (arguments.length !== argCount - 1) {\n throwBindingError(humanName +\n ' called with ' +\n arguments.length +\n ' arguments, expected ' +\n (argCount - 1));\n }\n destructors.length = 0;\n args.length = argCount;\n for (var i = 1; i < argCount; ++i) {\n args[i] = argTypes[i]['toWireType'](destructors, arguments[i - 1]);\n }\n var ptr = invoker.apply(null, args);\n runDestructors(destructors);\n return argTypes[0]['fromWireType'](ptr);\n };\n return [];\n });\n return [];\n });\n }\n function new_(constructor, argumentList) {\n if (!(constructor instanceof Function)) {\n throw new TypeError('new_ called with constructor type ' + typeof constructor + ' which is not a function');\n }\n var dummy = createNamedFunction(constructor.name || 'unknownFunctionName', function () { });\n dummy.prototype = constructor.prototype;\n var obj = new dummy();\n var r = constructor.apply(obj, argumentList);\n return r instanceof Object ? r : obj;\n }\n function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc) {\n var argCount = argTypes.length;\n if (argCount < 2) {\n throwBindingError(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");\n }\n var isClassMethodFunc = argTypes[1] !== null && classType !== null;\n var needsDestructorStack = false;\n for (var i = 1; i < argTypes.length; ++i) {\n if (argTypes[i] !== null && argTypes[i].destructorFunction === undefined) {\n needsDestructorStack = true;\n break;\n }\n }\n var returns = argTypes[0].name !== 'void';\n var argsList = '';\n var argsListWired = '';\n for (var i = 0; i < argCount - 2; ++i) {\n argsList += (i !== 0 ? ', ' : '') + 'arg' + i;\n argsListWired += (i !== 0 ? ', ' : '') + 'arg' + i + 'Wired';\n }\n var invokerFnBody = 'return function ' +\n makeLegalFunctionName(humanName) +\n '(' +\n argsList +\n ') {\\n' +\n 'if (arguments.length !== ' +\n (argCount - 2) +\n ') {\\n' +\n \"throwBindingError('function \" +\n humanName +\n \" called with ' + arguments.length + ' arguments, expected \" +\n (argCount - 2) +\n \" args!');\\n\" +\n '}\\n';\n if (needsDestructorStack) {\n invokerFnBody += 'var destructors = [];\\n';\n }\n var dtorStack = needsDestructorStack ? 'destructors' : 'null';\n var args1 = ['throwBindingError', 'invoker', 'fn', 'runDestructors', 'retType', 'classParam'];\n var args2 = [\n throwBindingError,\n cppInvokerFunc,\n cppTargetFunc,\n runDestructors,\n argTypes[0],\n argTypes[1]\n ];\n if (isClassMethodFunc) {\n invokerFnBody += 'var thisWired = classParam.toWireType(' + dtorStack + ', this);\\n';\n }\n for (var i = 0; i < argCount - 2; ++i) {\n invokerFnBody +=\n 'var arg' +\n i +\n 'Wired = argType' +\n i +\n '.toWireType(' +\n dtorStack +\n ', arg' +\n i +\n '); // ' +\n argTypes[i + 2].name +\n '\\n';\n args1.push('argType' + i);\n args2.push(argTypes[i + 2]);\n }\n if (isClassMethodFunc) {\n argsListWired = 'thisWired' + (argsListWired.length > 0 ? ', ' : '') + argsListWired;\n }\n invokerFnBody +=\n (returns ? 'var rv = ' : '') +\n 'invoker(fn' +\n (argsListWired.length > 0 ? ', ' : '') +\n argsListWired +\n ');\\n';\n if (needsDestructorStack) {\n invokerFnBody += 'runDestructors(destructors);\\n';\n }\n else {\n for (var i = isClassMethodFunc ? 1 : 2; i < argTypes.length; ++i) {\n var paramName = i === 1 ? 'thisWired' : 'arg' + (i - 2) + 'Wired';\n if (argTypes[i].destructorFunction !== null) {\n invokerFnBody += paramName + '_dtor(' + paramName + '); // ' + argTypes[i].name + '\\n';\n args1.push(paramName + '_dtor');\n args2.push(argTypes[i].destructorFunction);\n }\n }\n }\n if (returns) {\n invokerFnBody += 'var ret = retType.fromWireType(rv);\\n' + 'return ret;\\n';\n }\n else {\n }\n invokerFnBody += '}\\n';\n args1.push(invokerFnBody);\n var invokerFunction = new_(Function, args1).apply(null, args2);\n return invokerFunction;\n }\n function __embind_register_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual) {\n var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);\n methodName = readLatin1String(methodName);\n rawInvoker = embind__requireFunction(invokerSignature, rawInvoker);\n whenDependentTypesAreResolved([], [rawClassType], function (classType) {\n classType = classType[0];\n var humanName = classType.name + '.' + methodName;\n if (isPureVirtual) {\n classType.registeredClass.pureVirtualFunctions.push(methodName);\n }\n function unboundTypesHandler() {\n throwUnboundTypeError('Cannot call ' + humanName + ' due to unbound types', rawArgTypes);\n }\n var proto = classType.registeredClass.instancePrototype;\n var method = proto[methodName];\n if (undefined === method ||\n (undefined === method.overloadTable &&\n method.className !== classType.name &&\n method.argCount === argCount - 2)) {\n unboundTypesHandler.argCount = argCount - 2;\n unboundTypesHandler.className = classType.name;\n proto[methodName] = unboundTypesHandler;\n }\n else {\n ensureOverloadTable(proto, methodName, humanName);\n proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler;\n }\n whenDependentTypesAreResolved([], rawArgTypes, function (argTypes) {\n var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context);\n if (undefined === proto[methodName].overloadTable) {\n memberFunction.argCount = argCount - 2;\n proto[methodName] = memberFunction;\n }\n else {\n proto[methodName].overloadTable[argCount - 2] = memberFunction;\n }\n return [];\n });\n return [];\n });\n }\n var emval_free_list = [];\n var emval_handle_array = [\n {},\n {\n value: undefined\n },\n {\n value: null\n },\n {\n value: true\n },\n {\n value: false\n }\n ];\n function __emval_decref(handle) {\n if (handle > 4 && 0 === --emval_handle_array[handle].refcount) {\n emval_handle_array[handle] = undefined;\n emval_free_list.push(handle);\n }\n }\n function count_emval_handles() {\n var count = 0;\n for (var i = 5; i < emval_handle_array.length; ++i) {\n if (emval_handle_array[i] !== undefined) {\n ++count;\n }\n }\n return count;\n }\n function get_first_emval() {\n for (var i = 5; i < emval_handle_array.length; ++i) {\n if (emval_handle_array[i] !== undefined) {\n return emval_handle_array[i];\n }\n }\n return null;\n }\n function init_emval() {\n Module['count_emval_handles'] = count_emval_handles;\n Module['get_first_emval'] = get_first_emval;\n }\n function __emval_register(value) {\n switch (value) {\n case undefined: {\n return 1;\n }\n case null: {\n return 2;\n }\n case true: {\n return 3;\n }\n case false: {\n return 4;\n }\n default: {\n var handle = emval_free_list.length ? emval_free_list.pop() : emval_handle_array.length;\n emval_handle_array[handle] = {\n refcount: 1,\n value: value\n };\n return handle;\n }\n }\n }\n function __embind_register_emval(rawType, name) {\n name = readLatin1String(name);\n registerType(rawType, {\n name: name,\n fromWireType: function (handle) {\n var rv = emval_handle_array[handle].value;\n __emval_decref(handle);\n return rv;\n },\n toWireType: function (destructors, value) {\n return __emval_register(value);\n },\n argPackAdvance: 8,\n readValueFromPointer: simpleReadValueFromPointer,\n destructorFunction: null\n });\n }\n function _embind_repr(v) {\n if (v === null) {\n return 'null';\n }\n var t = typeof v;\n if (t === 'object' || t === 'array' || t === 'function') {\n return v.toString();\n }\n else {\n return '' + v;\n }\n }\n function floatReadValueFromPointer(name, shift) {\n switch (shift) {\n case 2:\n return function (pointer) {\n return this['fromWireType'](HEAPF32[pointer >> 2]);\n };\n case 3:\n return function (pointer) {\n return this['fromWireType'](HEAPF64[pointer >> 3]);\n };\n default:\n throw new TypeError('Unknown float type: ' + name);\n }\n }\n function __embind_register_float(rawType, name, size) {\n var shift = getShiftFromSize(size);\n name = readLatin1String(name);\n registerType(rawType, {\n name: name,\n fromWireType: function (value) {\n return value;\n },\n toWireType: function (destructors, value) {\n if (typeof value !== 'number' && typeof value !== 'boolean') {\n throw new TypeError('Cannot convert \"' + _embind_repr(value) + '\" to ' + this.name);\n }\n return value;\n },\n argPackAdvance: 8,\n readValueFromPointer: floatReadValueFromPointer(name, shift),\n destructorFunction: null\n });\n }\n function integerReadValueFromPointer(name, shift, signed) {\n switch (shift) {\n case 0:\n return signed\n ? function readS8FromPointer(pointer) {\n return HEAP8[pointer];\n }\n : function readU8FromPointer(pointer) {\n return HEAPU8[pointer];\n };\n case 1:\n return signed\n ? function readS16FromPointer(pointer) {\n return HEAP16[pointer >> 1];\n }\n : function readU16FromPointer(pointer) {\n return HEAPU16[pointer >> 1];\n };\n case 2:\n return signed\n ? function readS32FromPointer(pointer) {\n return HEAP32[pointer >> 2];\n }\n : function readU32FromPointer(pointer) {\n return HEAPU32[pointer >> 2];\n };\n default:\n throw new TypeError('Unknown integer type: ' + name);\n }\n }\n function __embind_register_integer(primitiveType, name, size, minRange, maxRange) {\n name = readLatin1String(name);\n if (maxRange === -1) {\n maxRange = 4294967295;\n }\n var shift = getShiftFromSize(size);\n var fromWireType = function (value) {\n return value;\n };\n if (minRange === 0) {\n var bitshift = 32 - 8 * size;\n fromWireType = function (value) {\n return (value << bitshift) >>> bitshift;\n };\n }\n var isUnsignedType = name.indexOf('unsigned') != -1;\n registerType(primitiveType, {\n name: name,\n fromWireType: fromWireType,\n toWireType: function (destructors, value) {\n if (typeof value !== 'number' && typeof value !== 'boolean') {\n throw new TypeError('Cannot convert \"' + _embind_repr(value) + '\" to ' + this.name);\n }\n if (value < minRange || value > maxRange) {\n throw new TypeError('Passing a number \"' +\n _embind_repr(value) +\n '\" from JS side to C/C++ side to an argument of type \"' +\n name +\n '\", which is outside the valid range [' +\n minRange +\n ', ' +\n maxRange +\n ']!');\n }\n return isUnsignedType ? value >>> 0 : value | 0;\n },\n argPackAdvance: 8,\n readValueFromPointer: integerReadValueFromPointer(name, shift, minRange !== 0),\n destructorFunction: null\n });\n }\n function __embind_register_memory_view(rawType, dataTypeIndex, name) {\n var typeMapping = [\n Int8Array,\n Uint8Array,\n Int16Array,\n Uint16Array,\n Int32Array,\n Uint32Array,\n Float32Array,\n Float64Array\n ];\n var TA = typeMapping[dataTypeIndex];\n function decodeMemoryView(handle) {\n handle = handle >> 2;\n var heap = HEAPU32;\n var size = heap[handle];\n var data = heap[handle + 1];\n return new TA(buffer, data, size);\n }\n name = readLatin1String(name);\n registerType(rawType, {\n name: name,\n fromWireType: decodeMemoryView,\n argPackAdvance: 8,\n readValueFromPointer: decodeMemoryView\n }, {\n ignoreDuplicateRegistrations: true\n });\n }\n function __embind_register_std_string(rawType, name) {\n name = readLatin1String(name);\n var stdStringIsUTF8 = name === 'std::string';\n registerType(rawType, {\n name: name,\n fromWireType: function (value) {\n var length = HEAPU32[value >> 2];\n var str;\n if (stdStringIsUTF8) {\n var decodeStartPtr = value + 4;\n for (var i = 0; i <= length; ++i) {\n var currentBytePtr = value + 4 + i;\n if (HEAPU8[currentBytePtr] == 0 || i == length) {\n var maxRead = currentBytePtr - decodeStartPtr;\n var stringSegment = UTF8ToString(decodeStartPtr, maxRead);\n if (str === undefined) {\n str = stringSegment;\n }\n else {\n str += String.fromCharCode(0);\n str += stringSegment;\n }\n decodeStartPtr = currentBytePtr + 1;\n }\n }\n }\n else {\n var a = new Array(length);\n for (var i = 0; i < length; ++i) {\n a[i] = String.fromCharCode(HEAPU8[value + 4 + i]);\n }\n str = a.join('');\n }\n _free(value);\n return str;\n },\n toWireType: function (destructors, value) {\n if (value instanceof ArrayBuffer) {\n value = new Uint8Array(value);\n }\n var getLength;\n var valueIsOfTypeString = typeof value === 'string';\n if (!(valueIsOfTypeString ||\n value instanceof Uint8Array ||\n value instanceof Uint8ClampedArray ||\n value instanceof Int8Array)) {\n throwBindingError('Cannot pass non-string to std::string');\n }\n if (stdStringIsUTF8 && valueIsOfTypeString) {\n getLength = function () {\n return lengthBytesUTF8(value);\n };\n }\n else {\n getLength = function () {\n return value.length;\n };\n }\n var length = getLength();\n var ptr = _malloc(4 + length + 1);\n HEAPU32[ptr >> 2] = length;\n if (stdStringIsUTF8 && valueIsOfTypeString) {\n stringToUTF8(value, ptr + 4, length + 1);\n }\n else {\n if (valueIsOfTypeString) {\n for (var i = 0; i < length; ++i) {\n var charCode = value.charCodeAt(i);\n if (charCode > 255) {\n _free(ptr);\n throwBindingError('String has UTF-16 code units that do not fit in 8 bits');\n }\n HEAPU8[ptr + 4 + i] = charCode;\n }\n }\n else {\n for (var i = 0; i < length; ++i) {\n HEAPU8[ptr + 4 + i] = value[i];\n }\n }\n }\n if (destructors !== null) {\n destructors.push(_free, ptr);\n }\n return ptr;\n },\n argPackAdvance: 8,\n readValueFromPointer: simpleReadValueFromPointer,\n destructorFunction: function (ptr) {\n _free(ptr);\n }\n });\n }\n function __embind_register_std_wstring(rawType, charSize, name) {\n name = readLatin1String(name);\n var decodeString, encodeString, getHeap, lengthBytesUTF, shift;\n if (charSize === 2) {\n decodeString = UTF16ToString;\n encodeString = stringToUTF16;\n lengthBytesUTF = lengthBytesUTF16;\n getHeap = function () {\n return HEAPU16;\n };\n shift = 1;\n }\n else if (charSize === 4) {\n decodeString = UTF32ToString;\n encodeString = stringToUTF32;\n lengthBytesUTF = lengthBytesUTF32;\n getHeap = function () {\n return HEAPU32;\n };\n shift = 2;\n }\n registerType(rawType, {\n name: name,\n fromWireType: function (value) {\n var length = HEAPU32[value >> 2];\n var HEAP = getHeap();\n var str;\n var decodeStartPtr = value + 4;\n for (var i = 0; i <= length; ++i) {\n var currentBytePtr = value + 4 + i * charSize;\n if (HEAP[currentBytePtr >> shift] == 0 || i == length) {\n var maxReadBytes = currentBytePtr - decodeStartPtr;\n var stringSegment = decodeString(decodeStartPtr, maxReadBytes);\n if (str === undefined) {\n str = stringSegment;\n }\n else {\n str += String.fromCharCode(0);\n str += stringSegment;\n }\n decodeStartPtr = currentBytePtr + charSize;\n }\n }\n _free(value);\n return str;\n },\n toWireType: function (destructors, value) {\n if (!(typeof value === 'string')) {\n throwBindingError('Cannot pass non-string to C++ string type ' + name);\n }\n var length = lengthBytesUTF(value);\n var ptr = _malloc(4 + length + charSize);\n HEAPU32[ptr >> 2] = length >> shift;\n encodeString(value, ptr + 4, length + charSize);\n if (destructors !== null) {\n destructors.push(_free, ptr);\n }\n return ptr;\n },\n argPackAdvance: 8,\n readValueFromPointer: simpleReadValueFromPointer,\n destructorFunction: function (ptr) {\n _free(ptr);\n }\n });\n }\n function __embind_register_void(rawType, name) {\n name = readLatin1String(name);\n registerType(rawType, {\n isVoid: true,\n name: name,\n argPackAdvance: 0,\n fromWireType: function () {\n return undefined;\n },\n toWireType: function (destructors, o) {\n return undefined;\n }\n });\n }\n function _abort() {\n abort();\n }\n function _emscripten_get_heap_size() {\n return HEAPU8.length;\n }\n function abortOnCannotGrowMemory(requestedSize) {\n abort('OOM');\n }\n function _emscripten_resize_heap(requestedSize) {\n requestedSize = requestedSize >>> 0;\n abortOnCannotGrowMemory(requestedSize);\n }\n function _llvm_trap() {\n abort('trap!');\n }\n function _emscripten_memcpy_big(dest, src, num) {\n HEAPU8.copyWithin(dest, src, src + num);\n }\n embind_init_charCodes();\n BindingError = Module['BindingError'] = extendError(Error, 'BindingError');\n InternalError = Module['InternalError'] = extendError(Error, 'InternalError');\n init_ClassHandle();\n init_RegisteredPointer();\n init_embind();\n UnboundTypeError = Module['UnboundTypeError'] = extendError(Error, 'UnboundTypeError');\n init_emval();\n var ASSERTIONS = false;\n function intArrayToString(array) {\n var ret = [];\n for (var i = 0; i < array.length; i++) {\n var chr = array[i];\n if (chr > 255) {\n if (ASSERTIONS) {\n assert(false, 'Character code ' +\n chr +\n ' (' +\n String.fromCharCode(chr) +\n ') at offset ' +\n i +\n ' not in 0x00-0xFF.');\n }\n chr &= 255;\n }\n ret.push(String.fromCharCode(chr));\n }\n return ret.join('');\n }\n var decodeBase64 = typeof atob === 'function'\n ? atob\n : function (input) {\n var keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var output = '';\n var chr1, chr2, chr3;\n var enc1, enc2, enc3, enc4;\n var i = 0;\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, '');\n do {\n enc1 = keyStr.indexOf(input.charAt(i++));\n enc2 = keyStr.indexOf(input.charAt(i++));\n enc3 = keyStr.indexOf(input.charAt(i++));\n enc4 = keyStr.indexOf(input.charAt(i++));\n chr1 = (enc1 << 2) | (enc2 >> 4);\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\n chr3 = ((enc3 & 3) << 6) | enc4;\n output = output + String.fromCharCode(chr1);\n if (enc3 !== 64) {\n output = output + String.fromCharCode(chr2);\n }\n if (enc4 !== 64) {\n output = output + String.fromCharCode(chr3);\n }\n } while (i < input.length);\n return output;\n };\n function intArrayFromBase64(s) {\n if (typeof ENVIRONMENT_IS_NODE === 'boolean' && ENVIRONMENT_IS_NODE) {\n var buf;\n try {\n buf = Buffer.from(s, 'base64');\n }\n catch (_) {\n buf = new Buffer(s, 'base64');\n }\n return new Uint8Array(buf['buffer'], buf['byteOffset'], buf['byteLength']);\n }\n try {\n var decoded = decodeBase64(s);\n var bytes = new Uint8Array(decoded.length);\n for (var i = 0; i < decoded.length; ++i) {\n bytes[i] = decoded.charCodeAt(i);\n }\n return bytes;\n }\n catch (_) {\n throw new Error('Converting base64 string to bytes failed.');\n }\n }\n function tryParseAsDataURI(filename) {\n if (!isDataURI(filename)) {\n return;\n }\n return intArrayFromBase64(filename.slice(dataURIPrefix.length));\n }\n var asmGlobalArg = {\n Math: Math,\n Int8Array: Int8Array,\n Int16Array: Int16Array,\n Int32Array: Int32Array,\n Uint8Array: Uint8Array,\n Uint16Array: Uint16Array,\n Float32Array: Float32Array,\n Float64Array: Float64Array\n };\n var asmLibraryArg = {\n A: _emscripten_memcpy_big,\n B: _emscripten_resize_heap,\n C: _llvm_trap,\n D: tempDoublePtr,\n a: abort,\n b: setTempRet0,\n c: getTempRet0,\n d: ___cxa_allocate_exception,\n e: ___cxa_begin_catch,\n f: ___cxa_throw,\n g: ___cxa_uncaught_exceptions,\n h: ___exception_addRef,\n i: ___exception_deAdjust,\n j: ___gxx_personality_v0,\n k: __embind_register_bool,\n l: __embind_register_class,\n m: __embind_register_class_constructor,\n n: __embind_register_class_function,\n o: __embind_register_emval,\n p: __embind_register_float,\n q: __embind_register_integer,\n r: __embind_register_memory_view,\n s: __embind_register_std_string,\n t: __embind_register_std_wstring,\n u: __embind_register_void,\n v: __emval_decref,\n w: __emval_register,\n x: _abort,\n y: _embind_repr,\n z: _emscripten_get_heap_size\n }; // EMSCRIPTEN_START_ASM\n var asm = /** @suppress {uselessCode} */ (function (global, env, buffer) {\n 'use asm';\n var a = new global.Int8Array(buffer), b = new global.Int16Array(buffer), c = new global.Int32Array(buffer), d = new global.Uint8Array(buffer), e = new global.Uint16Array(buffer), f = new global.Float32Array(buffer), g = new global.Float64Array(buffer), h = env.D | 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0.0, q = global.Math.imul, r = global.Math.clz32, s = env.a, t = env.b, u = env.c, v = env.d, w = env.e, x = env.f, y = env.g, z = env.h, A = env.i, B = env.j, C = env.k, D = env.l, E = env.m, F = env.n, G = env.o, H = env.p, I = env.q, J = env.r, K = env.s, L = env.t, M = env.u, N = env.v, O = env.w, P = env.x, Q = env.y, R = env.z, S = env.A, T = env.B, U = env.C, V = 22384, W = 5265264, X = 0.0;\n // EMSCRIPTEN_START_FUNCS\n function ia() {\n em();\n fm();\n }\n function ja() {\n ka(0);\n return;\n }\n function ka(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0;\n a = V;\n V = (V + 16) | 0;\n b = (a + 8) | 0;\n d = a;\n vk();\n m = xk() | 0;\n g = yk() | 0;\n f = Ak() | 0;\n h = Bk() | 0;\n i = Ck() | 0;\n j = Dk() | 0;\n k = Jk() | 0;\n l = Kk() | 0;\n e = Kk() | 0;\n D(f | 0, h | 0, i | 0, j | 0, k | 0, 9, l | 0, m | 0, e | 0, g | 0, 6204, Lk() | 0, 138);\n Nk(1);\n c[d >> 2] = 5;\n c[(d + 4) >> 2] = 0;\n c[b >> 2] = c[d >> 2];\n c[(b + 4) >> 2] = c[(d + 4) >> 2];\n Uk(6211, b);\n c[d >> 2] = 3;\n c[(d + 4) >> 2] = 0;\n c[b >> 2] = c[d >> 2];\n c[(b + 4) >> 2] = c[(d + 4) >> 2];\n cl(6216, b);\n c[d >> 2] = 10;\n c[(d + 4) >> 2] = 0;\n c[b >> 2] = c[d >> 2];\n c[(b + 4) >> 2] = c[(d + 4) >> 2];\n kl(6225, b);\n sl();\n g = ul() | 0;\n e = vl() | 0;\n m = xl() | 0;\n l = yl() | 0;\n k = zl() | 0;\n j = Dk() | 0;\n i = Jk() | 0;\n h = Kk() | 0;\n f = Kk() | 0;\n D(m | 0, l | 0, k | 0, j | 0, i | 0, 11, h | 0, g | 0, f | 0, e | 0, 6234, Lk() | 0, 139);\n Gl(2);\n c[d >> 2] = 6;\n c[(d + 4) >> 2] = 0;\n c[b >> 2] = c[d >> 2];\n c[(b + 4) >> 2] = c[(d + 4) >> 2];\n Nl(6211, b);\n c[d >> 2] = 4;\n c[(d + 4) >> 2] = 0;\n c[b >> 2] = c[d >> 2];\n c[(b + 4) >> 2] = c[(d + 4) >> 2];\n Ul(6248, b);\n c[d >> 2] = 5;\n c[(d + 4) >> 2] = 0;\n c[b >> 2] = c[d >> 2];\n c[(b + 4) >> 2] = c[(d + 4) >> 2];\n Ul(6265, b);\n c[d >> 2] = 6;\n c[(d + 4) >> 2] = 0;\n c[b >> 2] = c[d >> 2];\n c[(b + 4) >> 2] = c[(d + 4) >> 2];\n Ul(6280, b);\n c[d >> 2] = 7;\n c[(d + 4) >> 2] = 0;\n c[b >> 2] = c[d >> 2];\n c[(b + 4) >> 2] = c[(d + 4) >> 2];\n _l(6216, b);\n V = a;\n return;\n }\n function la(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0, g = 0, h = 0, i = 0;\n e = V;\n V = (V + 32) | 0;\n h = (e + 16) | 0;\n f = (e + 8) | 0;\n i = e;\n g = eq(20) | 0;\n ta(g, b, d);\n c[i >> 2] = 0;\n c[h >> 2] = c[i >> 2];\n va(f, g, h);\n b = c[f >> 2] | 0;\n c[f >> 2] = c[a >> 2];\n c[a >> 2] = b;\n b = (f + 4) | 0;\n d = (a + 4) | 0;\n g = c[b >> 2] | 0;\n c[b >> 2] = c[d >> 2];\n c[d >> 2] = g;\n wa(f);\n d = eq(352) | 0;\n ua(d, c[a >> 2] | 0);\n g = (a + 8) | 0;\n c[i >> 2] = 0;\n c[h >> 2] = c[i >> 2];\n Fa(f, d, h);\n d = c[f >> 2] | 0;\n c[f >> 2] = c[g >> 2];\n c[g >> 2] = d;\n g = (f + 4) | 0;\n d = (a + 12) | 0;\n b = c[g >> 2] | 0;\n c[g >> 2] = c[d >> 2];\n c[d >> 2] = b;\n Ga(f);\n V = e;\n return;\n }\n function ma(a, b) {\n a = a | 0;\n b = b | 0;\n dd(c[(a + 8) >> 2] | 0, b);\n return;\n }\n function na(a) {\n a = a | 0;\n a = ((Qh(c[(a + 8) >> 2] | 0) | 0) + 107) | 0;\n return (d[a >> 0] | (d[(a + 1) >> 0] << 8) | (d[(a + 2) >> 0] << 16) | (d[(a + 3) >> 0] << 24) | 0);\n }\n function oa(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0, g = 0, h = 0, i = 0;\n e = V;\n V = (V + 32) | 0;\n g = (e + 16) | 0;\n f = (e + 8) | 0;\n h = e;\n i = eq(12) | 0;\n Rh(i, b, d);\n c[h >> 2] = 0;\n c[g >> 2] = c[h >> 2];\n Vh(f, i, g);\n i = c[f >> 2] | 0;\n c[f >> 2] = c[a >> 2];\n c[a >> 2] = i;\n i = (f + 4) | 0;\n d = (a + 4) | 0;\n b = c[i >> 2] | 0;\n c[i >> 2] = c[d >> 2];\n c[d >> 2] = b;\n Wh(f);\n d = (a + 8) | 0;\n b = eq(12) | 0;\n Sh(b, c[a >> 2] | 0);\n c[h >> 2] = 0;\n c[g >> 2] = c[h >> 2];\n ai(f, b, g);\n b = c[f >> 2] | 0;\n c[f >> 2] = c[d >> 2];\n c[d >> 2] = b;\n b = (f + 4) | 0;\n h = (a + 12) | 0;\n i = c[b >> 2] | 0;\n c[b >> 2] = c[h >> 2];\n c[h >> 2] = i;\n bi(f);\n Th(f, c[d >> 2] | 0);\n d = (a + 16) | 0;\n h = c[f >> 2] | 0;\n i = (f + 4) | 0;\n b = c[i >> 2] | 0;\n c[f >> 2] = 0;\n c[i >> 2] = 0;\n c[g >> 2] = c[d >> 2];\n c[d >> 2] = h;\n d = (a + 20) | 0;\n c[(g + 4) >> 2] = c[d >> 2];\n c[d >> 2] = b;\n Uh(g);\n Uh(f);\n V = e;\n return;\n }\n function pa(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0;\n a = (a + 16) | 0;\n d = c[a >> 2] | 0;\n a: do\n if (d | 0)\n switch (b | 0) {\n case 4: {\n ui(d);\n break a;\n }\n case 8: {\n vi(d);\n vi(c[a >> 2] | 0);\n break a;\n }\n default:\n break a;\n }\n while (0);\n return;\n }\n function qa(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0;\n d = (a + 16) | 0;\n a = c[d >> 2] | 0;\n a: do\n if (a | 0) {\n switch (b | 0) {\n case 1: {\n hj(a);\n break a;\n }\n case 2: {\n ij(a);\n break a;\n }\n case 8: {\n ui(a);\n a = c[d >> 2] | 0;\n break;\n }\n case 4:\n break;\n default:\n break a;\n }\n ui(a);\n }\n while (0);\n return;\n }\n function ra(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0;\n d = (a + 16) | 0;\n a = c[d >> 2] | 0;\n a: do\n if (a | 0) {\n switch (b | 0) {\n case 1: {\n Rj(a);\n break a;\n }\n case 2: {\n Sj(a);\n break a;\n }\n case 8: {\n vi(a);\n a = c[d >> 2] | 0;\n break;\n }\n case 4:\n break;\n default:\n break a;\n }\n vi(a);\n }\n while (0);\n return;\n }\n function sa(a, b) {\n a = a | 0;\n b = b | 0;\n a = c[(a + 16) >> 2] | 0;\n if (a | 0)\n $[c[c[a >> 2] >> 2] & 63](a, b) | 0;\n return;\n }\n function ta(b, d, e) {\n b = b | 0;\n d = d | 0;\n e = e | 0;\n c[b >> 2] = d;\n c[(b + 4) >> 2] = e;\n c[(b + 8) >> 2] = 0;\n a[(b + 12) >> 0] = 0;\n a[(b + 13) >> 0] = 0;\n c[(b + 16) >> 2] = 0;\n return;\n }\n function ua(a, b) {\n a = a | 0;\n b = b | 0;\n c[a >> 2] = b;\n Va((a + 4) | 0, b);\n Wa((a + 247) | 0);\n c[(a + 288) >> 2] = 0;\n c[(a + 292) >> 2] = 0;\n c[(a + 296) >> 2] = 0;\n Xa((a + 300) | 0);\n b = (a + 312) | 0;\n c[b >> 2] = 0;\n c[(b + 4) >> 2] = 0;\n c[(b + 8) >> 2] = 0;\n c[(b + 12) >> 2] = 0;\n Ya((a + 328) | 0);\n Za(a);\n return;\n }\n function va(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n d = V;\n V = (V + 16) | 0;\n e = d;\n c[a >> 2] = b;\n f = eq(16) | 0;\n c[(f + 4) >> 2] = 0;\n c[(f + 8) >> 2] = 0;\n c[f >> 2] = 4296;\n c[(f + 12) >> 2] = b;\n c[(a + 4) >> 2] = f;\n c[e >> 2] = b;\n c[(e + 4) >> 2] = b;\n xa(a, e);\n V = d;\n return;\n }\n function wa(a) {\n a = a | 0;\n var b = 0, d = 0;\n a = c[(a + 4) >> 2] | 0;\n if (a | 0 ? ((d = (a + 4) | 0), (b = c[d >> 2] | 0), (c[d >> 2] = b + -1), (b | 0) == 0) : 0) {\n ca[c[((c[a >> 2] | 0) + 8) >> 2] & 255](a);\n qq(a);\n }\n return;\n }\n function xa(a, b) {\n a = a | 0;\n b = b | 0;\n return;\n }\n function ya(a) {\n a = a | 0;\n w(a | 0) | 0;\n lp();\n }\n function za(a) {\n a = a | 0;\n pq(a);\n jp(a);\n return;\n }\n function Aa(a) {\n a = a | 0;\n a = c[(a + 12) >> 2] | 0;\n if (a | 0)\n jp(a);\n return;\n }\n function Ba(a, b) {\n a = a | 0;\n b = b | 0;\n return ((c[(b + 4) >> 2] | 0) == 6407 ? (a + 12) | 0 : 0) | 0;\n }\n function Ca(a) {\n a = a | 0;\n Da(a, 16);\n return;\n }\n function Da(a, b) {\n a = a | 0;\n b = b | 0;\n Ea(a);\n return;\n }\n function Ea(a) {\n a = a | 0;\n jp(a);\n return;\n }\n function Fa(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n d = V;\n V = (V + 16) | 0;\n e = d;\n c[a >> 2] = b;\n f = eq(16) | 0;\n c[(f + 4) >> 2] = 0;\n c[(f + 8) >> 2] = 0;\n c[f >> 2] = 4324;\n c[(f + 12) >> 2] = b;\n c[(a + 4) >> 2] = f;\n c[e >> 2] = b;\n c[(e + 4) >> 2] = b;\n Ha(a, e);\n V = d;\n return;\n }\n function Ga(a) {\n a = a | 0;\n var b = 0, d = 0;\n a = c[(a + 4) >> 2] | 0;\n if (a | 0 ? ((d = (a + 4) | 0), (b = c[d >> 2] | 0), (c[d >> 2] = b + -1), (b | 0) == 0) : 0) {\n ca[c[((c[a >> 2] | 0) + 8) >> 2] & 255](a);\n qq(a);\n }\n return;\n }\n function Ha(a, b) {\n a = a | 0;\n b = b | 0;\n return;\n }\n function Ia(a) {\n a = a | 0;\n pq(a);\n jp(a);\n return;\n }\n function Ja(a) {\n a = a | 0;\n a = c[(a + 12) >> 2] | 0;\n if (a | 0) {\n Ma(a);\n jp(a);\n }\n return;\n }\n function Ka(a, b) {\n a = a | 0;\n b = b | 0;\n return ((c[(b + 4) >> 2] | 0) == 6605 ? (a + 12) | 0 : 0) | 0;\n }\n function La(a) {\n a = a | 0;\n Da(a, 16);\n return;\n }\n function Ma(a) {\n a = a | 0;\n Na((a + 320) | 0);\n Oa((a + 312) | 0);\n Pa((a + 300) | 0);\n Ta((a + 288) | 0);\n Qa((a + 247) | 0);\n Ra((a + 4) | 0);\n return;\n }\n function Na(a) {\n a = a | 0;\n var b = 0, d = 0;\n a = c[(a + 4) >> 2] | 0;\n if (a | 0 ? ((d = (a + 4) | 0), (b = c[d >> 2] | 0), (c[d >> 2] = b + -1), (b | 0) == 0) : 0) {\n ca[c[((c[a >> 2] | 0) + 8) >> 2] & 255](a);\n qq(a);\n }\n return;\n }\n function Oa(a) {\n a = a | 0;\n var b = 0, d = 0;\n a = c[(a + 4) >> 2] | 0;\n if (a | 0 ? ((d = (a + 4) | 0), (b = c[d >> 2] | 0), (c[d >> 2] = b + -1), (b | 0) == 0) : 0) {\n ca[c[((c[a >> 2] | 0) + 8) >> 2] & 255](a);\n qq(a);\n }\n return;\n }\n function Pa(a) {\n a = a | 0;\n Sa(a);\n return;\n }\n function Qa(a) {\n a = a | 0;\n a = (a + 34) | 0;\n a = d[a >> 0] | (d[(a + 1) >> 0] << 8) | (d[(a + 2) >> 0] << 16) | (d[(a + 3) >> 0] << 24);\n if (a | 0)\n gq(a);\n return;\n }\n function Ra(a) {\n a = a | 0;\n Ua(c[(a + 12) >> 2] | 0);\n return;\n }\n function Sa(a) {\n a = a | 0;\n var b = 0, d = 0;\n b = c[a >> 2] | 0;\n d = b;\n if (b | 0) {\n c[(a + 4) >> 2] = d;\n Da(b, ((c[(a + 8) >> 2] | 0) - d) | 0);\n }\n return;\n }\n function Ta(a) {\n a = a | 0;\n var b = 0, d = 0;\n b = c[a >> 2] | 0;\n d = b;\n if (b | 0) {\n c[(a + 4) >> 2] = d;\n Da(b, ((c[(a + 8) >> 2] | 0) - d) | 0);\n }\n return;\n }\n function Ua(a) {\n a = a | 0;\n er(c[(a + -4) >> 2] | 0);\n return;\n }\n function Va(a, b) {\n a = a | 0;\n b = b | 0;\n c[a >> 2] = b;\n c[(a + 4) >> 2] = 0;\n c[(a + 8) >> 2] = 0;\n c[(a + 12) >> 2] = _a(1048576) | 0;\n return;\n }\n function Wa(b) {\n b = b | 0;\n var c = 0;\n c = (b + 32) | 0;\n a[c >> 0] = 0;\n a[(c + 1) >> 0] = 0;\n b = (b + 34) | 0;\n a[b >> 0] = 0;\n a[(b + 1) >> 0] = 0;\n a[(b + 2) >> 0] = 0;\n a[(b + 3) >> 0] = 0;\n return;\n }\n function Xa(a) {\n a = a | 0;\n c[a >> 2] = 0;\n c[(a + 4) >> 2] = 0;\n c[(a + 8) >> 2] = 0;\n return;\n }\n function Ya(a) {\n a = a | 0;\n c[a >> 2] = 0;\n c[(a + 4) >> 2] = 0;\n c[(a + 8) >> 2] = 0;\n c[(a + 12) >> 2] = 0;\n a = (a + 16) | 0;\n c[a >> 2] = -1;\n c[(a + 4) >> 2] = -1;\n return;\n }\n function Za(b) {\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0;\n i = V;\n V = (V + 64) | 0;\n g = (i + 32) | 0;\n e = (i + 56) | 0;\n d = (i + 16) | 0;\n h = i;\n $a(c[b >> 2] | 0, e, 4);\n mb(g, e, (e + 4) | 0);\n e = lb(6693) | 0;\n f = a[(g + 11) >> 0] | 0;\n if ((e | 0) == (((f << 24) >> 24 < 0 ? c[(g + 4) >> 2] | 0 : f & 255) | 0)) {\n f = (Hq(g, 0, -1, 6693, e) | 0) == 0;\n Cq(g);\n if (f) {\n e = c[b >> 2] | 0;\n c[d >> 2] = 0;\n c[(d + 4) >> 2] = 0;\n c[(d + 8) >> 2] = 0;\n c[(d + 12) >> 2] = 0;\n c[g >> 2] = c[d >> 2];\n c[(g + 4) >> 2] = c[(d + 4) >> 2];\n c[(g + 8) >> 2] = c[(d + 8) >> 2];\n c[(g + 12) >> 2] = c[(d + 12) >> 2];\n bb(e, g);\n e = (b + 20) | 0;\n $a(c[b >> 2] | 0, e, 227);\n cb(b, e);\n f = db() | 0;\n d = c[f >> 2] | 0;\n f = c[(f + 4) >> 2] | 0;\n if ((d | 0) != (f | 0))\n do {\n eb(g, d);\n fb(g, e);\n gb(g);\n d = (d + 24) | 0;\n } while ((d | 0) != (f | 0));\n hb(b);\n ib(b);\n jb(c[b >> 2] | 0);\n f = c[b >> 2] | 0;\n d = ((c[(b + 116) >> 2] | 0) + 8) | 0;\n e = h;\n c[e >> 2] = 0;\n c[(e + 4) >> 2] = 0;\n e = (h + 8) | 0;\n c[e >> 2] = d;\n c[(e + 4) >> 2] = 0;\n c[g >> 2] = c[h >> 2];\n c[(g + 4) >> 2] = c[(h + 4) >> 2];\n c[(g + 8) >> 2] = c[(h + 8) >> 2];\n c[(g + 12) >> 2] = c[(h + 12) >> 2];\n bb(f, g);\n kb((b + 4) | 0);\n V = i;\n return;\n }\n }\n else\n Cq(g);\n i = v(8) | 0;\n ab(i);\n x(i | 0, 2592, 8);\n }\n function _a(a) {\n a = a | 0;\n var b = 0;\n b = dr((a + 68) | 0) | 0;\n a = (b + 68) & -64;\n c[(a + -4) >> 2] = b;\n return a | 0;\n }\n function $a(b, d, e) {\n b = b | 0;\n d = d | 0;\n e = e | 0;\n var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0;\n i = (b + 13) | 0;\n if (!(a[i >> 0] | 0)) {\n h = (b + 4) | 0;\n f = c[h >> 2] | 0;\n j = (b + 8) | 0;\n g = c[j >> 2] | 0;\n k = (f - g) | 0;\n e = (k | 0) < (e | 0) ? k : e;\n if (e) {\n vr(d | 0, ((c[b >> 2] | 0) + g) | 0, e | 0) | 0;\n g = c[j >> 2] | 0;\n f = c[h >> 2] | 0;\n }\n k = (g + e) | 0;\n c[j >> 2] = k;\n c[(b + 16) >> 2] = e;\n if ((k | 0) >= (f | 0))\n a[i >> 0] = 1;\n }\n else\n a[(b + 12) >> 0] = 1;\n return;\n }\n function ab(a) {\n a = a | 0;\n xq(a, 6791);\n c[a >> 2] = 4352;\n return;\n }\n function bb(b, d) {\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0, g = 0;\n g = (d + 8) | 0;\n d = c[g >> 2] | 0;\n g = c[(g + 4) >> 2] | 0;\n e = c[(b + 4) >> 2] | 0;\n f = (((e | 0) < 0) << 31) >> 31;\n if (((g | 0) < (f | 0)) | (((g | 0) == (f | 0)) & (d >>> 0 < e >>> 0)))\n c[(b + 8) >> 2] = d;\n else\n a[(b + 12) >> 0] = 1;\n return;\n }\n function cb(b, c) {\n b = b | 0;\n c = c | 0;\n var d = 0.0, e = 0.0, f = 0, i = 0.0, j = 0, k = 0.0, l = 0, m = 0.0, n = 0, o = 0.0;\n n = (c + 179) | 0;\n a[h >> 0] = a[n >> 0];\n a[(h + 1) >> 0] = a[(n + 1) >> 0];\n a[(h + 2) >> 0] = a[(n + 2) >> 0];\n a[(h + 3) >> 0] = a[(n + 3) >> 0];\n a[(h + 4) >> 0] = a[(n + 4) >> 0];\n a[(h + 5) >> 0] = a[(n + 5) >> 0];\n a[(h + 6) >> 0] = a[(n + 6) >> 0];\n a[(h + 7) >> 0] = a[(n + 7) >> 0];\n m = +g[h >> 3];\n j = (c + 187) | 0;\n a[h >> 0] = a[j >> 0];\n a[(h + 1) >> 0] = a[(j + 1) >> 0];\n a[(h + 2) >> 0] = a[(j + 2) >> 0];\n a[(h + 3) >> 0] = a[(j + 3) >> 0];\n a[(h + 4) >> 0] = a[(j + 4) >> 0];\n a[(h + 5) >> 0] = a[(j + 5) >> 0];\n a[(h + 6) >> 0] = a[(j + 6) >> 0];\n a[(h + 7) >> 0] = a[(j + 7) >> 0];\n o = +g[h >> 3];\n b = (c + 195) | 0;\n a[h >> 0] = a[b >> 0];\n a[(h + 1) >> 0] = a[(b + 1) >> 0];\n a[(h + 2) >> 0] = a[(b + 2) >> 0];\n a[(h + 3) >> 0] = a[(b + 3) >> 0];\n a[(h + 4) >> 0] = a[(b + 4) >> 0];\n a[(h + 5) >> 0] = a[(b + 5) >> 0];\n a[(h + 6) >> 0] = a[(b + 6) >> 0];\n a[(h + 7) >> 0] = a[(b + 7) >> 0];\n i = +g[h >> 3];\n l = (c + 203) | 0;\n a[h >> 0] = a[l >> 0];\n a[(h + 1) >> 0] = a[(l + 1) >> 0];\n a[(h + 2) >> 0] = a[(l + 2) >> 0];\n a[(h + 3) >> 0] = a[(l + 3) >> 0];\n a[(h + 4) >> 0] = a[(l + 4) >> 0];\n a[(h + 5) >> 0] = a[(l + 5) >> 0];\n a[(h + 6) >> 0] = a[(l + 6) >> 0];\n a[(h + 7) >> 0] = a[(l + 7) >> 0];\n k = +g[h >> 3];\n f = (c + 211) | 0;\n a[h >> 0] = a[f >> 0];\n a[(h + 1) >> 0] = a[(f + 1) >> 0];\n a[(h + 2) >> 0] = a[(f + 2) >> 0];\n a[(h + 3) >> 0] = a[(f + 3) >> 0];\n a[(h + 4) >> 0] = a[(f + 4) >> 0];\n a[(h + 5) >> 0] = a[(f + 5) >> 0];\n a[(h + 6) >> 0] = a[(f + 6) >> 0];\n a[(h + 7) >> 0] = a[(f + 7) >> 0];\n d = +g[h >> 3];\n c = (c + 219) | 0;\n a[h >> 0] = a[c >> 0];\n a[(h + 1) >> 0] = a[(c + 1) >> 0];\n a[(h + 2) >> 0] = a[(c + 2) >> 0];\n a[(h + 3) >> 0] = a[(c + 3) >> 0];\n a[(h + 4) >> 0] = a[(c + 4) >> 0];\n a[(h + 5) >> 0] = a[(c + 5) >> 0];\n a[(h + 6) >> 0] = a[(c + 6) >> 0];\n a[(h + 7) >> 0] = a[(c + 7) >> 0];\n e = +g[h >> 3];\n g[h >> 3] = o;\n a[n >> 0] = a[h >> 0];\n a[(n + 1) >> 0] = a[(h + 1) >> 0];\n a[(n + 2) >> 0] = a[(h + 2) >> 0];\n a[(n + 3) >> 0] = a[(h + 3) >> 0];\n a[(n + 4) >> 0] = a[(h + 4) >> 0];\n a[(n + 5) >> 0] = a[(h + 5) >> 0];\n a[(n + 6) >> 0] = a[(h + 6) >> 0];\n a[(n + 7) >> 0] = a[(h + 7) >> 0];\n g[h >> 3] = m;\n a[l >> 0] = a[h >> 0];\n a[(l + 1) >> 0] = a[(h + 1) >> 0];\n a[(l + 2) >> 0] = a[(h + 2) >> 0];\n a[(l + 3) >> 0] = a[(h + 3) >> 0];\n a[(l + 4) >> 0] = a[(h + 4) >> 0];\n a[(l + 5) >> 0] = a[(h + 5) >> 0];\n a[(l + 6) >> 0] = a[(h + 6) >> 0];\n a[(l + 7) >> 0] = a[(h + 7) >> 0];\n g[h >> 3] = k;\n a[j >> 0] = a[h >> 0];\n a[(j + 1) >> 0] = a[(h + 1) >> 0];\n a[(j + 2) >> 0] = a[(h + 2) >> 0];\n a[(j + 3) >> 0] = a[(h + 3) >> 0];\n a[(j + 4) >> 0] = a[(h + 4) >> 0];\n a[(j + 5) >> 0] = a[(h + 5) >> 0];\n a[(j + 6) >> 0] = a[(h + 6) >> 0];\n a[(j + 7) >> 0] = a[(h + 7) >> 0];\n g[h >> 3] = i;\n a[f >> 0] = a[h >> 0];\n a[(f + 1) >> 0] = a[(h + 1) >> 0];\n a[(f + 2) >> 0] = a[(h + 2) >> 0];\n a[(f + 3) >> 0] = a[(h + 3) >> 0];\n a[(f + 4) >> 0] = a[(h + 4) >> 0];\n a[(f + 5) >> 0] = a[(h + 5) >> 0];\n a[(f + 6) >> 0] = a[(h + 6) >> 0];\n a[(f + 7) >> 0] = a[(h + 7) >> 0];\n g[h >> 3] = e;\n a[b >> 0] = a[h >> 0];\n a[(b + 1) >> 0] = a[(h + 1) >> 0];\n a[(b + 2) >> 0] = a[(h + 2) >> 0];\n a[(b + 3) >> 0] = a[(h + 3) >> 0];\n a[(b + 4) >> 0] = a[(h + 4) >> 0];\n a[(b + 5) >> 0] = a[(h + 5) >> 0];\n a[(b + 6) >> 0] = a[(h + 6) >> 0];\n a[(b + 7) >> 0] = a[(h + 7) >> 0];\n g[h >> 3] = d;\n a[c >> 0] = a[h >> 0];\n a[(c + 1) >> 0] = a[(h + 1) >> 0];\n a[(c + 2) >> 0] = a[(h + 2) >> 0];\n a[(c + 3) >> 0] = a[(h + 3) >> 0];\n a[(c + 4) >> 0] = a[(h + 4) >> 0];\n a[(c + 5) >> 0] = a[(h + 5) >> 0];\n a[(c + 6) >> 0] = a[(h + 6) >> 0];\n a[(c + 7) >> 0] = a[(h + 7) >> 0];\n return;\n }\n function db() {\n var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0;\n g = V;\n V = (V + 48) | 0;\n e = (g + 24) | 0;\n f = g;\n b = (g + 44) | 0;\n if ((a[21440] | 0) == 0 ? Tp(21440) | 0 : 0) {\n c[5374] = 0;\n c[5375] = 0;\n c[5376] = 0;\n $p(21440);\n }\n if ((a[21448] | 0) == 0 ? Tp(21448) | 0 : 0)\n $p(21448);\n if ((c[5374] | 0) == (c[5375] | 0)) {\n rq(21508);\n if ((c[5374] | 0) == (c[5375] | 0)) {\n a[e >> 0] = a[b >> 0] | 0;\n pb(f, e);\n b = c[5375] | 0;\n do\n if (b >>> 0 >= (c[5376] | 0) >>> 0) {\n b = (((((b - (c[5374] | 0)) | 0) / 24) | 0) + 1) | 0;\n d = xb(21496) | 0;\n if (d >>> 0 < b >>> 0)\n cr(21496);\n else {\n h = c[5374] | 0;\n j = ((((c[5376] | 0) - h) | 0) / 24) | 0;\n i = j << 1;\n ub(e, j >>> 0 < (d >>> 1) >>> 0 ? (i >>> 0 < b >>> 0 ? b : i) : d, ((((c[5375] | 0) - h) | 0) / 24) | 0, 21504);\n d = (e + 8) | 0;\n sb(c[d >> 2] | 0, f);\n c[d >> 2] = (c[d >> 2] | 0) + 24;\n vb(21496, e);\n wb(e);\n break;\n }\n }\n else {\n qb(e, 21496, 1);\n j = (e + 4) | 0;\n sb(c[j >> 2] | 0, f);\n c[j >> 2] = (c[j >> 2] | 0) + 24;\n rb(e);\n }\n while (0);\n gb(f);\n }\n sq(21508);\n }\n V = g;\n return 21496;\n }\n function eb(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0;\n d = (b + 16) | 0;\n e = c[d >> 2] | 0;\n do\n if (e)\n if ((b | 0) == (e | 0)) {\n e = tb(a) | 0;\n c[(a + 16) >> 2] = e;\n d = c[d >> 2] | 0;\n da[c[((c[d >> 2] | 0) + 12) >> 2] & 15](d, e);\n break;\n }\n else {\n c[(a + 16) >> 2] = Z[c[((c[e >> 2] | 0) + 8) >> 2] & 15](e) | 0;\n break;\n }\n else\n c[(a + 16) >> 2] = 0;\n while (0);\n return;\n }\n function fb(a, b) {\n a = a | 0;\n b = b | 0;\n a = c[(a + 16) >> 2] | 0;\n if (!a) {\n b = v(4) | 0;\n c[b >> 2] = 0;\n Nb(b);\n x(b | 0, 4168, 131);\n }\n else {\n da[c[((c[a >> 2] | 0) + 24) >> 2] & 15](a, b);\n return;\n }\n }\n function gb(a) {\n a = a | 0;\n var b = 0;\n b = c[(a + 16) >> 2] | 0;\n if ((a | 0) != (b | 0)) {\n if (b | 0)\n ca[c[((c[b >> 2] | 0) + 20) >> 2] & 255](b);\n }\n else\n ca[c[((c[b >> 2] | 0) + 16) >> 2] & 255](b);\n return;\n }\n function hb(b) {\n b = b | 0;\n var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0;\n q = V;\n V = (V + 96) | 0;\n i = (q + 16) | 0;\n o = q;\n l = (q + 72) | 0;\n j = c[b >> 2] | 0;\n m = e[(b + 114) >> 1] | 0;\n n = o;\n c[n >> 2] = 0;\n c[(n + 4) >> 2] = 0;\n n = (o + 8) | 0;\n c[n >> 2] = m;\n c[(n + 4) >> 2] = 0;\n c[i >> 2] = c[o >> 2];\n c[(i + 4) >> 2] = c[(o + 4) >> 2];\n c[(i + 8) >> 2] = c[(o + 8) >> 2];\n c[(i + 12) >> 2] = c[(o + 12) >> 2];\n bb(j, i);\n j = (b + 120) | 0;\n a: do\n if (c[j >> 2] | 0) {\n k = (i + 2) | 0;\n m = (i + 16) | 0;\n n = (i + 20) | 0;\n o = (i + 18) | 0;\n g = 0;\n while (1) {\n if (!(Ob(c[b >> 2] | 0) | 0))\n break a;\n if (Pb(c[b >> 2] | 0) | 0)\n break a;\n $a(c[b >> 2] | 0, i, 54);\n f = 7277;\n h = k;\n while (1) {\n if ((a[h >> 0] | 0) != (a[f >> 0] | 0))\n break;\n h = (h + 1) | 0;\n if ((h | 0) == (m | 0)) {\n p = 8;\n break;\n }\n else\n f = (f + 1) | 0;\n }\n if ((p | 0) == 8\n ? ((p = 0), ((d[o >> 0] | (d[(o + 1) >> 0] << 8)) << 16) >> 16 == 22204)\n : 0)\n break;\n Rb(c[b >> 2] | 0, (d[n >> 0] | (d[(n + 1) >> 0] << 8)) & 65535, 0, 1);\n g = (g + 1) | 0;\n if (g >>> 0 >= (c[j >> 2] | 0) >>> 0)\n break a;\n }\n o = (d[n >> 0] | (d[(n + 1) >> 0] << 8)) & 65535;\n p = fq(o) | 0;\n $a(c[b >> 2] | 0, p, o);\n Qb(b, p);\n jp(p);\n p = (b + 125) | 0;\n Tb(l, (b + 247) | 0, (d[p >> 0] | (d[(p + 1) >> 0] << 8)) & 65535);\n Ub((b + 300) | 0, l) | 0;\n Pa(l);\n V = q;\n return;\n }\n while (0);\n q = v(8) | 0;\n Sb(q);\n x(q | 0, 2672, 8);\n }\n function ib(a) {\n a = a | 0;\n var b = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0;\n n = V;\n V = (V + 176) | 0;\n g = (n + 40) | 0;\n h = (n + 24) | 0;\n b = (n + 16) | 0;\n f = n;\n k = (n + 152) | 0;\n l = (n + 136) | 0;\n m = (n + 56) | 0;\n j = c[a >> 2] | 0;\n i = (a + 116) | 0;\n o = c[i >> 2] | 0;\n e = h;\n c[e >> 2] = 0;\n c[(e + 4) >> 2] = 0;\n e = (h + 8) | 0;\n c[e >> 2] = o;\n c[(e + 4) >> 2] = 0;\n c[g >> 2] = c[h >> 2];\n c[(g + 4) >> 2] = c[(h + 4) >> 2];\n c[(g + 8) >> 2] = c[(h + 8) >> 2];\n c[(g + 12) >> 2] = c[(h + 12) >> 2];\n bb(j, g);\n j = b;\n c[j >> 2] = 0;\n c[(j + 4) >> 2] = 0;\n $a(c[a >> 2] | 0, b, 8);\n if (!(Ob(c[a >> 2] | 0) | 0)) {\n o = v(8) | 0;\n hc(o);\n x(o | 0, 2704, 8);\n }\n e = b;\n b = c[e >> 2] | 0;\n e = c[(e + 4) >> 2] | 0;\n if (((b | 0) == -1) & ((e | 0) == -1)) {\n o = v(8) | 0;\n ic(o, 7488);\n x(o | 0, 2720, 8);\n }\n o = c[a >> 2] | 0;\n j = f;\n c[j >> 2] = 0;\n c[(j + 4) >> 2] = 0;\n j = (f + 8) | 0;\n c[j >> 2] = b;\n c[(j + 4) >> 2] = e;\n c[g >> 2] = c[f >> 2];\n c[(g + 4) >> 2] = c[(f + 4) >> 2];\n c[(g + 8) >> 2] = c[(f + 8) >> 2];\n c[(g + 12) >> 2] = c[(f + 12) >> 2];\n bb(o, g);\n if (!(Ob(c[a >> 2] | 0) | 0)) {\n o = v(8) | 0;\n hc(o);\n x(o | 0, 2704, 8);\n }\n $a(c[a >> 2] | 0, g, 8);\n if (!(Ob(c[a >> 2] | 0) | 0)) {\n o = v(8) | 0;\n hc(o);\n x(o | 0, 2704, 8);\n }\n if (c[g >> 2] | 0) {\n o = v(8) | 0;\n jc(o);\n x(o | 0, 2736, 8);\n }\n h = (a + 288) | 0;\n j = (a + 292) | 0;\n c[j >> 2] = c[h >> 2];\n o = (a + 259) | 0;\n if ((d[o >> 0] |\n (d[(o + 1) >> 0] << 8) |\n (d[(o + 2) >> 0] << 16) |\n (d[(o + 3) >> 0] << 24) |\n 0) ==\n -1) {\n o = v(8) | 0;\n ic(o, 7606);\n x(o | 0, 2720, 8);\n }\n f = (g + 4) | 0;\n kc(h, ((c[f >> 2] | 0) + 1) | 0);\n o = c[h >> 2] | 0;\n c[o >> 2] = (c[i >> 2] | 0) + 8;\n c[(o + 4) >> 2] = 0;\n if ((c[f >> 2] | 0) >>> 0 > 1) {\n Va(k, c[a >> 2] | 0);\n lc(l, k);\n mc(m, 32, 2, 8, 0);\n nc(l);\n oc(m);\n if (!(c[f >> 2] | 0)) {\n h = c[h >> 2] | 0;\n e = h;\n }\n else {\n e = 1;\n do {\n if (e >>> 0 > 1)\n b = c[((c[h >> 2] | 0) + ((e + -1) << 3)) >> 2] | 0;\n else\n b = 0;\n i = pc(m, l, b, 1) | 0;\n b = c[h >> 2] | 0;\n o = (b + (e << 3)) | 0;\n c[o >> 2] = i;\n c[(o + 4) >> 2] = (((i | 0) < 0) << 31) >> 31;\n e = (e + 1) | 0;\n } while (e >>> 0 <= (c[f >> 2] | 0) >>> 0);\n e = b;\n h = b;\n }\n b = c[j >> 2] | 0;\n if (((b - e) >> 3) >>> 0 > 1) {\n g = (b - h) >> 3;\n f = h;\n b = 1;\n e = c[f >> 2] | 0;\n f = c[(f + 4) >> 2] | 0;\n do {\n o = (h + (b << 3)) | 0;\n j = o;\n e = lr(c[j >> 2] | 0, c[(j + 4) >> 2] | 0, e | 0, f | 0) | 0;\n f = u() | 0;\n c[o >> 2] = e;\n c[(o + 4) >> 2] = f;\n b = (b + 1) | 0;\n } while (b >>> 0 < g >>> 0);\n }\n qc(m);\n rc(l);\n Ra(k);\n }\n V = n;\n return;\n }\n function jb(b) {\n b = b | 0;\n a[(b + 12) >> 0] = 0;\n a[(b + 13) >> 0] = 0;\n return;\n }\n function kb(a) {\n a = a | 0;\n c[(a + 8) >> 2] = 0;\n c[(a + 4) >> 2] = 0;\n return;\n }\n function lb(a) {\n a = a | 0;\n return fo(a) | 0;\n }\n function mb(b, d, e) {\n b = b | 0;\n d = d | 0;\n e = e | 0;\n var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0;\n i = V;\n V = (V + 16) | 0;\n g = d;\n h = i;\n f = (e - g) | 0;\n if (f >>> 0 > 4294967279)\n yq(b);\n if (f >>> 0 < 11)\n a[(b + 11) >> 0] = f;\n else {\n k = (f + 16) & -16;\n j = eq(k) | 0;\n c[b >> 2] = j;\n c[(b + 8) >> 2] = k | -2147483648;\n c[(b + 4) >> 2] = f;\n b = j;\n }\n if ((d | 0) != (e | 0)) {\n g = (e - g) | 0;\n f = b;\n while (1) {\n nb(f, d);\n d = (d + 1) | 0;\n if ((d | 0) == (e | 0))\n break;\n else\n f = (f + 1) | 0;\n }\n b = (b + g) | 0;\n }\n a[h >> 0] = 0;\n nb(b, h);\n V = i;\n return;\n }\n function nb(b, c) {\n b = b | 0;\n c = c | 0;\n a[b >> 0] = a[c >> 0] | 0;\n return;\n }\n function ob(a) {\n a = a | 0;\n yp(a);\n jp(a);\n return;\n }\n function pb(a, b) {\n a = a | 0;\n b = b | 0;\n c[a >> 2] = 4372;\n c[(a + 16) >> 2] = a;\n return;\n }\n function qb(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n c[a >> 2] = b;\n b = c[(b + 4) >> 2] | 0;\n c[(a + 4) >> 2] = b;\n c[(a + 8) >> 2] = b + ((d * 24) | 0);\n return;\n }\n function rb(a) {\n a = a | 0;\n c[((c[a >> 2] | 0) + 4) >> 2] = c[(a + 4) >> 2];\n return;\n }\n function sb(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0;\n d = (b + 16) | 0;\n e = c[d >> 2] | 0;\n do\n if (e)\n if ((b | 0) == (e | 0)) {\n e = tb(a) | 0;\n c[(a + 16) >> 2] = e;\n d = c[d >> 2] | 0;\n da[c[((c[d >> 2] | 0) + 12) >> 2] & 15](d, e);\n break;\n }\n else {\n c[(a + 16) >> 2] = e;\n c[d >> 2] = 0;\n break;\n }\n else\n c[(a + 16) >> 2] = 0;\n while (0);\n return;\n }\n function tb(a) {\n a = a | 0;\n return a | 0;\n }\n function ub(a, b, d, e) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n e = e | 0;\n var f = 0;\n f = (a + 12) | 0;\n c[f >> 2] = 0;\n c[(a + 16) >> 2] = e;\n do\n if (b)\n if (b >>> 0 > 178956970) {\n f = v(8) | 0;\n vq(f, 6723);\n c[f >> 2] = 5956;\n x(f | 0, 3928, 123);\n }\n else {\n e = eq((b * 24) | 0) | 0;\n break;\n }\n else\n e = 0;\n while (0);\n c[a >> 2] = e;\n d = (e + ((d * 24) | 0)) | 0;\n c[(a + 8) >> 2] = d;\n c[(a + 4) >> 2] = d;\n c[f >> 2] = e + ((b * 24) | 0);\n return;\n }\n function vb(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0;\n i = c[a >> 2] | 0;\n j = (a + 4) | 0;\n d = c[j >> 2] | 0;\n h = (b + 4) | 0;\n if ((d | 0) == (i | 0)) {\n f = h;\n g = a;\n e = c[h >> 2] | 0;\n d = i;\n }\n else {\n e = c[h >> 2] | 0;\n do {\n d = (d + -24) | 0;\n sb((e + -24) | 0, d);\n e = ((c[h >> 2] | 0) + -24) | 0;\n c[h >> 2] = e;\n } while ((d | 0) != (i | 0));\n f = h;\n g = a;\n d = c[a >> 2] | 0;\n }\n c[g >> 2] = e;\n c[f >> 2] = d;\n i = (b + 8) | 0;\n h = c[j >> 2] | 0;\n c[j >> 2] = c[i >> 2];\n c[i >> 2] = h;\n i = (a + 8) | 0;\n j = (b + 12) | 0;\n a = c[i >> 2] | 0;\n c[i >> 2] = c[j >> 2];\n c[j >> 2] = a;\n c[b >> 2] = c[f >> 2];\n return;\n }\n function wb(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0, f = 0;\n d = c[(a + 4) >> 2] | 0;\n e = (a + 8) | 0;\n b = c[e >> 2] | 0;\n if ((b | 0) != (d | 0))\n do {\n f = (b + -24) | 0;\n c[e >> 2] = f;\n gb(f);\n b = c[e >> 2] | 0;\n } while ((b | 0) != (d | 0));\n b = c[a >> 2] | 0;\n if (b | 0)\n Da(b, ((c[(a + 12) >> 2] | 0) - b) | 0);\n return;\n }\n function xb(a) {\n a = a | 0;\n return 178956970;\n }\n function yb(a) {\n a = a | 0;\n jp(a);\n return;\n }\n function zb(a) {\n a = a | 0;\n a = eq(8) | 0;\n c[a >> 2] = 4372;\n return a | 0;\n }\n function Ab(a, b) {\n a = a | 0;\n b = b | 0;\n c[b >> 2] = 4372;\n return;\n }\n function Bb(a) {\n a = a | 0;\n return;\n }\n function Cb(a) {\n a = a | 0;\n Da(a, 8);\n return;\n }\n function Db(a, b) {\n a = a | 0;\n b = b | 0;\n Hb((a + 4) | 0, b);\n return;\n }\n function Eb(a, b) {\n a = a | 0;\n b = b | 0;\n return ((c[(b + 4) >> 2] | 0) == 7183 ? (a + 4) | 0 : 0) | 0;\n }\n function Fb(a) {\n a = a | 0;\n return 2664;\n }\n function Gb(a) {\n a = a | 0;\n return;\n }\n function Hb(a, b) {\n a = a | 0;\n b = b | 0;\n Ib(a, b);\n return;\n }\n function Ib(b, c) {\n b = b | 0;\n c = c | 0;\n var e = 0, f = 0;\n b = (c + 104) | 0;\n c = d[b >> 0] | 0;\n e = c >>> 7;\n f = (c >>> 6) & 1;\n if (((e | 0) == 1) & ((f | 0) != 0)) {\n f = v(8) | 0;\n Jb(f);\n x(f | 0, 2632, 8);\n }\n if ((e | 0) == (f | 0)) {\n f = v(8) | 0;\n Kb(f);\n x(f | 0, 2648, 8);\n }\n else {\n a[b >> 0] = c & 63;\n return;\n }\n }\n function Jb(a) {\n a = a | 0;\n xq(a, 7076);\n c[a >> 2] = 4416;\n return;\n }\n function Kb(a) {\n a = a | 0;\n xq(a, 7144);\n c[a >> 2] = 4436;\n return;\n }\n function Lb(a) {\n a = a | 0;\n yp(a);\n jp(a);\n return;\n }\n function Mb(a) {\n a = a | 0;\n yp(a);\n jp(a);\n return;\n }\n function Nb(a) {\n a = a | 0;\n c[a >> 2] = 6092;\n return;\n }\n function Ob(b) {\n b = b | 0;\n var c = 0;\n c = (b + 12) | 0;\n b = (a[c >> 0] | 0) == 0;\n a[c >> 0] = 0;\n return b | 0;\n }\n function Pb(b) {\n b = b | 0;\n return ((a[(b + 13) >> 0] | 0) != 0) | 0;\n }\n function Qb(a, b) {\n a = a | 0;\n b = b | 0;\n a = (a + 247) | 0;\n Vb(a, b);\n if (((d[a >> 0] | (d[(a + 1) >> 0] << 8)) << 16) >> 16 == 2)\n return;\n else {\n b = v(8) | 0;\n Wb(b);\n x(b | 0, 2688, 8);\n }\n }\n function Rb(b, d, e, f) {\n b = b | 0;\n d = d | 0;\n e = e | 0;\n f = f | 0;\n var g = 0, h = 0;\n switch (f | 0) {\n case 0:\n break;\n case 2: {\n f = c[(b + 4) >> 2] | 0;\n d =\n lr(lr(d | 0, e | 0, -1, -1) | 0, u() | 0, f | 0, ((((f | 0) < 0) << 31) >> 31) | 0) | 0;\n e = u() | 0;\n break;\n }\n case 1: {\n f = c[(b + 8) >> 2] | 0;\n d = lr(f | 0, ((((f | 0) < 0) << 31) >> 31) | 0, d | 0, e | 0) | 0;\n e = u() | 0;\n break;\n }\n default: {\n e = 0;\n d = 0;\n }\n }\n g = c[(b + 4) >> 2] | 0;\n h = (((g | 0) < 0) << 31) >> 31;\n f = (b + 12) | 0;\n if (((e | 0) < 0) | (((e | 0) > (h | 0)) | (((e | 0) == (h | 0)) & (d >>> 0 >= g >>> 0))))\n a[f >> 0] = 1;\n else {\n a[f >> 0] = 0;\n c[(b + 8) >> 2] = d;\n }\n return;\n }\n function Sb(a) {\n a = a | 0;\n xq(a, 7410);\n c[a >> 2] = 4476;\n return;\n }\n function Tb(a, b, c) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0;\n h = V;\n V = (V + 16) | 0;\n g = h;\n Xa(a);\n f = (b + 32) | 0;\n if (((d[f >> 0] | (d[(f + 1) >> 0] << 8)) << 16) >> 16) {\n e = (b + 34) | 0;\n b = 0;\n do {\n j =\n d[e >> 0] | (d[(e + 1) >> 0] << 8) | (d[(e + 2) >> 0] << 16) | (d[(e + 3) >> 0] << 24);\n k = (j + ((b * 6) | 0)) | 0;\n i = (j + ((b * 6) | 0) + 2) | 0;\n j = (j + ((b * 6) | 0) + 4) | 0;\n _b(g, (d[k >> 0] | (d[(k + 1) >> 0] << 8)) & 65535, (d[i >> 0] | (d[(i + 1) >> 0] << 8)) & 65535, (d[j >> 0] | (d[(j + 1) >> 0] << 8)) & 65535);\n Zb(a, g);\n c = (c - ((d[i >> 0] | (d[(i + 1) >> 0] << 8)) & 65535)) | 0;\n b = (b + 1) | 0;\n } while (b >>> 0 < ((d[f >> 0] | (d[(f + 1) >> 0] << 8)) & 65535) >>> 0);\n }\n if ((c | 0) < 0) {\n k = v(8) | 0;\n Wb(k);\n x(k | 0, 2688, 8);\n }\n if (c | 0) {\n _b(g, 0, c, 2);\n Zb(a, g);\n }\n V = h;\n return;\n }\n function Ub(b, c) {\n b = b | 0;\n c = c | 0;\n var d = 0, e = 0;\n d = V;\n V = (V + 16) | 0;\n e = (d + 1) | 0;\n a[e >> 0] = a[d >> 0] | 0;\n fc(b, c, e);\n V = d;\n return b | 0;\n }\n function Vb(b, c) {\n b = b | 0;\n c = c | 0;\n var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0;\n f = (c + 2) | 0;\n h = d[c >> 0] | (d[(c + 1) >> 0] << 8);\n a[b >> 0] = h;\n a[(b + 1) >> 0] = h >> 8;\n h = (b + 2) | 0;\n f = d[f >> 0] | (d[(f + 1) >> 0] << 8);\n a[h >> 0] = f;\n a[(h + 1) >> 0] = f >> 8;\n a[(b + 4) >> 0] = a[(c + 4) >> 0] | 0;\n h = (c + 6) | 0;\n a[(b + 5) >> 0] = a[(c + 5) >> 0] | 0;\n f = (c + 8) | 0;\n e = (b + 6) | 0;\n h = d[h >> 0] | (d[(h + 1) >> 0] << 8);\n a[e >> 0] = h;\n a[(e + 1) >> 0] = h >> 8;\n e = (c + 12) | 0;\n h = (b + 8) | 0;\n f = d[f >> 0] | (d[(f + 1) >> 0] << 8) | (d[(f + 2) >> 0] << 16) | (d[(f + 3) >> 0] << 24);\n a[h >> 0] = f;\n a[(h + 1) >> 0] = f >> 8;\n a[(h + 2) >> 0] = f >> 16;\n a[(h + 3) >> 0] = f >> 24;\n h = (b + 12) | 0;\n e = d[e >> 0] | (d[(e + 1) >> 0] << 8) | (d[(e + 2) >> 0] << 16) | (d[(e + 3) >> 0] << 24);\n a[h >> 0] = e;\n a[(h + 1) >> 0] = e >> 8;\n a[(h + 2) >> 0] = e >> 16;\n a[(h + 3) >> 0] = e >> 24;\n h = (c + 16) | 0;\n e = h;\n e = d[e >> 0] | (d[(e + 1) >> 0] << 8) | (d[(e + 2) >> 0] << 16) | (d[(e + 3) >> 0] << 24);\n h = (h + 4) | 0;\n h = d[h >> 0] | (d[(h + 1) >> 0] << 8) | (d[(h + 2) >> 0] << 16) | (d[(h + 3) >> 0] << 24);\n f = (b + 16) | 0;\n i = f;\n a[i >> 0] = e;\n a[(i + 1) >> 0] = e >> 8;\n a[(i + 2) >> 0] = e >> 16;\n a[(i + 3) >> 0] = e >> 24;\n f = (f + 4) | 0;\n a[f >> 0] = h;\n a[(f + 1) >> 0] = h >> 8;\n a[(f + 2) >> 0] = h >> 16;\n a[(f + 3) >> 0] = h >> 24;\n f = (c + 32) | 0;\n h = (c + 24) | 0;\n i = h;\n i = d[i >> 0] | (d[(i + 1) >> 0] << 8) | (d[(i + 2) >> 0] << 16) | (d[(i + 3) >> 0] << 24);\n h = (h + 4) | 0;\n h = d[h >> 0] | (d[(h + 1) >> 0] << 8) | (d[(h + 2) >> 0] << 16) | (d[(h + 3) >> 0] << 24);\n e = (b + 24) | 0;\n g = e;\n a[g >> 0] = i;\n a[(g + 1) >> 0] = i >> 8;\n a[(g + 2) >> 0] = i >> 16;\n a[(g + 3) >> 0] = i >> 24;\n e = (e + 4) | 0;\n a[e >> 0] = h;\n a[(e + 1) >> 0] = h >> 8;\n a[(e + 2) >> 0] = h >> 16;\n a[(e + 3) >> 0] = h >> 24;\n e = (c + 34) | 0;\n h = (b + 32) | 0;\n f = d[f >> 0] | (d[(f + 1) >> 0] << 8);\n a[h >> 0] = f;\n a[(h + 1) >> 0] = f >> 8;\n g = (b + 34) | 0;\n b = d[g >> 0] | (d[(g + 1) >> 0] << 8) | (d[(g + 2) >> 0] << 16) | (d[(g + 3) >> 0] << 24);\n if (!b)\n b = f;\n else {\n gq(b);\n b = d[h >> 0] | (d[(h + 1) >> 0] << 8);\n }\n f = fq(((b & 65535) * 6) | 0) | 0;\n a[g >> 0] = f;\n a[(g + 1) >> 0] = f >> 8;\n a[(g + 2) >> 0] = f >> 16;\n a[(g + 3) >> 0] = f >> 24;\n if ((b << 16) >> 16\n ? ((b = (c + 36) | 0),\n (i = d[e >> 0] | (d[(e + 1) >> 0] << 8)),\n (a[f >> 0] = i),\n (a[(f + 1) >> 0] = i >> 8),\n (c = (c + 38) | 0),\n (i = (f + 2) | 0),\n (b = d[b >> 0] | (d[(b + 1) >> 0] << 8)),\n (a[i >> 0] = b),\n (a[(i + 1) >> 0] = b >> 8),\n (i = (f + 4) | 0),\n (c = d[c >> 0] | (d[(c + 1) >> 0] << 8)),\n (a[i >> 0] = c),\n (a[(i + 1) >> 0] = c >> 8),\n ((d[h >> 0] | (d[(h + 1) >> 0] << 8)) & 65535) > 1)\n : 0) {\n b = 1;\n do {\n c = e;\n e = (e + 6) | 0;\n i =\n d[g >> 0] | (d[(g + 1) >> 0] << 8) | (d[(g + 2) >> 0] << 16) | (d[(g + 3) >> 0] << 24);\n j = (c + 8) | 0;\n f = (i + ((b * 6) | 0)) | 0;\n k = d[e >> 0] | (d[(e + 1) >> 0] << 8);\n a[f >> 0] = k;\n a[(f + 1) >> 0] = k >> 8;\n c = (c + 10) | 0;\n f = (i + ((b * 6) | 0) + 2) | 0;\n j = d[j >> 0] | (d[(j + 1) >> 0] << 8);\n a[f >> 0] = j;\n a[(f + 1) >> 0] = j >> 8;\n i = (i + ((b * 6) | 0) + 4) | 0;\n c = d[c >> 0] | (d[(c + 1) >> 0] << 8);\n a[i >> 0] = c;\n a[(i + 1) >> 0] = c >> 8;\n b = (b + 1) | 0;\n } while (b >>> 0 < ((d[h >> 0] | (d[(h + 1) >> 0] << 8)) & 65535) >>> 0);\n }\n return;\n }\n function Wb(a) {\n a = a | 0;\n xq(a, 7354);\n c[a >> 2] = 4456;\n return;\n }\n function Xb(a) {\n a = a | 0;\n yp(a);\n jp(a);\n return;\n }\n function Yb(a) {\n a = a | 0;\n yp(a);\n jp(a);\n return;\n }\n function Zb(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0;\n i = V;\n V = (V + 32) | 0;\n f = i;\n g = (a + 4) | 0;\n d = c[g >> 2] | 0;\n h = (a + 8) | 0;\n do\n if ((d | 0) == (c[h >> 2] | 0)) {\n d = (((((d - (c[a >> 2] | 0)) | 0) / 12) | 0) + 1) | 0;\n e = ec(a) | 0;\n if (e >>> 0 < d >>> 0)\n cr(a);\n else {\n j = c[a >> 2] | 0;\n k = ((((c[h >> 2] | 0) - j) | 0) / 12) | 0;\n h = k << 1;\n bc(f, k >>> 0 < (e >>> 1) >>> 0 ? (h >>> 0 < d >>> 0 ? d : h) : e, ((((c[g >> 2] | 0) - j) | 0) / 12) | 0, (a + 8) | 0);\n h = (f + 8) | 0;\n g = c[h >> 2] | 0;\n c[g >> 2] = c[b >> 2];\n c[(g + 4) >> 2] = c[(b + 4) >> 2];\n c[(g + 8) >> 2] = c[(b + 8) >> 2];\n c[h >> 2] = (c[h >> 2] | 0) + 12;\n cc(a, f);\n dc(f);\n break;\n }\n }\n else {\n $b(f, a, 1);\n k = (f + 4) | 0;\n j = c[k >> 2] | 0;\n c[j >> 2] = c[b >> 2];\n c[(j + 4) >> 2] = c[(b + 4) >> 2];\n c[(j + 8) >> 2] = c[(b + 8) >> 2];\n c[k >> 2] = (c[k >> 2] | 0) + 12;\n ac(f);\n }\n while (0);\n V = i;\n return;\n }\n function _b(a, b, d, e) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n e = e | 0;\n c[a >> 2] = b;\n c[(a + 4) >> 2] = d;\n c[(a + 8) >> 2] = e;\n return;\n }\n function $b(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n c[a >> 2] = b;\n b = c[(b + 4) >> 2] | 0;\n c[(a + 4) >> 2] = b;\n c[(a + 8) >> 2] = b + ((d * 12) | 0);\n return;\n }\n function ac(a) {\n a = a | 0;\n c[((c[a >> 2] | 0) + 4) >> 2] = c[(a + 4) >> 2];\n return;\n }\n function bc(a, b, d, e) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n e = e | 0;\n var f = 0;\n f = (a + 12) | 0;\n c[f >> 2] = 0;\n c[(a + 16) >> 2] = e;\n do\n if (b)\n if (b >>> 0 > 357913941) {\n f = v(8) | 0;\n vq(f, 6723);\n c[f >> 2] = 5956;\n x(f | 0, 3928, 123);\n }\n else {\n e = eq((b * 12) | 0) | 0;\n break;\n }\n else\n e = 0;\n while (0);\n c[a >> 2] = e;\n d = (e + ((d * 12) | 0)) | 0;\n c[(a + 8) >> 2] = d;\n c[(a + 4) >> 2] = d;\n c[f >> 2] = e + ((b * 12) | 0);\n return;\n }\n function cc(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0;\n e = c[a >> 2] | 0;\n h = (a + 4) | 0;\n g = (b + 4) | 0;\n f = ((c[h >> 2] | 0) - e) | 0;\n d = ((c[g >> 2] | 0) + (((((f | 0) / -12) | 0) * 12) | 0)) | 0;\n c[g >> 2] = d;\n if ((f | 0) > 0) {\n ur(d | 0, e | 0, f | 0) | 0;\n e = g;\n d = c[g >> 2] | 0;\n }\n else\n e = g;\n g = c[a >> 2] | 0;\n c[a >> 2] = d;\n c[e >> 2] = g;\n g = (b + 8) | 0;\n f = c[h >> 2] | 0;\n c[h >> 2] = c[g >> 2];\n c[g >> 2] = f;\n g = (a + 8) | 0;\n h = (b + 12) | 0;\n a = c[g >> 2] | 0;\n c[g >> 2] = c[h >> 2];\n c[h >> 2] = a;\n c[b >> 2] = c[e >> 2];\n return;\n }\n function dc(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0;\n b = c[(a + 4) >> 2] | 0;\n d = (a + 8) | 0;\n e = c[d >> 2] | 0;\n if ((e | 0) != (b | 0))\n c[d >> 2] = e + ((~(((((e + -12 - b) | 0) >>> 0) / 12) | 0) * 12) | 0);\n b = c[a >> 2] | 0;\n if (b | 0)\n Da(b, ((c[(a + 12) >> 2] | 0) - b) | 0);\n return;\n }\n function ec(a) {\n a = a | 0;\n return 357913941;\n }\n function fc(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0;\n gc(a);\n c[a >> 2] = c[b >> 2];\n d = (b + 4) | 0;\n c[(a + 4) >> 2] = c[d >> 2];\n e = (b + 8) | 0;\n c[(a + 8) >> 2] = c[e >> 2];\n c[e >> 2] = 0;\n c[d >> 2] = 0;\n c[b >> 2] = 0;\n return;\n }\n function gc(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0, f = 0;\n b = c[a >> 2] | 0;\n d = b;\n if (b | 0) {\n e = (a + 4) | 0;\n c[e >> 2] = d;\n f = (a + 8) | 0;\n Da(b, ((c[f >> 2] | 0) - d) | 0);\n c[f >> 2] = 0;\n c[e >> 2] = 0;\n c[a >> 2] = 0;\n }\n return;\n }\n function hc(a) {\n a = a | 0;\n xq(a, 7660);\n c[a >> 2] = 4496;\n return;\n }\n function ic(a, b) {\n a = a | 0;\n b = b | 0;\n xq(a, b);\n c[a >> 2] = 4516;\n return;\n }\n function jc(a) {\n a = a | 0;\n xq(a, 7704);\n c[a >> 2] = 4536;\n return;\n }\n function kc(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0;\n d = (a + 4) | 0;\n f = c[a >> 2] | 0;\n e = ((c[d >> 2] | 0) - f) >> 3;\n if (e >>> 0 >= b >>> 0) {\n if (e >>> 0 > b >>> 0)\n c[d >> 2] = f + (b << 3);\n }\n else\n vc(a, (b - e) | 0);\n return;\n }\n function lc(a, b) {\n a = a | 0;\n b = b | 0;\n c[a >> 2] = b;\n c[(a + 4) >> 2] = 0;\n c[(a + 8) >> 2] = -1;\n return;\n }\n function mc(a, b, d, e, f) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n e = e | 0;\n f = f | 0;\n var g = 0;\n c[(a + 4) >> 2] = b;\n c[(a + 8) >> 2] = d;\n c[(a + 12) >> 2] = e;\n c[(a + 16) >> 2] = f;\n c[(a + 36) >> 2] = 0;\n c[(a + 40) >> 2] = 0;\n c[(a + 44) >> 2] = 0;\n Gc((a + 48) | 0);\n c[(a + 68) >> 2] = 0;\n c[(a + 72) >> 2] = 0;\n c[(a + 76) >> 2] = 0;\n do\n if (!f) {\n d = (a + 20) | 0;\n if (((b + -1) | 0) >>> 0 < 31) {\n c[d >> 2] = b;\n f = 1 << b;\n c[(a + 24) >> 2] = f;\n d = f >>> 1;\n c[(a + 28) >> 2] = 0 - d;\n d = (f + -1 - d) | 0;\n break;\n }\n else {\n c[d >> 2] = 32;\n c[(a + 24) >> 2] = 0;\n c[(a + 28) >> 2] = -2147483648;\n d = 2147483647;\n break;\n }\n }\n else {\n e = (a + 20) | 0;\n c[e >> 2] = 0;\n c[(a + 24) >> 2] = f;\n d = f;\n g = 0;\n while (1) {\n d = d >>> 1;\n b = (g + 1) | 0;\n if (!d)\n break;\n else\n g = b;\n }\n c[e >> 2] = ((1 << g) | 0) == (f | 0) ? g : b;\n d = f >>> 1;\n c[(a + 28) >> 2] = 0 - d;\n d = (f + -1 - d) | 0;\n }\n while (0);\n c[(a + 32) >> 2] = d;\n c[a >> 2] = 0;\n return;\n }\n function nc(a) {\n a = a | 0;\n var b = 0;\n b = ((Jc(c[a >> 2] | 0) | 0) & 255) << 24;\n b = (((Jc(c[a >> 2] | 0) | 0) & 255) << 16) | b;\n b = b | (((Jc(c[a >> 2] | 0) | 0) & 255) << 8);\n c[(a + 4) >> 2] = b | ((Jc(c[a >> 2] | 0) | 0) & 255);\n return;\n }\n function oc(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0;\n q = V;\n V = (V + 64) | 0;\n o = (q + 44) | 0;\n p = q;\n k = (a + 36) | 0;\n l = (a + 40) | 0;\n a: do\n if ((c[k >> 2] | 0) == (c[l >> 2] | 0)) {\n m = (a + 8) | 0;\n b: do\n if (!(c[m >> 2] | 0))\n n = (a + 20) | 0;\n else {\n f = (a + 20) | 0;\n g = (a + 44) | 0;\n h = (o + 4) | 0;\n i = (a + 44) | 0;\n j = (o + 8) | 0;\n e = 0;\n while (1) {\n Oc(p, ((c[f >> 2] | 0) + 1) | 0, 0, 0);\n b = c[l >> 2] | 0;\n if (b >>> 0 < (c[g >> 2] | 0) >>> 0) {\n Pc(o, k, 1);\n Rc(c[h >> 2] | 0, p);\n c[h >> 2] = (c[h >> 2] | 0) + 44;\n Qc(o);\n }\n else {\n b = (((((b - (c[k >> 2] | 0)) | 0) / 44) | 0) + 1) | 0;\n d = Vc(k) | 0;\n if (d >>> 0 < b >>> 0)\n break;\n r = c[k >> 2] | 0;\n t = ((((c[g >> 2] | 0) - r) | 0) / 44) | 0;\n s = t << 1;\n Sc(o, t >>> 0 < (d >>> 1) >>> 0 ? (s >>> 0 < b >>> 0 ? b : s) : d, ((((c[l >> 2] | 0) - r) | 0) / 44) | 0, i);\n Rc(c[j >> 2] | 0, p);\n c[j >> 2] = (c[j >> 2] | 0) + 44;\n Tc(k, o);\n Uc(o);\n }\n Ic(p);\n e = (e + 1) | 0;\n if (e >>> 0 >= (c[m >> 2] | 0) >>> 0) {\n n = f;\n break b;\n }\n }\n cr(k);\n }\n while (0);\n if (c[n >> 2] | 0) {\n h = (a + 12) | 0;\n i = (a + 68) | 0;\n j = (a + 72) | 0;\n k = (a + 76) | 0;\n l = (o + 4) | 0;\n f = (a + 76) | 0;\n g = (o + 8) | 0;\n e = 1;\n while (1) {\n b = c[h >> 2] | 0;\n Oc(p, 1 << (e >>> 0 > b >>> 0 ? b : e), 0, 0);\n b = c[j >> 2] | 0;\n if (b >>> 0 < (c[k >> 2] | 0) >>> 0) {\n Pc(o, i, 1);\n Rc(c[l >> 2] | 0, p);\n c[l >> 2] = (c[l >> 2] | 0) + 44;\n Qc(o);\n }\n else {\n b = (((((b - (c[i >> 2] | 0)) | 0) / 44) | 0) + 1) | 0;\n d = Vc(i) | 0;\n if (d >>> 0 < b >>> 0)\n break;\n t = c[i >> 2] | 0;\n r = ((((c[k >> 2] | 0) - t) | 0) / 44) | 0;\n s = r << 1;\n Sc(o, r >>> 0 < (d >>> 1) >>> 0 ? (s >>> 0 < b >>> 0 ? b : s) : d, ((((c[j >> 2] | 0) - t) | 0) / 44) | 0, f);\n Rc(c[g >> 2] | 0, p);\n c[g >> 2] = (c[g >> 2] | 0) + 44;\n Tc(i, o);\n Uc(o);\n }\n Ic(p);\n e = (e + 1) | 0;\n if (e >>> 0 > (c[n >> 2] | 0) >>> 0)\n break a;\n }\n cr(i);\n }\n }\n while (0);\n V = q;\n return;\n }\n function pc(a, b, d, e) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n e = e | 0;\n d = ((Yc(a, b, ((c[(a + 36) >> 2] | 0) + ((e * 44) | 0)) | 0) | 0) + d) | 0;\n b = c[(a + 24) >> 2] | 0;\n if ((d | 0) < 0)\n return (d + b) | 0;\n else\n return (d - (d >>> 0 < b >>> 0 ? 0 : b)) | 0;\n return 0;\n }\n function qc(a) {\n a = a | 0;\n Hc((a + 68) | 0);\n Hc((a + 36) | 0);\n return;\n }\n function rc(a) {\n a = a | 0;\n return;\n }\n function sc(a) {\n a = a | 0;\n yp(a);\n jp(a);\n return;\n }\n function tc(a) {\n a = a | 0;\n yp(a);\n jp(a);\n return;\n }\n function uc(a) {\n a = a | 0;\n yp(a);\n jp(a);\n return;\n }\n function vc(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0;\n i = V;\n V = (V + 32) | 0;\n f = i;\n g = (a + 8) | 0;\n h = (a + 4) | 0;\n d = c[h >> 2] | 0;\n do\n if ((((c[g >> 2] | 0) - d) >> 3) >>> 0 < b >>> 0) {\n d = (((d - (c[a >> 2] | 0)) >> 3) + b) | 0;\n e = Dc(a) | 0;\n if (e >>> 0 < d >>> 0)\n cr(a);\n else {\n j = c[a >> 2] | 0;\n k = ((c[g >> 2] | 0) - j) | 0;\n g = k >> 2;\n xc(f, (k >> 3) >>> 0 < (e >>> 1) >>> 0 ? (g >>> 0 < d >>> 0 ? d : g) : e, ((c[h >> 2] | 0) - j) >> 3, (a + 8) | 0);\n yc(f, b);\n zc(a, f);\n Ac(f);\n break;\n }\n }\n else\n wc(a, b);\n while (0);\n V = i;\n return;\n }\n function wc(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0;\n f = V;\n V = (V + 16) | 0;\n e = f;\n Bc(e, a, b);\n a = (e + 4) | 0;\n b = c[a >> 2] | 0;\n d = c[(e + 8) >> 2] | 0;\n if ((b | 0) != (d | 0)) {\n d = (d + -8 - b) | 0;\n wr(b | 0, 0, ((d + 8) & -8) | 0) | 0;\n c[a >> 2] = b + (((d >>> 3) + 1) << 3);\n }\n Cc(e);\n V = f;\n return;\n }\n function xc(a, b, d, e) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n e = e | 0;\n var f = 0;\n f = (a + 12) | 0;\n c[f >> 2] = 0;\n c[(a + 16) >> 2] = e;\n do\n if (b)\n if (b >>> 0 > 536870911) {\n f = v(8) | 0;\n vq(f, 6723);\n c[f >> 2] = 5956;\n x(f | 0, 3928, 123);\n }\n else {\n e = eq(b << 3) | 0;\n break;\n }\n else\n e = 0;\n while (0);\n c[a >> 2] = e;\n d = (e + (d << 3)) | 0;\n c[(a + 8) >> 2] = d;\n c[(a + 4) >> 2] = d;\n c[f >> 2] = e + (b << 3);\n return;\n }\n function yc(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0;\n e = V;\n V = (V + 16) | 0;\n d = e;\n Ec(d, (a + 8) | 0, b);\n a = c[d >> 2] | 0;\n b = c[(d + 4) >> 2] | 0;\n if ((a | 0) != (b | 0)) {\n b = (b + -8 - a) | 0;\n wr(a | 0, 0, ((b + 8) & -8) | 0) | 0;\n c[d >> 2] = a + (((b >>> 3) + 1) << 3);\n }\n Fc(d);\n V = e;\n return;\n }\n function zc(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0;\n e = c[a >> 2] | 0;\n h = (a + 4) | 0;\n g = (b + 4) | 0;\n f = ((c[h >> 2] | 0) - e) | 0;\n d = ((c[g >> 2] | 0) + ((0 - (f >> 3)) << 3)) | 0;\n c[g >> 2] = d;\n if ((f | 0) > 0) {\n ur(d | 0, e | 0, f | 0) | 0;\n e = g;\n d = c[g >> 2] | 0;\n }\n else\n e = g;\n g = c[a >> 2] | 0;\n c[a >> 2] = d;\n c[e >> 2] = g;\n g = (b + 8) | 0;\n f = c[h >> 2] | 0;\n c[h >> 2] = c[g >> 2];\n c[g >> 2] = f;\n g = (a + 8) | 0;\n h = (b + 12) | 0;\n a = c[g >> 2] | 0;\n c[g >> 2] = c[h >> 2];\n c[h >> 2] = a;\n c[b >> 2] = c[e >> 2];\n return;\n }\n function Ac(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0;\n b = c[(a + 4) >> 2] | 0;\n d = (a + 8) | 0;\n e = c[d >> 2] | 0;\n if ((e | 0) != (b | 0))\n c[d >> 2] = e + (~(((e + -8 - b) | 0) >>> 3) << 3);\n b = c[a >> 2] | 0;\n if (b | 0)\n Da(b, ((c[(a + 12) >> 2] | 0) - b) | 0);\n return;\n }\n function Bc(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n c[a >> 2] = b;\n b = c[(b + 4) >> 2] | 0;\n c[(a + 4) >> 2] = b;\n c[(a + 8) >> 2] = b + (d << 3);\n return;\n }\n function Cc(a) {\n a = a | 0;\n c[((c[a >> 2] | 0) + 4) >> 2] = c[(a + 4) >> 2];\n return;\n }\n function Dc(a) {\n a = a | 0;\n return 536870911;\n }\n function Ec(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n c[a >> 2] = c[b >> 2];\n c[(a + 4) >> 2] = (c[b >> 2] | 0) + (d << 3);\n c[(a + 8) >> 2] = b;\n return;\n }\n function Fc(a) {\n a = a | 0;\n c[c[(a + 8) >> 2] >> 2] = c[a >> 2];\n return;\n }\n function Gc(a) {\n a = a | 0;\n c[(a + 12) >> 2] = 1;\n c[(a + 16) >> 2] = 2;\n c[(a + 8) >> 2] = 4096;\n c[(a + 4) >> 2] = 4;\n c[a >> 2] = 4;\n return;\n }\n function Hc(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0;\n d = c[a >> 2] | 0;\n if (d | 0) {\n e = (a + 4) | 0;\n b = c[e >> 2] | 0;\n if ((b | 0) == (d | 0))\n b = d;\n else {\n do {\n b = (b + -44) | 0;\n Ic(b);\n } while ((b | 0) != (d | 0));\n b = c[a >> 2] | 0;\n }\n c[e >> 2] = d;\n Da(b, ((c[(a + 8) >> 2] | 0) - b) | 0);\n }\n return;\n }\n function Ic(a) {\n a = a | 0;\n var b = 0;\n b = c[(a + 8) >> 2] | 0;\n if (b | 0)\n Ua(b);\n b = c[(a + 12) >> 2] | 0;\n if (b | 0)\n Ua(b);\n b = c[(a + 16) >> 2] | 0;\n if (b | 0)\n Ua(b);\n return;\n }\n function Jc(b) {\n b = b | 0;\n var d = 0, e = 0;\n e = (b + 4) | 0;\n d = c[e >> 2] | 0;\n if ((d | 0) >= (c[(b + 8) >> 2] | 0)) {\n Kc(b);\n d = c[e >> 2] | 0;\n }\n b = c[(b + 12) >> 2] | 0;\n c[e >> 2] = d + 1;\n return a[(b + d) >> 0] | 0;\n }\n function Kc(a) {\n a = a | 0;\n var b = 0;\n c[(a + 4) >> 2] = 0;\n $a(c[a >> 2] | 0, c[(a + 12) >> 2] | 0, 1048576);\n b = Lc(c[a >> 2] | 0) | 0;\n c[(a + 8) >> 2] = b;\n if (!b) {\n b = v(8) | 0;\n Mc(b);\n x(b | 0, 2752, 8);\n }\n else\n return;\n }\n function Lc(a) {\n a = a | 0;\n return c[(a + 16) >> 2] | 0;\n }\n function Mc(a) {\n a = a | 0;\n xq(a, 7769);\n c[a >> 2] = 4556;\n return;\n }\n function Nc(a) {\n a = a | 0;\n yp(a);\n jp(a);\n return;\n }\n function Oc(b, d, e, f) {\n b = b | 0;\n d = d | 0;\n e = e | 0;\n f = f | 0;\n var g = 0, h = 0, i = 0;\n c[b >> 2] = d;\n a[(b + 4) >> 0] = e & 1;\n h = (b + 8) | 0;\n c[h >> 2] = 0;\n i = (b + 12) | 0;\n c[i >> 2] = 0;\n g = (b + 16) | 0;\n c[g >> 2] = 0;\n if (((d + -2) | 0) >>> 0 > 2046) {\n b = v(8) | 0;\n xq(b, 7789);\n x(b | 0, 3912, 8);\n }\n c[(b + 32) >> 2] = d + -1;\n if ((d >>> 0 > 16) & (e ^ 1)) {\n e = 3;\n while (1)\n if ((1 << (e + 2)) >>> 0 < d >>> 0)\n e = (e + 1) | 0;\n else\n break;\n d = 1 << e;\n c[(b + 36) >> 2] = d;\n c[(b + 40) >> 2] = 15 - e;\n c[g >> 2] = _a(((d << 2) + 8) | 0) | 0;\n d = c[b >> 2] | 0;\n }\n else {\n c[g >> 2] = 0;\n c[(b + 40) >> 2] = 0;\n c[(b + 36) >> 2] = 0;\n }\n c[h >> 2] = _a(d << 2) | 0;\n g = _a(c[b >> 2] << 2) | 0;\n c[i >> 2] = g;\n c[(b + 20) >> 2] = 0;\n d = c[b >> 2] | 0;\n e = (b + 24) | 0;\n c[e >> 2] = d;\n d = (d | 0) != 0;\n if (!f) {\n if (d) {\n d = 0;\n do {\n c[(g + (d << 2)) >> 2] = 1;\n d = (d + 1) | 0;\n } while (d >>> 0 < (c[b >> 2] | 0) >>> 0);\n }\n }\n else if (d) {\n d = 0;\n do {\n c[(g + (d << 2)) >> 2] = c[(f + (d << 2)) >> 2];\n d = (d + 1) | 0;\n } while (d >>> 0 < (c[b >> 2] | 0) >>> 0);\n }\n Xc(b);\n f = (((c[b >> 2] | 0) + 6) | 0) >>> 1;\n c[e >> 2] = f;\n c[(b + 28) >> 2] = f;\n return;\n }\n function Pc(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n c[a >> 2] = b;\n b = c[(b + 4) >> 2] | 0;\n c[(a + 4) >> 2] = b;\n c[(a + 8) >> 2] = b + ((d * 44) | 0);\n return;\n }\n function Qc(a) {\n a = a | 0;\n c[((c[a >> 2] | 0) + 4) >> 2] = c[(a + 4) >> 2];\n return;\n }\n function Rc(b, d) {\n b = b | 0;\n d = d | 0;\n var e = 0;\n c[b >> 2] = c[d >> 2];\n a[(b + 4) >> 0] = a[(d + 4) >> 0] | 0;\n e = (d + 8) | 0;\n c[(b + 8) >> 2] = c[e >> 2];\n c[(b + 12) >> 2] = c[(d + 12) >> 2];\n c[(b + 16) >> 2] = c[(d + 16) >> 2];\n c[(b + 20) >> 2] = c[(d + 20) >> 2];\n c[(b + 24) >> 2] = c[(d + 24) >> 2];\n c[(b + 28) >> 2] = c[(d + 28) >> 2];\n c[(b + 32) >> 2] = c[(d + 32) >> 2];\n c[(b + 36) >> 2] = c[(d + 36) >> 2];\n c[(b + 40) >> 2] = c[(d + 40) >> 2];\n c[e >> 2] = 0;\n c[(e + 4) >> 2] = 0;\n c[(e + 8) >> 2] = 0;\n return;\n }\n function Sc(a, b, d, e) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n e = e | 0;\n var f = 0;\n f = (a + 12) | 0;\n c[f >> 2] = 0;\n c[(a + 16) >> 2] = e;\n do\n if (b)\n if (b >>> 0 > 97612893) {\n f = v(8) | 0;\n vq(f, 6723);\n c[f >> 2] = 5956;\n x(f | 0, 3928, 123);\n }\n else {\n e = eq((b * 44) | 0) | 0;\n break;\n }\n else\n e = 0;\n while (0);\n c[a >> 2] = e;\n d = (e + ((d * 44) | 0)) | 0;\n c[(a + 8) >> 2] = d;\n c[(a + 4) >> 2] = d;\n c[f >> 2] = e + ((b * 44) | 0);\n return;\n }\n function Tc(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0;\n i = c[a >> 2] | 0;\n j = (a + 4) | 0;\n d = c[j >> 2] | 0;\n h = (b + 4) | 0;\n if ((d | 0) == (i | 0)) {\n f = h;\n g = a;\n e = c[h >> 2] | 0;\n d = i;\n }\n else {\n e = c[h >> 2] | 0;\n do {\n d = (d + -44) | 0;\n Wc((e + -44) | 0, d);\n e = ((c[h >> 2] | 0) + -44) | 0;\n c[h >> 2] = e;\n } while ((d | 0) != (i | 0));\n f = h;\n g = a;\n d = c[a >> 2] | 0;\n }\n c[g >> 2] = e;\n c[f >> 2] = d;\n i = (b + 8) | 0;\n h = c[j >> 2] | 0;\n c[j >> 2] = c[i >> 2];\n c[i >> 2] = h;\n i = (a + 8) | 0;\n j = (b + 12) | 0;\n a = c[i >> 2] | 0;\n c[i >> 2] = c[j >> 2];\n c[j >> 2] = a;\n c[b >> 2] = c[f >> 2];\n return;\n }\n function Uc(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0, f = 0;\n d = c[(a + 4) >> 2] | 0;\n e = (a + 8) | 0;\n b = c[e >> 2] | 0;\n if ((b | 0) != (d | 0))\n do {\n f = (b + -44) | 0;\n c[e >> 2] = f;\n Ic(f);\n b = c[e >> 2] | 0;\n } while ((b | 0) != (d | 0));\n b = c[a >> 2] | 0;\n if (b | 0)\n Da(b, ((c[(a + 12) >> 2] | 0) - b) | 0);\n return;\n }\n function Vc(a) {\n a = a | 0;\n return 97612893;\n }\n function Wc(b, d) {\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0, g = 0, h = 0;\n e = c[d >> 2] | 0;\n c[b >> 2] = e;\n a[(b + 4) >> 0] = a[(d + 4) >> 0] | 0;\n c[(b + 20) >> 2] = c[(d + 20) >> 2];\n c[(b + 24) >> 2] = c[(d + 24) >> 2];\n c[(b + 28) >> 2] = c[(d + 28) >> 2];\n c[(b + 32) >> 2] = c[(d + 32) >> 2];\n h = (b + 36) | 0;\n c[h >> 2] = c[(d + 36) >> 2];\n c[(b + 40) >> 2] = c[(d + 40) >> 2];\n e = e << 2;\n f = _a(e) | 0;\n c[(b + 8) >> 2] = f;\n g = c[b >> 2] | 0;\n if (g | 0)\n vr(f | 0, c[(d + 8) >> 2] | 0, (g << 2) | 0) | 0;\n e = _a(e) | 0;\n c[(b + 12) >> 2] = e;\n f = c[b >> 2] | 0;\n if (f | 0)\n vr(e | 0, c[(d + 12) >> 2] | 0, (f << 2) | 0) | 0;\n e = c[h >> 2] | 0;\n if (e) {\n f = _a(((e << 2) + 8) | 0) | 0;\n c[(b + 16) >> 2] = f;\n e = ((c[h >> 2] << 2) + 8) | 0;\n if (e | 0)\n vr(f | 0, c[(d + 16) >> 2] | 0, e | 0) | 0;\n }\n else\n c[(b + 16) >> 2] = 0;\n return;\n }\n function Xc(b) {\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, r = 0;\n r = (b + 24) | 0;\n g = (b + 20) | 0;\n d = ((c[g >> 2] | 0) + (c[r >> 2] | 0)) | 0;\n c[g >> 2] = d;\n if (d >>> 0 > 32768) {\n c[g >> 2] = 0;\n if (!(c[b >> 2] | 0))\n d = 0;\n else {\n f = c[(b + 12) >> 2] | 0;\n e = 0;\n do {\n n = (f + (e << 2)) | 0;\n d = (((c[n >> 2] | 0) + 1) | 0) >>> 1;\n c[n >> 2] = d;\n d = ((c[g >> 2] | 0) + d) | 0;\n c[g >> 2] = d;\n e = (e + 1) | 0;\n } while (e >>> 0 < (c[b >> 2] | 0) >>> 0);\n }\n }\n n = (2147483648 / (d >>> 0)) | 0;\n do\n if ((a[(b + 4) >> 0] | 0) == 0 ? ((o = (b + 36) | 0), (c[o >> 2] | 0) != 0) : 0) {\n if (c[b >> 2] | 0) {\n j = c[(b + 8) >> 2] | 0;\n k = c[(b + 12) >> 2] | 0;\n l = (b + 40) | 0;\n m = (b + 16) | 0;\n d = 0;\n h = 0;\n i = 0;\n do {\n e = (q(h, n) | 0) >>> 16;\n c[(j + (i << 2)) >> 2] = e;\n h = ((c[(k + (i << 2)) >> 2] | 0) + h) | 0;\n e = e >>> (c[l >> 2] | 0);\n if (d >>> 0 < e >>> 0) {\n f = (i + -1) | 0;\n g = c[m >> 2] | 0;\n do {\n d = (d + 1) | 0;\n c[(g + (d << 2)) >> 2] = f;\n } while ((d | 0) != (e | 0));\n d = e;\n }\n i = (i + 1) | 0;\n } while (i >>> 0 < (c[b >> 2] | 0) >>> 0);\n e = c[m >> 2] | 0;\n c[e >> 2] = 0;\n if (d >>> 0 > (c[o >> 2] | 0) >>> 0) {\n d = b;\n break;\n }\n }\n else {\n e = c[(b + 16) >> 2] | 0;\n c[e >> 2] = 0;\n d = 0;\n }\n do {\n d = (d + 1) | 0;\n c[(e + (d << 2)) >> 2] = (c[b >> 2] | 0) + -1;\n } while (d >>> 0 <= (c[o >> 2] | 0) >>> 0);\n d = b;\n }\n else\n p = 7;\n while (0);\n if ((p | 0) == 7)\n if (!(c[b >> 2] | 0))\n d = b;\n else {\n f = c[(b + 8) >> 2] | 0;\n g = c[(b + 12) >> 2] | 0;\n d = 0;\n e = 0;\n do {\n c[(f + (d << 2)) >> 2] = (q(e, n) | 0) >>> 16;\n e = ((c[(g + (d << 2)) >> 2] | 0) + e) | 0;\n d = (d + 1) | 0;\n } while (d >>> 0 < (c[b >> 2] | 0) >>> 0);\n d = b;\n }\n p = (((c[r >> 2] | 0) * 5) | 0) >>> 2;\n o = ((c[d >> 2] << 3) + 48) | 0;\n p = p >>> 0 > o >>> 0 ? o : p;\n c[r >> 2] = p;\n c[(b + 28) >> 2] = p;\n return;\n }\n function Yc(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0;\n d = Zc(b, d) | 0;\n c[a >> 2] = d;\n do\n if (d) {\n if (d >>> 0 >= 32) {\n d = c[(a + 28) >> 2] | 0;\n break;\n }\n e = c[(a + 12) >> 2] | 0;\n if (d >>> 0 > e >>> 0) {\n e = (d - e) | 0;\n d = Zc(b, ((c[(a + 68) >> 2] | 0) + ((((d + -1) | 0) * 44) | 0)) | 0) | 0;\n e = (d << e) | (_c(b, e) | 0);\n }\n else\n e = Zc(b, ((c[(a + 68) >> 2] | 0) + ((((d + -1) | 0) * 44) | 0)) | 0) | 0;\n d = c[a >> 2] | 0;\n if ((e | 0) < ((1 << (d + -1)) | 0)) {\n d = (e + 1 + (-1 << d)) | 0;\n break;\n }\n else {\n d = (e + 1) | 0;\n break;\n }\n }\n else\n d = $c(b, (a + 48) | 0) | 0;\n while (0);\n return d | 0;\n }\n function Zc(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0;\n n = (a + 8) | 0;\n m = c[n >> 2] | 0;\n f = c[(b + 16) >> 2] | 0;\n if (f) {\n e = (a + 4) | 0;\n d = c[e >> 2] | 0;\n l = m >>> 15;\n c[n >> 2] = l;\n j = ((d >>> 0) / (l >>> 0)) | 0;\n i = j >>> (c[(b + 40) >> 2] | 0);\n g = c[(f + (i << 2)) >> 2] | 0;\n i = ((c[(f + ((i + 1) << 2)) >> 2] | 0) + 1) | 0;\n h = (g + 1) | 0;\n k = c[(b + 8) >> 2] | 0;\n if (i >>> 0 > h >>> 0) {\n f = g;\n g = i;\n do {\n h = ((g + f) | 0) >>> 1;\n i = (c[(k + (h << 2)) >> 2] | 0) >>> 0 > j >>> 0;\n f = i ? f : h;\n g = i ? h : g;\n h = (f + 1) | 0;\n } while (g >>> 0 > h >>> 0);\n g = f;\n }\n f = q(c[(k + (g << 2)) >> 2] | 0, l) | 0;\n if ((g | 0) == (c[(b + 32) >> 2] | 0))\n h = m;\n else\n h = q(c[(k + (h << 2)) >> 2] | 0, l) | 0;\n }\n else {\n k = m >>> 15;\n c[n >> 2] = k;\n i = c[b >> 2] | 0;\n l = c[(b + 8) >> 2] | 0;\n e = (a + 4) | 0;\n d = c[e >> 2] | 0;\n j = i >>> 1;\n f = 0;\n h = m;\n g = 0;\n do {\n o = q(c[(l + (j << 2)) >> 2] | 0, k) | 0;\n m = o >>> 0 > d >>> 0;\n h = m ? o : h;\n f = m ? f : o;\n g = m ? g : j;\n i = m ? j : i;\n j = ((g + i) | 0) >>> 1;\n } while ((j | 0) != (g | 0));\n }\n c[e >> 2] = d - f;\n o = (h - f) | 0;\n c[n >> 2] = o;\n if (o >>> 0 < 16777216)\n ad(a);\n n = ((c[(b + 12) >> 2] | 0) + (g << 2)) | 0;\n c[n >> 2] = (c[n >> 2] | 0) + 1;\n n = (b + 28) | 0;\n o = ((c[n >> 2] | 0) + -1) | 0;\n c[n >> 2] = o;\n if (!o)\n Xc(b);\n return g | 0;\n }\n function _c(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0;\n if (b >>> 0 > 19) {\n d = (bd(a) | 0) & 65535;\n return ((_c(a, (b + -16) | 0) | 0) << 16) | d | 0;\n }\n e = (a + 4) | 0;\n f = c[e >> 2] | 0;\n g = (a + 8) | 0;\n d = (c[g >> 2] | 0) >>> b;\n c[g >> 2] = d;\n b = ((f >>> 0) / (d >>> 0)) | 0;\n c[e >> 2] = f - (q(b, d) | 0);\n if (d >>> 0 < 16777216)\n ad(a);\n return b | 0;\n }\n function $c(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0;\n e = (a + 8) | 0;\n f = c[e >> 2] | 0;\n d = q(f >>> 13, c[(b + 8) >> 2] | 0) | 0;\n g = (a + 4) | 0;\n h = c[g >> 2] | 0;\n i = h >>> 0 >= d >>> 0;\n if (i) {\n c[g >> 2] = h - d;\n d = (f - d) | 0;\n c[e >> 2] = d;\n }\n else {\n c[e >> 2] = d;\n h = (b + 12) | 0;\n c[h >> 2] = (c[h >> 2] | 0) + 1;\n }\n if (d >>> 0 < 16777216)\n ad(a);\n h = (b + 4) | 0;\n a = ((c[h >> 2] | 0) + -1) | 0;\n c[h >> 2] = a;\n if (!a)\n cd(b);\n return (i & 1) | 0;\n }\n function ad(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0, f = 0;\n b = (a + 4) | 0;\n d = (a + 8) | 0;\n e = c[b >> 2] | 0;\n do {\n e = (e << 8) | ((Jc(c[a >> 2] | 0) | 0) & 255);\n c[b >> 2] = e;\n f = c[d >> 2] << 8;\n c[d >> 2] = f;\n } while (f >>> 0 < 16777216);\n return;\n }\n function bd(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0, f = 0;\n d = (a + 4) | 0;\n f = c[d >> 2] | 0;\n b = (a + 8) | 0;\n e = (c[b >> 2] | 0) >>> 16;\n c[b >> 2] = e;\n b = ((f >>> 0) / (e >>> 0)) | 0;\n c[d >> 2] = f - (q(b, e) | 0);\n ad(a);\n return (b & 65535) | 0;\n }\n function cd(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0, f = 0, g = 0;\n f = c[a >> 2] | 0;\n d = (a + 16) | 0;\n b = ((c[d >> 2] | 0) + f) | 0;\n c[d >> 2] = b;\n if (b >>> 0 > 8192) {\n e = ((b + 1) | 0) >>> 1;\n c[d >> 2] = e;\n g = (a + 12) | 0;\n b = (((c[g >> 2] | 0) + 1) | 0) >>> 1;\n c[g >> 2] = b;\n if ((b | 0) == (e | 0)) {\n b = (e + 1) | 0;\n c[d >> 2] = b;\n d = b;\n b = e;\n }\n else\n d = e;\n }\n else {\n d = b;\n b = c[(a + 12) >> 2] | 0;\n }\n c[(a + 8) >> 2] = (q(b, (2147483648 / (d >>> 0)) | 0) | 0) >>> 18;\n g = (f * 5) | 0;\n g = g >>> 0 > 259 ? 64 : g >>> 2;\n c[a >> 2] = g;\n c[(a + 4) >> 2] = g;\n return;\n }\n function dd(a, b) {\n a = a | 0;\n b = b | 0;\n var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0;\n m = V;\n V = (V + 32) | 0;\n h = (m + 16) | 0;\n i = (m + 8) | 0;\n j = m;\n k = (a + 336) | 0;\n f = k;\n g = (a + 259) | 0;\n if (!((c[(f + 4) >> 2] | 0) == 0\n ? (c[f >> 2] | 0) ==\n (d[g >> 0] |\n (d[(g + 1) >> 0] << 8) |\n (d[(g + 2) >> 0] << 16) |\n (d[(g + 3) >> 0] << 24) |\n 0)\n : 0)) {\n f = (a + 320) | 0;\n e = c[f >> 2] | 0;\n g = e;\n if (!((e | 0) != 0 ? (c[(a + 312) >> 2] | 0) != 0 : 0)) {\n e = g;\n l = 5;\n }\n }\n else {\n f = (a + 320) | 0;\n e = c[(a + 320) >> 2] | 0;\n l = 5;\n }\n if ((l | 0) == 5) {\n l = (a + 320) | 0;\n c[h >> 2] = e;\n c[l >> 2] = 0;\n e = (a + 324) | 0;\n c[(h + 4) >> 2] = c[e >> 2];\n c[e >> 2] = 0;\n Na(h);\n g = (a + 312) | 0;\n c[h >> 2] = c[g >> 2];\n c[g >> 2] = 0;\n n = (a + 316) | 0;\n c[(h + 4) >> 2] = c[n >> 2];\n c[n >> 2] = 0;\n Oa(h);\n o = eq(12) | 0;\n lc(o, (a + 4) | 0);\n c[j >> 2] = 0;\n c[h >> 2] = c[j >> 2];\n fd(i, o, h);\n o = c[i >> 2] | 0;\n c[i >> 2] = c[g >> 2];\n c[g >> 2] = o;\n o = (i + 4) | 0;\n j = c[o >> 2] | 0;\n c[o >> 2] = c[n >> 2];\n c[n >> 2] = j;\n Oa(i);\n ed(i, c[g >> 2] | 0, (a + 300) | 0);\n g = c[i >> 2] | 0;\n n = (i + 4) | 0;\n j = c[n >> 2] | 0;\n c[i >> 2] = 0;\n c[n >> 2] = 0;\n c[h >> 2] = c[l >> 2];\n c[l >> 2] = g;\n c[(h + 4) >> 2] = c[e >> 2];\n c[e >> 2] = j;\n Na(h);\n Na(i);\n e = (a + 328) | 0;\n j = e;\n j = lr(c[j >> 2] | 0, c[(j + 4) >> 2] | 0, 1, 0) | 0;\n l = u() | 0;\n c[e >> 2] = j;\n c[(e + 4) >> 2] = l;\n e = k;\n c[e >> 2] = 0;\n c[(e + 4) >> 2] = 0;\n e = c[f >> 2] | 0;\n }\n $[c[c[e >> 2] >> 2] & 63](e, b) | 0;\n l = k;\n l = lr(c[l >> 2] | 0, c[(l + 4) >> 2] | 0, 1, 0) | 0;\n n = u() | 0;\n o = k;\n c[o >> 2] = l;\n c[(o + 4) >> 2] = n;\n V = m;\n return;\n }\n function ed(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0, g = 0, h = 0;\n h = V;\n V = (V + 64) | 0;\n e = (h + 56) | 0;\n f = h;\n g = ld(d) | 0;\n if ((g | 0) == -1) {\n h = v(8) | 0;\n md(h);\n x(h | 0, 2784, 8);\n }\n d = nd(d) | 0;\n a: do\n if (!d)\n switch (g | 0) {\n case 0: {\n g = eq(4788) | 0;\n xd(g);\n wd(a, b, g);\n break a;\n }\n case 1: {\n g = eq(5116) | 0;\n zd(g);\n yd(a, b, g);\n break a;\n }\n case 2: {\n g = eq(5104) | 0;\n Bd(g);\n Ad(a, b, g);\n break a;\n }\n case 3: {\n g = eq(5432) | 0;\n Dd(g);\n Cd(a, b, g);\n break a;\n }\n default: {\n c[a >> 2] = 0;\n c[(a + 4) >> 2] = 0;\n break a;\n }\n }\n else {\n od(e, b);\n pd(c[e >> 2] | 0);\n if ((g | 2 | 0) == 3)\n qd(c[e >> 2] | 0);\n if ((g | 1 | 0) == 3)\n rd(c[e >> 2] | 0);\n g = c[e >> 2] | 0;\n td(f, d);\n sd(g, f);\n ud(f);\n c[a >> 2] = c[e >> 2];\n g = (e + 4) | 0;\n c[(a + 4) >> 2] = c[g >> 2];\n c[e >> 2] = 0;\n c[g >> 2] = 0;\n vd(e);\n }\n while (0);\n V = h;\n return;\n }\n function fd(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n d = V;\n V = (V + 16) | 0;\n e = d;\n c[a >> 2] = b;\n f = eq(16) | 0;\n c[(f + 4) >> 2] = 0;\n c[(f + 8) >> 2] = 0;\n c[f >> 2] = 4576;\n c[(f + 12) >> 2] = b;\n c[(a + 4) >> 2] = f;\n c[e >> 2] = b;\n c[(e + 4) >> 2] = b;\n gd(a, e);\n V = d;\n return;\n }\n function gd(a, b) {\n a = a | 0;\n b = b | 0;\n return;\n }\n function hd(a) {\n a = a | 0;\n pq(a);\n jp(a);\n return;\n }\n function id(a) {\n a = a | 0;\n a = c[(a + 12) >> 2] | 0;\n if (a | 0) {\n rc(a);\n jp(a);\n }\n return;\n }\n function jd(a, b) {\n a = a | 0;\n b = b | 0;\n return ((c[(b + 4) >> 2] | 0) == 7983 ? (a + 12) | 0 : 0) | 0;\n }\n function kd(a) {\n a = a | 0;\n Da(a, 16);\n return;\n }\n function ld(a) {\n a = a | 0;\n var b = 0, d = 0;\n b = ((c[(a + 4) >> 2] | 0) - (c[a >> 2] | 0)) | 0;\n a: do\n if (((b | 0) != 0\n ? ((d = ((((b | 0) / 12) | 0) + ((((nd(a) | 0) != 0) << 31) >> 31)) | 0),\n (d | 0) != 0)\n : 0)\n ? ((b = c[a >> 2] | 0), !(Ed(b, Fd() | 0) | 0))\n : 0) {\n switch (d | 0) {\n case 1: {\n a = 0;\n break a;\n }\n case 2: {\n if (Gd(((c[a >> 2] | 0) + 12) | 0, Hd() | 0) | 0) {\n a = 1;\n break a;\n }\n if (Gd(((c[a >> 2] | 0) + 12) | 0, Id() | 0) | 0) {\n a = 2;\n break a;\n }\n break;\n }\n case 3: {\n if (Gd(((c[a >> 2] | 0) + 12) | 0, Hd() | 0) | 0\n ? ((d = ((c[a >> 2] | 0) + 24) | 0), Gd(d, Id() | 0) | 0)\n : 0) {\n a = 3;\n break a;\n }\n break;\n }\n default: {\n }\n }\n a = -1;\n }\n else\n a = -1;\n while (0);\n return a | 0;\n }\n function md(a) {\n a = a | 0;\n xq(a, 8131);\n c[a >> 2] = 4604;\n return;\n }\n function nd(a) {\n a = a | 0;\n var b = 0, d = 0;\n b = c[(a + 4) >> 2] | 0;\n if (((b | 0) != (c[a >> 2] | 0) ? ((d = b), (c[(d + -12) >> 2] | 0) == 0) : 0)\n ? (c[(d + -4) >> 2] | 0) == 2\n : 0)\n a = c[(d + -8) >> 2] | 0;\n else\n a = 0;\n return a | 0;\n }\n function od(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0;\n d = V;\n V = (V + 16) | 0;\n e = (d + 4) | 0;\n g = d;\n f = eq(24) | 0;\n Kd(f, b);\n c[g >> 2] = 0;\n c[e >> 2] = c[g >> 2];\n Ld(a, f, e);\n V = d;\n return;\n }\n function pd(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0;\n j = V;\n V = (V + 32) | 0;\n e = (j + 12) | 0;\n f = j;\n b = (j + 8) | 0;\n h = eq(4792) | 0;\n Zd(h, c[(a + 4) >> 2] | 0);\n g = (a + 8) | 0;\n c[b >> 2] = 0;\n c[e >> 2] = c[b >> 2];\n _d(f, h, e);\n h = (a + 12) | 0;\n b = c[h >> 2] | 0;\n i = (a + 16) | 0;\n do\n if (b >>> 0 >= (c[i >> 2] | 0) >>> 0) {\n b = (((b - (c[g >> 2] | 0)) >> 3) + 1) | 0;\n d = ee(g) | 0;\n if (d >>> 0 < b >>> 0)\n cr(g);\n else {\n k = c[g >> 2] | 0;\n l = ((c[i >> 2] | 0) - k) | 0;\n i = l >> 2;\n be(e, (l >> 3) >>> 0 < (d >>> 1) >>> 0 ? (i >>> 0 < b >>> 0 ? b : i) : d, ((c[h >> 2] | 0) - k) >> 3, (a + 16) | 0);\n i = (e + 8) | 0;\n h = c[i >> 2] | 0;\n c[h >> 2] = c[f >> 2];\n a = (f + 4) | 0;\n c[(h + 4) >> 2] = c[a >> 2];\n c[f >> 2] = 0;\n c[a >> 2] = 0;\n c[i >> 2] = h + 8;\n ce(g, e);\n de(e);\n break;\n }\n }\n else {\n $d(e, g, 1);\n l = (e + 4) | 0;\n k = c[l >> 2] | 0;\n c[k >> 2] = c[f >> 2];\n i = (f + 4) | 0;\n c[(k + 4) >> 2] = c[i >> 2];\n c[f >> 2] = 0;\n c[i >> 2] = 0;\n c[l >> 2] = k + 8;\n ae(e);\n }\n while (0);\n Sd(f);\n V = j;\n return;\n }\n function qd(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0;\n j = V;\n V = (V + 32) | 0;\n e = (j + 12) | 0;\n f = j;\n b = (j + 8) | 0;\n h = eq(336) | 0;\n af(h, c[(a + 4) >> 2] | 0);\n g = (a + 8) | 0;\n c[b >> 2] = 0;\n c[e >> 2] = c[b >> 2];\n bf(f, h, e);\n h = (a + 12) | 0;\n b = c[h >> 2] | 0;\n i = (a + 16) | 0;\n do\n if (b >>> 0 >= (c[i >> 2] | 0) >>> 0) {\n b = (((b - (c[g >> 2] | 0)) >> 3) + 1) | 0;\n d = ee(g) | 0;\n if (d >>> 0 < b >>> 0)\n cr(g);\n else {\n k = c[g >> 2] | 0;\n l = ((c[i >> 2] | 0) - k) | 0;\n i = l >> 2;\n be(e, (l >> 3) >>> 0 < (d >>> 1) >>> 0 ? (i >>> 0 < b >>> 0 ? b : i) : d, ((c[h >> 2] | 0) - k) >> 3, (a + 16) | 0);\n i = (e + 8) | 0;\n h = c[i >> 2] | 0;\n c[h >> 2] = c[f >> 2];\n a = (f + 4) | 0;\n c[(h + 4) >> 2] = c[a >> 2];\n c[f >> 2] = 0;\n c[a >> 2] = 0;\n c[i >> 2] = h + 8;\n ce(g, e);\n de(e);\n break;\n }\n }\n else {\n $d(e, g, 1);\n l = (e + 4) | 0;\n k = c[l >> 2] | 0;\n c[k >> 2] = c[f >> 2];\n i = (f + 4) | 0;\n c[(k + 4) >> 2] = c[i >> 2];\n c[f >> 2] = 0;\n c[i >> 2] = 0;\n c[l >> 2] = k + 8;\n ae(e);\n }\n while (0);\n Sd(f);\n V = j;\n return;\n }\n function rd(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0;\n j = V;\n V = (V + 32) | 0;\n e = (j + 12) | 0;\n f = j;\n b = (j + 8) | 0;\n h = eq(324) | 0;\n Af(h, c[(a + 4) >> 2] | 0);\n g = (a + 8) | 0;\n c[b >> 2] = 0;\n c[e >> 2] = c[b >> 2];\n Bf(f, h, e);\n h = (a + 12) | 0;\n b = c[h >> 2] | 0;\n i = (a + 16) | 0;\n do\n if (b >>> 0 >= (c[i >> 2] | 0) >>> 0) {\n b = (((b - (c[g >> 2] | 0)) >> 3) + 1) | 0;\n d = ee(g) | 0;\n if (d >>> 0 < b >>> 0)\n cr(g);\n else {\n k = c[g >> 2] | 0;\n l = ((c[i >> 2] | 0) - k) | 0;\n i = l >> 2;\n be(e, (l >> 3) >>> 0 < (d >>> 1) >>> 0 ? (i >>> 0 < b >>> 0 ? b : i) : d, ((c[h >> 2] | 0) - k) >> 3, (a + 16) | 0);\n i = (e + 8) | 0;\n h = c[i >> 2] | 0;\n c[h >> 2] = c[f >> 2];\n a = (f + 4) | 0;\n c[(h + 4) >> 2] = c[a >> 2];\n c[f >> 2] = 0;\n c[a >> 2] = 0;\n c[i >> 2] = h + 8;\n ce(g, e);\n de(e);\n break;\n }\n }\n else {\n $d(e, g, 1);\n l = (e + 4) | 0;\n k = c[l >> 2] | 0;\n c[k >> 2] = c[f >> 2];\n i = (f + 4) | 0;\n c[(k + 4) >> 2] = c[i >> 2];\n c[f >> 2] = 0;\n c[i >> 2] = 0;\n c[l >> 2] = k + 8;\n ae(e);\n }\n while (0);\n Sd(f);\n V = j;\n return;\n }\n function sd(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0;\n j = V;\n V = (V + 32) | 0;\n h = (j + 12) | 0;\n i = j;\n e = (j + 8) | 0;\n g = eq(64) | 0;\n Qf(g, c[(a + 4) >> 2] | 0, b);\n f = (a + 8) | 0;\n c[e >> 2] = 0;\n c[h >> 2] = c[e >> 2];\n Rf(i, g, h);\n g = (a + 12) | 0;\n b = c[g >> 2] | 0;\n e = (a + 16) | 0;\n do\n if (b >>> 0 >= (c[e >> 2] | 0) >>> 0) {\n b = (((b - (c[f >> 2] | 0)) >> 3) + 1) | 0;\n d = ee(f) | 0;\n if (d >>> 0 < b >>> 0)\n cr(f);\n else {\n k = c[f >> 2] | 0;\n l = ((c[e >> 2] | 0) - k) | 0;\n e = l >> 2;\n be(h, (l >> 3) >>> 0 < (d >>> 1) >>> 0 ? (e >>> 0 < b >>> 0 ? b : e) : d, ((c[g >> 2] | 0) - k) >> 3, (a + 16) | 0);\n a = (h + 8) | 0;\n g = c[a >> 2] | 0;\n c[g >> 2] = c[i >> 2];\n e = (i + 4) | 0;\n c[(g + 4) >> 2] = c[e >> 2];\n c[i >> 2] = 0;\n c[e >> 2] = 0;\n c[a >> 2] = g + 8;\n ce(f, h);\n de(h);\n break;\n }\n }\n else {\n $d(h, f, 1);\n l = (h + 4) | 0;\n k = c[l >> 2] | 0;\n c[k >> 2] = c[i >> 2];\n a = (i + 4) | 0;\n c[(k + 4) >> 2] = c[a >> 2];\n c[i >> 2] = 0;\n c[a >> 2] = 0;\n c[l >> 2] = k + 8;\n ae(h);\n }\n while (0);\n Sd(i);\n V = j;\n return;\n }\n function td(b, d) {\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n e = V;\n V = (V + 48) | 0;\n f = e;\n c[b >> 2] = d;\n a[(b + 4) >> 0] = 0;\n Jg((b + 8) | 0, d);\n Jg((b + 20) | 0, d);\n Oc(f, 256, 0, 0);\n Kg((b + 32) | 0, d, f);\n Ic(f);\n V = e;\n return;\n }\n function ud(a) {\n a = a | 0;\n Ng((a + 32) | 0);\n _f((a + 20) | 0);\n _f((a + 8) | 0);\n return;\n }\n function vd(a) {\n a = a | 0;\n var b = 0, d = 0;\n a = c[(a + 4) >> 2] | 0;\n if (a | 0 ? ((d = (a + 4) | 0), (b = c[d >> 2] | 0), (c[d >> 2] = b + -1), (b | 0) == 0) : 0) {\n ca[c[((c[a >> 2] | 0) + 8) >> 2] & 255](a);\n qq(a);\n }\n return;\n }\n function wd(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0, g = 0, h = 0;\n e = V;\n V = (V + 16) | 0;\n f = (e + 4) | 0;\n h = e;\n g = eq(12) | 0;\n Og(g, b, d);\n c[h >> 2] = 0;\n c[f >> 2] = c[h >> 2];\n Pg(a, g, f);\n V = e;\n return;\n }\n function xd(a) {\n a = a | 0;\n ge(a);\n $g((a + 4784) | 0);\n return;\n }\n function yd(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0, g = 0, h = 0;\n e = V;\n V = (V + 16) | 0;\n f = (e + 4) | 0;\n h = e;\n g = eq(12) | 0;\n ah(g, b, d);\n c[h >> 2] = 0;\n c[f >> 2] = c[h >> 2];\n bh(a, g, f);\n V = e;\n return;\n }\n function zd(a) {\n a = a | 0;\n ge(a);\n nh((a + 4784) | 0);\n return;\n }\n function Ad(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0, g = 0, h = 0;\n e = V;\n V = (V + 16) | 0;\n f = (e + 4) | 0;\n h = e;\n g = eq(12) | 0;\n oh(g, b, d);\n c[h >> 2] = 0;\n c[f >> 2] = c[h >> 2];\n ph(a, g, f);\n V = e;\n return;\n }\n function Bd(a) {\n a = a | 0;\n ge(a);\n Bh((a + 4784) | 0);\n return;\n }\n function Cd(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0, g = 0, h = 0;\n e = V;\n V = (V + 16) | 0;\n f = (e + 4) | 0;\n h = e;\n g = eq(12) | 0;\n Ch(g, b, d);\n c[h >> 2] = 0;\n c[f >> 2] = c[h >> 2];\n Dh(a, g, f);\n V = e;\n return;\n }\n function Dd(a) {\n a = a | 0;\n ge(a);\n Ph((a + 4784) | 0);\n return;\n }\n function Ed(a, b) {\n a = a | 0;\n b = b | 0;\n return ((Gd(a, b) | 0) ^ 1) | 0;\n }\n function Fd() {\n if ((a[21456] | 0) == 0 ? Tp(21456) | 0 : 0) {\n _b(21536, 6, 20, 2);\n $p(21456);\n }\n return 21536;\n }\n function Gd(a, b) {\n a = a | 0;\n b = b | 0;\n if ((c[a >> 2] | 0) == (c[b >> 2] | 0) ? (c[(a + 8) >> 2] | 0) == (c[(b + 8) >> 2] | 0) : 0)\n a = (c[(a + 4) >> 2] | 0) == (c[(b + 4) >> 2] | 0);\n else\n a = 0;\n return a | 0;\n }\n function Hd() {\n if ((a[21464] | 0) == 0 ? Tp(21464) | 0 : 0) {\n _b(21548, 7, 8, 2);\n $p(21464);\n }\n return 21548;\n }\n function Id() {\n if ((a[21472] | 0) == 0 ? Tp(21472) | 0 : 0) {\n _b(21560, 8, 6, 2);\n $p(21472);\n }\n return 21560;\n }\n function Jd(a) {\n a = a | 0;\n yp(a);\n jp(a);\n return;\n }\n function Kd(b, d) {\n b = b | 0;\n d = d | 0;\n Md(b);\n c[b >> 2] = 4624;\n c[(b + 4) >> 2] = d;\n c[(b + 8) >> 2] = 0;\n c[(b + 12) >> 2] = 0;\n c[(b + 16) >> 2] = 0;\n a[(b + 20) >> 0] = 1;\n return;\n }\n function Ld(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n d = V;\n V = (V + 16) | 0;\n e = d;\n c[a >> 2] = b;\n f = eq(16) | 0;\n c[(f + 4) >> 2] = 0;\n c[(f + 8) >> 2] = 0;\n c[f >> 2] = 4664;\n c[(f + 12) >> 2] = b;\n c[(a + 4) >> 2] = f;\n c[e >> 2] = b;\n c[(e + 4) >> 2] = b;\n Ud(a, e);\n V = d;\n return;\n }\n function Md(a) {\n a = a | 0;\n c[a >> 2] = 4644;\n return;\n }\n function Nd(b, d) {\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0;\n k = V;\n V = (V + 16) | 0;\n h = k;\n e = c[(b + 8) >> 2] | 0;\n i = c[(b + 12) >> 2] | 0;\n if ((e | 0) != (i | 0)) {\n j = (h + 4) | 0;\n do {\n f = c[e >> 2] | 0;\n c[h >> 2] = f;\n g = c[(e + 4) >> 2] | 0;\n c[j >> 2] = g;\n if (g | 0) {\n g = (g + 4) | 0;\n c[g >> 2] = (c[g >> 2] | 0) + 1;\n }\n d = $[c[((c[f >> 2] | 0) + 12) >> 2] & 63](f, d) | 0;\n Sd(h);\n e = (e + 8) | 0;\n } while ((e | 0) != (i | 0));\n }\n e = (b + 20) | 0;\n if (a[e >> 0] | 0) {\n a[e >> 0] = 0;\n nc(c[(b + 4) >> 2] | 0);\n }\n V = k;\n return d | 0;\n }\n function Od(a) {\n a = a | 0;\n c[a >> 2] = 4624;\n Td((a + 8) | 0);\n Qd(a);\n return;\n }\n function Pd(a) {\n a = a | 0;\n Od(a);\n jp(a);\n return;\n }\n function Qd(a) {\n a = a | 0;\n return;\n }\n function Rd(a) {\n a = a | 0;\n U();\n }\n function Sd(a) {\n a = a | 0;\n var b = 0, d = 0;\n a = c[(a + 4) >> 2] | 0;\n if (a | 0 ? ((d = (a + 4) | 0), (b = c[d >> 2] | 0), (c[d >> 2] = b + -1), (b | 0) == 0) : 0) {\n ca[c[((c[a >> 2] | 0) + 8) >> 2] & 255](a);\n qq(a);\n }\n return;\n }\n function Td(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0;\n d = c[a >> 2] | 0;\n if (d | 0) {\n e = (a + 4) | 0;\n b = c[e >> 2] | 0;\n if ((b | 0) == (d | 0))\n b = d;\n else {\n do {\n b = (b + -8) | 0;\n Sd(b);\n } while ((b | 0) != (d | 0));\n b = c[a >> 2] | 0;\n }\n c[e >> 2] = d;\n Da(b, ((c[(a + 8) >> 2] | 0) - b) | 0);\n }\n return;\n }\n function Ud(a, b) {\n a = a | 0;\n b = b | 0;\n return;\n }\n function Vd(a) {\n a = a | 0;\n pq(a);\n jp(a);\n return;\n }\n function Wd(a) {\n a = a | 0;\n a = c[(a + 12) >> 2] | 0;\n if (a | 0)\n ca[c[((c[a >> 2] | 0) + 8) >> 2] & 255](a);\n return;\n }\n function Xd(a, b) {\n a = a | 0;\n b = b | 0;\n return ((c[(b + 4) >> 2] | 0) == 8546 ? (a + 12) | 0 : 0) | 0;\n }\n function Yd(a) {\n a = a | 0;\n Da(a, 16);\n return;\n }\n function Zd(a, b) {\n a = a | 0;\n b = b | 0;\n fe(a);\n c[a >> 2] = 4692;\n c[(a + 4) >> 2] = b;\n ge((a + 8) | 0);\n return;\n }\n function _d(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n d = V;\n V = (V + 16) | 0;\n e = d;\n c[a >> 2] = b;\n f = eq(16) | 0;\n c[(f + 4) >> 2] = 0;\n c[(f + 8) >> 2] = 0;\n c[f >> 2] = 4740;\n c[(f + 12) >> 2] = b;\n c[(a + 4) >> 2] = f;\n c[e >> 2] = b;\n c[(e + 4) >> 2] = b;\n Xe(a, e);\n V = d;\n return;\n }\n function $d(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n c[a >> 2] = b;\n b = c[(b + 4) >> 2] | 0;\n c[(a + 4) >> 2] = b;\n c[(a + 8) >> 2] = b + (d << 3);\n return;\n }\n function ae(a) {\n a = a | 0;\n c[((c[a >> 2] | 0) + 4) >> 2] = c[(a + 4) >> 2];\n return;\n }\n function be(a, b, d, e) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n e = e | 0;\n var f = 0;\n f = (a + 12) | 0;\n c[f >> 2] = 0;\n c[(a + 16) >> 2] = e;\n do\n if (b)\n if (b >>> 0 > 536870911) {\n f = v(8) | 0;\n vq(f, 6723);\n c[f >> 2] = 5956;\n x(f | 0, 3928, 123);\n }\n else {\n e = eq(b << 3) | 0;\n break;\n }\n else\n e = 0;\n while (0);\n c[a >> 2] = e;\n d = (e + (d << 3)) | 0;\n c[(a + 8) >> 2] = d;\n c[(a + 4) >> 2] = d;\n c[f >> 2] = e + (b << 3);\n return;\n }\n function ce(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0;\n i = c[a >> 2] | 0;\n j = (a + 4) | 0;\n d = c[j >> 2] | 0;\n h = (b + 4) | 0;\n if ((d | 0) == (i | 0)) {\n f = h;\n g = a;\n e = c[h >> 2] | 0;\n d = i;\n }\n else {\n e = c[h >> 2] | 0;\n do {\n g = d;\n d = (d + -8) | 0;\n c[(e + -8) >> 2] = c[d >> 2];\n g = (g + -4) | 0;\n c[(e + -4) >> 2] = c[g >> 2];\n c[d >> 2] = 0;\n c[g >> 2] = 0;\n e = ((c[h >> 2] | 0) + -8) | 0;\n c[h >> 2] = e;\n } while ((d | 0) != (i | 0));\n f = h;\n g = a;\n d = c[a >> 2] | 0;\n }\n c[g >> 2] = e;\n c[f >> 2] = d;\n i = (b + 8) | 0;\n h = c[j >> 2] | 0;\n c[j >> 2] = c[i >> 2];\n c[i >> 2] = h;\n i = (a + 8) | 0;\n j = (b + 12) | 0;\n a = c[i >> 2] | 0;\n c[i >> 2] = c[j >> 2];\n c[j >> 2] = a;\n c[b >> 2] = c[f >> 2];\n return;\n }\n function de(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0, f = 0;\n d = c[(a + 4) >> 2] | 0;\n e = (a + 8) | 0;\n b = c[e >> 2] | 0;\n if ((b | 0) != (d | 0))\n do {\n f = (b + -8) | 0;\n c[e >> 2] = f;\n Sd(f);\n b = c[e >> 2] | 0;\n } while ((b | 0) != (d | 0));\n b = c[a >> 2] | 0;\n if (b | 0)\n Da(b, ((c[(a + 12) >> 2] | 0) - b) | 0);\n return;\n }\n function ee(a) {\n a = a | 0;\n return 536870911;\n }\n function fe(a) {\n a = a | 0;\n c[a >> 2] = 4716;\n return;\n }\n function ge(b) {\n b = b | 0;\n oe(b);\n pe((b + 3980) | 0);\n qe((b + 4380) | 0);\n a[(b + 4780) >> 0] = 0;\n a[(b + 4781) >> 0] = 0;\n return;\n }\n function he(a) {\n a = a | 0;\n c[a >> 2] = 4692;\n ze((a + 8) | 0);\n le(a);\n return;\n }\n function ie(a) {\n a = a | 0;\n he(a);\n jp(a);\n return;\n }\n function je(a, b) {\n a = a | 0;\n b = b | 0;\n return b | 0;\n }\n function ke(a, b) {\n a = a | 0;\n b = b | 0;\n return Be((a + 8) | 0, c[(a + 4) >> 2] | 0, b) | 0;\n }\n function le(a) {\n a = a | 0;\n return;\n }\n function me(a) {\n a = a | 0;\n le(a);\n jp(a);\n return;\n }\n function ne(a, b) {\n a = a | 0;\n b = b | 0;\n return b | 0;\n }\n function oe(d) {\n d = d | 0;\n var e = 0, f = 0;\n te(d);\n ue((d + 52) | 0);\n ue((d + 436) | 0);\n Oc((d + 852) | 0, 64, 0, 0);\n a[(d + 3976) >> 0] = 0;\n e = (d + 20) | 0;\n f = (e + 32) | 0;\n do {\n b[e >> 1] = 0;\n e = (e + 2) | 0;\n } while ((e | 0) < (f | 0));\n e = eq(44) | 0;\n Oc(e, 256, 0, 0);\n c[(d + 896) >> 2] = e;\n e = eq(44) | 0;\n Oc(e, 256, 0, 0);\n c[(d + 900) >> 2] = e;\n e = (d + 820) | 0;\n c[e >> 2] = 0;\n c[(e + 4) >> 2] = 0;\n c[(e + 8) >> 2] = 0;\n c[(e + 12) >> 2] = 0;\n c[(e + 16) >> 2] = 0;\n c[(e + 20) >> 2] = 0;\n c[(e + 24) >> 2] = 0;\n c[(e + 28) >> 2] = 0;\n e = 0;\n do {\n f = eq(44) | 0;\n Oc(f, 256, 0, 0);\n c[(d + 904 + (e << 2)) >> 2] = f;\n f = eq(44) | 0;\n Oc(f, 256, 0, 0);\n c[(d + 1928 + (e << 2)) >> 2] = f;\n f = eq(44) | 0;\n Oc(f, 256, 0, 0);\n c[(d + 2952 + (e << 2)) >> 2] = f;\n e = (e + 1) | 0;\n } while (e >>> 0 < 256);\n return;\n }\n function pe(a) {\n a = a | 0;\n xe(a, 16, 4, 8, 0);\n xe((a + 80) | 0, 16, 1, 8, 0);\n xe((a + 160) | 0, 32, 2, 8, 0);\n xe((a + 240) | 0, 32, 22, 8, 0);\n xe((a + 320) | 0, 32, 20, 8, 0);\n return;\n }\n function qe(a) {\n a = a | 0;\n mc(a, 16, 4, 8, 0);\n mc((a + 80) | 0, 16, 1, 8, 0);\n mc((a + 160) | 0, 32, 2, 8, 0);\n mc((a + 240) | 0, 32, 22, 8, 0);\n mc((a + 320) | 0, 32, 20, 8, 0);\n return;\n }\n function re(a) {\n a = a | 0;\n ye((a + 320) | 0);\n ye((a + 240) | 0);\n ye((a + 160) | 0);\n ye((a + 80) | 0);\n ye(a);\n return;\n }\n function se(a) {\n a = a | 0;\n var b = 0, d = 0;\n b = c[(a + 896) >> 2] | 0;\n if (b | 0) {\n Ic(b);\n jp(b);\n }\n b = c[(a + 900) >> 2] | 0;\n if (b | 0) {\n Ic(b);\n jp(b);\n }\n d = 0;\n do {\n b = c[(a + 904 + (d << 2)) >> 2] | 0;\n if (b | 0) {\n Ic(b);\n jp(b);\n }\n b = c[(a + 1928 + (d << 2)) >> 2] | 0;\n if (b | 0) {\n Ic(b);\n jp(b);\n }\n b = c[(a + 2952 + (d << 2)) >> 2] | 0;\n if (b | 0) {\n Ic(b);\n jp(b);\n }\n d = (d + 1) | 0;\n } while ((d | 0) != 256);\n Ic((a + 852) | 0);\n return;\n }\n function te(b) {\n b = b | 0;\n var c = 0;\n a[b >> 0] = 0;\n a[(b + 1) >> 0] = 0;\n a[(b + 2) >> 0] = 0;\n a[(b + 3) >> 0] = 0;\n c = (b + 4) | 0;\n a[c >> 0] = 0;\n a[(c + 1) >> 0] = 0;\n a[(c + 2) >> 0] = 0;\n a[(c + 3) >> 0] = 0;\n b = (b + 12) | 0;\n c = b;\n a[c >> 0] = 0;\n a[(c + 1) >> 0] = 0;\n a[(c + 2) >> 0] = 0;\n a[(c + 3) >> 0] = 0;\n b = (b + 4) | 0;\n a[b >> 0] = 0;\n a[(b + 1) >> 0] = 0;\n a[(b + 2) >> 0] = 0;\n a[(b + 3) >> 0] = 0;\n return;\n }\n function ue(a) {\n a = a | 0;\n var b = 0;\n b = (a + 384) | 0;\n do {\n ve(a);\n a = (a + 24) | 0;\n } while ((a | 0) != (b | 0));\n return;\n }\n function ve(a) {\n a = a | 0;\n we(a);\n return;\n }\n function we(b) {\n b = b | 0;\n c[b >> 2] = 0;\n c[(b + 4) >> 2] = 0;\n c[(b + 8) >> 2] = 0;\n c[(b + 12) >> 2] = 0;\n c[(b + 16) >> 2] = 0;\n a[(b + 20) >> 0] = 1;\n return;\n }\n function xe(a, b, d, e, f) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n e = e | 0;\n f = f | 0;\n var g = 0;\n c[(a + 4) >> 2] = b;\n c[(a + 8) >> 2] = d;\n c[(a + 12) >> 2] = e;\n c[(a + 16) >> 2] = f;\n c[(a + 36) >> 2] = 0;\n c[(a + 40) >> 2] = 0;\n c[(a + 44) >> 2] = 0;\n Gc((a + 48) | 0);\n c[(a + 68) >> 2] = 0;\n c[(a + 72) >> 2] = 0;\n c[(a + 76) >> 2] = 0;\n do\n if (!f) {\n d = (a + 20) | 0;\n if (((b + -1) | 0) >>> 0 < 31) {\n c[d >> 2] = b;\n f = 1 << b;\n c[(a + 24) >> 2] = f;\n d = f >>> 1;\n c[(a + 28) >> 2] = 0 - d;\n d = (f + -1 - d) | 0;\n break;\n }\n else {\n c[d >> 2] = 32;\n c[(a + 24) >> 2] = 0;\n c[(a + 28) >> 2] = -2147483648;\n d = 2147483647;\n break;\n }\n }\n else {\n e = (a + 20) | 0;\n c[e >> 2] = 0;\n c[(a + 24) >> 2] = f;\n d = f;\n g = 0;\n while (1) {\n d = d >>> 1;\n b = (g + 1) | 0;\n if (!d)\n break;\n else\n g = b;\n }\n c[e >> 2] = ((1 << g) | 0) == (f | 0) ? g : b;\n d = f >>> 1;\n c[(a + 28) >> 2] = 0 - d;\n d = (f + -1 - d) | 0;\n }\n while (0);\n c[(a + 32) >> 2] = d;\n c[a >> 2] = 0;\n return;\n }\n function ye(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0, f = 0, g = 0;\n g = (a + 36) | 0;\n d = c[g >> 2] | 0;\n e = (a + 40) | 0;\n b = c[e >> 2] | 0;\n if ((b | 0) != (d | 0))\n do {\n b = (b + -44) | 0;\n Ic(b);\n } while ((b | 0) != (d | 0));\n c[e >> 2] = d;\n e = (a + 68) | 0;\n f = c[e >> 2] | 0;\n d = (a + 72) | 0;\n b = c[d >> 2] | 0;\n if ((b | 0) != (f | 0))\n do {\n b = (b + -44) | 0;\n Ic(b);\n } while ((b | 0) != (f | 0));\n c[d >> 2] = f;\n Hc(e);\n Hc(g);\n return;\n }\n function ze(a) {\n a = a | 0;\n Ae((a + 4380) | 0);\n re((a + 3980) | 0);\n se(a);\n return;\n }\n function Ae(a) {\n a = a | 0;\n qc((a + 320) | 0);\n qc((a + 240) | 0);\n qc((a + 160) | 0);\n qc((a + 80) | 0);\n qc(a);\n return;\n }\n function Be(f, g, h) {\n f = f | 0;\n g = g | 0;\n h = h | 0;\n var i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0;\n p = V;\n V = (V + 32) | 0;\n o = p;\n i = (f + 4781) | 0;\n if (!(a[i >> 0] | 0)) {\n Ce((f + 4380) | 0);\n a[i >> 0] = 1;\n }\n i = (f + 3976) | 0;\n if (!(a[i >> 0] | 0)) {\n a[i >> 0] = 1;\n Ee(De(g) | 0, h, 20);\n Fe(o, h);\n k = f;\n i = o;\n j = (k + 20) | 0;\n do {\n a[k >> 0] = a[i >> 0] | 0;\n k = (k + 1) | 0;\n i = (i + 1) | 0;\n } while ((k | 0) < (j | 0));\n b[(f + 12) >> 1] = 0;\n }\n else {\n m = Zc(g, (f + 852) | 0) | 0;\n if (m) {\n if ((m & 32) | 0)\n He((Zc(g, c[(f + 904 + (((Ge(f) | 0) & 255) << 2)) >> 2] | 0) | 0) & 255, f);\n n = (f + 14) | 0;\n k = a[n >> 0] | 0;\n i = k & 7;\n k = ((k & 255) >>> 3) & 7;\n j = d[(16 + (k << 3) + i) >> 0] | 0;\n i = d[(80 + (k << 3) + i) >> 0] | 0;\n if (!(m & 16))\n l = b[(f + 20 + (j << 1)) >> 1] | 0;\n else {\n q = (f + 20 + (j << 1)) | 0;\n l = (pc((f + 4380) | 0, g, e[q >> 1] | 0, j >>> 0 < 3 ? j : 3) | 0) & 65535;\n b[q >> 1] = l;\n }\n b[(f + 12) >> 1] = l;\n if ((m & 8) | 0) {\n q = (f + 15) | 0;\n a[q >> 0] = Zc(g, c[(f + 1928 + (d[q >> 0] << 2)) >> 2] | 0) | 0;\n }\n if ((m & 4) | 0) {\n n = Zc(g, c[(f + 896 + ((((d[n >> 0] | 0) >>> 6) & 1) << 2)) >> 2] | 0) | 0;\n q = (f + 16) | 0;\n a[q >> 0] = Ie((n + (a[q >> 0] | 0)) | 0) | 0;\n }\n if ((m & 2) | 0) {\n q = (f + 17) | 0;\n a[q >> 0] = Zc(g, c[(f + 2952 + (d[q >> 0] << 2)) >> 2] | 0) | 0;\n }\n if (m & 1) {\n q = (f + 18) | 0;\n b[q >> 1] = pc((f + 4460) | 0, g, e[q >> 1] | 0, 0) | 0;\n }\n }\n else {\n q = a[(f + 14) >> 0] | 0;\n i = q & 7;\n q = ((q & 255) >>> 3) & 7;\n k = q;\n j = d[(16 + (q << 3) + i) >> 0] | 0;\n i = d[(80 + (q << 3) + i) >> 0] | 0;\n }\n l = (f + 52 + ((j * 24) | 0)) | 0;\n m = (f + 4540) | 0;\n n = ((k | 0) == 1) & 1;\n k = pc(m, g, Je(l) | 0, n) | 0;\n c[o >> 2] = k;\n c[f >> 2] = (c[f >> 2] | 0) + k;\n Ke(l, o);\n l = (f + 436 + ((j * 24) | 0)) | 0;\n k = Je(l) | 0;\n j = Le(m) | 0;\n q = (f + 4620) | 0;\n j = pc(q, g, k, (j >>> 0 < 20 ? j & -2 : 20) | n) | 0;\n c[o >> 2] = j;\n k = (f + 4) | 0;\n c[k >> 2] = (c[k >> 2] | 0) + j;\n Ke(l, o);\n o = Le(m) | 0;\n o = ((Le(q) | 0) + o) | 0;\n q = (f + 820 + (i << 2)) | 0;\n o =\n pc((f + 4700) | 0, g, c[q >> 2] | 0, (o >>> 0 < 36 ? (o >>> 1) & 2147483646 : 18) | n) |\n 0;\n c[(f + 8) >> 2] = o;\n c[q >> 2] = o;\n Me(f, h);\n }\n V = p;\n return (h + 20) | 0;\n }\n function Ce(a) {\n a = a | 0;\n oc(a);\n oc((a + 80) | 0);\n oc((a + 160) | 0);\n oc((a + 240) | 0);\n oc((a + 320) | 0);\n return;\n }\n function De(a) {\n a = a | 0;\n return c[a >> 2] | 0;\n }\n function Ee(b, d, e) {\n b = b | 0;\n d = d | 0;\n e = e | 0;\n var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0;\n k = (b + 4) | 0;\n f = c[k >> 2] | 0;\n j = ((c[(b + 8) >> 2] | 0) - f) | 0;\n j = j >>> 0 > e >>> 0 ? e : j;\n i = (b + 12) | 0;\n g = ((c[i >> 2] | 0) + f) | 0;\n h = (g + j) | 0;\n if (j) {\n f = g;\n g = d;\n while (1) {\n a[g >> 0] = a[f >> 0] | 0;\n f = (f + 1) | 0;\n if ((f | 0) == (h | 0))\n break;\n else\n g = (g + 1) | 0;\n }\n f = c[k >> 2] | 0;\n }\n c[k >> 2] = f + j;\n e = (e - j) | 0;\n if (e | 0) {\n Kc(b);\n g = ((c[i >> 2] | 0) + (c[k >> 2] | 0)) | 0;\n h = (g + e) | 0;\n f = (d + j) | 0;\n while (1) {\n a[f >> 0] = a[g >> 0] | 0;\n g = (g + 1) | 0;\n if ((g | 0) == (h | 0))\n break;\n else\n f = (f + 1) | 0;\n }\n c[k >> 2] = (c[k >> 2] | 0) + e;\n }\n return;\n }\n function Fe(d, e) {\n d = d | 0;\n e = e | 0;\n te(d);\n c[d >> 2] = Ne(e) | 0;\n c[(d + 4) >> 2] = Ne((e + 4) | 0) | 0;\n c[(d + 8) >> 2] = Ne((e + 8) | 0) | 0;\n b[(d + 12) >> 1] = Oe((e + 12) | 0) | 0;\n He(Pe((e + 14) | 0) | 0, d);\n a[(d + 15) >> 0] = Pe((e + 15) | 0) | 0;\n a[(d + 16) >> 0] = Qe((e + 16) | 0) | 0;\n a[(d + 17) >> 0] = Qe((e + 17) | 0) | 0;\n b[(d + 18) >> 1] = Oe((e + 18) | 0) | 0;\n return;\n }\n function Ge(b) {\n b = b | 0;\n return a[(b + 14) >> 0] | 0;\n }\n function He(b, c) {\n b = b | 0;\n c = c | 0;\n a[(c + 14) >> 0] = b;\n return;\n }\n function Ie(a) {\n a = a | 0;\n return (a & 255) | 0;\n }\n function Je(a) {\n a = a | 0;\n return c[(a + 8) >> 2] | 0;\n }\n function Ke(b, d) {\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0;\n k = (b + 20) | 0;\n do\n if (!(a[k >> 0] | 0)) {\n j = (b + 8) | 0;\n e = c[j >> 2] | 0;\n f = c[d >> 2] | 0;\n g = (b + 4) | 0;\n h = c[g >> 2] | 0;\n if ((e | 0) >= (f | 0)) {\n if ((h | 0) < (f | 0)) {\n c[b >> 2] = h;\n c[g >> 2] = c[d >> 2];\n }\n else\n c[b >> 2] = f;\n a[k >> 0] = 1;\n break;\n }\n c[b >> 2] = h;\n c[g >> 2] = e;\n g = (b + 16) | 0;\n h = c[g >> 2] | 0;\n i = c[d >> 2] | 0;\n e = (b + 12) | 0;\n f = c[e >> 2] | 0;\n if ((h | 0) < (i | 0)) {\n c[j >> 2] = f;\n c[e >> 2] = h;\n c[g >> 2] = c[d >> 2];\n break;\n }\n if ((f | 0) < (i | 0)) {\n c[j >> 2] = f;\n c[e >> 2] = c[d >> 2];\n break;\n }\n else {\n c[j >> 2] = i;\n break;\n }\n }\n else {\n g = c[d >> 2] | 0;\n i = (b + 8) | 0;\n e = c[i >> 2] | 0;\n h = (b + 12) | 0;\n f = c[h >> 2] | 0;\n if ((g | 0) >= (e | 0)) {\n e = (b + 16) | 0;\n if ((g | 0) < (f | 0)) {\n c[e >> 2] = f;\n c[h >> 2] = c[d >> 2];\n }\n else\n c[e >> 2] = g;\n a[k >> 0] = 0;\n break;\n }\n c[(b + 16) >> 2] = f;\n c[h >> 2] = e;\n e = c[d >> 2] | 0;\n f = c[b >> 2] | 0;\n g = (b + 4) | 0;\n h = c[g >> 2] | 0;\n if ((e | 0) < (f | 0)) {\n c[i >> 2] = h;\n c[g >> 2] = f;\n c[b >> 2] = c[d >> 2];\n break;\n }\n if ((e | 0) < (h | 0)) {\n c[i >> 2] = h;\n c[g >> 2] = c[d >> 2];\n break;\n }\n else {\n c[i >> 2] = e;\n break;\n }\n }\n while (0);\n return;\n }\n function Le(a) {\n a = a | 0;\n return c[a >> 2] | 0;\n }\n function Me(b, c) {\n b = b | 0;\n c = c | 0;\n var e = 0;\n Se(d[b >> 0] | (d[(b + 1) >> 0] << 8) | (d[(b + 2) >> 0] << 16) | (d[(b + 3) >> 0] << 24), c);\n e = (b + 4) | 0;\n Se(d[e >> 0] | (d[(e + 1) >> 0] << 8) | (d[(e + 2) >> 0] << 16) | (d[(e + 3) >> 0] << 24), (c + 4) | 0);\n e = (b + 8) | 0;\n Se(d[e >> 0] | (d[(e + 1) >> 0] << 8) | (d[(e + 2) >> 0] << 16) | (d[(e + 3) >> 0] << 24), (c + 8) | 0);\n e = (b + 12) | 0;\n Te(d[e >> 0] | (d[(e + 1) >> 0] << 8), (c + 12) | 0);\n Ue(Ge(b) | 0, (c + 14) | 0);\n Ue(a[(b + 15) >> 0] | 0, (c + 15) | 0);\n Ve(a[(b + 16) >> 0] | 0, (c + 16) | 0);\n Ve(a[(b + 17) >> 0] | 0, (c + 17) | 0);\n b = (b + 18) | 0;\n Te(d[b >> 0] | (d[(b + 1) >> 0] << 8), (c + 18) | 0);\n return;\n }\n function Ne(a) {\n a = a | 0;\n return Re(a) | 0;\n }\n function Oe(b) {\n b = b | 0;\n return (((a[(b + 1) >> 0] << 8) | d[b >> 0]) & 65535) | 0;\n }\n function Pe(b) {\n b = b | 0;\n return a[b >> 0] | 0;\n }\n function Qe(b) {\n b = b | 0;\n return a[b >> 0] | 0;\n }\n function Re(a) {\n a = a | 0;\n return (((d[(a + 1) >> 0] | 0) << 8) |\n (d[a >> 0] | 0) |\n ((d[(a + 2) >> 0] | 0) << 16) |\n ((d[(a + 3) >> 0] | 0) << 24) |\n 0);\n }\n function Se(a, b) {\n a = a | 0;\n b = b | 0;\n We(a, b);\n return;\n }\n function Te(b, c) {\n b = b | 0;\n c = c | 0;\n a[(c + 1) >> 0] = (b & 65535) >>> 8;\n a[c >> 0] = b;\n return;\n }\n function Ue(b, c) {\n b = b | 0;\n c = c | 0;\n a[c >> 0] = b;\n return;\n }\n function Ve(b, c) {\n b = b | 0;\n c = c | 0;\n a[c >> 0] = b;\n return;\n }\n function We(b, c) {\n b = b | 0;\n c = c | 0;\n a[(c + 3) >> 0] = b >>> 24;\n a[(c + 2) >> 0] = b >>> 16;\n a[(c + 1) >> 0] = b >>> 8;\n a[c >> 0] = b;\n return;\n }\n function Xe(a, b) {\n a = a | 0;\n b = b | 0;\n return;\n }\n function Ye(a) {\n a = a | 0;\n pq(a);\n jp(a);\n return;\n }\n function Ze(a) {\n a = a | 0;\n a = c[(a + 12) >> 2] | 0;\n if (a | 0)\n ca[c[((c[a >> 2] | 0) + 4) >> 2] & 255](a);\n return;\n }\n function _e(a, b) {\n a = a | 0;\n b = b | 0;\n return ((c[(b + 4) >> 2] | 0) == 9202 ? (a + 12) | 0 : 0) | 0;\n }\n function $e(a) {\n a = a | 0;\n Da(a, 16);\n return;\n }\n function af(a, b) {\n a = a | 0;\n b = b | 0;\n fe(a);\n c[a >> 2] = 4768;\n c[(a + 4) >> 2] = b;\n cf((a + 8) | 0);\n return;\n }\n function bf(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n d = V;\n V = (V + 16) | 0;\n e = d;\n c[a >> 2] = b;\n f = eq(16) | 0;\n c[(f + 4) >> 2] = 0;\n c[(f + 8) >> 2] = 0;\n c[f >> 2] = 4792;\n c[(f + 12) >> 2] = b;\n c[(a + 4) >> 2] = f;\n c[e >> 2] = b;\n c[(e + 4) >> 2] = b;\n Xe(a, e);\n V = d;\n return;\n }\n function cf(b) {\n b = b | 0;\n gf(b);\n hf((b + 164) | 0);\n jf((b + 244) | 0);\n a[(b + 324) >> 0] = 0;\n a[(b + 325) >> 0] = 0;\n return;\n }\n function df(a) {\n a = a | 0;\n c[a >> 2] = 4768;\n of((a + 8) | 0);\n le(a);\n return;\n }\n function ef(a) {\n a = a | 0;\n df(a);\n jp(a);\n return;\n }\n function ff(a, b) {\n a = a | 0;\n b = b | 0;\n return qf((a + 8) | 0, c[(a + 4) >> 2] | 0, b) | 0;\n }\n function gf(b) {\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0;\n h = V;\n V = (V + 16) | 0;\n f = h;\n a[b >> 0] = 0;\n Oc((b + 4) | 0, 516, 0, 0);\n Oc((b + 48) | 0, 6, 0, 0);\n c[(b + 92) >> 2] = 0;\n c[(b + 96) >> 2] = 0;\n e = (b + 100) | 0;\n mf(e);\n nf(f);\n g = c[f >> 2] | 0;\n f = c[(f + 4) >> 2] | 0;\n d = 4;\n while (1) {\n i = e;\n j = i;\n a[j >> 0] = g;\n a[(j + 1) >> 0] = g >> 8;\n a[(j + 2) >> 0] = g >> 16;\n a[(j + 3) >> 0] = g >> 24;\n i = (i + 4) | 0;\n a[i >> 0] = f;\n a[(i + 1) >> 0] = f >> 8;\n a[(i + 2) >> 0] = f >> 16;\n a[(i + 3) >> 0] = f >> 24;\n d = (d + -1) | 0;\n if (!d)\n break;\n else\n e = (e + 8) | 0;\n }\n j = (b + 132) | 0;\n c[j >> 2] = 0;\n c[(j + 4) >> 2] = 0;\n c[(j + 8) >> 2] = 0;\n c[(j + 12) >> 2] = 0;\n c[(j + 16) >> 2] = 0;\n c[(j + 20) >> 2] = 0;\n c[(j + 24) >> 2] = 0;\n c[(j + 28) >> 2] = 0;\n V = h;\n return;\n }\n function hf(a) {\n a = a | 0;\n xe(a, 32, 9, 8, 0);\n return;\n }\n function jf(a) {\n a = a | 0;\n mc(a, 32, 9, 8, 0);\n return;\n }\n function kf(a) {\n a = a | 0;\n ye(a);\n return;\n }\n function lf(a) {\n a = a | 0;\n Ic((a + 48) | 0);\n Ic((a + 4) | 0);\n return;\n }\n function mf(a) {\n a = a | 0;\n var b = 0;\n b = (a + 32) | 0;\n do {\n nf(a);\n a = (a + 8) | 0;\n } while ((a | 0) != (b | 0));\n return;\n }\n function nf(b) {\n b = b | 0;\n var c = 0;\n c = b;\n a[c >> 0] = 0;\n a[(c + 1) >> 0] = 0;\n a[(c + 2) >> 0] = 0;\n a[(c + 3) >> 0] = 0;\n b = (b + 4) | 0;\n a[b >> 0] = 0;\n a[(b + 1) >> 0] = 0;\n a[(b + 2) >> 0] = 0;\n a[(b + 3) >> 0] = 0;\n return;\n }\n function of(a) {\n a = a | 0;\n pf((a + 244) | 0);\n kf((a + 164) | 0);\n lf(a);\n return;\n }\n function pf(a) {\n a = a | 0;\n qc(a);\n return;\n }\n function qf(b, e, f) {\n b = b | 0;\n e = e | 0;\n f = f | 0;\n var g = 0, h = 0, i = 0, j = 0, k = 0;\n g = (b + 325) | 0;\n if (!(a[g >> 0] | 0)) {\n rf((b + 244) | 0);\n a[g >> 0] = 1;\n }\n if (!(a[b >> 0] | 0)) {\n a[b >> 0] = 1;\n Ee(De(e) | 0, f, 8);\n i = sf(f) | 0;\n j = u() | 0;\n b = (b + 100) | 0;\n e = b;\n a[e >> 0] = i;\n a[(e + 1) >> 0] = i >> 8;\n a[(e + 2) >> 0] = i >> 16;\n a[(e + 3) >> 0] = i >> 24;\n b = (b + 4) | 0;\n a[b >> 0] = j;\n a[(b + 1) >> 0] = j >> 8;\n a[(b + 2) >> 0] = j >> 16;\n a[(b + 3) >> 0] = j >> 24;\n }\n else {\n j = (b + 92) | 0;\n a: do\n if (!(c[(b + 132 + (c[j >> 2] << 2)) >> 2] | 0)) {\n g = Zc(e, (b + 48) | 0) | 0;\n switch (g | 0) {\n case 1: {\n e = pc((b + 244) | 0, e, 0, 0) | 0;\n c[(b + 132 + (c[j >> 2] << 2)) >> 2] = e;\n e = c[j >> 2] | 0;\n k = c[(b + 132 + (e << 2)) >> 2] | 0;\n i = (b + 100 + (e << 3)) | 0;\n h = i;\n g = h;\n h = (h + 4) | 0;\n k =\n lr(d[g >> 0] |\n (d[(g + 1) >> 0] << 8) |\n (d[(g + 2) >> 0] << 16) |\n (d[(g + 3) >> 0] << 24) |\n 0, d[h >> 0] |\n (d[(h + 1) >> 0] << 8) |\n (d[(h + 2) >> 0] << 16) |\n (d[(h + 3) >> 0] << 24) |\n 0, k | 0, ((((k | 0) < 0) << 31) >> 31) | 0) | 0;\n h = u() | 0;\n g = i;\n a[g >> 0] = k;\n a[(g + 1) >> 0] = k >> 8;\n a[(g + 2) >> 0] = k >> 16;\n a[(g + 3) >> 0] = k >> 24;\n i = (i + 4) | 0;\n a[i >> 0] = h;\n a[(i + 1) >> 0] = h >> 8;\n a[(i + 2) >> 0] = h >> 16;\n a[(i + 3) >> 0] = h >> 24;\n c[(b + 148 + (e << 2)) >> 2] = 0;\n break a;\n }\n case 2: {\n k = (b + 96) | 0;\n c[k >> 2] = ((c[k >> 2] | 0) + 1) & 3;\n i = (b + 100 + (c[j >> 2] << 3) + 4) | 0;\n i =\n pc((b + 244) | 0, e, d[i >> 0] |\n (d[(i + 1) >> 0] << 8) |\n (d[(i + 2) >> 0] << 16) |\n (d[(i + 3) >> 0] << 24), 8) | 0;\n g = (b + 100 + (c[k >> 2] << 3)) | 0;\n h = g;\n a[h >> 0] = 0;\n a[(h + 1) >> 0] = 0;\n a[(h + 2) >> 0] = 0;\n a[(h + 3) >> 0] = 0;\n g = (g + 4) | 0;\n a[g >> 0] = i;\n a[(g + 1) >> 0] = i >> 8;\n a[(g + 2) >> 0] = i >> 16;\n a[(g + 3) >> 0] = i >> 24;\n g = tf(e) | 0;\n k = c[k >> 2] | 0;\n e = (b + 100 + (k << 3)) | 0;\n i = e;\n h = i;\n i = (i + 4) | 0;\n i =\n d[i >> 0] |\n (d[(i + 1) >> 0] << 8) |\n (d[(i + 2) >> 0] << 16) |\n (d[(i + 3) >> 0] << 24);\n g =\n d[h >> 0] |\n (d[(h + 1) >> 0] << 8) |\n (d[(h + 2) >> 0] << 16) |\n (d[(h + 3) >> 0] << 24) |\n g;\n h = e;\n a[h >> 0] = g;\n a[(h + 1) >> 0] = g >> 8;\n a[(h + 2) >> 0] = g >> 16;\n a[(h + 3) >> 0] = g >> 24;\n e = (e + 4) | 0;\n a[e >> 0] = i;\n a[(e + 1) >> 0] = i >> 8;\n a[(e + 2) >> 0] = i >> 16;\n a[(e + 3) >> 0] = i >> 24;\n c[j >> 2] = k;\n c[(b + 132 + (k << 2)) >> 2] = 0;\n c[(b + 148 + (c[j >> 2] << 2)) >> 2] = 0;\n break a;\n }\n default: {\n if ((g | 0) <= 2)\n break a;\n c[j >> 2] = (g + 2 + (c[j >> 2] | 0)) & 3;\n qf(b, e, f) | 0;\n break a;\n }\n }\n }\n else {\n i = Zc(e, (b + 4) | 0) | 0;\n if ((i | 0) == 1) {\n g = pc((b + 244) | 0, e, c[(b + 132 + (c[j >> 2] << 2)) >> 2] | 0, 1) | 0;\n k = c[j >> 2] | 0;\n e = (b + 100 + (k << 3)) | 0;\n i = e;\n h = i;\n i = (i + 4) | 0;\n g =\n lr(d[h >> 0] |\n (d[(h + 1) >> 0] << 8) |\n (d[(h + 2) >> 0] << 16) |\n (d[(h + 3) >> 0] << 24) |\n 0, d[i >> 0] |\n (d[(i + 1) >> 0] << 8) |\n (d[(i + 2) >> 0] << 16) |\n (d[(i + 3) >> 0] << 24) |\n 0, g | 0, ((((g | 0) < 0) << 31) >> 31) | 0) | 0;\n i = u() | 0;\n h = e;\n a[h >> 0] = g;\n a[(h + 1) >> 0] = g >> 8;\n a[(h + 2) >> 0] = g >> 16;\n a[(h + 3) >> 0] = g >> 24;\n e = (e + 4) | 0;\n a[e >> 0] = i;\n a[(e + 1) >> 0] = i >> 8;\n a[(e + 2) >> 0] = i >> 16;\n a[(e + 3) >> 0] = i >> 24;\n c[(b + 148 + (k << 2)) >> 2] = 0;\n break;\n }\n if ((i | 0) >= 511) {\n if ((i | 0) == 512) {\n k = (b + 96) | 0;\n c[k >> 2] = ((c[k >> 2] | 0) + 1) & 3;\n i = (b + 100 + (c[j >> 2] << 3) + 4) | 0;\n i =\n pc((b + 244) | 0, e, d[i >> 0] |\n (d[(i + 1) >> 0] << 8) |\n (d[(i + 2) >> 0] << 16) |\n (d[(i + 3) >> 0] << 24), 8) | 0;\n g = (b + 100 + (c[k >> 2] << 3)) | 0;\n h = g;\n a[h >> 0] = 0;\n a[(h + 1) >> 0] = 0;\n a[(h + 2) >> 0] = 0;\n a[(h + 3) >> 0] = 0;\n g = (g + 4) | 0;\n a[g >> 0] = i;\n a[(g + 1) >> 0] = i >> 8;\n a[(g + 2) >> 0] = i >> 16;\n a[(g + 3) >> 0] = i >> 24;\n g = tf(e) | 0;\n k = c[k >> 2] | 0;\n e = (b + 100 + (k << 3)) | 0;\n i = e;\n h = i;\n i = (i + 4) | 0;\n i =\n d[i >> 0] |\n (d[(i + 1) >> 0] << 8) |\n (d[(i + 2) >> 0] << 16) |\n (d[(i + 3) >> 0] << 24);\n g =\n d[h >> 0] |\n (d[(h + 1) >> 0] << 8) |\n (d[(h + 2) >> 0] << 16) |\n (d[(h + 3) >> 0] << 24) |\n g;\n h = e;\n a[h >> 0] = g;\n a[(h + 1) >> 0] = g >> 8;\n a[(h + 2) >> 0] = g >> 16;\n a[(h + 3) >> 0] = g >> 24;\n e = (e + 4) | 0;\n a[e >> 0] = i;\n a[(e + 1) >> 0] = i >> 8;\n a[(e + 2) >> 0] = i >> 16;\n a[(e + 3) >> 0] = i >> 24;\n c[j >> 2] = k;\n c[(b + 132 + (k << 2)) >> 2] = 0;\n c[(b + 148 + (c[j >> 2] << 2)) >> 2] = 0;\n break;\n }\n if ((i | 0) <= 511)\n break;\n c[j >> 2] = ((c[j >> 2] | 0) + i) & 3;\n qf(b, e, f) | 0;\n break;\n }\n do\n if (!i) {\n g = pc((b + 244) | 0, e, 0, 7) | 0;\n h = (b + 148 + (c[j >> 2] << 2)) | 0;\n c[h >> 2] = (c[h >> 2] | 0) + 1;\n h = c[j >> 2] | 0;\n if ((c[(b + 148 + (h << 2)) >> 2] | 0) > 3) {\n c[(b + 132 + (h << 2)) >> 2] = g;\n c[(b + 148 + (c[j >> 2] << 2)) >> 2] = 0;\n }\n }\n else {\n if ((i | 0) < 500) {\n g = (b + 244) | 0;\n h = q(c[(b + 132 + (c[j >> 2] << 2)) >> 2] | 0, i) | 0;\n if ((i | 0) < 10) {\n g = pc(g, e, h, 2) | 0;\n break;\n }\n else {\n g = pc(g, e, h, 3) | 0;\n break;\n }\n }\n if ((i | 0) == 500) {\n g =\n pc((b + 244) | 0, e, ((c[(b + 132 + (c[j >> 2] << 2)) >> 2] | 0) * 500) | 0, 4) | 0;\n h = (b + 148 + (c[j >> 2] << 2)) | 0;\n c[h >> 2] = (c[h >> 2] | 0) + 1;\n h = c[j >> 2] | 0;\n if ((c[(b + 148 + (h << 2)) >> 2] | 0) <= 3)\n break;\n c[(b + 132 + (h << 2)) >> 2] = g;\n c[(b + 148 + (c[j >> 2] << 2)) >> 2] = 0;\n break;\n }\n g = (500 - i) | 0;\n h = (b + 244) | 0;\n i = c[(b + 132 + (c[j >> 2] << 2)) >> 2] | 0;\n if ((g | 0) > -10) {\n g = pc(h, e, q(i, g) | 0, 5) | 0;\n break;\n }\n g = pc(h, e, q(i, -10) | 0, 6) | 0;\n h = (b + 148 + (c[j >> 2] << 2)) | 0;\n c[h >> 2] = (c[h >> 2] | 0) + 1;\n h = c[j >> 2] | 0;\n if ((c[(b + 148 + (h << 2)) >> 2] | 0) > 3) {\n c[(b + 132 + (h << 2)) >> 2] = g;\n c[(b + 148 + (c[j >> 2] << 2)) >> 2] = 0;\n }\n }\n while (0);\n k = (b + 100 + (c[j >> 2] << 3)) | 0;\n h = k;\n e = h;\n h = (h + 4) | 0;\n h =\n lr(d[e >> 0] |\n (d[(e + 1) >> 0] << 8) |\n (d[(e + 2) >> 0] << 16) |\n (d[(e + 3) >> 0] << 24) |\n 0, d[h >> 0] |\n (d[(h + 1) >> 0] << 8) |\n (d[(h + 2) >> 0] << 16) |\n (d[(h + 3) >> 0] << 24) |\n 0, g | 0, ((((g | 0) < 0) << 31) >> 31) | 0) | 0;\n e = u() | 0;\n i = k;\n a[i >> 0] = h;\n a[(i + 1) >> 0] = h >> 8;\n a[(i + 2) >> 0] = h >> 16;\n a[(i + 3) >> 0] = h >> 24;\n k = (k + 4) | 0;\n a[k >> 0] = e;\n a[(k + 1) >> 0] = e >> 8;\n a[(k + 2) >> 0] = e >> 16;\n a[(k + 3) >> 0] = e >> 24;\n }\n while (0);\n uf((b + 100 + (c[j >> 2] << 3)) | 0, f);\n }\n return (f + 8) | 0;\n }\n function rf(a) {\n a = a | 0;\n oc(a);\n return;\n }\n function sf(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0;\n b = V;\n V = (V + 16) | 0;\n d = b;\n e = Re(a) | 0;\n vf(d, e, Re((a + 4) | 0) | 0);\n a = c[d >> 2] | 0;\n t(c[(d + 4) >> 2] | 0);\n V = b;\n return a | 0;\n }\n function tf(a) {\n a = a | 0;\n var b = 0;\n b = (bd(a) | 0) & 65535;\n return (((bd(a) | 0) & 65535) << 16) | b | 0;\n }\n function uf(a, b) {\n a = a | 0;\n b = b | 0;\n var c = 0;\n c = a;\n We(d[c >> 0] | (d[(c + 1) >> 0] << 8) | (d[(c + 2) >> 0] << 16) | (d[(c + 3) >> 0] << 24), b);\n a = (a + 4) | 0;\n We(d[a >> 0] | (d[(a + 1) >> 0] << 8) | (d[(a + 2) >> 0] << 16) | (d[(a + 3) >> 0] << 24), (b + 4) | 0);\n return;\n }\n function vf(b, c, d) {\n b = b | 0;\n c = c | 0;\n d = d | 0;\n var e = 0;\n e = b;\n a[e >> 0] = c;\n a[(e + 1) >> 0] = c >> 8;\n a[(e + 2) >> 0] = c >> 16;\n a[(e + 3) >> 0] = c >> 24;\n c = (b + 4) | 0;\n a[c >> 0] = d;\n a[(c + 1) >> 0] = d >> 8;\n a[(c + 2) >> 0] = d >> 16;\n a[(c + 3) >> 0] = d >> 24;\n return;\n }\n function wf(a) {\n a = a | 0;\n pq(a);\n jp(a);\n return;\n }\n function xf(a) {\n a = a | 0;\n a = c[(a + 12) >> 2] | 0;\n if (a | 0)\n ca[c[((c[a >> 2] | 0) + 4) >> 2] & 255](a);\n return;\n }\n function yf(a, b) {\n a = a | 0;\n b = b | 0;\n return ((c[(b + 4) >> 2] | 0) == 9890 ? (a + 12) | 0 : 0) | 0;\n }\n function zf(a) {\n a = a | 0;\n Da(a, 16);\n return;\n }\n function Af(a, b) {\n a = a | 0;\n b = b | 0;\n fe(a);\n c[a >> 2] = 4820;\n c[(a + 4) >> 2] = b;\n Cf((a + 8) | 0);\n return;\n }\n function Bf(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n d = V;\n V = (V + 16) | 0;\n e = d;\n c[a >> 2] = b;\n f = eq(16) | 0;\n c[(f + 4) >> 2] = 0;\n c[(f + 8) >> 2] = 0;\n c[f >> 2] = 4844;\n c[(f + 12) >> 2] = b;\n c[(a + 4) >> 2] = f;\n c[e >> 2] = b;\n c[(e + 4) >> 2] = b;\n Xe(a, e);\n V = d;\n return;\n }\n function Cf(b) {\n b = b | 0;\n a[b >> 0] = 0;\n Gf((b + 1) | 0);\n Oc((b + 8) | 0, 128, 0, 0);\n Oc((b + 52) | 0, 256, 0, 0);\n Oc((b + 96) | 0, 256, 0, 0);\n Oc((b + 140) | 0, 256, 0, 0);\n Oc((b + 184) | 0, 256, 0, 0);\n Oc((b + 228) | 0, 256, 0, 0);\n Oc((b + 272) | 0, 256, 0, 0);\n return;\n }\n function Df(a) {\n a = a | 0;\n c[a >> 2] = 4820;\n Hf((a + 8) | 0);\n le(a);\n return;\n }\n function Ef(a) {\n a = a | 0;\n Df(a);\n jp(a);\n return;\n }\n function Ff(a, b) {\n a = a | 0;\n b = b | 0;\n return If((a + 8) | 0, c[(a + 4) >> 2] | 0, b) | 0;\n }\n function Gf(b) {\n b = b | 0;\n var c = 0;\n a[b >> 0] = 0;\n a[(b + 1) >> 0] = 0;\n c = (b + 2) | 0;\n a[c >> 0] = 0;\n a[(c + 1) >> 0] = 0;\n b = (b + 4) | 0;\n a[b >> 0] = 0;\n a[(b + 1) >> 0] = 0;\n return;\n }\n function Hf(a) {\n a = a | 0;\n Ic((a + 272) | 0);\n Ic((a + 228) | 0);\n Ic((a + 184) | 0);\n Ic((a + 140) | 0);\n Ic((a + 96) | 0);\n Ic((a + 52) | 0);\n Ic((a + 8) | 0);\n return;\n }\n function If(c, f, g) {\n c = c | 0;\n f = f | 0;\n g = g | 0;\n var h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0;\n o = V;\n V = (V + 16) | 0;\n m = o;\n if (!(a[c >> 0] | 0)) {\n a[c >> 0] = 1;\n Ee(De(f) | 0, g, 6);\n Jf(m, g);\n n = (c + 1) | 0;\n a[n >> 0] = a[m >> 0] | 0;\n a[(n + 1) >> 0] = a[(m + 1) >> 0] | 0;\n a[(n + 2) >> 0] = a[(m + 2) >> 0] | 0;\n a[(n + 3) >> 0] = a[(m + 3) >> 0] | 0;\n a[(n + 4) >> 0] = a[(m + 4) >> 0] | 0;\n a[(n + 5) >> 0] = a[(m + 5) >> 0] | 0;\n }\n else {\n n = Zc(f, (c + 8) | 0) | 0;\n Gf(m);\n if (!(n & 1)) {\n h = (c + 1) | 0;\n h = (d[h >> 0] | (d[(h + 1) >> 0] << 8)) & 255;\n }\n else {\n l = (Zc(f, (c + 52) | 0) | 0) & 255;\n h = (c + 1) | 0;\n h = (Ie((l + ((d[h >> 0] | (d[(h + 1) >> 0] << 8)) & 255)) | 0) | 0) & 255;\n }\n b[m >> 1] = h;\n if (!(n & 2)) {\n l = (c + 1) | 0;\n h = h | ((d[l >> 0] | (d[(l + 1) >> 0] << 8)) & -256);\n }\n else {\n h = (Zc(f, (c + 96) | 0) | 0) & 255;\n l = (c + 1) | 0;\n h =\n ((Ie(((((d[l >> 0] | (d[(l + 1) >> 0] << 8)) & 65535) >>> 8) + h) | 0) | 0) & 255) << 8;\n h = (h | e[m >> 1]) & 65535;\n }\n b[m >> 1] = h;\n do\n if (n & 64) {\n k = (c + 1) | 0;\n i = ((h & 255) - ((d[k >> 0] | (d[(k + 1) >> 0] << 8)) & 255)) | 0;\n if (!(n & 4)) {\n h = (c + 3) | 0;\n h = (d[h >> 0] | (d[(h + 1) >> 0] << 8)) & 255;\n }\n else {\n h = (Zc(f, (c + 140) | 0) | 0) & 255;\n l = (c + 3) | 0;\n l = (i + ((d[l >> 0] | (d[(l + 1) >> 0] << 8)) & 255)) | 0;\n h = (Ie((((l | 0) < 1 ? 0 : (l | 0) > 254 ? 255 : l & 255) + h) | 0) | 0) & 255;\n }\n l = (m + 2) | 0;\n b[l >> 1] = h;\n if (!(n & 16)) {\n h = (c + 5) | 0;\n h = (d[h >> 0] | (d[(h + 1) >> 0] << 8)) & 255;\n }\n else {\n h = Zc(f, (c + 228) | 0) | 0;\n p = (c + 3) | 0;\n j = (c + 5) | 0;\n j =\n (((((i + (b[l >> 1] & 255) - ((d[p >> 0] | (d[(p + 1) >> 0] << 8)) & 255)) | 0) /\n 2) |\n 0) +\n ((d[j >> 0] | (d[(j + 1) >> 0] << 8)) & 255)) |\n 0;\n h =\n (Ie((((j | 0) < 1 ? 0 : (j | 0) > 254 ? 255 : j & 255) + (h & 255)) | 0) | 0) & 255;\n }\n j = (m + 4) | 0;\n b[j >> 1] = h;\n h =\n (((e[m >> 1] | 0) >>> 8) - (((d[k >> 0] | (d[(k + 1) >> 0] << 8)) & 65535) >>> 8)) |\n 0;\n if (!(n & 8)) {\n i = (c + 3) | 0;\n i = b[l >> 1] | ((d[i >> 0] | (d[(i + 1) >> 0] << 8)) & -256);\n }\n else {\n i = (Zc(f, (c + 184) | 0) | 0) & 255;\n p = (c + 3) | 0;\n p = ((((d[p >> 0] | (d[(p + 1) >> 0] << 8)) & 65535) >>> 8) + h) | 0;\n i =\n ((Ie((((p | 0) < 1 ? 0 : (p | 0) > 254 ? 255 : p & 255) + i) | 0) | 0) & 255) << 8;\n i = (i | e[l >> 1]) & 65535;\n }\n b[l >> 1] = i;\n if (!(n & 32)) {\n p = (c + 5) | 0;\n b[j >> 1] = b[j >> 1] | ((d[p >> 0] | (d[(p + 1) >> 0] << 8)) & -256);\n break;\n }\n else {\n p = Zc(f, (c + 272) | 0) | 0;\n f = (c + 3) | 0;\n n = (c + 5) | 0;\n n =\n (((((((e[l >> 1] | 0) >>> 8) +\n h -\n (((d[f >> 0] | (d[(f + 1) >> 0] << 8)) & 65535) >>> 8)) |\n 0) /\n 2) |\n 0) +\n (((d[n >> 0] | (d[(n + 1) >> 0] << 8)) & 65535) >>> 8)) |\n 0;\n p =\n ((Ie((((n | 0) < 1 ? 0 : (n | 0) > 254 ? 255 : n & 255) + (p & 255)) | 0) | 0) &\n 255) <<\n 8;\n b[j >> 1] = p | e[j >> 1];\n break;\n }\n }\n else {\n b[(m + 2) >> 1] = h;\n b[(m + 4) >> 1] = h;\n }\n while (0);\n p = (c + 1) | 0;\n a[p >> 0] = a[m >> 0] | 0;\n a[(p + 1) >> 0] = a[(m + 1) >> 0] | 0;\n a[(p + 2) >> 0] = a[(m + 2) >> 0] | 0;\n a[(p + 3) >> 0] = a[(m + 3) >> 0] | 0;\n a[(p + 4) >> 0] = a[(m + 4) >> 0] | 0;\n a[(p + 5) >> 0] = a[(m + 5) >> 0] | 0;\n Kf(p, g);\n }\n V = o;\n return (g + 6) | 0;\n }\n function Jf(a, b) {\n a = a | 0;\n b = b | 0;\n var c = 0, d = 0;\n d = Oe(b) | 0;\n c = Oe((b + 2) | 0) | 0;\n Lf(a, d, c, Oe((b + 4) | 0) | 0);\n return;\n }\n function Kf(a, b) {\n a = a | 0;\n b = b | 0;\n var c = 0;\n Te(d[a >> 0] | (d[(a + 1) >> 0] << 8), b);\n c = (a + 2) | 0;\n Te(d[c >> 0] | (d[(c + 1) >> 0] << 8), (b + 2) | 0);\n a = (a + 4) | 0;\n Te(d[a >> 0] | (d[(a + 1) >> 0] << 8), (b + 4) | 0);\n return;\n }\n function Lf(b, c, d, e) {\n b = b | 0;\n c = c | 0;\n d = d | 0;\n e = e | 0;\n a[b >> 0] = c;\n a[(b + 1) >> 0] = c >> 8;\n c = (b + 2) | 0;\n a[c >> 0] = d;\n a[(c + 1) >> 0] = d >> 8;\n d = (b + 4) | 0;\n a[d >> 0] = e;\n a[(d + 1) >> 0] = e >> 8;\n return;\n }\n function Mf(a) {\n a = a | 0;\n pq(a);\n jp(a);\n return;\n }\n function Nf(a) {\n a = a | 0;\n a = c[(a + 12) >> 2] | 0;\n if (a | 0)\n ca[c[((c[a >> 2] | 0) + 4) >> 2] & 255](a);\n return;\n }\n function Of(a, b) {\n a = a | 0;\n b = b | 0;\n return ((c[(b + 4) >> 2] | 0) == 10570 ? (a + 12) | 0 : 0) | 0;\n }\n function Pf(a) {\n a = a | 0;\n Da(a, 16);\n return;\n }\n function Qf(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n fe(a);\n c[a >> 2] = 4872;\n c[(a + 4) >> 2] = b;\n Sf((a + 8) | 0, d);\n return;\n }\n function Rf(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n d = V;\n V = (V + 16) | 0;\n e = d;\n c[a >> 2] = b;\n f = eq(16) | 0;\n c[(f + 4) >> 2] = 0;\n c[(f + 8) >> 2] = 0;\n c[f >> 2] = 4896;\n c[(f + 12) >> 2] = b;\n c[(a + 4) >> 2] = f;\n c[e >> 2] = b;\n c[(e + 4) >> 2] = b;\n Xe(a, e);\n V = d;\n return;\n }\n function Sf(b, d) {\n b = b | 0;\n d = d | 0;\n c[b >> 2] = c[d >> 2];\n a[(b + 4) >> 0] = a[(d + 4) >> 0] | 0;\n Wf((b + 8) | 0, (d + 8) | 0);\n Wf((b + 20) | 0, (d + 20) | 0);\n Xf((b + 32) | 0, (d + 32) | 0);\n return;\n }\n function Tf(a) {\n a = a | 0;\n c[a >> 2] = 4872;\n ud((a + 8) | 0);\n le(a);\n return;\n }\n function Uf(a) {\n a = a | 0;\n Tf(a);\n jp(a);\n return;\n }\n function Vf(a, b) {\n a = a | 0;\n b = b | 0;\n return Dg((a + 8) | 0, c[(a + 4) >> 2] | 0, b) | 0;\n }\n function Wf(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0;\n c[a >> 2] = 0;\n c[(a + 4) >> 2] = 0;\n c[(a + 8) >> 2] = 0;\n d = (b + 4) | 0;\n e = ((c[d >> 2] | 0) - (c[b >> 2] | 0)) | 0;\n if (e | 0) {\n Yf(a, e);\n Zf(a, c[b >> 2] | 0, c[d >> 2] | 0, e);\n }\n return;\n }\n function Xf(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0;\n d = V;\n V = (V + 32) | 0;\n e = (d + 24) | 0;\n f = (d + 16) | 0;\n h = (d + 8) | 0;\n g = d;\n c[a >> 2] = 0;\n c[(a + 4) >> 2] = 0;\n c[(a + 8) >> 2] = 0;\n c[(a + 12) >> 2] = 0;\n c[(a + 16) >> 2] = 0;\n c[(a + 20) >> 2] = 0;\n zg(h, b);\n Ag(g, b);\n c[f >> 2] = c[h >> 2];\n c[(f + 4) >> 2] = c[(h + 4) >> 2];\n c[e >> 2] = c[g >> 2];\n c[(e + 4) >> 2] = c[(g + 4) >> 2];\n cg(a, f, e, 0);\n V = d;\n return;\n }\n function Yf(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0;\n if (($f(a) | 0) >>> 0 < b >>> 0)\n cr(a);\n else {\n d = eq(b) | 0;\n c[(a + 4) >> 2] = d;\n c[a >> 2] = d;\n c[(a + 8) >> 2] = d + b;\n return;\n }\n }\n function Zf(a, b, d, e) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n e = e | 0;\n var f = 0, g = 0;\n g = V;\n V = (V + 16) | 0;\n f = g;\n ag(f, a, e);\n e = (f + 4) | 0;\n a = (d - b) | 0;\n if ((a | 0) > 0) {\n ur(c[e >> 2] | 0, b | 0, a | 0) | 0;\n c[e >> 2] = (c[e >> 2] | 0) + a;\n }\n bg(f);\n V = g;\n return;\n }\n function _f(a) {\n a = a | 0;\n var b = 0, d = 0;\n b = c[a >> 2] | 0;\n d = b;\n if (b | 0) {\n c[(a + 4) >> 2] = d;\n Da(b, ((c[(a + 8) >> 2] | 0) - d) | 0);\n }\n return;\n }\n function $f(a) {\n a = a | 0;\n return 2147483647;\n }\n function ag(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n c[a >> 2] = b;\n b = c[(b + 4) >> 2] | 0;\n c[(a + 4) >> 2] = b;\n c[(a + 8) >> 2] = b + d;\n return;\n }\n function bg(a) {\n a = a | 0;\n c[((c[a >> 2] | 0) + 4) >> 2] = c[(a + 4) >> 2];\n return;\n }\n function cg(a, b, d, e) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n e = e | 0;\n var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0;\n q = V;\n V = (V + 96) | 0;\n p = (q + 80) | 0;\n m = (q + 64) | 0;\n j = (q + 48) | 0;\n k = (q + 40) | 0;\n l = (q + 8) | 0;\n i = q;\n n = (q + 32) | 0;\n o = (q + 16) | 0;\n h = b;\n g = c[h >> 2] | 0;\n h = c[(h + 4) >> 2] | 0;\n f = d;\n d = c[f >> 2] | 0;\n f = c[(f + 4) >> 2] | 0;\n e = g;\n if ((f | 0) == (h | 0))\n h = 0;\n else\n h =\n (((((f - (c[d >> 2] | 0)) | 0) / 44) | 0) +\n ((((d - g) >> 2) * 93) | 0) +\n ((((h - (c[g >> 2] | 0)) | 0) / -44) | 0)) |\n 0;\n d = ((c[(a + 8) >> 2] | 0) - (c[(a + 4) >> 2] | 0)) | 0;\n d =\n (((d | 0) == 0 ? 0 : ((((d >> 2) * 93) | 0) + -1) | 0) -\n ((c[(a + 20) >> 2] | 0) + (c[(a + 16) >> 2] | 0))) |\n 0;\n if (h >>> 0 > d >>> 0)\n eg(a, (h - d) | 0);\n fg(k, a);\n fg(i, a);\n f = i;\n d = c[f >> 2] | 0;\n f = c[(f + 4) >> 2] | 0;\n g = l;\n c[g >> 2] = d;\n c[(g + 4) >> 2] = f;\n g = d;\n if (h | 0) {\n d = (((((f - (c[d >> 2] | 0)) | 0) / 44) | 0) + h) | 0;\n if ((d | 0) > 0) {\n i = ((d >>> 0) / 93) | 0;\n h = (g + (i << 2)) | 0;\n c[l >> 2] = h;\n d = ((c[h >> 2] | 0) + ((((d - ((i * 93) | 0)) | 0) * 44) | 0)) | 0;\n }\n else {\n d = (92 - d) | 0;\n i = (g + ((((d | 0) / -93) | 0) << 2)) | 0;\n c[l >> 2] = i;\n d = ((c[i >> 2] | 0) + ((((92 - ((d | 0) % 93 | 0)) | 0) * 44) | 0)) | 0;\n }\n c[(l + 4) >> 2] = d;\n }\n c[m >> 2] = c[k >> 2];\n c[(m + 4) >> 2] = c[(k + 4) >> 2];\n c[p >> 2] = c[l >> 2];\n c[(p + 4) >> 2] = c[(l + 4) >> 2];\n gg(j, m, p);\n hg(p, j);\n ig(m, j);\n if (jg(p, m) | 0) {\n g = (o + 4) | 0;\n h = (b + 4) | 0;\n do {\n kg(n, p);\n lg(o, a, n);\n d = c[o >> 2] | 0;\n if ((d | 0) != (c[g >> 2] | 0)) {\n f = c[h >> 2] | 0;\n do {\n Wc(d, f);\n d = ((c[o >> 2] | 0) + 44) | 0;\n c[o >> 2] = d;\n f = (f + 44) | 0;\n c[h >> 2] = f;\n if (((f - (c[e >> 2] | 0)) | 0) == 4092) {\n e = (e + 4) | 0;\n c[b >> 2] = e;\n f = c[e >> 2] | 0;\n c[h >> 2] = f;\n }\n } while ((d | 0) != (c[g >> 2] | 0));\n }\n mg(o);\n ng(p) | 0;\n } while (jg(p, m) | 0);\n }\n V = q;\n return;\n }\n function dg(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0;\n b = c[(a + 4) >> 2] | 0;\n d = (a + 8) | 0;\n e = c[d >> 2] | 0;\n if ((e | 0) != (b | 0))\n c[d >> 2] = e + (~(((e + -4 - b) | 0) >>> 2) << 2);\n b = c[a >> 2] | 0;\n if (b | 0)\n Da(b, ((c[(a + 12) >> 2] | 0) - b) | 0);\n return;\n }\n function eg(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0;\n B = V;\n V = (V + 64) | 0;\n v = (B + 52) | 0;\n u = (B + 48) | 0;\n w = (B + 28) | 0;\n x = (B + 24) | 0;\n y = (B + 20) | 0;\n p = B;\n z = (a + 8) | 0;\n d = c[z >> 2] | 0;\n A = (a + 4) | 0;\n j = c[A >> 2] | 0;\n s = ((((d | 0) == (j | 0)) & 1) + b) | 0;\n h = ((s >>> 0) / 93) | 0;\n h = (h + ((((s - ((h * 93) | 0)) | 0) != 0) & 1)) | 0;\n s = (a + 16) | 0;\n e = c[s >> 2] | 0;\n i = ((e >>> 0) / 93) | 0;\n r = h >>> 0 < i >>> 0 ? h : i;\n b = (h - r) | 0;\n g = d;\n a: do\n if (!b) {\n c[s >> 2] = (q(r, -93) | 0) + e;\n if (r | 0) {\n i = (a + 12) | 0;\n k = (a + 12) | 0;\n l = (w + 4) | 0;\n m = (w + 8) | 0;\n n = (w + 12) | 0;\n b = r;\n e = j;\n while (1) {\n h = c[e >> 2] | 0;\n g = (e + 4) | 0;\n c[A >> 2] = g;\n t = c[i >> 2] | 0;\n e = t;\n do\n if ((d | 0) == (t | 0)) {\n t = c[a >> 2] | 0;\n d = t;\n if (g >>> 0 <= t >>> 0) {\n d = (e - d) | 0;\n d = (d | 0) == 0 ? 1 : d >> 1;\n qg(w, d, d >>> 2, k);\n c[x >> 2] = c[A >> 2];\n c[y >> 2] = c[z >> 2];\n c[u >> 2] = c[x >> 2];\n c[v >> 2] = c[y >> 2];\n ug(w, u, v);\n d = c[a >> 2] | 0;\n c[a >> 2] = c[w >> 2];\n c[w >> 2] = d;\n d = c[A >> 2] | 0;\n c[A >> 2] = c[l >> 2];\n c[l >> 2] = d;\n d = c[z >> 2] | 0;\n c[z >> 2] = c[m >> 2];\n c[m >> 2] = d;\n d = c[i >> 2] | 0;\n c[i >> 2] = c[n >> 2];\n c[n >> 2] = d;\n tg(w);\n d = c[z >> 2] | 0;\n break;\n }\n t = g;\n d = (((((t - d) >> 2) + 1) | 0) / -2) | 0;\n f = (g + (d << 2)) | 0;\n e = (e - t) | 0;\n if (!e)\n d = f;\n else {\n vr(f | 0, g | 0, e | 0) | 0;\n d = ((c[A >> 2] | 0) + (d << 2)) | 0;\n }\n t = (f + ((e >> 2) << 2)) | 0;\n c[z >> 2] = t;\n c[A >> 2] = d;\n d = t;\n }\n while (0);\n c[d >> 2] = h;\n d = ((c[z >> 2] | 0) + 4) | 0;\n c[z >> 2] = d;\n b = (b + -1) | 0;\n if (!b)\n break a;\n e = c[A >> 2] | 0;\n }\n }\n }\n else {\n t = (a + 12) | 0;\n e = c[t >> 2] | 0;\n f = (e - (c[a >> 2] | 0)) | 0;\n d = (g - j) >> 2;\n if (b >>> 0 > (((f >> 2) - d) | 0) >>> 0) {\n o = f >> 1;\n n = (d + b) | 0;\n qg(p, o >>> 0 < n >>> 0 ? n : o, (d - r) | 0, (a + 12) | 0);\n do {\n c[v >> 2] = eq(4092) | 0;\n rg(p, v);\n b = (b + -1) | 0;\n } while ((b | 0) != 0);\n if (!r)\n d = c[A >> 2] | 0;\n else {\n i = (p + 8) | 0;\n j = (p + 12) | 0;\n k = (p + 4) | 0;\n l = (p + 16) | 0;\n m = (w + 4) | 0;\n n = (w + 8) | 0;\n o = (w + 12) | 0;\n h = r;\n b = c[i >> 2] | 0;\n d = c[A >> 2] | 0;\n do {\n g = c[j >> 2] | 0;\n e = g;\n do\n if ((b | 0) == (g | 0)) {\n f = c[k >> 2] | 0;\n g = c[p >> 2] | 0;\n b = g;\n if (f >>> 0 <= g >>> 0) {\n b = (e - b) | 0;\n b = (b | 0) == 0 ? 1 : b >> 1;\n qg(w, b, b >>> 2, c[l >> 2] | 0);\n c[x >> 2] = c[k >> 2];\n c[y >> 2] = c[i >> 2];\n c[u >> 2] = c[x >> 2];\n c[v >> 2] = c[y >> 2];\n ug(w, u, v);\n b = c[p >> 2] | 0;\n c[p >> 2] = c[w >> 2];\n c[w >> 2] = b;\n b = c[k >> 2] | 0;\n c[k >> 2] = c[m >> 2];\n c[m >> 2] = b;\n b = c[i >> 2] | 0;\n c[i >> 2] = c[n >> 2];\n c[n >> 2] = b;\n b = c[j >> 2] | 0;\n c[j >> 2] = c[o >> 2];\n c[o >> 2] = b;\n tg(w);\n b = c[i >> 2] | 0;\n break;\n }\n C = f;\n b = (((((C - b) >> 2) + 1) | 0) / -2) | 0;\n g = (f + (b << 2)) | 0;\n e = (e - C) | 0;\n if (!e)\n b = g;\n else {\n vr(g | 0, f | 0, e | 0) | 0;\n b = ((c[k >> 2] | 0) + (b << 2)) | 0;\n }\n C = (g + ((e >> 2) << 2)) | 0;\n c[i >> 2] = C;\n c[k >> 2] = b;\n b = C;\n }\n while (0);\n c[b >> 2] = c[d >> 2];\n b = ((c[i >> 2] | 0) + 4) | 0;\n c[i >> 2] = b;\n d = ((c[A >> 2] | 0) + 4) | 0;\n c[A >> 2] = d;\n h = (h + -1) | 0;\n } while ((h | 0) != 0);\n }\n b = c[z >> 2] | 0;\n if ((b | 0) != (d | 0)) {\n do {\n b = (b + -4) | 0;\n sg(p, b);\n d = c[A >> 2] | 0;\n } while ((b | 0) != (d | 0));\n b = c[z >> 2] | 0;\n }\n C = c[a >> 2] | 0;\n c[a >> 2] = c[p >> 2];\n c[p >> 2] = C;\n C = (p + 4) | 0;\n c[A >> 2] = c[C >> 2];\n c[C >> 2] = d;\n C = (p + 8) | 0;\n c[z >> 2] = c[C >> 2];\n c[C >> 2] = b;\n C = (p + 12) | 0;\n A = c[t >> 2] | 0;\n c[t >> 2] = c[C >> 2];\n c[C >> 2] = A;\n c[s >> 2] = (c[s >> 2] | 0) + (q(r, -93) | 0);\n tg(p);\n break;\n }\n else {\n b: do\n if ((e | 0) == (g | 0))\n k = 18;\n else {\n while (1) {\n c[v >> 2] = eq(4092) | 0;\n og(a, v);\n b = (b + -1) | 0;\n if (!b)\n break;\n if ((c[t >> 2] | 0) == (c[z >> 2] | 0)) {\n k = 18;\n break b;\n }\n }\n d = r;\n b = c[s >> 2] | 0;\n }\n while (0);\n if ((k | 0) == 18) {\n e = ~(h >>> 0 > i >>> 0 ? i : h);\n d = b;\n do {\n c[v >> 2] = eq(4092) | 0;\n pg(a, v);\n d = (d + -1) | 0;\n f =\n (((((c[z >> 2] | 0) - (c[A >> 2] | 0)) | 0) == 4 ? 92 : 93) + (c[s >> 2] | 0)) |\n 0;\n c[s >> 2] = f;\n } while ((d | 0) != 0);\n d = (b + -1 - e) | 0;\n b = f;\n }\n c[s >> 2] = b + (q(d, -93) | 0);\n if (!d)\n break;\n i = (a + 12) | 0;\n j = (w + 4) | 0;\n k = (w + 8) | 0;\n l = (w + 12) | 0;\n b = c[z >> 2] | 0;\n do {\n g = c[A >> 2] | 0;\n h = c[g >> 2] | 0;\n g = (g + 4) | 0;\n c[A >> 2] = g;\n C = c[t >> 2] | 0;\n e = C;\n do\n if ((b | 0) == (C | 0)) {\n C = c[a >> 2] | 0;\n b = C;\n if (g >>> 0 <= C >>> 0) {\n b = (e - b) | 0;\n b = (b | 0) == 0 ? 1 : b >> 1;\n qg(w, b, b >>> 2, i);\n c[x >> 2] = c[A >> 2];\n c[y >> 2] = c[z >> 2];\n c[u >> 2] = c[x >> 2];\n c[v >> 2] = c[y >> 2];\n ug(w, u, v);\n b = c[a >> 2] | 0;\n c[a >> 2] = c[w >> 2];\n c[w >> 2] = b;\n b = c[A >> 2] | 0;\n c[A >> 2] = c[j >> 2];\n c[j >> 2] = b;\n b = c[z >> 2] | 0;\n c[z >> 2] = c[k >> 2];\n c[k >> 2] = b;\n b = c[t >> 2] | 0;\n c[t >> 2] = c[l >> 2];\n c[l >> 2] = b;\n tg(w);\n b = c[z >> 2] | 0;\n break;\n }\n C = g;\n b = (((((C - b) >> 2) + 1) | 0) / -2) | 0;\n f = (g + (b << 2)) | 0;\n e = (e - C) | 0;\n if (!e)\n b = f;\n else {\n vr(f | 0, g | 0, e | 0) | 0;\n b = ((c[A >> 2] | 0) + (b << 2)) | 0;\n }\n C = (f + ((e >> 2) << 2)) | 0;\n c[z >> 2] = C;\n c[A >> 2] = b;\n b = C;\n }\n while (0);\n c[b >> 2] = h;\n b = ((c[z >> 2] | 0) + 4) | 0;\n c[z >> 2] = b;\n d = (d + -1) | 0;\n } while ((d | 0) != 0);\n }\n }\n while (0);\n V = B;\n return;\n }\n function fg(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0;\n d = ((c[(b + 16) >> 2] | 0) + (c[(b + 20) >> 2] | 0)) | 0;\n g = c[(b + 4) >> 2] | 0;\n e = ((d >>> 0) / 93) | 0;\n f = (g + (e << 2)) | 0;\n if ((c[(b + 8) >> 2] | 0) == (g | 0))\n b = 0;\n else\n b = ((c[f >> 2] | 0) + ((((d - ((e * 93) | 0)) | 0) * 44) | 0)) | 0;\n c[a >> 2] = f;\n c[(a + 4) >> 2] = b;\n return;\n }\n function gg(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n f = b;\n b = c[(f + 4) >> 2] | 0;\n e = a;\n c[e >> 2] = c[f >> 2];\n c[(e + 4) >> 2] = b;\n e = d;\n b = c[(e + 4) >> 2] | 0;\n d = (a + 8) | 0;\n c[d >> 2] = c[e >> 2];\n c[(d + 4) >> 2] = b;\n return;\n }\n function hg(a, b) {\n a = a | 0;\n b = b | 0;\n c[a >> 2] = c[b >> 2];\n c[(a + 4) >> 2] = c[(b + 4) >> 2];\n c[(a + 8) >> 2] = c[(b + 8) >> 2];\n c[(a + 12) >> 2] = c[(b + 12) >> 2];\n return;\n }\n function ig(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0;\n d = V;\n V = (V + 32) | 0;\n e = (d + 24) | 0;\n f = (d + 16) | 0;\n h = (d + 8) | 0;\n g = d;\n i = (b + 8) | 0;\n j = c[i >> 2] | 0;\n i = c[(i + 4) >> 2] | 0;\n b = h;\n c[b >> 2] = j;\n c[(b + 4) >> 2] = i;\n b = g;\n c[b >> 2] = j;\n c[(b + 4) >> 2] = i;\n c[f >> 2] = c[h >> 2];\n c[(f + 4) >> 2] = c[(h + 4) >> 2];\n c[e >> 2] = c[g >> 2];\n c[(e + 4) >> 2] = c[(g + 4) >> 2];\n gg(a, f, e);\n V = d;\n return;\n }\n function jg(a, b) {\n a = a | 0;\n b = b | 0;\n return ((xg(a, b) | 0) ^ 1) | 0;\n }\n function kg(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0;\n d = c[b >> 2] | 0;\n e = c[(b + 4) >> 2] | 0;\n if ((d | 0) == (c[(b + 8) >> 2] | 0))\n yg(a, e, c[(b + 12) >> 2] | 0);\n else\n yg(a, e, ((c[d >> 2] | 0) + 4092) | 0);\n return;\n }\n function lg(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0;\n e = c[d >> 2] | 0;\n c[a >> 2] = e;\n c[(a + 4) >> 2] = c[(d + 4) >> 2];\n c[(a + 8) >> 2] = e;\n c[(a + 12) >> 2] = b;\n return;\n }\n function mg(a) {\n a = a | 0;\n var b = 0;\n b = ((c[(a + 12) >> 2] | 0) + 20) | 0;\n c[b >> 2] = (c[b >> 2] | 0) + (((((c[a >> 2] | 0) - (c[(a + 8) >> 2] | 0)) | 0) / 44) | 0);\n return;\n }\n function ng(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0;\n b = c[a >> 2] | 0;\n d = (a + 8) | 0;\n if ((b | 0) == (c[d >> 2] | 0)) {\n e = d;\n b = c[(e + 4) >> 2] | 0;\n d = a;\n c[d >> 2] = c[e >> 2];\n c[(d + 4) >> 2] = b;\n }\n else {\n e = (b + 4) | 0;\n c[a >> 2] = e;\n c[(a + 4) >> 2] = c[e >> 2];\n }\n return a | 0;\n }\n function og(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0;\n p = V;\n V = (V + 48) | 0;\n f = (p + 32) | 0;\n e = (p + 28) | 0;\n i = (p + 8) | 0;\n j = (p + 4) | 0;\n k = p;\n o = (a + 8) | 0;\n d = c[o >> 2] | 0;\n l = (a + 12) | 0;\n n = c[l >> 2] | 0;\n g = n;\n do\n if ((d | 0) == (n | 0)) {\n n = (a + 4) | 0;\n m = c[n >> 2] | 0;\n q = c[a >> 2] | 0;\n h = q;\n if (m >>> 0 <= q >>> 0) {\n d = (g - h) | 0;\n d = (d | 0) == 0 ? 1 : d >> 1;\n qg(i, d, d >>> 2, (a + 12) | 0);\n c[j >> 2] = c[n >> 2];\n c[k >> 2] = c[o >> 2];\n c[e >> 2] = c[j >> 2];\n c[f >> 2] = c[k >> 2];\n ug(i, e, f);\n d = c[a >> 2] | 0;\n c[a >> 2] = c[i >> 2];\n c[i >> 2] = d;\n d = (i + 4) | 0;\n q = c[n >> 2] | 0;\n c[n >> 2] = c[d >> 2];\n c[d >> 2] = q;\n d = (i + 8) | 0;\n q = c[o >> 2] | 0;\n c[o >> 2] = c[d >> 2];\n c[d >> 2] = q;\n d = (i + 12) | 0;\n q = c[l >> 2] | 0;\n c[l >> 2] = c[d >> 2];\n c[d >> 2] = q;\n tg(i);\n d = c[o >> 2] | 0;\n break;\n }\n f = m;\n e = (((((f - h) >> 2) + 1) | 0) / -2) | 0;\n a = (m + (e << 2)) | 0;\n f = (d - f) | 0;\n if (!f)\n d = a;\n else {\n vr(a | 0, m | 0, f | 0) | 0;\n d = ((c[n >> 2] | 0) + (e << 2)) | 0;\n }\n q = (a + ((f >> 2) << 2)) | 0;\n c[o >> 2] = q;\n c[n >> 2] = d;\n d = q;\n }\n while (0);\n c[d >> 2] = c[b >> 2];\n c[o >> 2] = (c[o >> 2] | 0) + 4;\n V = p;\n return;\n }\n function pg(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0;\n p = V;\n V = (V + 48) | 0;\n e = (p + 32) | 0;\n d = (p + 28) | 0;\n h = (p + 8) | 0;\n i = (p + 4) | 0;\n j = p;\n o = (a + 4) | 0;\n m = c[o >> 2] | 0;\n n = c[a >> 2] | 0;\n k = n;\n do\n if ((m | 0) == (n | 0)) {\n n = (a + 8) | 0;\n l = c[n >> 2] | 0;\n g = (a + 12) | 0;\n q = c[g >> 2] | 0;\n f = q;\n if (l >>> 0 >= q >>> 0) {\n q = (f - k) | 0;\n q = (q | 0) == 0 ? 1 : q >> 1;\n qg(h, q, ((q + 3) | 0) >>> 2, (a + 12) | 0);\n c[i >> 2] = c[o >> 2];\n c[j >> 2] = c[n >> 2];\n c[d >> 2] = c[i >> 2];\n c[e >> 2] = c[j >> 2];\n ug(h, d, e);\n d = c[a >> 2] | 0;\n c[a >> 2] = c[h >> 2];\n c[h >> 2] = d;\n d = (h + 4) | 0;\n q = c[o >> 2] | 0;\n c[o >> 2] = c[d >> 2];\n c[d >> 2] = q;\n d = (h + 8) | 0;\n q = c[n >> 2] | 0;\n c[n >> 2] = c[d >> 2];\n c[d >> 2] = q;\n d = (h + 12) | 0;\n q = c[g >> 2] | 0;\n c[g >> 2] = c[d >> 2];\n c[d >> 2] = q;\n tg(h);\n d = c[o >> 2] | 0;\n break;\n }\n e = l;\n a = (((((f - e) >> 2) + 1) | 0) / 2) | 0;\n f = (l + (a << 2)) | 0;\n e = (e - m) | 0;\n d = (f + ((0 - (e >> 2)) << 2)) | 0;\n if (!e) {\n d = f;\n e = f;\n }\n else {\n vr(d | 0, m | 0, e | 0) | 0;\n e = ((c[n >> 2] | 0) + (a << 2)) | 0;\n }\n c[o >> 2] = d;\n c[n >> 2] = e;\n }\n else\n d = m;\n while (0);\n c[(d + -4) >> 2] = c[b >> 2];\n c[o >> 2] = (c[o >> 2] | 0) + -4;\n V = p;\n return;\n }\n function qg(a, b, d, e) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n e = e | 0;\n var f = 0;\n f = (a + 12) | 0;\n c[f >> 2] = 0;\n c[(a + 16) >> 2] = e;\n do\n if (b)\n if (b >>> 0 > 1073741823) {\n f = v(8) | 0;\n vq(f, 6723);\n c[f >> 2] = 5956;\n x(f | 0, 3928, 123);\n }\n else {\n e = eq(b << 2) | 0;\n break;\n }\n else\n e = 0;\n while (0);\n c[a >> 2] = e;\n d = (e + (d << 2)) | 0;\n c[(a + 8) >> 2] = d;\n c[(a + 4) >> 2] = d;\n c[f >> 2] = e + (b << 2);\n return;\n }\n function rg(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0;\n p = V;\n V = (V + 48) | 0;\n f = (p + 32) | 0;\n e = (p + 28) | 0;\n i = (p + 8) | 0;\n j = (p + 4) | 0;\n k = p;\n o = (a + 8) | 0;\n d = c[o >> 2] | 0;\n l = (a + 12) | 0;\n n = c[l >> 2] | 0;\n g = n;\n do\n if ((d | 0) == (n | 0)) {\n n = (a + 4) | 0;\n m = c[n >> 2] | 0;\n q = c[a >> 2] | 0;\n h = q;\n if (m >>> 0 <= q >>> 0) {\n d = (g - h) | 0;\n d = (d | 0) == 0 ? 1 : d >> 1;\n qg(i, d, d >>> 2, c[(a + 16) >> 2] | 0);\n c[j >> 2] = c[n >> 2];\n c[k >> 2] = c[o >> 2];\n c[e >> 2] = c[j >> 2];\n c[f >> 2] = c[k >> 2];\n ug(i, e, f);\n d = c[a >> 2] | 0;\n c[a >> 2] = c[i >> 2];\n c[i >> 2] = d;\n d = (i + 4) | 0;\n q = c[n >> 2] | 0;\n c[n >> 2] = c[d >> 2];\n c[d >> 2] = q;\n d = (i + 8) | 0;\n q = c[o >> 2] | 0;\n c[o >> 2] = c[d >> 2];\n c[d >> 2] = q;\n d = (i + 12) | 0;\n q = c[l >> 2] | 0;\n c[l >> 2] = c[d >> 2];\n c[d >> 2] = q;\n tg(i);\n d = c[o >> 2] | 0;\n break;\n }\n f = m;\n e = (((((f - h) >> 2) + 1) | 0) / -2) | 0;\n a = (m + (e << 2)) | 0;\n f = (d - f) | 0;\n if (!f)\n d = a;\n else {\n vr(a | 0, m | 0, f | 0) | 0;\n d = ((c[n >> 2] | 0) + (e << 2)) | 0;\n }\n q = (a + ((f >> 2) << 2)) | 0;\n c[o >> 2] = q;\n c[n >> 2] = d;\n d = q;\n }\n while (0);\n c[d >> 2] = c[b >> 2];\n c[o >> 2] = (c[o >> 2] | 0) + 4;\n V = p;\n return;\n }\n function sg(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0;\n p = V;\n V = (V + 48) | 0;\n e = (p + 32) | 0;\n d = (p + 28) | 0;\n h = (p + 8) | 0;\n i = (p + 4) | 0;\n j = p;\n o = (a + 4) | 0;\n m = c[o >> 2] | 0;\n n = c[a >> 2] | 0;\n k = n;\n do\n if ((m | 0) == (n | 0)) {\n n = (a + 8) | 0;\n l = c[n >> 2] | 0;\n g = (a + 12) | 0;\n q = c[g >> 2] | 0;\n f = q;\n if (l >>> 0 >= q >>> 0) {\n q = (f - k) | 0;\n q = (q | 0) == 0 ? 1 : q >> 1;\n qg(h, q, ((q + 3) | 0) >>> 2, c[(a + 16) >> 2] | 0);\n c[i >> 2] = c[o >> 2];\n c[j >> 2] = c[n >> 2];\n c[d >> 2] = c[i >> 2];\n c[e >> 2] = c[j >> 2];\n ug(h, d, e);\n d = c[a >> 2] | 0;\n c[a >> 2] = c[h >> 2];\n c[h >> 2] = d;\n d = (h + 4) | 0;\n q = c[o >> 2] | 0;\n c[o >> 2] = c[d >> 2];\n c[d >> 2] = q;\n d = (h + 8) | 0;\n q = c[n >> 2] | 0;\n c[n >> 2] = c[d >> 2];\n c[d >> 2] = q;\n d = (h + 12) | 0;\n q = c[g >> 2] | 0;\n c[g >> 2] = c[d >> 2];\n c[d >> 2] = q;\n tg(h);\n d = c[o >> 2] | 0;\n break;\n }\n e = l;\n a = (((((f - e) >> 2) + 1) | 0) / 2) | 0;\n f = (l + (a << 2)) | 0;\n e = (e - m) | 0;\n d = (f + ((0 - (e >> 2)) << 2)) | 0;\n if (!e) {\n d = f;\n e = f;\n }\n else {\n vr(d | 0, m | 0, e | 0) | 0;\n e = ((c[n >> 2] | 0) + (a << 2)) | 0;\n }\n c[o >> 2] = d;\n c[n >> 2] = e;\n }\n else\n d = m;\n while (0);\n c[(d + -4) >> 2] = c[b >> 2];\n c[o >> 2] = (c[o >> 2] | 0) + -4;\n V = p;\n return;\n }\n function tg(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0;\n b = c[(a + 4) >> 2] | 0;\n d = (a + 8) | 0;\n e = c[d >> 2] | 0;\n if ((e | 0) != (b | 0))\n c[d >> 2] = e + (~(((e + -4 - b) | 0) >>> 2) << 2);\n b = c[a >> 2] | 0;\n if (b | 0)\n Da(b, ((c[(a + 12) >> 2] | 0) - b) | 0);\n return;\n }\n function ug(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0, g = 0, h = 0;\n h = V;\n V = (V + 16) | 0;\n g = h;\n f = c[b >> 2] | 0;\n vg(g, (a + 8) | 0, ((c[d >> 2] | 0) - f) >> 2);\n a = c[g >> 2] | 0;\n e = (g + 4) | 0;\n if ((a | 0) != (c[e >> 2] | 0)) {\n d = f;\n do {\n c[a >> 2] = c[d >> 2];\n a = ((c[g >> 2] | 0) + 4) | 0;\n c[g >> 2] = a;\n d = (d + 4) | 0;\n } while ((a | 0) != (c[e >> 2] | 0));\n c[b >> 2] = d;\n }\n wg(g);\n V = h;\n return;\n }\n function vg(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n c[a >> 2] = c[b >> 2];\n c[(a + 4) >> 2] = (c[b >> 2] | 0) + (d << 2);\n c[(a + 8) >> 2] = b;\n return;\n }\n function wg(a) {\n a = a | 0;\n c[c[(a + 8) >> 2] >> 2] = c[a >> 2];\n return;\n }\n function xg(a, b) {\n a = a | 0;\n b = b | 0;\n return ((c[(a + 4) >> 2] | 0) == (c[(b + 4) >> 2] | 0)) | 0;\n }\n function yg(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n c[a >> 2] = b;\n c[(a + 4) >> 2] = d;\n return;\n }\n function zg(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0;\n g = c[(b + 4) >> 2] | 0;\n d = c[(b + 16) >> 2] | 0;\n e = ((d >>> 0) / 93) | 0;\n f = (g + (e << 2)) | 0;\n if ((c[(b + 8) >> 2] | 0) == (g | 0))\n b = 0;\n else\n b = ((c[f >> 2] | 0) + ((((d - ((e * 93) | 0)) | 0) * 44) | 0)) | 0;\n c[a >> 2] = f;\n c[(a + 4) >> 2] = b;\n return;\n }\n function Ag(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0;\n d = ((c[(b + 16) >> 2] | 0) + (c[(b + 20) >> 2] | 0)) | 0;\n g = c[(b + 4) >> 2] | 0;\n e = ((d >>> 0) / 93) | 0;\n f = (g + (e << 2)) | 0;\n if ((c[(b + 8) >> 2] | 0) == (g | 0))\n b = 0;\n else\n b = ((c[f >> 2] | 0) + ((((d - ((e * 93) | 0)) | 0) * 44) | 0)) | 0;\n c[a >> 2] = f;\n c[(a + 4) >> 2] = b;\n return;\n }\n function Bg(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0;\n i = V;\n V = (V + 16) | 0;\n e = (i + 8) | 0;\n g = i;\n Cg(e, a);\n fg(g, a);\n f = (e + 4) | 0;\n b = c[f >> 2] | 0;\n g = (g + 4) | 0;\n if ((b | 0) != (c[g >> 2] | 0))\n do {\n Ic(b);\n b = ((c[f >> 2] | 0) + 44) | 0;\n c[f >> 2] = b;\n d = c[e >> 2] | 0;\n if (((b - (c[d >> 2] | 0)) | 0) == 4092) {\n b = (d + 4) | 0;\n c[e >> 2] = b;\n b = c[b >> 2] | 0;\n c[f >> 2] = b;\n }\n } while ((b | 0) != (c[g >> 2] | 0));\n c[(a + 20) >> 2] = 0;\n f = (a + 8) | 0;\n e = (a + 4) | 0;\n d = c[e >> 2] | 0;\n b = ((c[f >> 2] | 0) - d) >> 2;\n if (b >>> 0 > 2)\n do {\n Da(c[d >> 2] | 0, 4092);\n d = ((c[e >> 2] | 0) + 4) | 0;\n c[e >> 2] = d;\n b = ((c[f >> 2] | 0) - d) >> 2;\n } while (b >>> 0 > 2);\n switch (b | 0) {\n case 1: {\n b = 46;\n h = 11;\n break;\n }\n case 2: {\n b = 93;\n h = 11;\n break;\n }\n default: {\n }\n }\n if ((h | 0) == 11)\n c[(a + 16) >> 2] = b;\n V = i;\n return;\n }\n function Cg(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0;\n g = c[(b + 4) >> 2] | 0;\n d = c[(b + 16) >> 2] | 0;\n e = ((d >>> 0) / 93) | 0;\n f = (g + (e << 2)) | 0;\n if ((c[(b + 8) >> 2] | 0) == (g | 0))\n b = 0;\n else\n b = ((c[f >> 2] | 0) + ((((d - ((e * 93) | 0)) | 0) * 44) | 0)) | 0;\n c[a >> 2] = f;\n c[(a + 4) >> 2] = b;\n return;\n }\n function Dg(b, e, f) {\n b = b | 0;\n e = e | 0;\n f = f | 0;\n var g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0;\n m = V;\n V = (V + 16) | 0;\n l = m;\n j = (b + 4) | 0;\n if (!(a[j >> 0] | 0)) {\n l = De(e) | 0;\n Ee(l, f, c[b >> 2] | 0);\n l = c[b >> 2] | 0;\n i = (f + l) | 0;\n if (!l)\n g = 0;\n else {\n g = f;\n h = c[(b + 8) >> 2] | 0;\n while (1) {\n a[h >> 0] = a[g >> 0] | 0;\n g = (g + 1) | 0;\n if ((g | 0) == (i | 0))\n break;\n else\n h = (h + 1) | 0;\n }\n g = c[b >> 2] | 0;\n }\n a[j >> 0] = 1;\n f = (f + g) | 0;\n }\n else {\n h = c[(b + 20) >> 2] | 0;\n g = c[(b + 8) >> 2] | 0;\n Cg(l, (b + 32) | 0);\n b = (b + 12) | 0;\n if ((g | 0) != (c[b >> 2] | 0)) {\n k = (l + 4) | 0;\n j = g;\n i = h;\n g = c[k >> 2] | 0;\n while (1) {\n h = d[j >> 0] | 0;\n h = Eg(((Zc(e, g) | 0) + h) | 0) | 0;\n a[i >> 0] = h;\n a[f >> 0] = h;\n a[j >> 0] = h;\n j = (j + 1) | 0;\n f = (f + 1) | 0;\n h = c[l >> 2] | 0;\n g = ((c[k >> 2] | 0) + 44) | 0;\n c[k >> 2] = g;\n if (((g - (c[h >> 2] | 0)) | 0) == 4092) {\n g = (h + 4) | 0;\n c[l >> 2] = g;\n g = c[g >> 2] | 0;\n c[k >> 2] = g;\n }\n if ((j | 0) == (c[b >> 2] | 0))\n break;\n else\n i = (i + 1) | 0;\n }\n }\n }\n V = m;\n return f | 0;\n }\n function Eg(a) {\n a = a | 0;\n return (a & 255) | 0;\n }\n function Fg(a) {\n a = a | 0;\n pq(a);\n jp(a);\n return;\n }\n function Gg(a) {\n a = a | 0;\n a = c[(a + 12) >> 2] | 0;\n if (a | 0)\n ca[c[((c[a >> 2] | 0) + 4) >> 2] & 255](a);\n return;\n }\n function Hg(a, b) {\n a = a | 0;\n b = b | 0;\n return ((c[(b + 4) >> 2] | 0) == 11262 ? (a + 12) | 0 : 0) | 0;\n }\n function Ig(a) {\n a = a | 0;\n Da(a, 16);\n return;\n }\n function Jg(a, b) {\n a = a | 0;\n b = b | 0;\n c[a >> 2] = 0;\n c[(a + 4) >> 2] = 0;\n c[(a + 8) >> 2] = 0;\n if (b | 0) {\n Yf(a, b);\n Lg(a, b);\n }\n return;\n }\n function Kg(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n c[a >> 2] = 0;\n c[(a + 4) >> 2] = 0;\n c[(a + 8) >> 2] = 0;\n c[(a + 12) >> 2] = 0;\n c[(a + 16) >> 2] = 0;\n c[(a + 20) >> 2] = 0;\n if (b | 0)\n Mg(a, b, d);\n return;\n }\n function Lg(b, d) {\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0, g = 0;\n g = V;\n V = (V + 16) | 0;\n f = g;\n ag(f, b, d);\n d = (f + 4) | 0;\n b = c[d >> 2] | 0;\n e = (f + 8) | 0;\n if ((b | 0) != (c[e >> 2] | 0))\n do {\n a[b >> 0] = 0;\n b = ((c[d >> 2] | 0) + 1) | 0;\n c[d >> 2] = b;\n } while ((b | 0) != (c[e >> 2] | 0));\n bg(f);\n V = g;\n return;\n }\n function Mg(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0;\n o = V;\n V = (V + 96) | 0;\n n = (o + 80) | 0;\n k = (o + 64) | 0;\n h = (o + 48) | 0;\n i = (o + 40) | 0;\n j = (o + 8) | 0;\n f = o;\n l = (o + 32) | 0;\n m = (o + 16) | 0;\n e = ((c[(a + 8) >> 2] | 0) - (c[(a + 4) >> 2] | 0)) | 0;\n e =\n (((e | 0) == 0 ? 0 : ((((e >> 2) * 93) | 0) + -1) | 0) -\n ((c[(a + 20) >> 2] | 0) + (c[(a + 16) >> 2] | 0))) |\n 0;\n if (e >>> 0 < b >>> 0)\n eg(a, (b - e) | 0);\n fg(i, a);\n fg(f, a);\n e = c[f >> 2] | 0;\n f = c[(f + 4) >> 2] | 0;\n g = j;\n c[g >> 2] = e;\n c[(g + 4) >> 2] = f;\n g = e;\n if (b | 0) {\n e = (((((f - (c[e >> 2] | 0)) | 0) / 44) | 0) + b) | 0;\n if ((e | 0) > 0) {\n b = ((e >>> 0) / 93) | 0;\n g = (g + (b << 2)) | 0;\n c[j >> 2] = g;\n e = ((c[g >> 2] | 0) + ((((e - ((b * 93) | 0)) | 0) * 44) | 0)) | 0;\n }\n else {\n e = (92 - e) | 0;\n b = (g + ((((e | 0) / -93) | 0) << 2)) | 0;\n c[j >> 2] = b;\n e = ((c[b >> 2] | 0) + ((((92 - ((e | 0) % 93 | 0)) | 0) * 44) | 0)) | 0;\n }\n c[(j + 4) >> 2] = e;\n }\n c[k >> 2] = c[i >> 2];\n c[(k + 4) >> 2] = c[(i + 4) >> 2];\n c[n >> 2] = c[j >> 2];\n c[(n + 4) >> 2] = c[(j + 4) >> 2];\n gg(h, k, n);\n hg(n, h);\n ig(k, h);\n if (jg(n, k) | 0) {\n f = (m + 4) | 0;\n do {\n kg(l, n);\n lg(m, a, l);\n e = c[m >> 2] | 0;\n if ((e | 0) != (c[f >> 2] | 0))\n do {\n Wc(e, d);\n e = ((c[m >> 2] | 0) + 44) | 0;\n c[m >> 2] = e;\n } while ((e | 0) != (c[f >> 2] | 0));\n mg(m);\n ng(n) | 0;\n } while (jg(n, k) | 0);\n }\n V = o;\n return;\n }\n function Ng(a) {\n a = a | 0;\n var b = 0, d = 0;\n Bg(a);\n b = c[(a + 4) >> 2] | 0;\n d = c[(a + 8) >> 2] | 0;\n if ((b | 0) != (d | 0))\n do {\n Da(c[b >> 2] | 0, 4092);\n b = (b + 4) | 0;\n } while ((b | 0) != (d | 0));\n dg(a);\n return;\n }\n function Og(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n Md(a);\n c[a >> 2] = 4924;\n c[(a + 4) >> 2] = b;\n c[(a + 8) >> 2] = d;\n return;\n }\n function Pg(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n d = V;\n V = (V + 16) | 0;\n e = d;\n c[a >> 2] = b;\n f = eq(16) | 0;\n c[(f + 4) >> 2] = 0;\n c[(f + 8) >> 2] = 0;\n c[f >> 2] = 4944;\n c[(f + 12) >> 2] = b;\n c[(a + 4) >> 2] = f;\n c[e >> 2] = b;\n c[(e + 4) >> 2] = b;\n Wg(a, e);\n V = d;\n return;\n }\n function Qg(a, b) {\n a = a | 0;\n b = b | 0;\n return Tg(c[(a + 8) >> 2] | 0, c[(a + 4) >> 2] | 0, b) | 0;\n }\n function Rg(a) {\n a = a | 0;\n var b = 0, d = 0;\n c[a >> 2] = 4924;\n d = (a + 8) | 0;\n b = c[d >> 2] | 0;\n c[d >> 2] = 0;\n if (b | 0) {\n Vg(b);\n jp(b);\n }\n Qd(a);\n return;\n }\n function Sg(a) {\n a = a | 0;\n Rg(a);\n jp(a);\n return;\n }\n function Tg(a, b, c) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n return Ug((a + 4784) | 0, b, Be(a, b, c) | 0) | 0;\n }\n function Ug(b, c, d) {\n b = b | 0;\n c = c | 0;\n d = d | 0;\n if (a[b >> 0] | 0) {\n nc(c);\n a[b >> 0] = 0;\n }\n return d | 0;\n }\n function Vg(a) {\n a = a | 0;\n ze(a);\n return;\n }\n function Wg(a, b) {\n a = a | 0;\n b = b | 0;\n return;\n }\n function Xg(a) {\n a = a | 0;\n pq(a);\n jp(a);\n return;\n }\n function Yg(a) {\n a = a | 0;\n a = c[(a + 12) >> 2] | 0;\n if (a | 0)\n ca[c[((c[a >> 2] | 0) + 8) >> 2] & 255](a);\n return;\n }\n function Zg(a, b) {\n a = a | 0;\n b = b | 0;\n return ((c[(b + 4) >> 2] | 0) == 12004 ? (a + 12) | 0 : 0) | 0;\n }\n function _g(a) {\n a = a | 0;\n Da(a, 16);\n return;\n }\n function $g(b) {\n b = b | 0;\n a[b >> 0] = 1;\n return;\n }\n function ah(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n Md(a);\n c[a >> 2] = 4972;\n c[(a + 4) >> 2] = b;\n c[(a + 8) >> 2] = d;\n return;\n }\n function bh(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n d = V;\n V = (V + 16) | 0;\n e = d;\n c[a >> 2] = b;\n f = eq(16) | 0;\n c[(f + 4) >> 2] = 0;\n c[(f + 8) >> 2] = 0;\n c[f >> 2] = 4992;\n c[(f + 12) >> 2] = b;\n c[(a + 4) >> 2] = f;\n c[e >> 2] = b;\n c[(e + 4) >> 2] = b;\n Wg(a, e);\n V = d;\n return;\n }\n function ch(a, b) {\n a = a | 0;\n b = b | 0;\n return fh(c[(a + 8) >> 2] | 0, c[(a + 4) >> 2] | 0, b) | 0;\n }\n function dh(a) {\n a = a | 0;\n var b = 0, d = 0;\n c[a >> 2] = 4972;\n d = (a + 8) | 0;\n b = c[d >> 2] | 0;\n c[d >> 2] = 0;\n if (b | 0) {\n hh(b);\n jp(b);\n }\n Qd(a);\n return;\n }\n function eh(a) {\n a = a | 0;\n dh(a);\n jp(a);\n return;\n }\n function fh(a, b, c) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n return gh((a + 4784) | 0, b, Be(a, b, c) | 0) | 0;\n }\n function gh(a, b, c) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n return Ug((a + 328) | 0, b, qf(a, b, c) | 0) | 0;\n }\n function hh(a) {\n a = a | 0;\n ih((a + 4784) | 0);\n ze(a);\n return;\n }\n function ih(a) {\n a = a | 0;\n of(a);\n return;\n }\n function jh(a) {\n a = a | 0;\n pq(a);\n jp(a);\n return;\n }\n function kh(a) {\n a = a | 0;\n a = c[(a + 12) >> 2] | 0;\n if (a | 0)\n ca[c[((c[a >> 2] | 0) + 8) >> 2] & 255](a);\n return;\n }\n function lh(a, b) {\n a = a | 0;\n b = b | 0;\n return ((c[(b + 4) >> 2] | 0) == 12827 ? (a + 12) | 0 : 0) | 0;\n }\n function mh(a) {\n a = a | 0;\n Da(a, 16);\n return;\n }\n function nh(a) {\n a = a | 0;\n cf(a);\n $g((a + 328) | 0);\n return;\n }\n function oh(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n Md(a);\n c[a >> 2] = 5020;\n c[(a + 4) >> 2] = b;\n c[(a + 8) >> 2] = d;\n return;\n }\n function ph(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n d = V;\n V = (V + 16) | 0;\n e = d;\n c[a >> 2] = b;\n f = eq(16) | 0;\n c[(f + 4) >> 2] = 0;\n c[(f + 8) >> 2] = 0;\n c[f >> 2] = 5040;\n c[(f + 12) >> 2] = b;\n c[(a + 4) >> 2] = f;\n c[e >> 2] = b;\n c[(e + 4) >> 2] = b;\n Wg(a, e);\n V = d;\n return;\n }\n function qh(a, b) {\n a = a | 0;\n b = b | 0;\n return th(c[(a + 8) >> 2] | 0, c[(a + 4) >> 2] | 0, b) | 0;\n }\n function rh(a) {\n a = a | 0;\n var b = 0, d = 0;\n c[a >> 2] = 5020;\n d = (a + 8) | 0;\n b = c[d >> 2] | 0;\n c[d >> 2] = 0;\n if (b | 0) {\n vh(b);\n jp(b);\n }\n Qd(a);\n return;\n }\n function sh(a) {\n a = a | 0;\n rh(a);\n jp(a);\n return;\n }\n function th(a, b, c) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n return uh((a + 4784) | 0, b, Be(a, b, c) | 0) | 0;\n }\n function uh(a, b, c) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n return Ug((a + 316) | 0, b, If(a, b, c) | 0) | 0;\n }\n function vh(a) {\n a = a | 0;\n wh((a + 4784) | 0);\n ze(a);\n return;\n }\n function wh(a) {\n a = a | 0;\n Hf(a);\n return;\n }\n function xh(a) {\n a = a | 0;\n pq(a);\n jp(a);\n return;\n }\n function yh(a) {\n a = a | 0;\n a = c[(a + 12) >> 2] | 0;\n if (a | 0)\n ca[c[((c[a >> 2] | 0) + 8) >> 2] & 255](a);\n return;\n }\n function zh(a, b) {\n a = a | 0;\n b = b | 0;\n return ((c[(b + 4) >> 2] | 0) == 13672 ? (a + 12) | 0 : 0) | 0;\n }\n function Ah(a) {\n a = a | 0;\n Da(a, 16);\n return;\n }\n function Bh(a) {\n a = a | 0;\n Cf(a);\n $g((a + 316) | 0);\n return;\n }\n function Ch(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n Md(a);\n c[a >> 2] = 5068;\n c[(a + 4) >> 2] = b;\n c[(a + 8) >> 2] = d;\n return;\n }\n function Dh(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n d = V;\n V = (V + 16) | 0;\n e = d;\n c[a >> 2] = b;\n f = eq(16) | 0;\n c[(f + 4) >> 2] = 0;\n c[(f + 8) >> 2] = 0;\n c[f >> 2] = 5088;\n c[(f + 12) >> 2] = b;\n c[(a + 4) >> 2] = f;\n c[e >> 2] = b;\n c[(e + 4) >> 2] = b;\n Wg(a, e);\n V = d;\n return;\n }\n function Eh(a, b) {\n a = a | 0;\n b = b | 0;\n return Hh(c[(a + 8) >> 2] | 0, c[(a + 4) >> 2] | 0, b) | 0;\n }\n function Fh(a) {\n a = a | 0;\n var b = 0, d = 0;\n c[a >> 2] = 5068;\n d = (a + 8) | 0;\n b = c[d >> 2] | 0;\n c[d >> 2] = 0;\n if (b | 0) {\n Jh(b);\n jp(b);\n }\n Qd(a);\n return;\n }\n function Gh(a) {\n a = a | 0;\n Fh(a);\n jp(a);\n return;\n }\n function Hh(a, b, c) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n return Ih((a + 4784) | 0, b, Be(a, b, c) | 0) | 0;\n }\n function Ih(a, b, c) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n return uh((a + 328) | 0, b, qf(a, b, c) | 0) | 0;\n }\n function Jh(a) {\n a = a | 0;\n Kh((a + 4784) | 0);\n ze(a);\n return;\n }\n function Kh(a) {\n a = a | 0;\n wh((a + 328) | 0);\n of(a);\n return;\n }\n function Lh(a) {\n a = a | 0;\n pq(a);\n jp(a);\n return;\n }\n function Mh(a) {\n a = a | 0;\n a = c[(a + 12) >> 2] | 0;\n if (a | 0)\n ca[c[((c[a >> 2] | 0) + 8) >> 2] & 255](a);\n return;\n }\n function Nh(a, b) {\n a = a | 0;\n b = b | 0;\n return ((c[(b + 4) >> 2] | 0) == 14573 ? (a + 12) | 0 : 0) | 0;\n }\n function Oh(a) {\n a = a | 0;\n Da(a, 16);\n return;\n }\n function Ph(a) {\n a = a | 0;\n cf(a);\n Bh((a + 328) | 0);\n return;\n }\n function Qh(a) {\n a = a | 0;\n return (a + 20) | 0;\n }\n function Rh(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n c[a >> 2] = b;\n c[(a + 4) >> 2] = d;\n c[(a + 8) >> 2] = 0;\n return;\n }\n function Sh(a, b) {\n a = a | 0;\n b = b | 0;\n c[a >> 2] = b;\n c[(a + 4) >> 2] = 0;\n c[(a + 8) >> 2] = -1;\n return;\n }\n function Th(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0;\n d = V;\n V = (V + 16) | 0;\n e = (d + 4) | 0;\n g = d;\n f = eq(24) | 0;\n ii(f, b);\n c[g >> 2] = 0;\n c[e >> 2] = c[g >> 2];\n ji(a, f, e);\n V = d;\n return;\n }\n function Uh(a) {\n a = a | 0;\n var b = 0, d = 0;\n a = c[(a + 4) >> 2] | 0;\n if (a | 0 ? ((d = (a + 4) | 0), (b = c[d >> 2] | 0), (c[d >> 2] = b + -1), (b | 0) == 0) : 0) {\n ca[c[((c[a >> 2] | 0) + 8) >> 2] & 255](a);\n qq(a);\n }\n return;\n }\n function Vh(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n d = V;\n V = (V + 16) | 0;\n e = d;\n c[a >> 2] = b;\n f = eq(16) | 0;\n c[(f + 4) >> 2] = 0;\n c[(f + 8) >> 2] = 0;\n c[f >> 2] = 5116;\n c[(f + 12) >> 2] = b;\n c[(a + 4) >> 2] = f;\n c[e >> 2] = b;\n c[(e + 4) >> 2] = b;\n Xh(a, e);\n V = d;\n return;\n }\n function Wh(a) {\n a = a | 0;\n var b = 0, d = 0;\n a = c[(a + 4) >> 2] | 0;\n if (a | 0 ? ((d = (a + 4) | 0), (b = c[d >> 2] | 0), (c[d >> 2] = b + -1), (b | 0) == 0) : 0) {\n ca[c[((c[a >> 2] | 0) + 8) >> 2] & 255](a);\n qq(a);\n }\n return;\n }\n function Xh(a, b) {\n a = a | 0;\n b = b | 0;\n return;\n }\n function Yh(a) {\n a = a | 0;\n pq(a);\n jp(a);\n return;\n }\n function Zh(a) {\n a = a | 0;\n a = c[(a + 12) >> 2] | 0;\n if (a | 0)\n jp(a);\n return;\n }\n function _h(a, b) {\n a = a | 0;\n b = b | 0;\n return ((c[(b + 4) >> 2] | 0) == 14966 ? (a + 12) | 0 : 0) | 0;\n }\n function $h(a) {\n a = a | 0;\n Da(a, 16);\n return;\n }\n function ai(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n d = V;\n V = (V + 16) | 0;\n e = d;\n c[a >> 2] = b;\n f = eq(16) | 0;\n c[(f + 4) >> 2] = 0;\n c[(f + 8) >> 2] = 0;\n c[f >> 2] = 5144;\n c[(f + 12) >> 2] = b;\n c[(a + 4) >> 2] = f;\n c[e >> 2] = b;\n c[(e + 4) >> 2] = b;\n ci(a, e);\n V = d;\n return;\n }\n function bi(a) {\n a = a | 0;\n var b = 0, d = 0;\n a = c[(a + 4) >> 2] | 0;\n if (a | 0 ? ((d = (a + 4) | 0), (b = c[d >> 2] | 0), (c[d >> 2] = b + -1), (b | 0) == 0) : 0) {\n ca[c[((c[a >> 2] | 0) + 8) >> 2] & 255](a);\n qq(a);\n }\n return;\n }\n function ci(a, b) {\n a = a | 0;\n b = b | 0;\n return;\n }\n function di(a) {\n a = a | 0;\n pq(a);\n jp(a);\n return;\n }\n function ei(a) {\n a = a | 0;\n a = c[(a + 12) >> 2] | 0;\n if (a | 0) {\n hi(a);\n jp(a);\n }\n return;\n }\n function fi(a, b) {\n a = a | 0;\n b = b | 0;\n return ((c[(b + 4) >> 2] | 0) == 15127 ? (a + 12) | 0 : 0) | 0;\n }\n function gi(a) {\n a = a | 0;\n Da(a, 16);\n return;\n }\n function hi(a) {\n a = a | 0;\n return;\n }\n function ii(b, d) {\n b = b | 0;\n d = d | 0;\n Md(b);\n c[b >> 2] = 5172;\n c[(b + 4) >> 2] = d;\n c[(b + 8) >> 2] = 0;\n c[(b + 12) >> 2] = 0;\n c[(b + 16) >> 2] = 0;\n a[(b + 20) >> 0] = 1;\n return;\n }\n function ji(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n d = V;\n V = (V + 16) | 0;\n e = d;\n c[a >> 2] = b;\n f = eq(16) | 0;\n c[(f + 4) >> 2] = 0;\n c[(f + 8) >> 2] = 0;\n c[f >> 2] = 5192;\n c[(f + 12) >> 2] = b;\n c[(a + 4) >> 2] = f;\n c[e >> 2] = b;\n c[(e + 4) >> 2] = b;\n pi(a, e);\n V = d;\n return;\n }\n function ki(b, d) {\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0;\n k = V;\n V = (V + 16) | 0;\n h = k;\n e = c[(b + 8) >> 2] | 0;\n i = c[(b + 12) >> 2] | 0;\n if ((e | 0) != (i | 0)) {\n j = (h + 4) | 0;\n do {\n f = c[e >> 2] | 0;\n c[h >> 2] = f;\n g = c[(e + 4) >> 2] | 0;\n c[j >> 2] = g;\n if (g | 0) {\n g = (g + 4) | 0;\n c[g >> 2] = (c[g >> 2] | 0) + 1;\n }\n d = $[c[((c[f >> 2] | 0) + 12) >> 2] & 63](f, d) | 0;\n Sd(h);\n e = (e + 8) | 0;\n } while ((e | 0) != (i | 0));\n }\n e = (b + 20) | 0;\n if (a[e >> 0] | 0) {\n a[e >> 0] = 0;\n ni(c[(b + 4) >> 2] | 0);\n }\n V = k;\n return d | 0;\n }\n function li(a) {\n a = a | 0;\n c[a >> 2] = 5172;\n Td((a + 8) | 0);\n Qd(a);\n return;\n }\n function mi(a) {\n a = a | 0;\n li(a);\n jp(a);\n return;\n }\n function ni(a) {\n a = a | 0;\n var b = 0;\n b = ((oi(c[a >> 2] | 0) | 0) & 255) << 24;\n b = (((oi(c[a >> 2] | 0) | 0) & 255) << 16) | b;\n b = b | (((oi(c[a >> 2] | 0) | 0) & 255) << 8);\n c[(a + 4) >> 2] = b | ((oi(c[a >> 2] | 0) | 0) & 255);\n return;\n }\n function oi(b) {\n b = b | 0;\n var d = 0, e = 0;\n d = c[b >> 2] | 0;\n e = (b + 8) | 0;\n b = c[e >> 2] | 0;\n c[e >> 2] = b + 1;\n return a[(d + b) >> 0] | 0;\n }\n function pi(a, b) {\n a = a | 0;\n b = b | 0;\n return;\n }\n function qi(a) {\n a = a | 0;\n pq(a);\n jp(a);\n return;\n }\n function ri(a) {\n a = a | 0;\n a = c[(a + 12) >> 2] | 0;\n if (a | 0)\n ca[c[((c[a >> 2] | 0) + 8) >> 2] & 255](a);\n return;\n }\n function si(a, b) {\n a = a | 0;\n b = b | 0;\n return ((c[(b + 4) >> 2] | 0) == 15450 ? (a + 12) | 0 : 0) | 0;\n }\n function ti(a) {\n a = a | 0;\n Da(a, 16);\n return;\n }\n function ui(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0;\n j = V;\n V = (V + 32) | 0;\n e = (j + 12) | 0;\n f = j;\n b = (j + 8) | 0;\n h = eq(180) | 0;\n wi(h, c[(a + 4) >> 2] | 0);\n g = (a + 8) | 0;\n c[b >> 2] = 0;\n c[e >> 2] = c[b >> 2];\n xi(f, h, e);\n h = (a + 12) | 0;\n b = c[h >> 2] | 0;\n i = (a + 16) | 0;\n do\n if (b >>> 0 >= (c[i >> 2] | 0) >>> 0) {\n b = (((b - (c[g >> 2] | 0)) >> 3) + 1) | 0;\n d = ee(g) | 0;\n if (d >>> 0 < b >>> 0)\n cr(g);\n else {\n k = c[g >> 2] | 0;\n l = ((c[i >> 2] | 0) - k) | 0;\n i = l >> 2;\n be(e, (l >> 3) >>> 0 < (d >>> 1) >>> 0 ? (i >>> 0 < b >>> 0 ? b : i) : d, ((c[h >> 2] | 0) - k) >> 3, (a + 16) | 0);\n i = (e + 8) | 0;\n h = c[i >> 2] | 0;\n c[h >> 2] = c[f >> 2];\n a = (f + 4) | 0;\n c[(h + 4) >> 2] = c[a >> 2];\n c[f >> 2] = 0;\n c[a >> 2] = 0;\n c[i >> 2] = h + 8;\n ce(g, e);\n de(e);\n break;\n }\n }\n else {\n $d(e, g, 1);\n l = (e + 4) | 0;\n k = c[l >> 2] | 0;\n c[k >> 2] = c[f >> 2];\n i = (f + 4) | 0;\n c[(k + 4) >> 2] = c[i >> 2];\n c[f >> 2] = 0;\n c[i >> 2] = 0;\n c[l >> 2] = k + 8;\n ae(e);\n }\n while (0);\n Sd(f);\n V = j;\n return;\n }\n function vi(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0;\n j = V;\n V = (V + 32) | 0;\n e = (j + 12) | 0;\n f = j;\n b = (j + 8) | 0;\n h = eq(180) | 0;\n Ui(h, c[(a + 4) >> 2] | 0);\n g = (a + 8) | 0;\n c[b >> 2] = 0;\n c[e >> 2] = c[b >> 2];\n Vi(f, h, e);\n h = (a + 12) | 0;\n b = c[h >> 2] | 0;\n i = (a + 16) | 0;\n do\n if (b >>> 0 >= (c[i >> 2] | 0) >>> 0) {\n b = (((b - (c[g >> 2] | 0)) >> 3) + 1) | 0;\n d = ee(g) | 0;\n if (d >>> 0 < b >>> 0)\n cr(g);\n else {\n k = c[g >> 2] | 0;\n l = ((c[i >> 2] | 0) - k) | 0;\n i = l >> 2;\n be(e, (l >> 3) >>> 0 < (d >>> 1) >>> 0 ? (i >>> 0 < b >>> 0 ? b : i) : d, ((c[h >> 2] | 0) - k) >> 3, (a + 16) | 0);\n i = (e + 8) | 0;\n h = c[i >> 2] | 0;\n c[h >> 2] = c[f >> 2];\n a = (f + 4) | 0;\n c[(h + 4) >> 2] = c[a >> 2];\n c[f >> 2] = 0;\n c[a >> 2] = 0;\n c[i >> 2] = h + 8;\n ce(g, e);\n de(e);\n break;\n }\n }\n else {\n $d(e, g, 1);\n l = (e + 4) | 0;\n k = c[l >> 2] | 0;\n c[k >> 2] = c[f >> 2];\n i = (f + 4) | 0;\n c[(k + 4) >> 2] = c[i >> 2];\n c[f >> 2] = 0;\n c[i >> 2] = 0;\n c[l >> 2] = k + 8;\n ae(e);\n }\n while (0);\n Sd(f);\n V = j;\n return;\n }\n function wi(a, b) {\n a = a | 0;\n b = b | 0;\n fe(a);\n c[a >> 2] = 5220;\n c[(a + 4) >> 2] = b;\n yi((a + 8) | 0);\n return;\n }\n function xi(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n d = V;\n V = (V + 16) | 0;\n e = d;\n c[a >> 2] = b;\n f = eq(16) | 0;\n c[(f + 4) >> 2] = 0;\n c[(f + 8) >> 2] = 0;\n c[f >> 2] = 5244;\n c[(f + 12) >> 2] = b;\n c[(a + 4) >> 2] = f;\n c[e >> 2] = b;\n c[(e + 4) >> 2] = b;\n Xe(a, e);\n V = d;\n return;\n }\n function yi(b) {\n b = b | 0;\n xe(b, 32, 1, 8, 0);\n mc((b + 80) | 0, 32, 1, 8, 0);\n a[(b + 160) >> 0] = 0;\n a[(b + 161) >> 0] = 0;\n Ci((b + 164) | 0);\n return;\n }\n function zi(a) {\n a = a | 0;\n c[a >> 2] = 5220;\n Di((a + 8) | 0);\n le(a);\n return;\n }\n function Ai(a) {\n a = a | 0;\n zi(a);\n jp(a);\n return;\n }\n function Bi(a, b) {\n a = a | 0;\n b = b | 0;\n return Ei((a + 8) | 0, c[(a + 4) >> 2] | 0, b) | 0;\n }\n function Ci(b) {\n b = b | 0;\n a[(b + 4) >> 0] = 0;\n return;\n }\n function Di(a) {\n a = a | 0;\n qc((a + 80) | 0);\n ye(a);\n return;\n }\n function Ei(b, d, e) {\n b = b | 0;\n d = d | 0;\n e = e | 0;\n var f = 0, g = 0, h = 0;\n h = V;\n V = (V + 16) | 0;\n f = h;\n if (!(a[(b + 161) >> 0] | 0))\n oc((b + 80) | 0);\n g = (b + 164) | 0;\n if (Fi(g) | 0) {\n d = Gi((b + 80) | 0, d, c[g >> 2] | 0, 0) | 0;\n c[f >> 2] = d;\n Se(d, e);\n }\n else {\n Ii(Hi(d) | 0, e, 4);\n c[f >> 2] = Ne(e) | 0;\n }\n Ji(g, f);\n V = h;\n return (e + 4) | 0;\n }\n function Fi(b) {\n b = b | 0;\n return ((a[(b + 4) >> 0] | 0) != 0) | 0;\n }\n function Gi(a, b, d, e) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n e = e | 0;\n d = ((Ki(a, b, ((c[(a + 36) >> 2] | 0) + ((e * 44) | 0)) | 0) | 0) + d) | 0;\n b = c[(a + 24) >> 2] | 0;\n if ((d | 0) < 0)\n return (d + b) | 0;\n else\n return (d - (d >>> 0 < b >>> 0 ? 0 : b)) | 0;\n return 0;\n }\n function Hi(a) {\n a = a | 0;\n return c[a >> 2] | 0;\n }\n function Ii(b, c, d) {\n b = b | 0;\n c = c | 0;\n d = d | 0;\n var e = 0;\n if ((d | 0) > 0) {\n e = 0;\n do {\n a[(c + e) >> 0] = oi(b) | 0;\n e = (e + 1) | 0;\n } while ((e | 0) != (d | 0));\n }\n return;\n }\n function Ji(b, d) {\n b = b | 0;\n d = d | 0;\n var e = 0;\n e = (b + 4) | 0;\n if (!(a[e >> 0] | 0))\n a[e >> 0] = 1;\n c[b >> 2] = c[d >> 2];\n return;\n }\n function Ki(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0;\n d = Li(b, d) | 0;\n c[a >> 2] = d;\n do\n if (d) {\n if (d >>> 0 >= 32) {\n d = c[(a + 28) >> 2] | 0;\n break;\n }\n e = c[(a + 12) >> 2] | 0;\n if (d >>> 0 > e >>> 0) {\n e = (d - e) | 0;\n d = Li(b, ((c[(a + 68) >> 2] | 0) + ((((d + -1) | 0) * 44) | 0)) | 0) | 0;\n e = (d << e) | (Mi(b, e) | 0);\n }\n else\n e = Li(b, ((c[(a + 68) >> 2] | 0) + ((((d + -1) | 0) * 44) | 0)) | 0) | 0;\n d = c[a >> 2] | 0;\n if ((e | 0) < ((1 << (d + -1)) | 0)) {\n d = (e + 1 + (-1 << d)) | 0;\n break;\n }\n else {\n d = (e + 1) | 0;\n break;\n }\n }\n else\n d = Ni(b, (a + 48) | 0) | 0;\n while (0);\n return d | 0;\n }\n function Li(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0;\n n = (a + 8) | 0;\n m = c[n >> 2] | 0;\n f = c[(b + 16) >> 2] | 0;\n if (f) {\n e = (a + 4) | 0;\n d = c[e >> 2] | 0;\n l = m >>> 15;\n c[n >> 2] = l;\n j = ((d >>> 0) / (l >>> 0)) | 0;\n i = j >>> (c[(b + 40) >> 2] | 0);\n g = c[(f + (i << 2)) >> 2] | 0;\n i = ((c[(f + ((i + 1) << 2)) >> 2] | 0) + 1) | 0;\n h = (g + 1) | 0;\n k = c[(b + 8) >> 2] | 0;\n if (i >>> 0 > h >>> 0) {\n f = g;\n g = i;\n do {\n h = ((g + f) | 0) >>> 1;\n i = (c[(k + (h << 2)) >> 2] | 0) >>> 0 > j >>> 0;\n f = i ? f : h;\n g = i ? h : g;\n h = (f + 1) | 0;\n } while (g >>> 0 > h >>> 0);\n g = f;\n }\n f = q(c[(k + (g << 2)) >> 2] | 0, l) | 0;\n if ((g | 0) == (c[(b + 32) >> 2] | 0))\n h = m;\n else\n h = q(c[(k + (h << 2)) >> 2] | 0, l) | 0;\n }\n else {\n k = m >>> 15;\n c[n >> 2] = k;\n i = c[b >> 2] | 0;\n l = c[(b + 8) >> 2] | 0;\n e = (a + 4) | 0;\n d = c[e >> 2] | 0;\n j = i >>> 1;\n f = 0;\n h = m;\n g = 0;\n do {\n o = q(c[(l + (j << 2)) >> 2] | 0, k) | 0;\n m = o >>> 0 > d >>> 0;\n h = m ? o : h;\n f = m ? f : o;\n g = m ? g : j;\n i = m ? j : i;\n j = ((g + i) | 0) >>> 1;\n } while ((j | 0) != (g | 0));\n }\n c[e >> 2] = d - f;\n o = (h - f) | 0;\n c[n >> 2] = o;\n if (o >>> 0 < 16777216)\n Oi(a);\n n = ((c[(b + 12) >> 2] | 0) + (g << 2)) | 0;\n c[n >> 2] = (c[n >> 2] | 0) + 1;\n n = (b + 28) | 0;\n o = ((c[n >> 2] | 0) + -1) | 0;\n c[n >> 2] = o;\n if (!o)\n Xc(b);\n return g | 0;\n }\n function Mi(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0;\n if (b >>> 0 > 19) {\n d = (Pi(a) | 0) & 65535;\n return ((Mi(a, (b + -16) | 0) | 0) << 16) | d | 0;\n }\n e = (a + 4) | 0;\n f = c[e >> 2] | 0;\n g = (a + 8) | 0;\n d = (c[g >> 2] | 0) >>> b;\n c[g >> 2] = d;\n b = ((f >>> 0) / (d >>> 0)) | 0;\n c[e >> 2] = f - (q(b, d) | 0);\n if (d >>> 0 < 16777216)\n Oi(a);\n return b | 0;\n }\n function Ni(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0;\n e = (a + 8) | 0;\n f = c[e >> 2] | 0;\n d = q(f >>> 13, c[(b + 8) >> 2] | 0) | 0;\n g = (a + 4) | 0;\n h = c[g >> 2] | 0;\n i = h >>> 0 >= d >>> 0;\n if (i) {\n c[g >> 2] = h - d;\n d = (f - d) | 0;\n c[e >> 2] = d;\n }\n else {\n c[e >> 2] = d;\n h = (b + 12) | 0;\n c[h >> 2] = (c[h >> 2] | 0) + 1;\n }\n if (d >>> 0 < 16777216)\n Oi(a);\n h = (b + 4) | 0;\n a = ((c[h >> 2] | 0) + -1) | 0;\n c[h >> 2] = a;\n if (!a)\n cd(b);\n return (i & 1) | 0;\n }\n function Oi(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0, f = 0;\n b = (a + 4) | 0;\n d = (a + 8) | 0;\n e = c[b >> 2] | 0;\n do {\n e = (e << 8) | ((oi(c[a >> 2] | 0) | 0) & 255);\n c[b >> 2] = e;\n f = c[d >> 2] << 8;\n c[d >> 2] = f;\n } while (f >>> 0 < 16777216);\n return;\n }\n function Pi(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0, f = 0;\n d = (a + 4) | 0;\n f = c[d >> 2] | 0;\n b = (a + 8) | 0;\n e = (c[b >> 2] | 0) >>> 16;\n c[b >> 2] = e;\n b = ((f >>> 0) / (e >>> 0)) | 0;\n c[d >> 2] = f - (q(b, e) | 0);\n Oi(a);\n return (b & 65535) | 0;\n }\n function Qi(a) {\n a = a | 0;\n pq(a);\n jp(a);\n return;\n }\n function Ri(a) {\n a = a | 0;\n a = c[(a + 12) >> 2] | 0;\n if (a | 0)\n ca[c[((c[a >> 2] | 0) + 4) >> 2] & 255](a);\n return;\n }\n function Si(a, b) {\n a = a | 0;\n b = b | 0;\n return ((c[(b + 4) >> 2] | 0) == 15904 ? (a + 12) | 0 : 0) | 0;\n }\n function Ti(a) {\n a = a | 0;\n Da(a, 16);\n return;\n }\n function Ui(a, b) {\n a = a | 0;\n b = b | 0;\n fe(a);\n c[a >> 2] = 5272;\n c[(a + 4) >> 2] = b;\n Wi((a + 8) | 0);\n return;\n }\n function Vi(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n d = V;\n V = (V + 16) | 0;\n e = d;\n c[a >> 2] = b;\n f = eq(16) | 0;\n c[(f + 4) >> 2] = 0;\n c[(f + 8) >> 2] = 0;\n c[f >> 2] = 5296;\n c[(f + 12) >> 2] = b;\n c[(a + 4) >> 2] = f;\n c[e >> 2] = b;\n c[(e + 4) >> 2] = b;\n Xe(a, e);\n V = d;\n return;\n }\n function Wi(b) {\n b = b | 0;\n xe(b, 32, 1, 8, 0);\n mc((b + 80) | 0, 32, 1, 8, 0);\n a[(b + 160) >> 0] = 0;\n a[(b + 161) >> 0] = 0;\n _i((b + 164) | 0);\n return;\n }\n function Xi(a) {\n a = a | 0;\n c[a >> 2] = 5272;\n $i((a + 8) | 0);\n le(a);\n return;\n }\n function Yi(a) {\n a = a | 0;\n Xi(a);\n jp(a);\n return;\n }\n function Zi(a, b) {\n a = a | 0;\n b = b | 0;\n return aj((a + 8) | 0, c[(a + 4) >> 2] | 0, b) | 0;\n }\n function _i(b) {\n b = b | 0;\n a[(b + 4) >> 0] = 0;\n return;\n }\n function $i(a) {\n a = a | 0;\n qc((a + 80) | 0);\n ye(a);\n return;\n }\n function aj(b, d, e) {\n b = b | 0;\n d = d | 0;\n e = e | 0;\n var f = 0, g = 0, h = 0;\n h = V;\n V = (V + 16) | 0;\n f = h;\n if (!(a[(b + 161) >> 0] | 0))\n oc((b + 80) | 0);\n g = (b + 164) | 0;\n if (bj(g) | 0) {\n d = Gi((b + 80) | 0, d, c[g >> 2] | 0, 0) | 0;\n c[f >> 2] = d;\n We(d, e);\n }\n else {\n Ii(Hi(d) | 0, e, 4);\n c[f >> 2] = Re(e) | 0;\n }\n cj(g, f);\n V = h;\n return (e + 4) | 0;\n }\n function bj(b) {\n b = b | 0;\n return ((a[(b + 4) >> 0] | 0) != 0) | 0;\n }\n function cj(b, d) {\n b = b | 0;\n d = d | 0;\n var e = 0;\n e = (b + 4) | 0;\n if (!(a[e >> 0] | 0))\n a[e >> 0] = 1;\n c[b >> 2] = c[d >> 2];\n return;\n }\n function dj(a) {\n a = a | 0;\n pq(a);\n jp(a);\n return;\n }\n function ej(a) {\n a = a | 0;\n a = c[(a + 12) >> 2] | 0;\n if (a | 0)\n ca[c[((c[a >> 2] | 0) + 4) >> 2] & 255](a);\n return;\n }\n function fj(a, b) {\n a = a | 0;\n b = b | 0;\n return ((c[(b + 4) >> 2] | 0) == 16402 ? (a + 12) | 0 : 0) | 0;\n }\n function gj(a) {\n a = a | 0;\n Da(a, 16);\n return;\n }\n function hj(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0;\n j = V;\n V = (V + 32) | 0;\n e = (j + 12) | 0;\n f = j;\n b = (j + 8) | 0;\n h = eq(172) | 0;\n jj(h, c[(a + 4) >> 2] | 0);\n g = (a + 8) | 0;\n c[b >> 2] = 0;\n c[e >> 2] = c[b >> 2];\n kj(f, h, e);\n h = (a + 12) | 0;\n b = c[h >> 2] | 0;\n i = (a + 16) | 0;\n do\n if (b >>> 0 >= (c[i >> 2] | 0) >>> 0) {\n b = (((b - (c[g >> 2] | 0)) >> 3) + 1) | 0;\n d = ee(g) | 0;\n if (d >>> 0 < b >>> 0)\n cr(g);\n else {\n k = c[g >> 2] | 0;\n l = ((c[i >> 2] | 0) - k) | 0;\n i = l >> 2;\n be(e, (l >> 3) >>> 0 < (d >>> 1) >>> 0 ? (i >>> 0 < b >>> 0 ? b : i) : d, ((c[h >> 2] | 0) - k) >> 3, (a + 16) | 0);\n i = (e + 8) | 0;\n h = c[i >> 2] | 0;\n c[h >> 2] = c[f >> 2];\n a = (f + 4) | 0;\n c[(h + 4) >> 2] = c[a >> 2];\n c[f >> 2] = 0;\n c[a >> 2] = 0;\n c[i >> 2] = h + 8;\n ce(g, e);\n de(e);\n break;\n }\n }\n else {\n $d(e, g, 1);\n l = (e + 4) | 0;\n k = c[l >> 2] | 0;\n c[k >> 2] = c[f >> 2];\n i = (f + 4) | 0;\n c[(k + 4) >> 2] = c[i >> 2];\n c[f >> 2] = 0;\n c[i >> 2] = 0;\n c[l >> 2] = k + 8;\n ae(e);\n }\n while (0);\n Sd(f);\n V = j;\n return;\n }\n function ij(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0;\n j = V;\n V = (V + 32) | 0;\n e = (j + 12) | 0;\n f = j;\n b = (j + 8) | 0;\n h = eq(176) | 0;\n Aj(h, c[(a + 4) >> 2] | 0);\n g = (a + 8) | 0;\n c[b >> 2] = 0;\n c[e >> 2] = c[b >> 2];\n Bj(f, h, e);\n h = (a + 12) | 0;\n b = c[h >> 2] | 0;\n i = (a + 16) | 0;\n do\n if (b >>> 0 >= (c[i >> 2] | 0) >>> 0) {\n b = (((b - (c[g >> 2] | 0)) >> 3) + 1) | 0;\n d = ee(g) | 0;\n if (d >>> 0 < b >>> 0)\n cr(g);\n else {\n k = c[g >> 2] | 0;\n l = ((c[i >> 2] | 0) - k) | 0;\n i = l >> 2;\n be(e, (l >> 3) >>> 0 < (d >>> 1) >>> 0 ? (i >>> 0 < b >>> 0 ? b : i) : d, ((c[h >> 2] | 0) - k) >> 3, (a + 16) | 0);\n i = (e + 8) | 0;\n h = c[i >> 2] | 0;\n c[h >> 2] = c[f >> 2];\n a = (f + 4) | 0;\n c[(h + 4) >> 2] = c[a >> 2];\n c[f >> 2] = 0;\n c[a >> 2] = 0;\n c[i >> 2] = h + 8;\n ce(g, e);\n de(e);\n break;\n }\n }\n else {\n $d(e, g, 1);\n l = (e + 4) | 0;\n k = c[l >> 2] | 0;\n c[k >> 2] = c[f >> 2];\n i = (f + 4) | 0;\n c[(k + 4) >> 2] = c[i >> 2];\n c[f >> 2] = 0;\n c[i >> 2] = 0;\n c[l >> 2] = k + 8;\n ae(e);\n }\n while (0);\n Sd(f);\n V = j;\n return;\n }\n function jj(a, b) {\n a = a | 0;\n b = b | 0;\n fe(a);\n c[a >> 2] = 5324;\n c[(a + 4) >> 2] = b;\n lj((a + 8) | 0);\n return;\n }\n function kj(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n d = V;\n V = (V + 16) | 0;\n e = d;\n c[a >> 2] = b;\n f = eq(16) | 0;\n c[(f + 4) >> 2] = 0;\n c[(f + 8) >> 2] = 0;\n c[f >> 2] = 5348;\n c[(f + 12) >> 2] = b;\n c[(a + 4) >> 2] = f;\n c[e >> 2] = b;\n c[(e + 4) >> 2] = b;\n Xe(a, e);\n V = d;\n return;\n }\n function lj(b) {\n b = b | 0;\n xe(b, 8, 1, 8, 0);\n mc((b + 80) | 0, 8, 1, 8, 0);\n a[(b + 160) >> 0] = 0;\n a[(b + 161) >> 0] = 0;\n pj((b + 162) | 0);\n return;\n }\n function mj(a) {\n a = a | 0;\n c[a >> 2] = 5324;\n qj((a + 8) | 0);\n le(a);\n return;\n }\n function nj(a) {\n a = a | 0;\n mj(a);\n jp(a);\n return;\n }\n function oj(a, b) {\n a = a | 0;\n b = b | 0;\n return rj((a + 8) | 0, c[(a + 4) >> 2] | 0, b) | 0;\n }\n function pj(b) {\n b = b | 0;\n a[(b + 1) >> 0] = 0;\n return;\n }\n function qj(a) {\n a = a | 0;\n qc((a + 80) | 0);\n ye(a);\n return;\n }\n function rj(b, c, d) {\n b = b | 0;\n c = c | 0;\n d = d | 0;\n var e = 0, f = 0, g = 0;\n g = V;\n V = (V + 16) | 0;\n e = g;\n if (!(a[(b + 161) >> 0] | 0))\n oc((b + 80) | 0);\n f = (b + 162) | 0;\n if (sj(f) | 0) {\n c = (Gi((b + 80) | 0, c, a[f >> 0] | 0, 0) | 0) & 255;\n a[e >> 0] = c;\n tj(c, d);\n }\n else {\n Ii(Hi(c) | 0, d, 1);\n a[e >> 0] = uj(d) | 0;\n }\n vj(f, e);\n V = g;\n return (d + 1) | 0;\n }\n function sj(b) {\n b = b | 0;\n return ((a[(b + 1) >> 0] | 0) != 0) | 0;\n }\n function tj(b, c) {\n b = b | 0;\n c = c | 0;\n a[c >> 0] = b;\n return;\n }\n function uj(b) {\n b = b | 0;\n return a[b >> 0] | 0;\n }\n function vj(b, c) {\n b = b | 0;\n c = c | 0;\n var d = 0;\n d = (b + 1) | 0;\n if (!(a[d >> 0] | 0))\n a[d >> 0] = 1;\n a[b >> 0] = a[c >> 0] | 0;\n return;\n }\n function wj(a) {\n a = a | 0;\n pq(a);\n jp(a);\n return;\n }\n function xj(a) {\n a = a | 0;\n a = c[(a + 12) >> 2] | 0;\n if (a | 0)\n ca[c[((c[a >> 2] | 0) + 4) >> 2] & 255](a);\n return;\n }\n function yj(a, b) {\n a = a | 0;\n b = b | 0;\n return ((c[(b + 4) >> 2] | 0) == 16900 ? (a + 12) | 0 : 0) | 0;\n }\n function zj(a) {\n a = a | 0;\n Da(a, 16);\n return;\n }\n function Aj(a, b) {\n a = a | 0;\n b = b | 0;\n fe(a);\n c[a >> 2] = 5376;\n c[(a + 4) >> 2] = b;\n Cj((a + 8) | 0);\n return;\n }\n function Bj(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n d = V;\n V = (V + 16) | 0;\n e = d;\n c[a >> 2] = b;\n f = eq(16) | 0;\n c[(f + 4) >> 2] = 0;\n c[(f + 8) >> 2] = 0;\n c[f >> 2] = 5400;\n c[(f + 12) >> 2] = b;\n c[(a + 4) >> 2] = f;\n c[e >> 2] = b;\n c[(e + 4) >> 2] = b;\n Xe(a, e);\n V = d;\n return;\n }\n function Cj(b) {\n b = b | 0;\n xe(b, 16, 1, 8, 0);\n mc((b + 80) | 0, 16, 1, 8, 0);\n a[(b + 160) >> 0] = 0;\n a[(b + 161) >> 0] = 0;\n Gj((b + 162) | 0);\n return;\n }\n function Dj(a) {\n a = a | 0;\n c[a >> 2] = 5376;\n Hj((a + 8) | 0);\n le(a);\n return;\n }\n function Ej(a) {\n a = a | 0;\n Dj(a);\n jp(a);\n return;\n }\n function Fj(a, b) {\n a = a | 0;\n b = b | 0;\n return Ij((a + 8) | 0, c[(a + 4) >> 2] | 0, b) | 0;\n }\n function Gj(b) {\n b = b | 0;\n a[(b + 2) >> 0] = 0;\n return;\n }\n function Hj(a) {\n a = a | 0;\n qc((a + 80) | 0);\n ye(a);\n return;\n }\n function Ij(c, d, e) {\n c = c | 0;\n d = d | 0;\n e = e | 0;\n var f = 0, g = 0, h = 0;\n h = V;\n V = (V + 16) | 0;\n f = h;\n if (!(a[(c + 161) >> 0] | 0))\n oc((c + 80) | 0);\n g = (c + 162) | 0;\n if (Jj(g) | 0) {\n d = (Gi((c + 80) | 0, d, b[g >> 1] | 0, 0) | 0) & 65535;\n b[f >> 1] = d;\n Kj(d, e);\n }\n else {\n Ii(Hi(d) | 0, e, 2);\n b[f >> 1] = Lj(e) | 0;\n }\n Mj(g, f);\n V = h;\n return (e + 2) | 0;\n }\n function Jj(b) {\n b = b | 0;\n return ((a[(b + 2) >> 0] | 0) != 0) | 0;\n }\n function Kj(a, b) {\n a = a | 0;\n b = b | 0;\n Te(a, b);\n return;\n }\n function Lj(a) {\n a = a | 0;\n return Oe(a) | 0;\n }\n function Mj(c, d) {\n c = c | 0;\n d = d | 0;\n var e = 0;\n e = (c + 2) | 0;\n if (!(a[e >> 0] | 0))\n a[e >> 0] = 1;\n b[c >> 1] = b[d >> 1] | 0;\n return;\n }\n function Nj(a) {\n a = a | 0;\n pq(a);\n jp(a);\n return;\n }\n function Oj(a) {\n a = a | 0;\n a = c[(a + 12) >> 2] | 0;\n if (a | 0)\n ca[c[((c[a >> 2] | 0) + 4) >> 2] & 255](a);\n return;\n }\n function Pj(a, b) {\n a = a | 0;\n b = b | 0;\n return ((c[(b + 4) >> 2] | 0) == 17398 ? (a + 12) | 0 : 0) | 0;\n }\n function Qj(a) {\n a = a | 0;\n Da(a, 16);\n return;\n }\n function Rj(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0;\n j = V;\n V = (V + 32) | 0;\n e = (j + 12) | 0;\n f = j;\n b = (j + 8) | 0;\n h = eq(172) | 0;\n Tj(h, c[(a + 4) >> 2] | 0);\n g = (a + 8) | 0;\n c[b >> 2] = 0;\n c[e >> 2] = c[b >> 2];\n Uj(f, h, e);\n h = (a + 12) | 0;\n b = c[h >> 2] | 0;\n i = (a + 16) | 0;\n do\n if (b >>> 0 >= (c[i >> 2] | 0) >>> 0) {\n b = (((b - (c[g >> 2] | 0)) >> 3) + 1) | 0;\n d = ee(g) | 0;\n if (d >>> 0 < b >>> 0)\n cr(g);\n else {\n k = c[g >> 2] | 0;\n l = ((c[i >> 2] | 0) - k) | 0;\n i = l >> 2;\n be(e, (l >> 3) >>> 0 < (d >>> 1) >>> 0 ? (i >>> 0 < b >>> 0 ? b : i) : d, ((c[h >> 2] | 0) - k) >> 3, (a + 16) | 0);\n i = (e + 8) | 0;\n h = c[i >> 2] | 0;\n c[h >> 2] = c[f >> 2];\n a = (f + 4) | 0;\n c[(h + 4) >> 2] = c[a >> 2];\n c[f >> 2] = 0;\n c[a >> 2] = 0;\n c[i >> 2] = h + 8;\n ce(g, e);\n de(e);\n break;\n }\n }\n else {\n $d(e, g, 1);\n l = (e + 4) | 0;\n k = c[l >> 2] | 0;\n c[k >> 2] = c[f >> 2];\n i = (f + 4) | 0;\n c[(k + 4) >> 2] = c[i >> 2];\n c[f >> 2] = 0;\n c[i >> 2] = 0;\n c[l >> 2] = k + 8;\n ae(e);\n }\n while (0);\n Sd(f);\n V = j;\n return;\n }\n function Sj(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0;\n j = V;\n V = (V + 32) | 0;\n e = (j + 12) | 0;\n f = j;\n b = (j + 8) | 0;\n h = eq(176) | 0;\n gk(h, c[(a + 4) >> 2] | 0);\n g = (a + 8) | 0;\n c[b >> 2] = 0;\n c[e >> 2] = c[b >> 2];\n hk(f, h, e);\n h = (a + 12) | 0;\n b = c[h >> 2] | 0;\n i = (a + 16) | 0;\n do\n if (b >>> 0 >= (c[i >> 2] | 0) >>> 0) {\n b = (((b - (c[g >> 2] | 0)) >> 3) + 1) | 0;\n d = ee(g) | 0;\n if (d >>> 0 < b >>> 0)\n cr(g);\n else {\n k = c[g >> 2] | 0;\n l = ((c[i >> 2] | 0) - k) | 0;\n i = l >> 2;\n be(e, (l >> 3) >>> 0 < (d >>> 1) >>> 0 ? (i >>> 0 < b >>> 0 ? b : i) : d, ((c[h >> 2] | 0) - k) >> 3, (a + 16) | 0);\n i = (e + 8) | 0;\n h = c[i >> 2] | 0;\n c[h >> 2] = c[f >> 2];\n a = (f + 4) | 0;\n c[(h + 4) >> 2] = c[a >> 2];\n c[f >> 2] = 0;\n c[a >> 2] = 0;\n c[i >> 2] = h + 8;\n ce(g, e);\n de(e);\n break;\n }\n }\n else {\n $d(e, g, 1);\n l = (e + 4) | 0;\n k = c[l >> 2] | 0;\n c[k >> 2] = c[f >> 2];\n i = (f + 4) | 0;\n c[(k + 4) >> 2] = c[i >> 2];\n c[f >> 2] = 0;\n c[i >> 2] = 0;\n c[l >> 2] = k + 8;\n ae(e);\n }\n while (0);\n Sd(f);\n V = j;\n return;\n }\n function Tj(a, b) {\n a = a | 0;\n b = b | 0;\n fe(a);\n c[a >> 2] = 5428;\n c[(a + 4) >> 2] = b;\n Vj((a + 8) | 0);\n return;\n }\n function Uj(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n d = V;\n V = (V + 16) | 0;\n e = d;\n c[a >> 2] = b;\n f = eq(16) | 0;\n c[(f + 4) >> 2] = 0;\n c[(f + 8) >> 2] = 0;\n c[f >> 2] = 5452;\n c[(f + 12) >> 2] = b;\n c[(a + 4) >> 2] = f;\n c[e >> 2] = b;\n c[(e + 4) >> 2] = b;\n Xe(a, e);\n V = d;\n return;\n }\n function Vj(b) {\n b = b | 0;\n xe(b, 8, 1, 8, 0);\n mc((b + 80) | 0, 8, 1, 8, 0);\n a[(b + 160) >> 0] = 0;\n a[(b + 161) >> 0] = 0;\n Zj((b + 162) | 0);\n return;\n }\n function Wj(a) {\n a = a | 0;\n c[a >> 2] = 5428;\n _j((a + 8) | 0);\n le(a);\n return;\n }\n function Xj(a) {\n a = a | 0;\n Wj(a);\n jp(a);\n return;\n }\n function Yj(a, b) {\n a = a | 0;\n b = b | 0;\n return $j((a + 8) | 0, c[(a + 4) >> 2] | 0, b) | 0;\n }\n function Zj(b) {\n b = b | 0;\n a[(b + 1) >> 0] = 0;\n return;\n }\n function _j(a) {\n a = a | 0;\n qc((a + 80) | 0);\n ye(a);\n return;\n }\n function $j(b, c, e) {\n b = b | 0;\n c = c | 0;\n e = e | 0;\n var f = 0, g = 0, h = 0;\n h = V;\n V = (V + 16) | 0;\n f = h;\n if (!(a[(b + 161) >> 0] | 0))\n oc((b + 80) | 0);\n g = (b + 162) | 0;\n if (ak(g) | 0) {\n c = (Gi((b + 80) | 0, c, d[g >> 0] | 0, 0) | 0) & 255;\n a[f >> 0] = c;\n Ue(c, e);\n }\n else {\n Ii(Hi(c) | 0, e, 1);\n a[f >> 0] = Pe(e) | 0;\n }\n bk(g, f);\n V = h;\n return (e + 1) | 0;\n }\n function ak(b) {\n b = b | 0;\n return ((a[(b + 1) >> 0] | 0) != 0) | 0;\n }\n function bk(b, c) {\n b = b | 0;\n c = c | 0;\n var d = 0;\n d = (b + 1) | 0;\n if (!(a[d >> 0] | 0))\n a[d >> 0] = 1;\n a[b >> 0] = a[c >> 0] | 0;\n return;\n }\n function ck(a) {\n a = a | 0;\n pq(a);\n jp(a);\n return;\n }\n function dk(a) {\n a = a | 0;\n a = c[(a + 12) >> 2] | 0;\n if (a | 0)\n ca[c[((c[a >> 2] | 0) + 4) >> 2] & 255](a);\n return;\n }\n function ek(a, b) {\n a = a | 0;\n b = b | 0;\n return ((c[(b + 4) >> 2] | 0) == 17896 ? (a + 12) | 0 : 0) | 0;\n }\n function fk(a) {\n a = a | 0;\n Da(a, 16);\n return;\n }\n function gk(a, b) {\n a = a | 0;\n b = b | 0;\n fe(a);\n c[a >> 2] = 5480;\n c[(a + 4) >> 2] = b;\n ik((a + 8) | 0);\n return;\n }\n function hk(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n d = V;\n V = (V + 16) | 0;\n e = d;\n c[a >> 2] = b;\n f = eq(16) | 0;\n c[(f + 4) >> 2] = 0;\n c[(f + 8) >> 2] = 0;\n c[f >> 2] = 5504;\n c[(f + 12) >> 2] = b;\n c[(a + 4) >> 2] = f;\n c[e >> 2] = b;\n c[(e + 4) >> 2] = b;\n Xe(a, e);\n V = d;\n return;\n }\n function ik(b) {\n b = b | 0;\n xe(b, 16, 1, 8, 0);\n mc((b + 80) | 0, 16, 1, 8, 0);\n a[(b + 160) >> 0] = 0;\n a[(b + 161) >> 0] = 0;\n mk((b + 162) | 0);\n return;\n }\n function jk(a) {\n a = a | 0;\n c[a >> 2] = 5480;\n nk((a + 8) | 0);\n le(a);\n return;\n }\n function kk(a) {\n a = a | 0;\n jk(a);\n jp(a);\n return;\n }\n function lk(a, b) {\n a = a | 0;\n b = b | 0;\n return ok((a + 8) | 0, c[(a + 4) >> 2] | 0, b) | 0;\n }\n function mk(b) {\n b = b | 0;\n a[(b + 2) >> 0] = 0;\n return;\n }\n function nk(a) {\n a = a | 0;\n qc((a + 80) | 0);\n ye(a);\n return;\n }\n function ok(c, d, f) {\n c = c | 0;\n d = d | 0;\n f = f | 0;\n var g = 0, h = 0, i = 0;\n i = V;\n V = (V + 16) | 0;\n g = i;\n if (!(a[(c + 161) >> 0] | 0))\n oc((c + 80) | 0);\n h = (c + 162) | 0;\n if (pk(h) | 0) {\n d = (Gi((c + 80) | 0, d, e[h >> 1] | 0, 0) | 0) & 65535;\n b[g >> 1] = d;\n Te(d, f);\n }\n else {\n Ii(Hi(d) | 0, f, 2);\n b[g >> 1] = Oe(f) | 0;\n }\n qk(h, g);\n V = i;\n return (f + 2) | 0;\n }\n function pk(b) {\n b = b | 0;\n return ((a[(b + 2) >> 0] | 0) != 0) | 0;\n }\n function qk(c, d) {\n c = c | 0;\n d = d | 0;\n var e = 0;\n e = (c + 2) | 0;\n if (!(a[e >> 0] | 0))\n a[e >> 0] = 1;\n b[c >> 1] = b[d >> 1] | 0;\n return;\n }\n function rk(a) {\n a = a | 0;\n pq(a);\n jp(a);\n return;\n }\n function sk(a) {\n a = a | 0;\n a = c[(a + 12) >> 2] | 0;\n if (a | 0)\n ca[c[((c[a >> 2] | 0) + 4) >> 2] & 255](a);\n return;\n }\n function tk(a, b) {\n a = a | 0;\n b = b | 0;\n return ((c[(b + 4) >> 2] | 0) == 18394 ? (a + 12) | 0 : 0) | 0;\n }\n function uk(a) {\n a = a | 0;\n Da(a, 16);\n return;\n }\n function vk() {\n return;\n }\n function wk(a) {\n a = a | 0;\n return Ek(a) | 0;\n }\n function xk() {\n return 0;\n }\n function yk() {\n return 0;\n }\n function zk(a) {\n a = a | 0;\n if (a | 0) {\n Fk(a);\n jp(a);\n }\n return;\n }\n function Ak() {\n return Gk() | 0;\n }\n function Bk() {\n return Hk() | 0;\n }\n function Ck() {\n return Ik() | 0;\n }\n function Dk() {\n return 0;\n }\n function Ek(a) {\n a = a | 0;\n return 3360;\n }\n function Fk(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0, f = 0;\n b = V;\n V = (V + 16) | 0;\n e = b;\n c[e >> 2] = c[a >> 2];\n c[a >> 2] = 0;\n d = (a + 4) | 0;\n c[(e + 4) >> 2] = c[d >> 2];\n c[d >> 2] = 0;\n wa(e);\n d = (a + 8) | 0;\n c[e >> 2] = c[d >> 2];\n c[d >> 2] = 0;\n f = (a + 12) | 0;\n c[(e + 4) >> 2] = c[f >> 2];\n c[f >> 2] = 0;\n Ga(e);\n Ga(d);\n wa(a);\n V = b;\n return;\n }\n function Gk() {\n return 3360;\n }\n function Hk() {\n return 3368;\n }\n function Ik() {\n return 3384;\n }\n function Jk() {\n return 18579;\n }\n function Kk() {\n return 18582;\n }\n function Lk() {\n return 18584;\n }\n function Mk() {\n var a = 0;\n a = eq(16) | 0;\n Tk(a);\n return a | 0;\n }\n function Nk(a) {\n a = a | 0;\n var b = 0, c = 0, d = 0, e = 0;\n b = V;\n V = (V + 16) | 0;\n c = b;\n e = Ak() | 0;\n d = Pk(c) | 0;\n c = Qk(c) | 0;\n E(e | 0, d | 0, c | 0, Jk() | 0, 12, a | 0);\n V = b;\n return;\n }\n function Ok(a) {\n a = a | 0;\n return Rk(Y[a & 3]() | 0) | 0;\n }\n function Pk(a) {\n a = a | 0;\n return 1;\n }\n function Qk(a) {\n a = a | 0;\n return Sk() | 0;\n }\n function Rk(a) {\n a = a | 0;\n return a | 0;\n }\n function Sk() {\n return 5524;\n }\n function Tk(a) {\n a = a | 0;\n c[a >> 2] = 0;\n c[(a + 4) >> 2] = 0;\n c[(a + 8) >> 2] = 0;\n c[(a + 12) >> 2] = 0;\n return;\n }\n function Uk(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0;\n d = V;\n V = (V + 16) | 0;\n e = d;\n f = (d + 8) | 0;\n h = c[(b + 4) >> 2] | 0;\n c[e >> 2] = c[b >> 2];\n c[(e + 4) >> 2] = h;\n h = Ak() | 0;\n g = Wk(f) | 0;\n f = Xk(f) | 0;\n b = bl() | 0;\n F(h | 0, a | 0, g | 0, f | 0, b | 0, 4, Yk(e) | 0, 0);\n V = d;\n return;\n }\n function Vk(a, b, d, e) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n e = e | 0;\n var f = 0, g = 0;\n g = Zk(b) | 0;\n b = c[a >> 2] | 0;\n f = c[(a + 4) >> 2] | 0;\n a = (g + (f >> 1)) | 0;\n if (f & 1)\n b = c[((c[a >> 2] | 0) + b) >> 2] | 0;\n f = _k(d) | 0;\n g = $k(e) | 0;\n ea[b & 15](a, f, g);\n return;\n }\n function Wk(a) {\n a = a | 0;\n return 4;\n }\n function Xk(a) {\n a = a | 0;\n return al() | 0;\n }\n function Yk(a) {\n a = a | 0;\n var b = 0, d = 0;\n b = eq(8) | 0;\n d = c[(a + 4) >> 2] | 0;\n c[b >> 2] = c[a >> 2];\n c[(b + 4) >> 2] = d;\n return b | 0;\n }\n function Zk(a) {\n a = a | 0;\n return a | 0;\n }\n function _k(a) {\n a = a | 0;\n return a | 0;\n }\n function $k(a) {\n a = a | 0;\n return a | 0;\n }\n function al() {\n return 144;\n }\n function bl() {\n return 18587;\n }\n function cl(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0;\n d = V;\n V = (V + 16) | 0;\n e = d;\n f = (d + 8) | 0;\n h = c[(b + 4) >> 2] | 0;\n c[e >> 2] = c[b >> 2];\n c[(e + 4) >> 2] = h;\n h = Ak() | 0;\n g = el(f) | 0;\n f = fl(f) | 0;\n b = jl() | 0;\n F(h | 0, a | 0, g | 0, f | 0, b | 0, 7, gl(e) | 0, 0);\n V = d;\n return;\n }\n function dl(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n f = Zk(b) | 0;\n b = c[a >> 2] | 0;\n e = c[(a + 4) >> 2] | 0;\n a = (f + (e >> 1)) | 0;\n if (e & 1)\n b = c[((c[a >> 2] | 0) + b) >> 2] | 0;\n f = hl(d) | 0;\n da[b & 15](a, f);\n return;\n }\n function el(a) {\n a = a | 0;\n return 3;\n }\n function fl(a) {\n a = a | 0;\n return il() | 0;\n }\n function gl(a) {\n a = a | 0;\n var b = 0, d = 0;\n b = eq(8) | 0;\n d = c[(a + 4) >> 2] | 0;\n c[b >> 2] = c[a >> 2];\n c[(b + 4) >> 2] = d;\n return b | 0;\n }\n function hl(a) {\n a = a | 0;\n return a | 0;\n }\n function il() {\n return 5528;\n }\n function jl() {\n return 18593;\n }\n function kl(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0;\n d = V;\n V = (V + 16) | 0;\n e = d;\n f = (d + 8) | 0;\n h = c[(b + 4) >> 2] | 0;\n c[e >> 2] = c[b >> 2];\n c[(e + 4) >> 2] = h;\n h = Ak() | 0;\n g = ml(f) | 0;\n f = nl(f) | 0;\n b = rl() | 0;\n F(h | 0, a | 0, g | 0, f | 0, b | 0, 41, ol(e) | 0, 0);\n V = d;\n return;\n }\n function ll(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0;\n e = V;\n V = (V + 16) | 0;\n d = e;\n g = Zk(b) | 0;\n b = c[a >> 2] | 0;\n f = c[(a + 4) >> 2] | 0;\n a = (g + (f >> 1)) | 0;\n if (f & 1)\n b = c[((c[a >> 2] | 0) + b) >> 2] | 0;\n c[d >> 2] = Z[b & 15](a) | 0;\n g = pl(d) | 0;\n V = e;\n return g | 0;\n }\n function ml(a) {\n a = a | 0;\n return 2;\n }\n function nl(a) {\n a = a | 0;\n return ql() | 0;\n }\n function ol(a) {\n a = a | 0;\n var b = 0, d = 0;\n b = eq(8) | 0;\n d = c[(a + 4) >> 2] | 0;\n c[b >> 2] = c[a >> 2];\n c[(b + 4) >> 2] = d;\n return b | 0;\n }\n function pl(a) {\n a = a | 0;\n return c[a >> 2] | 0;\n }\n function ql() {\n return 5540;\n }\n function rl() {\n return 18598;\n }\n function sl() {\n return;\n }\n function tl(a) {\n a = a | 0;\n return Al(a) | 0;\n }\n function ul() {\n return 0;\n }\n function vl() {\n return 0;\n }\n function wl(a) {\n a = a | 0;\n if (a | 0) {\n Bl(a);\n jp(a);\n }\n return;\n }\n function xl() {\n return Cl() | 0;\n }\n function yl() {\n return Dl() | 0;\n }\n function zl() {\n return El() | 0;\n }\n function Al(a) {\n a = a | 0;\n return 3400;\n }\n function Bl(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0, f = 0;\n b = V;\n V = (V + 16) | 0;\n e = b;\n c[e >> 2] = c[a >> 2];\n c[a >> 2] = 0;\n d = (a + 4) | 0;\n c[(e + 4) >> 2] = c[d >> 2];\n c[d >> 2] = 0;\n Wh(e);\n d = (a + 16) | 0;\n c[e >> 2] = c[d >> 2];\n c[d >> 2] = 0;\n f = (a + 20) | 0;\n c[(e + 4) >> 2] = c[f >> 2];\n c[f >> 2] = 0;\n Uh(e);\n c[e >> 2] = c[d >> 2];\n c[d >> 2] = 0;\n c[(e + 4) >> 2] = c[f >> 2];\n c[f >> 2] = 0;\n Uh(e);\n Uh(d);\n bi((a + 8) | 0);\n Wh(a);\n V = b;\n return;\n }\n function Cl() {\n return 3400;\n }\n function Dl() {\n return 3408;\n }\n function El() {\n return 3424;\n }\n function Fl() {\n var a = 0;\n a = eq(24) | 0;\n Ml(a);\n return a | 0;\n }\n function Gl(a) {\n a = a | 0;\n var b = 0, c = 0, d = 0, e = 0;\n b = V;\n V = (V + 16) | 0;\n c = b;\n e = xl() | 0;\n d = Il(c) | 0;\n c = Jl(c) | 0;\n E(e | 0, d | 0, c | 0, Jk() | 0, 13, a | 0);\n V = b;\n return;\n }\n function Hl(a) {\n a = a | 0;\n return Kl(Y[a & 3]() | 0) | 0;\n }\n function Il(a) {\n a = a | 0;\n return 1;\n }\n function Jl(a) {\n a = a | 0;\n return Ll() | 0;\n }\n function Kl(a) {\n a = a | 0;\n return a | 0;\n }\n function Ll() {\n return 5548;\n }\n function Ml(a) {\n a = a | 0;\n c[a >> 2] = 0;\n c[(a + 4) >> 2] = 0;\n c[(a + 8) >> 2] = 0;\n c[(a + 12) >> 2] = 0;\n c[(a + 16) >> 2] = 0;\n c[(a + 20) >> 2] = 0;\n return;\n }\n function Nl(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0;\n d = V;\n V = (V + 16) | 0;\n e = d;\n f = (d + 8) | 0;\n h = c[(b + 4) >> 2] | 0;\n c[e >> 2] = c[b >> 2];\n c[(e + 4) >> 2] = h;\n h = xl() | 0;\n g = Pl(f) | 0;\n f = Ql(f) | 0;\n b = bl() | 0;\n F(h | 0, a | 0, g | 0, f | 0, b | 0, 5, Rl(e) | 0, 0);\n V = d;\n return;\n }\n function Ol(a, b, d, e) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n e = e | 0;\n var f = 0, g = 0;\n g = Sl(b) | 0;\n b = c[a >> 2] | 0;\n f = c[(a + 4) >> 2] | 0;\n a = (g + (f >> 1)) | 0;\n if (f & 1)\n b = c[((c[a >> 2] | 0) + b) >> 2] | 0;\n f = _k(d) | 0;\n g = $k(e) | 0;\n ea[b & 15](a, f, g);\n return;\n }\n function Pl(a) {\n a = a | 0;\n return 4;\n }\n function Ql(a) {\n a = a | 0;\n return Tl() | 0;\n }\n function Rl(a) {\n a = a | 0;\n var b = 0, d = 0;\n b = eq(8) | 0;\n d = c[(a + 4) >> 2] | 0;\n c[b >> 2] = c[a >> 2];\n c[(b + 4) >> 2] = d;\n return b | 0;\n }\n function Sl(a) {\n a = a | 0;\n return a | 0;\n }\n function Tl() {\n return 160;\n }\n function Ul(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0;\n d = V;\n V = (V + 16) | 0;\n e = d;\n f = (d + 8) | 0;\n h = c[(b + 4) >> 2] | 0;\n c[e >> 2] = c[b >> 2];\n c[(e + 4) >> 2] = h;\n h = xl() | 0;\n g = Wl(f) | 0;\n f = Xl(f) | 0;\n b = jl() | 0;\n F(h | 0, a | 0, g | 0, f | 0, b | 0, 8, Yl(e) | 0, 0);\n V = d;\n return;\n }\n function Vl(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n f = Sl(b) | 0;\n b = c[a >> 2] | 0;\n e = c[(a + 4) >> 2] | 0;\n a = (f + (e >> 1)) | 0;\n if (e & 1)\n b = c[((c[a >> 2] | 0) + b) >> 2] | 0;\n f = $k(d) | 0;\n da[b & 15](a, f);\n return;\n }\n function Wl(a) {\n a = a | 0;\n return 3;\n }\n function Xl(a) {\n a = a | 0;\n return Zl() | 0;\n }\n function Yl(a) {\n a = a | 0;\n var b = 0, d = 0;\n b = eq(8) | 0;\n d = c[(a + 4) >> 2] | 0;\n c[b >> 2] = c[a >> 2];\n c[(b + 4) >> 2] = d;\n return b | 0;\n }\n function Zl() {\n return 5552;\n }\n function _l(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0;\n d = V;\n V = (V + 16) | 0;\n e = d;\n f = (d + 8) | 0;\n h = c[(b + 4) >> 2] | 0;\n c[e >> 2] = c[b >> 2];\n c[(e + 4) >> 2] = h;\n h = xl() | 0;\n g = am(f) | 0;\n f = bm(f) | 0;\n b = jl() | 0;\n F(h | 0, a | 0, g | 0, f | 0, b | 0, 9, cm(e) | 0, 0);\n V = d;\n return;\n }\n function $l(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n f = Sl(b) | 0;\n b = c[a >> 2] | 0;\n e = c[(a + 4) >> 2] | 0;\n a = (f + (e >> 1)) | 0;\n if (e & 1)\n b = c[((c[a >> 2] | 0) + b) >> 2] | 0;\n f = hl(d) | 0;\n da[b & 15](a, f);\n return;\n }\n function am(a) {\n a = a | 0;\n return 3;\n }\n function bm(a) {\n a = a | 0;\n return dm() | 0;\n }\n function cm(a) {\n a = a | 0;\n var b = 0, d = 0;\n b = eq(8) | 0;\n d = c[(a + 4) >> 2] | 0;\n c[b >> 2] = c[a >> 2];\n c[(b + 4) >> 2] = d;\n return b | 0;\n }\n function dm() {\n return 5564;\n }\n function em() {\n ja();\n return;\n }\n function fm() {\n gm();\n return;\n }\n function gm() {\n hm(22144);\n return;\n }\n function hm(a) {\n a = a | 0;\n var b = 0;\n b = V;\n V = (V + 16) | 0;\n c[b >> 2] = a;\n im();\n V = b;\n return;\n }\n function im() {\n M(jm() | 0, 18653);\n C(km() | 0, 18658, 1, 1, 0);\n lm(18663);\n mm(18668);\n nm(18680);\n om(18694);\n pm(18700);\n qm(18715);\n rm(18719);\n sm(18732);\n tm(18737);\n um(18751);\n vm(18757);\n K(wm() | 0, 18764);\n K(xm() | 0, 18776);\n L(ym() | 0, 4, 18809);\n L(zm() | 0, 2, 18822);\n L(Am() | 0, 4, 18837);\n G(Bm() | 0, 18852);\n Cm(18868);\n Dm(18898);\n Em(18935);\n Fm(18974);\n Gm(19005);\n Hm(19045);\n Im(19074);\n Jm(19112);\n Km(19142);\n Dm(19181);\n Em(19213);\n Fm(19246);\n Gm(19279);\n Hm(19313);\n Im(19346);\n Lm(19380);\n Mm(19411);\n Nm(19443);\n return;\n }\n function jm() {\n return _n() | 0;\n }\n function km() {\n return Zn() | 0;\n }\n function lm(a) {\n a = a | 0;\n var b = 0, d = 0;\n b = V;\n V = (V + 16) | 0;\n d = b;\n c[d >> 2] = a;\n a = Xn() | 0;\n I(a | 0, c[d >> 2] | 0, 1, ((-128 << 24) >> 24) | 0, ((127 << 24) >> 24) | 0);\n V = b;\n return;\n }\n function mm(a) {\n a = a | 0;\n var b = 0, d = 0;\n b = V;\n V = (V + 16) | 0;\n d = b;\n c[d >> 2] = a;\n a = Vn() | 0;\n I(a | 0, c[d >> 2] | 0, 1, ((-128 << 24) >> 24) | 0, ((127 << 24) >> 24) | 0);\n V = b;\n return;\n }\n function nm(a) {\n a = a | 0;\n var b = 0, d = 0;\n b = V;\n V = (V + 16) | 0;\n d = b;\n c[d >> 2] = a;\n a = Tn() | 0;\n I(a | 0, c[d >> 2] | 0, 1, 0, 255);\n V = b;\n return;\n }\n function om(a) {\n a = a | 0;\n var b = 0, d = 0;\n b = V;\n V = (V + 16) | 0;\n d = b;\n c[d >> 2] = a;\n a = Rn() | 0;\n I(a | 0, c[d >> 2] | 0, 2, ((-32768 << 16) >> 16) | 0, ((32767 << 16) >> 16) | 0);\n V = b;\n return;\n }\n function pm(a) {\n a = a | 0;\n var b = 0, d = 0;\n b = V;\n V = (V + 16) | 0;\n d = b;\n c[d >> 2] = a;\n a = Pn() | 0;\n I(a | 0, c[d >> 2] | 0, 2, 0, 65535);\n V = b;\n return;\n }\n function qm(a) {\n a = a | 0;\n var b = 0, d = 0;\n b = V;\n V = (V + 16) | 0;\n d = b;\n c[d >> 2] = a;\n a = Nn() | 0;\n I(a | 0, c[d >> 2] | 0, 4, -2147483648, 2147483647);\n V = b;\n return;\n }\n function rm(a) {\n a = a | 0;\n var b = 0, d = 0;\n b = V;\n V = (V + 16) | 0;\n d = b;\n c[d >> 2] = a;\n a = Ln() | 0;\n I(a | 0, c[d >> 2] | 0, 4, 0, -1);\n V = b;\n return;\n }\n function sm(a) {\n a = a | 0;\n var b = 0, d = 0;\n b = V;\n V = (V + 16) | 0;\n d = b;\n c[d >> 2] = a;\n a = Jn() | 0;\n I(a | 0, c[d >> 2] | 0, 4, -2147483648, 2147483647);\n V = b;\n return;\n }\n function tm(a) {\n a = a | 0;\n var b = 0, d = 0;\n b = V;\n V = (V + 16) | 0;\n d = b;\n c[d >> 2] = a;\n a = Hn() | 0;\n I(a | 0, c[d >> 2] | 0, 4, 0, -1);\n V = b;\n return;\n }\n function um(a) {\n a = a | 0;\n var b = 0, d = 0;\n b = V;\n V = (V + 16) | 0;\n d = b;\n c[d >> 2] = a;\n a = Fn() | 0;\n H(a | 0, c[d >> 2] | 0, 4);\n V = b;\n return;\n }\n function vm(a) {\n a = a | 0;\n var b = 0, d = 0;\n b = V;\n V = (V + 16) | 0;\n d = b;\n c[d >> 2] = a;\n a = Dn() | 0;\n H(a | 0, c[d >> 2] | 0, 8);\n V = b;\n return;\n }\n function wm() {\n return Cn() | 0;\n }\n function xm() {\n return Bn() | 0;\n }\n function ym() {\n return An() | 0;\n }\n function zm() {\n return zn() | 0;\n }\n function Am() {\n return yn() | 0;\n }\n function Bm() {\n return xn() | 0;\n }\n function Cm(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0;\n b = V;\n V = (V + 16) | 0;\n d = b;\n c[d >> 2] = a;\n e = un() | 0;\n a = vn() | 0;\n J(e | 0, a | 0, c[d >> 2] | 0);\n V = b;\n return;\n }\n function Dm(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0;\n b = V;\n V = (V + 16) | 0;\n d = b;\n c[d >> 2] = a;\n e = rn() | 0;\n a = sn() | 0;\n J(e | 0, a | 0, c[d >> 2] | 0);\n V = b;\n return;\n }\n function Em(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0;\n b = V;\n V = (V + 16) | 0;\n d = b;\n c[d >> 2] = a;\n e = on() | 0;\n a = pn() | 0;\n J(e | 0, a | 0, c[d >> 2] | 0);\n V = b;\n return;\n }\n function Fm(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0;\n b = V;\n V = (V + 16) | 0;\n d = b;\n c[d >> 2] = a;\n e = ln() | 0;\n a = mn() | 0;\n J(e | 0, a | 0, c[d >> 2] | 0);\n V = b;\n return;\n }\n function Gm(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0;\n b = V;\n V = (V + 16) | 0;\n d = b;\n c[d >> 2] = a;\n e = hn() | 0;\n a = jn() | 0;\n J(e | 0, a | 0, c[d >> 2] | 0);\n V = b;\n return;\n }\n function Hm(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0;\n b = V;\n V = (V + 16) | 0;\n d = b;\n c[d >> 2] = a;\n e = en() | 0;\n a = fn() | 0;\n J(e | 0, a | 0, c[d >> 2] | 0);\n V = b;\n return;\n }\n function Im(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0;\n b = V;\n V = (V + 16) | 0;\n d = b;\n c[d >> 2] = a;\n e = bn() | 0;\n a = cn() | 0;\n J(e | 0, a | 0, c[d >> 2] | 0);\n V = b;\n return;\n }\n function Jm(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0;\n b = V;\n V = (V + 16) | 0;\n d = b;\n c[d >> 2] = a;\n e = _m() | 0;\n a = $m() | 0;\n J(e | 0, a | 0, c[d >> 2] | 0);\n V = b;\n return;\n }\n function Km(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0;\n b = V;\n V = (V + 16) | 0;\n d = b;\n c[d >> 2] = a;\n e = Xm() | 0;\n a = Ym() | 0;\n J(e | 0, a | 0, c[d >> 2] | 0);\n V = b;\n return;\n }\n function Lm(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0;\n b = V;\n V = (V + 16) | 0;\n d = b;\n c[d >> 2] = a;\n e = Um() | 0;\n a = Vm() | 0;\n J(e | 0, a | 0, c[d >> 2] | 0);\n V = b;\n return;\n }\n function Mm(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0;\n b = V;\n V = (V + 16) | 0;\n d = b;\n c[d >> 2] = a;\n e = Rm() | 0;\n a = Sm() | 0;\n J(e | 0, a | 0, c[d >> 2] | 0);\n V = b;\n return;\n }\n function Nm(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0;\n b = V;\n V = (V + 16) | 0;\n d = b;\n c[d >> 2] = a;\n e = Om() | 0;\n a = Pm() | 0;\n J(e | 0, a | 0, c[d >> 2] | 0);\n V = b;\n return;\n }\n function Om() {\n return Qm() | 0;\n }\n function Pm() {\n return 7;\n }\n function Qm() {\n return 3440;\n }\n function Rm() {\n return Tm() | 0;\n }\n function Sm() {\n return 7;\n }\n function Tm() {\n return 3448;\n }\n function Um() {\n return Wm() | 0;\n }\n function Vm() {\n return 6;\n }\n function Wm() {\n return 3456;\n }\n function Xm() {\n return Zm() | 0;\n }\n function Ym() {\n return 5;\n }\n function Zm() {\n return 3464;\n }\n function _m() {\n return an() | 0;\n }\n function $m() {\n return 4;\n }\n function an() {\n return 3472;\n }\n function bn() {\n return dn() | 0;\n }\n function cn() {\n return 5;\n }\n function dn() {\n return 3480;\n }\n function en() {\n return gn() | 0;\n }\n function fn() {\n return 4;\n }\n function gn() {\n return 3488;\n }\n function hn() {\n return kn() | 0;\n }\n function jn() {\n return 3;\n }\n function kn() {\n return 3496;\n }\n function ln() {\n return nn() | 0;\n }\n function mn() {\n return 2;\n }\n function nn() {\n return 3504;\n }\n function on() {\n return qn() | 0;\n }\n function pn() {\n return 1;\n }\n function qn() {\n return 3512;\n }\n function rn() {\n return tn() | 0;\n }\n function sn() {\n return 0;\n }\n function tn() {\n return 3520;\n }\n function un() {\n return wn() | 0;\n }\n function vn() {\n return 0;\n }\n function wn() {\n return 3528;\n }\n function xn() {\n return 3536;\n }\n function yn() {\n return 3544;\n }\n function zn() {\n return 3576;\n }\n function An() {\n return 3600;\n }\n function Bn() {\n return 3624;\n }\n function Cn() {\n return 3648;\n }\n function Dn() {\n return En() | 0;\n }\n function En() {\n return 4144;\n }\n function Fn() {\n return Gn() | 0;\n }\n function Gn() {\n return 4136;\n }\n function Hn() {\n return In() | 0;\n }\n function In() {\n return 4128;\n }\n function Jn() {\n return Kn() | 0;\n }\n function Kn() {\n return 4120;\n }\n function Ln() {\n return Mn() | 0;\n }\n function Mn() {\n return 4112;\n }\n function Nn() {\n return On() | 0;\n }\n function On() {\n return 4104;\n }\n function Pn() {\n return Qn() | 0;\n }\n function Qn() {\n return 4096;\n }\n function Rn() {\n return Sn() | 0;\n }\n function Sn() {\n return 4088;\n }\n function Tn() {\n return Un() | 0;\n }\n function Un() {\n return 4072;\n }\n function Vn() {\n return Wn() | 0;\n }\n function Wn() {\n return 4080;\n }\n function Xn() {\n return Yn() | 0;\n }\n function Yn() {\n return 4064;\n }\n function Zn() {\n return 4056;\n }\n function _n() {\n return 4040;\n }\n function $n(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0, f = 0;\n b = V;\n V = (V + 16) | 0;\n d = (b + 8) | 0;\n e = (b + 4) | 0;\n f = b;\n c[f >> 2] = a;\n c[e >> 2] = c[f >> 2];\n c[d >> 2] = c[((c[e >> 2] | 0) + 4) >> 2];\n a = Jo(c[d >> 2] | 0) | 0;\n V = b;\n return a | 0;\n }\n function ao() {\n return 21636;\n }\n function bo(a) {\n a = a | 0;\n return (((a + -48) | 0) >>> 0 < 10) | 0;\n }\n function co() {\n return 5576;\n }\n function eo(b, c) {\n b = b | 0;\n c = c | 0;\n var d = 0, e = 0;\n d = a[b >> 0] | 0;\n e = a[c >> 0] | 0;\n if ((d << 24) >> 24 == 0 ? 1 : (d << 24) >> 24 != (e << 24) >> 24)\n b = e;\n else {\n do {\n b = (b + 1) | 0;\n c = (c + 1) | 0;\n d = a[b >> 0] | 0;\n e = a[c >> 0] | 0;\n } while (!((d << 24) >> 24 == 0 ? 1 : (d << 24) >> 24 != (e << 24) >> 24));\n b = e;\n }\n return ((d & 255) - (b & 255)) | 0;\n }\n function fo(b) {\n b = b | 0;\n var d = 0, e = 0, f = 0;\n f = b;\n a: do\n if (!(f & 3))\n e = 5;\n else {\n d = f;\n while (1) {\n if (!(a[b >> 0] | 0)) {\n b = d;\n break a;\n }\n b = (b + 1) | 0;\n d = b;\n if (!(d & 3)) {\n e = 5;\n break;\n }\n }\n }\n while (0);\n if ((e | 0) == 5) {\n while (1) {\n d = c[b >> 2] | 0;\n if (!(((d & -2139062144) ^ -2139062144) & (d + -16843009)))\n b = (b + 4) | 0;\n else\n break;\n }\n if (((d & 255) << 24) >> 24)\n do\n b = (b + 1) | 0;\n while ((a[b >> 0] | 0) != 0);\n }\n return (b - f) | 0;\n }\n function go(a) {\n a = a | 0;\n return;\n }\n function ho(a) {\n a = a | 0;\n return 1;\n }\n function io(b) {\n b = b | 0;\n var d = 0, e = 0;\n d = (b + 74) | 0;\n e = a[d >> 0] | 0;\n a[d >> 0] = (e + 255) | e;\n d = c[b >> 2] | 0;\n if (!(d & 8)) {\n c[(b + 8) >> 2] = 0;\n c[(b + 4) >> 2] = 0;\n e = c[(b + 44) >> 2] | 0;\n c[(b + 28) >> 2] = e;\n c[(b + 20) >> 2] = e;\n c[(b + 16) >> 2] = e + (c[(b + 48) >> 2] | 0);\n b = 0;\n }\n else {\n c[b >> 2] = d | 32;\n b = -1;\n }\n return b | 0;\n }\n function jo(b, d, e) {\n b = b | 0;\n d = d | 0;\n e = e | 0;\n var f = 0, g = 0, h = 0, i = 0, j = 0;\n f = (e + 16) | 0;\n g = c[f >> 2] | 0;\n if (!g)\n if (!(io(e) | 0)) {\n g = c[f >> 2] | 0;\n h = 5;\n }\n else\n f = 0;\n else\n h = 5;\n a: do\n if ((h | 0) == 5) {\n j = (e + 20) | 0;\n i = c[j >> 2] | 0;\n f = i;\n if (((g - i) | 0) >>> 0 < d >>> 0) {\n f = aa[c[(e + 36) >> 2] & 7](e, b, d) | 0;\n break;\n }\n b: do\n if (((a[(e + 75) >> 0] | 0) < 0) | ((d | 0) == 0)) {\n h = 0;\n g = b;\n }\n else {\n i = d;\n while (1) {\n g = (i + -1) | 0;\n if ((a[(b + g) >> 0] | 0) == 10)\n break;\n if (!g) {\n h = 0;\n g = b;\n break b;\n }\n else\n i = g;\n }\n f = aa[c[(e + 36) >> 2] & 7](e, b, i) | 0;\n if (f >>> 0 < i >>> 0)\n break a;\n h = i;\n g = (b + i) | 0;\n d = (d - i) | 0;\n f = c[j >> 2] | 0;\n }\n while (0);\n ur(f | 0, g | 0, d | 0) | 0;\n c[j >> 2] = (c[j >> 2] | 0) + d;\n f = (h + d) | 0;\n }\n while (0);\n return f | 0;\n }\n function ko(a, b) {\n a = a | 0;\n b = b | 0;\n if (!b)\n b = 0;\n else\n b = lo(c[b >> 2] | 0, c[(b + 4) >> 2] | 0, a) | 0;\n return ((b | 0) == 0 ? a : b) | 0;\n }\n function lo(b, d, e) {\n b = b | 0;\n d = d | 0;\n e = e | 0;\n var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0;\n o = ((c[b >> 2] | 0) + 1794895138) | 0;\n h = mo(c[(b + 8) >> 2] | 0, o) | 0;\n f = mo(c[(b + 12) >> 2] | 0, o) | 0;\n g = mo(c[(b + 16) >> 2] | 0, o) | 0;\n a: do\n if ((h >>> 0 < (d >>> 2) >>> 0\n ? ((n = (d - (h << 2)) | 0), (f >>> 0 < n >>> 0) & (g >>> 0 < n >>> 0))\n : 0)\n ? (((g | f) & 3) | 0) == 0\n : 0) {\n n = f >>> 2;\n m = g >>> 2;\n l = 0;\n while (1) {\n j = h >>> 1;\n k = (l + j) | 0;\n i = k << 1;\n g = (i + n) | 0;\n f = mo(c[(b + (g << 2)) >> 2] | 0, o) | 0;\n g = mo(c[(b + ((g + 1) << 2)) >> 2] | 0, o) | 0;\n if (!((g >>> 0 < d >>> 0) & (f >>> 0 < ((d - g) | 0) >>> 0))) {\n f = 0;\n break a;\n }\n if (a[(b + (g + f)) >> 0] | 0) {\n f = 0;\n break a;\n }\n f = eo(e, (b + g) | 0) | 0;\n if (!f)\n break;\n f = (f | 0) < 0;\n if ((h | 0) == 1) {\n f = 0;\n break a;\n }\n l = f ? l : k;\n h = f ? j : (h - j) | 0;\n }\n f = (i + m) | 0;\n g = mo(c[(b + (f << 2)) >> 2] | 0, o) | 0;\n f = mo(c[(b + ((f + 1) << 2)) >> 2] | 0, o) | 0;\n if ((f >>> 0 < d >>> 0) & (g >>> 0 < ((d - f) | 0) >>> 0))\n f = (a[(b + (f + g)) >> 0] | 0) == 0 ? (b + f) | 0 : 0;\n else\n f = 0;\n }\n else\n f = 0;\n while (0);\n return f | 0;\n }\n function mo(a, b) {\n a = a | 0;\n b = b | 0;\n var c = 0;\n c = tr(a | 0) | 0;\n return ((b | 0) == 0 ? a : c) | 0;\n }\n function no(b, d, e) {\n b = b | 0;\n d = d | 0;\n e = e | 0;\n var f = 0, g = 0, h = 0;\n h = d & 255;\n f = (e | 0) != 0;\n a: do\n if (f & (((b & 3) | 0) != 0)) {\n g = d & 255;\n while (1) {\n if ((a[b >> 0] | 0) == (g << 24) >> 24) {\n g = 6;\n break a;\n }\n b = (b + 1) | 0;\n e = (e + -1) | 0;\n f = (e | 0) != 0;\n if (!(f & (((b & 3) | 0) != 0))) {\n g = 5;\n break;\n }\n }\n }\n else\n g = 5;\n while (0);\n if ((g | 0) == 5)\n if (f)\n g = 6;\n else\n b = 0;\n b: do\n if ((g | 0) == 6) {\n if ((a[b >> 0] | 0) != ((d & 255) << 24) >> 24) {\n f = q(h, 16843009) | 0;\n c: do\n if (e >>> 0 > 3)\n do {\n h = c[b >> 2] ^ f;\n if ((((h & -2139062144) ^ -2139062144) & (h + -16843009)) | 0)\n break c;\n b = (b + 4) | 0;\n e = (e + -4) | 0;\n } while (e >>> 0 > 3);\n while (0);\n }\n if (!e)\n b = 0;\n else {\n f = d & 255;\n while (1) {\n if ((a[b >> 0] | 0) == (f << 24) >> 24)\n break b;\n e = (e + -1) | 0;\n if (!e) {\n b = 0;\n break;\n }\n else\n b = (b + 1) | 0;\n }\n }\n }\n while (0);\n return b | 0;\n }\n function oo(a, b, c) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n return ro(a, b, c, 1, 8) | 0;\n }\n function po(b, e, f, g, h, i) {\n b = b | 0;\n e = +e;\n f = f | 0;\n g = g | 0;\n h = h | 0;\n i = i | 0;\n var j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, r = 0.0, s = 0, t = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0;\n H = V;\n V = (V + 560) | 0;\n l = (H + 32) | 0;\n w = (H + 536) | 0;\n G = H;\n F = G;\n m = (H + 540) | 0;\n c[w >> 2] = 0;\n E = (m + 12) | 0;\n Do(e) | 0;\n j = u() | 0;\n if ((j | 0) < 0) {\n e = -e;\n Do(e) | 0;\n D = 1;\n C = 20247;\n j = u() | 0;\n }\n else {\n D = (((h & 2049) | 0) != 0) & 1;\n C = ((h & 2048) | 0) == 0 ? (((h & 1) | 0) == 0 ? 20248 : 20253) : 20250;\n }\n do\n if ((0 == 0) & (((j & 2146435072) | 0) == 2146435072)) {\n G = ((i & 32) | 0) != 0;\n j = (D + 3) | 0;\n zo(b, 32, f, j, h & -65537);\n to(b, C, D);\n to(b, (e != e) | (0.0 != 0.0) ? (G ? 20274 : 20278) : G ? 20266 : 20270, 3);\n zo(b, 32, f, j, h ^ 8192);\n }\n else {\n r = +Eo(e, w) * 2.0;\n j = r != 0.0;\n if (j)\n c[w >> 2] = (c[w >> 2] | 0) + -1;\n v = i | 32;\n if ((v | 0) == 97) {\n o = i & 32;\n s = (o | 0) == 0 ? C : (C + 9) | 0;\n p = D | 2;\n j = (12 - g) | 0;\n do\n if (!((g >>> 0 > 11) | ((j | 0) == 0))) {\n e = 8.0;\n do {\n j = (j + -1) | 0;\n e = e * 16.0;\n } while ((j | 0) != 0);\n if ((a[s >> 0] | 0) == 45) {\n e = -(e + (-r - e));\n break;\n }\n else {\n e = r + e - e;\n break;\n }\n }\n else\n e = r;\n while (0);\n k = c[w >> 2] | 0;\n j = (k | 0) < 0 ? (0 - k) | 0 : k;\n j = yo(j, (((j | 0) < 0) << 31) >> 31, E) | 0;\n if ((j | 0) == (E | 0)) {\n j = (m + 11) | 0;\n a[j >> 0] = 48;\n }\n a[(j + -1) >> 0] = ((k >> 31) & 2) + 43;\n n = (j + -2) | 0;\n a[n >> 0] = i + 15;\n k = (g | 0) < 1;\n l = ((h & 8) | 0) == 0;\n m = G;\n do {\n D = ~~e;\n j = (m + 1) | 0;\n a[m >> 0] = o | d[(640 + D) >> 0];\n e = (e - +(D | 0)) * 16.0;\n if (((j - F) | 0) == 1 ? !(l & (k & (e == 0.0))) : 0) {\n a[j >> 0] = 46;\n m = (m + 2) | 0;\n }\n else\n m = j;\n } while (e != 0.0);\n if ((g | 0) != 0 ? ((-2 - F + m) | 0) < (g | 0) : 0) {\n k = E;\n l = n;\n j = (g + 2 + k - l) | 0;\n }\n else {\n k = E;\n l = n;\n j = (k - F - l + m) | 0;\n }\n E = (j + p) | 0;\n zo(b, 32, f, E, h);\n to(b, s, p);\n zo(b, 48, f, E, h ^ 65536);\n F = (m - F) | 0;\n to(b, G, F);\n G = (k - l) | 0;\n zo(b, 48, (j - (F + G)) | 0, 0, 0);\n to(b, n, G);\n zo(b, 32, f, E, h ^ 8192);\n j = E;\n break;\n }\n k = (g | 0) < 0 ? 6 : g;\n if (j) {\n j = ((c[w >> 2] | 0) + -28) | 0;\n c[w >> 2] = j;\n e = r * 268435456.0;\n }\n else {\n e = r;\n j = c[w >> 2] | 0;\n }\n B = (j | 0) < 0 ? l : (l + 288) | 0;\n l = B;\n do {\n z = ~~e >>> 0;\n c[l >> 2] = z;\n l = (l + 4) | 0;\n e = (e - +(z >>> 0)) * 1.0e9;\n } while (e != 0.0);\n z = B;\n if ((j | 0) > 0) {\n o = B;\n while (1) {\n n = (j | 0) < 29 ? j : 29;\n j = (l + -4) | 0;\n if (j >>> 0 >= o >>> 0) {\n m = 0;\n do {\n t = rr(c[j >> 2] | 0, 0, n | 0) | 0;\n t = lr(t | 0, u() | 0, m | 0, 0) | 0;\n x = u() | 0;\n m = pr(t | 0, x | 0, 1e9, 0) | 0;\n y = kr(m | 0, u() | 0, 1e9, 0) | 0;\n y = mr(t | 0, x | 0, y | 0, u() | 0) | 0;\n u() | 0;\n c[j >> 2] = y;\n j = (j + -4) | 0;\n } while (j >>> 0 >= o >>> 0);\n if (m) {\n y = (o + -4) | 0;\n c[y >> 2] = m;\n m = y;\n }\n else\n m = o;\n }\n else\n m = o;\n a: do\n if (l >>> 0 > m >>> 0) {\n j = l;\n while (1) {\n l = (j + -4) | 0;\n if (c[l >> 2] | 0) {\n l = j;\n break a;\n }\n if (l >>> 0 > m >>> 0)\n j = l;\n else\n break;\n }\n }\n while (0);\n j = ((c[w >> 2] | 0) - n) | 0;\n c[w >> 2] = j;\n if ((j | 0) > 0)\n o = m;\n else\n break;\n }\n }\n else\n m = B;\n if ((j | 0) < 0) {\n g = (((((k + 25) | 0) / 9) | 0) + 1) | 0;\n t = (v | 0) == 102;\n do {\n s = (0 - j) | 0;\n s = (s | 0) < 9 ? s : 9;\n if (m >>> 0 < l >>> 0) {\n n = ((1 << s) + -1) | 0;\n o = 1e9 >>> s;\n p = 0;\n j = m;\n do {\n y = c[j >> 2] | 0;\n c[j >> 2] = (y >>> s) + p;\n p = q(y & n, o) | 0;\n j = (j + 4) | 0;\n } while (j >>> 0 < l >>> 0);\n m = (c[m >> 2] | 0) == 0 ? (m + 4) | 0 : m;\n if (p) {\n c[l >> 2] = p;\n l = (l + 4) | 0;\n }\n }\n else\n m = (c[m >> 2] | 0) == 0 ? (m + 4) | 0 : m;\n j = t ? B : m;\n l = (((l - j) >> 2) | 0) > (g | 0) ? (j + (g << 2)) | 0 : l;\n j = ((c[w >> 2] | 0) + s) | 0;\n c[w >> 2] = j;\n } while ((j | 0) < 0);\n t = m;\n }\n else\n t = m;\n if (t >>> 0 < l >>> 0) {\n j = (((z - t) >> 2) * 9) | 0;\n n = c[t >> 2] | 0;\n if (n >>> 0 >= 10) {\n m = 10;\n do {\n m = (m * 10) | 0;\n j = (j + 1) | 0;\n } while (n >>> 0 >= m >>> 0);\n }\n }\n else\n j = 0;\n x = (v | 0) == 103;\n y = (k | 0) != 0;\n m = (k - ((v | 0) == 102 ? 0 : j) + (((y & x) << 31) >> 31)) | 0;\n if ((m | 0) < ((((((l - z) >> 2) * 9) | 0) + -9) | 0)) {\n w = (m + 9216) | 0;\n m = ((w | 0) / 9) | 0;\n g = (B + 4 + ((m + -1024) << 2)) | 0;\n m = (w - ((m * 9) | 0)) | 0;\n if ((m | 0) < 8) {\n n = 10;\n while (1) {\n n = (n * 10) | 0;\n if ((m | 0) < 7)\n m = (m + 1) | 0;\n else\n break;\n }\n }\n else\n n = 10;\n p = c[g >> 2] | 0;\n m = ((p >>> 0) / (n >>> 0)) | 0;\n s = (p - (q(m, n) | 0)) | 0;\n o = ((g + 4) | 0) == (l | 0);\n if (!(o & ((s | 0) == 0))) {\n r = ((m & 1) | 0) == 0 ? 9007199254740992.0 : 9007199254740994.0;\n w = n >>> 1;\n e = s >>> 0 < w >>> 0 ? 0.5 : o & ((s | 0) == (w | 0)) ? 1.0 : 1.5;\n if (D) {\n w = (a[C >> 0] | 0) == 45;\n e = w ? -e : e;\n r = w ? -r : r;\n }\n m = (p - s) | 0;\n c[g >> 2] = m;\n if (r + e != r) {\n w = (m + n) | 0;\n c[g >> 2] = w;\n if (w >>> 0 > 999999999) {\n n = g;\n j = t;\n while (1) {\n m = (n + -4) | 0;\n c[n >> 2] = 0;\n if (m >>> 0 < j >>> 0) {\n j = (j + -4) | 0;\n c[j >> 2] = 0;\n }\n w = ((c[m >> 2] | 0) + 1) | 0;\n c[m >> 2] = w;\n if (w >>> 0 > 999999999)\n n = m;\n else {\n n = j;\n break;\n }\n }\n }\n else {\n m = g;\n n = t;\n }\n j = (((z - n) >> 2) * 9) | 0;\n p = c[n >> 2] | 0;\n if (p >>> 0 >= 10) {\n o = 10;\n do {\n o = (o * 10) | 0;\n j = (j + 1) | 0;\n } while (p >>> 0 >= o >>> 0);\n }\n }\n else {\n m = g;\n n = t;\n }\n }\n else {\n m = g;\n n = t;\n }\n w = (m + 4) | 0;\n l = l >>> 0 > w >>> 0 ? w : l;\n }\n else\n n = t;\n g = (0 - j) | 0;\n b: do\n if (l >>> 0 > n >>> 0)\n while (1) {\n m = (l + -4) | 0;\n if (c[m >> 2] | 0) {\n w = l;\n v = 1;\n break b;\n }\n if (m >>> 0 > n >>> 0)\n l = m;\n else {\n w = m;\n v = 0;\n break;\n }\n }\n else {\n w = l;\n v = 0;\n }\n while (0);\n do\n if (x) {\n k = (k + ((y ^ 1) & 1)) | 0;\n if (((k | 0) > (j | 0)) & ((j | 0) > -5)) {\n o = (i + -1) | 0;\n k = (k + -1 - j) | 0;\n }\n else {\n o = (i + -2) | 0;\n k = (k + -1) | 0;\n }\n if (!(h & 8)) {\n if (v ? ((A = c[(w + -4) >> 2] | 0), (A | 0) != 0) : 0)\n if (!((A >>> 0) % 10 | 0)) {\n m = 0;\n l = 10;\n do {\n l = (l * 10) | 0;\n m = (m + 1) | 0;\n } while (!((A >>> 0) % (l >>> 0) | 0 | 0));\n }\n else\n m = 0;\n else\n m = 9;\n l = (((((w - z) >> 2) * 9) | 0) + -9) | 0;\n if ((o | 32 | 0) == 102) {\n i = (l - m) | 0;\n i = (i | 0) > 0 ? i : 0;\n k = (k | 0) < (i | 0) ? k : i;\n break;\n }\n else {\n i = (l + j - m) | 0;\n i = (i | 0) > 0 ? i : 0;\n k = (k | 0) < (i | 0) ? k : i;\n break;\n }\n }\n }\n else\n o = i;\n while (0);\n t = (k | 0) != 0;\n p = t ? 1 : (h >>> 3) & 1;\n s = (o | 32 | 0) == 102;\n if (s) {\n x = 0;\n j = (j | 0) > 0 ? j : 0;\n }\n else {\n l = (j | 0) < 0 ? g : j;\n l = yo(l, (((l | 0) < 0) << 31) >> 31, E) | 0;\n m = E;\n if (((m - l) | 0) < 2)\n do {\n l = (l + -1) | 0;\n a[l >> 0] = 48;\n } while (((m - l) | 0) < 2);\n a[(l + -1) >> 0] = ((j >> 31) & 2) + 43;\n j = (l + -2) | 0;\n a[j >> 0] = o;\n x = j;\n j = (m - j) | 0;\n }\n j = (D + 1 + k + p + j) | 0;\n zo(b, 32, f, j, h);\n to(b, C, D);\n zo(b, 48, f, j, h ^ 65536);\n if (s) {\n p = n >>> 0 > B >>> 0 ? B : n;\n s = (G + 9) | 0;\n n = s;\n o = (G + 8) | 0;\n m = p;\n do {\n l = yo(c[m >> 2] | 0, 0, s) | 0;\n if ((m | 0) == (p | 0)) {\n if ((l | 0) == (s | 0)) {\n a[o >> 0] = 48;\n l = o;\n }\n }\n else if (l >>> 0 > G >>> 0) {\n wr(G | 0, 48, (l - F) | 0) | 0;\n do\n l = (l + -1) | 0;\n while (l >>> 0 > G >>> 0);\n }\n to(b, l, (n - l) | 0);\n m = (m + 4) | 0;\n } while (m >>> 0 <= B >>> 0);\n if (!((((h & 8) | 0) == 0) & (t ^ 1)))\n to(b, 20282, 1);\n if ((m >>> 0 < w >>> 0) & ((k | 0) > 0))\n while (1) {\n l = yo(c[m >> 2] | 0, 0, s) | 0;\n if (l >>> 0 > G >>> 0) {\n wr(G | 0, 48, (l - F) | 0) | 0;\n do\n l = (l + -1) | 0;\n while (l >>> 0 > G >>> 0);\n }\n to(b, l, (k | 0) < 9 ? k : 9);\n m = (m + 4) | 0;\n l = (k + -9) | 0;\n if (!((m >>> 0 < w >>> 0) & ((k | 0) > 9))) {\n k = l;\n break;\n }\n else\n k = l;\n }\n zo(b, 48, (k + 9) | 0, 9, 0);\n }\n else {\n w = v ? w : (n + 4) | 0;\n if ((n >>> 0 < w >>> 0) & ((k | 0) > -1)) {\n g = (G + 9) | 0;\n t = ((h & 8) | 0) == 0;\n v = g;\n p = (0 - F) | 0;\n s = (G + 8) | 0;\n o = n;\n do {\n l = yo(c[o >> 2] | 0, 0, g) | 0;\n if ((l | 0) == (g | 0)) {\n a[s >> 0] = 48;\n l = s;\n }\n do\n if ((o | 0) == (n | 0)) {\n m = (l + 1) | 0;\n to(b, l, 1);\n if (t & ((k | 0) < 1)) {\n l = m;\n break;\n }\n to(b, 20282, 1);\n l = m;\n }\n else {\n if (l >>> 0 <= G >>> 0)\n break;\n wr(G | 0, 48, (l + p) | 0) | 0;\n do\n l = (l + -1) | 0;\n while (l >>> 0 > G >>> 0);\n }\n while (0);\n F = (v - l) | 0;\n to(b, l, (k | 0) > (F | 0) ? F : k);\n k = (k - F) | 0;\n o = (o + 4) | 0;\n } while ((o >>> 0 < w >>> 0) & ((k | 0) > -1));\n }\n zo(b, 48, (k + 18) | 0, 18, 0);\n to(b, x, (E - x) | 0);\n }\n zo(b, 32, f, j, h ^ 8192);\n }\n while (0);\n V = H;\n return ((j | 0) < (f | 0) ? f : j) | 0;\n }\n function qo(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0.0, e = 0;\n e = ((c[b >> 2] | 0) + (8 - 1)) & ~(8 - 1);\n d = +g[e >> 3];\n c[b >> 2] = e + 8;\n g[a >> 3] = d;\n return;\n }\n function ro(b, d, e, f, g) {\n b = b | 0;\n d = d | 0;\n e = e | 0;\n f = f | 0;\n g = g | 0;\n var h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0;\n t = V;\n V = (V + 224) | 0;\n p = (t + 208) | 0;\n q = (t + 160) | 0;\n r = (t + 80) | 0;\n s = t;\n h = q;\n i = (h + 40) | 0;\n do {\n c[h >> 2] = 0;\n h = (h + 4) | 0;\n } while ((h | 0) < (i | 0));\n c[p >> 2] = c[e >> 2];\n if ((so(0, d, p, r, q, f, g) | 0) < 0)\n e = -1;\n else {\n if ((c[(b + 76) >> 2] | 0) > -1)\n o = ho(b) | 0;\n else\n o = 0;\n e = c[b >> 2] | 0;\n n = e & 32;\n if ((a[(b + 74) >> 0] | 0) < 1)\n c[b >> 2] = e & -33;\n h = (b + 48) | 0;\n if (!(c[h >> 2] | 0)) {\n i = (b + 44) | 0;\n j = c[i >> 2] | 0;\n c[i >> 2] = s;\n k = (b + 28) | 0;\n c[k >> 2] = s;\n l = (b + 20) | 0;\n c[l >> 2] = s;\n c[h >> 2] = 80;\n m = (b + 16) | 0;\n c[m >> 2] = s + 80;\n e = so(b, d, p, r, q, f, g) | 0;\n if (j) {\n aa[c[(b + 36) >> 2] & 7](b, 0, 0) | 0;\n e = (c[l >> 2] | 0) == 0 ? -1 : e;\n c[i >> 2] = j;\n c[h >> 2] = 0;\n c[m >> 2] = 0;\n c[k >> 2] = 0;\n c[l >> 2] = 0;\n }\n }\n else\n e = so(b, d, p, r, q, f, g) | 0;\n h = c[b >> 2] | 0;\n c[b >> 2] = h | n;\n if (o | 0)\n go(b);\n e = ((h & 32) | 0) == 0 ? e : -1;\n }\n V = t;\n return e | 0;\n }\n function so(d, e, f, h, i, j, k) {\n d = d | 0;\n e = e | 0;\n f = f | 0;\n h = h | 0;\n i = i | 0;\n j = j | 0;\n k = k | 0;\n var l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0;\n J = V;\n V = (V + 64) | 0;\n G = (J + 56) | 0;\n I = (J + 40) | 0;\n B = J;\n D = (J + 48) | 0;\n E = (J + 60) | 0;\n c[G >> 2] = e;\n y = (d | 0) != 0;\n z = (B + 40) | 0;\n A = z;\n B = (B + 39) | 0;\n C = (D + 4) | 0;\n l = 0;\n e = 0;\n n = 0;\n a: while (1) {\n do {\n do\n if ((e | 0) > -1)\n if ((l | 0) > ((2147483647 - e) | 0)) {\n c[(ao() | 0) >> 2] = 61;\n e = -1;\n break;\n }\n else {\n e = (l + e) | 0;\n break;\n }\n while (0);\n r = c[G >> 2] | 0;\n l = a[r >> 0] | 0;\n if (!((l << 24) >> 24)) {\n x = 92;\n break a;\n }\n m = r;\n b: while (1) {\n switch ((l << 24) >> 24) {\n case 37: {\n x = 10;\n break b;\n }\n case 0: {\n l = m;\n break b;\n }\n default: {\n }\n }\n w = (m + 1) | 0;\n c[G >> 2] = w;\n l = a[w >> 0] | 0;\n m = w;\n }\n c: do\n if ((x | 0) == 10) {\n x = 0;\n l = m;\n do {\n if ((a[(m + 1) >> 0] | 0) != 37)\n break c;\n l = (l + 1) | 0;\n m = (m + 2) | 0;\n c[G >> 2] = m;\n } while ((a[m >> 0] | 0) == 37);\n }\n while (0);\n l = (l - r) | 0;\n if (y)\n to(d, r, l);\n } while ((l | 0) != 0);\n w = (bo(a[((c[G >> 2] | 0) + 1) >> 0] | 0) | 0) == 0;\n m = c[G >> 2] | 0;\n if (!w ? (a[(m + 2) >> 0] | 0) == 36 : 0) {\n t = ((a[(m + 1) >> 0] | 0) + -48) | 0;\n p = 1;\n l = 3;\n }\n else {\n t = -1;\n p = n;\n l = 1;\n }\n l = (m + l) | 0;\n c[G >> 2] = l;\n m = a[l >> 0] | 0;\n n = (((m << 24) >> 24) + -32) | 0;\n if ((n >>> 0 > 31) | ((((1 << n) & 75913) | 0) == 0))\n o = 0;\n else {\n o = 0;\n do {\n o = (1 << n) | o;\n l = (l + 1) | 0;\n c[G >> 2] = l;\n m = a[l >> 0] | 0;\n n = (((m << 24) >> 24) + -32) | 0;\n } while (!((n >>> 0 > 31) | ((((1 << n) & 75913) | 0) == 0)));\n }\n if ((m << 24) >> 24 == 42) {\n if ((bo(a[(l + 1) >> 0] | 0) | 0) != 0\n ? ((H = c[G >> 2] | 0), (a[(H + 2) >> 0] | 0) == 36)\n : 0) {\n l = (H + 1) | 0;\n c[(i + (((a[l >> 0] | 0) + -48) << 2)) >> 2] = 10;\n l = c[(h + (((a[l >> 0] | 0) + -48) << 3)) >> 2] | 0;\n n = 1;\n m = (H + 3) | 0;\n }\n else {\n if (p | 0) {\n e = -1;\n break;\n }\n if (y) {\n w = ((c[f >> 2] | 0) + (4 - 1)) & ~(4 - 1);\n l = c[w >> 2] | 0;\n c[f >> 2] = w + 4;\n }\n else\n l = 0;\n n = 0;\n m = ((c[G >> 2] | 0) + 1) | 0;\n }\n c[G >> 2] = m;\n w = (l | 0) < 0;\n v = w ? (0 - l) | 0 : l;\n o = w ? o | 8192 : o;\n w = n;\n }\n else {\n l = uo(G) | 0;\n if ((l | 0) < 0) {\n e = -1;\n break;\n }\n v = l;\n w = p;\n m = c[G >> 2] | 0;\n }\n do\n if ((a[m >> 0] | 0) == 46) {\n l = (m + 1) | 0;\n if ((a[l >> 0] | 0) != 42) {\n c[G >> 2] = l;\n l = uo(G) | 0;\n m = c[G >> 2] | 0;\n break;\n }\n if (bo(a[(m + 2) >> 0] | 0) | 0 ? ((F = c[G >> 2] | 0), (a[(F + 3) >> 0] | 0) == 36) : 0) {\n l = (F + 2) | 0;\n c[(i + (((a[l >> 0] | 0) + -48) << 2)) >> 2] = 10;\n l = c[(h + (((a[l >> 0] | 0) + -48) << 3)) >> 2] | 0;\n m = (F + 4) | 0;\n c[G >> 2] = m;\n break;\n }\n if (w | 0) {\n e = -1;\n break a;\n }\n if (y) {\n s = ((c[f >> 2] | 0) + (4 - 1)) & ~(4 - 1);\n l = c[s >> 2] | 0;\n c[f >> 2] = s + 4;\n }\n else\n l = 0;\n m = ((c[G >> 2] | 0) + 2) | 0;\n c[G >> 2] = m;\n }\n else\n l = -1;\n while (0);\n s = 0;\n while (1) {\n if ((((a[m >> 0] | 0) + -65) | 0) >>> 0 > 57) {\n e = -1;\n break a;\n }\n n = m;\n m = (m + 1) | 0;\n c[G >> 2] = m;\n n = a[((a[n >> 0] | 0) + -65 + (176 + ((s * 58) | 0))) >> 0] | 0;\n p = n & 255;\n if (((p + -1) | 0) >>> 0 >= 8)\n break;\n else\n s = p;\n }\n if (!((n << 24) >> 24)) {\n e = -1;\n break;\n }\n q = (t | 0) > -1;\n do\n if ((n << 24) >> 24 == 19)\n if (q) {\n e = -1;\n break a;\n }\n else\n x = 54;\n else {\n if (q) {\n c[(i + (t << 2)) >> 2] = p;\n q = (h + (t << 3)) | 0;\n t = c[(q + 4) >> 2] | 0;\n x = I;\n c[x >> 2] = c[q >> 2];\n c[(x + 4) >> 2] = t;\n x = 54;\n break;\n }\n if (!y) {\n e = 0;\n break a;\n }\n vo(I, p, f, k);\n m = c[G >> 2] | 0;\n x = 55;\n }\n while (0);\n if ((x | 0) == 54) {\n x = 0;\n if (y)\n x = 55;\n else\n l = 0;\n }\n d: do\n if ((x | 0) == 55) {\n x = 0;\n m = a[(m + -1) >> 0] | 0;\n m = ((s | 0) != 0) & (((m & 15) | 0) == 3) ? m & -33 : m;\n n = o & -65537;\n t = ((o & 8192) | 0) == 0 ? o : n;\n e: do\n switch (m | 0) {\n case 110:\n switch (((s & 255) << 24) >> 24) {\n case 0: {\n c[c[I >> 2] >> 2] = e;\n l = 0;\n break d;\n }\n case 1: {\n c[c[I >> 2] >> 2] = e;\n l = 0;\n break d;\n }\n case 2: {\n l = c[I >> 2] | 0;\n c[l >> 2] = e;\n c[(l + 4) >> 2] = (((e | 0) < 0) << 31) >> 31;\n l = 0;\n break d;\n }\n case 3: {\n b[c[I >> 2] >> 1] = e;\n l = 0;\n break d;\n }\n case 4: {\n a[c[I >> 2] >> 0] = e;\n l = 0;\n break d;\n }\n case 6: {\n c[c[I >> 2] >> 2] = e;\n l = 0;\n break d;\n }\n case 7: {\n l = c[I >> 2] | 0;\n c[l >> 2] = e;\n c[(l + 4) >> 2] = (((e | 0) < 0) << 31) >> 31;\n l = 0;\n break d;\n }\n default: {\n l = 0;\n break d;\n }\n }\n case 112: {\n m = 120;\n l = l >>> 0 > 8 ? l : 8;\n n = t | 8;\n x = 67;\n break;\n }\n case 88:\n case 120: {\n n = t;\n x = 67;\n break;\n }\n case 111: {\n q = I;\n q = xo(c[q >> 2] | 0, c[(q + 4) >> 2] | 0, z) | 0;\n n = (A - q) | 0;\n o = 0;\n p = 20230;\n l = (((t & 8) | 0) == 0) | ((l | 0) > (n | 0)) ? l : (n + 1) | 0;\n n = t;\n x = 73;\n break;\n }\n case 105:\n case 100: {\n n = I;\n m = c[n >> 2] | 0;\n n = c[(n + 4) >> 2] | 0;\n if ((n | 0) < 0) {\n m = mr(0, 0, m | 0, n | 0) | 0;\n n = u() | 0;\n o = I;\n c[o >> 2] = m;\n c[(o + 4) >> 2] = n;\n o = 1;\n p = 20230;\n x = 72;\n break e;\n }\n else {\n o = (((t & 2049) | 0) != 0) & 1;\n p = ((t & 2048) | 0) == 0 ? (((t & 1) | 0) == 0 ? 20230 : 20232) : 20231;\n x = 72;\n break e;\n }\n }\n case 117: {\n n = I;\n o = 0;\n p = 20230;\n m = c[n >> 2] | 0;\n n = c[(n + 4) >> 2] | 0;\n x = 72;\n break;\n }\n case 99: {\n a[B >> 0] = c[I >> 2];\n r = B;\n o = 0;\n p = 20230;\n q = 1;\n m = n;\n l = A;\n break;\n }\n case 115: {\n s = c[I >> 2] | 0;\n s = (s | 0) == 0 ? 20240 : s;\n t = no(s, 0, l) | 0;\n K = (t | 0) == 0;\n r = s;\n o = 0;\n p = 20230;\n q = K ? l : (t - s) | 0;\n m = n;\n l = K ? (s + l) | 0 : t;\n break;\n }\n case 67: {\n c[D >> 2] = c[I >> 2];\n c[C >> 2] = 0;\n c[I >> 2] = D;\n p = -1;\n x = 79;\n break;\n }\n case 83: {\n if (!l) {\n zo(d, 32, v, 0, t);\n l = 0;\n x = 89;\n }\n else {\n p = l;\n x = 79;\n }\n break;\n }\n case 65:\n case 71:\n case 70:\n case 69:\n case 97:\n case 103:\n case 102:\n case 101: {\n l = _[j & 1](d, +g[I >> 3], v, l, t, m) | 0;\n break d;\n }\n default: {\n o = 0;\n p = 20230;\n q = l;\n m = t;\n l = A;\n }\n }\n while (0);\n f: do\n if ((x | 0) == 67) {\n q = I;\n q = wo(c[q >> 2] | 0, c[(q + 4) >> 2] | 0, z, m & 32) | 0;\n p = I;\n p = (((n & 8) | 0) == 0) | (((c[p >> 2] | 0) == 0) & ((c[(p + 4) >> 2] | 0) == 0));\n o = p ? 0 : 2;\n p = p ? 20230 : (20230 + (m >>> 4)) | 0;\n x = 73;\n }\n else if ((x | 0) == 72) {\n q = yo(m, n, z) | 0;\n n = t;\n x = 73;\n }\n else if ((x | 0) == 79) {\n x = 0;\n o = c[I >> 2] | 0;\n l = 0;\n while (1) {\n m = c[o >> 2] | 0;\n if (!m)\n break;\n m = Ao(E, m) | 0;\n n = (m | 0) < 0;\n if (n | (m >>> 0 > ((p - l) | 0) >>> 0)) {\n x = 83;\n break;\n }\n l = (m + l) | 0;\n if (p >>> 0 > l >>> 0)\n o = (o + 4) | 0;\n else\n break;\n }\n if ((x | 0) == 83) {\n x = 0;\n if (n) {\n e = -1;\n break a;\n }\n }\n zo(d, 32, v, l, t);\n if (!l) {\n l = 0;\n x = 89;\n }\n else {\n n = c[I >> 2] | 0;\n o = 0;\n while (1) {\n m = c[n >> 2] | 0;\n if (!m) {\n x = 89;\n break f;\n }\n m = Ao(E, m) | 0;\n o = (m + o) | 0;\n if ((o | 0) > (l | 0)) {\n x = 89;\n break f;\n }\n to(d, E, m);\n if (o >>> 0 >= l >>> 0) {\n x = 89;\n break;\n }\n else\n n = (n + 4) | 0;\n }\n }\n }\n while (0);\n if ((x | 0) == 73) {\n x = 0;\n m = I;\n m = ((c[m >> 2] | 0) != 0) | ((c[(m + 4) >> 2] | 0) != 0);\n K = ((l | 0) != 0) | m;\n m = (A - q + ((m ^ 1) & 1)) | 0;\n r = K ? q : z;\n q = K ? ((l | 0) > (m | 0) ? l : m) : 0;\n m = (l | 0) > -1 ? n & -65537 : n;\n l = A;\n }\n else if ((x | 0) == 89) {\n x = 0;\n zo(d, 32, v, l, t ^ 8192);\n l = (v | 0) > (l | 0) ? v : l;\n break;\n }\n t = (l - r) | 0;\n s = (q | 0) < (t | 0) ? t : q;\n K = (s + o) | 0;\n l = (v | 0) < (K | 0) ? K : v;\n zo(d, 32, l, K, m);\n to(d, p, o);\n zo(d, 48, l, K, m ^ 65536);\n zo(d, 48, s, t, 0);\n to(d, r, t);\n zo(d, 32, l, K, m ^ 8192);\n }\n while (0);\n n = w;\n }\n g: do\n if ((x | 0) == 92)\n if (!d)\n if (!n)\n e = 0;\n else {\n e = 1;\n while (1) {\n l = c[(i + (e << 2)) >> 2] | 0;\n if (!l)\n break;\n vo((h + (e << 3)) | 0, l, f, k);\n e = (e + 1) | 0;\n if (e >>> 0 >= 10) {\n e = 1;\n break g;\n }\n }\n while (1) {\n if (c[(i + (e << 2)) >> 2] | 0) {\n e = -1;\n break g;\n }\n e = (e + 1) | 0;\n if (e >>> 0 >= 10) {\n e = 1;\n break;\n }\n }\n }\n while (0);\n V = J;\n return e | 0;\n }\n function to(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n if (!(c[a >> 2] & 32))\n jo(b, d, a) | 0;\n return;\n }\n function uo(b) {\n b = b | 0;\n var d = 0, e = 0;\n if (!(bo(a[c[b >> 2] >> 0] | 0) | 0))\n d = 0;\n else {\n d = 0;\n do {\n e = c[b >> 2] | 0;\n d = (((d * 10) | 0) + -48 + (a[e >> 0] | 0)) | 0;\n e = (e + 1) | 0;\n c[b >> 2] = e;\n } while ((bo(a[e >> 0] | 0) | 0) != 0);\n }\n return d | 0;\n }\n function vo(a, b, d, e) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n e = e | 0;\n var f = 0, h = 0.0;\n a: do\n if (b >>> 0 <= 20)\n do\n switch (b | 0) {\n case 9: {\n b = ((c[d >> 2] | 0) + (4 - 1)) & ~(4 - 1);\n e = c[b >> 2] | 0;\n c[d >> 2] = b + 4;\n c[a >> 2] = e;\n break a;\n }\n case 10: {\n e = ((c[d >> 2] | 0) + (4 - 1)) & ~(4 - 1);\n b = c[e >> 2] | 0;\n c[d >> 2] = e + 4;\n e = a;\n c[e >> 2] = b;\n c[(e + 4) >> 2] = (((b | 0) < 0) << 31) >> 31;\n break a;\n }\n case 11: {\n e = ((c[d >> 2] | 0) + (4 - 1)) & ~(4 - 1);\n b = c[e >> 2] | 0;\n c[d >> 2] = e + 4;\n e = a;\n c[e >> 2] = b;\n c[(e + 4) >> 2] = 0;\n break a;\n }\n case 12: {\n e = ((c[d >> 2] | 0) + (8 - 1)) & ~(8 - 1);\n b = e;\n f = c[b >> 2] | 0;\n b = c[(b + 4) >> 2] | 0;\n c[d >> 2] = e + 8;\n e = a;\n c[e >> 2] = f;\n c[(e + 4) >> 2] = b;\n break a;\n }\n case 13: {\n f = ((c[d >> 2] | 0) + (4 - 1)) & ~(4 - 1);\n e = c[f >> 2] | 0;\n c[d >> 2] = f + 4;\n e = ((e & 65535) << 16) >> 16;\n f = a;\n c[f >> 2] = e;\n c[(f + 4) >> 2] = (((e | 0) < 0) << 31) >> 31;\n break a;\n }\n case 14: {\n f = ((c[d >> 2] | 0) + (4 - 1)) & ~(4 - 1);\n e = c[f >> 2] | 0;\n c[d >> 2] = f + 4;\n f = a;\n c[f >> 2] = e & 65535;\n c[(f + 4) >> 2] = 0;\n break a;\n }\n case 15: {\n f = ((c[d >> 2] | 0) + (4 - 1)) & ~(4 - 1);\n e = c[f >> 2] | 0;\n c[d >> 2] = f + 4;\n e = ((e & 255) << 24) >> 24;\n f = a;\n c[f >> 2] = e;\n c[(f + 4) >> 2] = (((e | 0) < 0) << 31) >> 31;\n break a;\n }\n case 16: {\n f = ((c[d >> 2] | 0) + (4 - 1)) & ~(4 - 1);\n e = c[f >> 2] | 0;\n c[d >> 2] = f + 4;\n f = a;\n c[f >> 2] = e & 255;\n c[(f + 4) >> 2] = 0;\n break a;\n }\n case 17: {\n f = ((c[d >> 2] | 0) + (8 - 1)) & ~(8 - 1);\n h = +g[f >> 3];\n c[d >> 2] = f + 8;\n g[a >> 3] = h;\n break a;\n }\n case 18: {\n da[e & 15](a, d);\n break a;\n }\n default:\n break a;\n }\n while (0);\n while (0);\n return;\n }\n function wo(b, c, e, f) {\n b = b | 0;\n c = c | 0;\n e = e | 0;\n f = f | 0;\n if (!(((b | 0) == 0) & ((c | 0) == 0)))\n do {\n e = (e + -1) | 0;\n a[e >> 0] = d[(640 + (b & 15)) >> 0] | 0 | f;\n b = qr(b | 0, c | 0, 4) | 0;\n c = u() | 0;\n } while (!(((b | 0) == 0) & ((c | 0) == 0)));\n return e | 0;\n }\n function xo(b, c, d) {\n b = b | 0;\n c = c | 0;\n d = d | 0;\n if (!(((b | 0) == 0) & ((c | 0) == 0)))\n do {\n d = (d + -1) | 0;\n a[d >> 0] = (b & 7) | 48;\n b = qr(b | 0, c | 0, 3) | 0;\n c = u() | 0;\n } while (!(((b | 0) == 0) & ((c | 0) == 0)));\n return d | 0;\n }\n function yo(b, c, d) {\n b = b | 0;\n c = c | 0;\n d = d | 0;\n var e = 0, f = 0, g = 0;\n if ((c >>> 0 > 0) | (((c | 0) == 0) & (b >>> 0 > 4294967295))) {\n do {\n e = b;\n b = pr(b | 0, c | 0, 10, 0) | 0;\n f = c;\n c = u() | 0;\n g = kr(b | 0, c | 0, 10, 0) | 0;\n g = mr(e | 0, f | 0, g | 0, u() | 0) | 0;\n u() | 0;\n d = (d + -1) | 0;\n a[d >> 0] = (g & 255) | 48;\n } while ((f >>> 0 > 9) | (((f | 0) == 9) & (e >>> 0 > 4294967295)));\n c = b;\n }\n else\n c = b;\n if (c)\n do {\n g = c;\n c = ((c >>> 0) / 10) | 0;\n d = (d + -1) | 0;\n a[d >> 0] = (g - ((c * 10) | 0)) | 48;\n } while (g >>> 0 >= 10);\n return d | 0;\n }\n function zo(a, b, c, d, e) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n d = d | 0;\n e = e | 0;\n var f = 0, g = 0;\n g = V;\n V = (V + 256) | 0;\n f = g;\n if (((c | 0) > (d | 0)) & (((e & 73728) | 0) == 0)) {\n e = (c - d) | 0;\n wr(f | 0, ((b << 24) >> 24) | 0, (e >>> 0 < 256 ? e : 256) | 0) | 0;\n if (e >>> 0 > 255) {\n b = (c - d) | 0;\n do {\n to(a, f, 256);\n e = (e + -256) | 0;\n } while (e >>> 0 > 255);\n e = b & 255;\n }\n to(a, f, e);\n }\n V = g;\n return;\n }\n function Ao(a, b) {\n a = a | 0;\n b = b | 0;\n if (!a)\n a = 0;\n else\n a = Bo(a, b, 0) | 0;\n return a | 0;\n }\n function Bo(b, d, e) {\n b = b | 0;\n d = d | 0;\n e = e | 0;\n do\n if (b) {\n if (d >>> 0 < 128) {\n a[b >> 0] = d;\n b = 1;\n break;\n }\n if (!(c[c[((Co() | 0) + 176) >> 2] >> 2] | 0))\n if (((d & -128) | 0) == 57216) {\n a[b >> 0] = d;\n b = 1;\n break;\n }\n else {\n c[(ao() | 0) >> 2] = 25;\n b = -1;\n break;\n }\n if (d >>> 0 < 2048) {\n a[b >> 0] = (d >>> 6) | 192;\n a[(b + 1) >> 0] = (d & 63) | 128;\n b = 2;\n break;\n }\n if ((d >>> 0 < 55296) | (((d & -8192) | 0) == 57344)) {\n a[b >> 0] = (d >>> 12) | 224;\n a[(b + 1) >> 0] = ((d >>> 6) & 63) | 128;\n a[(b + 2) >> 0] = (d & 63) | 128;\n b = 3;\n break;\n }\n if (((d + -65536) | 0) >>> 0 < 1048576) {\n a[b >> 0] = (d >>> 18) | 240;\n a[(b + 1) >> 0] = ((d >>> 12) & 63) | 128;\n a[(b + 2) >> 0] = ((d >>> 6) & 63) | 128;\n a[(b + 3) >> 0] = (d & 63) | 128;\n b = 4;\n break;\n }\n else {\n c[(ao() | 0) >> 2] = 25;\n b = -1;\n break;\n }\n }\n else\n b = 1;\n while (0);\n return b | 0;\n }\n function Co() {\n return co() | 0;\n }\n function Do(a) {\n a = +a;\n var b = 0;\n g[h >> 3] = a;\n b = c[h >> 2] | 0;\n t(c[(h + 4) >> 2] | 0);\n return b | 0;\n }\n function Eo(a, b) {\n a = +a;\n b = b | 0;\n var d = 0, e = 0, f = 0;\n g[h >> 3] = a;\n d = c[h >> 2] | 0;\n e = c[(h + 4) >> 2] | 0;\n f = qr(d | 0, e | 0, 52) | 0;\n u() | 0;\n switch (f & 2047) {\n case 0: {\n if (a != 0.0) {\n a = +Eo(a * 18446744073709551616.0, b);\n d = ((c[b >> 2] | 0) + -64) | 0;\n }\n else\n d = 0;\n c[b >> 2] = d;\n break;\n }\n case 2047:\n break;\n default: {\n c[b >> 2] = (f & 2047) + -1022;\n c[h >> 2] = d;\n c[(h + 4) >> 2] = (e & -2146435073) | 1071644672;\n a = +g[h >> 3];\n }\n }\n return +a;\n }\n function Fo(b, c, d) {\n b = b | 0;\n c = c | 0;\n d = d | 0;\n var e = 0, f = 0;\n a: do\n if (!d)\n b = 0;\n else {\n while (1) {\n e = a[b >> 0] | 0;\n f = a[c >> 0] | 0;\n if ((e << 24) >> 24 != (f << 24) >> 24)\n break;\n d = (d + -1) | 0;\n if (!d) {\n b = 0;\n break a;\n }\n else {\n b = (b + 1) | 0;\n c = (c + 1) | 0;\n }\n }\n b = ((e & 255) - (f & 255)) | 0;\n }\n while (0);\n return b | 0;\n }\n function Go(a, b, d, e) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n e = e | 0;\n var f = 0, g = 0;\n f = V;\n V = (V + 16) | 0;\n g = f;\n c[g >> 2] = e;\n e = Ho(a, b, d, g) | 0;\n V = f;\n return e | 0;\n }\n function Ho(b, d, e, f) {\n b = b | 0;\n d = d | 0;\n e = e | 0;\n f = f | 0;\n var g = 0, h = 0, i = 0, j = 0;\n j = V;\n V = (V + 160) | 0;\n g = (j + 144) | 0;\n i = j;\n ur(i | 0, 3672, 144) | 0;\n if (((d + -1) | 0) >>> 0 > 2147483646)\n if (!d) {\n b = g;\n d = 1;\n h = 4;\n }\n else {\n c[(ao() | 0) >> 2] = 61;\n d = -1;\n }\n else\n h = 4;\n if ((h | 0) == 4) {\n h = (-2 - b) | 0;\n h = d >>> 0 > h >>> 0 ? h : d;\n c[(i + 48) >> 2] = h;\n g = (i + 20) | 0;\n c[g >> 2] = b;\n c[(i + 44) >> 2] = b;\n d = (b + h) | 0;\n b = (i + 16) | 0;\n c[b >> 2] = d;\n c[(i + 28) >> 2] = d;\n d = oo(i, e, f) | 0;\n if (h) {\n i = c[g >> 2] | 0;\n a[(i + ((((i | 0) == (c[b >> 2] | 0)) << 31) >> 31)) >> 0] = 0;\n }\n }\n V = j;\n return d | 0;\n }\n function Io(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n e = (a + 20) | 0;\n f = c[e >> 2] | 0;\n a = ((c[(a + 16) >> 2] | 0) - f) | 0;\n a = a >>> 0 > d >>> 0 ? d : a;\n ur(f | 0, b | 0, a | 0) | 0;\n c[e >> 2] = (c[e >> 2] | 0) + a;\n return d | 0;\n }\n function Jo(a) {\n a = a | 0;\n var b = 0, c = 0;\n b = ((fo(a) | 0) + 1) | 0;\n c = dr(b) | 0;\n if (!c)\n a = 0;\n else\n a = ur(c | 0, a | 0, b | 0) | 0;\n return a | 0;\n }\n function Ko(b, e) {\n b = b | 0;\n e = e | 0;\n var f = 0, g = 0;\n f = 0;\n while (1) {\n if ((d[(656 + f) >> 0] | 0) == (b | 0)) {\n g = 4;\n break;\n }\n f = (f + 1) | 0;\n if ((f | 0) == 87) {\n b = 87;\n g = 5;\n break;\n }\n }\n if ((g | 0) == 4)\n if (!f)\n f = 752;\n else {\n b = f;\n g = 5;\n }\n if ((g | 0) == 5) {\n f = 752;\n do {\n do {\n g = f;\n f = (f + 1) | 0;\n } while ((a[g >> 0] | 0) != 0);\n b = (b + -1) | 0;\n } while ((b | 0) != 0);\n }\n return Lo(f, c[(e + 20) >> 2] | 0) | 0;\n }\n function Lo(a, b) {\n a = a | 0;\n b = b | 0;\n return ko(a, b) | 0;\n }\n function Mo(a) {\n a = a | 0;\n return Ko(a, c[((No() | 0) + 176) >> 2] | 0) | 0;\n }\n function No() {\n return co() | 0;\n }\n function Oo(b, c, d) {\n b = b | 0;\n c = c | 0;\n d = d | 0;\n var e = 0;\n e = Mo(b) | 0;\n b = fo(e) | 0;\n if (b >>> 0 >= d >>> 0) {\n b = (d + -1) | 0;\n if (!d)\n b = 68;\n else {\n ur(c | 0, e | 0, b | 0) | 0;\n a[(c + b) >> 0] = 0;\n b = 68;\n }\n }\n else {\n ur(c | 0, e | 0, (b + 1) | 0) | 0;\n b = 0;\n }\n return b | 0;\n }\n function Po() {\n var a = 0, b = 0, d = 0, e = 0, f = 0, g = 0, h = 0;\n e = V;\n V = (V + 48) | 0;\n g = (e + 32) | 0;\n b = (e + 24) | 0;\n h = (e + 16) | 0;\n f = e;\n e = (e + 36) | 0;\n a = Qo() | 0;\n if (a | 0 ? ((d = c[a >> 2] | 0), d | 0) : 0) {\n a = (d + 48) | 0;\n if (!(Ro(a) | 0)) {\n c[b >> 2] = 20420;\n To(20370, b);\n }\n b = So(a) | 0;\n if (((b | 0) == 1126902529) & ((u() | 0) == 1129074247))\n a = c[(d + 44) >> 2] | 0;\n else\n a = (d + 80) | 0;\n c[e >> 2] = a;\n d = c[d >> 2] | 0;\n a = c[(d + 4) >> 2] | 0;\n if (aa[c[((c[954] | 0) + 16) >> 2] & 7](3816, d, e) | 0) {\n h = c[e >> 2] | 0;\n h = Z[c[((c[h >> 2] | 0) + 8) >> 2] & 15](h) | 0;\n c[f >> 2] = 20420;\n c[(f + 4) >> 2] = a;\n c[(f + 8) >> 2] = h;\n To(20284, f);\n }\n else {\n c[h >> 2] = 20420;\n c[(h + 4) >> 2] = a;\n To(20329, h);\n }\n }\n To(20408, g);\n }\n function Qo() {\n return 21640;\n }\n function Ro(a) {\n a = a | 0;\n a = So(a) | 0;\n return ((((a & -256) | 0) == 1126902528) & ((u() | 0) == 1129074247)) | 0;\n }\n function So(a) {\n a = a | 0;\n var b = 0;\n b = a;\n a = c[b >> 2] | 0;\n t(c[(b + 4) >> 2] | 0);\n return a | 0;\n }\n function To(a, b) {\n a = a | 0;\n b = b | 0;\n U();\n }\n function Uo(a) {\n a = a | 0;\n return;\n }\n function Vo(a) {\n a = a | 0;\n Uo(a);\n jp(a);\n return;\n }\n function Wo(a) {\n a = a | 0;\n return;\n }\n function Xo(a) {\n a = a | 0;\n return;\n }\n function Yo(d, e, f) {\n d = d | 0;\n e = e | 0;\n f = f | 0;\n var g = 0, h = 0, i = 0, j = 0, k = 0, l = 0;\n l = V;\n V = (V + 64) | 0;\n j = l;\n if (!(ap(d, e, 0) | 0))\n if ((e | 0) != 0 ? ((k = ep(e, 3840, 3824, 0) | 0), (k | 0) != 0) : 0) {\n c[j >> 2] = k;\n c[(j + 4) >> 2] = 0;\n c[(j + 8) >> 2] = d;\n c[(j + 12) >> 2] = -1;\n d = (j + 16) | 0;\n e = (j + 24) | 0;\n g = (j + 48) | 0;\n h = d;\n i = (h + 36) | 0;\n do {\n c[h >> 2] = 0;\n h = (h + 4) | 0;\n } while ((h | 0) < (i | 0));\n b[(d + 36) >> 1] = 0;\n a[(d + 38) >> 0] = 0;\n c[g >> 2] = 1;\n fa[c[((c[k >> 2] | 0) + 28) >> 2] & 7](k, j, c[f >> 2] | 0, 1);\n if ((c[e >> 2] | 0) == 1) {\n c[f >> 2] = c[d >> 2];\n d = 1;\n }\n else\n d = 0;\n }\n else\n d = 0;\n else\n d = 1;\n V = l;\n return d | 0;\n }\n function Zo(a, b, d, e, f, g) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n e = e | 0;\n f = f | 0;\n g = g | 0;\n if (ap(a, c[(b + 8) >> 2] | 0, g) | 0)\n dp(0, b, d, e, f);\n return;\n }\n function _o(b, d, e, f, g) {\n b = b | 0;\n d = d | 0;\n e = e | 0;\n f = f | 0;\n g = g | 0;\n var h = 0;\n do\n if (!(ap(b, c[(d + 8) >> 2] | 0, g) | 0)) {\n if (ap(b, c[d >> 2] | 0, g) | 0) {\n if ((c[(d + 16) >> 2] | 0) != (e | 0)\n ? ((h = (d + 20) | 0), (c[h >> 2] | 0) != (e | 0))\n : 0) {\n c[(d + 32) >> 2] = f;\n c[h >> 2] = e;\n g = (d + 40) | 0;\n c[g >> 2] = (c[g >> 2] | 0) + 1;\n if ((c[(d + 36) >> 2] | 0) == 1 ? (c[(d + 24) >> 2] | 0) == 2 : 0)\n a[(d + 54) >> 0] = 1;\n c[(d + 44) >> 2] = 4;\n break;\n }\n if ((f | 0) == 1)\n c[(d + 32) >> 2] = 1;\n }\n }\n else\n cp(0, d, e, f);\n while (0);\n return;\n }\n function $o(a, b, d, e) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n e = e | 0;\n if (ap(a, c[(b + 8) >> 2] | 0, 0) | 0)\n bp(0, b, d, e);\n return;\n }\n function ap(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n if (d)\n if ((a | 0) == (b | 0))\n a = 1;\n else\n a = (eo(c[(a + 4) >> 2] | 0, c[(b + 4) >> 2] | 0) | 0) == 0;\n else\n a = (c[(a + 4) >> 2] | 0) == (c[(b + 4) >> 2] | 0);\n return a | 0;\n }\n function bp(b, d, e, f) {\n b = b | 0;\n d = d | 0;\n e = e | 0;\n f = f | 0;\n var g = 0;\n b = (d + 16) | 0;\n g = c[b >> 2] | 0;\n do\n if (g) {\n if ((g | 0) != (e | 0)) {\n f = (d + 36) | 0;\n c[f >> 2] = (c[f >> 2] | 0) + 1;\n c[(d + 24) >> 2] = 2;\n a[(d + 54) >> 0] = 1;\n break;\n }\n b = (d + 24) | 0;\n if ((c[b >> 2] | 0) == 2)\n c[b >> 2] = f;\n }\n else {\n c[b >> 2] = e;\n c[(d + 24) >> 2] = f;\n c[(d + 36) >> 2] = 1;\n }\n while (0);\n return;\n }\n function cp(a, b, d, e) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n e = e | 0;\n var f = 0;\n if ((c[(b + 4) >> 2] | 0) == (d | 0) ? ((f = (b + 28) | 0), (c[f >> 2] | 0) != 1) : 0)\n c[f >> 2] = e;\n return;\n }\n function dp(b, d, e, f, g) {\n b = b | 0;\n d = d | 0;\n e = e | 0;\n f = f | 0;\n g = g | 0;\n a[(d + 53) >> 0] = 1;\n do\n if ((c[(d + 4) >> 2] | 0) == (f | 0)) {\n a[(d + 52) >> 0] = 1;\n b = (d + 16) | 0;\n f = c[b >> 2] | 0;\n if (!f) {\n c[b >> 2] = e;\n c[(d + 24) >> 2] = g;\n c[(d + 36) >> 2] = 1;\n if (!((g | 0) == 1 ? (c[(d + 48) >> 2] | 0) == 1 : 0))\n break;\n a[(d + 54) >> 0] = 1;\n break;\n }\n if ((f | 0) != (e | 0)) {\n g = (d + 36) | 0;\n c[g >> 2] = (c[g >> 2] | 0) + 1;\n a[(d + 54) >> 0] = 1;\n break;\n }\n f = (d + 24) | 0;\n b = c[f >> 2] | 0;\n if ((b | 0) == 2) {\n c[f >> 2] = g;\n b = g;\n }\n if ((b | 0) == 1 ? (c[(d + 48) >> 2] | 0) == 1 : 0)\n a[(d + 54) >> 0] = 1;\n }\n while (0);\n return;\n }\n function ep(d, e, f, g) {\n d = d | 0;\n e = e | 0;\n f = f | 0;\n g = g | 0;\n var h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0;\n p = V;\n V = (V + 64) | 0;\n n = p;\n m = c[d >> 2] | 0;\n o = (d + (c[(m + -8) >> 2] | 0)) | 0;\n m = c[(m + -4) >> 2] | 0;\n c[n >> 2] = f;\n c[(n + 4) >> 2] = d;\n c[(n + 8) >> 2] = e;\n c[(n + 12) >> 2] = g;\n d = (n + 16) | 0;\n e = (n + 20) | 0;\n g = (n + 24) | 0;\n h = (n + 28) | 0;\n i = (n + 32) | 0;\n j = (n + 40) | 0;\n k = d;\n l = (k + 36) | 0;\n do {\n c[k >> 2] = 0;\n k = (k + 4) | 0;\n } while ((k | 0) < (l | 0));\n b[(d + 36) >> 1] = 0;\n a[(d + 38) >> 0] = 0;\n a: do\n if (ap(m, f, 0) | 0) {\n c[(n + 48) >> 2] = 1;\n ha[c[((c[m >> 2] | 0) + 20) >> 2] & 3](m, n, o, o, 1, 0);\n d = (c[g >> 2] | 0) == 1 ? o : 0;\n }\n else {\n ga[c[((c[m >> 2] | 0) + 24) >> 2] & 3](m, n, o, 1, 0);\n switch (c[(n + 36) >> 2] | 0) {\n case 0: {\n d =\n ((c[j >> 2] | 0) == 1) & ((c[h >> 2] | 0) == 1) & ((c[i >> 2] | 0) == 1)\n ? c[e >> 2] | 0\n : 0;\n break a;\n }\n case 1:\n break;\n default: {\n d = 0;\n break a;\n }\n }\n if ((c[g >> 2] | 0) != 1\n ? !(((c[j >> 2] | 0) == 0) & ((c[h >> 2] | 0) == 1) & ((c[i >> 2] | 0) == 1))\n : 0) {\n d = 0;\n break;\n }\n d = c[d >> 2] | 0;\n }\n while (0);\n V = p;\n return d | 0;\n }\n function fp(a) {\n a = a | 0;\n Uo(a);\n jp(a);\n return;\n }\n function gp(a, b, d, e, f, g) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n e = e | 0;\n f = f | 0;\n g = g | 0;\n if (ap(a, c[(b + 8) >> 2] | 0, g) | 0)\n dp(0, b, d, e, f);\n else {\n a = c[(a + 8) >> 2] | 0;\n ha[c[((c[a >> 2] | 0) + 20) >> 2] & 3](a, b, d, e, f, g);\n }\n return;\n }\n function hp(b, d, e, f, g) {\n b = b | 0;\n d = d | 0;\n e = e | 0;\n f = f | 0;\n g = g | 0;\n var h = 0, i = 0, j = 0;\n a: do\n if (!(ap(b, c[(d + 8) >> 2] | 0, g) | 0)) {\n if (!(ap(b, c[d >> 2] | 0, g) | 0)) {\n i = c[(b + 8) >> 2] | 0;\n ga[c[((c[i >> 2] | 0) + 24) >> 2] & 3](i, d, e, f, g);\n break;\n }\n if ((c[(d + 16) >> 2] | 0) != (e | 0) ? ((i = (d + 20) | 0), (c[i >> 2] | 0) != (e | 0)) : 0) {\n c[(d + 32) >> 2] = f;\n f = (d + 44) | 0;\n do\n if ((c[f >> 2] | 0) != 4) {\n h = (d + 52) | 0;\n a[h >> 0] = 0;\n j = (d + 53) | 0;\n a[j >> 0] = 0;\n b = c[(b + 8) >> 2] | 0;\n ha[c[((c[b >> 2] | 0) + 20) >> 2] & 3](b, d, e, e, 1, g);\n if (a[j >> 0] | 0) {\n j = (a[h >> 0] | 0) == 0;\n c[f >> 2] = 3;\n if (j)\n break;\n else\n break a;\n }\n else {\n c[f >> 2] = 4;\n break;\n }\n }\n while (0);\n c[i >> 2] = e;\n j = (d + 40) | 0;\n c[j >> 2] = (c[j >> 2] | 0) + 1;\n if ((c[(d + 36) >> 2] | 0) != 1)\n break;\n if ((c[(d + 24) >> 2] | 0) != 2)\n break;\n a[(d + 54) >> 0] = 1;\n break;\n }\n if ((f | 0) == 1)\n c[(d + 32) >> 2] = 1;\n }\n else\n cp(0, d, e, f);\n while (0);\n return;\n }\n function ip(a, b, d, e) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n e = e | 0;\n if (ap(a, c[(b + 8) >> 2] | 0, 0) | 0)\n bp(0, b, d, e);\n else {\n a = c[(a + 8) >> 2] | 0;\n fa[c[((c[a >> 2] | 0) + 28) >> 2] & 7](a, b, d, e);\n }\n return;\n }\n function jp(a) {\n a = a | 0;\n er(a);\n return;\n }\n function kp(a) {\n a = a | 0;\n return;\n }\n function lp() {\n var a = 0, b = 0;\n a = Qo() | 0;\n if ((a | 0 ? ((b = c[a >> 2] | 0), b | 0) : 0) ? Ro((b + 48) | 0) | 0 : 0)\n mp(c[(b + 12) >> 2] | 0);\n mp(np() | 0);\n }\n function mp(a) {\n a = a | 0;\n var b = 0;\n b = V;\n V = (V + 16) | 0;\n ba[a & 3]();\n To(20559, b);\n }\n function np() {\n return 2;\n }\n function op(a) {\n a = a | 0;\n return;\n }\n function pp(a) {\n a = a | 0;\n jp(a);\n return;\n }\n function qp(a) {\n a = a | 0;\n return 20599;\n }\n function rp(a) {\n a = a | 0;\n c[a >> 2] = 5916;\n vp((a + 4) | 0);\n return;\n }\n function sp(a) {\n a = a | 0;\n rp(a);\n jp(a);\n return;\n }\n function tp(a) {\n a = a | 0;\n return up((a + 4) | 0) | 0;\n }\n function up(a) {\n a = a | 0;\n return c[a >> 2] | 0;\n }\n function vp(a) {\n a = a | 0;\n var b = 0, d = 0;\n if (wp(a) | 0\n ? ((b = xp(c[a >> 2] | 0) | 0),\n (d = (b + 8) | 0),\n (a = c[d >> 2] | 0),\n (c[d >> 2] = a + -1),\n (a | 0) < 1)\n : 0)\n jp(b);\n return;\n }\n function wp(a) {\n a = a | 0;\n return 1;\n }\n function xp(a) {\n a = a | 0;\n return (a + -12) | 0;\n }\n function yp(a) {\n a = a | 0;\n c[a >> 2] = 5936;\n vp((a + 4) | 0);\n return;\n }\n function zp(a) {\n a = a | 0;\n yp(a);\n jp(a);\n return;\n }\n function Ap(a) {\n a = a | 0;\n return up((a + 4) | 0) | 0;\n }\n function Bp(a) {\n a = a | 0;\n rp(a);\n jp(a);\n return;\n }\n function Cp(a) {\n a = a | 0;\n rp(a);\n jp(a);\n return;\n }\n function Dp() {\n var a = 0;\n a = V;\n V = (V + 16) | 0;\n To(20848, a);\n }\n function Ep(a) {\n a = a | 0;\n Uo(a);\n jp(a);\n return;\n }\n function Fp(a, b, c) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n return ap(a, b, 0) | 0;\n }\n function Gp(a) {\n a = a | 0;\n Uo(a);\n jp(a);\n return;\n }\n function Hp(d, e, f) {\n d = d | 0;\n e = e | 0;\n f = f | 0;\n var g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0;\n n = V;\n V = (V + 64) | 0;\n l = n;\n do\n if (!(ap(e, 4048, 0) | 0)) {\n if (Ip(d, e, 0) | 0) {\n e = c[f >> 2] | 0;\n if (!e) {\n e = 1;\n break;\n }\n c[f >> 2] = c[e >> 2];\n e = 1;\n break;\n }\n if ((e | 0) != 0 ? ((g = ep(e, 3840, 3976, 0) | 0), (g | 0) != 0) : 0) {\n e = c[f >> 2] | 0;\n if (e | 0)\n c[f >> 2] = c[e >> 2];\n e = c[(g + 8) >> 2] | 0;\n i = (d + 8) | 0;\n h = c[i >> 2] | 0;\n if (((e & 7 & (h ^ 7)) | 0) == 0 ? ((((e & 96) ^ 96) & h) | 0) == 0 : 0) {\n h = (d + 12) | 0;\n d = c[h >> 2] | 0;\n g = (g + 12) | 0;\n e = c[g >> 2] | 0;\n if (!(ap(d, e, 0) | 0)) {\n if (ap(d, 4040, 0) | 0) {\n if (!e) {\n e = 1;\n break;\n }\n e = (ep(e, 3840, 3992, 0) | 0) == 0;\n break;\n }\n if (d) {\n e = ep(d, 3840, 3976, 0) | 0;\n if (e | 0) {\n if (!(c[i >> 2] & 1)) {\n e = 0;\n break;\n }\n e = Jp(e, c[g >> 2] | 0) | 0;\n break;\n }\n e = c[h >> 2] | 0;\n if (e) {\n e = ep(e, 3840, 4008, 0) | 0;\n if (e | 0) {\n if (!(c[i >> 2] & 1)) {\n e = 0;\n break;\n }\n e = Kp(e, c[g >> 2] | 0) | 0;\n break;\n }\n e = c[h >> 2] | 0;\n if ((((e | 0) != 0 ? ((j = ep(e, 3840, 3824, 0) | 0), (j | 0) != 0) : 0)\n ? ((k = c[g >> 2] | 0), (k | 0) != 0)\n : 0)\n ? ((m = ep(k, 3840, 3824, 0) | 0), (m | 0) != 0)\n : 0) {\n c[l >> 2] = m;\n c[(l + 4) >> 2] = 0;\n c[(l + 8) >> 2] = j;\n c[(l + 12) >> 2] = -1;\n e = (l + 16) | 0;\n d = (l + 24) | 0;\n g = (l + 48) | 0;\n h = e;\n i = (h + 36) | 0;\n do {\n c[h >> 2] = 0;\n h = (h + 4) | 0;\n } while ((h | 0) < (i | 0));\n b[(e + 36) >> 1] = 0;\n a[(e + 38) >> 0] = 0;\n c[g >> 2] = 1;\n fa[c[((c[m >> 2] | 0) + 28) >> 2] & 7](m, l, c[f >> 2] | 0, 1);\n do\n if ((c[d >> 2] | 0) == 1) {\n if (!(c[f >> 2] | 0)) {\n e = 1;\n break;\n }\n c[f >> 2] = c[e >> 2];\n e = 1;\n }\n else\n e = 0;\n while (0);\n }\n else\n e = 0;\n }\n else\n e = 0;\n }\n else\n e = 0;\n }\n else\n e = 1;\n }\n else\n e = 0;\n }\n else\n e = 0;\n }\n else {\n c[f >> 2] = 0;\n e = 1;\n }\n while (0);\n V = n;\n return e | 0;\n }\n function Ip(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n if (!(c[(a + 8) >> 2] & 24))\n if ((b | 0) != 0 ? ((e = ep(b, 3840, 3960, 0) | 0), (e | 0) != 0) : 0) {\n d = ((c[(e + 8) >> 2] & 24) | 0) != 0;\n f = 5;\n }\n else\n d = 0;\n else {\n d = 1;\n f = 5;\n }\n if ((f | 0) == 5)\n d = ap(a, b, d) | 0;\n return d | 0;\n }\n function Jp(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0, h = 0;\n while (1) {\n if (!b) {\n b = 0;\n break;\n }\n d = ep(b, 3840, 3976, 0) | 0;\n if (!d) {\n b = 0;\n break;\n }\n f = c[(a + 8) >> 2] | 0;\n if ((c[(d + 8) >> 2] & ~f) | 0) {\n b = 0;\n break;\n }\n e = (a + 12) | 0;\n b = c[e >> 2] | 0;\n d = (d + 12) | 0;\n if (ap(b, c[d >> 2] | 0, 0) | 0) {\n b = 1;\n break;\n }\n if ((((f & 1) | 0) == 0) | ((b | 0) == 0)) {\n b = 0;\n break;\n }\n a = ep(b, 3840, 3976, 0) | 0;\n if (!a) {\n h = 9;\n break;\n }\n b = c[d >> 2] | 0;\n }\n if ((h | 0) == 9) {\n b = c[e >> 2] | 0;\n if ((b | 0) != 0 ? ((g = ep(b, 3840, 4008, 0) | 0), (g | 0) != 0) : 0)\n b = Kp(g, c[d >> 2] | 0) | 0;\n else\n b = 0;\n }\n return b | 0;\n }\n function Kp(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0;\n if ((((b | 0) != 0 ? ((d = ep(b, 3840, 4008, 0) | 0), (d | 0) != 0) : 0)\n ? ((c[(d + 8) >> 2] & ~c[(a + 8) >> 2]) | 0) == 0\n : 0)\n ? ap(c[(a + 12) >> 2] | 0, c[(d + 12) >> 2] | 0, 0) | 0\n : 0)\n a = ap(c[(a + 16) >> 2] | 0, c[(d + 16) >> 2] | 0, 0) | 0;\n else\n a = 0;\n return a | 0;\n }\n function Lp(a) {\n a = a | 0;\n Uo(a);\n jp(a);\n return;\n }\n function Mp(b, d, e, f, g, h) {\n b = b | 0;\n d = d | 0;\n e = e | 0;\n f = f | 0;\n g = g | 0;\n h = h | 0;\n var i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0;\n if (ap(b, c[(d + 8) >> 2] | 0, h) | 0)\n dp(0, d, e, f, g);\n else {\n r = (d + 52) | 0;\n j = a[r >> 0] | 0;\n q = (d + 53) | 0;\n i = a[q >> 0] | 0;\n p = c[(b + 12) >> 2] | 0;\n m = (b + 16 + (p << 3)) | 0;\n a[r >> 0] = 0;\n a[q >> 0] = 0;\n Qp((b + 16) | 0, d, e, f, g, h);\n k = a[r >> 0] | 0;\n j = k | j;\n l = a[q >> 0] | 0;\n i = l | i;\n a: do\n if ((p | 0) > 1) {\n n = (d + 24) | 0;\n o = (b + 8) | 0;\n p = (d + 54) | 0;\n b = (b + 24) | 0;\n do {\n i = i & 1;\n j = j & 1;\n if (a[p >> 0] | 0)\n break a;\n if (!((k << 24) >> 24)) {\n if ((l << 24) >> 24 ? ((c[o >> 2] & 1) | 0) == 0 : 0)\n break a;\n }\n else {\n if ((c[n >> 2] | 0) == 1)\n break a;\n if (!(c[o >> 2] & 2))\n break a;\n }\n a[r >> 0] = 0;\n a[q >> 0] = 0;\n Qp(b, d, e, f, g, h);\n k = a[r >> 0] | 0;\n j = k | j;\n l = a[q >> 0] | 0;\n i = l | i;\n b = (b + 8) | 0;\n } while (b >>> 0 < m >>> 0);\n }\n while (0);\n a[r >> 0] = ((j << 24) >> 24 != 0) & 1;\n a[q >> 0] = ((i << 24) >> 24 != 0) & 1;\n }\n return;\n }\n function Np(b, d, e, f, g) {\n b = b | 0;\n d = d | 0;\n e = e | 0;\n f = f | 0;\n g = g | 0;\n var h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0;\n a: do\n if (!(ap(b, c[(d + 8) >> 2] | 0, g) | 0)) {\n if (!(ap(b, c[d >> 2] | 0, g) | 0)) {\n p = c[(b + 12) >> 2] | 0;\n k = (b + 16 + (p << 3)) | 0;\n Rp((b + 16) | 0, d, e, f, g);\n h = (b + 24) | 0;\n if ((p | 0) <= 1)\n break;\n b = c[(b + 8) >> 2] | 0;\n if (((b & 2) | 0) == 0 ? ((j = (d + 36) | 0), (c[j >> 2] | 0) != 1) : 0) {\n if (!(b & 1)) {\n b = (d + 54) | 0;\n while (1) {\n if (a[b >> 0] | 0)\n break a;\n if ((c[j >> 2] | 0) == 1)\n break a;\n Rp(h, d, e, f, g);\n h = (h + 8) | 0;\n if (h >>> 0 >= k >>> 0)\n break a;\n }\n }\n b = (d + 24) | 0;\n i = (d + 54) | 0;\n while (1) {\n if (a[i >> 0] | 0)\n break a;\n if ((c[j >> 2] | 0) == 1 ? (c[b >> 2] | 0) == 1 : 0)\n break a;\n Rp(h, d, e, f, g);\n h = (h + 8) | 0;\n if (h >>> 0 >= k >>> 0)\n break a;\n }\n }\n b = (d + 54) | 0;\n while (1) {\n if (a[b >> 0] | 0)\n break a;\n Rp(h, d, e, f, g);\n h = (h + 8) | 0;\n if (h >>> 0 >= k >>> 0)\n break a;\n }\n }\n if ((c[(d + 16) >> 2] | 0) != (e | 0) ? ((p = (d + 20) | 0), (c[p >> 2] | 0) != (e | 0)) : 0) {\n c[(d + 32) >> 2] = f;\n o = (d + 44) | 0;\n if ((c[o >> 2] | 0) != 4) {\n j = (b + 16 + (c[(b + 12) >> 2] << 3)) | 0;\n k = (d + 52) | 0;\n f = (d + 53) | 0;\n l = (d + 54) | 0;\n m = (b + 8) | 0;\n n = (d + 24) | 0;\n h = 0;\n i = (b + 16) | 0;\n b = 0;\n b: while (1) {\n if (i >>> 0 >= j >>> 0) {\n i = 18;\n break;\n }\n a[k >> 0] = 0;\n a[f >> 0] = 0;\n Qp(i, d, e, e, 1, g);\n if (a[l >> 0] | 0) {\n i = 18;\n break;\n }\n do\n if (a[f >> 0] | 0) {\n if (!(a[k >> 0] | 0))\n if (!(c[m >> 2] & 1)) {\n i = 19;\n break b;\n }\n else {\n b = 1;\n break;\n }\n if ((c[n >> 2] | 0) == 1) {\n h = 1;\n i = 19;\n break b;\n }\n if (!(c[m >> 2] & 2)) {\n h = 1;\n i = 19;\n break b;\n }\n else {\n h = 1;\n b = 1;\n }\n }\n while (0);\n i = (i + 8) | 0;\n }\n if ((i | 0) == 18)\n if (b)\n i = 19;\n else\n b = 4;\n if ((i | 0) == 19)\n b = 3;\n c[o >> 2] = b;\n if (h & 1)\n break;\n }\n c[p >> 2] = e;\n e = (d + 40) | 0;\n c[e >> 2] = (c[e >> 2] | 0) + 1;\n if ((c[(d + 36) >> 2] | 0) != 1)\n break;\n if ((c[(d + 24) >> 2] | 0) != 2)\n break;\n a[(d + 54) >> 0] = 1;\n break;\n }\n if ((f | 0) == 1)\n c[(d + 32) >> 2] = 1;\n }\n else\n cp(0, d, e, f);\n while (0);\n return;\n }\n function Op(b, d, e, f) {\n b = b | 0;\n d = d | 0;\n e = e | 0;\n f = f | 0;\n var g = 0, h = 0;\n a: do\n if (!(ap(b, c[(d + 8) >> 2] | 0, 0) | 0)) {\n h = c[(b + 12) >> 2] | 0;\n g = (b + 16 + (h << 3)) | 0;\n Pp((b + 16) | 0, d, e, f);\n if ((h | 0) > 1) {\n h = (d + 54) | 0;\n b = (b + 24) | 0;\n do {\n Pp(b, d, e, f);\n if (a[h >> 0] | 0)\n break a;\n b = (b + 8) | 0;\n } while (b >>> 0 < g >>> 0);\n }\n }\n else\n bp(0, d, e, f);\n while (0);\n return;\n }\n function Pp(a, b, d, e) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n e = e | 0;\n var f = 0, g = 0;\n g = c[(a + 4) >> 2] | 0;\n if (d) {\n f = g >> 8;\n if (g & 1)\n f = c[((c[d >> 2] | 0) + f) >> 2] | 0;\n }\n else\n f = 0;\n a = c[a >> 2] | 0;\n fa[c[((c[a >> 2] | 0) + 28) >> 2] & 7](a, b, (d + f) | 0, ((g & 2) | 0) == 0 ? 2 : e);\n return;\n }\n function Qp(a, b, d, e, f, g) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n e = e | 0;\n f = f | 0;\n g = g | 0;\n var h = 0, i = 0;\n i = c[(a + 4) >> 2] | 0;\n h = i >> 8;\n if (i & 1)\n h = c[((c[e >> 2] | 0) + h) >> 2] | 0;\n a = c[a >> 2] | 0;\n ha[c[((c[a >> 2] | 0) + 20) >> 2] & 3](a, b, d, (e + h) | 0, ((i & 2) | 0) == 0 ? 2 : f, g);\n return;\n }\n function Rp(a, b, d, e, f) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n e = e | 0;\n f = f | 0;\n var g = 0, h = 0;\n h = c[(a + 4) >> 2] | 0;\n g = h >> 8;\n if (h & 1)\n g = c[((c[d >> 2] | 0) + g) >> 2] | 0;\n a = c[a >> 2] | 0;\n ga[c[((c[a >> 2] | 0) + 24) >> 2] & 3](a, b, (d + g) | 0, ((h & 2) | 0) == 0 ? 2 : e, f);\n return;\n }\n function Sp(a) {\n a = a | 0;\n c[a >> 2] = 5896;\n return;\n }\n function Tp(a) {\n a = a | 0;\n var b = 0, c = 0;\n b = V;\n V = (V + 16) | 0;\n c = b;\n Up(c, a);\n a = Vp(c) | 0;\n V = b;\n return a | 0;\n }\n function Up(a, b) {\n a = a | 0;\n b = b | 0;\n _p(a, b);\n return;\n }\n function Vp(a) {\n a = a | 0;\n var b = 0, d = 0;\n b = V;\n V = (V + 16) | 0;\n d = b;\n Wp(d, c[(a + 4) >> 2] | 0);\n if (!(((Xp(d) | 0) << 24) >> 24))\n a = Zp(Yp(a) | 0) | 0;\n else\n a = 0;\n V = b;\n return a | 0;\n }\n function Wp(a, b) {\n a = a | 0;\n b = b | 0;\n c[a >> 2] = b;\n return;\n }\n function Xp(b) {\n b = b | 0;\n return a[c[b >> 2] >> 0] | 0;\n }\n function Yp(a) {\n a = a | 0;\n return a | 0;\n }\n function Zp(b) {\n b = b | 0;\n var d = 0, e = 0, f = 0, g = 0;\n g = V;\n V = (V + 16) | 0;\n f = g;\n b = c[(b + 8) >> 2] | 0;\n d = a[b >> 0] | 0;\n do\n if ((d << 24) >> 24 != 1)\n if (!(d & 2)) {\n a[b >> 0] = 2;\n e = 1;\n break;\n }\n else\n To(20985, f);\n else\n e = 0;\n while (0);\n V = g;\n return e | 0;\n }\n function _p(a, b) {\n a = a | 0;\n b = b | 0;\n c[a >> 2] = b;\n c[(a + 4) >> 2] = b;\n c[(a + 8) >> 2] = b + 1;\n c[(a + 12) >> 2] = 0;\n return;\n }\n function $p(a) {\n a = a | 0;\n var b = 0, c = 0;\n b = V;\n V = (V + 16) | 0;\n c = b;\n Up(c, a);\n aq(c);\n V = b;\n return;\n }\n function aq(a) {\n a = a | 0;\n var b = 0, d = 0;\n b = V;\n V = (V + 16) | 0;\n d = b;\n Wp(d, c[(a + 4) >> 2] | 0);\n bq(d);\n cq(Yp(a) | 0);\n V = b;\n return;\n }\n function bq(b) {\n b = b | 0;\n a[c[b >> 2] >> 0] = 1;\n return;\n }\n function cq(b) {\n b = b | 0;\n a[c[(b + 8) >> 2] >> 0] = 1;\n return;\n }\n function dq() {\n return 0;\n }\n function eq(a) {\n a = a | 0;\n var b = 0, c = 0;\n c = (a | 0) == 0 ? 1 : a;\n while (1) {\n b = dr(c) | 0;\n if (b | 0) {\n a = 6;\n break;\n }\n a = dq() | 0;\n if (!a) {\n a = 5;\n break;\n }\n ba[a & 3]();\n }\n if ((a | 0) == 5) {\n c = v(4) | 0;\n Sp(c);\n x(c | 0, 3880, 121);\n }\n else if ((a | 0) == 6)\n return b | 0;\n return 0;\n }\n function fq(a) {\n a = a | 0;\n return eq(a) | 0;\n }\n function gq(a) {\n a = a | 0;\n jp(a);\n return;\n }\n function hq(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n f = V;\n V = (V + 16) | 0;\n e = f;\n c[e >> 2] = c[d >> 2];\n a = aa[c[((c[a >> 2] | 0) + 16) >> 2] & 7](a, b, e) | 0;\n if (a)\n c[d >> 2] = c[e >> 2];\n V = f;\n return (a & 1) | 0;\n }\n function iq(a) {\n a = a | 0;\n if (!a)\n a = 0;\n else\n a = ((ep(a, 3840, 3976, 0) | 0) != 0) & 1;\n return a | 0;\n }\n function jq(a) {\n a = a | 0;\n return 0;\n }\n function kq() {\n return ((lq() | 0) > 0) | 0;\n }\n function lq() {\n return y() | 0;\n }\n function mq(a) {\n a = a | 0;\n return;\n }\n function nq(a) {\n a = a | 0;\n mq(a);\n jp(a);\n return;\n }\n function oq(a) {\n a = a | 0;\n return 21039;\n }\n function pq(a) {\n a = a | 0;\n return;\n }\n function qq(a) {\n a = a | 0;\n var b = 0, d = 0;\n b = (a + 8) | 0;\n if (!((c[b >> 2] | 0) != 0 ? ((d = c[b >> 2] | 0), (c[b >> 2] = d + -1), (d | 0) != 0) : 0))\n ca[c[((c[a >> 2] | 0) + 16) >> 2] & 255](a);\n return;\n }\n function rq(a) {\n a = a | 0;\n a = jq(a) | 0;\n if (!a)\n return;\n else\n br(a, 21145);\n }\n function sq(a) {\n a = a | 0;\n return;\n }\n function tq(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0;\n e = fo(b) | 0;\n d = eq((e + 13) | 0) | 0;\n c[d >> 2] = e;\n c[(d + 4) >> 2] = e;\n c[(d + 8) >> 2] = 0;\n d = uq(d) | 0;\n ur(d | 0, b | 0, (e + 1) | 0) | 0;\n c[a >> 2] = d;\n return;\n }\n function uq(a) {\n a = a | 0;\n return (a + 12) | 0;\n }\n function vq(a, b) {\n a = a | 0;\n b = b | 0;\n c[a >> 2] = 5916;\n tq((a + 4) | 0, b);\n return;\n }\n function wq(b, d) {\n b = b | 0;\n d = d | 0;\n c[b >> 2] = 5936;\n tq((b + 4) | 0, (a[(d + 11) >> 0] | 0) < 0 ? c[d >> 2] | 0 : d);\n return;\n }\n function xq(a, b) {\n a = a | 0;\n b = b | 0;\n c[a >> 2] = 5936;\n tq((a + 4) | 0, b);\n return;\n }\n function yq(a) {\n a = a | 0;\n a = v(8) | 0;\n vq(a, 21163);\n c[a >> 2] = 5956;\n x(a | 0, 3928, 123);\n }\n function zq(a) {\n a = a | 0;\n a = v(8) | 0;\n vq(a, 21163);\n c[a >> 2] = 5976;\n x(a | 0, 3944, 123);\n }\n function Aq(b, d, e) {\n b = b | 0;\n d = d | 0;\n e = e | 0;\n var f = 0, g = 0, h = 0, i = 0;\n g = V;\n V = (V + 16) | 0;\n f = g;\n if (e >>> 0 > 4294967279)\n yq(b);\n if (e >>> 0 < 11)\n a[(b + 11) >> 0] = e;\n else {\n i = (e + 16) & -16;\n h = eq(i) | 0;\n c[b >> 2] = h;\n c[(b + 8) >> 2] = i | -2147483648;\n c[(b + 4) >> 2] = e;\n b = h;\n }\n Bq(b, d, e) | 0;\n a[f >> 0] = 0;\n nb((b + e) | 0, f);\n V = g;\n return;\n }\n function Bq(a, b, c) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n if (c | 0)\n ur(a | 0, b | 0, c | 0) | 0;\n return a | 0;\n }\n function Cq(b) {\n b = b | 0;\n if ((a[(b + 11) >> 0] | 0) < 0)\n Da(c[b >> 2] | 0, c[(b + 8) >> 2] & 2147483647);\n return;\n }\n function Dq(b, d, e, f, g, h, i, j) {\n b = b | 0;\n d = d | 0;\n e = e | 0;\n f = f | 0;\n g = g | 0;\n h = h | 0;\n i = i | 0;\n j = j | 0;\n var k = 0, l = 0, m = 0, n = 0, o = 0;\n o = V;\n V = (V + 16) | 0;\n n = o;\n if (((-18 - d) | 0) >>> 0 < e >>> 0)\n yq(b);\n if ((a[(b + 11) >> 0] | 0) < 0)\n m = c[b >> 2] | 0;\n else\n m = b;\n if (d >>> 0 < 2147483623) {\n k = (e + d) | 0;\n l = d << 1;\n k = k >>> 0 < l >>> 0 ? l : k;\n k = k >>> 0 < 11 ? 11 : (k + 16) & -16;\n }\n else\n k = -17;\n l = eq(k) | 0;\n if (g | 0)\n Bq(l, m, g) | 0;\n if (i | 0)\n Bq((l + g) | 0, j, i) | 0;\n f = (f - h) | 0;\n e = (f - g) | 0;\n if (e | 0)\n Bq((l + g + i) | 0, (m + g + h) | 0, e) | 0;\n e = (d + 1) | 0;\n if ((e | 0) != 11)\n Da(m, e);\n c[b >> 2] = l;\n c[(b + 8) >> 2] = k | -2147483648;\n i = (f + i) | 0;\n c[(b + 4) >> 2] = i;\n a[n >> 0] = 0;\n nb((l + i) | 0, n);\n V = o;\n return;\n }\n function Eq(b, d, e) {\n b = b | 0;\n d = d | 0;\n e = e | 0;\n var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0;\n k = V;\n V = (V + 16) | 0;\n i = k;\n j = (b + 11) | 0;\n f = a[j >> 0] | 0;\n h = (f << 24) >> 24 < 0;\n if (h) {\n g = ((c[(b + 8) >> 2] & 2147483647) + -1) | 0;\n f = c[(b + 4) >> 2] | 0;\n }\n else {\n g = 10;\n f = f & 255;\n }\n if (((g - f) | 0) >>> 0 >= e >>> 0) {\n if (e | 0) {\n if (h)\n g = c[b >> 2] | 0;\n else\n g = b;\n Bq((g + f) | 0, d, e) | 0;\n f = (f + e) | 0;\n if ((a[j >> 0] | 0) < 0)\n c[(b + 4) >> 2] = f;\n else\n a[j >> 0] = f;\n a[i >> 0] = 0;\n nb((g + f) | 0, i);\n }\n }\n else\n Dq(b, g, (f + e - g) | 0, f, f, 0, e, d);\n V = k;\n return b | 0;\n }\n function Fq(a, b) {\n a = a | 0;\n b = b | 0;\n return Eq(a, b, lb(b) | 0) | 0;\n }\n function Gq(a, b, c) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n if (!c)\n a = 0;\n else\n a = Fo(a, b, c) | 0;\n return a | 0;\n }\n function Hq(b, d, e, f, g) {\n b = b | 0;\n d = d | 0;\n e = e | 0;\n f = f | 0;\n g = g | 0;\n var h = 0, i = 0;\n h = a[(b + 11) >> 0] | 0;\n i = (h << 24) >> 24 < 0;\n if (i)\n h = c[(b + 4) >> 2] | 0;\n else\n h = h & 255;\n if (((g | 0) == -1) | (h >>> 0 < d >>> 0))\n zq(b);\n h = (h - d) | 0;\n e = h >>> 0 < e >>> 0 ? h : e;\n if (i)\n b = c[b >> 2] | 0;\n h = e >>> 0 > g >>> 0;\n b = Gq((b + d) | 0, f, h ? g : e) | 0;\n if (!b)\n return (e >>> 0 < g >>> 0 ? -1 : h & 1) | 0;\n else\n return b | 0;\n return 0;\n }\n function Iq(a) {\n a = a | 0;\n return;\n }\n function Jq(a) {\n a = a | 0;\n jp(a);\n return;\n }\n function Kq(a) {\n a = a | 0;\n return 21228;\n }\n function Lq(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n c[a >> 2] = d;\n c[(a + 4) >> 2] = b;\n return;\n }\n function Mq(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0;\n f = V;\n V = (V + 16) | 0;\n e = f;\n ea[c[((c[a >> 2] | 0) + 12) >> 2] & 15](e, a, b);\n if ((c[(e + 4) >> 2] | 0) == (c[(d + 4) >> 2] | 0))\n a = (c[e >> 2] | 0) == (c[d >> 2] | 0);\n else\n a = 0;\n V = f;\n return a | 0;\n }\n function Nq(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n return ((c[b >> 2] | 0) == (d | 0) ? (c[(b + 4) >> 2] | 0) == (a | 0) : 0) | 0;\n }\n function Oq(a, b, c) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n if ((c | 0) > 256)\n Aq(a, 21176, lb(21176) | 0);\n else\n Pq(a, 0, c);\n return;\n }\n function Pq(a, b, c) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n Qq(a, c);\n return;\n }\n function Qq(b, d) {\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0, g = 0, h = 0, i = 0;\n i = V;\n V = (V + 1040) | 0;\n g = (i + 1024) | 0;\n e = i;\n h = c[(ao() | 0) >> 2] | 0;\n f = Rq(Oo(d, e, 1024) | 0, e) | 0;\n if (!(a[f >> 0] | 0)) {\n c[g >> 2] = d;\n Go(e, 1024, 21211, g) | 0;\n }\n else\n e = f;\n c[(ao() | 0) >> 2] = h;\n Aq(b, e, lb(e) | 0);\n V = i;\n return;\n }\n function Rq(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0;\n switch (a | 0) {\n case 0: {\n d = b;\n break;\n }\n case -1: {\n a = c[(ao() | 0) >> 2] | 0;\n e = 3;\n break;\n }\n default:\n e = 3;\n }\n if ((e | 0) == 3)\n if ((a | 0) == 28)\n d = 22145;\n else\n P();\n return d | 0;\n }\n function Sq(a) {\n a = a | 0;\n jp(a);\n return;\n }\n function Tq(a) {\n a = a | 0;\n return 21353;\n }\n function Uq(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n if ((d | 0) > 256) {\n Wq() | 0;\n b = 6180;\n }\n else {\n Xq() | 0;\n b = 6176;\n }\n c[a >> 2] = d;\n c[(a + 4) >> 2] = b;\n return;\n }\n function Vq(a, b, c) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n if ((c | 0) > 256)\n Aq(a, 21319, lb(21319) | 0);\n else\n Pq(a, 0, c);\n return;\n }\n function Wq() {\n if ((a[21488] | 0) == 0 ? Tp(21488) | 0 : 0)\n $p(21488);\n return 6180;\n }\n function Xq() {\n if ((a[21480] | 0) == 0 ? Tp(21480) | 0 : 0)\n $p(21480);\n return 6176;\n }\n function Yq(a) {\n a = a | 0;\n yp(a);\n return;\n }\n function Zq(a) {\n a = a | 0;\n Yq(a);\n jp(a);\n return;\n }\n function _q(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0;\n d = c[(b + 4) >> 2] | 0;\n ea[c[((c[d >> 2] | 0) + 24) >> 2] & 15](a, d, c[b >> 2] | 0);\n return;\n }\n function $q(b, d, e) {\n b = b | 0;\n d = d | 0;\n e = e | 0;\n var f = 0, g = 0, h = 0;\n h = V;\n V = (V + 16) | 0;\n g = h;\n if (c[d >> 2] | 0) {\n f = a[(e + 11) >> 0] | 0;\n if ((f << 24) >> 24 < 0)\n f = c[(e + 4) >> 2] | 0;\n else\n f = f & 255;\n if (f | 0)\n Fq(e, 21417) | 0;\n _q(g, d);\n d = a[(g + 11) >> 0] | 0;\n f = (d << 24) >> 24 < 0;\n Eq(e, f ? c[g >> 2] | 0 : g, f ? c[(g + 4) >> 2] | 0 : d & 255) | 0;\n Cq(g);\n }\n c[b >> 2] = c[e >> 2];\n c[(b + 4) >> 2] = c[(e + 4) >> 2];\n c[(b + 8) >> 2] = c[(e + 8) >> 2];\n f = 0;\n while (1) {\n if ((f | 0) == 3)\n break;\n c[(e + (f << 2)) >> 2] = 0;\n f = (f + 1) | 0;\n }\n V = h;\n return;\n }\n function ar(a, b, d) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n var e = 0, f = 0, g = 0;\n e = V;\n V = (V + 32) | 0;\n g = (e + 12) | 0;\n f = e;\n Aq(f, d, lb(d) | 0);\n $q(g, b, f);\n wq(a, g);\n Cq(g);\n Cq(f);\n c[a >> 2] = 6192;\n f = b;\n b = c[(f + 4) >> 2] | 0;\n d = (a + 8) | 0;\n c[d >> 2] = c[f >> 2];\n c[(d + 4) >> 2] = b;\n V = e;\n return;\n }\n function br(a, b) {\n a = a | 0;\n b = b | 0;\n var d = 0, e = 0, f = 0;\n f = V;\n V = (V + 16) | 0;\n e = (f + 8) | 0;\n d = v(16) | 0;\n Wq() | 0;\n c[f >> 2] = a;\n c[(f + 4) >> 2] = 6180;\n c[e >> 2] = c[f >> 2];\n c[(e + 4) >> 2] = c[(f + 4) >> 2];\n ar(d, e, b);\n x(d | 0, 4272, 136);\n }\n function cr(a) {\n a = a | 0;\n a = v(8) | 0;\n vq(a, 21420);\n c[a >> 2] = 5956;\n x(a | 0, 3928, 123);\n }\n function dr(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0;\n w = V;\n V = (V + 16) | 0;\n n = w;\n do\n if (a >>> 0 < 245) {\n k = a >>> 0 < 11 ? 16 : (a + 11) & -8;\n a = k >>> 3;\n m = c[5412] | 0;\n d = m >>> a;\n if ((d & 3) | 0) {\n b = (((d & 1) ^ 1) + a) | 0;\n a = (21688 + ((b << 1) << 2)) | 0;\n d = (a + 8) | 0;\n e = c[d >> 2] | 0;\n f = (e + 8) | 0;\n g = c[f >> 2] | 0;\n if ((g | 0) == (a | 0))\n c[5412] = m & ~(1 << b);\n else {\n c[(g + 12) >> 2] = a;\n c[d >> 2] = g;\n }\n v = b << 3;\n c[(e + 4) >> 2] = v | 3;\n v = (e + v + 4) | 0;\n c[v >> 2] = c[v >> 2] | 1;\n v = f;\n V = w;\n return v | 0;\n }\n l = c[5414] | 0;\n if (k >>> 0 > l >>> 0) {\n if (d | 0) {\n b = 2 << a;\n b = (d << a) & (b | (0 - b));\n b = ((b & (0 - b)) + -1) | 0;\n i = (b >>> 12) & 16;\n b = b >>> i;\n d = (b >>> 5) & 8;\n b = b >>> d;\n g = (b >>> 2) & 4;\n b = b >>> g;\n a = (b >>> 1) & 2;\n b = b >>> a;\n e = (b >>> 1) & 1;\n e = ((d | i | g | a | e) + (b >>> e)) | 0;\n b = (21688 + ((e << 1) << 2)) | 0;\n a = (b + 8) | 0;\n g = c[a >> 2] | 0;\n i = (g + 8) | 0;\n d = c[i >> 2] | 0;\n if ((d | 0) == (b | 0)) {\n a = m & ~(1 << e);\n c[5412] = a;\n }\n else {\n c[(d + 12) >> 2] = b;\n c[a >> 2] = d;\n a = m;\n }\n v = e << 3;\n h = (v - k) | 0;\n c[(g + 4) >> 2] = k | 3;\n f = (g + k) | 0;\n c[(f + 4) >> 2] = h | 1;\n c[(g + v) >> 2] = h;\n if (l | 0) {\n e = c[5417] | 0;\n b = l >>> 3;\n d = (21688 + ((b << 1) << 2)) | 0;\n b = 1 << b;\n if (!(a & b)) {\n c[5412] = a | b;\n b = d;\n a = (d + 8) | 0;\n }\n else {\n a = (d + 8) | 0;\n b = c[a >> 2] | 0;\n }\n c[a >> 2] = e;\n c[(b + 12) >> 2] = e;\n c[(e + 8) >> 2] = b;\n c[(e + 12) >> 2] = d;\n }\n c[5414] = h;\n c[5417] = f;\n v = i;\n V = w;\n return v | 0;\n }\n g = c[5413] | 0;\n if (g) {\n d = ((g & (0 - g)) + -1) | 0;\n f = (d >>> 12) & 16;\n d = d >>> f;\n e = (d >>> 5) & 8;\n d = d >>> e;\n h = (d >>> 2) & 4;\n d = d >>> h;\n i = (d >>> 1) & 2;\n d = d >>> i;\n j = (d >>> 1) & 1;\n j = c[(21952 + (((e | f | h | i | j) + (d >>> j)) << 2)) >> 2] | 0;\n d = j;\n i = j;\n j = ((c[(j + 4) >> 2] & -8) - k) | 0;\n while (1) {\n a = c[(d + 16) >> 2] | 0;\n if (!a) {\n a = c[(d + 20) >> 2] | 0;\n if (!a)\n break;\n }\n h = ((c[(a + 4) >> 2] & -8) - k) | 0;\n f = h >>> 0 < j >>> 0;\n d = a;\n i = f ? a : i;\n j = f ? h : j;\n }\n h = (i + k) | 0;\n if (h >>> 0 > i >>> 0) {\n f = c[(i + 24) >> 2] | 0;\n b = c[(i + 12) >> 2] | 0;\n do\n if ((b | 0) == (i | 0)) {\n a = (i + 20) | 0;\n b = c[a >> 2] | 0;\n if (!b) {\n a = (i + 16) | 0;\n b = c[a >> 2] | 0;\n if (!b) {\n d = 0;\n break;\n }\n }\n while (1) {\n e = (b + 20) | 0;\n d = c[e >> 2] | 0;\n if (!d) {\n e = (b + 16) | 0;\n d = c[e >> 2] | 0;\n if (!d)\n break;\n else {\n b = d;\n a = e;\n }\n }\n else {\n b = d;\n a = e;\n }\n }\n c[a >> 2] = 0;\n d = b;\n }\n else {\n d = c[(i + 8) >> 2] | 0;\n c[(d + 12) >> 2] = b;\n c[(b + 8) >> 2] = d;\n d = b;\n }\n while (0);\n do\n if (f | 0) {\n b = c[(i + 28) >> 2] | 0;\n a = (21952 + (b << 2)) | 0;\n if ((i | 0) == (c[a >> 2] | 0)) {\n c[a >> 2] = d;\n if (!d) {\n c[5413] = g & ~(1 << b);\n break;\n }\n }\n else {\n v = (f + 16) | 0;\n c[((c[v >> 2] | 0) == (i | 0) ? v : (f + 20) | 0) >> 2] = d;\n if (!d)\n break;\n }\n c[(d + 24) >> 2] = f;\n b = c[(i + 16) >> 2] | 0;\n if (b | 0) {\n c[(d + 16) >> 2] = b;\n c[(b + 24) >> 2] = d;\n }\n b = c[(i + 20) >> 2] | 0;\n if (b | 0) {\n c[(d + 20) >> 2] = b;\n c[(b + 24) >> 2] = d;\n }\n }\n while (0);\n if (j >>> 0 < 16) {\n v = (j + k) | 0;\n c[(i + 4) >> 2] = v | 3;\n v = (i + v + 4) | 0;\n c[v >> 2] = c[v >> 2] | 1;\n }\n else {\n c[(i + 4) >> 2] = k | 3;\n c[(h + 4) >> 2] = j | 1;\n c[(h + j) >> 2] = j;\n if (l | 0) {\n e = c[5417] | 0;\n b = l >>> 3;\n d = (21688 + ((b << 1) << 2)) | 0;\n b = 1 << b;\n if (!(b & m)) {\n c[5412] = b | m;\n b = d;\n a = (d + 8) | 0;\n }\n else {\n a = (d + 8) | 0;\n b = c[a >> 2] | 0;\n }\n c[a >> 2] = e;\n c[(b + 12) >> 2] = e;\n c[(e + 8) >> 2] = b;\n c[(e + 12) >> 2] = d;\n }\n c[5414] = j;\n c[5417] = h;\n }\n v = (i + 8) | 0;\n V = w;\n return v | 0;\n }\n else\n m = k;\n }\n else\n m = k;\n }\n else\n m = k;\n }\n else if (a >>> 0 <= 4294967231) {\n a = (a + 11) | 0;\n k = a & -8;\n e = c[5413] | 0;\n if (e) {\n f = (0 - k) | 0;\n a = a >>> 8;\n if (a)\n if (k >>> 0 > 16777215)\n j = 31;\n else {\n m = (((a + 1048320) | 0) >>> 16) & 8;\n q = a << m;\n i = (((q + 520192) | 0) >>> 16) & 4;\n q = q << i;\n j = (((q + 245760) | 0) >>> 16) & 2;\n j = (14 - (i | m | j) + ((q << j) >>> 15)) | 0;\n j = ((k >>> ((j + 7) | 0)) & 1) | (j << 1);\n }\n else\n j = 0;\n d = c[(21952 + (j << 2)) >> 2] | 0;\n a: do\n if (!d) {\n d = 0;\n a = 0;\n q = 61;\n }\n else {\n a = 0;\n i = k << ((j | 0) == 31 ? 0 : (25 - (j >>> 1)) | 0);\n g = 0;\n while (1) {\n h = ((c[(d + 4) >> 2] & -8) - k) | 0;\n if (h >>> 0 < f >>> 0)\n if (!h) {\n a = d;\n f = 0;\n q = 65;\n break a;\n }\n else {\n a = d;\n f = h;\n }\n q = c[(d + 20) >> 2] | 0;\n d = c[(d + 16 + ((i >>> 31) << 2)) >> 2] | 0;\n g = ((q | 0) == 0) | ((q | 0) == (d | 0)) ? g : q;\n if (!d) {\n d = g;\n q = 61;\n break;\n }\n else\n i = i << 1;\n }\n }\n while (0);\n if ((q | 0) == 61) {\n if (((d | 0) == 0) & ((a | 0) == 0)) {\n a = 2 << j;\n a = (a | (0 - a)) & e;\n if (!a) {\n m = k;\n break;\n }\n m = ((a & (0 - a)) + -1) | 0;\n h = (m >>> 12) & 16;\n m = m >>> h;\n g = (m >>> 5) & 8;\n m = m >>> g;\n i = (m >>> 2) & 4;\n m = m >>> i;\n j = (m >>> 1) & 2;\n m = m >>> j;\n d = (m >>> 1) & 1;\n a = 0;\n d = c[(21952 + (((g | h | i | j | d) + (m >>> d)) << 2)) >> 2] | 0;\n }\n if (!d) {\n i = a;\n h = f;\n }\n else\n q = 65;\n }\n if ((q | 0) == 65) {\n g = d;\n while (1) {\n m = ((c[(g + 4) >> 2] & -8) - k) | 0;\n d = m >>> 0 < f >>> 0;\n f = d ? m : f;\n a = d ? g : a;\n d = c[(g + 16) >> 2] | 0;\n if (!d)\n d = c[(g + 20) >> 2] | 0;\n if (!d) {\n i = a;\n h = f;\n break;\n }\n else\n g = d;\n }\n }\n if (((i | 0) != 0 ? h >>> 0 < (((c[5414] | 0) - k) | 0) >>> 0 : 0)\n ? ((l = (i + k) | 0), l >>> 0 > i >>> 0)\n : 0) {\n g = c[(i + 24) >> 2] | 0;\n b = c[(i + 12) >> 2] | 0;\n do\n if ((b | 0) == (i | 0)) {\n a = (i + 20) | 0;\n b = c[a >> 2] | 0;\n if (!b) {\n a = (i + 16) | 0;\n b = c[a >> 2] | 0;\n if (!b) {\n b = 0;\n break;\n }\n }\n while (1) {\n f = (b + 20) | 0;\n d = c[f >> 2] | 0;\n if (!d) {\n f = (b + 16) | 0;\n d = c[f >> 2] | 0;\n if (!d)\n break;\n else {\n b = d;\n a = f;\n }\n }\n else {\n b = d;\n a = f;\n }\n }\n c[a >> 2] = 0;\n }\n else {\n v = c[(i + 8) >> 2] | 0;\n c[(v + 12) >> 2] = b;\n c[(b + 8) >> 2] = v;\n }\n while (0);\n do\n if (g) {\n a = c[(i + 28) >> 2] | 0;\n d = (21952 + (a << 2)) | 0;\n if ((i | 0) == (c[d >> 2] | 0)) {\n c[d >> 2] = b;\n if (!b) {\n e = e & ~(1 << a);\n c[5413] = e;\n break;\n }\n }\n else {\n v = (g + 16) | 0;\n c[((c[v >> 2] | 0) == (i | 0) ? v : (g + 20) | 0) >> 2] = b;\n if (!b)\n break;\n }\n c[(b + 24) >> 2] = g;\n a = c[(i + 16) >> 2] | 0;\n if (a | 0) {\n c[(b + 16) >> 2] = a;\n c[(a + 24) >> 2] = b;\n }\n a = c[(i + 20) >> 2] | 0;\n if (a) {\n c[(b + 20) >> 2] = a;\n c[(a + 24) >> 2] = b;\n }\n }\n while (0);\n b: do\n if (h >>> 0 < 16) {\n v = (h + k) | 0;\n c[(i + 4) >> 2] = v | 3;\n v = (i + v + 4) | 0;\n c[v >> 2] = c[v >> 2] | 1;\n }\n else {\n c[(i + 4) >> 2] = k | 3;\n c[(l + 4) >> 2] = h | 1;\n c[(l + h) >> 2] = h;\n b = h >>> 3;\n if (h >>> 0 < 256) {\n d = (21688 + ((b << 1) << 2)) | 0;\n a = c[5412] | 0;\n b = 1 << b;\n if (!(a & b)) {\n c[5412] = a | b;\n b = d;\n a = (d + 8) | 0;\n }\n else {\n a = (d + 8) | 0;\n b = c[a >> 2] | 0;\n }\n c[a >> 2] = l;\n c[(b + 12) >> 2] = l;\n c[(l + 8) >> 2] = b;\n c[(l + 12) >> 2] = d;\n break;\n }\n b = h >>> 8;\n if (b)\n if (h >>> 0 > 16777215)\n d = 31;\n else {\n u = (((b + 1048320) | 0) >>> 16) & 8;\n v = b << u;\n t = (((v + 520192) | 0) >>> 16) & 4;\n v = v << t;\n d = (((v + 245760) | 0) >>> 16) & 2;\n d = (14 - (t | u | d) + ((v << d) >>> 15)) | 0;\n d = ((h >>> ((d + 7) | 0)) & 1) | (d << 1);\n }\n else\n d = 0;\n b = (21952 + (d << 2)) | 0;\n c[(l + 28) >> 2] = d;\n a = (l + 16) | 0;\n c[(a + 4) >> 2] = 0;\n c[a >> 2] = 0;\n a = 1 << d;\n if (!(e & a)) {\n c[5413] = e | a;\n c[b >> 2] = l;\n c[(l + 24) >> 2] = b;\n c[(l + 12) >> 2] = l;\n c[(l + 8) >> 2] = l;\n break;\n }\n b = c[b >> 2] | 0;\n c: do\n if (((c[(b + 4) >> 2] & -8) | 0) != (h | 0)) {\n e = h << ((d | 0) == 31 ? 0 : (25 - (d >>> 1)) | 0);\n while (1) {\n d = (b + 16 + ((e >>> 31) << 2)) | 0;\n a = c[d >> 2] | 0;\n if (!a)\n break;\n if (((c[(a + 4) >> 2] & -8) | 0) == (h | 0)) {\n b = a;\n break c;\n }\n else {\n e = e << 1;\n b = a;\n }\n }\n c[d >> 2] = l;\n c[(l + 24) >> 2] = b;\n c[(l + 12) >> 2] = l;\n c[(l + 8) >> 2] = l;\n break b;\n }\n while (0);\n u = (b + 8) | 0;\n v = c[u >> 2] | 0;\n c[(v + 12) >> 2] = l;\n c[u >> 2] = l;\n c[(l + 8) >> 2] = v;\n c[(l + 12) >> 2] = b;\n c[(l + 24) >> 2] = 0;\n }\n while (0);\n v = (i + 8) | 0;\n V = w;\n return v | 0;\n }\n else\n m = k;\n }\n else\n m = k;\n }\n else\n m = -1;\n while (0);\n d = c[5414] | 0;\n if (d >>> 0 >= m >>> 0) {\n b = (d - m) | 0;\n a = c[5417] | 0;\n if (b >>> 0 > 15) {\n v = (a + m) | 0;\n c[5417] = v;\n c[5414] = b;\n c[(v + 4) >> 2] = b | 1;\n c[(a + d) >> 2] = b;\n c[(a + 4) >> 2] = m | 3;\n }\n else {\n c[5414] = 0;\n c[5417] = 0;\n c[(a + 4) >> 2] = d | 3;\n v = (a + d + 4) | 0;\n c[v >> 2] = c[v >> 2] | 1;\n }\n v = (a + 8) | 0;\n V = w;\n return v | 0;\n }\n h = c[5415] | 0;\n if (h >>> 0 > m >>> 0) {\n t = (h - m) | 0;\n c[5415] = t;\n v = c[5418] | 0;\n u = (v + m) | 0;\n c[5418] = u;\n c[(u + 4) >> 2] = t | 1;\n c[(v + 4) >> 2] = m | 3;\n v = (v + 8) | 0;\n V = w;\n return v | 0;\n }\n if (!(c[5530] | 0)) {\n c[5532] = 4096;\n c[5531] = 4096;\n c[5533] = -1;\n c[5534] = -1;\n c[5535] = 0;\n c[5523] = 0;\n c[5530] = (n & -16) ^ 1431655768;\n a = 4096;\n }\n else\n a = c[5532] | 0;\n i = (m + 48) | 0;\n j = (m + 47) | 0;\n g = (a + j) | 0;\n f = (0 - a) | 0;\n k = g & f;\n if (k >>> 0 <= m >>> 0) {\n v = 0;\n V = w;\n return v | 0;\n }\n a = c[5522] | 0;\n if (a | 0\n ? ((l = c[5520] | 0), (n = (l + k) | 0), (n >>> 0 <= l >>> 0) | (n >>> 0 > a >>> 0))\n : 0) {\n v = 0;\n V = w;\n return v | 0;\n }\n d: do\n if (!(c[5523] & 4)) {\n d = c[5418] | 0;\n e: do\n if (d) {\n e = 22096;\n while (1) {\n n = c[e >> 2] | 0;\n if (n >>> 0 <= d >>> 0 ? ((n + (c[(e + 4) >> 2] | 0)) | 0) >>> 0 > d >>> 0 : 0)\n break;\n a = c[(e + 8) >> 2] | 0;\n if (!a) {\n q = 128;\n break e;\n }\n else\n e = a;\n }\n b = (g - h) & f;\n if (b >>> 0 < 2147483647) {\n a = fr(b) | 0;\n if ((a | 0) == (((c[e >> 2] | 0) + (c[(e + 4) >> 2] | 0)) | 0)) {\n if ((a | 0) != (-1 | 0)) {\n h = b;\n g = a;\n q = 145;\n break d;\n }\n }\n else {\n e = a;\n q = 136;\n }\n }\n else\n b = 0;\n }\n else\n q = 128;\n while (0);\n do\n if ((q | 0) == 128) {\n d = fr(0) | 0;\n if ((d | 0) != (-1 | 0)\n ? ((b = d),\n (o = c[5531] | 0),\n (p = (o + -1) | 0),\n (b = ((((p & b) | 0) == 0 ? 0 : (((p + b) & (0 - o)) - b) | 0) + k) | 0),\n (o = c[5520] | 0),\n (p = (b + o) | 0),\n (b >>> 0 > m >>> 0) & (b >>> 0 < 2147483647))\n : 0) {\n n = c[5522] | 0;\n if (n | 0 ? (p >>> 0 <= o >>> 0) | (p >>> 0 > n >>> 0) : 0) {\n b = 0;\n break;\n }\n a = fr(b) | 0;\n if ((a | 0) == (d | 0)) {\n h = b;\n g = d;\n q = 145;\n break d;\n }\n else {\n e = a;\n q = 136;\n }\n }\n else\n b = 0;\n }\n while (0);\n do\n if ((q | 0) == 136) {\n d = (0 - b) | 0;\n if (!((i >>> 0 > b >>> 0) & ((b >>> 0 < 2147483647) & ((e | 0) != (-1 | 0)))))\n if ((e | 0) == (-1 | 0)) {\n b = 0;\n break;\n }\n else {\n h = b;\n g = e;\n q = 145;\n break d;\n }\n a = c[5532] | 0;\n a = (j - b + a) & (0 - a);\n if (a >>> 0 >= 2147483647) {\n h = b;\n g = e;\n q = 145;\n break d;\n }\n if ((fr(a) | 0) == (-1 | 0)) {\n fr(d) | 0;\n b = 0;\n break;\n }\n else {\n h = (a + b) | 0;\n g = e;\n q = 145;\n break d;\n }\n }\n while (0);\n c[5523] = c[5523] | 4;\n q = 143;\n }\n else {\n b = 0;\n q = 143;\n }\n while (0);\n if (((q | 0) == 143 ? k >>> 0 < 2147483647 : 0)\n ? ((t = fr(k) | 0),\n (p = fr(0) | 0),\n (r = (p - t) | 0),\n (s = r >>> 0 > ((m + 40) | 0) >>> 0),\n !(((t | 0) == (-1 | 0)) |\n (s ^ 1) |\n (((t >>> 0 < p >>> 0) & (((t | 0) != (-1 | 0)) & ((p | 0) != (-1 | 0)))) ^ 1)))\n : 0) {\n h = s ? r : b;\n g = t;\n q = 145;\n }\n if ((q | 0) == 145) {\n b = ((c[5520] | 0) + h) | 0;\n c[5520] = b;\n if (b >>> 0 > (c[5521] | 0) >>> 0)\n c[5521] = b;\n j = c[5418] | 0;\n f: do\n if (j) {\n b = 22096;\n while (1) {\n a = c[b >> 2] | 0;\n d = c[(b + 4) >> 2] | 0;\n if ((g | 0) == ((a + d) | 0)) {\n q = 154;\n break;\n }\n e = c[(b + 8) >> 2] | 0;\n if (!e)\n break;\n else\n b = e;\n }\n if (((q | 0) == 154 ? ((u = (b + 4) | 0), ((c[(b + 12) >> 2] & 8) | 0) == 0) : 0)\n ? (g >>> 0 > j >>> 0) & (a >>> 0 <= j >>> 0)\n : 0) {\n c[u >> 2] = d + h;\n v = ((c[5415] | 0) + h) | 0;\n t = (j + 8) | 0;\n t = ((t & 7) | 0) == 0 ? 0 : (0 - t) & 7;\n u = (j + t) | 0;\n t = (v - t) | 0;\n c[5418] = u;\n c[5415] = t;\n c[(u + 4) >> 2] = t | 1;\n c[(j + v + 4) >> 2] = 40;\n c[5419] = c[5534];\n break;\n }\n if (g >>> 0 < (c[5416] | 0) >>> 0)\n c[5416] = g;\n d = (g + h) | 0;\n b = 22096;\n while (1) {\n if ((c[b >> 2] | 0) == (d | 0)) {\n q = 162;\n break;\n }\n a = c[(b + 8) >> 2] | 0;\n if (!a)\n break;\n else\n b = a;\n }\n if ((q | 0) == 162 ? ((c[(b + 12) >> 2] & 8) | 0) == 0 : 0) {\n c[b >> 2] = g;\n l = (b + 4) | 0;\n c[l >> 2] = (c[l >> 2] | 0) + h;\n l = (g + 8) | 0;\n l = (g + (((l & 7) | 0) == 0 ? 0 : (0 - l) & 7)) | 0;\n b = (d + 8) | 0;\n b = (d + (((b & 7) | 0) == 0 ? 0 : (0 - b) & 7)) | 0;\n k = (l + m) | 0;\n i = (b - l - m) | 0;\n c[(l + 4) >> 2] = m | 3;\n g: do\n if ((j | 0) == (b | 0)) {\n v = ((c[5415] | 0) + i) | 0;\n c[5415] = v;\n c[5418] = k;\n c[(k + 4) >> 2] = v | 1;\n }\n else {\n if ((c[5417] | 0) == (b | 0)) {\n v = ((c[5414] | 0) + i) | 0;\n c[5414] = v;\n c[5417] = k;\n c[(k + 4) >> 2] = v | 1;\n c[(k + v) >> 2] = v;\n break;\n }\n a = c[(b + 4) >> 2] | 0;\n if (((a & 3) | 0) == 1) {\n h = a & -8;\n e = a >>> 3;\n h: do\n if (a >>> 0 < 256) {\n a = c[(b + 8) >> 2] | 0;\n d = c[(b + 12) >> 2] | 0;\n if ((d | 0) == (a | 0)) {\n c[5412] = c[5412] & ~(1 << e);\n break;\n }\n else {\n c[(a + 12) >> 2] = d;\n c[(d + 8) >> 2] = a;\n break;\n }\n }\n else {\n g = c[(b + 24) >> 2] | 0;\n a = c[(b + 12) >> 2] | 0;\n do\n if ((a | 0) == (b | 0)) {\n d = (b + 16) | 0;\n e = (d + 4) | 0;\n a = c[e >> 2] | 0;\n if (!a) {\n a = c[d >> 2] | 0;\n if (!a) {\n a = 0;\n break;\n }\n }\n else\n d = e;\n while (1) {\n f = (a + 20) | 0;\n e = c[f >> 2] | 0;\n if (!e) {\n f = (a + 16) | 0;\n e = c[f >> 2] | 0;\n if (!e)\n break;\n else {\n a = e;\n d = f;\n }\n }\n else {\n a = e;\n d = f;\n }\n }\n c[d >> 2] = 0;\n }\n else {\n v = c[(b + 8) >> 2] | 0;\n c[(v + 12) >> 2] = a;\n c[(a + 8) >> 2] = v;\n }\n while (0);\n if (!g)\n break;\n d = c[(b + 28) >> 2] | 0;\n e = (21952 + (d << 2)) | 0;\n do\n if ((c[e >> 2] | 0) != (b | 0)) {\n v = (g + 16) | 0;\n c[((c[v >> 2] | 0) == (b | 0) ? v : (g + 20) | 0) >> 2] = a;\n if (!a)\n break h;\n }\n else {\n c[e >> 2] = a;\n if (a | 0)\n break;\n c[5413] = c[5413] & ~(1 << d);\n break h;\n }\n while (0);\n c[(a + 24) >> 2] = g;\n d = (b + 16) | 0;\n e = c[d >> 2] | 0;\n if (e | 0) {\n c[(a + 16) >> 2] = e;\n c[(e + 24) >> 2] = a;\n }\n d = c[(d + 4) >> 2] | 0;\n if (!d)\n break;\n c[(a + 20) >> 2] = d;\n c[(d + 24) >> 2] = a;\n }\n while (0);\n b = (b + h) | 0;\n f = (h + i) | 0;\n }\n else\n f = i;\n b = (b + 4) | 0;\n c[b >> 2] = c[b >> 2] & -2;\n c[(k + 4) >> 2] = f | 1;\n c[(k + f) >> 2] = f;\n b = f >>> 3;\n if (f >>> 0 < 256) {\n d = (21688 + ((b << 1) << 2)) | 0;\n a = c[5412] | 0;\n b = 1 << b;\n if (!(a & b)) {\n c[5412] = a | b;\n b = d;\n a = (d + 8) | 0;\n }\n else {\n a = (d + 8) | 0;\n b = c[a >> 2] | 0;\n }\n c[a >> 2] = k;\n c[(b + 12) >> 2] = k;\n c[(k + 8) >> 2] = b;\n c[(k + 12) >> 2] = d;\n break;\n }\n b = f >>> 8;\n do\n if (!b)\n e = 0;\n else {\n if (f >>> 0 > 16777215) {\n e = 31;\n break;\n }\n u = (((b + 1048320) | 0) >>> 16) & 8;\n v = b << u;\n t = (((v + 520192) | 0) >>> 16) & 4;\n v = v << t;\n e = (((v + 245760) | 0) >>> 16) & 2;\n e = (14 - (t | u | e) + ((v << e) >>> 15)) | 0;\n e = ((f >>> ((e + 7) | 0)) & 1) | (e << 1);\n }\n while (0);\n b = (21952 + (e << 2)) | 0;\n c[(k + 28) >> 2] = e;\n a = (k + 16) | 0;\n c[(a + 4) >> 2] = 0;\n c[a >> 2] = 0;\n a = c[5413] | 0;\n d = 1 << e;\n if (!(a & d)) {\n c[5413] = a | d;\n c[b >> 2] = k;\n c[(k + 24) >> 2] = b;\n c[(k + 12) >> 2] = k;\n c[(k + 8) >> 2] = k;\n break;\n }\n b = c[b >> 2] | 0;\n i: do\n if (((c[(b + 4) >> 2] & -8) | 0) != (f | 0)) {\n e = f << ((e | 0) == 31 ? 0 : (25 - (e >>> 1)) | 0);\n while (1) {\n d = (b + 16 + ((e >>> 31) << 2)) | 0;\n a = c[d >> 2] | 0;\n if (!a)\n break;\n if (((c[(a + 4) >> 2] & -8) | 0) == (f | 0)) {\n b = a;\n break i;\n }\n else {\n e = e << 1;\n b = a;\n }\n }\n c[d >> 2] = k;\n c[(k + 24) >> 2] = b;\n c[(k + 12) >> 2] = k;\n c[(k + 8) >> 2] = k;\n break g;\n }\n while (0);\n u = (b + 8) | 0;\n v = c[u >> 2] | 0;\n c[(v + 12) >> 2] = k;\n c[u >> 2] = k;\n c[(k + 8) >> 2] = v;\n c[(k + 12) >> 2] = b;\n c[(k + 24) >> 2] = 0;\n }\n while (0);\n v = (l + 8) | 0;\n V = w;\n return v | 0;\n }\n b = 22096;\n while (1) {\n a = c[b >> 2] | 0;\n if (a >>> 0 <= j >>> 0 ? ((v = (a + (c[(b + 4) >> 2] | 0)) | 0), v >>> 0 > j >>> 0) : 0)\n break;\n b = c[(b + 8) >> 2] | 0;\n }\n f = (v + -47) | 0;\n a = (f + 8) | 0;\n a = (f + (((a & 7) | 0) == 0 ? 0 : (0 - a) & 7)) | 0;\n f = (j + 16) | 0;\n a = a >>> 0 < f >>> 0 ? j : a;\n b = (a + 8) | 0;\n d = (h + -40) | 0;\n t = (g + 8) | 0;\n t = ((t & 7) | 0) == 0 ? 0 : (0 - t) & 7;\n u = (g + t) | 0;\n t = (d - t) | 0;\n c[5418] = u;\n c[5415] = t;\n c[(u + 4) >> 2] = t | 1;\n c[(g + d + 4) >> 2] = 40;\n c[5419] = c[5534];\n d = (a + 4) | 0;\n c[d >> 2] = 27;\n c[b >> 2] = c[5524];\n c[(b + 4) >> 2] = c[5525];\n c[(b + 8) >> 2] = c[5526];\n c[(b + 12) >> 2] = c[5527];\n c[5524] = g;\n c[5525] = h;\n c[5527] = 0;\n c[5526] = b;\n b = (a + 24) | 0;\n do {\n u = b;\n b = (b + 4) | 0;\n c[b >> 2] = 7;\n } while (((u + 8) | 0) >>> 0 < v >>> 0);\n if ((a | 0) != (j | 0)) {\n g = (a - j) | 0;\n c[d >> 2] = c[d >> 2] & -2;\n c[(j + 4) >> 2] = g | 1;\n c[a >> 2] = g;\n b = g >>> 3;\n if (g >>> 0 < 256) {\n d = (21688 + ((b << 1) << 2)) | 0;\n a = c[5412] | 0;\n b = 1 << b;\n if (!(a & b)) {\n c[5412] = a | b;\n b = d;\n a = (d + 8) | 0;\n }\n else {\n a = (d + 8) | 0;\n b = c[a >> 2] | 0;\n }\n c[a >> 2] = j;\n c[(b + 12) >> 2] = j;\n c[(j + 8) >> 2] = b;\n c[(j + 12) >> 2] = d;\n break;\n }\n b = g >>> 8;\n if (b)\n if (g >>> 0 > 16777215)\n e = 31;\n else {\n u = (((b + 1048320) | 0) >>> 16) & 8;\n v = b << u;\n t = (((v + 520192) | 0) >>> 16) & 4;\n v = v << t;\n e = (((v + 245760) | 0) >>> 16) & 2;\n e = (14 - (t | u | e) + ((v << e) >>> 15)) | 0;\n e = ((g >>> ((e + 7) | 0)) & 1) | (e << 1);\n }\n else\n e = 0;\n d = (21952 + (e << 2)) | 0;\n c[(j + 28) >> 2] = e;\n c[(j + 20) >> 2] = 0;\n c[f >> 2] = 0;\n b = c[5413] | 0;\n a = 1 << e;\n if (!(b & a)) {\n c[5413] = b | a;\n c[d >> 2] = j;\n c[(j + 24) >> 2] = d;\n c[(j + 12) >> 2] = j;\n c[(j + 8) >> 2] = j;\n break;\n }\n b = c[d >> 2] | 0;\n j: do\n if (((c[(b + 4) >> 2] & -8) | 0) != (g | 0)) {\n e = g << ((e | 0) == 31 ? 0 : (25 - (e >>> 1)) | 0);\n while (1) {\n d = (b + 16 + ((e >>> 31) << 2)) | 0;\n a = c[d >> 2] | 0;\n if (!a)\n break;\n if (((c[(a + 4) >> 2] & -8) | 0) == (g | 0)) {\n b = a;\n break j;\n }\n else {\n e = e << 1;\n b = a;\n }\n }\n c[d >> 2] = j;\n c[(j + 24) >> 2] = b;\n c[(j + 12) >> 2] = j;\n c[(j + 8) >> 2] = j;\n break f;\n }\n while (0);\n u = (b + 8) | 0;\n v = c[u >> 2] | 0;\n c[(v + 12) >> 2] = j;\n c[u >> 2] = j;\n c[(j + 8) >> 2] = v;\n c[(j + 12) >> 2] = b;\n c[(j + 24) >> 2] = 0;\n }\n }\n else {\n v = c[5416] | 0;\n if (((v | 0) == 0) | (g >>> 0 < v >>> 0))\n c[5416] = g;\n c[5524] = g;\n c[5525] = h;\n c[5527] = 0;\n c[5421] = c[5530];\n c[5420] = -1;\n c[5425] = 21688;\n c[5424] = 21688;\n c[5427] = 21696;\n c[5426] = 21696;\n c[5429] = 21704;\n c[5428] = 21704;\n c[5431] = 21712;\n c[5430] = 21712;\n c[5433] = 21720;\n c[5432] = 21720;\n c[5435] = 21728;\n c[5434] = 21728;\n c[5437] = 21736;\n c[5436] = 21736;\n c[5439] = 21744;\n c[5438] = 21744;\n c[5441] = 21752;\n c[5440] = 21752;\n c[5443] = 21760;\n c[5442] = 21760;\n c[5445] = 21768;\n c[5444] = 21768;\n c[5447] = 21776;\n c[5446] = 21776;\n c[5449] = 21784;\n c[5448] = 21784;\n c[5451] = 21792;\n c[5450] = 21792;\n c[5453] = 21800;\n c[5452] = 21800;\n c[5455] = 21808;\n c[5454] = 21808;\n c[5457] = 21816;\n c[5456] = 21816;\n c[5459] = 21824;\n c[5458] = 21824;\n c[5461] = 21832;\n c[5460] = 21832;\n c[5463] = 21840;\n c[5462] = 21840;\n c[5465] = 21848;\n c[5464] = 21848;\n c[5467] = 21856;\n c[5466] = 21856;\n c[5469] = 21864;\n c[5468] = 21864;\n c[5471] = 21872;\n c[5470] = 21872;\n c[5473] = 21880;\n c[5472] = 21880;\n c[5475] = 21888;\n c[5474] = 21888;\n c[5477] = 21896;\n c[5476] = 21896;\n c[5479] = 21904;\n c[5478] = 21904;\n c[5481] = 21912;\n c[5480] = 21912;\n c[5483] = 21920;\n c[5482] = 21920;\n c[5485] = 21928;\n c[5484] = 21928;\n c[5487] = 21936;\n c[5486] = 21936;\n v = (h + -40) | 0;\n t = (g + 8) | 0;\n t = ((t & 7) | 0) == 0 ? 0 : (0 - t) & 7;\n u = (g + t) | 0;\n t = (v - t) | 0;\n c[5418] = u;\n c[5415] = t;\n c[(u + 4) >> 2] = t | 1;\n c[(g + v + 4) >> 2] = 40;\n c[5419] = c[5534];\n }\n while (0);\n b = c[5415] | 0;\n if (b >>> 0 > m >>> 0) {\n t = (b - m) | 0;\n c[5415] = t;\n v = c[5418] | 0;\n u = (v + m) | 0;\n c[5418] = u;\n c[(u + 4) >> 2] = t | 1;\n c[(v + 4) >> 2] = m | 3;\n v = (v + 8) | 0;\n V = w;\n return v | 0;\n }\n }\n c[(ao() | 0) >> 2] = 48;\n v = 0;\n V = w;\n return v | 0;\n }\n function er(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0;\n if (!a)\n return;\n d = (a + -8) | 0;\n f = c[5416] | 0;\n a = c[(a + -4) >> 2] | 0;\n b = a & -8;\n j = (d + b) | 0;\n do\n if (!(a & 1)) {\n e = c[d >> 2] | 0;\n if (!(a & 3))\n return;\n h = (d + (0 - e)) | 0;\n g = (e + b) | 0;\n if (h >>> 0 < f >>> 0)\n return;\n if ((c[5417] | 0) == (h | 0)) {\n a = (j + 4) | 0;\n b = c[a >> 2] | 0;\n if (((b & 3) | 0) != 3) {\n i = h;\n b = g;\n break;\n }\n c[5414] = g;\n c[a >> 2] = b & -2;\n c[(h + 4) >> 2] = g | 1;\n c[(h + g) >> 2] = g;\n return;\n }\n d = e >>> 3;\n if (e >>> 0 < 256) {\n a = c[(h + 8) >> 2] | 0;\n b = c[(h + 12) >> 2] | 0;\n if ((b | 0) == (a | 0)) {\n c[5412] = c[5412] & ~(1 << d);\n i = h;\n b = g;\n break;\n }\n else {\n c[(a + 12) >> 2] = b;\n c[(b + 8) >> 2] = a;\n i = h;\n b = g;\n break;\n }\n }\n f = c[(h + 24) >> 2] | 0;\n a = c[(h + 12) >> 2] | 0;\n do\n if ((a | 0) == (h | 0)) {\n b = (h + 16) | 0;\n d = (b + 4) | 0;\n a = c[d >> 2] | 0;\n if (!a) {\n a = c[b >> 2] | 0;\n if (!a) {\n a = 0;\n break;\n }\n }\n else\n b = d;\n while (1) {\n e = (a + 20) | 0;\n d = c[e >> 2] | 0;\n if (!d) {\n e = (a + 16) | 0;\n d = c[e >> 2] | 0;\n if (!d)\n break;\n else {\n a = d;\n b = e;\n }\n }\n else {\n a = d;\n b = e;\n }\n }\n c[b >> 2] = 0;\n }\n else {\n i = c[(h + 8) >> 2] | 0;\n c[(i + 12) >> 2] = a;\n c[(a + 8) >> 2] = i;\n }\n while (0);\n if (f) {\n b = c[(h + 28) >> 2] | 0;\n d = (21952 + (b << 2)) | 0;\n if ((c[d >> 2] | 0) == (h | 0)) {\n c[d >> 2] = a;\n if (!a) {\n c[5413] = c[5413] & ~(1 << b);\n i = h;\n b = g;\n break;\n }\n }\n else {\n i = (f + 16) | 0;\n c[((c[i >> 2] | 0) == (h | 0) ? i : (f + 20) | 0) >> 2] = a;\n if (!a) {\n i = h;\n b = g;\n break;\n }\n }\n c[(a + 24) >> 2] = f;\n b = (h + 16) | 0;\n d = c[b >> 2] | 0;\n if (d | 0) {\n c[(a + 16) >> 2] = d;\n c[(d + 24) >> 2] = a;\n }\n b = c[(b + 4) >> 2] | 0;\n if (b) {\n c[(a + 20) >> 2] = b;\n c[(b + 24) >> 2] = a;\n i = h;\n b = g;\n }\n else {\n i = h;\n b = g;\n }\n }\n else {\n i = h;\n b = g;\n }\n }\n else {\n i = d;\n h = d;\n }\n while (0);\n if (h >>> 0 >= j >>> 0)\n return;\n a = (j + 4) | 0;\n e = c[a >> 2] | 0;\n if (!(e & 1))\n return;\n if (!(e & 2)) {\n if ((c[5418] | 0) == (j | 0)) {\n j = ((c[5415] | 0) + b) | 0;\n c[5415] = j;\n c[5418] = i;\n c[(i + 4) >> 2] = j | 1;\n if ((i | 0) != (c[5417] | 0))\n return;\n c[5417] = 0;\n c[5414] = 0;\n return;\n }\n if ((c[5417] | 0) == (j | 0)) {\n j = ((c[5414] | 0) + b) | 0;\n c[5414] = j;\n c[5417] = h;\n c[(i + 4) >> 2] = j | 1;\n c[(h + j) >> 2] = j;\n return;\n }\n f = ((e & -8) + b) | 0;\n d = e >>> 3;\n do\n if (e >>> 0 < 256) {\n b = c[(j + 8) >> 2] | 0;\n a = c[(j + 12) >> 2] | 0;\n if ((a | 0) == (b | 0)) {\n c[5412] = c[5412] & ~(1 << d);\n break;\n }\n else {\n c[(b + 12) >> 2] = a;\n c[(a + 8) >> 2] = b;\n break;\n }\n }\n else {\n g = c[(j + 24) >> 2] | 0;\n a = c[(j + 12) >> 2] | 0;\n do\n if ((a | 0) == (j | 0)) {\n b = (j + 16) | 0;\n d = (b + 4) | 0;\n a = c[d >> 2] | 0;\n if (!a) {\n a = c[b >> 2] | 0;\n if (!a) {\n d = 0;\n break;\n }\n }\n else\n b = d;\n while (1) {\n e = (a + 20) | 0;\n d = c[e >> 2] | 0;\n if (!d) {\n e = (a + 16) | 0;\n d = c[e >> 2] | 0;\n if (!d)\n break;\n else {\n a = d;\n b = e;\n }\n }\n else {\n a = d;\n b = e;\n }\n }\n c[b >> 2] = 0;\n d = a;\n }\n else {\n d = c[(j + 8) >> 2] | 0;\n c[(d + 12) >> 2] = a;\n c[(a + 8) >> 2] = d;\n d = a;\n }\n while (0);\n if (g | 0) {\n a = c[(j + 28) >> 2] | 0;\n b = (21952 + (a << 2)) | 0;\n if ((c[b >> 2] | 0) == (j | 0)) {\n c[b >> 2] = d;\n if (!d) {\n c[5413] = c[5413] & ~(1 << a);\n break;\n }\n }\n else {\n e = (g + 16) | 0;\n c[((c[e >> 2] | 0) == (j | 0) ? e : (g + 20) | 0) >> 2] = d;\n if (!d)\n break;\n }\n c[(d + 24) >> 2] = g;\n a = (j + 16) | 0;\n b = c[a >> 2] | 0;\n if (b | 0) {\n c[(d + 16) >> 2] = b;\n c[(b + 24) >> 2] = d;\n }\n a = c[(a + 4) >> 2] | 0;\n if (a | 0) {\n c[(d + 20) >> 2] = a;\n c[(a + 24) >> 2] = d;\n }\n }\n }\n while (0);\n c[(i + 4) >> 2] = f | 1;\n c[(h + f) >> 2] = f;\n if ((i | 0) == (c[5417] | 0)) {\n c[5414] = f;\n return;\n }\n }\n else {\n c[a >> 2] = e & -2;\n c[(i + 4) >> 2] = b | 1;\n c[(h + b) >> 2] = b;\n f = b;\n }\n a = f >>> 3;\n if (f >>> 0 < 256) {\n d = (21688 + ((a << 1) << 2)) | 0;\n b = c[5412] | 0;\n a = 1 << a;\n if (!(b & a)) {\n c[5412] = b | a;\n a = d;\n b = (d + 8) | 0;\n }\n else {\n b = (d + 8) | 0;\n a = c[b >> 2] | 0;\n }\n c[b >> 2] = i;\n c[(a + 12) >> 2] = i;\n c[(i + 8) >> 2] = a;\n c[(i + 12) >> 2] = d;\n return;\n }\n a = f >>> 8;\n if (a)\n if (f >>> 0 > 16777215)\n e = 31;\n else {\n h = (((a + 1048320) | 0) >>> 16) & 8;\n j = a << h;\n g = (((j + 520192) | 0) >>> 16) & 4;\n j = j << g;\n e = (((j + 245760) | 0) >>> 16) & 2;\n e = (14 - (g | h | e) + ((j << e) >>> 15)) | 0;\n e = ((f >>> ((e + 7) | 0)) & 1) | (e << 1);\n }\n else\n e = 0;\n a = (21952 + (e << 2)) | 0;\n c[(i + 28) >> 2] = e;\n c[(i + 20) >> 2] = 0;\n c[(i + 16) >> 2] = 0;\n b = c[5413] | 0;\n d = 1 << e;\n a: do\n if (!(b & d)) {\n c[5413] = b | d;\n c[a >> 2] = i;\n c[(i + 24) >> 2] = a;\n c[(i + 12) >> 2] = i;\n c[(i + 8) >> 2] = i;\n }\n else {\n a = c[a >> 2] | 0;\n b: do\n if (((c[(a + 4) >> 2] & -8) | 0) != (f | 0)) {\n e = f << ((e | 0) == 31 ? 0 : (25 - (e >>> 1)) | 0);\n while (1) {\n d = (a + 16 + ((e >>> 31) << 2)) | 0;\n b = c[d >> 2] | 0;\n if (!b)\n break;\n if (((c[(b + 4) >> 2] & -8) | 0) == (f | 0)) {\n a = b;\n break b;\n }\n else {\n e = e << 1;\n a = b;\n }\n }\n c[d >> 2] = i;\n c[(i + 24) >> 2] = a;\n c[(i + 12) >> 2] = i;\n c[(i + 8) >> 2] = i;\n break a;\n }\n while (0);\n h = (a + 8) | 0;\n j = c[h >> 2] | 0;\n c[(j + 12) >> 2] = i;\n c[h >> 2] = i;\n c[(i + 8) >> 2] = j;\n c[(i + 12) >> 2] = a;\n c[(i + 24) >> 2] = 0;\n }\n while (0);\n j = ((c[5420] | 0) + -1) | 0;\n c[5420] = j;\n if (j | 0)\n return;\n a = 22104;\n while (1) {\n a = c[a >> 2] | 0;\n if (!a)\n break;\n else\n a = (a + 8) | 0;\n }\n c[5420] = -1;\n return;\n }\n function fr(a) {\n a = a | 0;\n var b = 0, d = 0, e = 0;\n e = (a + 3) & -4;\n a = sr() | 0;\n b = c[a >> 2] | 0;\n d = (b + e) | 0;\n do\n if (((e | 0) < 1) | (d >>> 0 > b >>> 0)) {\n if (d >>> 0 > (R() | 0) >>> 0 ? (T(d | 0) | 0) == 0 : 0)\n break;\n c[a >> 2] = d;\n e = b;\n return e | 0;\n }\n while (0);\n c[(ao() | 0) >> 2] = 48;\n e = -1;\n return e | 0;\n }\n function gr(a) {\n a = a | 0;\n var b = 0;\n b = V;\n V = (V + a) | 0;\n V = (V + 15) & -16;\n return b | 0;\n }\n function hr(a) {\n a = a | 0;\n V = a;\n }\n function ir() {\n return V | 0;\n }\n function jr(a, b) {\n a = a | 0;\n b = b | 0;\n var c = 0, d = 0, e = 0, f = 0;\n f = a & 65535;\n e = b & 65535;\n c = q(e, f) | 0;\n d = a >>> 16;\n a = ((c >>> 16) + (q(e, d) | 0)) | 0;\n e = b >>> 16;\n b = q(e, f) | 0;\n return ((t(((a >>> 16) + (q(e, d) | 0) + ((((a & 65535) + b) | 0) >>> 16)) | 0),\n ((a + b) << 16) | (c & 65535) | 0) | 0);\n }\n function kr(a, b, c, d) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n d = d | 0;\n var e = 0, f = 0;\n e = a;\n f = c;\n c = jr(e, f) | 0;\n a = u() | 0;\n return (t(((q(b, f) | 0) + (q(d, e) | 0) + a) | (a & 0) | 0), c | 0 | 0) | 0;\n }\n function lr(a, b, c, d) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n d = d | 0;\n c = (a + c) >>> 0;\n return (t(((b + d + ((c >>> 0 < a >>> 0) | 0)) >>> 0) | 0), c | 0) | 0;\n }\n function mr(a, b, c, d) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n d = d | 0;\n d = (b - d - ((c >>> 0 > a >>> 0) | 0)) >>> 0;\n return (t(d | 0), ((a - c) >>> 0) | 0) | 0;\n }\n function nr(a) {\n a = a | 0;\n return (a ? (31 - (r(a ^ (a - 1)) | 0)) | 0 : 32) | 0;\n }\n function or(a, b, d, e, f) {\n a = a | 0;\n b = b | 0;\n d = d | 0;\n e = e | 0;\n f = f | 0;\n var g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0;\n l = a;\n j = b;\n k = j;\n h = d;\n n = e;\n i = n;\n if (!k) {\n g = (f | 0) != 0;\n if (!i) {\n if (g) {\n c[f >> 2] = (l >>> 0) % (h >>> 0);\n c[(f + 4) >> 2] = 0;\n }\n n = 0;\n f = ((l >>> 0) / (h >>> 0)) >>> 0;\n return (t(n | 0), f) | 0;\n }\n else {\n if (!g) {\n n = 0;\n f = 0;\n return (t(n | 0), f) | 0;\n }\n c[f >> 2] = a | 0;\n c[(f + 4) >> 2] = b & 0;\n n = 0;\n f = 0;\n return (t(n | 0), f) | 0;\n }\n }\n g = (i | 0) == 0;\n do\n if (h) {\n if (!g) {\n g = ((r(i | 0) | 0) - (r(k | 0) | 0)) | 0;\n if (g >>> 0 <= 31) {\n m = (g + 1) | 0;\n i = (31 - g) | 0;\n b = (g - 31) >> 31;\n h = m;\n a = ((l >>> (m >>> 0)) & b) | (k << i);\n b = (k >>> (m >>> 0)) & b;\n g = 0;\n i = l << i;\n break;\n }\n if (!f) {\n n = 0;\n f = 0;\n return (t(n | 0), f) | 0;\n }\n c[f >> 2] = a | 0;\n c[(f + 4) >> 2] = j | (b & 0);\n n = 0;\n f = 0;\n return (t(n | 0), f) | 0;\n }\n g = (h - 1) | 0;\n if ((g & h) | 0) {\n i = ((r(h | 0) | 0) + 33 - (r(k | 0) | 0)) | 0;\n p = (64 - i) | 0;\n m = (32 - i) | 0;\n j = m >> 31;\n o = (i - 32) | 0;\n b = o >> 31;\n h = i;\n a = (((m - 1) >> 31) & (k >>> (o >>> 0))) | (((k << m) | (l >>> (i >>> 0))) & b);\n b = b & (k >>> (i >>> 0));\n g = (l << p) & j;\n i = (((k << p) | (l >>> (o >>> 0))) & j) | ((l << m) & ((i - 33) >> 31));\n break;\n }\n if (f | 0) {\n c[f >> 2] = g & l;\n c[(f + 4) >> 2] = 0;\n }\n if ((h | 0) == 1) {\n o = j | (b & 0);\n p = a | 0 | 0;\n return (t(o | 0), p) | 0;\n }\n else {\n p = nr(h | 0) | 0;\n o = (k >>> (p >>> 0)) | 0;\n p = (k << (32 - p)) | (l >>> (p >>> 0)) | 0;\n return (t(o | 0), p) | 0;\n }\n }\n else {\n if (g) {\n if (f | 0) {\n c[f >> 2] = (k >>> 0) % (h >>> 0);\n c[(f + 4) >> 2] = 0;\n }\n o = 0;\n p = ((k >>> 0) / (h >>> 0)) >>> 0;\n return (t(o | 0), p) | 0;\n }\n if (!l) {\n if (f | 0) {\n c[f >> 2] = 0;\n c[(f + 4) >> 2] = (k >>> 0) % (i >>> 0);\n }\n o = 0;\n p = ((k >>> 0) / (i >>> 0)) >>> 0;\n return (t(o | 0), p) | 0;\n }\n g = (i - 1) | 0;\n if (!(g & i)) {\n if (f | 0) {\n c[f >> 2] = a | 0;\n c[(f + 4) >> 2] = (g & k) | (b & 0);\n }\n o = 0;\n p = k >>> ((nr(i | 0) | 0) >>> 0);\n return (t(o | 0), p) | 0;\n }\n g = ((r(i | 0) | 0) - (r(k | 0) | 0)) | 0;\n if (g >>> 0 <= 30) {\n b = (g + 1) | 0;\n i = (31 - g) | 0;\n h = b;\n a = (k << i) | (l >>> (b >>> 0));\n b = k >>> (b >>> 0);\n g = 0;\n i = l << i;\n break;\n }\n if (!f) {\n o = 0;\n p = 0;\n return (t(o | 0), p) | 0;\n }\n c[f >> 2] = a | 0;\n c[(f + 4) >> 2] = j | (b & 0);\n o = 0;\n p = 0;\n return (t(o | 0), p) | 0;\n }\n while (0);\n if (!h) {\n k = i;\n j = 0;\n i = 0;\n }\n else {\n m = d | 0 | 0;\n l = n | (e & 0);\n k = lr(m | 0, l | 0, -1, -1) | 0;\n d = u() | 0;\n j = i;\n i = 0;\n do {\n e = j;\n j = (g >>> 31) | (j << 1);\n g = i | (g << 1);\n e = (a << 1) | (e >>> 31) | 0;\n n = (a >>> 31) | (b << 1) | 0;\n mr(k | 0, d | 0, e | 0, n | 0) | 0;\n p = u() | 0;\n o = (p >> 31) | (((p | 0) < 0 ? -1 : 0) << 1);\n i = o & 1;\n a =\n mr(e | 0, n | 0, (o & m) | 0, (((((p | 0) < 0 ? -1 : 0) >> 31) | (((p | 0) < 0 ? -1 : 0) << 1)) & l) | 0) | 0;\n b = u() | 0;\n h = (h - 1) | 0;\n } while ((h | 0) != 0);\n k = j;\n j = 0;\n }\n h = 0;\n if (f | 0) {\n c[f >> 2] = a;\n c[(f + 4) >> 2] = b;\n }\n o = ((g | 0) >>> 31) | ((k | h) << 1) | (((h << 1) | (g >>> 31)) & 0) | j;\n p = (((g << 1) | (0 >>> 31)) & -2) | i;\n return (t(o | 0), p) | 0;\n }\n function pr(a, b, c, d) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n d = d | 0;\n return or(a, b, c, d, 0) | 0;\n }\n function qr(a, b, c) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n if ((c | 0) < 32) {\n t((b >>> c) | 0);\n return (a >>> c) | ((b & ((1 << c) - 1)) << (32 - c));\n }\n t(0);\n return (b >>> (c - 32)) | 0;\n }\n function rr(a, b, c) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n if ((c | 0) < 32) {\n t((b << c) | ((a & (((1 << c) - 1) << (32 - c))) >>> (32 - c)) | 0);\n return a << c;\n }\n t((a << (c - 32)) | 0);\n return 0;\n }\n function sr() {\n return 22176;\n }\n function tr(a) {\n a = a | 0;\n return (((a & 255) << 24) | (((a >> 8) & 255) << 16) | (((a >> 16) & 255) << 8) | (a >>> 24) | 0);\n }\n function ur(b, d, e) {\n b = b | 0;\n d = d | 0;\n e = e | 0;\n var f = 0, g = 0, h = 0;\n if ((e | 0) >= 512) {\n S(b | 0, d | 0, e | 0) | 0;\n return b | 0;\n }\n h = b | 0;\n g = (b + e) | 0;\n if ((b & 3) == (d & 3)) {\n while (b & 3) {\n if (!e)\n return h | 0;\n a[b >> 0] = a[d >> 0] | 0;\n b = (b + 1) | 0;\n d = (d + 1) | 0;\n e = (e - 1) | 0;\n }\n e = (g & -4) | 0;\n f = (e - 64) | 0;\n while ((b | 0) <= (f | 0)) {\n c[b >> 2] = c[d >> 2];\n c[(b + 4) >> 2] = c[(d + 4) >> 2];\n c[(b + 8) >> 2] = c[(d + 8) >> 2];\n c[(b + 12) >> 2] = c[(d + 12) >> 2];\n c[(b + 16) >> 2] = c[(d + 16) >> 2];\n c[(b + 20) >> 2] = c[(d + 20) >> 2];\n c[(b + 24) >> 2] = c[(d + 24) >> 2];\n c[(b + 28) >> 2] = c[(d + 28) >> 2];\n c[(b + 32) >> 2] = c[(d + 32) >> 2];\n c[(b + 36) >> 2] = c[(d + 36) >> 2];\n c[(b + 40) >> 2] = c[(d + 40) >> 2];\n c[(b + 44) >> 2] = c[(d + 44) >> 2];\n c[(b + 48) >> 2] = c[(d + 48) >> 2];\n c[(b + 52) >> 2] = c[(d + 52) >> 2];\n c[(b + 56) >> 2] = c[(d + 56) >> 2];\n c[(b + 60) >> 2] = c[(d + 60) >> 2];\n b = (b + 64) | 0;\n d = (d + 64) | 0;\n }\n while ((b | 0) < (e | 0)) {\n c[b >> 2] = c[d >> 2];\n b = (b + 4) | 0;\n d = (d + 4) | 0;\n }\n }\n else {\n e = (g - 4) | 0;\n while ((b | 0) < (e | 0)) {\n a[b >> 0] = a[d >> 0] | 0;\n a[(b + 1) >> 0] = a[(d + 1) >> 0] | 0;\n a[(b + 2) >> 0] = a[(d + 2) >> 0] | 0;\n a[(b + 3) >> 0] = a[(d + 3) >> 0] | 0;\n b = (b + 4) | 0;\n d = (d + 4) | 0;\n }\n }\n while ((b | 0) < (g | 0)) {\n a[b >> 0] = a[d >> 0] | 0;\n b = (b + 1) | 0;\n d = (d + 1) | 0;\n }\n return h | 0;\n }\n function vr(b, c, d) {\n b = b | 0;\n c = c | 0;\n d = d | 0;\n var e = 0;\n if (((c | 0) < (b | 0)) & ((b | 0) < ((c + d) | 0))) {\n e = b;\n c = (c + d) | 0;\n b = (b + d) | 0;\n while ((d | 0) > 0) {\n b = (b - 1) | 0;\n c = (c - 1) | 0;\n d = (d - 1) | 0;\n a[b >> 0] = a[c >> 0] | 0;\n }\n b = e;\n }\n else\n ur(b, c, d) | 0;\n return b | 0;\n }\n function wr(b, d, e) {\n b = b | 0;\n d = d | 0;\n e = e | 0;\n var f = 0, g = 0, h = 0, i = 0;\n h = (b + e) | 0;\n d = d & 255;\n if ((e | 0) >= 67) {\n while (b & 3) {\n a[b >> 0] = d;\n b = (b + 1) | 0;\n }\n f = (h & -4) | 0;\n i = d | (d << 8) | (d << 16) | (d << 24);\n g = (f - 64) | 0;\n while ((b | 0) <= (g | 0)) {\n c[b >> 2] = i;\n c[(b + 4) >> 2] = i;\n c[(b + 8) >> 2] = i;\n c[(b + 12) >> 2] = i;\n c[(b + 16) >> 2] = i;\n c[(b + 20) >> 2] = i;\n c[(b + 24) >> 2] = i;\n c[(b + 28) >> 2] = i;\n c[(b + 32) >> 2] = i;\n c[(b + 36) >> 2] = i;\n c[(b + 40) >> 2] = i;\n c[(b + 44) >> 2] = i;\n c[(b + 48) >> 2] = i;\n c[(b + 52) >> 2] = i;\n c[(b + 56) >> 2] = i;\n c[(b + 60) >> 2] = i;\n b = (b + 64) | 0;\n }\n while ((b | 0) < (f | 0)) {\n c[b >> 2] = i;\n b = (b + 4) | 0;\n }\n }\n while ((b | 0) < (h | 0)) {\n a[b >> 0] = d;\n b = (b + 1) | 0;\n }\n return (h - e) | 0;\n }\n function xr(a) {\n a = a | 0;\n return Y[a & 3]() | 0;\n }\n function yr(a, b) {\n a = a | 0;\n b = b | 0;\n return Z[a & 15](b | 0) | 0;\n }\n function zr(a, b, c, d, e, f, g) {\n a = a | 0;\n b = b | 0;\n c = +c;\n d = d | 0;\n e = e | 0;\n f = f | 0;\n g = g | 0;\n return _[a & 1](b | 0, +c, d | 0, e | 0, f | 0, g | 0) | 0;\n }\n function Ar(a, b, c) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n return $[a & 63](b | 0, c | 0) | 0;\n }\n function Br(a, b, c, d) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n d = d | 0;\n return aa[a & 7](b | 0, c | 0, d | 0) | 0;\n }\n function Cr(a) {\n a = a | 0;\n ba[a & 3]();\n }\n function Dr(a, b) {\n a = a | 0;\n b = b | 0;\n ca[a & 255](b | 0);\n }\n function Er(a, b, c) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n da[a & 15](b | 0, c | 0);\n }\n function Fr(a, b, c, d) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n d = d | 0;\n ea[a & 15](b | 0, c | 0, d | 0);\n }\n function Gr(a, b, c, d, e) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n d = d | 0;\n e = e | 0;\n fa[a & 7](b | 0, c | 0, d | 0, e | 0);\n }\n function Hr(a, b, c, d, e, f) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n d = d | 0;\n e = e | 0;\n f = f | 0;\n ga[a & 3](b | 0, c | 0, d | 0, e | 0, f | 0);\n }\n function Ir(a, b, c, d, e, f, g) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n d = d | 0;\n e = e | 0;\n f = f | 0;\n g = g | 0;\n ha[a & 3](b | 0, c | 0, d | 0, e | 0, f | 0, g | 0);\n }\n function Jr() {\n s(0);\n return 0;\n }\n function Kr(a) {\n a = a | 0;\n s(1);\n return 0;\n }\n function Lr(a, b, c, d, e, f) {\n a = a | 0;\n b = +b;\n c = c | 0;\n d = d | 0;\n e = e | 0;\n f = f | 0;\n s(2);\n return 0;\n }\n function Mr(a, b) {\n a = a | 0;\n b = b | 0;\n s(3);\n return 0;\n }\n function Nr(a, b, c) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n s(4);\n return 0;\n }\n function Or() {\n s(5);\n }\n function Pr(a) {\n a = a | 0;\n s(6);\n }\n function Qr(a, b) {\n a = a | 0;\n b = b | 0;\n s(7);\n }\n function Rr(a, b, c) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n s(8);\n }\n function Sr(a, b, c, d) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n d = d | 0;\n s(9);\n }\n function Tr(a, b, c, d, e) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n d = d | 0;\n e = e | 0;\n s(10);\n }\n function Ur(a, b, c, d, e, f) {\n a = a | 0;\n b = b | 0;\n c = c | 0;\n d = d | 0;\n e = e | 0;\n f = f | 0;\n s(11);\n }\n // EMSCRIPTEN_END_FUNCS\n var Y = [Jr, Mk, Fl, Jr];\n var Z = [Kr, Ap, zb, Fb, qp, tp, oq, Kq, Tq, wk, na, tl, Ok, Hl, Kr, Kr];\n var _ = [Lr, po];\n var $ = [\n Mr,\n Ba,\n Ka,\n Eb,\n jd,\n Nd,\n Xd,\n je,\n ke,\n ne,\n _e,\n ff,\n yf,\n Ff,\n Of,\n Vf,\n Hg,\n Qg,\n Zg,\n ch,\n lh,\n qh,\n zh,\n Eh,\n Nh,\n _h,\n fi,\n ki,\n si,\n Bi,\n Si,\n Zi,\n fj,\n oj,\n yj,\n Fj,\n Pj,\n Yj,\n ek,\n lk,\n tk,\n ll,\n Mr,\n Mr,\n Mr,\n Mr,\n Mr,\n Mr,\n Mr,\n Mr,\n Mr,\n Mr,\n Mr,\n Mr,\n Mr,\n Mr,\n Mr,\n Mr,\n Mr,\n Mr,\n Mr,\n Mr,\n Mr,\n Mr\n ];\n var aa = [Nr, Io, Yo, Fp, Hp, Mq, Nq, Nr];\n var ba = [Or, Dp, Po, Or];\n var ca = [\n Pr,\n pq,\n za,\n Aa,\n Ca,\n Ia,\n Ja,\n La,\n yp,\n ob,\n Gb,\n yb,\n Bb,\n Cb,\n Lb,\n Mb,\n Xb,\n Yb,\n sc,\n tc,\n uc,\n Nc,\n hd,\n id,\n kd,\n Jd,\n Od,\n Pd,\n Qd,\n Rd,\n Vd,\n Wd,\n Yd,\n he,\n ie,\n le,\n me,\n Ye,\n Ze,\n $e,\n df,\n ef,\n wf,\n xf,\n zf,\n Df,\n Ef,\n Mf,\n Nf,\n Pf,\n Tf,\n Uf,\n Fg,\n Gg,\n Ig,\n Rg,\n Sg,\n Xg,\n Yg,\n _g,\n dh,\n eh,\n jh,\n kh,\n mh,\n rh,\n sh,\n xh,\n yh,\n Ah,\n Fh,\n Gh,\n Lh,\n Mh,\n Oh,\n Yh,\n Zh,\n $h,\n di,\n ei,\n gi,\n li,\n mi,\n qi,\n ri,\n ti,\n zi,\n Ai,\n Qi,\n Ri,\n Ti,\n Xi,\n Yi,\n dj,\n ej,\n gj,\n mj,\n nj,\n wj,\n xj,\n zj,\n Dj,\n Ej,\n Nj,\n Oj,\n Qj,\n Wj,\n Xj,\n ck,\n dk,\n fk,\n jk,\n kk,\n rk,\n sk,\n uk,\n Uo,\n Vo,\n Wo,\n Xo,\n fp,\n op,\n pp,\n rp,\n sp,\n zp,\n Bp,\n Cp,\n Ep,\n Gp,\n Lp,\n mq,\n nq,\n Iq,\n Jq,\n Sq,\n Yq,\n Zq,\n zk,\n wl,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr,\n Pr\n ];\n var da = [Qr, Ab, Db, ma, pa, qa, ra, sa, qo, Qr, Qr, Qr, Qr, Qr, Qr, Qr];\n var ea = [Rr, Lq, Oq, Uq, Vq, la, oa, dl, Vl, $l, Rr, Rr, Rr, Rr, Rr, Rr];\n var fa = [Sr, $o, ip, Op, Vk, Ol, Sr, Sr];\n var ga = [Tr, _o, hp, Np];\n var ha = [Ur, Zo, gp, Mp];\n return {\n __ZSt18uncaught_exceptionv: kq,\n ___cxa_can_catch: hq,\n ___cxa_is_pointer_type: iq,\n ___embind_register_native_and_builtin_types: im,\n ___errno_location: ao,\n ___getTypeName: $n,\n ___muldi3: kr,\n ___udivdi3: pr,\n _bitshift64Lshr: qr,\n _bitshift64Shl: rr,\n _emscripten_get_sbrk_ptr: sr,\n _free: er,\n _i64Add: lr,\n _i64Subtract: mr,\n _llvm_bswap_i32: tr,\n _malloc: dr,\n _memcpy: ur,\n _memmove: vr,\n _memset: wr,\n dynCall_i: xr,\n dynCall_ii: yr,\n dynCall_iidiiii: zr,\n dynCall_iii: Ar,\n dynCall_iiii: Br,\n dynCall_v: Cr,\n dynCall_vi: Dr,\n dynCall_vii: Er,\n dynCall_viii: Fr,\n dynCall_viiii: Gr,\n dynCall_viiiii: Hr,\n dynCall_viiiiii: Ir,\n globalCtors: ia,\n stackAlloc: gr,\n stackRestore: hr,\n stackSave: ir\n };\n })(\n // EMSCRIPTEN_END_ASM\n asmGlobalArg, asmLibraryArg, buffer);\n var __ZSt18uncaught_exceptionv = (Module['__ZSt18uncaught_exceptionv'] =\n asm['__ZSt18uncaught_exceptionv']);\n var ___cxa_can_catch = (Module['___cxa_can_catch'] = asm['___cxa_can_catch']);\n var ___cxa_is_pointer_type = (Module['___cxa_is_pointer_type'] = asm['___cxa_is_pointer_type']);\n var ___embind_register_native_and_builtin_types = (Module['___embind_register_native_and_builtin_types'] = asm['___embind_register_native_and_builtin_types']);\n var ___errno_location = (Module['___errno_location'] = asm['___errno_location']);\n var ___getTypeName = (Module['___getTypeName'] = asm['___getTypeName']);\n var ___muldi3 = (Module['___muldi3'] = asm['___muldi3']);\n var ___udivdi3 = (Module['___udivdi3'] = asm['___udivdi3']);\n var _bitshift64Lshr = (Module['_bitshift64Lshr'] = asm['_bitshift64Lshr']);\n var _bitshift64Shl = (Module['_bitshift64Shl'] = asm['_bitshift64Shl']);\n var _emscripten_get_sbrk_ptr = (Module['_emscripten_get_sbrk_ptr'] =\n asm['_emscripten_get_sbrk_ptr']);\n var _free = (Module['_free'] = asm['_free']);\n var _i64Add = (Module['_i64Add'] = asm['_i64Add']);\n var _i64Subtract = (Module['_i64Subtract'] = asm['_i64Subtract']);\n var _llvm_bswap_i32 = (Module['_llvm_bswap_i32'] = asm['_llvm_bswap_i32']);\n var _malloc = (Module['_malloc'] = asm['_malloc']);\n var _memcpy = (Module['_memcpy'] = asm['_memcpy']);\n var _memmove = (Module['_memmove'] = asm['_memmove']);\n var _memset = (Module['_memset'] = asm['_memset']);\n var globalCtors = (Module['globalCtors'] = asm['globalCtors']);\n var stackAlloc = (Module['stackAlloc'] = asm['stackAlloc']);\n var stackRestore = (Module['stackRestore'] = asm['stackRestore']);\n var stackSave = (Module['stackSave'] = asm['stackSave']);\n var dynCall_i = (Module['dynCall_i'] = asm['dynCall_i']);\n var dynCall_ii = (Module['dynCall_ii'] = asm['dynCall_ii']);\n var dynCall_iidiiii = (Module['dynCall_iidiiii'] = asm['dynCall_iidiiii']);\n var dynCall_iii = (Module['dynCall_iii'] = asm['dynCall_iii']);\n var dynCall_iiii = (Module['dynCall_iiii'] = asm['dynCall_iiii']);\n var dynCall_v = (Module['dynCall_v'] = asm['dynCall_v']);\n var dynCall_vi = (Module['dynCall_vi'] = asm['dynCall_vi']);\n var dynCall_vii = (Module['dynCall_vii'] = asm['dynCall_vii']);\n var dynCall_viii = (Module['dynCall_viii'] = asm['dynCall_viii']);\n var dynCall_viiii = (Module['dynCall_viiii'] = asm['dynCall_viiii']);\n var dynCall_viiiii = (Module['dynCall_viiiii'] = asm['dynCall_viiiii']);\n var dynCall_viiiiii = (Module['dynCall_viiiiii'] = asm['dynCall_viiiiii']);\n Module['asm'] = asm;\n if (memoryInitializer) {\n if (!isDataURI(memoryInitializer)) {\n memoryInitializer = locateFile(memoryInitializer);\n }\n if (ENVIRONMENT_IS_NODE || ENVIRONMENT_IS_SHELL) {\n var data = readBinary(memoryInitializer);\n HEAPU8.set(data, GLOBAL_BASE);\n }\n else {\n addRunDependency('memory initializer');\n var applyMemoryInitializer = function (data) {\n if (data.byteLength)\n data = new Uint8Array(data);\n HEAPU8.set(data, GLOBAL_BASE);\n if (Module['memoryInitializerRequest'])\n delete Module['memoryInitializerRequest'].response;\n removeRunDependency('memory initializer');\n };\n var doBrowserLoad = function () {\n readAsync(memoryInitializer, applyMemoryInitializer, function () {\n var e = new Error('could not load memory initializer ' + memoryInitializer);\n throw e;\n });\n };\n var memoryInitializerBytes = tryParseAsDataURI(memoryInitializer);\n if (memoryInitializerBytes) {\n applyMemoryInitializer(memoryInitializerBytes.buffer);\n }\n else if (Module['memoryInitializerRequest']) {\n var useRequest = function () {\n var request = Module['memoryInitializerRequest'];\n var response = request.response;\n if (request.status !== 200 && request.status !== 0) {\n var data = tryParseAsDataURI(Module['memoryInitializerRequestURL']);\n if (data) {\n response = data.buffer;\n }\n else {\n console.warn('a problem seems to have happened with Module.memoryInitializerRequest, status: ' +\n request.status +\n ', retrying ' +\n memoryInitializer);\n doBrowserLoad();\n return;\n }\n }\n applyMemoryInitializer(response);\n };\n if (Module['memoryInitializerRequest'].response) {\n setTimeout(useRequest, 0);\n }\n else {\n Module['memoryInitializerRequest'].addEventListener('load', useRequest);\n }\n }\n else {\n doBrowserLoad();\n }\n }\n }\n var calledRun;\n function ExitStatus(status) {\n this.name = 'ExitStatus';\n this.message = 'Program terminated with exit(' + status + ')';\n this.status = status;\n }\n dependenciesFulfilled = function runCaller() {\n if (!calledRun)\n run();\n if (!calledRun)\n dependenciesFulfilled = runCaller;\n };\n function run(args) {\n args = args || arguments_;\n if (runDependencies > 0) {\n return;\n }\n preRun();\n if (runDependencies > 0)\n return;\n function doRun() {\n if (calledRun)\n return;\n calledRun = true;\n Module['calledRun'] = true;\n if (ABORT)\n return;\n initRuntime();\n preMain();\n if (Module['onRuntimeInitialized'])\n Module['onRuntimeInitialized']();\n postRun();\n }\n if (Module['setStatus']) {\n Module['setStatus']('Running...');\n setTimeout(function () {\n setTimeout(function () {\n Module['setStatus']('');\n }, 1);\n doRun();\n }, 1);\n }\n else {\n doRun();\n }\n }\n Module['run'] = run;\n if (Module['preInit']) {\n if (typeof Module['preInit'] == 'function')\n Module['preInit'] = [Module['preInit']];\n while (Module['preInit'].length > 0) {\n Module['preInit'].pop()();\n }\n }\n noExitRuntime = true;\n run();\n return Module;\n}\n", "import getModule from \"./libs/laz-perf.js\";\nlet Module = null;\nconst POINT_FORMAT_READERS = {\n 0: (dv) => {\n return {\n position: [dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)],\n intensity: dv.getUint16(12, true),\n classification: dv.getUint8(15)\n };\n },\n 1: (dv) => {\n return {\n position: [dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)],\n intensity: dv.getUint16(12, true),\n classification: dv.getUint8(15)\n };\n },\n 2: (dv) => {\n return {\n position: [dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)],\n intensity: dv.getUint16(12, true),\n classification: dv.getUint8(15),\n color: [dv.getUint16(20, true), dv.getUint16(22, true), dv.getUint16(24, true)]\n };\n },\n 3: (dv) => {\n return {\n position: [dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)],\n intensity: dv.getUint16(12, true),\n classification: dv.getUint8(15),\n color: [dv.getUint16(28, true), dv.getUint16(30, true), dv.getUint16(32, true)]\n };\n }\n};\n/**\n * Reads incoming binary data depends on the Type parameter\n * @param buf\n * @param Type\n * @param offset\n * @param count\n * @returns number | number[] from incoming binary data\n */\nfunction readAs(buf, Type = {}, offset, count) {\n count = count === undefined || count === 0 ? 1 : count;\n const sub = buf.slice(offset, offset + Type.BYTES_PER_ELEMENT * count);\n const r = new Type(sub);\n if (count === 1) {\n return r[0];\n }\n const ret = [];\n for (let i = 0; i < count; i++) {\n ret.push(r[i]);\n }\n return ret;\n}\n/**\n * Parsing of header's attributes\n * @param arraybuffer\n * @returns header as LASHeader\n */\nfunction parseLASHeader(arraybuffer) {\n let start = 32 * 3 + 35;\n const o = {\n pointsOffset: readAs(arraybuffer, Uint32Array, 32 * 3),\n pointsFormatId: readAs(arraybuffer, Uint8Array, 32 * 3 + 8),\n pointsStructSize: readAs(arraybuffer, Uint16Array, 32 * 3 + 8 + 1),\n pointsCount: readAs(arraybuffer, Uint32Array, 32 * 3 + 11),\n scale: readAs(arraybuffer, Float64Array, start, 3)\n };\n start += 24; // 8*3\n o.offset = readAs(arraybuffer, Float64Array, start, 3);\n start += 24;\n const bounds = readAs(arraybuffer, Float64Array, start, 6);\n start += 48; // 8*6;\n o.maxs = [bounds[0], bounds[2], bounds[4]];\n o.mins = [bounds[1], bounds[3], bounds[5]];\n return o;\n}\n// LAS Loader\n// Loads uncompressed files\n//\nclass LASLoader {\n arraybuffer;\n readOffset = 0;\n header = {\n pointsOffset: 0,\n pointsFormatId: 0,\n pointsStructSize: 0,\n pointsCount: 0,\n scale: [0, 0, 0],\n offset: [0, 0, 0],\n maxs: [0],\n mins: [0],\n totalToRead: 0,\n totalRead: 0,\n versionAsString: '',\n isCompressed: true\n };\n constructor(arraybuffer) {\n this.arraybuffer = arraybuffer;\n }\n /**\n * @returns boolean\n */\n open() {\n // Nothing needs to be done to open this\n return true;\n }\n /**\n * Parsing of incoming binary\n * @returns LASHeader\n */\n getHeader() {\n this.header = parseLASHeader(this.arraybuffer);\n return this.header;\n }\n /**\n * Reading data\n * @param count\n * @param skip\n * @returns new ArrayBuffer, count, hasMoreData\n */\n readData(count, skip) {\n const { header, arraybuffer } = this;\n if (!header) {\n throw new Error('Cannot start reading data till a header request is issued');\n }\n let { readOffset } = this;\n let start;\n if (skip <= 1) {\n count = Math.min(count, header.pointsCount - readOffset);\n start = header.pointsOffset + readOffset * header.pointsStructSize;\n const end = start + count * header.pointsStructSize;\n readOffset += count;\n this.readOffset = readOffset;\n return {\n buffer: arraybuffer.slice(start, end),\n count,\n hasMoreData: readOffset < header.pointsCount\n };\n }\n const pointsToRead = Math.min(count * skip, header.pointsCount - readOffset);\n const bufferSize = Math.ceil(pointsToRead / skip);\n let pointsRead = 0;\n const buf = new Uint8Array(bufferSize * header.pointsStructSize);\n for (let i = 0; i < pointsToRead; i++) {\n if (i % skip === 0) {\n start = header.pointsOffset + readOffset * header.pointsStructSize;\n const src = new Uint8Array(arraybuffer, start, header.pointsStructSize);\n buf.set(src, pointsRead * header.pointsStructSize);\n pointsRead++;\n }\n readOffset++;\n }\n this.readOffset = readOffset;\n return {\n buffer: buf.buffer,\n count: pointsRead,\n hasMoreData: readOffset < header.pointsCount\n };\n }\n /**\n * Method which brings data to null to close the file\n * @returns\n */\n close() {\n // @ts-ignore Possibly null\n this.arraybuffer = null;\n return true;\n }\n}\n/**\n * LAZ Loader\n * Uses NaCL module to load LAZ files\n */\nclass LAZLoader {\n arraybuffer;\n instance = null; // LASZip instance\n header = null;\n constructor(arraybuffer) {\n this.arraybuffer = arraybuffer;\n if (!Module) {\n // Avoid executing laz-perf on import\n Module = getModule();\n }\n }\n /**\n * Opens the file\n * @returns boolean\n */\n open() {\n try {\n const { arraybuffer } = this;\n this.instance = new Module.LASZip();\n const abInt = new Uint8Array(arraybuffer);\n const buf = Module._malloc(arraybuffer.byteLength);\n this.instance.arraybuffer = arraybuffer;\n this.instance.buf = buf;\n Module.HEAPU8.set(abInt, buf);\n this.instance.open(buf, arraybuffer.byteLength);\n this.instance.readOffset = 0;\n return true;\n }\n catch (error) {\n throw new Error(`Failed to open file: ${error.message}`);\n }\n }\n getHeader() {\n if (!this.instance) {\n throw new Error('You need to open the file before trying to read header');\n }\n try {\n const header = parseLASHeader(this.instance.arraybuffer);\n header.pointsFormatId &= 0x3f;\n this.header = header;\n return header;\n }\n catch (error) {\n throw new Error(`Failed to get header: ${error.message}`);\n }\n }\n /**\n * @param count\n * @param offset\n * @param skip\n * @returns Data\n */\n readData(count, offset, skip) {\n if (!this.instance) {\n throw new Error('You need to open the file before trying to read stuff');\n }\n const { header, instance } = this;\n if (!header) {\n throw new Error('You need to query header before reading, I maintain state that way, sorry :(');\n }\n try {\n const pointsToRead = Math.min(count * skip, header.pointsCount - instance.readOffset);\n const bufferSize = Math.ceil(pointsToRead / skip);\n let pointsRead = 0;\n const thisBuf = new Uint8Array(bufferSize * header.pointsStructSize);\n const bufRead = Module._malloc(header.pointsStructSize);\n for (let i = 0; i < pointsToRead; i++) {\n instance.getPoint(bufRead);\n if (i % skip === 0) {\n const a = new Uint8Array(Module.HEAPU8.buffer, bufRead, header.pointsStructSize);\n thisBuf.set(a, pointsRead * header.pointsStructSize);\n pointsRead++;\n }\n instance.readOffset++;\n }\n Module._free(bufRead);\n return {\n buffer: thisBuf.buffer,\n count: pointsRead,\n hasMoreData: instance.readOffset < header.pointsCount\n };\n }\n catch (error) {\n throw new Error(`Failed to read data: ${error.message}`);\n }\n }\n /**\n * Deletes the instance\n * @returns boolean\n */\n close() {\n try {\n if (this.instance !== null) {\n Module._free(this.instance.buf);\n this.instance.delete();\n this.instance = null;\n }\n return true;\n }\n catch (error) {\n throw new Error(`Failed to close file: ${error.message}`);\n }\n }\n}\n/**\n * Helper class: Decodes LAS records into points\n */\nclass LASDecoder {\n arrayb;\n decoder;\n pointsCount;\n pointSize;\n scale;\n offset;\n mins;\n maxs;\n constructor(buffer, len, header) {\n this.arrayb = buffer;\n this.decoder = POINT_FORMAT_READERS[header.pointsFormatId];\n this.pointsCount = len;\n this.pointSize = header.pointsStructSize;\n this.scale = header.scale;\n this.offset = header.offset;\n this.mins = header.mins;\n this.maxs = header.maxs;\n }\n /**\n * Decodes data depends on this point size\n * @param index\n * @returns New object\n */\n getPoint(index) {\n if (index < 0 || index >= this.pointsCount) {\n throw new Error('Point index out of range');\n }\n const dv = new DataView(this.arrayb, index * this.pointSize, this.pointSize);\n return this.decoder(dv);\n }\n}\n/**\n * A single consistent interface for loading LAS/LAZ files\n */\nexport class LASFile {\n arraybuffer;\n formatId = 0;\n loader;\n isCompressed = true;\n isOpen = false;\n version = 0;\n versionAsString = '';\n constructor(arraybuffer) {\n this.arraybuffer = arraybuffer;\n if (this.determineVersion() > 13) {\n throw new Error('Only file versions <= 1.3 are supported at this time');\n }\n this.determineFormat();\n if (POINT_FORMAT_READERS[this.formatId] === undefined) {\n throw new Error('The point format ID is not supported');\n }\n this.loader = this.isCompressed\n ? new LAZLoader(this.arraybuffer)\n : new LASLoader(this.arraybuffer);\n }\n /**\n * Determines format in parameters of LASHeaer\n */\n determineFormat() {\n const formatId = readAs(this.arraybuffer, Uint8Array, 32 * 3 + 8);\n const bit7 = (formatId & 0x80) >> 7;\n const bit6 = (formatId & 0x40) >> 6;\n if (bit7 === 1 && bit6 === 1) {\n throw new Error('Old style compression not supported');\n }\n this.formatId = formatId & 0x3f;\n this.isCompressed = bit7 === 1 || bit6 === 1;\n }\n /**\n * Determines version\n * @returns version\n */\n determineVersion() {\n const ver = new Int8Array(this.arraybuffer, 24, 2);\n this.version = ver[0] * 10 + ver[1];\n this.versionAsString = `${ver[0]}.${ver[1]}`;\n return this.version;\n }\n /**\n * Reads if the file is open\n * @returns boolean\n */\n open() {\n if (this.loader.open()) {\n this.isOpen = true;\n }\n }\n /**\n * Gets the header\n * @returns Header\n */\n getHeader() {\n return this.loader.getHeader();\n }\n /**\n * @param count\n * @param start\n * @param skip\n * @returns Data\n */\n readData(count, start, skip) {\n return this.loader.readData(count, start, skip);\n }\n /**\n * Closes the file\n */\n close() {\n if (this.loader.close()) {\n this.isOpen = false;\n }\n }\n /**\n */\n getUnpacker() {\n return LASDecoder;\n }\n}\nexport const LASModuleWasLoaded = false;\n/* eslint no-use-before-define: 2 */\n", "import { deduceMeshSchema } from '@loaders.gl/schema';\n/**\n * Gets schema from PLY header\n * @param lasHeader\n * @param metadata\n * @returns Schema\n */\nexport function getLASSchema(lasHeader, attributes) {\n const metadataMap = makeMetadataFromLasHeader(lasHeader);\n const schema = deduceMeshSchema(attributes, metadataMap);\n return schema;\n}\n/**\n * Make arrow like schema metadata by LASHeader properties\n * @param lasHeader\n * @returns\n */\nexport function makeMetadataFromLasHeader(lasHeader) {\n const metadata = {};\n /* eslint-disable camelcase */\n metadata.las_pointsOffset = lasHeader.pointsOffset.toString(10);\n metadata.las_pointsFormatId = lasHeader.pointsFormatId.toString(10);\n metadata.las_pointsStructSize = lasHeader.pointsStructSize.toString(10);\n metadata.las_pointsCount = lasHeader.pointsCount.toString(10);\n metadata.las_scale = JSON.stringify(lasHeader.scale);\n metadata.las_offset = JSON.stringify(lasHeader.offset);\n if (lasHeader.maxs !== undefined) {\n metadata.las_maxs = JSON.stringify(lasHeader.maxs);\n }\n if (lasHeader.mins !== undefined) {\n metadata.las_mins = JSON.stringify(lasHeader.mins);\n }\n metadata.las_totalToRead = lasHeader.totalToRead.toString(10);\n metadata.las_pointsFortotalReadmatId = lasHeader.totalRead.toString(10);\n if (lasHeader.versionAsString !== undefined) {\n metadata.las_versionAsString = lasHeader.versionAsString;\n }\n if (lasHeader.isCompressed !== undefined) {\n metadata.las_isCompressed = lasHeader.isCompressed.toString();\n }\n return metadata;\n}\n", "import { getMeshBoundingBox /* , convertMesh */ } from '@loaders.gl/schema';\nimport { LASFile } from \"./laslaz-decoder.js\";\nimport { getLASSchema } from \"./get-las-schema.js\";\n/**\n * Parsing of .las file\n * @param arrayBuffer\n * @param options\n * @returns LASHeader\n */\nexport function parseLAS(arrayBuffer, options) {\n return parseLASMesh(arrayBuffer, options);\n // This code breaks pointcloud example on the website\n // const mesh = parseLASMesh(arrayBuffer, options);\n // return convertMesh(mesh, options?.las?.shape || 'mesh') as LASMesh | ArrowTable | ColumnarTable;\n}\n/**\n * Parsing of .las file\n * @param arrayBuffer\n * @param options\n * @returns LASHeader\n */\nfunction parseLASMesh(arrayBuffer, options = {}) {\n let pointIndex = 0;\n let positions;\n let colors;\n let intensities;\n let classifications;\n let originalHeader;\n const lasMesh = {\n loader: 'las',\n loaderData: {},\n // shape: 'mesh',\n schema: { fields: [], metadata: {} },\n header: {\n vertexCount: 0,\n boundingBox: [\n [0, 0, 0],\n [0, 0, 0]\n ]\n },\n attributes: {},\n topology: 'point-list',\n mode: 0 // GL.POINTS\n };\n /* eslint-disable max-statements */\n // @ts-ignore Possibly undefined\n parseLASChunked(arrayBuffer, options.las?.skip, (decoder = {}, lasHeader) => {\n if (!originalHeader) {\n originalHeader = lasHeader;\n const total = lasHeader.totalToRead;\n const PositionsType = options.las?.fp64 ? Float64Array : Float32Array;\n positions = new PositionsType(total * 3);\n // laslaz-decoder.js `pointFormatReaders`\n colors = lasHeader.pointsFormatId >= 2 ? new Uint8Array(total * 4) : null;\n intensities = new Uint16Array(total);\n classifications = new Uint8Array(total);\n lasMesh.loaderData = lasHeader;\n lasMesh.attributes = {\n POSITION: { value: positions, size: 3 },\n // non-gltf attributes, use non-capitalized names for now\n intensity: { value: intensities, size: 1 },\n classification: { value: classifications, size: 1 }\n };\n if (colors) {\n lasMesh.attributes.COLOR_0 = { value: colors, size: 4 };\n }\n }\n const batchSize = decoder.pointsCount;\n const { scale: [scaleX, scaleY, scaleZ], offset: [offsetX, offsetY, offsetZ] } = lasHeader;\n const twoByteColor = detectTwoByteColors(decoder, batchSize, options.las?.colorDepth);\n for (let i = 0; i < batchSize; i++) {\n const { position, color, intensity, classification } = decoder.getPoint(i);\n positions[pointIndex * 3] = position[0] * scaleX + offsetX;\n positions[pointIndex * 3 + 1] = position[1] * scaleY + offsetY;\n positions[pointIndex * 3 + 2] = position[2] * scaleZ + offsetZ;\n if (color && colors) {\n if (twoByteColor) {\n colors[pointIndex * 4] = color[0] / 256;\n colors[pointIndex * 4 + 1] = color[1] / 256;\n colors[pointIndex * 4 + 2] = color[2] / 256;\n }\n else {\n colors[pointIndex * 4] = color[0];\n colors[pointIndex * 4 + 1] = color[1];\n colors[pointIndex * 4 + 2] = color[2];\n }\n colors[pointIndex * 4 + 3] = 255;\n }\n intensities[pointIndex] = intensity;\n classifications[pointIndex] = classification;\n pointIndex++;\n }\n const meshBatch = {\n ...lasMesh,\n header: {\n vertexCount: lasHeader.totalRead\n },\n progress: lasHeader.totalRead / lasHeader.totalToRead\n };\n options?.onProgress?.(meshBatch);\n });\n /* eslint-enable max-statements */\n lasMesh.header = {\n vertexCount: originalHeader.totalToRead,\n boundingBox: getMeshBoundingBox(lasMesh?.attributes || {})\n };\n if (lasMesh) {\n lasMesh.schema = getLASSchema(lasMesh.loaderData, lasMesh.attributes);\n }\n return lasMesh;\n}\n/**\n * parse laz data\n * @param rawData\n * @param skip\n * @param onParseData\n * @return parsed point cloud\n */\n/* eslint-enable max-statements */\nexport function parseLASChunked(rawData, skip, onParseData = {}) {\n const dataHandler = new LASFile(rawData);\n try {\n // open data\n dataHandler.open();\n const header = dataHandler.getHeader();\n // start loading\n const Unpacker = dataHandler.getUnpacker();\n const totalToRead = Math.ceil(header.pointsCount / Math.max(1, skip));\n header.totalToRead = totalToRead;\n let totalRead = 0;\n /* eslint-disable no-constant-condition */\n while (true) {\n const chunk = dataHandler.readData(1000 * 100, 0, skip);\n totalRead += chunk.count;\n header.totalRead = totalRead;\n header.versionAsString = chunk.versionAsString;\n header.isCompressed = chunk.isCompressed;\n const unpacker = new Unpacker(chunk.buffer, chunk.count, header);\n // surface unpacker and progress via call back\n // use unpacker.pointsCount and unpacker.getPoint(i) to handle data in app\n onParseData(unpacker, header);\n if (!chunk.hasMoreData || totalRead >= totalToRead) {\n break;\n }\n }\n }\n catch (e) {\n throw e;\n }\n finally {\n dataHandler.close();\n }\n}\n/**\n * @param decoder\n * @param batchSize\n * @param colorDepth\n * @returns boolean\n */\nfunction detectTwoByteColors(decoder = {}, batchSize, colorDepth) {\n let twoByteColor = false;\n switch (colorDepth) {\n case 8:\n twoByteColor = false;\n break;\n case 16:\n twoByteColor = true;\n break;\n case 'auto':\n if (decoder.getPoint(0).color) {\n for (let i = 0; i < batchSize; i++) {\n const { color } = decoder.getPoint(i);\n // eslint-disable-next-line max-depth\n if (color[0] > 255 || color[1] > 255 || color[2] > 255) {\n twoByteColor = true;\n }\n }\n }\n break;\n default:\n // eslint-disable-next-line\n console.warn('las: illegal value for options.las.colorDepth');\n break;\n }\n return twoByteColor;\n}\n", "import { LASLoader as LASWorkerLoader } from \"./las-loader.js\";\nimport { parseLAS } from \"./lib/parse-las.js\";\nexport { LASWorkerLoader };\n/**\n * Loader for the LAS (LASer) point cloud format\n * @note Does not support LAS v1.4\n */\nexport const LASLoader = {\n ...LASWorkerLoader,\n parse: async (arrayBuffer, options) => parseLAS(arrayBuffer, options),\n parseSync: (arrayBuffer, options) => parseLAS(arrayBuffer, options)\n};\n", "import type {SceneModel} from \"@xeokit/scene\";\nimport type {DataModel} from \"@xeokit/data\";\nimport {SDKError} from \"@xeokit/core\";\nimport {createMat4, createVec3, transformPoint3} from \"@xeokit/matrix\";\nimport {BasicAggregation, BasicEntity} from \"@xeokit/basictypes\";\nimport {createUUID} from \"@xeokit/utils\";\nimport {PointsPrimitive} from \"@xeokit/constants\";\nimport {parse} from '@loaders.gl/core';\nimport {LASLoader} from '@loaders.gl/las';\nimport {FloatArrayParam} from \"@xeokit/math\";\n\nconst MAX_VERTICES = 500000; // TODO: Rough estimate\n\n/**\n * Loads LAS/LAZ file data from an ArrayBuffer into a {@link @xeokit/scene!SceneModel | SceneModel} and/or a {@link @xeokit/data!DataModel | DataModel}.\n *\n * * Expects {@link @xeokit/scene!SceneModel.built | SceneModel.built} and {@link @xeokit/scene!SceneModel.destroyed | SceneModel.destroyed} to be ````false````\n * * Does not call {@link @xeokit/scene!SceneModel.build | SceneModel.build} - we call that ourselves, when we have finished building the SceneModel\n *\n * See {@link \"@xeokit/las\"} for usage.\n *\n * @param params - Loading parameters.\n * @param params.fileData - LAS/LAZ file data\n * @param params.sceneModel - SceneModel to load into.\n * @param params.dataModel - DataModel to load into.\n * @param params.center - Whether to center the points. Default is false.\n * @param params.transform - Optional flattened 4x4 matrix to transform the points. Applied after centering, if specified.\n * @param params.skip - Option to oad every **n** points. Default is 1.\n * @param params.fp64 - Whether to assume that LAS positions are stored in 64-bit floats instead of 32-bit. Default is true.\n * @param params.colorDepth - Whether to assume that LAS colors are encoded using 8 or 16 bits. Accepted values are 8, 16 an \"auto\".\n * @returns {Promise} Resolves when LAS has been loaded.\n * @throws *{@link @xeokit/core!SDKError | SDKError}*\n * * If the SceneModel has already been destroyed.\n * * If the SceneModel has already been built.\n * * If the DataModel has already been destroyed.\n * * If the DataModel has already been built.\n */\nexport function loadLAS(params: {\n fileData: ArrayBuffer,\n sceneModel: SceneModel,\n dataModel?: DataModel,\n center?: boolean;\n transform?: FloatArrayParam;\n skip?: number;\n fp64?: boolean;\n colorDepth?: string | number,\n log?: Function\n}): Promise {\n\n return new Promise(function (resolve, reject) {\n\n const dataModel = params.dataModel;\n const sceneModel = params.sceneModel;\n\n if (sceneModel?.destroyed) {\n throw new SDKError(\"SceneModel already destroyed\");\n }\n\n if (sceneModel?.built) {\n throw new SDKError(\"SceneModel already built\");\n }\n\n if (dataModel?.destroyed) {\n throw new SDKError(\"DataModel already destroyed\");\n }\n\n if (dataModel?.built) {\n throw new SDKError(\"DataModel already built\");\n }\n\n const skip = params.skip || 1;\n\n const log = (msg) => {\n if (params.log) {\n params.log(msg);\n }\n }\n\n parse(params.fileData, LASLoader, {\n las: {\n colorDepth: params.colorDepth || \"auto\",\n fp64: params.fp64 !== undefined ? params.fp64 : false\n }\n\n }).then((parsedData) => {\n\n const attributes = parsedData.attributes;\n\n const loaderData = parsedData.loaderData;\n const pointsFormatId = loaderData.pointsFormatId !== undefined ? loaderData.pointsFormatId : -1;\n\n if (!attributes.POSITION) {\n log(\"No positions found in file (expected for all LAS point formats)\");\n return;\n }\n\n let readAttributes: any = {};\n\n switch (pointsFormatId) {\n case 0:\n if (!attributes.intensity) {\n log(\"No intensities found in file (expected for LAS point format 0)\");\n return;\n }\n\n readAttributes = readIntensities(attributes.POSITION, attributes.intensity);\n break;\n case 1:\n if (!attributes.intensity) {\n log(\"No intensities found in file (expected for LAS point format 1)\");\n return;\n }\n readAttributes = readIntensities(attributes.POSITION, attributes.intensity);\n break;\n case 2:\n if (!attributes.intensity) {\n log(\"No intensities found in file (expected for LAS point format 2)\");\n return;\n }\n\n readAttributes = readColorsAndIntensities(attributes.POSITION, attributes.COLOR_0, attributes.intensity);\n break;\n case 3:\n if (!attributes.intensity) {\n log(\"No intensities found in file (expected for LAS point format 3)\");\n return;\n }\n readAttributes = readColorsAndIntensities(attributes.POSITION, attributes.COLOR_0, attributes.intensity);\n break;\n }\n\n const pointsChunks = chunkArray(readPositions(readAttributes.positions), MAX_VERTICES * 3);\n const colorsChunks = chunkArray(readAttributes.colors, MAX_VERTICES * 4);\n\n const meshIds = [];\n\n for (let j = 0, lenj = pointsChunks.length; j < lenj; j++) {\n\n const geometryId = `geometry-${j}`;\n\n const geometry = sceneModel.createGeometry({\n id: geometryId,\n primitive: PointsPrimitive,\n positions: pointsChunks[j],\n colors: colorsChunks[j]\n });\n\n if (geometry instanceof SDKError) {\n log(`[ERROR] Failed to load point cloud: ${geometry.message}`);\n } else {\n\n const meshId = `mesh-${j}`;\n meshIds.push(meshId);\n\n const mesh = sceneModel.createMesh({\n id: meshId,\n geometryId\n });\n\n if (mesh instanceof SDKError) {\n log(`[ERROR] Failed to load point cloud: ${mesh.message}`);\n }\n }\n }\n\n const entityId = createUUID();\n\n sceneModel.createObject({\n id: entityId,\n meshIds\n });\n\n if (dataModel) {\n\n const rootMetaObjectId = createUUID();\n\n dataModel.createObject({\n id: rootMetaObjectId,\n type: BasicEntity,\n name: \"Model\",\n });\n\n dataModel.createObject({\n id: entityId,\n type: BasicEntity,\n name: \"PointCloud (LAZ)\",\n });\n\n dataModel.createRelationship({\n type: BasicAggregation,\n relatingObjectId: rootMetaObjectId,\n relatedObjectId: entityId\n });\n }\n\n resolve();\n\n }, (errMsg) => {\n reject(errMsg);\n });\n\n function readPositions(positionsValue) {\n\n if (positionsValue) {\n if (params.center) {\n const centerPos = createVec3();\n const numPoints = positionsValue.length;\n for (let i = 0, len = positionsValue.length; i < len; i += 3) {\n centerPos[0] += positionsValue[i + 0];\n centerPos[1] += positionsValue[i + 1];\n centerPos[2] += positionsValue[i + 2];\n }\n centerPos[0] /= numPoints;\n centerPos[1] /= numPoints;\n centerPos[2] /= numPoints;\n for (let i = 0, len = positionsValue.length; i < len; i += 3) {\n positionsValue[i + 0] -= centerPos[0];\n positionsValue[i + 1] -= centerPos[1];\n positionsValue[i + 2] -= centerPos[2];\n }\n }\n if (params.transform) {\n const mat = createMat4(params.transform);\n const pos = createVec3();\n for (let i = 0, len = positionsValue.length; i < len; i += 3) {\n pos[0] = positionsValue[i + 0];\n pos[1] = positionsValue[i + 1];\n pos[2] = positionsValue[i + 2];\n transformPoint3(mat, pos, pos);\n positionsValue[i + 0] = pos[0];\n positionsValue[i + 1] = pos[1];\n positionsValue[i + 2] = pos[2];\n }\n }\n }\n return positionsValue;\n }\n\n function readColorsAndIntensities(attributesPosition, attributesColor, attributesIntensity) {\n const positionsValue = attributesPosition.value;\n const colors = attributesColor.value;\n const colorSize = attributesColor.size;\n const intensities = attributesIntensity.value;\n const colorsCompressedSize = intensities.length * 4;\n const positions = [];\n const colorsCompressed = new Uint8Array(colorsCompressedSize / skip);\n let count = skip;\n for (let i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, len = intensities.length; i < len; i++, k += colorSize, j += 4, l += 3) {\n if (count <= 0) {\n colorsCompressed[m++] = colors[k + 0];\n colorsCompressed[m++] = colors[k + 1];\n colorsCompressed[m++] = colors[k + 2];\n colorsCompressed[m++] = Math.round((intensities[i] / 65536) * 255);\n positions[n++] = positionsValue[l + 0];\n positions[n++] = positionsValue[l + 1];\n positions[n++] = positionsValue[l + 2];\n count = skip;\n } else {\n count--;\n }\n }\n return {\n positions,\n colors: colorsCompressed\n };\n }\n\n function readIntensities(attributesPosition, attributesIntensity) {\n const positionsValue = attributesPosition.value;\n const intensities = attributesIntensity.intensity;\n const colorsCompressedSize = intensities.length * 4;\n const positions = [];\n const colorsCompressed = new Uint8Array(colorsCompressedSize / skip);\n let count = skip;\n for (let i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, len = intensities.length; i < len; i++, k += 3, j += 4, l += 3) {\n if (count <= 0) {\n colorsCompressed[m++] = 0;\n colorsCompressed[m++] = 0;\n colorsCompressed[m++] = 0;\n colorsCompressed[m++] = Math.round((intensities[i] / 65536) * 255);\n positions[n++] = positionsValue[l + 0];\n positions[n++] = positionsValue[l + 1];\n positions[n++] = positionsValue[l + 2];\n count = skip;\n } else {\n count--;\n }\n }\n return {\n positions,\n colors: colorsCompressed\n };\n }\n\n function chunkArray(array, chunkSize) {\n if (chunkSize >= array.length) {\n return [array]; // One chunk\n }\n let result = [];\n for (let i = 0; i < array.length; i += chunkSize) {\n result.push(array.slice(i, i + chunkSize));\n }\n return result;\n }\n });\n}\n", "/**\n * [![npm version](https://badge.fury.io/js/%40xeokit%2Fgltf.svg)](https://badge.fury.io/js/%40xeokit%2Fgltf)\n * [![](https://data.jsdelivr.com/v1/package/npm/@xeokit/gltf/badge)](https://www.jsdelivr.com/package/npm/@xeokit/gltf)\n *\n * \n *\n * # xeokit glTF Importer\n *\n * ---\n *\n * ### *Import models from the industry standard glTF model file format*\n *\n * ---\n *\n * The xeokit SDK allows us to import 3D models from [glTF](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#gltf) (GL Transmission Format), a\n * file format that is a runtime asset delivery format for 3D scenes and models.\n *\n * glTF is a compact and efficient format for 3D content, allowing fast loading and rendering in apps and web\n * browsers. It stores geometry, materials, textures, animations, and scene hierarchy, and is open and royalty-free,\n * making it a popular choice for 3D content distribution and exchange.\n *\n * To import a glTF model into xeokit, use the {@link loadGLTF} function, which will load the file into\n * a {@link @xeokit/scene!SceneModel | SceneModel}.\n *\n *
\n *\n * [![](https://mermaid.ink/img/pako:eNpVkctOwzAQRX8lmhVIaZVHE6dRlVUFm1Ygygp548YTMErsynYkStV_x84DqDf2vTM-Mx5foFYcoYS6ZcZsBXvXrKOSSi401lYoGexevB7iwaFGiXt3ow0uVAZuCT7u6vjp8s0oao3M4tNg3d2P3rEXLZ8FR2O1Ont59fSZv1OMP-5eH56Za8PMNTabk9doUVfVaDWixS2zbFTmt62JN9LaifbHaXo5PMpjhsTbghQiCotFRSGmcPgHnUlz7PYahNCh7pjgbpBDLQr2AzukULojx4b1raXgarpU1lt1OMsaSqt7DKE_cTesafRQNqw1zkUurNL76XP8FsKJSSgv8AVlEqXLvMgzEufrjCRRFsIZylVULAuyIklKkoKQNLuG8K2Ug0bLLEoJidd55Ow0iQfY2xDzXVx_ANo5py0?type=png)](https://mermaid.live/edit#pako:eNpVkctOwzAQRX8lmhVIaZVHE6dRlVUFm1Ygygp548YTMErsynYkStV_x84DqDf2vTM-Mx5foFYcoYS6ZcZsBXvXrKOSSi401lYoGexevB7iwaFGiXt3ow0uVAZuCT7u6vjp8s0oao3M4tNg3d2P3rEXLZ8FR2O1Ont59fSZv1OMP-5eH56Za8PMNTabk9doUVfVaDWixS2zbFTmt62JN9LaifbHaXo5PMpjhsTbghQiCotFRSGmcPgHnUlz7PYahNCh7pjgbpBDLQr2AzukULojx4b1raXgarpU1lt1OMsaSqt7DKE_cTesafRQNqw1zkUurNL76XP8FsKJSSgv8AVlEqXLvMgzEufrjCRRFsIZylVULAuyIklKkoKQNLuG8K2Ug0bLLEoJidd55Ow0iQfY2xDzXVx_ANo5py0)\n *\n *
\n *\n * ## Installation\n *\n * ````bash\n * npm install @xeokit/gltf\n * ````\n *\n * ## Usage\n *\n * In the example below, we will create a {@link @xeokit/viewer!Viewer | Viewer} with\n * a {@link @xeokit/webglrenderer!WebGLRenderer | WebGLRenderer} and a {@link @xeokit/scene!Scene | Scene}, which holds model geometry and materials.\n *\n * On our Viewer, we will create a single {@link @xeokit/viewer!View | View} to render it to a canvas element on the page. We will\n * also attach a {@link @xeokit/cameracontrol!CameraControl | CameraControl} to our View, allowing us to control its camera with mouse and touch input.\n *\n * Within the Scene, we will create a {@link @xeokit/scene!SceneModel | SceneModel} to hold a model. We will then use\n * {@link @xeokit/gltf!loadGLTF | loadGLTF} to load\n * a binary glTF (GLB) file into our SceneModel.\n *\n * The {@link @xeokit/core!SDKError | SDKError} class will be used to handle any errors that may occur during this process.\n *\n * * [Run this example]()\n *\n * ````javascript\n * import {SDKError} from \"@xeokit/core\";\n * import {Scene} from \"@xeokit/scene\";\n * import {WebGLRenderer} from \"@xeokit/webglrenderer\";\n * import {Viewer} from \"@xeokit/viewer\";\n * import {CameraControl} from \"@xeokit/cameracontrol\";\n * import {loadGLTF} from \"@xeokit/gltf\";\n *\n * const scene = new Scene();\n *\n * const renderer = new WebGLRenderer({});\n *\n * const viewer = new Viewer({\n * id: \"myViewer\",\n * scene,\n * renderer\n * });\n *\n * const view = viewer.createView({\n * id: \"myView\",\n * elementId: \"myCanvas\" // << Ensure that this HTMLElement exists in the page\n * });\n *\n * if (view instanceof SDKError) {\n * console.error(`Error creating View: ${view.message}`);\n *\n * } else {\n *\n * view.camera.eye = [1841982.93, 10.03, -5173286.74];\n * view.camera.look = [1842009.49, 9.68, -5173295.85];\n * view.camera.up = [0.0, 1.0, 0.0];\n *\n * new CameraControl(view, {});\n *\n * const sceneModel = scene.createModel({\n * id: \"myModel\"\n * });\n *\n * if (sceneModel instanceof SDKError) {\n * console.error(`Error creating SceneModel: ${sceneModel.message}`);\n *\n * } else {\n *\n * fetch(\"model.glb\").then(response => {\n *\n * response.arrayBuffer().then(fileData => {\n *\n * loadGLTF({\n * fileData,\n * sceneModel\n * }).then(() => {\n *\n * sceneModel.build();\n *\n * }).catch(sdkError => {\n * sceneModel.destroy();\n * console.error(`Error loading glTF: ${sdkError.message}`);\n * });\n *\n * }).catch(message => {\n * console.error(`Error creating ArrayBuffer: ${message}`);\n * });\n *\n * }).catch(message => {\n * console.error(`Error fetching model: ${message}`);\n * });\n * }\n * }\n * ````\n *\n * @module @xeokit/gltf\n */\nexport * from \"./loadGLTF\";\n", "import { GLTFScenegraph } from \"../api/gltf-scenegraph.js\";\nimport { getPrimitiveTextureData } from \"./utils/3d-tiles-utils.js\";\nconst EXT_MESH_FEATURES_NAME = 'EXT_mesh_features';\nexport const name = EXT_MESH_FEATURES_NAME;\nexport async function decode(gltfData, options) {\n const scenegraph = new GLTFScenegraph(gltfData);\n decodeExtMeshFeatures(scenegraph, options);\n}\n/**\n * Decodes feature metadata from extension.\n * @param {GLTFScenegraph} scenegraph - Instance of the class for structured access to GLTF data.\n * @param {GLTFLoaderOptions} options - GLTFLoader options.\n */\nfunction decodeExtMeshFeatures(scenegraph, options) {\n const json = scenegraph.gltf.json;\n if (!json.meshes) {\n return;\n }\n // Iterate through all meshes/primitives.\n for (const mesh of json.meshes) {\n for (const primitive of mesh.primitives) {\n processMeshPrimitiveFeatures(scenegraph, primitive, options);\n }\n }\n}\n/**\n * Takes data from EXT_mesh_features and store it in 'data' property of featureIds.\n * If combined with EXT_structural_metadata, corresponding data are taken from the property tables of that extension.\n * @param {GLTFScenegraph} scenegraph - Instance of the class for structured access to GLTF data.\n * @param {GLTFMeshPrimitive} primitive - Primitive that contains extensions.\n * @param {GLTFLoaderOptions} options - GLTFLoader options.\n */\nfunction processMeshPrimitiveFeatures(scenegraph, primitive, options) {\n // Processing of mesh primitive features requires buffers to be loaded.\n if (!options?.gltf?.loadBuffers) {\n return;\n }\n const extension = primitive.extensions?.[EXT_MESH_FEATURES_NAME];\n const featureIds = extension?.featureIds;\n if (!featureIds) {\n return;\n }\n for (const featureId of featureIds) {\n let featureIdData;\n // Process \"Feature ID by Vertex\"\n if (typeof featureId.attribute !== 'undefined') {\n const accessorKey = `_FEATURE_ID_${featureId.attribute}`;\n const accessorIndex = primitive.attributes[accessorKey];\n featureIdData = scenegraph.getTypedArrayForAccessor(accessorIndex);\n }\n // Process \"Feature ID by Texture Coordinates\"\n else if (typeof featureId.texture !== 'undefined' && options?.gltf?.loadImages) {\n featureIdData = getPrimitiveTextureData(scenegraph, featureId.texture, primitive);\n }\n // Process \"Feature ID by Index\"\n else {\n /*\n When both featureId.attribute and featureId.texture are undefined,\n then the feature ID value for each vertex is given implicitly, via the index of the vertex.\n In this case, the featureCount must match the number of vertices of the mesh primitive.\n */\n // TODO: At the moment of writing we don't have a tileset with the data of that kind. Implement it later.\n featureIdData = [];\n }\n featureId.data = featureIdData;\n }\n}\n", "// Version constant cannot be imported, it needs to correspond to the build version of **this** module.\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nexport const VERSION = typeof \"4.2.1\" !== 'undefined' ? \"4.2.1\" : 'latest';\n", "import { isBrowser } from '@loaders.gl/loader-utils';\n// @ts-ignore TS2339: Property does not exist on type\nconst parseImageNode = globalThis.loaders?.parseImageNode;\nconst IMAGE_SUPPORTED = typeof Image !== 'undefined'; // NOTE: \"false\" positives if jsdom is installed\nconst IMAGE_BITMAP_SUPPORTED = typeof ImageBitmap !== 'undefined';\nconst NODE_IMAGE_SUPPORTED = Boolean(parseImageNode);\nconst DATA_SUPPORTED = isBrowser ? true : NODE_IMAGE_SUPPORTED;\n/**\n * Checks if a loaders.gl image type is supported\n * @param type image type string\n */\nexport function isImageTypeSupported(type) {\n switch (type) {\n case 'auto':\n // Should only ever be false in Node.js, if polyfills have not been installed...\n return IMAGE_BITMAP_SUPPORTED || IMAGE_SUPPORTED || DATA_SUPPORTED;\n case 'imagebitmap':\n return IMAGE_BITMAP_SUPPORTED;\n case 'image':\n return IMAGE_SUPPORTED;\n case 'data':\n return DATA_SUPPORTED;\n default:\n throw new Error(`@loaders.gl/images: image ${type} not supported in this environment`);\n }\n}\n/**\n * Returns the \"most performant\" supported image type on this platform\n * @returns image type string\n */\nexport function getDefaultImageType() {\n if (IMAGE_BITMAP_SUPPORTED) {\n return 'imagebitmap';\n }\n if (IMAGE_SUPPORTED) {\n return 'image';\n }\n if (DATA_SUPPORTED) {\n return 'data';\n }\n // This should only happen in Node.js\n throw new Error('Install \\'@loaders.gl/polyfills\\' to parse images under Node.js');\n}\n", "export function isImage(image) {\n return Boolean(getImageTypeOrNull(image));\n}\nexport function deleteImage(image) {\n switch (getImageType(image)) {\n case 'imagebitmap':\n image.close();\n break;\n default:\n // Nothing to do for images and image data objects\n }\n}\nexport function getImageType(image) {\n const format = getImageTypeOrNull(image);\n if (!format) {\n throw new Error('Not an image');\n }\n return format;\n}\nexport function getImageSize(image) {\n return getImageData(image);\n}\nexport function getImageData(image) {\n switch (getImageType(image)) {\n case 'data':\n return image;\n case 'image':\n case 'imagebitmap':\n // Extract the image data from the image via a canvas\n const canvas = document.createElement('canvas');\n // TODO - reuse the canvas?\n const context = canvas.getContext('2d');\n if (!context) {\n throw new Error('getImageData');\n }\n // @ts-ignore\n canvas.width = image.width;\n // @ts-ignore\n canvas.height = image.height;\n // @ts-ignore\n context.drawImage(image, 0, 0);\n // @ts-ignore\n return context.getImageData(0, 0, image.width, image.height);\n default:\n throw new Error('getImageData');\n }\n}\n// PRIVATE\n// eslint-disable-next-line complexity\nfunction getImageTypeOrNull(image) {\n if (typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap) {\n return 'imagebitmap';\n }\n if (typeof Image !== 'undefined' && image instanceof Image) {\n return 'image';\n }\n if (image && typeof image === 'object' && image.data && image.width && image.height) {\n return 'data';\n }\n return null;\n}\n", "// SVG parsing has limitations, e.g:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=606319\nconst SVG_DATA_URL_PATTERN = /^data:image\\/svg\\+xml/;\nconst SVG_URL_PATTERN = /\\.svg((\\?|#).*)?$/;\nexport function isSVG(url) {\n return url && (SVG_DATA_URL_PATTERN.test(url) || SVG_URL_PATTERN.test(url));\n}\nexport function getBlobOrSVGDataUrl(arrayBuffer, url) {\n if (isSVG(url)) {\n // Prepare a properly tagged data URL, and load using normal mechanism\n const textDecoder = new TextDecoder();\n let xmlText = textDecoder.decode(arrayBuffer);\n // TODO Escape in browser to support e.g. Chinese characters\n try {\n if (typeof unescape === 'function' && typeof encodeURIComponent === 'function') {\n xmlText = unescape(encodeURIComponent(xmlText));\n }\n }\n catch (error) {\n throw new Error(error.message);\n }\n // base64 encoding is safer. utf-8 fails in some browsers\n const src = `data:image/svg+xml;base64,${btoa(xmlText)}`;\n return src;\n }\n return getBlob(arrayBuffer, url);\n}\nexport function getBlob(arrayBuffer, url) {\n if (isSVG(url)) {\n // https://bugs.chromium.org/p/chromium/issues/detail?id=606319\n // return new Blob([new Uint8Array(arrayBuffer)], {type: 'image/svg+xml'});\n throw new Error('SVG cannot be parsed directly to imagebitmap');\n }\n // TODO - how to determine mime type? Param? Sniff here?\n return new Blob([new Uint8Array(arrayBuffer)]); // MIME type not needed?\n}\n", "import { getBlobOrSVGDataUrl } from \"./svg-utils.js\";\n// Parses html image from array buffer\nexport async function parseToImage(arrayBuffer, options, url) {\n // Note: image parsing requires conversion to Blob (for createObjectURL).\n // Potentially inefficient for not using `response.blob()` (and for File / Blob inputs)...\n // But presumably not worth adding 'blob' flag to loader objects?\n const blobOrDataUrl = getBlobOrSVGDataUrl(arrayBuffer, url);\n const URL = self.URL || self.webkitURL;\n const objectUrl = typeof blobOrDataUrl !== 'string' && URL.createObjectURL(blobOrDataUrl);\n try {\n return await loadToImage(objectUrl || blobOrDataUrl, options);\n }\n finally {\n if (objectUrl) {\n URL.revokeObjectURL(objectUrl);\n }\n }\n}\nexport async function loadToImage(url, options) {\n const image = new Image();\n image.src = url;\n // The `image.onload()` callback does not guarantee that the image has been decoded\n // so a main thread \"freeze\" can be incurred when using the image for the first time.\n // `Image.decode()` returns a promise that completes when image is decoded.\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/decode\n // Note: When calling `img.decode()`, we do not need to wait for `img.onload()`\n // Note: `HTMLImageElement.decode()` is not available in Edge and IE11\n if (options.image && options.image.decode && image.decode) {\n await image.decode();\n return image;\n }\n // Create a promise that tracks onload/onerror callbacks\n return await new Promise((resolve, reject) => {\n try {\n image.onload = () => resolve(image);\n image.onerror = (error) => {\n const message = error instanceof Error ? error.message : 'error';\n reject(new Error(message));\n };\n }\n catch (error) {\n reject(error);\n }\n });\n}\n", "import { isSVG, getBlob } from \"./svg-utils.js\";\nimport { parseToImage } from \"./parse-to-image.js\";\nconst EMPTY_OBJECT = {};\nlet imagebitmapOptionsSupported = true;\n/**\n * Asynchronously parses an array buffer into an ImageBitmap - this contains the decoded data\n * ImageBitmaps are supported on worker threads, but not supported on Edge, IE11 and Safari\n * https://developer.mozilla.org/en-US/docs/Web/API/ImageBitmap#Browser_compatibility\n *\n * TODO - createImageBitmap supports source rect (5 param overload), pass through?\n */\nexport async function parseToImageBitmap(arrayBuffer, options, url) {\n let blob;\n // Cannot parse SVG directly to ImageBitmap, parse to Image first\n if (isSVG(url)) {\n // Note: this only works on main thread\n const image = await parseToImage(arrayBuffer, options, url);\n blob = image;\n }\n else {\n // Create blob from the array buffer\n blob = getBlob(arrayBuffer, url);\n }\n const imagebitmapOptions = options && options.imagebitmap;\n return await safeCreateImageBitmap(blob, imagebitmapOptions);\n}\n/**\n * Safely creates an imageBitmap with options\n * *\n * Firefox crashes if imagebitmapOptions is supplied\n * Avoid supplying if not provided or supported, remember if not supported\n */\nasync function safeCreateImageBitmap(blob, imagebitmapOptions = null) {\n if (isEmptyObject(imagebitmapOptions) || !imagebitmapOptionsSupported) {\n imagebitmapOptions = null;\n }\n if (imagebitmapOptions) {\n try {\n // @ts-ignore Options\n return await createImageBitmap(blob, imagebitmapOptions);\n }\n catch (error) {\n console.warn(error); // eslint-disable-line\n imagebitmapOptionsSupported = false;\n }\n }\n return await createImageBitmap(blob);\n}\nfunction isEmptyObject(object) {\n // @ts-ignore\n for (const key in object || EMPTY_OBJECT) {\n return false;\n }\n return true;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n// code adapted from https://github.com/sindresorhus/file-type under MIT license\n/**\n * Tests if a buffer is in ISO base media file format (ISOBMFF) @see https://en.wikipedia.org/wiki/ISO_base_media_file_format\n * (ISOBMFF is a media container standard based on the Apple QuickTime container format)\n */\nexport function getISOBMFFMediaType(buffer) {\n // Almost all ISO base media files start with `ftyp` box. (It's not required to be first, but it's recommended to be.)\n if (!checkString(buffer, 'ftyp', 4)) {\n return null;\n }\n // Extra check: test for 8859-1 printable characters (for simplicity, it's a mask which also catches one non-printable character).\n if ((buffer[8] & 0x60) === 0x00) {\n return null;\n }\n // `ftyp` box must contain a brand major identifier, which must consist of ISO 8859-1 printable characters.\n return decodeMajorBrand(buffer);\n}\n/**\n * brands explained @see https://github.com/strukturag/libheif/issues/83\n * code adapted from @see https://github.com/sindresorhus/file-type/blob/main/core.js#L489-L492\n */\nexport function decodeMajorBrand(buffer) {\n const brandMajor = getUTF8String(buffer, 8, 12).replace('\\0', ' ').trim();\n switch (brandMajor) {\n case 'avif':\n case 'avis':\n return { extension: 'avif', mimeType: 'image/avif' };\n default:\n return null;\n }\n // We don't need these now, but they are easy to add\n // case 'mif1':\n // return {extension: 'heic', mimeType: 'image/heif'};\n // case 'msf1':\n // return {extension: 'heic', mimeType: 'image/heif-sequence'};\n // case 'heic':\n // case 'heix':\n // return {extension: 'heic', mimeType: 'image/heic'};\n // case 'hevc':\n // case 'hevx':\n // return {extension: 'heic', mimeType: 'image/heic-sequence'};\n // case 'qt':\n // return {ext: 'mov', mime: 'video/quicktime'};\n // case 'M4V':\n // case 'M4VH':\n // case 'M4VP':\n // return {ext: 'm4v', mime: 'video/x-m4v'};\n // case 'M4P':\n // return {ext: 'm4p', mime: 'video/mp4'};\n // case 'M4B':\n // return {ext: 'm4b', mime: 'audio/mp4'};\n // case 'M4A':\n // return {ext: 'm4a', mime: 'audio/x-m4a'};\n // case 'F4V':\n // return {ext: 'f4v', mime: 'video/mp4'};\n // case 'F4P':\n // return {ext: 'f4p', mime: 'video/mp4'};\n // case 'F4A':\n // return {ext: 'f4a', mime: 'audio/mp4'};\n // case 'F4B':\n // return {ext: 'f4b', mime: 'audio/mp4'};\n // case 'crx':\n // return {ext: 'cr3', mime: 'image/x-canon-cr3'};\n // default:\n // if (brandMajor.startsWith('3g')) {\n // if (brandMajor.startsWith('3g2')) {\n // return {ext: '3g2', mime: 'video/3gpp2'};\n // }\n // return {ext: '3gp', mime: 'video/3gpp'};\n // }\n // return {ext: 'mp4', mime: 'video/mp4'};\n}\n/** Interpret a chunk of bytes as a UTF8 string */\nfunction getUTF8String(array, start, end) {\n return String.fromCharCode(...array.slice(start, end));\n}\nfunction stringToBytes(string) {\n return [...string].map((character) => character.charCodeAt(0));\n}\nfunction checkString(buffer, header, offset = 0) {\n const headerBytes = stringToBytes(header);\n for (let i = 0; i < headerBytes.length; ++i) {\n if (headerBytes[i] !== buffer[i + offset]) {\n return false;\n }\n }\n return true;\n}\n", "// Attributions\n// * Based on binary-gltf-utils under MIT license: Copyright (c) 2016-17 Karl Cheng\nimport { getISOBMFFMediaType } from \"./parse-isobmff-binary.js\";\nconst BIG_ENDIAN = false;\nconst LITTLE_ENDIAN = true;\n/**\n * Extracts `{mimeType, width and height}` from a memory buffer containing a known image format\n * Currently supports `image/png`, `image/jpeg`, `image/bmp` and `image/gif`.\n * @param binaryData: DataView | ArrayBuffer image file memory to parse\n * @returns metadata or null if memory is not a valid image file format layout.\n */\nexport function getBinaryImageMetadata(binaryData) {\n const dataView = toDataView(binaryData);\n return (getPngMetadata(dataView) ||\n getJpegMetadata(dataView) ||\n getGifMetadata(dataView) ||\n getBmpMetadata(dataView) ||\n getISOBMFFMetadata(dataView));\n}\n// ISOBMFF\nfunction getISOBMFFMetadata(binaryData) {\n const buffer = new Uint8Array(binaryData instanceof DataView ? binaryData.buffer : binaryData);\n const mediaType = getISOBMFFMediaType(buffer);\n if (!mediaType) {\n return null;\n }\n return {\n mimeType: mediaType.mimeType,\n // TODO - decode width and height\n width: 0,\n height: 0\n };\n}\n// PNG\nfunction getPngMetadata(binaryData) {\n const dataView = toDataView(binaryData);\n // Check file contains the first 4 bytes of the PNG signature.\n const isPng = dataView.byteLength >= 24 && dataView.getUint32(0, BIG_ENDIAN) === 0x89504e47;\n if (!isPng) {\n return null;\n }\n // Extract size from a binary PNG file\n return {\n mimeType: 'image/png',\n width: dataView.getUint32(16, BIG_ENDIAN),\n height: dataView.getUint32(20, BIG_ENDIAN)\n };\n}\n// GIF\n// Extract size from a binary GIF file\n// TODO: GIF is not this simple\nfunction getGifMetadata(binaryData) {\n const dataView = toDataView(binaryData);\n // Check first 4 bytes of the GIF signature (\"GIF8\").\n const isGif = dataView.byteLength >= 10 && dataView.getUint32(0, BIG_ENDIAN) === 0x47494638;\n if (!isGif) {\n return null;\n }\n // GIF is little endian.\n return {\n mimeType: 'image/gif',\n width: dataView.getUint16(6, LITTLE_ENDIAN),\n height: dataView.getUint16(8, LITTLE_ENDIAN)\n };\n}\n// BMP\n// TODO: BMP is not this simple\nexport function getBmpMetadata(binaryData) {\n const dataView = toDataView(binaryData);\n // Check magic number is valid (first 2 characters should be \"BM\").\n // The mandatory bitmap file header is 14 bytes long.\n const isBmp = dataView.byteLength >= 14 &&\n dataView.getUint16(0, BIG_ENDIAN) === 0x424d &&\n dataView.getUint32(2, LITTLE_ENDIAN) === dataView.byteLength;\n if (!isBmp) {\n return null;\n }\n // BMP is little endian.\n return {\n mimeType: 'image/bmp',\n width: dataView.getUint32(18, LITTLE_ENDIAN),\n height: dataView.getUint32(22, LITTLE_ENDIAN)\n };\n}\n// JPEG\n// Extract width and height from a binary JPEG file\nfunction getJpegMetadata(binaryData) {\n const dataView = toDataView(binaryData);\n // Check file contains the JPEG \"start of image\" (SOI) marker\n // followed by another marker.\n const isJpeg = dataView.byteLength >= 3 &&\n dataView.getUint16(0, BIG_ENDIAN) === 0xffd8 &&\n dataView.getUint8(2) === 0xff;\n if (!isJpeg) {\n return null;\n }\n const { tableMarkers, sofMarkers } = getJpegMarkers();\n // Exclude the two byte SOI marker.\n let i = 2;\n while (i + 9 < dataView.byteLength) {\n const marker = dataView.getUint16(i, BIG_ENDIAN);\n // The frame that contains the width and height of the JPEG image.\n if (sofMarkers.has(marker)) {\n return {\n mimeType: 'image/jpeg',\n height: dataView.getUint16(i + 5, BIG_ENDIAN), // Number of lines\n width: dataView.getUint16(i + 7, BIG_ENDIAN) // Number of pixels per line\n };\n }\n // Miscellaneous tables/data preceding the frame header.\n if (!tableMarkers.has(marker)) {\n return null;\n }\n // Length includes size of length parameter but not the two byte header.\n i += 2;\n i += dataView.getUint16(i, BIG_ENDIAN);\n }\n return null;\n}\nfunction getJpegMarkers() {\n // Tables/misc header markers.\n // DQT, DHT, DAC, DRI, COM, APP_n\n const tableMarkers = new Set([0xffdb, 0xffc4, 0xffcc, 0xffdd, 0xfffe]);\n for (let i = 0xffe0; i < 0xfff0; ++i) {\n tableMarkers.add(i);\n }\n // SOF markers and DHP marker.\n // These markers are after tables/misc data.\n const sofMarkers = new Set([\n 0xffc0, 0xffc1, 0xffc2, 0xffc3, 0xffc5, 0xffc6, 0xffc7, 0xffc9, 0xffca, 0xffcb, 0xffcd, 0xffce,\n 0xffcf, 0xffde\n ]);\n return { tableMarkers, sofMarkers };\n}\n// TODO - move into image module?\nfunction toDataView(data) {\n if (data instanceof DataView) {\n return data;\n }\n if (ArrayBuffer.isView(data)) {\n return new DataView(data.buffer);\n }\n // TODO: make these functions work for Node.js buffers?\n // if (bufferToArrayBuffer) {\n // data = bufferToArrayBuffer(data);\n // }\n // Careful - Node Buffers will look like ArrayBuffers (keep after isBuffer)\n if (data instanceof ArrayBuffer) {\n return new DataView(data);\n }\n throw new Error('toDataView');\n}\n", "import { assert } from '@loaders.gl/loader-utils';\nimport { getBinaryImageMetadata } from \"../category-api/binary-image-api.js\";\n// Use polyfills if installed to parsed image using get-pixels\nexport async function parseToNodeImage(arrayBuffer, options) {\n const { mimeType } = getBinaryImageMetadata(arrayBuffer) || {};\n // @ts-ignore\n const parseImageNode = globalThis.loaders?.parseImageNode;\n assert(parseImageNode); // '@loaders.gl/polyfills not installed'\n // @ts-expect-error TODO should we throw error in this case?\n return await parseImageNode(arrayBuffer, mimeType);\n}\n", "import { assert } from '@loaders.gl/loader-utils';\nimport { isImageTypeSupported, getDefaultImageType } from \"../category-api/image-type.js\";\nimport { getImageData } from \"../category-api/parsed-image-api.js\";\nimport { parseToImage } from \"./parse-to-image.js\";\nimport { parseToImageBitmap } from \"./parse-to-image-bitmap.js\";\nimport { parseToNodeImage } from \"./parse-to-node-image.js\";\n// Parse to platform defined image type (data on node, ImageBitmap or HTMLImage on browser)\n// eslint-disable-next-line complexity\nexport async function parseImage(arrayBuffer, options, context) {\n options = options || {};\n const imageOptions = options.image || {};\n // The user can request a specific output format via `options.image.type`\n const imageType = imageOptions.type || 'auto';\n const { url } = context || {};\n // Note: For options.image.type === `data`, we may still need to load as `image` or `imagebitmap`\n const loadType = getLoadableImageType(imageType);\n let image;\n switch (loadType) {\n case 'imagebitmap':\n image = await parseToImageBitmap(arrayBuffer, options, url);\n break;\n case 'image':\n image = await parseToImage(arrayBuffer, options, url);\n break;\n case 'data':\n // Node.js loads imagedata directly\n image = await parseToNodeImage(arrayBuffer, options);\n break;\n default:\n assert(false);\n }\n // Browser: if options.image.type === 'data', we can now extract data from the loaded image\n if (imageType === 'data') {\n image = getImageData(image);\n }\n return image;\n}\n// Get a loadable image type from image type\nfunction getLoadableImageType(type) {\n switch (type) {\n case 'auto':\n case 'data':\n // Browser: For image data we need still need to load using an image format\n // Node: the default image type is `data`.\n return getDefaultImageType();\n default:\n // Throw an error if not supported\n isImageTypeSupported(type);\n return type;\n }\n}\n", "// import type { ImageType } from '@loaders.gl/schema';\nimport { VERSION } from \"./lib/utils/version.js\";\nimport { parseImage } from \"./lib/parsers/parse-image.js\";\nimport { getBinaryImageMetadata } from \"./lib/category-api/binary-image-api.js\";\nconst EXTENSIONS = ['png', 'jpg', 'jpeg', 'gif', 'webp', 'bmp', 'ico', 'svg', 'avif'];\nconst MIME_TYPES = [\n 'image/png',\n 'image/jpeg',\n 'image/gif',\n 'image/webp',\n 'image/avif',\n 'image/bmp',\n 'image/vnd.microsoft.icon',\n 'image/svg+xml'\n];\nconst DEFAULT_IMAGE_LOADER_OPTIONS = {\n image: {\n type: 'auto',\n decode: true // if format is HTML\n }\n // imagebitmap: {} - passes (platform dependent) parameters to ImageBitmap constructor\n};\n/**\n * Loads a platform-specific image type\n * Note: This type can be used as input data to WebGL texture creation\n */\nexport const ImageLoader = {\n dataType: null,\n batchType: null,\n id: 'image',\n module: 'images',\n name: 'Images',\n version: VERSION,\n mimeTypes: MIME_TYPES,\n extensions: EXTENSIONS,\n parse: parseImage,\n // TODO: byteOffset, byteLength;\n tests: [(arrayBuffer) => Boolean(getBinaryImageMetadata(new DataView(arrayBuffer)))],\n options: DEFAULT_IMAGE_LOADER_OPTIONS\n};\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { isBrowser } from '@loaders.gl/loader-utils';\nconst MIME_TYPES = [\n 'image/png',\n 'image/jpeg',\n 'image/gif',\n 'image/webp',\n 'image/avif',\n 'image/tiff',\n // TODO - what is the correct type for SVG\n 'image/svg',\n 'image/svg+xml',\n 'image/bmp',\n 'image/vnd.microsoft.icon'\n];\n/** Only one round of tests is performed */\nconst mimeTypeSupportedPromise = null;\n/** Run-time browser detection of file formats requires async tests for most precise results */\nexport async function getSupportedImageFormats() {\n if (mimeTypeSupportedPromise) {\n return await mimeTypeSupportedPromise;\n }\n const supportedMimeTypes = new Set();\n for (const mimeType of MIME_TYPES) {\n const supported = isBrowser\n ? await checkBrowserImageFormatSupportAsync(mimeType)\n : checkNodeImageFormatSupport(mimeType);\n if (supported) {\n supportedMimeTypes.add(mimeType);\n }\n }\n return supportedMimeTypes;\n}\n/** Cache sync values for speed */\nconst mimeTypeSupportedSync = {};\n/**\n * Check if image MIME type is supported. Result is cached to avoid repeated tests.\n */\nexport function isImageFormatSupported(mimeType) {\n if (mimeTypeSupportedSync[mimeType] === undefined) {\n const supported = isBrowser\n ? checkBrowserImageFormatSupport(mimeType)\n : checkNodeImageFormatSupport(mimeType);\n mimeTypeSupportedSync[mimeType] = supported;\n }\n return mimeTypeSupportedSync[mimeType];\n}\n/**\n * Checks that polyfills are installed and that mimeType is supported by polyfills\n * @todo Ideally polyfills should declare what formats they support, instead of storing that data here.\n */\nfunction checkNodeImageFormatSupport(mimeType) {\n const NODE_FORMAT_SUPPORT = ['image/png', 'image/jpeg', 'image/gif'];\n const imageFormatsNode = globalThis.loaders?.imageFormatsNode || NODE_FORMAT_SUPPORT;\n const parseImageNode = globalThis.loaders?.parseImageNode;\n return Boolean(parseImageNode) && imageFormatsNode.includes(mimeType);\n}\n/** Checks image format support synchronously.\n * @note Unreliable, fails on AVIF\n */\nfunction checkBrowserImageFormatSupport(mimeType) {\n switch (mimeType) {\n case 'image/avif': // Will fail\n case 'image/webp':\n return testBrowserImageFormatSupport(mimeType);\n default:\n return true;\n }\n}\nconst TEST_IMAGE = {\n 'image/avif': 'data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A=',\n // Lossy test image. Support for lossy images doesn't guarantee support for all WebP images.\n 'image/webp': 'data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA'\n};\n/** Checks WebP and AVIF support asynchronously */\nasync function checkBrowserImageFormatSupportAsync(mimeType) {\n const dataURL = TEST_IMAGE[mimeType];\n return dataURL ? await testBrowserImageFormatSupportAsync(dataURL) : true;\n}\n/**\n * Checks browser synchronously\n * Checks if toDataURL supports the mimeType.\n * @note Imperfect testOn Chrome this is true for WebP but not for AVIF\n */\nfunction testBrowserImageFormatSupport(mimeType) {\n try {\n const element = document.createElement('canvas');\n const dataURL = element.toDataURL(mimeType);\n return dataURL.indexOf(`data:${mimeType}`) === 0;\n }\n catch {\n // Probably Safari...\n return false;\n }\n}\n// Check WebPSupport asynchronously\nasync function testBrowserImageFormatSupportAsync(testImageDataURL) {\n return new Promise((resolve) => {\n const image = new Image();\n image.src = testImageDataURL;\n image.onload = () => resolve(image.height > 0);\n image.onerror = () => resolve(false);\n });\n}\n", "// Replacement for the external assert method to reduce bundle size\n// Note: We don't use the second \"message\" argument in calling code,\n// so no need to support it here\nexport function assert(condition, message) {\n if (!condition) {\n throw new Error(message || 'assert failed: gltf');\n }\n}\n", "export const COMPONENTS = {\n SCALAR: 1,\n VEC2: 2,\n VEC3: 3,\n VEC4: 4,\n MAT2: 4,\n MAT3: 9,\n MAT4: 16\n};\nexport const BYTES = {\n 5120: 1, // BYTE\n 5121: 1, // UNSIGNED_BYTE\n 5122: 2, // SHORT\n 5123: 2, // UNSIGNED_SHORT\n 5125: 4, // UNSIGNED_INT\n 5126: 4 // FLOAT\n};\n// ENUM LOOKUP\nexport function getBytesFromComponentType(componentType) {\n return BYTES[componentType];\n}\nexport function getSizeFromAccessorType(type) {\n return COMPONENTS[type];\n}\nexport function getGLEnumFromSamplerParameter(parameter) {\n const GL_TEXTURE_MAG_FILTER = 0x2800;\n const GL_TEXTURE_MIN_FILTER = 0x2801;\n const GL_TEXTURE_WRAP_S = 0x2802;\n const GL_TEXTURE_WRAP_T = 0x2803;\n const PARAMETER_MAP = {\n magFilter: GL_TEXTURE_MAG_FILTER,\n minFilter: GL_TEXTURE_MIN_FILTER,\n wrapS: GL_TEXTURE_WRAP_S,\n wrapT: GL_TEXTURE_WRAP_T\n };\n return PARAMETER_MAP[parameter];\n}\n", "import { assert } from \"../utils/assert.js\";\nimport { BYTES, COMPONENTS } from \"../gltf-utils/gltf-constants.js\";\n/**\n * Memory needed to store texture and all mipmap levels 1 + 1/4 + 1/16 + 1/64 + ...\n * Minimum 1.33, but due to GPU layout may be 1.5\n */\nconst MIPMAP_FACTOR = 1.33;\nconst TYPES = ['SCALAR', 'VEC2', 'VEC3', 'VEC4'];\nconst ARRAY_CONSTRUCTOR_TO_WEBGL_CONSTANT = [\n [Int8Array, 5120],\n [Uint8Array, 5121],\n [Int16Array, 5122],\n [Uint16Array, 5123],\n [Uint32Array, 5125],\n [Float32Array, 5126],\n [Float64Array, 5130]\n];\nconst ARRAY_TO_COMPONENT_TYPE = new Map(ARRAY_CONSTRUCTOR_TO_WEBGL_CONSTANT);\nconst ATTRIBUTE_TYPE_TO_COMPONENTS = {\n SCALAR: 1,\n VEC2: 2,\n VEC3: 3,\n VEC4: 4,\n MAT2: 4,\n MAT3: 9,\n MAT4: 16\n};\nconst ATTRIBUTE_COMPONENT_TYPE_TO_BYTE_SIZE = {\n 5120: 1,\n 5121: 1,\n 5122: 2,\n 5123: 2,\n 5125: 4,\n 5126: 4\n};\nconst ATTRIBUTE_COMPONENT_TYPE_TO_ARRAY = {\n 5120: Int8Array,\n 5121: Uint8Array,\n 5122: Int16Array,\n 5123: Uint16Array,\n 5125: Uint32Array,\n 5126: Float32Array\n};\nexport function getAccessorTypeFromSize(size) {\n const type = TYPES[size - 1];\n return type || TYPES[0];\n}\nexport function getComponentTypeFromArray(typedArray) {\n const componentType = ARRAY_TO_COMPONENT_TYPE.get(typedArray.constructor);\n if (!componentType) {\n throw new Error('Illegal typed array');\n }\n return componentType;\n}\nexport function getAccessorArrayTypeAndLength(accessor, bufferView) {\n const ArrayType = ATTRIBUTE_COMPONENT_TYPE_TO_ARRAY[accessor.componentType];\n const components = ATTRIBUTE_TYPE_TO_COMPONENTS[accessor.type];\n const bytesPerComponent = ATTRIBUTE_COMPONENT_TYPE_TO_BYTE_SIZE[accessor.componentType];\n const length = accessor.count * components;\n const byteLength = accessor.count * components * bytesPerComponent;\n assert(byteLength >= 0 && byteLength <= bufferView.byteLength);\n const componentByteSize = BYTES[accessor.componentType];\n const numberOfComponentsInElement = COMPONENTS[accessor.type];\n return { ArrayType, length, byteLength, componentByteSize, numberOfComponentsInElement };\n}\n/**\n * Calculate the GPU memory used by a GLTF tile, for both buffer and texture memory\n * @param gltf - the gltf content of a GLTF tile\n * @returns - total memory usage in bytes\n */\nexport function getMemoryUsageGLTF(gltf) {\n let { images, bufferViews } = gltf;\n images = images || [];\n bufferViews = bufferViews || [];\n const imageBufferViews = images.map((i) => i.bufferView);\n bufferViews = bufferViews.filter((view) => !imageBufferViews.includes(view));\n const bufferMemory = bufferViews.reduce((acc, view) => acc + view.byteLength, 0);\n // Assume each pixel of the texture is 4 channel with mimmaps (which add 33%)\n // TODO correctly handle compressed textures\n const pixelCount = images.reduce((acc, image) => {\n // @ts-ignore\n const { width, height } = image.image;\n return acc + width * height;\n }, 0);\n return bufferMemory + Math.ceil(4 * pixelCount * MIPMAP_FACTOR);\n}\n", "// TODO - GLTFScenegraph should use these\nimport { assert } from \"../utils/assert.js\";\nimport { getAccessorArrayTypeAndLength } from \"./gltf-utils.js\";\n// accepts buffer view index or buffer view object\n// returns a `Uint8Array`\nexport function getTypedArrayForBufferView(json, buffers, bufferViewIndex) {\n const bufferView = json.bufferViews[bufferViewIndex];\n assert(bufferView);\n // Get hold of the arrayBuffer\n const bufferIndex = bufferView.buffer;\n const binChunk = buffers[bufferIndex];\n assert(binChunk);\n const byteOffset = (bufferView.byteOffset || 0) + binChunk.byteOffset;\n return new Uint8Array(binChunk.arrayBuffer, byteOffset, bufferView.byteLength);\n}\n// accepts accessor index or accessor object\n// returns a `Uint8Array`\nexport function getTypedArrayForImageData(json, buffers, imageIndex) {\n const image = json.images[imageIndex];\n const bufferViewIndex = json.bufferViews[image.bufferView];\n return getTypedArrayForBufferView(json, buffers, bufferViewIndex);\n}\n/**\n * Gets data pointed by the accessor.\n * @param json - json part of gltf content of a GLTF tile.\n * @param buffers - Array containing buffers of data.\n * @param accessor - accepts accessor index or accessor object.\n * @returns {TypedArray} Typed array with type matching the type of data poited by the accessor.\n */\n// eslint-disable-next-line complexity\nexport function getTypedArrayForAccessor(json, buffers, accessor) {\n const gltfAccessor = typeof accessor === 'number' ? json.accessors?.[accessor] : accessor;\n if (!gltfAccessor) {\n throw new Error(`No gltf accessor ${JSON.stringify(accessor)}`);\n }\n const bufferView = json.bufferViews?.[gltfAccessor.bufferView || 0];\n if (!bufferView) {\n throw new Error(`No gltf buffer view for accessor ${bufferView}`);\n }\n // Get `arrayBuffer` the `bufferView` looks at\n const { arrayBuffer, byteOffset: bufferByteOffset } = buffers[bufferView.buffer];\n // Resulting byteOffset is sum of the buffer, accessor and bufferView byte offsets\n const byteOffset = (bufferByteOffset || 0) + (gltfAccessor.byteOffset || 0) + (bufferView.byteOffset || 0);\n // Deduce TypedArray type and its length from `accessor` and `bufferView` data\n const { ArrayType, length, componentByteSize, numberOfComponentsInElement } = getAccessorArrayTypeAndLength(gltfAccessor, bufferView);\n // 'length' is a whole number of components of all elements in the buffer pointed by the accessor\n // Multiplier to calculate the address of the element in the arrayBuffer\n const elementByteSize = componentByteSize * numberOfComponentsInElement;\n const elementAddressScale = bufferView.byteStride || elementByteSize;\n // Creare an array of component's type where all components (not just elements) will reside\n if (typeof bufferView.byteStride === 'undefined' || bufferView.byteStride === elementByteSize) {\n // No iterleaving\n const result = new ArrayType(arrayBuffer, byteOffset, length);\n return result;\n }\n // Iterleaving\n const result = new ArrayType(length);\n for (let i = 0; i < gltfAccessor.count; i++) {\n const values = new ArrayType(arrayBuffer, byteOffset + i * elementAddressScale, numberOfComponentsInElement);\n result.set(values, i * numberOfComponentsInElement);\n }\n return result;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { getBinaryImageMetadata } from '@loaders.gl/images';\nimport { padToNBytes, copyToArray } from '@loaders.gl/loader-utils';\nimport { assert } from \"../utils/assert.js\";\nimport { getAccessorTypeFromSize, getComponentTypeFromArray } from \"../gltf-utils/gltf-utils.js\";\nimport { getTypedArrayForAccessor as _getTypedArrayForAccessor } from \"../gltf-utils/get-typed-array.js\";\nfunction makeDefaultGLTFJson() {\n return {\n asset: {\n version: '2.0',\n generator: 'loaders.gl'\n },\n buffers: [],\n extensions: {},\n extensionsRequired: [],\n extensionsUsed: []\n };\n}\n/**\n * Class for structured access to GLTF data\n */\nexport class GLTFScenegraph {\n // internal\n gltf;\n sourceBuffers;\n byteLength;\n // TODO - why is this not GLTFWithBuffers - what happens to images?\n constructor(gltf) {\n // Declare locally so\n this.gltf = {\n json: gltf?.json || makeDefaultGLTFJson(),\n buffers: gltf?.buffers || [],\n images: gltf?.images || []\n };\n this.sourceBuffers = [];\n this.byteLength = 0;\n // Initialize buffers\n if (this.gltf.buffers && this.gltf.buffers[0]) {\n this.byteLength = this.gltf.buffers[0].byteLength;\n this.sourceBuffers = [this.gltf.buffers[0]];\n }\n }\n // Accessors\n get json() {\n return this.gltf.json;\n }\n getApplicationData(key) {\n // TODO - Data is already unpacked by GLBParser\n const data = this.json[key];\n return data;\n }\n getExtraData(key) {\n // TODO - Data is already unpacked by GLBParser\n const extras = (this.json.extras || {});\n return extras[key];\n }\n hasExtension(extensionName) {\n const isUsedExtension = this.getUsedExtensions().find((name) => name === extensionName);\n const isRequiredExtension = this.getRequiredExtensions().find((name) => name === extensionName);\n return typeof isUsedExtension === 'string' || typeof isRequiredExtension === 'string';\n }\n getExtension(extensionName) {\n const isExtension = this.getUsedExtensions().find((name) => name === extensionName);\n const extensions = this.json.extensions || {};\n return isExtension ? extensions[extensionName] : null;\n }\n getRequiredExtension(extensionName) {\n const isRequired = this.getRequiredExtensions().find((name) => name === extensionName);\n return isRequired ? this.getExtension(extensionName) : null;\n }\n getRequiredExtensions() {\n return this.json.extensionsRequired || [];\n }\n getUsedExtensions() {\n return this.json.extensionsUsed || [];\n }\n getRemovedExtensions() {\n return (this.json.extensionsRemoved || []);\n }\n getObjectExtension(object, extensionName) {\n const extensions = object.extensions || {};\n return extensions[extensionName];\n }\n getScene(index) {\n return this.getObject('scenes', index);\n }\n getNode(index) {\n return this.getObject('nodes', index);\n }\n getSkin(index) {\n return this.getObject('skins', index);\n }\n getMesh(index) {\n return this.getObject('meshes', index);\n }\n getMaterial(index) {\n return this.getObject('materials', index);\n }\n getAccessor(index) {\n return this.getObject('accessors', index);\n }\n // getCamera(index: number): object | null {\n // return null; // TODO: fix thi: object as null;\n // }\n getTexture(index) {\n return this.getObject('textures', index);\n }\n getSampler(index) {\n return this.getObject('samplers', index);\n }\n getImage(index) {\n return this.getObject('images', index);\n }\n getBufferView(index) {\n return this.getObject('bufferViews', index);\n }\n getBuffer(index) {\n return this.getObject('buffers', index);\n }\n getObject(array, index) {\n // check if already resolved\n if (typeof index === 'object') {\n return index;\n }\n const object = this.json[array] && this.json[array][index];\n if (!object) {\n throw new Error(`glTF file error: Could not find ${array}[${index}]`); // eslint-disable-line\n }\n return object;\n }\n /**\n * Accepts buffer view index or buffer view object\n * @returns a `Uint8Array`\n */\n getTypedArrayForBufferView(bufferView) {\n bufferView = this.getBufferView(bufferView);\n // @ts-ignore\n const bufferIndex = bufferView.buffer;\n // Get hold of the arrayBuffer\n // const buffer = this.getBuffer(bufferIndex);\n const binChunk = this.gltf.buffers[bufferIndex];\n assert(binChunk);\n // @ts-ignore\n const byteOffset = (bufferView.byteOffset || 0) + binChunk.byteOffset;\n // @ts-ignore\n return new Uint8Array(binChunk.arrayBuffer, byteOffset, bufferView.byteLength);\n }\n /** Accepts accessor index or accessor object\n * @returns a typed array with type that matches the types\n */\n getTypedArrayForAccessor(accessor) {\n // @ts-ignore\n const gltfAccessor = this.getAccessor(accessor);\n return _getTypedArrayForAccessor(this.gltf.json, this.gltf.buffers, gltfAccessor);\n }\n /** accepts accessor index or accessor object\n * returns a `Uint8Array`\n */\n getTypedArrayForImageData(image) {\n // @ts-ignore\n image = this.getAccessor(image);\n // @ts-ignore\n const bufferView = this.getBufferView(image.bufferView);\n const buffer = this.getBuffer(bufferView.buffer);\n // @ts-ignore\n const arrayBuffer = buffer.data;\n const byteOffset = bufferView.byteOffset || 0;\n return new Uint8Array(arrayBuffer, byteOffset, bufferView.byteLength);\n }\n // MODIFERS\n /**\n * Add an extra application-defined key to the top-level data structure\n */\n addApplicationData(key, data) {\n this.json[key] = data;\n return this;\n }\n /**\n * `extras` - Standard GLTF field for storing application specific data\n */\n addExtraData(key, data) {\n this.json.extras = this.json.extras || {};\n this.json.extras[key] = data;\n return this;\n }\n addObjectExtension(object, extensionName, data) {\n // @ts-ignore\n object.extensions = object.extensions || {};\n // TODO - clobber or merge?\n // @ts-ignore\n object.extensions[extensionName] = data;\n this.registerUsedExtension(extensionName);\n return this;\n }\n setObjectExtension(object, extensionName, data) {\n const extensions = object.extensions || {};\n extensions[extensionName] = data;\n // TODO - add to usedExtensions...\n }\n removeObjectExtension(object, extensionName) {\n const extensions = object?.extensions || {};\n if (extensions[extensionName]) {\n this.json.extensionsRemoved = this.json.extensionsRemoved || [];\n const extensionsRemoved = this.json.extensionsRemoved;\n if (!extensionsRemoved.includes(extensionName)) {\n extensionsRemoved.push(extensionName);\n }\n }\n delete extensions[extensionName];\n }\n /**\n * Add to standard GLTF top level extension object, mark as used\n */\n addExtension(extensionName, extensionData = {}) {\n assert(extensionData);\n this.json.extensions = this.json.extensions || {};\n this.json.extensions[extensionName] = extensionData;\n this.registerUsedExtension(extensionName);\n return extensionData;\n }\n /**\n * Standard GLTF top level extension object, mark as used and required\n */\n addRequiredExtension(extensionName, extensionData = {}) {\n assert(extensionData);\n this.addExtension(extensionName, extensionData);\n this.registerRequiredExtension(extensionName);\n return extensionData;\n }\n /**\n * Add extensionName to list of used extensions\n */\n registerUsedExtension(extensionName) {\n this.json.extensionsUsed = this.json.extensionsUsed || [];\n if (!this.json.extensionsUsed.find((ext) => ext === extensionName)) {\n this.json.extensionsUsed.push(extensionName);\n }\n }\n /**\n * Add extensionName to list of required extensions\n */\n registerRequiredExtension(extensionName) {\n this.registerUsedExtension(extensionName);\n this.json.extensionsRequired = this.json.extensionsRequired || [];\n if (!this.json.extensionsRequired.find((ext) => ext === extensionName)) {\n this.json.extensionsRequired.push(extensionName);\n }\n }\n /**\n * Removes an extension from the top-level list\n */\n removeExtension(extensionName) {\n if (this.json.extensions?.[extensionName]) {\n this.json.extensionsRemoved = this.json.extensionsRemoved || [];\n const extensionsRemoved = this.json.extensionsRemoved;\n if (!extensionsRemoved.includes(extensionName)) {\n extensionsRemoved.push(extensionName);\n }\n }\n if (this.json.extensions) {\n delete this.json.extensions[extensionName];\n }\n if (this.json.extensionsRequired) {\n this._removeStringFromArray(this.json.extensionsRequired, extensionName);\n }\n if (this.json.extensionsUsed) {\n this._removeStringFromArray(this.json.extensionsUsed, extensionName);\n }\n }\n /**\n * Set default scene which is to be displayed at load time\n */\n setDefaultScene(sceneIndex) {\n this.json.scene = sceneIndex;\n }\n /**\n * @todo: add more properties for scene initialization:\n * name`, `extensions`, `extras`\n * https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#reference-scene\n */\n addScene(scene) {\n const { nodeIndices } = scene;\n this.json.scenes = this.json.scenes || [];\n this.json.scenes.push({ nodes: nodeIndices });\n return this.json.scenes.length - 1;\n }\n /**\n * @todo: add more properties for node initialization:\n * `name`, `extensions`, `extras`, `camera`, `children`, `skin`, `rotation`, `scale`, `translation`, `weights`\n * https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#node\n */\n addNode(node) {\n const { meshIndex, matrix } = node;\n this.json.nodes = this.json.nodes || [];\n const nodeData = { mesh: meshIndex };\n if (matrix) {\n // @ts-ignore\n nodeData.matrix = matrix;\n }\n this.json.nodes.push(nodeData);\n return this.json.nodes.length - 1;\n }\n /** Adds a mesh to the json part */\n addMesh(mesh) {\n const { attributes, indices, material, mode = 4 } = mesh;\n const accessors = this._addAttributes(attributes);\n const glTFMesh = {\n primitives: [\n {\n attributes: accessors,\n mode\n }\n ]\n };\n if (indices) {\n const indicesAccessor = this._addIndices(indices);\n // @ts-ignore\n glTFMesh.primitives[0].indices = indicesAccessor;\n }\n if (Number.isFinite(material)) {\n // @ts-ignore\n glTFMesh.primitives[0].material = material;\n }\n this.json.meshes = this.json.meshes || [];\n this.json.meshes.push(glTFMesh);\n return this.json.meshes.length - 1;\n }\n addPointCloud(attributes) {\n // @ts-ignore\n const accessorIndices = this._addAttributes(attributes);\n const glTFMesh = {\n primitives: [\n {\n attributes: accessorIndices,\n mode: 0 // GL.POINTS\n }\n ]\n };\n this.json.meshes = this.json.meshes || [];\n this.json.meshes.push(glTFMesh);\n return this.json.meshes.length - 1;\n }\n /**\n * Adds a binary image. Builds glTF \"JSON metadata\" and saves buffer reference\n * Buffer will be copied into BIN chunk during \"pack\"\n * Currently encodes as glTF image\n * @param imageData\n * @param mimeType\n */\n addImage(imageData, mimeTypeOpt) {\n // If image is referencing a bufferView instead of URI, mimeType must be defined:\n // https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#images\n // \"a reference to a bufferView; in that case mimeType must be defined.\"\n const metadata = getBinaryImageMetadata(imageData);\n const mimeType = mimeTypeOpt || metadata?.mimeType;\n const bufferViewIndex = this.addBufferView(imageData);\n const glTFImage = {\n bufferView: bufferViewIndex,\n mimeType\n };\n this.json.images = this.json.images || [];\n this.json.images.push(glTFImage);\n return this.json.images.length - 1;\n }\n /**\n * Add one untyped source buffer, create a matching glTF `bufferView`, and return its index\n * @param buffer\n */\n addBufferView(buffer, bufferIndex = 0, byteOffset = this.byteLength) {\n const byteLength = buffer.byteLength;\n assert(Number.isFinite(byteLength));\n // Add this buffer to the list of buffers to be written to the body.\n this.sourceBuffers = this.sourceBuffers || [];\n this.sourceBuffers.push(buffer);\n const glTFBufferView = {\n buffer: bufferIndex,\n // Write offset from the start of the binary body\n byteOffset,\n byteLength\n };\n // We've now added the contents to the body, so update the total length\n // Every sub-chunk needs to be 4-byte align ed\n this.byteLength += padToNBytes(byteLength, 4);\n // Add a bufferView indicating start and length of this binary sub-chunk\n this.json.bufferViews = this.json.bufferViews || [];\n this.json.bufferViews.push(glTFBufferView);\n return this.json.bufferViews.length - 1;\n }\n /**\n * Adds an accessor to a bufferView\n * @param bufferViewIndex\n * @param accessor\n */\n addAccessor(bufferViewIndex, accessor) {\n const glTFAccessor = {\n bufferView: bufferViewIndex,\n // @ts-ignore\n type: getAccessorTypeFromSize(accessor.size),\n // @ts-ignore\n componentType: accessor.componentType,\n // @ts-ignore\n count: accessor.count,\n // @ts-ignore\n max: accessor.max,\n // @ts-ignore\n min: accessor.min\n };\n this.json.accessors = this.json.accessors || [];\n this.json.accessors.push(glTFAccessor);\n return this.json.accessors.length - 1;\n }\n /**\n * Add a binary buffer. Builds glTF \"JSON metadata\" and saves buffer reference\n * Buffer will be copied into BIN chunk during \"pack\"\n * Currently encodes buffers as glTF accessors, but this could be optimized\n * @param sourceBuffer\n * @param accessor\n */\n addBinaryBuffer(sourceBuffer, accessor = { size: 3 }) {\n const bufferViewIndex = this.addBufferView(sourceBuffer);\n // @ts-ignore\n let minMax = { min: accessor.min, max: accessor.max };\n if (!minMax.min || !minMax.max) {\n // @ts-ignore\n minMax = this._getAccessorMinMax(sourceBuffer, accessor.size);\n }\n const accessorDefaults = {\n // @ts-ignore\n size: accessor.size,\n componentType: getComponentTypeFromArray(sourceBuffer),\n // @ts-ignore\n count: Math.round(sourceBuffer.length / accessor.size),\n min: minMax.min,\n max: minMax.max\n };\n return this.addAccessor(bufferViewIndex, Object.assign(accessorDefaults, accessor));\n }\n /**\n * Adds a texture to the json part\n * @todo: add more properties for texture initialization\n * `sampler`, `name`, `extensions`, `extras`\n * https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#texture\n */\n addTexture(texture) {\n const { imageIndex } = texture;\n const glTFTexture = {\n source: imageIndex\n };\n this.json.textures = this.json.textures || [];\n this.json.textures.push(glTFTexture);\n return this.json.textures.length - 1;\n }\n /** Adds a material to the json part */\n addMaterial(pbrMaterialInfo) {\n this.json.materials = this.json.materials || [];\n this.json.materials.push(pbrMaterialInfo);\n return this.json.materials.length - 1;\n }\n /** Pack the binary chunk */\n createBinaryChunk() {\n // Encoder expects this array undefined or empty\n this.gltf.buffers = [];\n // Allocate total array\n const totalByteLength = this.byteLength;\n const arrayBuffer = new ArrayBuffer(totalByteLength);\n const targetArray = new Uint8Array(arrayBuffer);\n // Copy each array into\n let dstByteOffset = 0;\n for (const sourceBuffer of this.sourceBuffers || []) {\n dstByteOffset = copyToArray(sourceBuffer, targetArray, dstByteOffset);\n }\n // Update the glTF BIN CHUNK byte length\n if (this.json?.buffers?.[0]) {\n this.json.buffers[0].byteLength = totalByteLength;\n }\n else {\n this.json.buffers = [{ byteLength: totalByteLength }];\n }\n // Save generated arrayBuffer\n this.gltf.binary = arrayBuffer;\n // Put arrayBuffer to sourceBuffers for possible additional writing data in the chunk\n this.sourceBuffers = [arrayBuffer];\n }\n // PRIVATE\n _removeStringFromArray(array, string) {\n let found = true;\n while (found) {\n const index = array.indexOf(string);\n if (index > -1) {\n array.splice(index, 1);\n }\n else {\n found = false;\n }\n }\n }\n /**\n * Add attributes to buffers and create `attributes` object which is part of `mesh`\n */\n _addAttributes(attributes = {}) {\n const result = {};\n for (const attributeKey in attributes) {\n const attributeData = attributes[attributeKey];\n const attrName = this._getGltfAttributeName(attributeKey);\n const accessor = this.addBinaryBuffer(attributeData.value, attributeData);\n result[attrName] = accessor;\n }\n return result;\n }\n /**\n * Add indices to buffers\n */\n _addIndices(indices) {\n return this.addBinaryBuffer(indices, { size: 1 });\n }\n /**\n * Deduce gltf specific attribue name from input attribute name\n */\n _getGltfAttributeName(attributeName) {\n switch (attributeName.toLowerCase()) {\n case 'position':\n case 'positions':\n case 'vertices':\n return 'POSITION';\n case 'normal':\n case 'normals':\n return 'NORMAL';\n case 'color':\n case 'colors':\n return 'COLOR_0';\n case 'texcoord':\n case 'texcoords':\n return 'TEXCOORD_0';\n default:\n return attributeName;\n }\n }\n /**\n * Calculate `min` and `max` arrays of accessor according to spec:\n * https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#reference-accessor\n */\n _getAccessorMinMax(buffer, size) {\n const result = { min: null, max: null };\n if (buffer.length < size) {\n return result;\n }\n // @ts-ignore\n result.min = [];\n // @ts-ignore\n result.max = [];\n const initValues = buffer.subarray(0, size);\n for (const value of initValues) {\n // @ts-ignore\n result.min.push(value);\n // @ts-ignore\n result.max.push(value);\n }\n for (let index = size; index < buffer.length; index += size) {\n for (let componentIndex = 0; componentIndex < size; componentIndex++) {\n // @ts-ignore\n result.min[0 + componentIndex] = Math.min(\n // @ts-ignore\n result.min[0 + componentIndex], buffer[index + componentIndex]);\n // @ts-ignore\n result.max[0 + componentIndex] = Math.max(\n // @ts-ignore\n result.max[0 + componentIndex], buffer[index + componentIndex]);\n }\n }\n return result;\n }\n}\n", "/**\n * loaders.gl, MIT license\n *\n * Shared code for 3DTiles extensions:\n * * EXT_feature_metadata\n * * EXT_mesh_features\n * * EXT_structural_metadata\n */\nimport { getComponentTypeFromArray } from \"../../gltf-utils/gltf-utils.js\";\nimport { getImageData } from '@loaders.gl/images';\nfunction emod(n) {\n return ((n % 1) + 1) % 1;\n}\nconst ATTRIBUTE_TYPE_TO_COMPONENTS = {\n SCALAR: 1,\n VEC2: 2,\n VEC3: 3,\n VEC4: 4,\n MAT2: 4,\n MAT3: 9,\n MAT4: 16,\n BOOLEAN: 1,\n STRING: 1,\n ENUM: 1\n};\nconst ATTRIBUTE_COMPONENT_TYPE_TO_ARRAY = {\n INT8: Int8Array,\n UINT8: Uint8Array,\n INT16: Int16Array,\n UINT16: Uint16Array,\n INT32: Int32Array,\n UINT32: Uint32Array,\n INT64: BigInt64Array,\n UINT64: BigUint64Array,\n FLOAT32: Float32Array,\n FLOAT64: Float64Array\n};\nconst ATTRIBUTE_COMPONENT_TYPE_TO_BYTE_SIZE = {\n INT8: 1,\n UINT8: 1,\n INT16: 2,\n UINT16: 2,\n INT32: 4,\n UINT32: 4,\n INT64: 8,\n UINT64: 8,\n FLOAT32: 4,\n FLOAT64: 8\n};\nexport function getArrayElementByteSize(attributeType, componentType) {\n return (ATTRIBUTE_COMPONENT_TYPE_TO_BYTE_SIZE[componentType] *\n ATTRIBUTE_TYPE_TO_COMPONENTS[attributeType]);\n}\n/**\n * Gets offset array from `arrayOffsets` or `stringOffsets`.\n * @param scenegraph - Instance of the class for structured access to GLTF data.\n * @param bufferViewIndex - Buffer view index\n * @param offsetType - The type of values in `arrayOffsets` or `stringOffsets`.\n * @param numberOfElements - The number of elements in each property array.\n * @returns Array of values offsets. The number of offsets in the array is equal to `numberOfElements` plus one.\n */\nexport function getOffsetsForProperty(scenegraph, bufferViewIndex, offsetType, numberOfElements) {\n if (offsetType !== 'UINT8' &&\n offsetType !== 'UINT16' &&\n offsetType !== 'UINT32' &&\n offsetType !== 'UINT64') {\n return null;\n }\n const arrayOffsetsBytes = scenegraph.getTypedArrayForBufferView(bufferViewIndex);\n const arrayOffsets = convertRawBufferToMetadataArray(arrayOffsetsBytes, 'SCALAR', // offsets consist of ONE component\n offsetType, numberOfElements + 1 // The number of offsets is equal to the property table `count` plus one.\n );\n // We don't support BigInt offsets at the moment. It requires additional logic and potential issues in Safari\n if (arrayOffsets instanceof BigInt64Array || arrayOffsets instanceof BigUint64Array) {\n return null;\n }\n return arrayOffsets;\n}\n/**\n * Converts raw bytes that are in the buffer to an array of the type defined by the schema.\n * @param data - Raw bytes in the buffer.\n * @param attributeType - SCALAR, VECN, MATN.\n * @param componentType - Type of the component in elements, e.g. 'UINT8' or 'FLOAT32'.\n * @param elementCount - Number of elements in the array. Default value is 1.\n * @returns Data array\n */\nexport function convertRawBufferToMetadataArray(data, attributeType, componentType, elementCount = 1) {\n const numberOfComponents = ATTRIBUTE_TYPE_TO_COMPONENTS[attributeType];\n const ArrayType = ATTRIBUTE_COMPONENT_TYPE_TO_ARRAY[componentType];\n const size = ATTRIBUTE_COMPONENT_TYPE_TO_BYTE_SIZE[componentType];\n const length = elementCount * numberOfComponents;\n const byteLength = length * size;\n let buffer = data.buffer;\n let offset = data.byteOffset;\n if (offset % size !== 0) {\n const bufferArray = new Uint8Array(buffer);\n buffer = bufferArray.slice(offset, offset + byteLength).buffer;\n offset = 0;\n }\n return new ArrayType(buffer, offset, length);\n}\n/**\n * Processes data encoded in the texture associated with the primitive.\n * @param scenegraph - Instance of the class for structured access to GLTF data.\n * @param textureInfo - Reference to the texture where extension data are stored.\n * @param primitive - Primitive object in the mesh.\n * @returns Array of data taken. Null if data can't be taken from the texture.\n */\nexport function getPrimitiveTextureData(scenegraph, textureInfo, primitive) {\n /*\n texture.index is an index for the \"textures\" array.\n The texture object referenced by this index looks like this:\n {\n \"sampler\": 0,\n \"source\": 0\n }\n \"sampler\" is an index for the \"samplers\" array\n \"source\" is an index for the \"images\" array that contains data stored in rgba channels of the image.\n \n texture.texCoord is a number-suffix (like 1) for an attribute like \"TEXCOORD_1\" in meshes.primitives\n The value of \"TEXCOORD_1\" is an accessor that is used to get coordinates.\n These coordinates are being used to get data from the image.\n \n Default for texture.texCoord is 0\n @see https://github.com/CesiumGS/glTF/blob/3d-tiles-next/specification/2.0/schema/textureInfo.schema.json\n */\n const texCoordAccessorKey = `TEXCOORD_${textureInfo.texCoord || 0}`;\n const texCoordAccessorIndex = primitive.attributes[texCoordAccessorKey];\n const textureCoordinates = scenegraph.getTypedArrayForAccessor(texCoordAccessorIndex);\n const json = scenegraph.gltf.json;\n const textureIndex = textureInfo.index;\n const imageIndex = json.textures?.[textureIndex]?.source;\n if (typeof imageIndex !== 'undefined') {\n const mimeType = json.images?.[imageIndex]?.mimeType;\n const parsedImage = scenegraph.gltf.images?.[imageIndex];\n // Checking for width is to prevent handling Un-processed images (e.g. [analyze] stage, where loadImages option is set to false)\n if (parsedImage && typeof parsedImage.width !== 'undefined') {\n const textureData = [];\n for (let index = 0; index < textureCoordinates.length; index += 2) {\n const value = getImageValueByCoordinates(parsedImage, mimeType, textureCoordinates, index, textureInfo.channels);\n textureData.push(value);\n }\n return textureData;\n }\n }\n return [];\n}\n/**\n * Puts property data to attributes.\n * It creates corresponding buffer, bufferView and accessor\n * so the data can be accessed like regular data stored in buffers.\n * @param scenegraph - Scenegraph object.\n * @param attributeName - Name of the attribute.\n * @param propertyData - Property data to store.\n * @param featureTable - Array where unique data from the property data are being stored.\n * @param primitive - Primitive object.\n */\nexport function primitivePropertyDataToAttributes(scenegraph, attributeName, propertyData, featureTable, primitive) {\n // No reason to create an empty buffer if there is no property data to store.\n if (!propertyData?.length) {\n return;\n }\n /*\n featureTable will contain unique values, e.g.\n propertyData = [24, 35, 28, 24]\n featureTable = [24, 35, 28]\n featureIndices will contain indices that refer featureTextureTable, e.g.\n featureIndices = [0, 1, 2, 0]\n */\n const featureIndices = [];\n for (const texelData of propertyData) {\n let index = featureTable.findIndex((item) => item === texelData);\n if (index === -1) {\n index = featureTable.push(texelData) - 1;\n }\n featureIndices.push(index);\n }\n const typedArray = new Uint32Array(featureIndices);\n const bufferIndex = scenegraph.gltf.buffers.push({\n arrayBuffer: typedArray.buffer,\n byteOffset: typedArray.byteOffset,\n byteLength: typedArray.byteLength\n }) - 1;\n const bufferViewIndex = scenegraph.addBufferView(typedArray, bufferIndex, 0);\n const accessorIndex = scenegraph.addAccessor(bufferViewIndex, {\n size: 1,\n componentType: getComponentTypeFromArray(typedArray),\n count: typedArray.length\n });\n primitive.attributes[attributeName] = accessorIndex;\n}\n/**\n * Gets the value from the texture by coordinates provided.\n * @param parsedImage - Image where the data are stored.\n * @param mimeType - MIME type.\n * @param textureCoordinates - uv coordinates to access data in the image.\n * @param index - Index of uv coordinates in the array textureCoordinates.\n * @param channels - Image channels where data are stored.\n * Channels of an RGBA texture are numbered 0..3 respectively.\n * For Ext_mesh_features and EXT_strucural_metadata the channels default is [0]\n * @see https://github.com/CesiumGS/glTF/blob/3d-tiles-next/extensions/2.0/Vendor/EXT_mesh_features/schema/featureIdTexture.schema.json\n * @see https://github.com/CesiumGS/glTF/blob/3d-tiles-next/extensions/2.0/Vendor/EXT_structural_metadata/schema/propertyTexture.property.schema.json\n * @returns Value taken from the image.\n */\nfunction getImageValueByCoordinates(parsedImage, mimeType, textureCoordinates, index, channels = [0]) {\n const CHANNELS_MAP = {\n r: { offset: 0, shift: 0 },\n g: { offset: 1, shift: 8 },\n b: { offset: 2, shift: 16 },\n a: { offset: 3, shift: 24 }\n };\n const u = textureCoordinates[index];\n const v = textureCoordinates[index + 1];\n let components = 1;\n if (mimeType && (mimeType.indexOf('image/jpeg') !== -1 || mimeType.indexOf('image/png') !== -1))\n components = 4;\n const offset = coordinatesToOffset(u, v, parsedImage, components);\n let value = 0;\n for (const c of channels) {\n /*\n According to the EXT_feature_metadata extension specification:\n Channels are labeled by rgba and are swizzled with a string of 1-4 characters.\n According to the EXT_mesh_features extension specification:\n The channels array contains non-negative integer values corresponding to channels of the source texture that the feature ID consists of.\n Channels of an RGBA texture are numbered 0\u20133 respectively.\n Function getImageValueByCoordinates is used to process both extensions.\n So, there should be possible to get the element of CHANNELS_MAP by either index (0, 1, 2, 3) or key (r, g, b, a).\n */\n const map = typeof c === 'number' ? Object.values(CHANNELS_MAP)[c] : CHANNELS_MAP[c];\n const imageOffset = offset + map.offset;\n const imageData = getImageData(parsedImage);\n if (imageData.data.length <= imageOffset) {\n throw new Error(`${imageData.data.length} <= ${imageOffset}`);\n }\n const imageValue = imageData.data[imageOffset];\n value |= imageValue << map.shift;\n }\n return value;\n}\n/**\n * Retrieves the offset in the image where the data are stored.\n * @param u - u-coordinate.\n * @param v - v-coordinate.\n * @param parsedImage - Image where the data are stored.\n * @param componentsCount - Number of components the data consists of.\n * @returns Offset in the image where the data are stored.\n */\nfunction coordinatesToOffset(u, v, parsedImage, componentsCount = 1) {\n const w = parsedImage.width;\n const iX = emod(u) * (w - 1);\n const indX = Math.round(iX);\n const h = parsedImage.height;\n const iY = emod(v) * (h - 1);\n const indY = Math.round(iY);\n const components = parsedImage.components ? parsedImage.components : componentsCount;\n // components is a number of channels in the image\n const offset = (indY * w + indX) * components;\n return offset;\n}\n/**\n * Parses variable-length array data.\n * In this case every value of the property in the table will be an array\n * of arbitrary length.\n * @param valuesData - Values in a flat typed array.\n * @param numberOfElements - Number of rows in the property table.\n * @param arrayOffsets - Offsets of nested arrays in the flat values array.\n * @param valuesDataBytesLength - Data byte length.\n * @param valueSize - Value size in bytes.\n * @returns Array of typed arrays.\n */\nexport function parseVariableLengthArrayNumeric(valuesData, numberOfElements, arrayOffsets, valuesDataBytesLength, valueSize) {\n const attributeValueArray = [];\n for (let index = 0; index < numberOfElements; index++) {\n const arrayOffset = arrayOffsets[index];\n const arrayByteSize = arrayOffsets[index + 1] - arrayOffsets[index];\n if (arrayByteSize + arrayOffset > valuesDataBytesLength) {\n break;\n }\n const typedArrayOffset = arrayOffset / valueSize;\n const elementCount = arrayByteSize / valueSize;\n attributeValueArray.push(valuesData.slice(typedArrayOffset, typedArrayOffset + elementCount));\n }\n return attributeValueArray;\n}\n/**\n * Parses fixed-length array data.\n * In this case every value of the property in the table will be an array\n * of constant length equal to `arrayCount`.\n * @param valuesData - Values in a flat typed array.\n * @param numberOfElements - Number of rows in the property table.\n * @param arrayCount - Nested arrays length.\n * @returns Array of typed arrays.\n */\nexport function parseFixedLengthArrayNumeric(valuesData, numberOfElements, arrayCount) {\n const attributeValueArray = [];\n for (let index = 0; index < numberOfElements; index++) {\n const elementOffset = index * arrayCount;\n attributeValueArray.push(valuesData.slice(elementOffset, elementOffset + arrayCount));\n }\n return attributeValueArray;\n}\n/**\n * Decodes properties of string type from binary source.\n * @param numberOfElements - The number of elements in each property array that propertyTableProperty contains. It's a number of rows in the table.\n * @param valuesDataBytes - Data taken from values property of the property table property.\n * @param arrayOffsets - Offsets for variable-length arrays. It's null for fixed-length arrays or scalar types.\n * @param stringOffsets - Index of the buffer view containing offsets for strings. It should be available for string type.\n * @returns String property values\n */\nexport function getPropertyDataString(numberOfElements, valuesDataBytes, arrayOffsets, stringOffsets) {\n if (arrayOffsets) {\n // TODO: implement it as soon as we have the corresponding tileset\n throw new Error('Not implemented - arrayOffsets for strings is specified');\n }\n if (stringOffsets) {\n const stringsArray = [];\n const textDecoder = new TextDecoder('utf8');\n let stringOffset = 0;\n for (let index = 0; index < numberOfElements; index++) {\n const stringByteSize = stringOffsets[index + 1] - stringOffsets[index];\n if (stringByteSize + stringOffset <= valuesDataBytes.length) {\n const stringData = valuesDataBytes.subarray(stringOffset, stringByteSize + stringOffset);\n const stringAttribute = textDecoder.decode(stringData);\n stringsArray.push(stringAttribute);\n stringOffset += stringByteSize;\n }\n }\n return stringsArray;\n }\n return [];\n}\n", "import { GLTFScenegraph } from \"../api/gltf-scenegraph.js\";\nimport { convertRawBufferToMetadataArray, getPrimitiveTextureData, primitivePropertyDataToAttributes, getArrayElementByteSize, getOffsetsForProperty, parseVariableLengthArrayNumeric, parseFixedLengthArrayNumeric, getPropertyDataString } from \"./utils/3d-tiles-utils.js\";\nconst EXT_STRUCTURAL_METADATA_NAME = 'EXT_structural_metadata';\nexport const name = EXT_STRUCTURAL_METADATA_NAME;\nexport async function decode(gltfData, options) {\n const scenegraph = new GLTFScenegraph(gltfData);\n decodeExtStructuralMetadata(scenegraph, options);\n}\n/*\n// Example of the extension.\n// See more info at https://github.com/CesiumGS/glTF/tree/3d-tiles-next/extensions/2.0/Vendor/EXT_structural_metadata\nconst extensions = {\n \"extensions\": {\n \"EXT_structural_metadata\": {\n \"schema\": {\n \"classes\": {\n \"tree\": {\n \"name\": \"Tree\",\n \"description\": \"Woody, perennial plant.\",\n \"properties\": {\n \"species\": {\n \"description\": \"Type of tree.\",\n \"type\": \"ENUM\",\n \"enumType\": \"speciesEnum\",\n \"required\": true\n },\n \"age\": {\n \"description\": \"The age of the tree, in years\",\n \"type\": \"SCALAR\",\n \"componentType\": \"UINT8\",\n \"required\": true\n }\n }\n }\n },\n \"enums\": {\n \"speciesEnum\": {\n \"name\": \"Species\",\n \"description\": \"An example enum for tree species.\",\n // valueType is not defined here. Default is \"UINT16\"\n \"values\": [\n { \"name\": \"Unspecified\", \"value\": 0 },\n { \"name\": \"Oak\", \"value\": 1 }\n ]\n }\n }\n },\n \"propertyTables\": [{\n \"name\": \"tree_survey_2021-09-29\",\n \"class\": \"tree\",\n \"count\": 10, // The number of elements in each property array (in `species`, in `age`).\n \"properties\": {\n \"species\": {\n \"values\": 0, // It's an index of the buffer view containing property values.\n },\n \"age\": {\n \"values\": 1\n }\n }\n }]\n }\n }\n}\n*/\n/**\n * Decodes feature metadata from extension.\n * @param scenegraph - Instance of the class for structured access to GLTF data.\n * @param options - GLTFLoader options.\n */\nfunction decodeExtStructuralMetadata(scenegraph, options) {\n // Decoding metadata involves buffers processing.\n // So, if buffers have not been loaded, there is no reason to process metadata.\n if (!options.gltf?.loadBuffers) {\n return;\n }\n const extension = scenegraph.getExtension(EXT_STRUCTURAL_METADATA_NAME);\n if (!extension) {\n return;\n }\n if (options.gltf?.loadImages) {\n decodePropertyTextures(scenegraph, extension);\n }\n decodePropertyTables(scenegraph, extension);\n}\n/**\n * Processes the data stored in the textures\n * @param scenegraph - Instance of the class for structured access to GLTF data.\n * @param extension - Top-level extension.\n */\nfunction decodePropertyTextures(scenegraph, extension) {\n const propertyTextures = extension.propertyTextures;\n const json = scenegraph.gltf.json;\n if (propertyTextures && json.meshes) {\n // Iterate through all meshes/primitives.\n for (const mesh of json.meshes) {\n for (const primitive of mesh.primitives) {\n processPrimitivePropertyTextures(scenegraph, propertyTextures, primitive, extension);\n }\n }\n }\n}\n/**\n * Processes the data stored in the property tables.\n * @param scenegraph - Instance of the class for structured access to GLTF data.\n * @param extension - Top-level extension.\n */\nfunction decodePropertyTables(scenegraph, extension) {\n const schema = extension.schema;\n if (!schema) {\n return;\n }\n const schemaClasses = schema.classes;\n const propertyTables = extension.propertyTables;\n if (schemaClasses && propertyTables) {\n for (const schemaName in schemaClasses) {\n const propertyTable = findPropertyTableByClass(propertyTables, schemaName);\n if (propertyTable) {\n processPropertyTable(scenegraph, schema, propertyTable);\n }\n }\n }\n}\n/**\n * Finds the property table by class name.\n * @param propertyTables - propertyTable definition taken from the top-level extension.\n * @param schemaClassName - class name in the extension schema.\n */\nfunction findPropertyTableByClass(propertyTables, schemaClassName) {\n for (const propertyTable of propertyTables) {\n if (propertyTable.class === schemaClassName) {\n return propertyTable;\n }\n }\n return null;\n}\n/**\n * Takes data from property textures reffered by the primitive.\n * @param scenegraph - Instance of the class for structured access to GLTF data.\n * @param propertyTextures - propertyTexture definition taken from the top-level extention.\n * @param primitive - Primitive object.\n * @param extension - Top-level extension.\n */\nfunction processPrimitivePropertyTextures(scenegraph, propertyTextures, primitive, extension) {\n if (!propertyTextures) {\n return;\n }\n const primitiveExtension = primitive.extensions?.[EXT_STRUCTURAL_METADATA_NAME];\n const primitivePropertyTextureIndices = primitiveExtension?.propertyTextures;\n if (!primitivePropertyTextureIndices) {\n return;\n }\n for (const primitivePropertyTextureIndex of primitivePropertyTextureIndices) {\n const propertyTexture = propertyTextures[primitivePropertyTextureIndex];\n processPrimitivePropertyTexture(scenegraph, propertyTexture, primitive, extension);\n }\n}\n/**\n * Takes property data from the texture pointed by the primitive and appends them to `exension.data`.\n * @param scenegraph - Instance of the class for structured access to GLTF data.\n * @param propertyTexture - propertyTexture definition taken from the top-level extension.\n * @param primitive - Primitive object.\n * @param extension - Top-level extension.\n */\nfunction processPrimitivePropertyTexture(scenegraph, propertyTexture, primitive, extension) {\n if (!propertyTexture.properties) {\n return;\n }\n if (!extension.dataAttributeNames) {\n extension.dataAttributeNames = [];\n }\n /* Iterate through all properties defined in propertyTexture, e.g. \"speed\" and \"direction\":\n {\n \"class\": \"wind\",\n \"properties\": {\n \"speed\": {\n \"index\": 0,\n \"texCoord\": 0,\n \"channels\": [0]\n },\n \"direction\": {\n \"index\": 0,\n \"texCoord\": 0,\n \"channels\": [1, 2]\n }\n }\n }\n */\n const className = propertyTexture.class;\n for (const propertyName in propertyTexture.properties) {\n // propertyName has values like \"speed\", \"direction\"\n // Make attributeName as a combination of the class name and the propertyName like \"wind_speed\" or \"wind_direction\"\n const attributeName = `${className}_${propertyName}`;\n const textureInfoTopLevel = propertyTexture.properties?.[propertyName];\n if (!textureInfoTopLevel) {\n // eslint-disable-next-line no-continue\n continue;\n }\n // The data taken from all meshes/primitives (the same property, e.g. \"speed\" or \"direction\") will be combined into one array and saved in textureInfoTopLevel.data\n // Initially textureInfoTopLevel.data will be initialized with an empty array.\n if (!textureInfoTopLevel.data) {\n textureInfoTopLevel.data = [];\n }\n const featureTextureTable = textureInfoTopLevel.data;\n const propertyData = getPrimitiveTextureData(scenegraph, textureInfoTopLevel, primitive);\n if (propertyData === null) {\n // eslint-disable-next-line no-continue\n continue;\n }\n primitivePropertyDataToAttributes(scenegraph, attributeName, propertyData, featureTextureTable, primitive);\n textureInfoTopLevel.data = featureTextureTable;\n extension.dataAttributeNames.push(attributeName);\n }\n}\n/**\n * Navigates through all properies in the property table, gets properties data,\n * and put the data to `propertyTable.data` as an array.\n * @param scenegraph - Instance of the class for structured access to GLTF data.\n * @param schema - schema object.\n * @param propertyTable - propertyTable definition taken from the top-level extension.\n */\nfunction processPropertyTable(scenegraph, schema, propertyTable) {\n const schemaClass = schema.classes?.[propertyTable.class];\n if (!schemaClass) {\n throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${propertyTable.class}`);\n }\n const numberOfElements = propertyTable.count; // `propertyTable.count` is a number of elements in each property array.\n for (const propertyName in schemaClass.properties) {\n const classProperty = schemaClass.properties[propertyName];\n const propertyTableProperty = propertyTable.properties?.[propertyName];\n if (propertyTableProperty) {\n // Getting all elements (`numberOfElements`) of the array in the `propertyTableProperty`\n const data = getPropertyDataFromBinarySource(scenegraph, schema, classProperty, numberOfElements, propertyTableProperty);\n propertyTableProperty.data = data;\n }\n }\n}\n/**\n * Decodes a propertyTable column from binary source based on property type.\n * @param scenegraph - Instance of the class for structured access to GLTF data.\n * @param schema - Schema object.\n * @param classProperty - class property object.\n * @param numberOfElements - The number of elements in each property array that propertyTableProperty contains. It's a number of rows in the table.\n * @param propertyTableProperty - propertyTable's property metadata.\n * @returns {string[] | number[] | string[][] | number[][]}\n */\nfunction getPropertyDataFromBinarySource(scenegraph, schema, classProperty, numberOfElements, propertyTableProperty) {\n let data = [];\n const valuesBufferView = propertyTableProperty.values;\n const valuesDataBytes = scenegraph.getTypedArrayForBufferView(valuesBufferView);\n const arrayOffsets = getArrayOffsetsForProperty(scenegraph, classProperty, propertyTableProperty, numberOfElements);\n const stringOffsets = getStringOffsetsForProperty(scenegraph, propertyTableProperty, numberOfElements);\n switch (classProperty.type) {\n case 'SCALAR':\n case 'VEC2':\n case 'VEC3':\n case 'VEC4':\n case 'MAT2':\n case 'MAT3':\n case 'MAT4': {\n data = getPropertyDataNumeric(classProperty, numberOfElements, valuesDataBytes, arrayOffsets);\n break;\n }\n case 'BOOLEAN': {\n // TODO: implement it as soon as we have the corresponding tileset\n throw new Error(`Not implemented - classProperty.type=${classProperty.type}`);\n }\n case 'STRING': {\n data = getPropertyDataString(numberOfElements, valuesDataBytes, arrayOffsets, stringOffsets);\n break;\n }\n case 'ENUM': {\n data = getPropertyDataENUM(schema, classProperty, numberOfElements, valuesDataBytes, arrayOffsets);\n break;\n }\n default:\n throw new Error(`Unknown classProperty type ${classProperty.type}`);\n }\n return data;\n}\n/**\n * Parses propertyTable.property.arrayOffsets that are offsets of sub-arrays in a flatten array of values.\n * @param scenegraph - Instance of the class for structured access to GLTF data.\n * @param classProperty - class property object.\n * @param propertyTableProperty - propertyTable's property metadata.\n * @param numberOfElements - The number of elements in each property array that propertyTableProperty contains. It's a number of rows in the table.\n * @returns Typed array with offset values.\n * @see https://github.com/CesiumGS/glTF/blob/2976f1183343a47a29e4059a70961371cd2fcee8/extensions/2.0/Vendor/EXT_structural_metadata/schema/propertyTable.property.schema.json#L21\n */\nfunction getArrayOffsetsForProperty(scenegraph, classProperty, propertyTableProperty, numberOfElements) {\n if (classProperty.array &&\n // `count` is a number of array elements. May only be defined when `array` is true.\n // If `count` is NOT defined, it's a VARIABLE-length array\n typeof classProperty.count === 'undefined' &&\n // `arrayOffsets` is an index of the buffer view containing offsets for variable-length arrays.\n typeof propertyTableProperty.arrayOffsets !== 'undefined') {\n // Data are in a VARIABLE-length array\n return getOffsetsForProperty(scenegraph, propertyTableProperty.arrayOffsets, propertyTableProperty.arrayOffsetType || 'UINT32', numberOfElements);\n }\n return null;\n}\n/**\n * Parses propertyTable.property.stringOffsets.\n * @param scenegraph - Instance of the class for structured access to GLTF data.\n * @param propertyTableProperty - propertyTable's property metadata.\n * @param numberOfElements - The number of elements in each property array that propertyTableProperty contains. It's a number of rows in the table.\n * @returns Typed array with offset values.\n * @see https://github.com/CesiumGS/glTF/blob/2976f1183343a47a29e4059a70961371cd2fcee8/extensions/2.0/Vendor/EXT_structural_metadata/schema/propertyTable.property.schema.json#L29C10-L29C23\n */\nfunction getStringOffsetsForProperty(scenegraph, propertyTableProperty, numberOfElements) {\n if (typeof propertyTableProperty.stringOffsets !== 'undefined' // `stringOffsets` is an index of the buffer view containing offsets for strings.\n ) {\n // Data are in a FIXED-length array\n return getOffsetsForProperty(scenegraph, propertyTableProperty.stringOffsets, propertyTableProperty.stringOffsetType || 'UINT32', numberOfElements);\n }\n return null;\n}\n/**\n * Decodes properties of SCALAR, VEC-N, MAT-N types from binary sourse.\n * @param classProperty - class property object.\n * @param numberOfElements - The number of elements in each property array that propertyTableProperty contains. It's a number of rows in the table.\n * @param valuesDataBytes - Data taken from values property of the property table property.\n * @param arrayOffsets - Offsets for variable-length arrays. It's null for fixed-length arrays or scalar types.\n * @returns Property values in a typed array or in an array of typed arrays.\n */\nfunction getPropertyDataNumeric(classProperty, numberOfElements, valuesDataBytes, arrayOffsets) {\n const isArray = classProperty.array;\n const arrayCount = classProperty.count;\n const elementSize = getArrayElementByteSize(classProperty.type, classProperty.componentType);\n const elementCount = valuesDataBytes.byteLength / elementSize;\n let valuesData;\n if (classProperty.componentType) {\n valuesData = convertRawBufferToMetadataArray(valuesDataBytes, classProperty.type, \n // The datatype of the element's components. Only applicable to `SCALAR`, `VECN`, and `MATN` types.\n classProperty.componentType, elementCount);\n }\n else {\n // The spec doesn't provide any info what to do if componentType is not set.\n valuesData = valuesDataBytes;\n }\n if (isArray) {\n if (arrayOffsets) {\n // VARIABLE-length array\n return parseVariableLengthArrayNumeric(valuesData, numberOfElements, arrayOffsets, valuesDataBytes.length, elementSize);\n }\n if (arrayCount) {\n // FIXED-length array\n return parseFixedLengthArrayNumeric(valuesData, numberOfElements, arrayCount);\n }\n return [];\n }\n return valuesData;\n}\n/**\n * Decodes properties of enum type from binary source.\n * @param schema - Schema object.\n * @param classProperty - Class property object.\n * @param numberOfElements - The number of elements in each property array that propertyTableProperty contains. It's a number of rows in the table.\n * @param valuesDataBytes - Data taken from values property of the property table property.\n * @param arrayOffsets - Offsets for variable-length arrays. It's null for fixed-length arrays or scalar types.\n * @returns Strings array of nested strings array.\n */\nfunction getPropertyDataENUM(schema, classProperty, numberOfElements, valuesDataBytes, arrayOffsets) {\n const enumType = classProperty.enumType;\n // Enum ID as declared in the `enums` dictionary. Required when `type` is `ENUM`.\n if (!enumType) {\n throw new Error('Incorrect data in the EXT_structural_metadata extension: classProperty.enumType is not set for type ENUM');\n }\n const enumEntry = schema.enums?.[enumType];\n if (!enumEntry) {\n throw new Error(`Incorrect data in the EXT_structural_metadata extension: schema.enums does't contain ${enumType}`);\n }\n const enumValueType = enumEntry.valueType || 'UINT16';\n const elementSize = getArrayElementByteSize(classProperty.type, enumValueType);\n const elementCount = valuesDataBytes.byteLength / elementSize;\n let valuesData = convertRawBufferToMetadataArray(valuesDataBytes, classProperty.type, enumValueType, elementCount);\n if (!valuesData) {\n valuesData = valuesDataBytes;\n }\n if (classProperty.array) {\n if (arrayOffsets) {\n // VARIABLE-length array\n return parseVariableLengthArrayENUM({\n valuesData,\n numberOfElements,\n arrayOffsets,\n valuesDataBytesLength: valuesDataBytes.length,\n elementSize,\n enumEntry\n });\n }\n const arrayCount = classProperty.count;\n if (arrayCount) {\n // FIXED-length array\n return parseFixedLengthArrayENUM(valuesData, numberOfElements, arrayCount, enumEntry);\n }\n return [];\n }\n // Single value (not an array)\n return getEnumsArray(valuesData, 0, numberOfElements, enumEntry);\n}\n/**\n * Parses variable length nested ENUM arrays.\n * @param params.valuesData - Values in a flat typed array.\n * @param params.numberOfElements - The number of elements in each property array that propertyTableProperty contains. It's a number of rows in the table.\n * @param params.arrayOffsets - Offsets for variable-length arrays. It's null for fixed-length arrays or scalar types.\n * @param params.valuesDataBytesLength - Byte length of values array.\n * @param params.elementSize - Single element byte size.\n * @param params.enumEntry - Enums dictionary.\n * @returns Nested strings array.\n */\nfunction parseVariableLengthArrayENUM(params) {\n const { valuesData, numberOfElements, arrayOffsets, valuesDataBytesLength, elementSize, enumEntry } = params;\n const attributeValueArray = [];\n for (let index = 0; index < numberOfElements; index++) {\n const arrayOffset = arrayOffsets[index];\n const arrayByteSize = arrayOffsets[index + 1] - arrayOffsets[index];\n if (arrayByteSize + arrayOffset > valuesDataBytesLength) {\n break;\n }\n const typedArrayOffset = arrayOffset / elementSize;\n const elementCount = arrayByteSize / elementSize;\n const array = getEnumsArray(valuesData, typedArrayOffset, elementCount, enumEntry);\n attributeValueArray.push(array);\n }\n return attributeValueArray;\n}\n/**\n * Parses fixed length ENUM arrays.\n * @param valuesData - Values in a flat typed array.\n * @param numberOfElements - The number of elements in each property array that propertyTableProperty contains. It's a number of rows in the table.\n * @param arrayCount - Nested arrays length.\n * @param enumEntry - Enums dictionary.\n * @returns Nested strings array.\n */\nfunction parseFixedLengthArrayENUM(valuesData, numberOfElements, arrayCount, enumEntry) {\n const attributeValueArray = [];\n for (let index = 0; index < numberOfElements; index++) {\n const elementOffset = arrayCount * index;\n const array = getEnumsArray(valuesData, elementOffset, arrayCount, enumEntry);\n attributeValueArray.push(array);\n }\n return attributeValueArray;\n}\n/**\n * Parses ENUM values into a string array.\n * @param valuesData - Values in a flat typed array.\n * @param offset - Offset to start parse from.\n * @param count - Values length to parse.\n * @param enumEntry - Enums dictionary.\n * @returns Array of strings with parsed ENUM names.\n */\nfunction getEnumsArray(valuesData, offset, count, enumEntry) {\n const array = [];\n for (let i = 0; i < count; i++) {\n // At the moment we don't support BigInt. It requires additional calculations logic\n // and might be an issue in Safari\n if (valuesData instanceof BigInt64Array || valuesData instanceof BigUint64Array) {\n array.push('');\n }\n else {\n const value = valuesData[offset + i];\n const enumObject = getEnumByValue(enumEntry, value);\n if (enumObject) {\n array.push(enumObject.name);\n }\n else {\n array.push('');\n }\n }\n }\n return array;\n}\n/**\n * Looks up ENUM whose `value` property matches the specified number in the parameter `value`.\n * @param {GLTF_EXT_structural_metadata_Enum} enumEntry - ENUM entry containing the array of possible enums.\n * @param {number} value - The value of the ENUM to locate.\n * @returns {GLTF_EXT_structural_metadata_EnumValue | null} ENUM matcihng the specified value or null of no ENUM object was found.\n */\nfunction getEnumByValue(enumEntry, value) {\n for (const enumValue of enumEntry.values) {\n if (enumValue.value === value) {\n return enumValue;\n }\n }\n return null;\n}\n", "import { GLTFScenegraph } from \"../../api/gltf-scenegraph.js\";\nimport { convertRawBufferToMetadataArray, getPrimitiveTextureData, primitivePropertyDataToAttributes, getArrayElementByteSize, getOffsetsForProperty, parseVariableLengthArrayNumeric, parseFixedLengthArrayNumeric, getPropertyDataString } from \"../utils/3d-tiles-utils.js\";\n/** Extension name */\nconst EXT_FEATURE_METADATA_NAME = 'EXT_feature_metadata';\nexport const name = EXT_FEATURE_METADATA_NAME;\nexport async function decode(gltfData, options) {\n const scenegraph = new GLTFScenegraph(gltfData);\n decodeExtFeatureMetadata(scenegraph, options);\n}\n/**\n * Decodes feature metadata from extension.\n * @param scenegraph - Instance of the class for structured access to GLTF data.\n * @param options - GLTFLoader options.\n */\nfunction decodeExtFeatureMetadata(scenegraph, options) {\n // Decoding metadata involves buffers processing.\n // So, if buffers have not been loaded, there is no reason to process metadata.\n if (!options.gltf?.loadBuffers) {\n return;\n }\n const extension = scenegraph.getExtension(EXT_FEATURE_METADATA_NAME);\n if (!extension) {\n return;\n }\n if (options.gltf?.loadImages) {\n decodePropertyTextures(scenegraph, extension);\n }\n decodePropertyTables(scenegraph, extension);\n}\n/**\n * Processes the data stored in the textures\n * @param scenegraph - Instance of the class for structured access to GLTF data.\n * @param extension - Top-level extension.\n */\nfunction decodePropertyTextures(scenegraph, extension) {\n const schema = extension.schema;\n if (!schema) {\n return;\n }\n const schemaClasses = schema.classes;\n const { featureTextures } = extension;\n if (schemaClasses && featureTextures) {\n for (const schemaName in schemaClasses) {\n const schemaClass = schemaClasses[schemaName];\n const featureTexture = findFeatureTextureByClass(featureTextures, schemaName);\n if (featureTexture) {\n handleFeatureTextureProperties(scenegraph, featureTexture, schemaClass);\n }\n }\n }\n}\n/**\n * Processes the data stored in the property tables.\n * @param scenegraph - Instance of the class for structured access to GLTF data.\n * @param extension - Top-level extension.\n */\nfunction decodePropertyTables(scenegraph, extension) {\n const schema = extension.schema;\n if (!schema) {\n return;\n }\n const schemaClasses = schema.classes;\n const propertyTables = extension.featureTables;\n if (schemaClasses && propertyTables) {\n for (const schemaName in schemaClasses) {\n const propertyTable = findPropertyTableByClass(propertyTables, schemaName);\n if (propertyTable) {\n processPropertyTable(scenegraph, schema, propertyTable);\n }\n }\n }\n}\n/**\n * Finds the property table by class name.\n * @param propertyTables - propertyTable definition taken from the top-level extension.\n * @param schemaClassName - class name in the extension schema.\n */\nfunction findPropertyTableByClass(propertyTables, schemaClassName) {\n for (const propertyTableName in propertyTables) {\n const propertyTable = propertyTables[propertyTableName];\n if (propertyTable.class === schemaClassName) {\n return propertyTable;\n }\n }\n return null;\n}\nfunction findFeatureTextureByClass(featureTextures, schemaClassName) {\n for (const featureTexturesName in featureTextures) {\n const featureTable = featureTextures[featureTexturesName];\n if (featureTable.class === schemaClassName) {\n return featureTable;\n }\n }\n return null;\n}\n/**\n * Navigates through all properies in the property table, gets properties data,\n * and put the data to `propertyTable.data` as an array.\n * @param scenegraph - Instance of the class for structured access to GLTF data.\n * @param schema - schema object.\n * @param propertyTable - propertyTable definition taken from the top-level extension.\n */\nfunction processPropertyTable(scenegraph, schema, propertyTable) {\n // Though 'class' is not required by spec, it doesn't make any scence when it's not provided.\n // So, bale out here.\n if (!propertyTable.class) {\n return;\n }\n const schemaClass = schema.classes?.[propertyTable.class];\n if (!schemaClass) {\n throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${propertyTable.class}`);\n }\n const numberOfElements = propertyTable.count; // `propertyTable.count` is a number of elements in each property array.\n for (const propertyName in schemaClass.properties) {\n const classProperty = schemaClass.properties[propertyName];\n const propertyTableProperty = propertyTable.properties?.[propertyName];\n if (propertyTableProperty) {\n // Getting all elements (`numberOfElements`) of the array in the `propertyTableProperty`\n const data = getPropertyDataFromBinarySource(scenegraph, schema, classProperty, numberOfElements, propertyTableProperty);\n propertyTableProperty.data = data;\n }\n }\n}\n/**\n * Navigates through all properies in feature texture and gets properties data.\n * Data will be stored in featureTexture.properties[propertyName].data.\n * @param scenegraph - Instance of the class for structured access to GLTF data.\n * @param featureTexture\n * @param schemaClass\n */\nfunction handleFeatureTextureProperties(scenegraph, featureTexture, schemaClass) {\n const attributeName = featureTexture.class;\n for (const propertyName in schemaClass.properties) {\n const featureTextureProperty = featureTexture?.properties?.[propertyName];\n if (featureTextureProperty) {\n const data = getPropertyDataFromTexture(scenegraph, featureTextureProperty, attributeName);\n featureTextureProperty.data = data;\n }\n }\n}\n/**\n * Decodes properties from binary sourse based on property type.\n * @param scenegraph - Instance of the class for structured access to GLTF data.\n * @param schemaProperty\n * @param numberOfFeatures\n * @param featureTableProperty\n */\nfunction getPropertyDataFromBinarySource(scenegraph, schema, classProperty, numberOfFeatures, featureTableProperty) {\n let data = [];\n const bufferView = featureTableProperty.bufferView;\n const dataArray = scenegraph.getTypedArrayForBufferView(bufferView);\n const arrayOffsets = getArrayOffsetsForProperty(scenegraph, classProperty, featureTableProperty, numberOfFeatures);\n const stringOffsets = getStringOffsetsForProperty(scenegraph, classProperty, featureTableProperty, numberOfFeatures);\n if (classProperty.type === 'STRING' || classProperty.componentType === 'STRING') {\n data = getPropertyDataString(numberOfFeatures, dataArray, arrayOffsets, stringOffsets);\n }\n else if (isNumericProperty(classProperty)) {\n data = getPropertyDataNumeric(classProperty, numberOfFeatures, dataArray, arrayOffsets);\n }\n return data;\n}\n/**\n * Parses propertyTable.property.arrayOffsets that are offsets of sub-arrays in a flatten array of values.\n * @param scenegraph - Instance of the class for structured access to GLTF data.\n * @param classProperty - class property object.\n * @param propertyTableProperty - propertyTable's property metadata.\n * @param numberOfElements - The number of elements in each property array that propertyTableProperty contains. It's a number of rows in the table.\n * @returns Typed array with offset values.\n * @see https://github.com/CesiumGS/glTF/blob/2976f1183343a47a29e4059a70961371cd2fcee8/extensions/2.0/Vendor/EXT_structural_metadata/schema/propertyTable.property.schema.json#L21\n */\nfunction getArrayOffsetsForProperty(scenegraph, classProperty, propertyTableProperty, numberOfElements) {\n /*\n If ARRAY is used, then componentType must also be specified.\n ARRAY is a fixed-length array when componentCount is defined, and variable-length otherwise.\n */\n if (classProperty.type === 'ARRAY' &&\n // `componentCount` is a number of fixed-length array elements.\n // If `componentCount` is NOT defined, it's a VARIABLE-length array\n typeof classProperty.componentCount === 'undefined' &&\n // `arrayOffsetBufferView` is an index of the buffer view containing offsets for variable-length arrays.\n typeof propertyTableProperty.arrayOffsetBufferView !== 'undefined') {\n // Data are in a VARIABLE-length array\n return getOffsetsForProperty(scenegraph, propertyTableProperty.arrayOffsetBufferView, propertyTableProperty.offsetType || 'UINT32', // offsetType is used both for stringOffsetBufferView and arrayOffsetBufferView\n numberOfElements);\n }\n return null;\n}\n/**\n * Parses featureTable.property.stringOffsetBufferView.\n * String offsets is an array of offsets of strings in the united array of characters.\n * @param scenegraph - Instance of the class for structured access to GLTF data.\n * @param propertyTableProperty - propertyTable's property metadata.\n * @param numberOfElements - The number of elements in each property array that propertyTableProperty contains. It's a number of rows in the table.\n * @returns Typed array of offset values. The number of offsets in the array is equal to `numberOfElements` plus one.\n * @see https://github.com/CesiumGS/glTF/blob/c38f7f37e894004353c15cd0481bc5b7381ce841/extensions/2.0/Vendor/EXT_feature_metadata/schema/featureTable.property.schema.json#L50C10-L50C32\n */\nfunction getStringOffsetsForProperty(scenegraph, classProperty, propertyTableProperty, numberOfElements) {\n if (typeof propertyTableProperty.stringOffsetBufferView !== 'undefined' // `stringOffsetBufferView` is an index of the buffer view containing offsets for strings.\n ) {\n // Data are in a FIXED-length array\n return getOffsetsForProperty(scenegraph, propertyTableProperty.stringOffsetBufferView, propertyTableProperty.offsetType || 'UINT32', // offsetType is used both for stringOffsetBufferView and arrayOffsetBufferView\n numberOfElements);\n }\n return null;\n}\n/**\n * Checks if the feature table property is of numeric type.\n * @param schemaPropertyType - feature table property\n * @returns true if property is numeric, else - false\n */\nfunction isNumericProperty(schemaProperty) {\n const types = [\n 'UINT8',\n 'INT16',\n 'UINT16',\n 'INT32',\n 'UINT32',\n 'INT64',\n 'UINT64',\n 'FLOAT32',\n 'FLOAT64'\n ];\n return (types.includes(schemaProperty.type) ||\n (typeof schemaProperty.componentType !== 'undefined' &&\n types.includes(schemaProperty.componentType)));\n}\n/**\n * Decodes properties of numeric types from binary sourse.\n * @param classProperty - class property object.\n * @param numberOfElements - The number of elements in each property array that propertyTableProperty contains. It's a number of rows in the table.\n * @param valuesDataBytes - Data taken from values property of the property table property.\n * @param arrayOffsets - Offsets for variable-length arrays. It's null for fixed-length arrays or scalar types.\n * @returns Property values in a typed array or in an array of typed arrays.\n */\nfunction getPropertyDataNumeric(classProperty, numberOfElements, valuesDataBytes, arrayOffsets) {\n const isArray = classProperty.type === 'ARRAY';\n const arrayCount = classProperty.componentCount;\n /*\n We are getting Numeric data. So,\n the component type can be one of NumericComponentType,\n the attribute type should be 'SCALAR'\n */\n const attributeType = 'SCALAR';\n const componentType = classProperty.componentType || classProperty.type;\n const elementSize = getArrayElementByteSize(attributeType, componentType);\n const elementCount = valuesDataBytes.byteLength / elementSize;\n const valuesData = convertRawBufferToMetadataArray(valuesDataBytes, attributeType, componentType, elementCount);\n if (isArray) {\n if (arrayOffsets) {\n // VARIABLE-length array\n return parseVariableLengthArrayNumeric(valuesData, numberOfElements, arrayOffsets, valuesDataBytes.length, elementSize);\n }\n if (arrayCount) {\n // FIXED-length array\n return parseFixedLengthArrayNumeric(valuesData, numberOfElements, arrayCount);\n }\n return [];\n }\n return valuesData;\n}\n/**\n * Gets properties from texture associated with all mesh primitives.\n * @param scenegraph - Instance of the class for structured access to GLTF data.\n * @param featureTextureProperty\n * @param attributeName\n * @returns Feature texture data\n */\nfunction getPropertyDataFromTexture(scenegraph, featureTextureProperty, attributeName) {\n const json = scenegraph.gltf.json;\n if (!json.meshes) {\n return [];\n }\n const featureTextureTable = [];\n for (const mesh of json.meshes) {\n for (const primitive of mesh.primitives) {\n processPrimitiveTextures(scenegraph, attributeName, featureTextureProperty, featureTextureTable, primitive);\n }\n }\n return featureTextureTable;\n}\n/**\n * Processes data encoded in the texture associated with the primitive. This data will be accessible through the attributes.\n * @param scenegraph - Instance of the class for structured access to GLTF data.\n * @param attributeName\n * @param featureTextureProperty\n * @param featureTextureTable\n * @param primitive\n */\nfunction processPrimitiveTextures(scenegraph, attributeName, featureTextureProperty, featureTextureTable, primitive) {\n const textureInfoTopLevel = {\n channels: featureTextureProperty.channels,\n ...featureTextureProperty.texture\n };\n const propertyData = getPrimitiveTextureData(scenegraph, textureInfoTopLevel, primitive);\n if (!propertyData) {\n return;\n }\n primitivePropertyDataToAttributes(scenegraph, attributeName, propertyData, featureTextureTable, primitive);\n}\n", "// Version constant cannot be imported, it needs to correspond to the build version of **this** module.\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nexport const VERSION = typeof \"4.2.1\" !== 'undefined' ? \"4.2.1\" : 'latest';\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n// Version constant cannot be imported, it needs to correspond to the build version of **this** module.\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nexport const VERSION = typeof \"4.2.1\" !== 'undefined' ? \"4.2.1\" : 'latest';\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { registerJSModules, getJSModuleOrNull } from '@loaders.gl/loader-utils';\nimport { loadLibrary } from '@loaders.gl/worker-utils';\nexport const BASIS_EXTERNAL_LIBRARIES = {\n /** Basis transcoder, javascript wrapper part */\n TRANSCODER: 'basis_transcoder.js',\n /** Basis transcoder, compiled web assembly part */\n TRANSCODER_WASM: 'basis_transcoder.wasm',\n /** Basis encoder, javascript wrapper part */\n ENCODER: 'basis_encoder.js',\n /** Basis encoder, compiled web assembly part */\n ENCODER_WASM: 'basis_encoder.wasm'\n};\nlet loadBasisTranscoderPromise;\n/**\n * Loads wasm transcoder module\n * @param options\n * @returns {BasisFile} promise\n */\nexport async function loadBasisTranscoderModule(options) {\n registerJSModules(options.modules);\n const basis = getJSModuleOrNull('basis');\n if (basis) {\n return basis;\n }\n loadBasisTranscoderPromise ||= loadBasisTranscoder(options);\n return await loadBasisTranscoderPromise;\n}\n/**\n * Loads wasm transcoder module\n * @param options\n * @returns {BasisFile} promise\n */\nasync function loadBasisTranscoder(options) {\n let BASIS = null;\n let wasmBinary = null;\n [BASIS, wasmBinary] = await Promise.all([\n await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER, 'textures', options),\n await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER_WASM, 'textures', options)\n ]);\n // Depends on how import happened...\n // @ts-ignore TS2339: Property does not exist on type\n BASIS = BASIS || globalThis.BASIS;\n return await initializeBasisTranscoderModule(BASIS, wasmBinary);\n}\n/**\n * Initialize wasm transcoder module\n * @param BasisModule - js part of the module\n * @param wasmBinary - wasm part of the module\n * @returns {BasisFile} promise\n */\nfunction initializeBasisTranscoderModule(BasisModule, wasmBinary) {\n const options = {};\n if (wasmBinary) {\n options.wasmBinary = wasmBinary;\n }\n return new Promise((resolve) => {\n // if you try to return BasisModule the browser crashes!\n BasisModule(options).then((module) => {\n const { BasisFile, initializeBasis } = module;\n initializeBasis();\n resolve({ BasisFile });\n });\n });\n}\nlet loadBasisEncoderPromise;\n/**\n * Loads wasm encoder module\n * @param options\n * @returns {BasisFile, KTX2File} promise\n */\nexport async function loadBasisEncoderModule(options) {\n const modules = options.modules || {};\n if (modules.basisEncoder) {\n return modules.basisEncoder;\n }\n loadBasisEncoderPromise = loadBasisEncoderPromise || loadBasisEncoder(options);\n return await loadBasisEncoderPromise;\n}\n/**\n * Loads wasm encoder module\n * @param options\n * @returns {BasisFile, KTX2File} promise\n */\nasync function loadBasisEncoder(options) {\n let BASIS_ENCODER = null;\n let wasmBinary = null;\n [BASIS_ENCODER, wasmBinary] = await Promise.all([\n await loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER, 'textures', options),\n await loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER_WASM, 'textures', options)\n ]);\n // Depends on how import happened...\n // @ts-ignore TS2339: Property does not exist on type\n BASIS_ENCODER = BASIS_ENCODER || globalThis.BASIS;\n return await initializeBasisEncoderModule(BASIS_ENCODER, wasmBinary);\n}\n/**\n * Initialize wasm transcoder module\n * @param BasisEncoderModule - js part of the module\n * @param wasmBinary - wasm part of the module\n * @returns {BasisFile, KTX2File} promise\n */\nfunction initializeBasisEncoderModule(BasisEncoderModule, wasmBinary) {\n const options = {};\n if (wasmBinary) {\n options.wasmBinary = wasmBinary;\n }\n return new Promise((resolve) => {\n // if you try to return BasisModule the browser crashes!\n BasisEncoderModule(options).then((module) => {\n const { BasisFile, KTX2File, initializeBasis, BasisEncoder } = module;\n initializeBasis();\n resolve({ BasisFile, KTX2File, BasisEncoder });\n });\n });\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n/* eslint-disable camelcase */\nexport const GL_EXTENSIONS_CONSTANTS = {\n // WEBGL_compressed_texture_s3tc\n COMPRESSED_RGB_S3TC_DXT1_EXT: 0x83f0,\n COMPRESSED_RGBA_S3TC_DXT1_EXT: 0x83f1,\n COMPRESSED_RGBA_S3TC_DXT3_EXT: 0x83f2,\n COMPRESSED_RGBA_S3TC_DXT5_EXT: 0x83f3,\n // WEBGL_compressed_texture_es3\n COMPRESSED_R11_EAC: 0x9270,\n COMPRESSED_SIGNED_R11_EAC: 0x9271,\n COMPRESSED_RG11_EAC: 0x9272,\n COMPRESSED_SIGNED_RG11_EAC: 0x9273,\n COMPRESSED_RGB8_ETC2: 0x9274,\n COMPRESSED_RGBA8_ETC2_EAC: 0x9275,\n COMPRESSED_SRGB8_ETC2: 0x9276,\n COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: 0x9277,\n COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: 0x9278,\n COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: 0x9279,\n // WEBGL_compressed_texture_pvrtc\n COMPRESSED_RGB_PVRTC_4BPPV1_IMG: 0x8c00,\n COMPRESSED_RGBA_PVRTC_4BPPV1_IMG: 0x8c02,\n COMPRESSED_RGB_PVRTC_2BPPV1_IMG: 0x8c01,\n COMPRESSED_RGBA_PVRTC_2BPPV1_IMG: 0x8c03,\n // WEBGL_compressed_texture_etc1\n COMPRESSED_RGB_ETC1_WEBGL: 0x8d64,\n // WEBGL_compressed_texture_atc\n COMPRESSED_RGB_ATC_WEBGL: 0x8c92,\n COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL: 0x8c93,\n COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL: 0x87ee,\n // WEBGL_compressed_texture_astc\n COMPRESSED_RGBA_ASTC_4X4_KHR: 0x93b0,\n COMPRESSED_RGBA_ASTC_5X4_KHR: 0x93b1,\n COMPRESSED_RGBA_ASTC_5X5_KHR: 0x93b2,\n COMPRESSED_RGBA_ASTC_6X5_KHR: 0x93b3,\n COMPRESSED_RGBA_ASTC_6X6_KHR: 0x93b4,\n COMPRESSED_RGBA_ASTC_8X5_KHR: 0x93b5,\n COMPRESSED_RGBA_ASTC_8X6_KHR: 0x93b6,\n COMPRESSED_RGBA_ASTC_8X8_KHR: 0x93b7,\n COMPRESSED_RGBA_ASTC_10X5_KHR: 0x93b8,\n COMPRESSED_RGBA_ASTC_10X6_KHR: 0x93b9,\n COMPRESSED_RGBA_ASTC_10X8_KHR: 0x93ba,\n COMPRESSED_RGBA_ASTC_10X10_KHR: 0x93bb,\n COMPRESSED_RGBA_ASTC_12X10_KHR: 0x93bc,\n COMPRESSED_RGBA_ASTC_12X12_KHR: 0x93bd,\n COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR: 0x93d0,\n COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR: 0x93d1,\n COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR: 0x93d2,\n COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR: 0x93d3,\n COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR: 0x93d4,\n COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR: 0x93d5,\n COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR: 0x93d6,\n COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR: 0x93d7,\n COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR: 0x93d8,\n COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR: 0x93d9,\n COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR: 0x93da,\n COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR: 0x93db,\n COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR: 0x93dc,\n COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR: 0x93dd,\n // EXT_texture_compression_rgtc\n COMPRESSED_RED_RGTC1_EXT: 0x8dbb,\n COMPRESSED_SIGNED_RED_RGTC1_EXT: 0x8dbc,\n COMPRESSED_RED_GREEN_RGTC2_EXT: 0x8dbd,\n COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT: 0x8dbe,\n // WEBGL_compressed_texture_s3tc_srgb\n COMPRESSED_SRGB_S3TC_DXT1_EXT: 0x8c4c,\n COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: 0x8c4d,\n COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: 0x8c4e,\n COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: 0x8c4f\n};\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nconst BROWSER_PREFIXES = ['', 'WEBKIT_', 'MOZ_'];\nconst WEBGL_EXTENSIONS = {\n /* eslint-disable camelcase */\n WEBGL_compressed_texture_s3tc: 'dxt',\n WEBGL_compressed_texture_s3tc_srgb: 'dxt-srgb',\n WEBGL_compressed_texture_etc1: 'etc1',\n WEBGL_compressed_texture_etc: 'etc2',\n WEBGL_compressed_texture_pvrtc: 'pvrtc',\n WEBGL_compressed_texture_atc: 'atc',\n WEBGL_compressed_texture_astc: 'astc',\n EXT_texture_compression_rgtc: 'rgtc'\n /* eslint-enable camelcase */\n};\nlet formats = null;\n/**\n * Returns a list of formats.\n * Creates a temporary WebGLRenderingContext if none is provided.\n *\n * @param gl - Optional context.\n */\nexport function getSupportedGPUTextureFormats(gl) {\n if (!formats) {\n gl = gl || getWebGLContext() || undefined;\n formats = new Set();\n for (const prefix of BROWSER_PREFIXES) {\n for (const extension in WEBGL_EXTENSIONS) {\n if (gl && gl.getExtension(`${prefix}${extension}`)) {\n const gpuTextureFormat = WEBGL_EXTENSIONS[extension];\n formats.add(gpuTextureFormat);\n }\n }\n }\n }\n return formats;\n}\n/**\n * @returns {WebGLRenderingContext?}\n */\nfunction getWebGLContext() {\n try {\n const canvas = document.createElement('canvas');\n return canvas.getContext('webgl');\n }\n catch (error) {\n return null;\n }\n}\n", "///////////////////////////////////////////////////\n// Common.\n///////////////////////////////////////////////////\n\n// Injected at compile time, from $npm_package_version.\ndeclare const PACKAGE_VERSION: string;\n\nexport const KTX_WRITER = `KTX-Parse v${PACKAGE_VERSION}`;\n\nexport const NUL = new Uint8Array([0x00]);\n\n\n///////////////////////////////////////////////////\n// KTX2 Header.\n///////////////////////////////////////////////////\n\nexport const KTX2_ID = [\n\t// '´', 'K', 'T', 'X', '2', '0', 'ª', '\\r', '\\n', '\\x1A', '\\n'\n\t0xAB, 0x4B, 0x54, 0x58, 0x20, 0x32, 0x30, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A\n];\n\nexport const HEADER_BYTE_LENGTH = 68; // 13 * 4 + 2 * 8\n\nexport enum KTX2SupercompressionScheme {\n\tNONE = 0,\n\tBASISLZ = 1,\n\tZSTD = 2,\n\tZLIB = 3,\n};\n\n\n///////////////////////////////////////////////////\n// Data Format Descriptor (DFD).\n///////////////////////////////////////////////////\n\nexport enum KTX2DataFormatType {\n BASICFORMAT = 0x00,\n};\n\nexport const KHR_DF_VENDORID_KHRONOS = 0;\n\nexport const KHR_DF_VERSION = 2;\n\nexport const KHR_DF_BLOCKSIZE = 40;\n\nexport const VK_FORMAT_UNDEFINED = 0;\n\nexport enum KTX2DataFormatModel {\n UNSPECIFIED = 0,\n\tETC1S = 163,\n\tUASTC = 166,\n};\n\nexport enum KTX2DataFormatPrimaries {\n UNSPECIFIED = 0,\n SRGB = 1,\n};\n\nexport enum KTX2DataFormatTransfer {\n UNSPECIFIED = 0,\n LINEAR = 1,\n SRGB = 2,\n ITU = 3,\n NTSC = 4,\n SLOG = 5,\n SLOG2 = 6,\n};\n\nexport enum KTX2DataFormatFlags {\n ALPHA_STRAIGHT = 0,\n ALPHA_PREMULTIPLIED = 1,\n};\n\nexport enum KTX2DataFormatChannelETC1S {\n RGB = 0,\n RRR = 3,\n GGG = 4,\n AAA = 15,\n};\n\nexport enum KTX2DataFormatChannelUASTC {\n RGB = 0,\n RGBA = 3,\n RRR = 4,\n RRRG = 5,\n};\n", "import { KHR_DF_BLOCKSIZE, KHR_DF_VENDORID_KHRONOS, KHR_DF_VERSION, KTX2DataFormatFlags, KTX2DataFormatModel, KTX2DataFormatPrimaries, KTX2DataFormatType, KTX2SupercompressionScheme, VK_FORMAT_UNDEFINED } from './constants';\n\n/**\n * Represents an unpacked KTX 2.0 texture container. Data for individual mip levels are stored in\n * the `.levels` array, typically compressed in Basis Universal formats. Additional properties\n * provide metadata required to process, transcode, and upload these textures.\n */\nexport class KTX2Container {\n\t/**\n\t * Specifies the image format using Vulkan VkFormat enum values. When using Basis Universal\n\t * texture formats, `vkFormat` must be VK_FORMAT_UNDEFINED.\n\t */\n\tpublic vkFormat = VK_FORMAT_UNDEFINED;\n\n\t/**\n\t * Size of the data type in bytes used to upload the data to a graphics API. When `vkFormat` is\n\t * VK_FORMAT_UNDEFINED, `typeSize` must be 1.\n\t */\n\tpublic typeSize: number = 1;\n\n\t/** Width of the texture image for level 0, in pixels. */\n\tpublic pixelWidth: number = 0;\n\n\t/** Height of the texture image for level 0, in pixels. */\n\tpublic pixelHeight: number = 0;\n\n\t/** Depth of the texture image for level 0, in pixels (3D textures only). */\n\tpublic pixelDepth: number = 0;\n\n\t/** Number of array elements (array textures only). */\n\tpublic layerCount: number = 0;\n\n\t/**\n\t * Number of cubemap faces. For cubemaps and cubemap arrays, `faceCount` must be 6. For all\n\t * other textures, `faceCount` must be 1. Cubemap faces are stored in +X, -X, +Y, -Y, +Z, -Z\n\t * order.\n\t */\n\tpublic faceCount: number = 1;\n\n\t/** Indicates which supercompression scheme has been applied to mip level images, if any. */\n\tpublic supercompressionScheme = KTX2SupercompressionScheme.NONE;\n\n\t/** Mip levels, ordered largest (original) to smallest (~1px). */\n\tpublic levels: KTX2Level[] = [];\n\n\t/** Data Format Descriptor. */\n\tpublic dataFormatDescriptor: KTX2DataFormatDescriptorBasicFormat[] = [{\n\t\tvendorId: KHR_DF_VENDORID_KHRONOS,\n\t\tdescriptorType: KTX2DataFormatType.BASICFORMAT,\n\t\tversionNumber: KHR_DF_VERSION,\n\t\tdescriptorBlockSize: KHR_DF_BLOCKSIZE,\n\t\tcolorModel: KTX2DataFormatModel.UNSPECIFIED,\n\t\tcolorPrimaries: KTX2DataFormatPrimaries.SRGB,\n\t\ttransferFunction: KTX2DataFormatPrimaries.SRGB,\n\t\tflags: KTX2DataFormatFlags.ALPHA_STRAIGHT,\n\t\ttexelBlockDimension: {x: 4, y: 4, z: 1, w: 1},\n\t\tbytesPlane: [],\n\t\tsamples: [],\n\t}];\n\n\t/** Key/Value Data. */\n\tpublic keyValue: {[key: string]: string | Uint8Array} = {};\n\n\t/** Supercompression Global Data. */\n\tpublic globalData: KTX2GlobalDataBasisLZ | null = null;\n}\n\n\n///////////////////////////////////////////////////\n// Mip Levels.\n///////////////////////////////////////////////////\n\nexport interface KTX2Level {\n\t/** Compressed data of the mip level. */\n\tlevelData: Uint8Array;\n\n\t/**\n\t * Size of the mip level after reflation from supercompression, if applicable. When\n\t * `supercompressionType` is BASISLZ, `uncompressedByteLength` must be 0. When\n\t * `supercompressionType` is `NONE`, `uncompressedByteLength` must match the `levelData` byte\n\t * length.\n\t *\n\t * _**NOTICE:** this implies that for formats such as UASTC, `uncompressedByteLength` may\n\t * indicate size after ZSTD reflation (and of transcoded ASTC data), but does _not_ indicate\n\t * size of decoded RGBA32 pixels._\n\t */\n\tuncompressedByteLength: number;\n};\n\n\n///////////////////////////////////////////////////\n// Data Format Descriptor (DFD).\n///////////////////////////////////////////////////\n\nexport interface KTX2DataFormatDescriptorBasicFormat {\n\tvendorId: number;\n\tdescriptorType: number;\n\tversionNumber: number;\n\tdescriptorBlockSize: number;\n\tcolorModel: number;\n\tcolorPrimaries: number;\n\ttransferFunction: number;\n\tflags: number;\n\ttexelBlockDimension: KTX2BasicFormatTexelBlockDimensions;\n\tbytesPlane: number[];\n\tsamples: KTX2BasicFormatSample[],\n};\n\nexport interface KTX2BasicFormatTexelBlockDimensions {\n\tx: number;\n\ty: number;\n\tz: number;\n\tw: number;\n};\n\nexport interface KTX2BasicFormatSample {\n\tbitOffset: number;\n\tbitLength: number;\n\tchannelID: number;\n\tsamplePosition: number[];\n\tsampleLower: number;\n\tsampleUpper: number;\n};\n\n\n///////////////////////////////////////////////////\n// Supercompression Global Data.\n///////////////////////////////////////////////////\n\nexport interface KTX2GlobalDataBasisLZ {\n\tendpointCount: number;\n\tselectorCount: number;\n\timageDescs: KTX2GlobalDataBasisLZImageDesc[];\n\tendpointsData: Uint8Array;\n\tselectorsData: Uint8Array;\n\ttablesData: Uint8Array;\n\textendedData: Uint8Array;\n};\n\ninterface KTX2GlobalDataBasisLZImageDesc {\n\timageFlags: number;\n\trgbSliceByteOffset: number;\n\trgbSliceByteLength: number;\n\talphaSliceByteOffset: number;\n\talphaSliceByteLength: number;\n};\n", "export class BufferReader {\n\tprivate _dataView: DataView;\n\tprivate _littleEndian: boolean;\n\tpublic _offset: number;\n\n\tconstructor(data: Uint8Array, byteOffset: number, byteLength: number, littleEndian: boolean) {\n\t\tthis._dataView = new DataView(data.buffer, data.byteOffset + byteOffset, byteLength);\n\t\tthis._littleEndian = littleEndian;\n\t\tthis._offset = 0;\n\t}\n\n\t_nextUint8() {\n\t\tconst value = this._dataView.getUint8(this._offset);\n\t\tthis._offset += 1;\n\t\treturn value;\n\t}\n\n\t_nextUint16() {\n\t\tconst value = this._dataView.getUint16(this._offset, this._littleEndian);\n\t\tthis._offset += 2;\n\t\treturn value;\n\t}\n\n\t_nextUint32() {\n\t\tconst value = this._dataView.getUint32(this._offset, this._littleEndian);\n\t\tthis._offset += 4;\n\t\treturn value;\n\t}\n\n\t_nextUint64() {\n\t\tconst left = this._dataView.getUint32(this._offset, this._littleEndian);\n\t\tconst right = this._dataView.getUint32(this._offset + 4, this._littleEndian);\n\t\t// TODO(cleanup): Just test this...\n\t\t// const value = this._littleEndian ? left + (2 ** 32 * right) : (2 ** 32 * left) + right;\n\t\tconst value = left + (2 ** 32 * right);\n\t\tthis._offset += 8;\n\t\treturn value;\n\t}\n\n\t_skip(bytes: number) {\n\t\tthis._offset += bytes;\n\t\treturn this;\n\t}\n\n\t_scan(maxByteLength: number, term: number = 0x00): Uint8Array {\n\t\tconst byteOffset = this._offset;\n\t\tlet byteLength = 0;\n\t\twhile (this._dataView.getUint8(this._offset) !== term && byteLength < maxByteLength) {\n\t\t\tbyteLength++;\n\t\t\tthis._offset++;\n\t\t}\n\n\t\tif (byteLength < maxByteLength) this._offset++;\n\n\t\treturn new Uint8Array(\n\t\t\tthis._dataView.buffer,\n\t\t\tthis._dataView.byteOffset + byteOffset,\n\t\t\tbyteLength\n\t\t);\n\t}\n}\n", "\n/** Encodes text to an ArrayBuffer. */\nexport function encodeText(text: string): Uint8Array {\n\tif (typeof TextEncoder !== 'undefined') {\n\t\treturn new TextEncoder().encode(text);\n\t}\n\treturn Buffer.from(text);\n}\n\n/** Decodes an ArrayBuffer to text. */\nexport function decodeText(buffer: Uint8Array): string {\n\tif (typeof TextDecoder !== 'undefined') {\n\t\treturn new TextDecoder().decode(buffer);\n\t}\n\treturn Buffer.from(buffer).toString('utf8');\n}\n\n/** Concatenates N ArrayBuffers. */\nexport function concat (buffers: (ArrayBuffer | Uint8Array)[]): Uint8Array {\n\tlet totalByteLength = 0;\n\tfor (const buffer of buffers) {\n\t\ttotalByteLength += buffer.byteLength;\n\t}\n\n\tconst result = new Uint8Array(totalByteLength);\n\tlet byteOffset = 0;\n\n\tfor (const buffer of buffers) {\n\t\tresult.set(new Uint8Array(buffer), byteOffset);\n\t\tbyteOffset += buffer.byteLength;\n\t}\n\n\treturn result;\n}", "import { BufferReader } from './buffer-reader';\nimport { KTX2_ID } from './constants';\nimport { KTX2Container, KTX2DataFormatDescriptorBasicFormat } from './container';\nimport { decodeText } from './util';\n\n/**\n * Parses a KTX 2.0 file, returning an unpacked {@link KTX2Container} instance with all associated\n * data. The container's mip levels and other binary data are pointers into the original file, not\n * copies, so the original file should not be overwritten after reading.\n *\n * @param data Bytes of KTX 2.0 file, as Uint8Array or Buffer.\n */\nexport function read(data: Uint8Array): KTX2Container {\n\n\t///////////////////////////////////////////////////\n\t// KTX 2.0 Identifier.\n\t///////////////////////////////////////////////////\n\n\tconst id = new Uint8Array(data.buffer, data.byteOffset, KTX2_ID.length);\n\tif (id[0] !== KTX2_ID[0] || // '´'\n\t\tid[1] !== KTX2_ID[1] || // 'K'\n\t\tid[2] !== KTX2_ID[2] || // 'T'\n\t\tid[3] !== KTX2_ID[3] || // 'X'\n\t\tid[4] !== KTX2_ID[4] || // ' '\n\t\tid[5] !== KTX2_ID[5] || // '2'\n\t\tid[6] !== KTX2_ID[6] || // '0'\n\t\tid[7] !== KTX2_ID[7] || // 'ª'\n\t\tid[8] !== KTX2_ID[8] || // '\\r'\n\t\tid[9] !== KTX2_ID[9] || // '\\n'\n\t\tid[10] !== KTX2_ID[10] || // '\\x1A'\n\t\tid[11] !== KTX2_ID[11] // '\\n'\n\t) {\n\t\tthrow new Error('Missing KTX 2.0 identifier.');\n\t}\n\n\tconst container = new KTX2Container();\n\n\t///////////////////////////////////////////////////\n\t// Header.\n\t///////////////////////////////////////////////////\n\n\tconst headerByteLength = 17 * Uint32Array.BYTES_PER_ELEMENT;\n\tconst headerReader = new BufferReader(data, KTX2_ID.length, headerByteLength, true);\n\n\tcontainer.vkFormat = headerReader._nextUint32();\n\tcontainer.typeSize = headerReader._nextUint32();\n\tcontainer.pixelWidth = headerReader._nextUint32();\n\tcontainer.pixelHeight = headerReader._nextUint32();\n\tcontainer.pixelDepth = headerReader._nextUint32();\n\tcontainer.layerCount = headerReader._nextUint32();\n\tcontainer.faceCount = headerReader._nextUint32();\n\n\tconst levelCount = headerReader._nextUint32();\n\n\tcontainer.supercompressionScheme = headerReader._nextUint32();\n\n\tconst dfdByteOffset = headerReader._nextUint32();\n\tconst dfdByteLength = headerReader._nextUint32();\n\tconst kvdByteOffset = headerReader._nextUint32();\n\tconst kvdByteLength = headerReader._nextUint32();\n\tconst sgdByteOffset = headerReader._nextUint64();\n\tconst sgdByteLength = headerReader._nextUint64();\n\n\t///////////////////////////////////////////////////\n\t// Level Index.\n\t///////////////////////////////////////////////////\n\n\tconst levelByteLength = levelCount * 3 * 8;\n\tconst levelReader = new BufferReader(data, KTX2_ID.length + headerByteLength, levelByteLength, true);\n\n\tfor (let i = 0; i < levelCount; i ++) {\n\t\tcontainer.levels.push({\n\t\t\tlevelData: new Uint8Array(data.buffer, data.byteOffset + levelReader._nextUint64(), levelReader._nextUint64()),\n\t\t\tuncompressedByteLength: levelReader._nextUint64(),\n\t\t});\n\t}\n\n\n\t///////////////////////////////////////////////////\n\t// Data Format Descriptor (DFD).\n\t///////////////////////////////////////////////////\n\n\tconst dfdReader = new BufferReader(data, dfdByteOffset, dfdByteLength, true);\n\n\tconst dfd: KTX2DataFormatDescriptorBasicFormat = {\n\t\tvendorId: dfdReader._skip(4 /* totalSize */)._nextUint16(),\n\t\tdescriptorType: dfdReader._nextUint16(),\n\t\tversionNumber: dfdReader._nextUint16(),\n\t\tdescriptorBlockSize: dfdReader._nextUint16(),\n\t\tcolorModel: dfdReader._nextUint8(),\n\t\tcolorPrimaries: dfdReader._nextUint8(),\n\t\ttransferFunction: dfdReader._nextUint8(),\n\t\tflags: dfdReader._nextUint8(),\n\t\ttexelBlockDimension: {\n\t\t\tx: dfdReader._nextUint8() + 1,\n\t\t\ty: dfdReader._nextUint8() + 1,\n\t\t\tz: dfdReader._nextUint8() + 1,\n\t\t\tw: dfdReader._nextUint8() + 1,\n\t\t},\n\t\tbytesPlane: [\n\t\t\tdfdReader._nextUint8(),\n\t\t\tdfdReader._nextUint8(),\n\t\t\tdfdReader._nextUint8(),\n\t\t\tdfdReader._nextUint8(),\n\t\t\tdfdReader._nextUint8(),\n\t\t\tdfdReader._nextUint8(),\n\t\t\tdfdReader._nextUint8(),\n\t\t\tdfdReader._nextUint8(),\n\t\t],\n\t\tsamples: [],\n\t};\n\n\tconst sampleStart = 6;\n\tconst sampleWords = 4;\n\tconst numSamples = (dfd.descriptorBlockSize / 4 - sampleStart) / sampleWords;\n\n\tfor (let i = 0; i < numSamples; i ++) {\n\t\tdfd.samples[ i ] = {\n\t\t\tbitOffset: dfdReader._nextUint16(),\n\t\t\tbitLength: dfdReader._nextUint8(),\n\t\t\tchannelID: dfdReader._nextUint8(),\n\t\t\tsamplePosition: [\n\t\t\t\tdfdReader._nextUint8(),\n\t\t\t\tdfdReader._nextUint8(),\n\t\t\t\tdfdReader._nextUint8(),\n\t\t\t\tdfdReader._nextUint8(),\n\t\t\t],\n\t\t\tsampleLower: dfdReader._nextUint32(),\n\t\t\tsampleUpper: dfdReader._nextUint32(),\n\t\t};\n\t}\n\n\tcontainer.dataFormatDescriptor.length = 0;\n\tcontainer.dataFormatDescriptor.push(dfd);\n\n\n\t///////////////////////////////////////////////////\n\t// Key/Value Data (KVD).\n\t///////////////////////////////////////////////////\n\n\tconst kvdReader = new BufferReader(data, kvdByteOffset, kvdByteLength, true);\n\n\twhile (kvdReader._offset < kvdByteLength) {\n\t\tconst keyValueByteLength = kvdReader._nextUint32();\n\t\tconst keyData = kvdReader._scan(keyValueByteLength);\n\t\tconst key = decodeText(keyData);\n\t\tconst valueData = kvdReader._scan(keyValueByteLength - keyData.byteLength);\n\t\tcontainer.keyValue[key] = key.match(/^ktx/i) ? decodeText(valueData) : valueData;\n\n\t\t// 4-byte alignment.\n\t\tif (keyValueByteLength % 4) kvdReader._skip(4 - (keyValueByteLength % 4));\n\t}\n\n\n\t///////////////////////////////////////////////////\n\t// Supercompression Global Data (SGD).\n\t///////////////////////////////////////////////////\n\n\tif (sgdByteLength <= 0) return container;\n\n\tconst sgdReader = new BufferReader(data, sgdByteOffset, sgdByteLength, true);\n\n\tconst endpointCount = sgdReader._nextUint16();\n\tconst selectorCount = sgdReader._nextUint16();\n\tconst endpointsByteLength = sgdReader._nextUint32();\n\tconst selectorsByteLength = sgdReader._nextUint32();\n\tconst tablesByteLength = sgdReader._nextUint32();\n\tconst extendedByteLength = sgdReader._nextUint32();\n\n\tconst imageDescs = [];\n\tfor (let i = 0; i < levelCount; i ++) {\n\t\timageDescs.push({\n\t\t\timageFlags: sgdReader._nextUint32(),\n\t\t\trgbSliceByteOffset: sgdReader._nextUint32(),\n\t\t\trgbSliceByteLength: sgdReader._nextUint32(),\n\t\t\talphaSliceByteOffset: sgdReader._nextUint32(),\n\t\t\talphaSliceByteLength: sgdReader._nextUint32(),\n\t\t});\n\t}\n\n\tconst endpointsByteOffset = sgdByteOffset + sgdReader._offset;\n\tconst selectorsByteOffset = endpointsByteOffset + endpointsByteLength;\n\tconst tablesByteOffset = selectorsByteOffset + selectorsByteLength;\n\tconst extendedByteOffset = tablesByteOffset + tablesByteLength;\n\n\tconst endpointsData = new Uint8Array(data.buffer, data.byteOffset + endpointsByteOffset, endpointsByteLength);\n\tconst selectorsData = new Uint8Array(data.buffer, data.byteOffset + selectorsByteOffset, selectorsByteLength);\n\tconst tablesData = new Uint8Array(data.buffer, data.byteOffset + tablesByteOffset, tablesByteLength);\n\tconst extendedData = new Uint8Array(data.buffer, data.byteOffset + extendedByteOffset, extendedByteLength);\n\n\tcontainer.globalData = {\n\t\tendpointCount,\n\t\tselectorCount,\n\t\timageDescs,\n\t\tendpointsData,\n\t\tselectorsData,\n\t\ttablesData,\n\t\textendedData,\n\t};\n\n\treturn container;\n}\n", "import { HEADER_BYTE_LENGTH, KTX2DataFormatType, KTX2_ID, KTX_WRITER, NUL } from './constants';\nimport { KTX2Container } from './container';\nimport { concat, encodeText } from './util';\n\ninterface WriteOptions {keepWriter?: boolean};\nconst DEFAULT_OPTIONS: WriteOptions = {keepWriter: false};\n\n/**\n * Serializes a {@link KTX2Container} instance to a KTX 2.0 file. Mip levels and other binary data\n * are copied into the resulting Uint8Array, so the original container can safely be edited or\n * destroyed after it is serialized.\n *\n * Options:\n * - keepWriter: If true, 'KTXWriter' key/value field is written as provided by the container.\n * \t\tOtherwise, a string for the current ktx-parse version is generated. Default: false.\n *\n * @param container\n * @param options\n */\nexport function write(container: KTX2Container, options: WriteOptions = {}): Uint8Array {\n\toptions = {...DEFAULT_OPTIONS, ...options};\n\n\t///////////////////////////////////////////////////\n\t// Supercompression Global Data (SGD).\n\t///////////////////////////////////////////////////\n\n\tlet sgdBuffer = new ArrayBuffer(0);\n\tif (container.globalData) {\n\t\tconst sgdHeaderBuffer = new ArrayBuffer(20 + container.globalData.imageDescs.length * 5 * 4);\n\t\tconst sgdHeaderView = new DataView(sgdHeaderBuffer);\n\t\tsgdHeaderView.setUint16(0, container.globalData.endpointCount, true);\n\t\tsgdHeaderView.setUint16(2, container.globalData.selectorCount, true);\n\t\tsgdHeaderView.setUint32(4, container.globalData.endpointsData.byteLength, true);\n\t\tsgdHeaderView.setUint32(8, container.globalData.selectorsData.byteLength, true);\n\t\tsgdHeaderView.setUint32(12, container.globalData.tablesData.byteLength, true);\n\t\tsgdHeaderView.setUint32(16, container.globalData.extendedData.byteLength, true);\n\n\t\tfor (let i = 0; i < container.globalData.imageDescs.length; i++) {\n\t\t\tconst imageDesc = container.globalData.imageDescs[i];\n\t\t\tsgdHeaderView.setUint32(20 + i * 5 * 4 + 0, imageDesc.imageFlags, true);\n\t\t\tsgdHeaderView.setUint32(20 + i * 5 * 4 + 4, imageDesc.rgbSliceByteOffset, true);\n\t\t\tsgdHeaderView.setUint32(20 + i * 5 * 4 + 8, imageDesc.rgbSliceByteLength, true);\n\t\t\tsgdHeaderView.setUint32(20 + i * 5 * 4 + 12, imageDesc.alphaSliceByteOffset, true);\n\t\t\tsgdHeaderView.setUint32(20 + i * 5 * 4 + 16, imageDesc.alphaSliceByteLength, true);\n\t\t}\n\n\t\tsgdBuffer = concat([\n\t\t\tsgdHeaderBuffer,\n\t\t\tcontainer.globalData.endpointsData,\n\t\t\tcontainer.globalData.selectorsData,\n\t\t\tcontainer.globalData.tablesData,\n\t\t\tcontainer.globalData.extendedData,\n\t\t]);\n\t}\n\n\n\t///////////////////////////////////////////////////\n\t// Key/Value Data (KVD).\n\t///////////////////////////////////////////////////\n\n\tconst keyValueData: Uint8Array[] = [];\n\tlet keyValue = container.keyValue;\n\n\tif (!options.keepWriter) {\n\t\tkeyValue = {...container.keyValue, 'KTXwriter': KTX_WRITER};\n\t}\n\n\tfor (const key in keyValue) {\n\t\tconst value = keyValue[key];\n\t\tconst keyData = encodeText(key);\n\t\tconst valueData = typeof value === 'string' ? encodeText(value) : value;\n\t\tconst kvByteLength = keyData.byteLength + 1 + valueData.byteLength + 1;\n\t\tconst kvPadding = kvByteLength % 4 ? (4 - (kvByteLength % 4)) : 0; // align(4)\n\t\tkeyValueData.push(concat([\n\t\t\tnew Uint32Array([kvByteLength]),\n\t\t\tkeyData,\n\t\t\tNUL,\n\t\t\tvalueData,\n\t\t\tNUL,\n\t\t\tnew Uint8Array(kvPadding).fill(0x00), // align(4)\n\t\t]));\n\t}\n\n\tconst kvdBuffer = concat(keyValueData);\n\n\n\t///////////////////////////////////////////////////\n\t// Data Format Descriptor (DFD).\n\t///////////////////////////////////////////////////\n\n\tconst dfdBuffer = new ArrayBuffer(44);\n\tconst dfdView = new DataView(dfdBuffer);\n\n\tif (container.dataFormatDescriptor.length !== 1\n\t\t\t|| container.dataFormatDescriptor[0].descriptorType !== KTX2DataFormatType.BASICFORMAT) {\n\t\tthrow new Error('Only BASICFORMAT Data Format Descriptor output supported.');\n\t}\n\n\tconst dfd = container.dataFormatDescriptor[0];\n\n\tdfdView.setUint32(0, 44, true);\n\tdfdView.setUint16(4, dfd.vendorId, true);\n\tdfdView.setUint16(6, dfd.descriptorType, true);\n\tdfdView.setUint16(8, dfd.versionNumber, true);\n\tdfdView.setUint16(10, dfd.descriptorBlockSize, true);\n\n\tdfdView.setUint8(12, dfd.colorModel);\n\tdfdView.setUint8(13, dfd.colorPrimaries);\n\tdfdView.setUint8(14, dfd.transferFunction);\n\tdfdView.setUint8(15, dfd.flags);\n\n\tdfdView.setUint8(16, dfd.texelBlockDimension.x - 1);\n\tdfdView.setUint8(17, dfd.texelBlockDimension.y - 1);\n\tdfdView.setUint8(18, dfd.texelBlockDimension.z - 1);\n\tdfdView.setUint8(19, dfd.texelBlockDimension.w - 1);\n\n\tfor (let i = 0; i < 8; i++) dfdView.setUint8(20 + i, dfd.bytesPlane[i]);\n\n\tfor (let i = 0; i < dfd.samples.length; i++) {\n\t\tconst sample = dfd.samples[i];\n\t\tconst sampleByteOffset = 28 + i * 16;\n\n\t\tdfdView.setUint16(sampleByteOffset + 0, sample.bitOffset, true);\n\t\tdfdView.setUint8(sampleByteOffset + 2, sample.bitLength);\n\t\tdfdView.setUint8(sampleByteOffset + 3, sample.channelID);\n\n\t\tdfdView.setUint8(sampleByteOffset + 4, sample.samplePosition[0]);\n\t\tdfdView.setUint8(sampleByteOffset + 5, sample.samplePosition[1]);\n\t\tdfdView.setUint8(sampleByteOffset + 6, sample.samplePosition[2]);\n\t\tdfdView.setUint8(sampleByteOffset + 7, sample.samplePosition[3]);\n\n\t\tdfdView.setUint32(sampleByteOffset + 8, sample.sampleLower, true);\n\t\tdfdView.setUint32(sampleByteOffset + 12, sample.sampleUpper, true);\n\t}\n\n\n\t///////////////////////////////////////////////////\n\t// Data alignment.\n\t///////////////////////////////////////////////////\n\n\tconst dfdByteOffset = KTX2_ID.length + HEADER_BYTE_LENGTH + container.levels.length * 3 * 8;\n\tconst kvdByteOffset = dfdByteOffset + dfdBuffer.byteLength;\n\tlet sgdByteOffset = kvdByteOffset + kvdBuffer.byteLength;\n\tif (sgdByteOffset % 8) sgdByteOffset += 8 - (sgdByteOffset % 8); // align(8)\n\n\n\t///////////////////////////////////////////////////\n\t// Level Index.\n\t///////////////////////////////////////////////////\n\n\tconst levelData: Uint8Array[] = [];\n\tconst levelIndex = new DataView(new ArrayBuffer(container.levels.length * 3 * 8));\n\n\tlet levelDataByteOffset = sgdByteOffset + sgdBuffer.byteLength;\n\tfor (let i = 0; i < container.levels.length; i++) {\n\t\tconst level = container.levels[i];\n\t\tlevelData.push(level.levelData);\n\t\tlevelIndex.setBigUint64(i * 24 + 0, BigInt(levelDataByteOffset), true);\n\t\tlevelIndex.setBigUint64(i * 24 + 8, BigInt(level.levelData.byteLength), true);\n\t\tlevelIndex.setBigUint64(i * 24 + 16, BigInt(level.uncompressedByteLength), true);\n\t\tlevelDataByteOffset += level.levelData.byteLength;\n\t}\n\n\n\t///////////////////////////////////////////////////\n\t// Header.\n\t///////////////////////////////////////////////////\n\n\tconst headerBuffer = new ArrayBuffer(HEADER_BYTE_LENGTH);\n\tconst headerView = new DataView(headerBuffer);\n\theaderView.setUint32(0, container.vkFormat, true);\n\theaderView.setUint32(4, container.typeSize, true);\n\theaderView.setUint32(8, container.pixelWidth, true);\n\theaderView.setUint32(12, container.pixelHeight, true);\n\theaderView.setUint32(16, container.pixelDepth, true);\n\theaderView.setUint32(20, container.layerCount, true);\n\theaderView.setUint32(24, container.faceCount, true);\n\theaderView.setUint32(28, container.levels.length, true);\n\theaderView.setUint32(32, container.supercompressionScheme, true);\n\n\theaderView.setUint32(36, dfdByteOffset, true);\n\theaderView.setUint32(40, dfdBuffer.byteLength, true);\n\theaderView.setUint32(44, kvdByteOffset, true);\n\theaderView.setUint32(48, kvdBuffer.byteLength, true);\n\theaderView.setBigUint64(52, BigInt(sgdByteOffset), true);\n\theaderView.setBigUint64(60, BigInt(sgdBuffer.byteLength), true);\n\n\n\t///////////////////////////////////////////////////\n\t// Compose.\n\t///////////////////////////////////////////////////\n\n\treturn new Uint8Array(concat([\n\t\tnew Uint8Array(KTX2_ID).buffer,\n\t\theaderBuffer,\n\t\tlevelIndex.buffer,\n\t\tdfdBuffer,\n\t\tkvdBuffer,\n\t\tnew ArrayBuffer(sgdByteOffset - (kvdByteOffset + kvdBuffer.byteLength)), // align(8)\n\t\tsgdBuffer,\n\t\t...levelData,\n\t]));\n}\n\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { read } from 'ktx-parse';\nimport { extractMipmapImages } from \"../utils/extract-mipmap-images.js\";\nimport { mapVkFormatToWebGL } from \"../utils/ktx-format-helper.js\";\nconst KTX2_ID = [\n // '\u00B4', 'K', 'T', 'X', '2', '0', '\u00AA', '\\r', '\\n', '\\x1A', '\\n'\n 0xab, 0x4b, 0x54, 0x58, 0x20, 0x32, 0x30, 0xbb, 0x0d, 0x0a, 0x1a, 0x0a\n];\n// eslint-disable-next-line complexity\nexport function isKTX(data) {\n // const id = new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n const id = new Uint8Array(data);\n const notKTX = id.byteLength < KTX2_ID.length ||\n id[0] !== KTX2_ID[0] || // '\u00B4'\n id[1] !== KTX2_ID[1] || // 'K'\n id[2] !== KTX2_ID[2] || // 'T'\n id[3] !== KTX2_ID[3] || // 'X'\n id[4] !== KTX2_ID[4] || // ' '\n id[5] !== KTX2_ID[5] || // '2'\n id[6] !== KTX2_ID[6] || // '0'\n id[7] !== KTX2_ID[7] || // '\u00AA'\n id[8] !== KTX2_ID[8] || // '\\r'\n id[9] !== KTX2_ID[9] || // '\\n'\n id[10] !== KTX2_ID[10] || // '\\x1A'\n id[11] !== KTX2_ID[11]; // '\\n'\n return !notKTX;\n}\nexport function parseKTX(arrayBuffer) {\n const uint8Array = new Uint8Array(arrayBuffer);\n const ktx = read(uint8Array);\n const mipMapLevels = Math.max(1, ktx.levels.length);\n const width = ktx.pixelWidth;\n const height = ktx.pixelHeight;\n const internalFormat = mapVkFormatToWebGL(ktx.vkFormat);\n return extractMipmapImages(ktx.levels, {\n mipMapLevels,\n width,\n height,\n sizeFunction: (level) => level.uncompressedByteLength,\n internalFormat\n });\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { loadBasisEncoderModule, loadBasisTranscoderModule } from \"./basis-module-loader.js\";\nimport { GL_EXTENSIONS_CONSTANTS } from \"../gl-extensions.js\";\nimport { getSupportedGPUTextureFormats } from \"../utils/texture-formats.js\";\nimport { isKTX } from \"./parse-ktx.js\";\nconst OutputFormat = {\n etc1: {\n basisFormat: 0,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL\n },\n etc2: { basisFormat: 1, compressed: true },\n bc1: {\n basisFormat: 2,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT\n },\n bc3: {\n basisFormat: 3,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT\n },\n bc4: { basisFormat: 4, compressed: true },\n bc5: { basisFormat: 5, compressed: true },\n 'bc7-m6-opaque-only': { basisFormat: 6, compressed: true },\n 'bc7-m5': { basisFormat: 7, compressed: true },\n 'pvrtc1-4-rgb': {\n basisFormat: 8,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG\n },\n 'pvrtc1-4-rgba': {\n basisFormat: 9,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG\n },\n 'astc-4x4': {\n basisFormat: 10,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR\n },\n 'atc-rgb': { basisFormat: 11, compressed: true },\n 'atc-rgba-interpolated-alpha': { basisFormat: 12, compressed: true },\n rgba32: { basisFormat: 13, compressed: false },\n rgb565: { basisFormat: 14, compressed: false },\n bgr565: { basisFormat: 15, compressed: false },\n rgba4444: { basisFormat: 16, compressed: false }\n};\n/**\n * parse data with a Binomial Basis_Universal module\n * @param data\n * @param options\n * @returns compressed texture data\n */\nexport default async function parseBasis(data, options) {\n if (options.basis.containerFormat === 'auto') {\n if (isKTX(data)) {\n const fileConstructors = await loadBasisEncoderModule(options);\n return parseKTX2File(fileConstructors.KTX2File, data, options);\n }\n const { BasisFile } = await loadBasisTranscoderModule(options);\n return parseBasisFile(BasisFile, data, options);\n }\n switch (options.basis.module) {\n case 'encoder':\n const fileConstructors = await loadBasisEncoderModule(options);\n switch (options.basis.containerFormat) {\n case 'ktx2':\n return parseKTX2File(fileConstructors.KTX2File, data, options);\n case 'basis':\n default:\n return parseBasisFile(fileConstructors.BasisFile, data, options);\n }\n case 'transcoder':\n default:\n const { BasisFile } = await loadBasisTranscoderModule(options);\n return parseBasisFile(BasisFile, data, options);\n }\n}\n/**\n * Parse *.basis file data\n * @param BasisFile - initialized transcoder module\n * @param data\n * @param options\n * @returns compressed texture data\n */\nfunction parseBasisFile(BasisFile, data, options) {\n const basisFile = new BasisFile(new Uint8Array(data));\n try {\n if (!basisFile.startTranscoding()) {\n throw new Error('Failed to start basis transcoding');\n }\n const imageCount = basisFile.getNumImages();\n const images = [];\n for (let imageIndex = 0; imageIndex < imageCount; imageIndex++) {\n const levelsCount = basisFile.getNumLevels(imageIndex);\n const levels = [];\n for (let levelIndex = 0; levelIndex < levelsCount; levelIndex++) {\n levels.push(transcodeImage(basisFile, imageIndex, levelIndex, options));\n }\n images.push(levels);\n }\n return images;\n }\n finally {\n basisFile.close();\n basisFile.delete();\n }\n}\n/**\n * Parse the particular level image of a basis file\n * @param basisFile\n * @param imageIndex\n * @param levelIndex\n * @param options\n * @returns compressed texture data\n */\nfunction transcodeImage(basisFile, imageIndex, levelIndex, options) {\n const width = basisFile.getImageWidth(imageIndex, levelIndex);\n const height = basisFile.getImageHeight(imageIndex, levelIndex);\n // See https://github.com/BinomialLLC/basis_universal/pull/83\n const hasAlpha = basisFile.getHasAlpha( /* imageIndex, levelIndex */);\n // Check options for output format etc\n const { compressed, format, basisFormat } = getBasisOptions(options, hasAlpha);\n const decodedSize = basisFile.getImageTranscodedSizeInBytes(imageIndex, levelIndex, basisFormat);\n const decodedData = new Uint8Array(decodedSize);\n if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {\n throw new Error('failed to start Basis transcoding');\n }\n return {\n // standard loaders.gl image category payload\n width,\n height,\n data: decodedData,\n compressed,\n format,\n // Additional fields\n // Add levelSize field.\n hasAlpha\n };\n}\n/**\n * Parse *.ktx2 file data\n * @param KTX2File\n * @param data\n * @param options\n * @returns compressed texture data\n */\nfunction parseKTX2File(KTX2File, data, options) {\n const ktx2File = new KTX2File(new Uint8Array(data));\n try {\n if (!ktx2File.startTranscoding()) {\n throw new Error('failed to start KTX2 transcoding');\n }\n const levelsCount = ktx2File.getLevels();\n const levels = [];\n for (let levelIndex = 0; levelIndex < levelsCount; levelIndex++) {\n levels.push(transcodeKTX2Image(ktx2File, levelIndex, options));\n break; // texture app can only show one level for some reason\n }\n return [levels];\n }\n finally {\n ktx2File.close();\n ktx2File.delete();\n }\n}\n/**\n * Parse the particular level image of a ktx2 file\n * @param ktx2File\n * @param levelIndex\n * @param options\n * @returns\n */\nfunction transcodeKTX2Image(ktx2File, levelIndex, options) {\n const { alphaFlag, height, width } = ktx2File.getImageLevelInfo(levelIndex, 0, 0);\n // Check options for output format etc\n const { compressed, format, basisFormat } = getBasisOptions(options, alphaFlag);\n const decodedSize = ktx2File.getImageTranscodedSizeInBytes(levelIndex, 0 /* layerIndex */, 0 /* faceIndex */, basisFormat);\n const decodedData = new Uint8Array(decodedSize);\n if (!ktx2File.transcodeImage(decodedData, levelIndex, 0 /* layerIndex */, 0 /* faceIndex */, basisFormat, 0, -1 /* channel0 */, -1 /* channel1 */)) {\n throw new Error('Failed to transcode KTX2 image');\n }\n return {\n // standard loaders.gl image category payload\n width,\n height,\n data: decodedData,\n compressed,\n // Additional fields\n levelSize: decodedSize,\n hasAlpha: alphaFlag,\n format\n };\n}\n/**\n * Get BasisFormat by loader format option\n * @param options\n * @param hasAlpha\n * @returns BasisFormat data\n */\nfunction getBasisOptions(options, hasAlpha) {\n let format = options && options.basis && options.basis.format;\n if (format === 'auto') {\n format = selectSupportedBasisFormat();\n }\n if (typeof format === 'object') {\n format = hasAlpha ? format.alpha : format.noAlpha;\n }\n format = format.toLowerCase();\n return OutputFormat[format];\n}\n/**\n * Select transcode format from the list of supported formats\n * @returns key for OutputFormat map\n */\nexport function selectSupportedBasisFormat() {\n const supportedFormats = getSupportedGPUTextureFormats();\n if (supportedFormats.has('astc')) {\n return 'astc-4x4';\n }\n else if (supportedFormats.has('dxt')) {\n return {\n alpha: 'bc3',\n noAlpha: 'bc1'\n };\n }\n else if (supportedFormats.has('pvrtc')) {\n return {\n alpha: 'pvrtc1-4-rgba',\n noAlpha: 'pvrtc1-4-rgb'\n };\n }\n else if (supportedFormats.has('etc1')) {\n return 'etc1';\n }\n else if (supportedFormats.has('etc2')) {\n return 'etc2';\n }\n return 'rgb565';\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { VERSION } from \"./lib/utils/version.js\";\nimport parseBasis from \"./lib/parsers/parse-basis.js\";\n/**\n * Worker loader for Basis super compressed textures\n */\nexport const BasisWorkerLoader = {\n dataType: null,\n batchType: null,\n name: 'Basis',\n id: 'basis',\n module: 'textures',\n version: VERSION,\n worker: true,\n extensions: ['basis', 'ktx2'],\n mimeTypes: ['application/octet-stream', 'image/ktx2'],\n tests: ['sB'],\n binary: true,\n options: {\n basis: {\n format: 'auto',\n libraryPath: 'libs/',\n containerFormat: 'auto',\n module: 'transcoder'\n }\n }\n};\n/**\n * Loader for Basis super compressed textures\n */\nexport const BasisLoader = {\n ...BasisWorkerLoader,\n parse: parseBasis\n};\n", "import { padToNBytes, assert } from '@loaders.gl/loader-utils';\n/** Binary GLTF is little endian. */\nconst LITTLE_ENDIAN = true;\n/** 'glTF' in Big-Endian ASCII */\nconst MAGIC_glTF = 0x676c5446;\nconst GLB_FILE_HEADER_SIZE = 12;\nconst GLB_CHUNK_HEADER_SIZE = 8;\nconst GLB_CHUNK_TYPE_JSON = 0x4e4f534a;\nconst GLB_CHUNK_TYPE_BIN = 0x004e4942;\nconst GLB_V1_CONTENT_FORMAT_JSON = 0x0;\n/** @deprecated - Backward compatibility for old xviz files */\nconst GLB_CHUNK_TYPE_JSON_XVIZ_DEPRECATED = 0;\n/** @deprecated - Backward compatibility for old xviz files */\nconst GLB_CHUNK_TYPE_BIX_XVIZ_DEPRECATED = 1;\nfunction getMagicString(dataView, byteOffset = 0) {\n return `\\\n${String.fromCharCode(dataView.getUint8(byteOffset + 0))}\\\n${String.fromCharCode(dataView.getUint8(byteOffset + 1))}\\\n${String.fromCharCode(dataView.getUint8(byteOffset + 2))}\\\n${String.fromCharCode(dataView.getUint8(byteOffset + 3))}`;\n}\n/** Check if the contents of an array buffer contains GLB byte markers */\nexport function isGLB(arrayBuffer, byteOffset = 0, options = {}) {\n const dataView = new DataView(arrayBuffer);\n // Check that GLB Header starts with the magic number\n const { magic = MAGIC_glTF } = options;\n const magic1 = dataView.getUint32(byteOffset, false);\n return magic1 === magic || magic1 === MAGIC_glTF;\n}\n/**\n * Synchronously parse a GLB\n * @param glb - Target, Output is stored there\n * @param arrayBuffer - Input data\n * @param byteOffset - Offset into arrayBuffer to start parsing from (for \"embedded\" GLBs, e.g. in 3D tiles)\n * @param options\n * @returns\n */\nexport function parseGLBSync(glb, arrayBuffer, byteOffset = 0, options = {}) {\n // Check that GLB Header starts with the magic number\n const dataView = new DataView(arrayBuffer);\n // Compare format with GLBLoader documentation\n const type = getMagicString(dataView, byteOffset + 0);\n const version = dataView.getUint32(byteOffset + 4, LITTLE_ENDIAN); // Version 2 of binary glTF container format\n const byteLength = dataView.getUint32(byteOffset + 8, LITTLE_ENDIAN); // Total byte length of binary file\n Object.assign(glb, {\n // Put less important stuff in a header, to avoid clutter\n header: {\n byteOffset, // Byte offset into the initial arrayBuffer\n byteLength,\n hasBinChunk: false\n },\n type,\n version,\n json: {},\n binChunks: []\n });\n byteOffset += GLB_FILE_HEADER_SIZE;\n switch (glb.version) {\n case 1:\n return parseGLBV1(glb, dataView, byteOffset);\n case 2:\n return parseGLBV2(glb, dataView, byteOffset, (options = {}));\n default:\n throw new Error(`Invalid GLB version ${glb.version}. Only supports version 1 and 2.`);\n }\n}\n/**\n * Parse a V1 GLB\n * @param glb - target, output is stored in this object\n * @param dataView - Input, memory to be parsed\n * @param byteOffset - Offset of first byte of GLB data in the data view\n * @returns Number of bytes parsed (there could be additional non-GLB data after the GLB)\n */\nfunction parseGLBV1(glb, dataView, byteOffset) {\n // Sanity: ensure file is big enough to hold at least the headers\n assert(glb.header.byteLength > GLB_FILE_HEADER_SIZE + GLB_CHUNK_HEADER_SIZE);\n // Explanation of GLB structure:\n // https://cloud.githubusercontent.com/assets/3479527/22600725/36b87122-ea55-11e6-9d40-6fd42819fcab.png\n const contentLength = dataView.getUint32(byteOffset + 0, LITTLE_ENDIAN); // Byte length of chunk\n const contentFormat = dataView.getUint32(byteOffset + 4, LITTLE_ENDIAN); // Chunk format as uint32\n byteOffset += GLB_CHUNK_HEADER_SIZE;\n // GLB v1 only supports a single chunk type\n assert(contentFormat === GLB_V1_CONTENT_FORMAT_JSON);\n parseJSONChunk(glb, dataView, byteOffset, contentLength);\n // No need to call the function padToBytes() from parseJSONChunk()\n byteOffset += contentLength;\n byteOffset += parseBINChunk(glb, dataView, byteOffset, glb.header.byteLength);\n return byteOffset;\n}\n/**\n * Parse a V2 GLB\n * @param glb - target, output is stored in this object\n * @param dataView - Input, memory to be parsed\n * @param byteOffset - Offset of first byte of GLB data in the data view\n * @returns Number of bytes parsed (there could be additional non-GLB data after the GLB)\n */\nfunction parseGLBV2(glb, dataView, byteOffset, options) {\n // Sanity: ensure file is big enough to hold at least the first chunk header\n assert(glb.header.byteLength > GLB_FILE_HEADER_SIZE + GLB_CHUNK_HEADER_SIZE);\n parseGLBChunksSync(glb, dataView, byteOffset, options);\n return byteOffset + glb.header.byteLength;\n}\n/** Iterate over GLB chunks and parse them */\nfunction parseGLBChunksSync(glb, dataView, byteOffset, options) {\n // Per spec we must iterate over chunks, ignoring all except JSON and BIN\n // Iterate as long as there is space left for another chunk header\n while (byteOffset + 8 <= glb.header.byteLength) {\n const chunkLength = dataView.getUint32(byteOffset + 0, LITTLE_ENDIAN); // Byte length of chunk\n const chunkFormat = dataView.getUint32(byteOffset + 4, LITTLE_ENDIAN); // Chunk format as uint32\n byteOffset += GLB_CHUNK_HEADER_SIZE;\n // Per spec we must iterate over chunks, ignoring all except JSON and BIN\n switch (chunkFormat) {\n case GLB_CHUNK_TYPE_JSON:\n parseJSONChunk(glb, dataView, byteOffset, chunkLength);\n break;\n case GLB_CHUNK_TYPE_BIN:\n parseBINChunk(glb, dataView, byteOffset, chunkLength);\n break;\n // Backward compatibility for very old xviz files\n case GLB_CHUNK_TYPE_JSON_XVIZ_DEPRECATED:\n if (!options.strict) {\n parseJSONChunk(glb, dataView, byteOffset, chunkLength);\n }\n break;\n case GLB_CHUNK_TYPE_BIX_XVIZ_DEPRECATED:\n if (!options.strict) {\n parseBINChunk(glb, dataView, byteOffset, chunkLength);\n }\n break;\n default:\n // Ignore, per spec\n // console.warn(`Unknown GLB chunk type`); // eslint-disable-line\n break;\n }\n byteOffset += padToNBytes(chunkLength, 4);\n }\n return byteOffset;\n}\n/* Parse a GLB JSON chunk */\nfunction parseJSONChunk(glb, dataView, byteOffset, chunkLength) {\n // 1. Create a \"view\" of the binary encoded JSON data inside the GLB\n const jsonChunk = new Uint8Array(dataView.buffer, byteOffset, chunkLength);\n // 2. Decode the JSON binary array into clear text\n const textDecoder = new TextDecoder('utf8');\n const jsonText = textDecoder.decode(jsonChunk);\n // 3. Parse the JSON text into a JavaScript data structure\n glb.json = JSON.parse(jsonText);\n return padToNBytes(chunkLength, 4);\n}\n/** Parse a GLB BIN chunk */\nfunction parseBINChunk(glb, dataView, byteOffset, chunkLength) {\n // Note: BIN chunk can be optional\n glb.header.hasBinChunk = true;\n glb.binChunks.push({\n byteOffset,\n byteLength: chunkLength,\n arrayBuffer: dataView.buffer\n // TODO - copy, or create typed array view?\n });\n return padToNBytes(chunkLength, 4);\n}\n", "// Resolves a relative url against a baseUrl\n// If url is absolute, return it unchanged\nexport function resolveUrl(url, options) {\n // TODO: Use better logic to handle all protocols plus not delay on data\n const absolute = url.startsWith('data:') || url.startsWith('http:') || url.startsWith('https:');\n if (absolute) {\n return url;\n }\n const baseUrl = options.baseUri || options.uri;\n if (!baseUrl) {\n throw new Error(`'baseUri' must be provided to resolve relative url ${url}`);\n }\n return baseUrl.substr(0, baseUrl.lastIndexOf('/') + 1) + url;\n}\n", "import { GLTFScenegraph } from \"../api/gltf-scenegraph.js\";\nimport { meshoptDecodeGltfBuffer } from \"../../meshopt/meshopt-decoder.js\";\n// @ts-ignore\n// eslint-disable-next-line\nconst DEFAULT_MESHOPT_OPTIONS = {\n byteOffset: 0,\n filter: 'NONE'\n};\n/** Extension name */\nconst EXT_MESHOPT_COMPRESSION = 'EXT_meshopt_compression';\nexport const name = EXT_MESHOPT_COMPRESSION;\nexport async function decode(gltfData, options) {\n const scenegraph = new GLTFScenegraph(gltfData);\n if (!options?.gltf?.decompressMeshes || !options.gltf?.loadBuffers) {\n return;\n }\n const promises = [];\n for (const bufferViewIndex of gltfData.json.bufferViews || []) {\n promises.push(decodeMeshoptBufferView(scenegraph, bufferViewIndex));\n }\n // Decompress meshes in parallel\n await Promise.all(promises);\n // We have now decompressed all primitives, so remove the top-level extension\n scenegraph.removeExtension(EXT_MESHOPT_COMPRESSION);\n}\n/** Decode one meshopt buffer view */\nasync function decodeMeshoptBufferView(scenegraph, bufferView) {\n const meshoptExtension = scenegraph.getObjectExtension(bufferView, EXT_MESHOPT_COMPRESSION);\n if (meshoptExtension) {\n const { byteOffset = 0, byteLength = 0, byteStride, count, mode, filter = 'NONE', buffer: bufferIndex } = meshoptExtension;\n const buffer = scenegraph.gltf.buffers[bufferIndex];\n const source = new Uint8Array(buffer.arrayBuffer, buffer.byteOffset + byteOffset, byteLength);\n const result = new Uint8Array(scenegraph.gltf.buffers[bufferView.buffer].arrayBuffer, bufferView.byteOffset, bufferView.byteLength);\n await meshoptDecodeGltfBuffer(result, count, byteStride, source, mode, filter);\n scenegraph.removeObjectExtension(bufferView, EXT_MESHOPT_COMPRESSION);\n }\n}\n", "// This file is part of meshoptimizer library and is distributed under the terms of MIT License.\n// Copyright (C) 2016-2021, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com)\n/* eslint-disable camelcase */\nconst isWebAssemblySupported = typeof WebAssembly !== 'object';\n// Built with clang version 11.0.0 (https://github.com/llvm/llvm-project.git 0160ad802e899c2922bc9b29564080c22eb0908c)\n// Built from meshoptimizer 0.16\nconst wasm_base = 'B9h9z9tFBBBF8fL9gBB9gLaaaaaFa9gEaaaB9gFaFa9gEaaaFaEMcBFFFGGGEIIILF9wFFFLEFBFKNFaFCx/IFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBF8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBGy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBEn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBIi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBKI9z9iqlBOc+x8ycGBM/qQFTa8jUUUUBCU/EBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAGTkUUUBRNCUoBAG9uC/wgBZHKCUGAKCUG9JyRVAECFJRICBRcGXEXAcAF9PQFAVAFAclAcAVJAF9JyRMGXGXAG9FQBAMCbJHKC9wZRSAKCIrCEJCGrRQANCUGJRfCBRbAIRTEXGXAOATlAQ9PQBCBRISEMATAQJRIGXAS9FQBCBRtCBREEXGXAOAIlCi9PQBCBRISLMANCU/CBJAEJRKGXGXGXGXGXATAECKrJ2BBAtCKZrCEZfIBFGEBMAKhB83EBAKCNJhB83EBSEMAKAI2BIAI2BBHmCKrHYAYCE6HYy86BBAKCFJAICIJAYJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCGJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCEJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCIJAYAmJHY2BBAI2BFHmCKrHPAPCE6HPy86BBAKCLJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCKJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCOJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCNJAYAmJHY2BBAI2BGHmCKrHPAPCE6HPy86BBAKCVJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCcJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCMJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCSJAYAmJHm2BBAI2BEHICKrHYAYCE6HYy86BBAKCQJAmAYJHm2BBAICIrCEZHYAYCE6HYy86BBAKCfJAmAYJHm2BBAICGrCEZHYAYCE6HYy86BBAKCbJAmAYJHK2BBAICEZHIAICE6HIy86BBAKAIJRISGMAKAI2BNAI2BBHmCIrHYAYCb6HYy86BBAKCFJAICNJAYJHY2BBAmCbZHmAmCb6Hmy86BBAKCGJAYAmJHm2BBAI2BFHYCIrHPAPCb6HPy86BBAKCEJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCIJAmAYJHm2BBAI2BGHYCIrHPAPCb6HPy86BBAKCLJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCKJAmAYJHm2BBAI2BEHYCIrHPAPCb6HPy86BBAKCOJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCNJAmAYJHm2BBAI2BIHYCIrHPAPCb6HPy86BBAKCVJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCcJAmAYJHm2BBAI2BLHYCIrHPAPCb6HPy86BBAKCMJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCSJAmAYJHm2BBAI2BKHYCIrHPAPCb6HPy86BBAKCQJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCfJAmAYJHm2BBAI2BOHICIrHYAYCb6HYy86BBAKCbJAmAYJHK2BBAICbZHIAICb6HIy86BBAKAIJRISFMAKAI8pBB83BBAKCNJAICNJ8pBB83BBAICTJRIMAtCGJRtAECTJHEAS9JQBMMGXAIQBCBRISEMGXAM9FQBANAbJ2BBRtCBRKAfREEXAEANCU/CBJAKJ2BBHTCFrCBATCFZl9zAtJHt86BBAEAGJREAKCFJHKAM9HQBMMAfCFJRfAIRTAbCFJHbAG9HQBMMABAcAG9sJANCUGJAMAG9sTkUUUBpANANCUGJAMCaJAG9sJAGTkUUUBpMAMCBAIyAcJRcAIQBMC9+RKSFMCBC99AOAIlAGCAAGCA9Ly6yRKMALCU/EBJ8kUUUUBAKM+OmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUFT+JUUUBpALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM+lLKFaF99GaG99FaG99GXGXAGCI9HQBAF9FQFEXGXGX9DBBB8/9DBBB+/ABCGJHG1BB+yAB1BBHE+yHI+L+TABCFJHL1BBHK+yHO+L+THN9DBBBB9gHVyAN9DBB/+hANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE86BBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG86BBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG86BBABCIJRBAFCaJHFQBSGMMAF9FQBEXGXGX9DBBB8/9DBBB+/ABCIJHG8uFB+yAB8uFBHE+yHI+L+TABCGJHL8uFBHK+yHO+L+THN9DBBBB9gHVyAN9DB/+g6ANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE87FBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG87FBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG87FBABCNJRBAFCaJHFQBMMM/SEIEaE99EaF99GXAF9FQBCBREABRIEXGXGX9D/zI818/AICKJ8uFBHLCEq+y+VHKAI8uFB+y+UHO9DB/+g6+U9DBBB8/9DBBB+/AO9DBBBB9gy+SHN+L9DBBB9P9d9FQBAN+oRVSFMCUUUU94RVMAICIJ8uFBRcAICGJ8uFBRMABALCFJCEZAEqCFWJAV87FBGXGXAKAM+y+UHN9DB/+g6+U9DBBB8/9DBBB+/AN9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRMSFMCUUUU94RMMABALCGJCEZAEqCFWJAM87FBGXGXAKAc+y+UHK9DB/+g6+U9DBBB8/9DBBB+/AK9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRcSFMCUUUU94RcMABALCaJCEZAEqCFWJAc87FBGXGX9DBBU8/AOAO+U+TANAN+U+TAKAK+U+THO9DBBBBAO9DBBBB9gy+R9DB/+g6+U9DBBB8/+SHO+L9DBBB9P9d9FQBAO+oRcSFMCUUUU94RcMABALCEZAEqCFWJAc87FBAICNJRIAECIJREAFCaJHFQBMMM9JBGXAGCGrAF9sHF9FQBEXABAB8oGBHGCNWCN91+yAGCi91CnWCUUU/8EJ+++U84GBABCIJRBAFCaJHFQBMMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEM/lFFFaGXGXAFABqCEZ9FQBABRESFMGXGXAGCT9PQBABRESFMABREEXAEAF8oGBjGBAECIJAFCIJ8oGBjGBAECNJAFCNJ8oGBjGBAECSJAFCSJ8oGBjGBAECTJREAFCTJRFAGC9wJHGCb9LQBMMAGCI9JQBEXAEAF8oGBjGBAFCIJRFAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF2BB86BBAECFJREAFCFJRFAGCaJHGQBMMABMoFFGaGXGXABCEZ9FQBABRESFMAFCgFZC+BwsN9sRIGXGXAGCT9PQBABRESFMABREEXAEAIjGBAECSJAIjGBAECNJAIjGBAECIJAIjGBAECTJREAGC9wJHGCb9LQBMMAGCI9JQBEXAEAIjGBAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF86BBAECFJREAGCaJHGQBMMABMMMFBCUNMIT9kBB';\nconst wasm_simd = 'B9h9z9tFBBBF8dL9gBB9gLaaaaaFa9gEaaaB9gGaaB9gFaFaEQSBBFBFFGEGEGIILF9wFFFLEFBFKNFaFCx/aFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBG8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBIy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBKi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBNn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBcI9z9iqlBMc/j9JSIBTEM9+FLa8jUUUUBCTlRBCBRFEXCBRGCBREEXABCNJAGJAECUaAFAGrCFZHIy86BBAEAIJREAGCFJHGCN9HQBMAFCx+YUUBJAE86BBAFCEWCxkUUBJAB8pEN83EBAFCFJHFCUG9HQBMMkRIbaG97FaK978jUUUUBCU/KBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAG/8cBBCUoBAG9uC/wgBZHKCUGAKCUG9JyRNAECFJRKCBRVGXEXAVAF9PQFANAFAVlAVANJAF9JyRcGXGXAG9FQBAcCbJHIC9wZHMCE9sRSAMCFWRQAICIrCEJCGrRfCBRbEXAKRTCBRtGXEXGXAOATlAf9PQBCBRKSLMALCU/CBJAtAM9sJRmATAfJRKCBREGXAMCoB9JQBAOAKlC/gB9JQBCBRIEXAmAIJREGXGXGXGXGXATAICKrJ2BBHYCEZfIBFGEBMAECBDtDMIBSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMIBAKCTJRKMGXGXGXGXGXAYCGrCEZfIBFGEBMAECBDtDMITSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMITAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMITAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMITAKCTJRKMGXGXGXGXGXAYCIrCEZfIBFGEBMAECBDtDMIASEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIAAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIAAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMIAAKCTJRKMGXGXGXGXGXAYCKrfIBFGEBMAECBDtDMI8wSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBAYCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMI8wAKCIJAnDeBJAYCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBAYCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMI8wAKCNJAnDeBJAYCx+YUUBJ2BBJRKSFMAEAKDBBBDMI8wAKCTJRKMAICoBJREAICUFJAM9LQFAERIAOAKlC/fB9LQBMMGXAEAM9PQBAECErRIEXGXAOAKlCi9PQBCBRKSOMAmAEJRYGXGXGXGXGXATAECKrJ2BBAICKZrCEZfIBFGEBMAYCBDtDMIBSEMAYAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAYAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAYAKDBBBDMIBAKCTJRKMAICGJRIAECTJHEAM9JQBMMGXAK9FQBAKRTAtCFJHtCI6QGSFMMCBRKSEMGXAM9FQBALCUGJAbJREALAbJDBGBRnCBRYEXAEALCU/CBJAYJHIDBIBHdCFD9tAdCFDbHPD9OD9hD9RHdAIAMJDBIBHiCFD9tAiAPD9OD9hD9RHiDQBTFtGmEYIPLdKeOnH8ZAIAQJDBIBHpCFD9tApAPD9OD9hD9RHpAIASJDBIBHyCFD9tAyAPD9OD9hD9RHyDQBTFtGmEYIPLdKeOnH8cDQBFTtGEmYILPdKOenHPAPDQBFGEBFGEBFGEBFGEAnD9uHnDyBjGBAEAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnA8ZA8cDQNVi8ZcMpySQ8c8dfb8e8fHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnAdAiDQNiV8ZcpMyS8cQ8df8eb8fHdApAyDQNiV8ZcpMyS8cQ8df8eb8fHiDQBFTtGEmYILPdKOenHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnAdAiDQNVi8ZcMpySQ8c8dfb8e8fHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJREAYCTJHYAM9JQBMMAbCIJHbAG9JQBMMABAVAG9sJALCUGJAcAG9s/8cBBALALCUGJAcCaJAG9sJAG/8cBBMAcCBAKyAVJRVAKQBMC9+RKSFMCBC99AOAKlAGCAAGCA9Ly6yRKMALCU/KBJ8kUUUUBAKMNBT+BUUUBM+KmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUF/8MBALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM/xLGEaK978jUUUUBCAlHE8kUUUUBGXGXAGCI9HQBGXAFC98ZHI9FQBABRGCBRLEXAGAGDBBBHKCiD+rFCiD+sFD/6FHOAKCND+rFCiD+sFD/6FAOD/gFAKCTD+rFCiD+sFD/6FHND/gFD/kFD/lFHVCBDtD+2FHcAOCUUUU94DtHMD9OD9RD/kFHO9DBB/+hDYAOAOD/mFAVAVD/mFANAcANAMD9OD9RD/kFHOAOD/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHcD/kFCgFDtD9OAKCUUU94DtD9OD9QAOAND/mFAcD/kFCND+rFCU/+EDtD9OD9QAVAND/mFAcD/kFCTD+rFCUU/8ODtD9OD9QDMBBAGCTJRGALCIJHLAI9JQBMMAIAF9PQFAEAFCEZHLCGWHGqCBCTAGl/8MBAEABAICGWJHIAG/8cBBGXAL9FQBAEAEDBIBHKCiD+rFCiD+sFD/6FHOAKCND+rFCiD+sFD/6FAOD/gFAKCTD+rFCiD+sFD/6FHND/gFD/kFD/lFHVCBDtD+2FHcAOCUUUU94DtHMD9OD9RD/kFHO9DBB/+hDYAOAOD/mFAVAVD/mFANAcANAMD9OD9RD/kFHOAOD/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHcD/kFCgFDtD9OAKCUUU94DtD9OD9QAOAND/mFAcD/kFCND+rFCU/+EDtD9OD9QAVAND/mFAcD/kFCTD+rFCUU/8ODtD9OD9QDMIBMAIAEAG/8cBBSFMABAFC98ZHGT+HUUUBAGAF9PQBAEAFCEZHICEWHLJCBCAALl/8MBAEABAGCEWJHGAL/8cBBAEAIT+HUUUBAGAEAL/8cBBMAECAJ8kUUUUBM+yEGGaO97GXAF9FQBCBRGEXABCTJHEAEDBBBHICBDtHLCUU98D8cFCUU98D8cEHKD9OABDBBBHOAIDQILKOSQfbPden8c8d8e8fCggFDtD9OD/6FAOAIDQBFGENVcMTtmYi8ZpyHICTD+sFD/6FHND/gFAICTD+rFCTD+sFD/6FHVD/gFD/kFD/lFHI9DB/+g6DYAVAIALD+2FHLAVCUUUU94DtHcD9OD9RD/kFHVAVD/mFAIAID/mFANALANAcD9OD9RD/kFHIAID/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHLD/kFCTD+rFAVAND/mFALD/kFCggEDtD9OD9QHVAIAND/mFALD/kFCaDbCBDnGCBDnECBDnKCBDnOCBDncCBDnMCBDnfCBDnbD9OHIDQNVi8ZcMpySQ8c8dfb8e8fD9QDMBBABAOAKD9OAVAIDQBFTtGEmYILPdKOenD9QDMBBABCAJRBAGCIJHGAF9JQBMMM94FEa8jUUUUBCAlHE8kUUUUBABAFC98ZHIT+JUUUBGXAIAF9PQBAEAFCEZHLCEWHFJCBCAAFl/8MBAEABAICEWJHBAF/8cBBAEALT+JUUUBABAEAF/8cBBMAECAJ8kUUUUBM/hEIGaF97FaL978jUUUUBCTlRGGXAF9FQBCBREEXAGABDBBBHIABCTJHLDBBBHKDQILKOSQfbPden8c8d8e8fHOCTD+sFHNCID+rFDMIBAB9DBBU8/DY9D/zI818/DYANCEDtD9QD/6FD/nFHNAIAKDQBFGENVcMTtmYi8ZpyHICTD+rFCTD+sFD/6FD/mFHKAKD/mFANAICTD+sFD/6FD/mFHVAVD/mFANAOCTD+rFCTD+sFD/6FD/mFHOAOD/mFD/kFD/kFD/lFCBDtD+4FD/jF9DB/+g6DYHND/mF9DBBX9LDYHID/kFCggEDtHcD9OAVAND/mFAID/kFCTD+rFD9QHVAOAND/mFAID/kFCTD+rFAKAND/mFAID/kFAcD9OD9QHNDQBFTtGEmYILPdKOenHID8dBAGDBIBDyB+t+J83EBABCNJAID8dFAGDBIBDyF+t+J83EBALAVANDQNVi8ZcMpySQ8c8dfb8e8fHND8dBAGDBIBDyG+t+J83EBABCiJAND8dFAGDBIBDyE+t+J83EBABCAJRBAECIJHEAF9JQBMMM/3FGEaF978jUUUUBCoBlREGXAGCGrAF9sHIC98ZHL9FQBCBRGABRFEXAFAFDBBBHKCND+rFCND+sFD/6FAKCiD+sFCnD+rFCUUU/8EDtD+uFD/mFDMBBAFCTJRFAGCIJHGAL9JQBMMGXALAI9PQBAEAICEZHGCGWHFqCBCoBAFl/8MBAEABALCGWJHLAF/8cBBGXAG9FQBAEAEDBIBHKCND+rFCND+sFD/6FAKCiD+sFCnD+rFCUUU/8EDtD+uFD/mFDMIBMALAEAF/8cBBMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEMMMFBCUNMIT9tBB';\n// Uses bulk-memory and simd extensions\nconst detector = new Uint8Array([\n 0, 97, 115, 109, 1, 0, 0, 0, 1, 4, 1, 96, 0, 0, 3, 3, 2, 0, 0, 5, 3, 1, 0, 1, 12, 1, 0, 10, 22, 2,\n 12, 0, 65, 0, 65, 0, 65, 0, 252, 10, 0, 0, 11, 7, 0, 65, 0, 253, 15, 26, 11\n]);\n// Used to unpack wasm\nconst wasmpack = new Uint8Array([\n 32, 0, 65, 253, 3, 1, 2, 34, 4, 106, 6, 5, 11, 8, 7, 20, 13, 33, 12, 16, 128, 9, 116, 64, 19, 113,\n 127, 15, 10, 21, 22, 14, 255, 66, 24, 54, 136, 107, 18, 23, 192, 26, 114, 118, 132, 17, 77, 101,\n 130, 144, 27, 87, 131, 44, 45, 74, 156, 154, 70, 167\n]);\nconst FILTERS = {\n // legacy index-based enums for glTF\n 0: '',\n 1: 'meshopt_decodeFilterOct',\n 2: 'meshopt_decodeFilterQuat',\n 3: 'meshopt_decodeFilterExp',\n // string-based enums for glTF\n NONE: '',\n OCTAHEDRAL: 'meshopt_decodeFilterOct',\n QUATERNION: 'meshopt_decodeFilterQuat',\n EXPONENTIAL: 'meshopt_decodeFilterExp'\n};\nconst DECODERS = {\n // legacy index-based enums for glTF\n 0: 'meshopt_decodeVertexBuffer',\n 1: 'meshopt_decodeIndexBuffer',\n 2: 'meshopt_decodeIndexSequence',\n // string-based enums for glTF\n ATTRIBUTES: 'meshopt_decodeVertexBuffer',\n TRIANGLES: 'meshopt_decodeIndexBuffer',\n INDICES: 'meshopt_decodeIndexSequence'\n};\nexport function isMeshoptSupported() {\n return isWebAssemblySupported;\n}\nexport async function meshoptDecodeVertexBuffer(target, count, size, source, filter = 'NONE') {\n const instance = await loadWasmInstance();\n decode(instance, instance.exports.meshopt_decodeVertexBuffer, target, count, size, source, instance.exports[FILTERS[filter]]);\n}\nexport async function meshoptDecodeIndexBuffer(target, count, size, source) {\n const instance = await loadWasmInstance();\n decode(instance, instance.exports.meshopt_decodeIndexBuffer, target, count, size, source);\n}\nexport async function meshoptDecodeIndexSequence(target, count, size, source) {\n const instance = await loadWasmInstance();\n decode(instance, instance.exports.meshopt_decodeIndexSequence, target, count, size, source);\n}\n// eslint-disable-next-line max-params\nexport async function meshoptDecodeGltfBuffer(target, count, size, source, mode, filter = 'NONE') {\n const instance = await loadWasmInstance();\n decode(instance, instance.exports[DECODERS[mode]], target, count, size, source, instance.exports[FILTERS[filter || 'NONE']]);\n}\nlet wasmPromise;\nasync function loadWasmInstance() {\n // eslint-disable-next-line\n if (!wasmPromise) {\n wasmPromise = loadWasmModule();\n }\n return wasmPromise;\n}\nasync function loadWasmModule() {\n let wasm = wasm_base;\n if (WebAssembly.validate(detector)) {\n wasm = wasm_simd;\n // eslint-disable-next-line no-console\n console.log('Warning: meshopt_decoder is using experimental SIMD support');\n }\n const result = await WebAssembly.instantiate(unpack(wasm), {});\n await result.instance.exports.__wasm_call_ctors();\n return result.instance;\n}\nfunction unpack(data) {\n const result = new Uint8Array(data.length);\n for (let i = 0; i < data.length; ++i) {\n const ch = data.charCodeAt(i);\n result[i] = ch > 96 ? ch - 71 : ch > 64 ? ch - 65 : ch > 47 ? ch + 4 : ch > 46 ? 63 : 62;\n }\n let write = 0;\n for (let i = 0; i < data.length; ++i) {\n result[write++] = result[i] < 60 ? wasmpack[result[i]] : (result[i] - 60) * 64 + result[++i];\n }\n return result.buffer.slice(0, write);\n}\n// eslint-disable-next-line max-params\nfunction decode(instance, fun, target, count, size, source, filter) {\n const sbrk = instance.exports.sbrk;\n const count4 = (count + 3) & ~3; // pad for SIMD filter\n const tp = sbrk(count4 * size);\n const sp = sbrk(source.length);\n const heap = new Uint8Array(instance.exports.memory.buffer);\n heap.set(source, sp);\n const res = fun(tp, count, size, sp, source.length);\n if (res === 0 && filter) {\n filter(tp, count4, size);\n }\n target.set(heap.subarray(tp, tp + count * size));\n sbrk(tp - sbrk(0));\n if (res !== 0) {\n throw new Error(`Malformed buffer data: ${res}`);\n }\n}\n", "// GLTF EXTENSION: EXT_TEXTURE_WEBP\n// https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/EXT_TEXTURE_WEBP\n/* eslint-disable camelcase */\nimport { isImageFormatSupported } from '@loaders.gl/images';\nimport { GLTFScenegraph } from \"../api/gltf-scenegraph.js\";\nconst EXT_TEXTURE_WEBP = 'EXT_texture_webp';\n/** Extension name */\nexport const name = EXT_TEXTURE_WEBP;\n/**\n * Replaces a texture source reference with the extension texture\n * Done in preprocess() to prevent load of default image\n */\nexport function preprocess(gltfData, options) {\n const scenegraph = new GLTFScenegraph(gltfData);\n if (!isImageFormatSupported('image/webp')) {\n if (scenegraph.getRequiredExtensions().includes(EXT_TEXTURE_WEBP)) {\n throw new Error(`gltf: Required extension ${EXT_TEXTURE_WEBP} not supported by browser`);\n }\n return;\n }\n const { json } = scenegraph;\n for (const texture of json.textures || []) {\n const extension = scenegraph.getObjectExtension(texture, EXT_TEXTURE_WEBP);\n if (extension) {\n // TODO - if multiple texture extensions are present which one wins?\n texture.source = extension.source;\n }\n scenegraph.removeObjectExtension(texture, EXT_TEXTURE_WEBP);\n }\n // Remove the top-level extension\n scenegraph.removeExtension(EXT_TEXTURE_WEBP);\n}\n", "// GLTF EXTENSION: KHR_texture_basisu\n// https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_texture_basisu\n/* eslint-disable camelcase */\nimport { GLTFScenegraph } from \"../api/gltf-scenegraph.js\";\nconst KHR_TEXTURE_BASISU = 'KHR_texture_basisu';\n/** Extension name */\nexport const name = KHR_TEXTURE_BASISU;\n/**\n * Replaces a texture source reference with the extension texture\n * Done in preprocess() to prevent load of default image\n */\nexport function preprocess(gltfData, options) {\n const scene = new GLTFScenegraph(gltfData);\n const { json } = scene;\n for (const texture of json.textures || []) {\n const extension = scene.getObjectExtension(texture, KHR_TEXTURE_BASISU);\n if (extension) {\n // TODO - if multiple texture extensions are present which one wins?\n texture.source = extension.source;\n scene.removeObjectExtension(texture, KHR_TEXTURE_BASISU);\n }\n }\n // Remove the top-level extension\n scene.removeExtension(KHR_TEXTURE_BASISU);\n}\n", "// https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_draco_mesh_compression\n// Only TRIANGLES: 0x0004 and TRIANGLE_STRIP: 0x0005 are supported\n/* eslint-disable camelcase */\nimport { sliceArrayBuffer, parseFromContext } from '@loaders.gl/loader-utils';\nimport { DracoLoader } from '@loaders.gl/draco';\nimport { GLTFScenegraph } from \"../api/gltf-scenegraph.js\";\nimport { getGLTFAccessors, getGLTFAccessor } from \"../gltf-utils/gltf-attribute-utils.js\";\nconst KHR_DRACO_MESH_COMPRESSION = 'KHR_draco_mesh_compression';\n/** Extension name */\nexport const name = KHR_DRACO_MESH_COMPRESSION;\nexport function preprocess(gltfData, options, context) {\n const scenegraph = new GLTFScenegraph(gltfData);\n for (const primitive of makeMeshPrimitiveIterator(scenegraph)) {\n if (scenegraph.getObjectExtension(primitive, KHR_DRACO_MESH_COMPRESSION)) {\n // TODO - Remove fallback accessors to make sure we don't load unnecessary buffers\n }\n }\n}\nexport async function decode(gltfData, options, context) {\n if (!options?.gltf?.decompressMeshes) {\n return;\n }\n const scenegraph = new GLTFScenegraph(gltfData);\n const promises = [];\n for (const primitive of makeMeshPrimitiveIterator(scenegraph)) {\n if (scenegraph.getObjectExtension(primitive, KHR_DRACO_MESH_COMPRESSION)) {\n promises.push(decompressPrimitive(scenegraph, primitive, options, context));\n }\n }\n // Decompress meshes in parallel\n await Promise.all(promises);\n // We have now decompressed all primitives, so remove the top-level extension\n scenegraph.removeExtension(KHR_DRACO_MESH_COMPRESSION);\n}\nexport function encode(gltfData, options = {}) {\n const scenegraph = new GLTFScenegraph(gltfData);\n for (const mesh of scenegraph.json.meshes || []) {\n // eslint-disable-next-line camelcase\n // @ts-ignore\n compressMesh(mesh, options);\n // NOTE: Only add the extension if something was actually compressed\n scenegraph.addRequiredExtension(KHR_DRACO_MESH_COMPRESSION);\n }\n}\n// DECODE\n// Unpacks one mesh primitive and removes the extension from the primitive\n// DracoDecoder needs to be imported and registered by app\n// Returns: Promise that resolves when all pending draco decoder jobs for this mesh complete\n// TODO - Implement fallback behavior per KHR_DRACO_MESH_COMPRESSION spec\nasync function decompressPrimitive(scenegraph, primitive, options, context) {\n const dracoExtension = scenegraph.getObjectExtension(primitive, KHR_DRACO_MESH_COMPRESSION);\n if (!dracoExtension) {\n return;\n }\n const buffer = scenegraph.getTypedArrayForBufferView(dracoExtension.bufferView);\n // TODO - parse does not yet deal well with byte offsets embedded in typed arrays. Copy buffer\n // TODO - remove when `parse` is fixed to handle `byteOffset`s\n const bufferCopy = sliceArrayBuffer(buffer.buffer, buffer.byteOffset); // , buffer.byteLength);\n const dracoOptions = { ...options };\n // TODO - remove hack: The entire tileset might be included, too expensive to serialize\n delete dracoOptions['3d-tiles'];\n const decodedData = await parseFromContext(bufferCopy, DracoLoader, dracoOptions, context);\n const decodedAttributes = getGLTFAccessors(decodedData.attributes);\n // Restore min/max values\n for (const [attributeName, decodedAttribute] of Object.entries(decodedAttributes)) {\n if (attributeName in primitive.attributes) {\n const accessorIndex = primitive.attributes[attributeName];\n const accessor = scenegraph.getAccessor(accessorIndex);\n if (accessor?.min && accessor?.max) {\n decodedAttribute.min = accessor.min;\n decodedAttribute.max = accessor.max;\n }\n }\n }\n // @ts-ignore\n primitive.attributes = decodedAttributes;\n if (decodedData.indices) {\n // @ts-ignore\n primitive.indices = getGLTFAccessor(decodedData.indices);\n }\n // Extension has been processed, delete it\n scenegraph.removeObjectExtension(primitive, KHR_DRACO_MESH_COMPRESSION);\n checkPrimitive(primitive);\n}\n// ENCODE\n// eslint-disable-next-line max-len\n// Only TRIANGLES: 0x0004 and TRIANGLE_STRIP: 0x0005 are supported\nfunction compressMesh(attributes, indices, mode = 4, options, context) {\n if (!options.DracoWriter) {\n throw new Error('options.gltf.DracoWriter not provided');\n }\n // TODO - use DracoWriter using encode w/ registered DracoWriter...\n const compressedData = options.DracoWriter.encodeSync({ attributes });\n // Draco compression may change the order and number of vertices in a mesh.\n // To satisfy the requirement that accessors properties be correct for both\n // compressed and uncompressed data, generators should create uncompressed\n // attributes and indices using data that has been decompressed from the Draco buffer,\n // rather than the original source data.\n // @ts-ignore TODO this needs to be fixed\n const decodedData = context?.parseSync?.({ attributes });\n const fauxAccessors = options._addFauxAttributes(decodedData.attributes);\n const bufferViewIndex = options.addBufferView(compressedData);\n const glTFMesh = {\n primitives: [\n {\n attributes: fauxAccessors, // TODO - verify with spec\n mode, // GL.POINTS\n extensions: {\n [KHR_DRACO_MESH_COMPRESSION]: {\n bufferView: bufferViewIndex,\n attributes: fauxAccessors // TODO - verify with spec\n }\n }\n }\n ]\n };\n return glTFMesh;\n}\n// UTILS\nfunction checkPrimitive(primitive) {\n if (!primitive.attributes && Object.keys(primitive.attributes).length > 0) {\n throw new Error('glTF: Empty primitive detected: Draco decompression failure?');\n }\n}\nfunction* makeMeshPrimitiveIterator(scenegraph) {\n for (const mesh of scenegraph.json.meshes || []) {\n for (const primitive of mesh.primitives) {\n yield primitive;\n }\n }\n}\n", "// Version constant cannot be imported, it needs to correspond to the build version of **this** module.\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nexport const VERSION = typeof \"4.2.1\" !== 'undefined' ? \"4.2.1\" : 'latest';\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { VERSION } from \"./lib/utils/version.js\";\n/**\n * Worker loader for Draco3D compressed geometries\n */\nexport const DracoLoader = {\n dataType: null,\n batchType: null,\n name: 'Draco',\n id: 'draco',\n module: 'draco',\n // shapes: ['mesh'],\n version: VERSION,\n worker: true,\n extensions: ['drc'],\n mimeTypes: ['application/octet-stream'],\n binary: true,\n tests: ['DRACO'],\n options: {\n draco: {\n decoderType: typeof WebAssembly === 'object' ? 'wasm' : 'js', // 'js' for IE11\n libraryPath: 'libs/',\n extraAttributes: {},\n attributeNameEntry: undefined\n }\n }\n};\n", "import { deduceMeshField } from '@loaders.gl/schema';\n/** Extract an arrow-like schema from a Draco mesh */\nexport function getDracoSchema(attributes, loaderData, indices) {\n const metadata = makeMetadata(loaderData.metadata);\n const fields = [];\n const namedLoaderDataAttributes = transformAttributesLoaderData(loaderData.attributes);\n for (const attributeName in attributes) {\n const attribute = attributes[attributeName];\n const field = getArrowFieldFromAttribute(attributeName, attribute, namedLoaderDataAttributes[attributeName]);\n fields.push(field);\n }\n if (indices) {\n const indicesField = getArrowFieldFromAttribute('indices', indices);\n fields.push(indicesField);\n }\n return { fields, metadata };\n}\nfunction transformAttributesLoaderData(loaderData) {\n const result = {};\n for (const key in loaderData) {\n const dracoAttribute = loaderData[key];\n result[dracoAttribute.name || 'undefined'] = dracoAttribute;\n }\n return result;\n}\nfunction getArrowFieldFromAttribute(attributeName, attribute, loaderData) {\n const metadataMap = loaderData ? makeMetadata(loaderData.metadata) : undefined;\n const field = deduceMeshField(attributeName, attribute, metadataMap);\n return field;\n}\nfunction makeMetadata(metadata) {\n Object.entries(metadata);\n const serializedMetadata = {};\n for (const key in metadata) {\n serializedMetadata[`${key}.string`] = JSON.stringify(metadata[key]);\n }\n return serializedMetadata;\n}\n", "/* eslint-disable camelcase */\nimport { getMeshBoundingBox } from '@loaders.gl/schema';\nimport { getDracoSchema } from \"./utils/get-draco-schema.js\";\n// @ts-ignore\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst GEOMETRY_TYPE = {\n TRIANGULAR_MESH: 0,\n POINT_CLOUD: 1\n};\n// Native Draco attribute names to GLTF attribute names.\nconst DRACO_TO_GLTF_ATTRIBUTE_NAME_MAP = {\n POSITION: 'POSITION',\n NORMAL: 'NORMAL',\n COLOR: 'COLOR_0',\n TEX_COORD: 'TEXCOORD_0'\n};\nconst DRACO_DATA_TYPE_TO_TYPED_ARRAY_MAP = {\n 1: Int8Array,\n 2: Uint8Array,\n 3: Int16Array,\n 4: Uint16Array,\n 5: Int32Array,\n 6: Uint32Array,\n // 7: BigInt64Array,\n // 8: BigUint64Array,\n 9: Float32Array\n // 10: Float64Array\n // 11: BOOL - What array type do we use for this?\n};\nconst INDEX_ITEM_SIZE = 4;\nexport default class DracoParser {\n draco;\n decoder;\n metadataQuerier;\n // draco - the draco decoder, either import `draco3d` or load dynamically\n constructor(draco) {\n this.draco = draco;\n this.decoder = new this.draco.Decoder();\n this.metadataQuerier = new this.draco.MetadataQuerier();\n }\n /**\n * Destroy draco resources\n */\n destroy() {\n this.draco.destroy(this.decoder);\n this.draco.destroy(this.metadataQuerier);\n }\n /**\n * NOTE: caller must call `destroyGeometry` on the return value after using it\n * @param arrayBuffer\n * @param options\n */\n parseSync(arrayBuffer, options = {}) {\n const buffer = new this.draco.DecoderBuffer();\n buffer.Init(new Int8Array(arrayBuffer), arrayBuffer.byteLength);\n this._disableAttributeTransforms(options);\n const geometry_type = this.decoder.GetEncodedGeometryType(buffer);\n const dracoGeometry = geometry_type === this.draco.TRIANGULAR_MESH\n ? new this.draco.Mesh()\n : new this.draco.PointCloud();\n try {\n let dracoStatus;\n switch (geometry_type) {\n case this.draco.TRIANGULAR_MESH:\n dracoStatus = this.decoder.DecodeBufferToMesh(buffer, dracoGeometry);\n break;\n case this.draco.POINT_CLOUD:\n dracoStatus = this.decoder.DecodeBufferToPointCloud(buffer, dracoGeometry);\n break;\n default:\n throw new Error('DRACO: Unknown geometry type.');\n }\n if (!dracoStatus.ok() || !dracoGeometry.ptr) {\n const message = `DRACO decompression failed: ${dracoStatus.error_msg()}`;\n // console.error(message);\n throw new Error(message);\n }\n const loaderData = this._getDracoLoaderData(dracoGeometry, geometry_type, options);\n const geometry = this._getMeshData(dracoGeometry, loaderData, options);\n const boundingBox = getMeshBoundingBox(geometry.attributes);\n const schema = getDracoSchema(geometry.attributes, loaderData, geometry.indices);\n const data = {\n loader: 'draco',\n loaderData,\n header: {\n vertexCount: dracoGeometry.num_points(),\n boundingBox\n },\n ...geometry,\n schema\n };\n return data;\n }\n finally {\n this.draco.destroy(buffer);\n if (dracoGeometry) {\n this.draco.destroy(dracoGeometry);\n }\n }\n }\n // Draco specific \"loader data\"\n /**\n * Extract\n * @param dracoGeometry\n * @param geometry_type\n * @param options\n * @returns\n */\n _getDracoLoaderData(dracoGeometry, geometry_type, options) {\n const metadata = this._getTopLevelMetadata(dracoGeometry);\n const attributes = this._getDracoAttributes(dracoGeometry, options);\n return {\n geometry_type,\n num_attributes: dracoGeometry.num_attributes(),\n num_points: dracoGeometry.num_points(),\n num_faces: dracoGeometry instanceof this.draco.Mesh ? dracoGeometry.num_faces() : 0,\n metadata,\n attributes\n };\n }\n /**\n * Extract all draco provided information and metadata for each attribute\n * @param dracoGeometry\n * @param options\n * @returns\n */\n _getDracoAttributes(dracoGeometry, options) {\n const dracoAttributes = {};\n for (let attributeId = 0; attributeId < dracoGeometry.num_attributes(); attributeId++) {\n // Note: Draco docs do not seem clear on `GetAttribute` ids just being a zero-based index,\n // but it does seems to work this way\n const dracoAttribute = this.decoder.GetAttribute(dracoGeometry, attributeId);\n const metadata = this._getAttributeMetadata(dracoGeometry, attributeId);\n dracoAttributes[dracoAttribute.unique_id()] = {\n unique_id: dracoAttribute.unique_id(),\n attribute_type: dracoAttribute.attribute_type(),\n data_type: dracoAttribute.data_type(),\n num_components: dracoAttribute.num_components(),\n byte_offset: dracoAttribute.byte_offset(),\n byte_stride: dracoAttribute.byte_stride(),\n normalized: dracoAttribute.normalized(),\n attribute_index: attributeId,\n metadata\n };\n // Add transformation parameters for any attributes app wants untransformed\n const quantization = this._getQuantizationTransform(dracoAttribute, options);\n if (quantization) {\n dracoAttributes[dracoAttribute.unique_id()].quantization_transform = quantization;\n }\n const octahedron = this._getOctahedronTransform(dracoAttribute, options);\n if (octahedron) {\n dracoAttributes[dracoAttribute.unique_id()].octahedron_transform = octahedron;\n }\n }\n return dracoAttributes;\n }\n /**\n * Get standard loaders.gl mesh category data\n * Extracts the geometry from draco\n * @param dracoGeometry\n * @param options\n */\n _getMeshData(dracoGeometry, loaderData, options) {\n const attributes = this._getMeshAttributes(loaderData, dracoGeometry, options);\n const positionAttribute = attributes.POSITION;\n if (!positionAttribute) {\n throw new Error('DRACO: No position attribute found.');\n }\n // For meshes, we need indices to define the faces.\n if (dracoGeometry instanceof this.draco.Mesh) {\n switch (options.topology) {\n case 'triangle-strip':\n return {\n topology: 'triangle-strip',\n mode: 4, // GL.TRIANGLES\n attributes,\n indices: {\n value: this._getTriangleStripIndices(dracoGeometry),\n size: 1\n }\n };\n case 'triangle-list':\n default:\n return {\n topology: 'triangle-list',\n mode: 5, // GL.TRIANGLE_STRIP\n attributes,\n indices: {\n value: this._getTriangleListIndices(dracoGeometry),\n size: 1\n }\n };\n }\n }\n // PointCloud - must come last as Mesh inherits from PointCloud\n return {\n topology: 'point-list',\n mode: 0, // GL.POINTS\n attributes\n };\n }\n _getMeshAttributes(loaderData, dracoGeometry, options) {\n const attributes = {};\n for (const loaderAttribute of Object.values(loaderData.attributes)) {\n const attributeName = this._deduceAttributeName(loaderAttribute, options);\n loaderAttribute.name = attributeName;\n const values = this._getAttributeValues(dracoGeometry, loaderAttribute);\n if (values) {\n const { value, size } = values;\n attributes[attributeName] = {\n value,\n size,\n byteOffset: loaderAttribute.byte_offset,\n byteStride: loaderAttribute.byte_stride,\n normalized: loaderAttribute.normalized\n };\n }\n }\n return attributes;\n }\n // MESH INDICES EXTRACTION\n /**\n * For meshes, we need indices to define the faces.\n * @param dracoGeometry\n */\n _getTriangleListIndices(dracoGeometry) {\n // Example on how to retrieve mesh and attributes.\n const numFaces = dracoGeometry.num_faces();\n const numIndices = numFaces * 3;\n const byteLength = numIndices * INDEX_ITEM_SIZE;\n const ptr = this.draco._malloc(byteLength);\n try {\n this.decoder.GetTrianglesUInt32Array(dracoGeometry, byteLength, ptr);\n return new Uint32Array(this.draco.HEAPF32.buffer, ptr, numIndices).slice();\n }\n finally {\n this.draco._free(ptr);\n }\n }\n /**\n * For meshes, we need indices to define the faces.\n * @param dracoGeometry\n */\n _getTriangleStripIndices(dracoGeometry) {\n const dracoArray = new this.draco.DracoInt32Array();\n try {\n /* const numStrips = */ this.decoder.GetTriangleStripsFromMesh(dracoGeometry, dracoArray);\n return getUint32Array(dracoArray);\n }\n finally {\n this.draco.destroy(dracoArray);\n }\n }\n /**\n *\n * @param dracoGeometry\n * @param dracoAttribute\n * @param attributeName\n */\n _getAttributeValues(dracoGeometry, attribute) {\n const TypedArrayCtor = DRACO_DATA_TYPE_TO_TYPED_ARRAY_MAP[attribute.data_type];\n if (!TypedArrayCtor) {\n // eslint-disable-next-line no-console\n console.warn(`DRACO: Unsupported attribute type ${attribute.data_type}`);\n return null;\n }\n const numComponents = attribute.num_components;\n const numPoints = dracoGeometry.num_points();\n const numValues = numPoints * numComponents;\n const byteLength = numValues * TypedArrayCtor.BYTES_PER_ELEMENT;\n const dataType = getDracoDataType(this.draco, TypedArrayCtor);\n let value;\n const ptr = this.draco._malloc(byteLength);\n try {\n const dracoAttribute = this.decoder.GetAttribute(dracoGeometry, attribute.attribute_index);\n this.decoder.GetAttributeDataArrayForAllPoints(dracoGeometry, dracoAttribute, dataType, byteLength, ptr);\n value = new TypedArrayCtor(this.draco.HEAPF32.buffer, ptr, numValues).slice();\n }\n finally {\n this.draco._free(ptr);\n }\n return { value, size: numComponents };\n }\n // Attribute names\n /**\n * DRACO does not store attribute names - We need to deduce an attribute name\n * for each attribute\n _getAttributeNames(\n dracoGeometry: Mesh | PointCloud,\n options: DracoParseOptions\n ): {[unique_id: number]: string} {\n const attributeNames: {[unique_id: number]: string} = {};\n for (let attributeId = 0; attributeId < dracoGeometry.num_attributes(); attributeId++) {\n const dracoAttribute = this.decoder.GetAttribute(dracoGeometry, attributeId);\n const attributeName = this._deduceAttributeName(dracoAttribute, options);\n attributeNames[attributeName] = attributeName;\n }\n return attributeNames;\n }\n */\n /**\n * Deduce an attribute name.\n * @note DRACO does not save attribute names, just general type (POSITION, COLOR)\n * to help optimize compression. We generate GLTF compatible names for the Draco-recognized\n * types\n * @param attributeData\n */\n _deduceAttributeName(attribute, options) {\n // Deduce name based on application provided map\n const uniqueId = attribute.unique_id;\n for (const [attributeName, attributeUniqueId] of Object.entries(options.extraAttributes || {})) {\n if (attributeUniqueId === uniqueId) {\n return attributeName;\n }\n }\n // Deduce name based on attribute type\n const thisAttributeType = attribute.attribute_type;\n for (const dracoAttributeConstant in DRACO_TO_GLTF_ATTRIBUTE_NAME_MAP) {\n const attributeType = this.draco[dracoAttributeConstant];\n if (attributeType === thisAttributeType) {\n // TODO - Return unique names if there multiple attributes per type\n // (e.g. multiple TEX_COORDS or COLORS)\n return DRACO_TO_GLTF_ATTRIBUTE_NAME_MAP[dracoAttributeConstant];\n }\n }\n // Look up in metadata\n // TODO - shouldn't this have priority?\n const entryName = options.attributeNameEntry || 'name';\n if (attribute.metadata[entryName]) {\n return attribute.metadata[entryName].string;\n }\n // Attribute of \"GENERIC\" type, we need to assign some name\n return `CUSTOM_ATTRIBUTE_${uniqueId}`;\n }\n // METADATA EXTRACTION\n /** Get top level metadata */\n _getTopLevelMetadata(dracoGeometry) {\n const dracoMetadata = this.decoder.GetMetadata(dracoGeometry);\n return this._getDracoMetadata(dracoMetadata);\n }\n /** Get per attribute metadata */\n _getAttributeMetadata(dracoGeometry, attributeId) {\n const dracoMetadata = this.decoder.GetAttributeMetadata(dracoGeometry, attributeId);\n return this._getDracoMetadata(dracoMetadata);\n }\n /**\n * Extract metadata field values\n * @param dracoMetadata\n * @returns\n */\n _getDracoMetadata(dracoMetadata) {\n // The not so wonderful world of undocumented Draco APIs :(\n if (!dracoMetadata || !dracoMetadata.ptr) {\n return {};\n }\n const result = {};\n const numEntries = this.metadataQuerier.NumEntries(dracoMetadata);\n for (let entryIndex = 0; entryIndex < numEntries; entryIndex++) {\n const entryName = this.metadataQuerier.GetEntryName(dracoMetadata, entryIndex);\n result[entryName] = this._getDracoMetadataField(dracoMetadata, entryName);\n }\n return result;\n }\n /**\n * Extracts possible values for one metadata entry by name\n * @param dracoMetadata\n * @param entryName\n */\n _getDracoMetadataField(dracoMetadata, entryName) {\n const dracoArray = new this.draco.DracoInt32Array();\n try {\n // Draco metadata fields can hold int32 arrays\n this.metadataQuerier.GetIntEntryArray(dracoMetadata, entryName, dracoArray);\n const intArray = getInt32Array(dracoArray);\n return {\n int: this.metadataQuerier.GetIntEntry(dracoMetadata, entryName),\n string: this.metadataQuerier.GetStringEntry(dracoMetadata, entryName),\n double: this.metadataQuerier.GetDoubleEntry(dracoMetadata, entryName),\n intArray\n };\n }\n finally {\n this.draco.destroy(dracoArray);\n }\n }\n // QUANTIZED ATTRIBUTE SUPPORT (NO DECOMPRESSION)\n /** Skip transforms for specific attribute types */\n _disableAttributeTransforms(options) {\n const { quantizedAttributes = [], octahedronAttributes = [] } = options;\n const skipAttributes = [...quantizedAttributes, ...octahedronAttributes];\n for (const dracoAttributeName of skipAttributes) {\n this.decoder.SkipAttributeTransform(this.draco[dracoAttributeName]);\n }\n }\n /**\n * Extract (and apply?) Position Transform\n * @todo not used\n */\n _getQuantizationTransform(dracoAttribute, options) {\n const { quantizedAttributes = [] } = options;\n const attribute_type = dracoAttribute.attribute_type();\n const skip = quantizedAttributes.map((type) => this.decoder[type]).includes(attribute_type);\n if (skip) {\n const transform = new this.draco.AttributeQuantizationTransform();\n try {\n if (transform.InitFromAttribute(dracoAttribute)) {\n return {\n quantization_bits: transform.quantization_bits(),\n range: transform.range(),\n min_values: new Float32Array([1, 2, 3]).map((i) => transform.min_value(i))\n };\n }\n }\n finally {\n this.draco.destroy(transform);\n }\n }\n return null;\n }\n _getOctahedronTransform(dracoAttribute, options) {\n const { octahedronAttributes = [] } = options;\n const attribute_type = dracoAttribute.attribute_type();\n const octahedron = octahedronAttributes\n .map((type) => this.decoder[type])\n .includes(attribute_type);\n if (octahedron) {\n const transform = new this.draco.AttributeQuantizationTransform();\n try {\n if (transform.InitFromAttribute(dracoAttribute)) {\n return {\n quantization_bits: transform.quantization_bits()\n };\n }\n }\n finally {\n this.draco.destroy(transform);\n }\n }\n return null;\n }\n}\n/**\n * Get draco specific data type by TypedArray constructor type\n * @param attributeType\n * @returns draco specific data type\n */\nfunction getDracoDataType(draco, attributeType) {\n switch (attributeType) {\n case Float32Array:\n return draco.DT_FLOAT32;\n case Int8Array:\n return draco.DT_INT8;\n case Int16Array:\n return draco.DT_INT16;\n case Int32Array:\n return draco.DT_INT32;\n case Uint8Array:\n return draco.DT_UINT8;\n case Uint16Array:\n return draco.DT_UINT16;\n case Uint32Array:\n return draco.DT_UINT32;\n default:\n return draco.DT_INVALID;\n }\n}\n/**\n * Copy a Draco int32 array into a JS typed array\n */\nfunction getInt32Array(dracoArray) {\n const numValues = dracoArray.size();\n const intArray = new Int32Array(numValues);\n for (let i = 0; i < numValues; i++) {\n intArray[i] = dracoArray.GetValue(i);\n }\n return intArray;\n}\n/**\n * Copy a Draco int32 array into a JS typed array\n */\nfunction getUint32Array(dracoArray) {\n const numValues = dracoArray.size();\n const intArray = new Int32Array(numValues);\n for (let i = 0; i < numValues; i++) {\n intArray[i] = dracoArray.GetValue(i);\n }\n return intArray;\n}\n", "// Dynamic DRACO module loading inspired by THREE.DRACOLoader\n// https://github.com/mrdoob/three.js/blob/398c4f39ebdb8b23eefd4a7a5ec49ec0c96c7462/examples/jsm/loaders/DRACOLoader.js\n// by Don McCurdy / https://www.donmccurdy.com / MIT license\nimport { loadLibrary } from '@loaders.gl/worker-utils';\nconst DRACO_DECODER_VERSION = '1.5.6';\nconst DRACO_ENCODER_VERSION = '1.4.1';\nconst STATIC_DECODER_URL = `https://www.gstatic.com/draco/versioned/decoders/${DRACO_DECODER_VERSION}`;\nexport const DRACO_EXTERNAL_LIBRARIES = {\n /** The primary Draco3D encoder, javascript wrapper part */\n DECODER: 'draco_wasm_wrapper.js',\n /** The primary draco decoder, compiled web assembly part */\n DECODER_WASM: 'draco_decoder.wasm',\n /** Fallback decoder for non-webassebly environments. Very big bundle, lower performance */\n FALLBACK_DECODER: 'draco_decoder.js',\n /** Draco encoder */\n ENCODER: 'draco_encoder.js'\n};\nexport const DRACO_EXTERNAL_LIBRARY_URLS = {\n [DRACO_EXTERNAL_LIBRARIES.DECODER]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.DECODER}`,\n [DRACO_EXTERNAL_LIBRARIES.DECODER_WASM]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.DECODER_WASM}`,\n [DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER}`,\n [DRACO_EXTERNAL_LIBRARIES.ENCODER]: `https://raw.githubusercontent.com/google/draco/${DRACO_ENCODER_VERSION}/javascript/${DRACO_EXTERNAL_LIBRARIES.ENCODER}`\n};\nlet loadDecoderPromise;\nlet loadEncoderPromise;\nexport async function loadDracoDecoderModule(options) {\n const modules = options.modules || {};\n // Check if a bundled draco3d library has been supplied by application\n if (modules.draco3d) {\n loadDecoderPromise ||= modules.draco3d.createDecoderModule({}).then((draco) => {\n return { draco };\n });\n }\n else {\n // If not, dynamically load the WASM script from our CDN\n loadDecoderPromise ||= loadDracoDecoder(options);\n }\n return await loadDecoderPromise;\n}\nexport async function loadDracoEncoderModule(options) {\n const modules = options.modules || {};\n // Check if a bundled draco3d library has been supplied by application\n if (modules.draco3d) {\n loadEncoderPromise ||= modules.draco3d.createEncoderModule({}).then((draco) => {\n return { draco };\n });\n }\n else {\n // If not, dynamically load the WASM script from our CDN\n loadEncoderPromise ||= loadDracoEncoder(options);\n }\n return await loadEncoderPromise;\n}\n// DRACO DECODER LOADING\nasync function loadDracoDecoder(options) {\n let DracoDecoderModule;\n let wasmBinary;\n switch (options.draco && options.draco.decoderType) {\n case 'js':\n DracoDecoderModule = await loadLibrary(DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER], 'draco', options, DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER);\n break;\n case 'wasm':\n default:\n [DracoDecoderModule, wasmBinary] = await Promise.all([\n await loadLibrary(DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER], 'draco', options, DRACO_EXTERNAL_LIBRARIES.DECODER),\n await loadLibrary(DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER_WASM], 'draco', options, DRACO_EXTERNAL_LIBRARIES.DECODER_WASM)\n ]);\n }\n // Depends on how import happened...\n // @ts-ignore\n DracoDecoderModule = DracoDecoderModule || globalThis.DracoDecoderModule;\n return await initializeDracoDecoder(DracoDecoderModule, wasmBinary);\n}\nfunction initializeDracoDecoder(DracoDecoderModule, wasmBinary) {\n const options = {};\n if (wasmBinary) {\n options.wasmBinary = wasmBinary;\n }\n return new Promise((resolve) => {\n DracoDecoderModule({\n ...options,\n onModuleLoaded: (draco) => resolve({ draco }) // Module is Promise-like. Wrap in object to avoid loop.\n });\n });\n}\n// ENCODER\nasync function loadDracoEncoder(options) {\n let DracoEncoderModule = await loadLibrary(DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.ENCODER], 'draco', options, DRACO_EXTERNAL_LIBRARIES.ENCODER);\n // @ts-ignore\n DracoEncoderModule = DracoEncoderModule || globalThis.DracoEncoderModule;\n return new Promise((resolve) => {\n DracoEncoderModule({\n onModuleLoaded: (draco) => resolve({ draco }) // Module is Promise-like. Wrap in object to avoid loop.\n });\n });\n}\n", "import { DracoLoader as DracoWorkerLoader } from \"./draco-loader.js\";\nimport DracoParser from \"./lib/draco-parser.js\";\nimport { loadDracoDecoderModule } from \"./lib/draco-module-loader.js\";\nimport { VERSION } from \"./lib/utils/version.js\";\n// Module constants\nexport { DRACO_EXTERNAL_LIBRARIES, DRACO_EXTERNAL_LIBRARY_URLS } from \"./lib/draco-module-loader.js\";\nexport { DracoWriter } from \"./draco-writer.js\";\n/**\n * Browser worker doesn't work because of issue during \"draco_encoder.js\" loading.\n * Refused to execute script from 'https://raw.githubusercontent.com/google/draco/1.4.1/javascript/draco_encoder.js' because its MIME type ('') is not executable.\n */\nexport const DracoWriterWorker = {\n id: 'draco-writer',\n name: 'Draco compressed geometry writer',\n module: 'draco',\n version: VERSION,\n worker: true,\n options: {\n draco: {},\n source: null\n }\n};\nexport { DracoWorkerLoader };\n/**\n * Loader for Draco3D compressed geometries\n */\nexport const DracoLoader = {\n ...DracoWorkerLoader,\n parse\n};\nasync function parse(arrayBuffer, options) {\n const { draco } = await loadDracoDecoderModule(options);\n const dracoParser = new DracoParser(draco);\n try {\n return dracoParser.parseSync(arrayBuffer, options?.draco);\n }\n finally {\n dracoParser.destroy();\n }\n}\n", "// TODO - remove\nimport { getAccessorTypeFromSize, getComponentTypeFromArray } from \"./gltf-utils.js\";\n// Returns a fresh attributes object with glTF-standardized attributes names\n// Attributes that cannot be identified will not be included\n// Removes `indices` if present, as it should be stored separately from the attributes\nexport function getGLTFAccessors(attributes) {\n const accessors = {};\n for (const name in attributes) {\n const attribute = attributes[name];\n if (name !== 'indices') {\n const glTFAccessor = getGLTFAccessor(attribute);\n accessors[name] = glTFAccessor;\n }\n }\n return accessors;\n}\n// Fix up a single accessor.\n// Input: typed array or a partial accessor object\n// Return: accessor object\nexport function getGLTFAccessor(attribute) {\n const { buffer, size, count } = getAccessorData(attribute);\n const glTFAccessor = {\n // glTF Accessor values\n // TODO: Instead of a bufferView index we could have an actual buffer (typed array)\n // bufferView: null,\n // TODO: Deprecate `value` in favor of bufferView?\n // @ts-ignore\n value: buffer,\n size, // Decoded `type` (e.g. SCALAR)\n byteOffset: 0,\n count,\n type: getAccessorTypeFromSize(size),\n componentType: getComponentTypeFromArray(buffer)\n };\n return glTFAccessor;\n}\n// export function getGLTFAttribute(data, gltfAttributeName): GLTFAccessor {\n// return data.attributes[data.glTFAttributeMap[gltfAttributeName]];\n// }\nfunction getAccessorData(attribute) {\n let buffer = attribute;\n let size = 1;\n let count = 0;\n if (attribute && attribute.value) {\n buffer = attribute.value;\n size = attribute.size || 1;\n }\n if (buffer) {\n if (!ArrayBuffer.isView(buffer)) {\n buffer = toTypedArray(buffer, Float32Array);\n }\n count = buffer.length / size;\n }\n return { buffer, size, count };\n}\n// Convert non-typed arrays to arrays of specified format\nfunction toTypedArray(array, ArrayType, convertTypedArrays = false) {\n if (!array) {\n return null;\n }\n if (Array.isArray(array)) {\n return new ArrayType(array);\n }\n if (convertTypedArrays && !(array instanceof ArrayType)) {\n return new ArrayType(array);\n }\n return array;\n}\n", "/**\n * https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_texture_transform/README.md\n */\nimport { Vector3, Matrix3 } from '@math.gl/core';\nimport { getAccessorArrayTypeAndLength } from \"../gltf-utils/gltf-utils.js\";\nimport { BYTES, COMPONENTS } from \"../gltf-utils/gltf-constants.js\";\nimport { GLTFScenegraph } from \"../api/gltf-scenegraph.js\";\n/** Extension name */\nconst KHR_TEXTURE_TRANSFORM = 'KHR_texture_transform';\nexport const name = KHR_TEXTURE_TRANSFORM;\nconst scratchVector = new Vector3();\nconst scratchRotationMatrix = new Matrix3();\nconst scratchScaleMatrix = new Matrix3();\n/**\n * The extension entry to process the transformation\n * @param gltfData gltf buffers and json\n * @param options GLTFLoader options\n */\nexport async function decode(gltfData, options) {\n const gltfScenegraph = new GLTFScenegraph(gltfData);\n const hasExtension = gltfScenegraph.hasExtension(KHR_TEXTURE_TRANSFORM);\n if (!hasExtension || !options.gltf?.loadBuffers) {\n return;\n }\n const materials = gltfData.json.materials || [];\n for (let i = 0; i < materials.length; i++) {\n transformTexCoords(i, gltfData);\n }\n}\n/**\n * Transform TEXCOORD by material\n * @param materialIndex processing material index\n * @param gltfData gltf buffers and json\n */\nfunction transformTexCoords(materialIndex, gltfData) {\n const material = gltfData.json.materials?.[materialIndex];\n const materialTextures = [\n material?.pbrMetallicRoughness?.baseColorTexture,\n material?.emissiveTexture,\n material?.normalTexture,\n material?.occlusionTexture,\n material?.pbrMetallicRoughness?.metallicRoughnessTexture\n ];\n // Save processed texCoords in order no to process the same twice\n const processedTexCoords = [];\n for (const textureInfo of materialTextures) {\n if (textureInfo && textureInfo?.extensions?.[KHR_TEXTURE_TRANSFORM]) {\n transformPrimitives(gltfData, materialIndex, textureInfo, processedTexCoords);\n }\n }\n}\n/**\n * Transform primitives of the particular material\n * @param gltfData gltf data\n * @param materialIndex primitives with this material will be transformed\n * @param texture texture object\n * @param processedTexCoords storage to save already processed texCoords\n */\nfunction transformPrimitives(gltfData, materialIndex, texture, processedTexCoords) {\n const transformParameters = getTransformParameters(texture, processedTexCoords);\n if (!transformParameters) {\n return;\n }\n const meshes = gltfData.json.meshes || [];\n for (const mesh of meshes) {\n for (const primitive of mesh.primitives) {\n const material = primitive.material;\n if (Number.isFinite(material) && materialIndex === material) {\n transformPrimitive(gltfData, primitive, transformParameters);\n }\n }\n }\n}\n/**\n * Get parameters for TEXCOORD transformation\n * @param texture texture object\n * @param processedTexCoords storage to save already processed texCoords\n * @returns texCoord couple and transformation matrix\n */\nfunction getTransformParameters(texture, processedTexCoords) {\n const textureInfo = texture.extensions?.[KHR_TEXTURE_TRANSFORM];\n const { texCoord: originalTexCoord = 0 } = texture;\n // If texCoord is not set in the extension, original attribute data will be replaced\n const { texCoord = originalTexCoord } = textureInfo;\n // Make sure that couple [originalTexCoord, extensionTexCoord] is not processed twice\n const isProcessed = processedTexCoords.findIndex(([original, newTexCoord]) => original === originalTexCoord && newTexCoord === texCoord) !== -1;\n if (!isProcessed) {\n const matrix = makeTransformationMatrix(textureInfo);\n if (originalTexCoord !== texCoord) {\n texture.texCoord = texCoord;\n }\n processedTexCoords.push([originalTexCoord, texCoord]);\n return { originalTexCoord, texCoord, matrix };\n }\n return null;\n}\n/**\n * Transform `TEXCOORD_0` attribute in the primitive\n * @param gltfData gltf data\n * @param primitive primitive object\n * @param transformParameters texCoord couple and transformation matrix\n */\nfunction transformPrimitive(gltfData, primitive, transformParameters) {\n const { originalTexCoord, texCoord, matrix } = transformParameters;\n const texCoordAccessor = primitive.attributes[`TEXCOORD_${originalTexCoord}`];\n if (Number.isFinite(texCoordAccessor)) {\n // Get accessor of the `TEXCOORD_0` attribute\n const accessor = gltfData.json.accessors?.[texCoordAccessor];\n if (accessor && accessor.bufferView) {\n // Get `bufferView` of the `accessor`\n const bufferView = gltfData.json.bufferViews?.[accessor.bufferView];\n if (bufferView) {\n // Get `arrayBuffer` the `bufferView` look at\n const { arrayBuffer, byteOffset: bufferByteOffset } = gltfData.buffers[bufferView.buffer];\n // Resulting byteOffset is sum of the buffer, accessor and bufferView byte offsets\n const byteOffset = (bufferByteOffset || 0) + (accessor.byteOffset || 0) + (bufferView.byteOffset || 0);\n // Deduce TypedArray type and its length from `accessor` and `bufferView` data\n const { ArrayType, length } = getAccessorArrayTypeAndLength(accessor, bufferView);\n // Number of bytes each component occupies\n const bytes = BYTES[accessor.componentType];\n // Number of components. For the `TEXCOORD_0` with `VEC2` type, it must return 2\n const components = COMPONENTS[accessor.type];\n // Multiplier to calculate the address of the `TEXCOORD_0` element in the arrayBuffer\n const elementAddressScale = bufferView.byteStride || bytes * components;\n // Data transform to Float32Array\n const result = new Float32Array(length);\n for (let i = 0; i < accessor.count; i++) {\n // Take [u, v] couple from the arrayBuffer\n const uv = new ArrayType(arrayBuffer, byteOffset + i * elementAddressScale, 2);\n // Set and transform Vector3 per https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_texture_transform#overview\n scratchVector.set(uv[0], uv[1], 1);\n scratchVector.transformByMatrix3(matrix);\n // Save result in Float32Array\n result.set([scratchVector[0], scratchVector[1]], i * components);\n }\n // If texCoord the same, replace gltf structural data\n if (originalTexCoord === texCoord) {\n updateGltf(accessor, bufferView, gltfData.buffers, result);\n }\n else {\n // If texCoord change, create new attribute\n createAttribute(texCoord, accessor, primitive, gltfData, result);\n }\n }\n }\n }\n}\n/**\n * Update GLTF structural objects with new data as we create new `Float32Array` for `TEXCOORD_0`.\n * @param accessor accessor to change\n * @param bufferView bufferView to change\n * @param buffers binary buffers\n * @param newTexcoordArray typed array with data after transformation\n */\nfunction updateGltf(accessor, bufferView, buffers, newTexCoordArray) {\n accessor.componentType = 5126;\n buffers.push({\n arrayBuffer: newTexCoordArray.buffer,\n byteOffset: 0,\n byteLength: newTexCoordArray.buffer.byteLength\n });\n bufferView.buffer = buffers.length - 1;\n bufferView.byteLength = newTexCoordArray.buffer.byteLength;\n bufferView.byteOffset = 0;\n delete bufferView.byteStride;\n}\n/**\n *\n * @param newTexCoord new `texCoord` value\n * @param originalAccessor original accessor object, that store data before transformation\n * @param primitive primitive object\n * @param gltfData gltf data\n * @param newTexCoordArray typed array with data after transformation\n * @returns\n */\nfunction createAttribute(newTexCoord, originalAccessor, primitive, gltfData, newTexCoordArray) {\n gltfData.buffers.push({\n arrayBuffer: newTexCoordArray.buffer,\n byteOffset: 0,\n byteLength: newTexCoordArray.buffer.byteLength\n });\n const bufferViews = gltfData.json.bufferViews;\n if (!bufferViews) {\n return;\n }\n bufferViews.push({\n buffer: gltfData.buffers.length - 1,\n byteLength: newTexCoordArray.buffer.byteLength,\n byteOffset: 0\n });\n const accessors = gltfData.json.accessors;\n if (!accessors) {\n return;\n }\n accessors.push({\n bufferView: bufferViews?.length - 1,\n byteOffset: 0,\n componentType: 5126,\n count: originalAccessor.count,\n type: 'VEC2'\n });\n primitive.attributes[`TEXCOORD_${newTexCoord}`] = accessors.length - 1;\n}\n/**\n * Construct transformation matrix from the extension data (transition, rotation, scale)\n * @param extensionData extension data\n * @returns transformation matrix\n */\nfunction makeTransformationMatrix(extensionData) {\n const { offset = [0, 0], rotation = 0, scale = [1, 1] } = extensionData;\n const translationMatrix = new Matrix3().set(1, 0, 0, 0, 1, 0, offset[0], offset[1], 1);\n const rotationMatrix = scratchRotationMatrix.set(Math.cos(rotation), Math.sin(rotation), 0, -Math.sin(rotation), Math.cos(rotation), 0, 0, 0, 1);\n const scaleMatrix = scratchScaleMatrix.set(scale[0], 0, 0, 0, scale[1], 0, 0, 0, 1);\n return translationMatrix.multiplyRight(rotationMatrix).multiplyRight(scaleMatrix);\n}\n", "// math.gl, MIT license\nconst RADIANS_TO_DEGREES = (1 / Math.PI) * 180;\nconst DEGREES_TO_RADIANS = (1 / 180) * Math.PI;\nconst DEFAULT_CONFIG = {\n EPSILON: 1e-12,\n debug: false,\n precision: 4,\n printTypes: false,\n printDegrees: false,\n printRowMajor: true,\n _cartographicRadians: false\n};\n// Configuration is truly global as of v3.6 to ensure single config even if multiple copies of math.gl\n// Multiple copies of config can be quite tricky to debug...\nglobalThis.mathgl = globalThis.mathgl || { config: { ...DEFAULT_CONFIG } };\nexport const config = globalThis.mathgl.config;\nexport function configure(options) {\n // Only copy existing keys\n Object.assign(config, options);\n return config;\n}\n/**\n * Formats a value into a string\n * @param value\n * @param param1\n * @returns\n */\nexport function formatValue(value, { precision = config.precision } = {}) {\n value = round(value);\n // get rid of trailing zeros\n return `${parseFloat(value.toPrecision(precision))}`;\n}\n/**\n * Check if value is an \"array\"\n * Returns `true` if value is either an array or a typed array\n * Note: returns `false` for `ArrayBuffer` and `DataView` instances\n * @note isTypedArray and isNumericArray are often more useful in TypeScript\n */\nexport function isArray(value) {\n return Array.isArray(value) || (ArrayBuffer.isView(value) && !(value instanceof DataView));\n}\nexport function clone(array) {\n return 'clone' in array ? array.clone() : array.slice();\n}\nexport function toRadians(degrees) {\n return radians(degrees);\n}\nexport function toDegrees(radians) {\n return degrees(radians);\n}\nexport function radians(degrees, result) {\n return map(degrees, (degrees) => degrees * DEGREES_TO_RADIANS, result);\n}\nexport function degrees(radians, result) {\n return map(radians, (radians) => radians * RADIANS_TO_DEGREES, result);\n}\n/**\n * \"GLSL equivalent\" of `Math.sin`: Works on single values and vectors\n * @deprecated\n */\nexport function sin(radians, result) {\n return map(radians, (angle) => Math.sin(angle), result);\n}\n/**\n * \"GLSL equivalent\" of `Math.cos`: Works on single values and vectors\n * @deprecated\n */\nexport function cos(radians, result) {\n return map(radians, (angle) => Math.cos(angle), result);\n}\n/**\n * \"GLSL equivalent\" of `Math.tan`: Works on single values and vectors\n * @deprecated\n */\nexport function tan(radians, result) {\n return map(radians, (angle) => Math.tan(angle), result);\n}\n/**\n * \"GLSL equivalent\" of `Math.asin`: Works on single values and vectors\n * @deprecated\n */\nexport function asin(radians, result) {\n return map(radians, (angle) => Math.asin(angle), result);\n}\n/**\n * \"GLSL equivalent\" of `Math.acos`: Works on single values and vectors\n * @deprecated\n */\nexport function acos(radians, result) {\n return map(radians, (angle) => Math.acos(angle), result);\n}\n/**\n * \"GLSL equivalent\" of `Math.atan`: Works on single values and vectors\n * @deprecated\n */\nexport function atan(radians, result) {\n return map(radians, (angle) => Math.atan(angle), result);\n}\nexport function clamp(value, min, max) {\n return map(value, (value) => Math.max(min, Math.min(max, value)));\n}\nexport function lerp(a, b, t) {\n if (isArray(a)) {\n return a.map((ai, i) => lerp(ai, b[i], t));\n }\n return t * b + (1 - t) * a;\n}\n/* eslint-disable */\n/**\n * Compares any two math objects, using `equals` method if available.\n * @param a\n * @param b\n * @param epsilon\n * @returns\n */\nexport function equals(a, b, epsilon) {\n const oldEpsilon = config.EPSILON;\n if (epsilon) {\n config.EPSILON = epsilon;\n }\n try {\n if (a === b) {\n return true;\n }\n if (isArray(a) && isArray(b)) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; ++i) {\n // eslint-disable-next-line max-depth\n if (!equals(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n if (a && a.equals) {\n return a.equals(b);\n }\n if (b && b.equals) {\n return b.equals(a);\n }\n if (typeof a === 'number' && typeof b === 'number') {\n return Math.abs(a - b) <= config.EPSILON * Math.max(1, Math.abs(a), Math.abs(b));\n }\n return false;\n }\n finally {\n config.EPSILON = oldEpsilon;\n }\n}\nexport function exactEquals(a, b) {\n if (a === b) {\n return true;\n }\n if (a && typeof a === 'object' && b && typeof b === 'object') {\n if (a.constructor !== b.constructor) {\n return false;\n }\n if (a.exactEquals) {\n return a.exactEquals(b);\n }\n }\n if (isArray(a) && isArray(b)) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; ++i) {\n if (!exactEquals(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n/* eslint-enable */\nexport function withEpsilon(epsilon, func) {\n const oldPrecision = config.EPSILON;\n config.EPSILON = epsilon;\n let value;\n try {\n value = func();\n }\n finally {\n config.EPSILON = oldPrecision;\n }\n return value;\n}\n// HELPERS\nfunction round(value) {\n return Math.round(value / config.EPSILON) * config.EPSILON;\n}\n// If the array has a clone function, calls it, otherwise returns a copy\nfunction duplicateArray(array) {\n // @ts-expect-error We check for math.gl class methods\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n return array.clone ? array.clone() : new Array(array.length);\n}\n// If the argument value is an array, applies the func element wise,\n// otherwise applies func to the argument value\nfunction map(value, func, result) {\n if (isArray(value)) {\n const array = value;\n result = result || duplicateArray(array);\n for (let i = 0; i < result.length && i < array.length; ++i) {\n const val = typeof value === 'number' ? value : value[i];\n result[i] = func(val, i, result);\n }\n return result;\n }\n return func(value);\n}\n", "import { config, formatValue, equals, isArray } from \"../../lib/common.js\";\n/** Base class for vectors and matrices */\nexport class MathArray extends Array {\n // Common methods\n /**\n * Clone the current object\n * @returns a new copy of this object\n */\n clone() {\n // @ts-expect-error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.\n return new this.constructor().copy(this); // eslint-disable-line\n }\n fromArray(array, offset = 0) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = array[i + offset];\n }\n return this.check();\n }\n toArray(targetArray = [], offset = 0) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n targetArray[offset + i] = this[i];\n }\n return targetArray;\n }\n toObject(targetObject) {\n return targetObject;\n }\n from(arrayOrObject) {\n return Array.isArray(arrayOrObject)\n ? this.copy(arrayOrObject)\n : // @ts-ignore\n this.fromObject(arrayOrObject);\n }\n to(arrayOrObject) {\n // @ts-ignore\n if (arrayOrObject === this) {\n return this;\n }\n // @ts-expect-error TS2339: Property 'toObject' does not exist on type 'MathArray'.\n return isArray(arrayOrObject) ? this.toArray(arrayOrObject) : this.toObject(arrayOrObject);\n }\n toTarget(target) {\n return target ? this.to(target) : this;\n }\n /** @deprecated */\n toFloat32Array() {\n return new Float32Array(this);\n }\n toString() {\n return this.formatString(config);\n }\n /** Formats string according to options */\n formatString(opts) {\n let string = '';\n for (let i = 0; i < this.ELEMENTS; ++i) {\n string += (i > 0 ? ', ' : '') + formatValue(this[i], opts);\n }\n return `${opts.printTypes ? this.constructor.name : ''}[${string}]`;\n }\n equals(array) {\n if (!array || this.length !== array.length) {\n return false;\n }\n for (let i = 0; i < this.ELEMENTS; ++i) {\n if (!equals(this[i], array[i])) {\n return false;\n }\n }\n return true;\n }\n exactEquals(array) {\n if (!array || this.length !== array.length) {\n return false;\n }\n for (let i = 0; i < this.ELEMENTS; ++i) {\n if (this[i] !== array[i]) {\n return false;\n }\n }\n return true;\n }\n // Modifiers\n /** Negates all values in this object */\n negate() {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = -this[i];\n }\n return this.check();\n }\n lerp(a, b, t) {\n if (t === undefined) {\n return this.lerp(this, a, b);\n }\n for (let i = 0; i < this.ELEMENTS; ++i) {\n const ai = a[i];\n const endValue = typeof b === 'number' ? b : b[i];\n this[i] = ai + t * (endValue - ai);\n }\n return this.check();\n }\n /** Minimal */\n min(vector) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = Math.min(vector[i], this[i]);\n }\n return this.check();\n }\n /** Maximal */\n max(vector) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = Math.max(vector[i], this[i]);\n }\n return this.check();\n }\n clamp(minVector, maxVector) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = Math.min(Math.max(this[i], minVector[i]), maxVector[i]);\n }\n return this.check();\n }\n add(...vectors) {\n for (const vector of vectors) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] += vector[i];\n }\n }\n return this.check();\n }\n subtract(...vectors) {\n for (const vector of vectors) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] -= vector[i];\n }\n }\n return this.check();\n }\n scale(scale) {\n if (typeof scale === 'number') {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] *= scale;\n }\n }\n else {\n for (let i = 0; i < this.ELEMENTS && i < scale.length; ++i) {\n this[i] *= scale[i];\n }\n }\n return this.check();\n }\n /**\n * Multiplies all elements by `scale`\n * Note: `Matrix4.multiplyByScalar` only scales its 3x3 \"minor\"\n */\n multiplyByScalar(scalar) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] *= scalar;\n }\n return this.check();\n }\n // Debug checks\n /** Throws an error if array length is incorrect or contains illegal values */\n check() {\n if (config.debug && !this.validate()) {\n throw new Error(`math.gl: ${this.constructor.name} some fields set to invalid numbers'`);\n }\n return this;\n }\n /** Returns false if the array length is incorrect or contains illegal values */\n validate() {\n let valid = this.length === this.ELEMENTS;\n for (let i = 0; i < this.ELEMENTS; ++i) {\n valid = valid && Number.isFinite(this[i]);\n }\n return valid;\n }\n // three.js compatibility\n /** @deprecated */\n sub(a) {\n return this.subtract(a);\n }\n /** @deprecated */\n setScalar(a) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = a;\n }\n return this.check();\n }\n /** @deprecated */\n addScalar(a) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] += a;\n }\n return this.check();\n }\n /** @deprecated */\n subScalar(a) {\n return this.addScalar(-a);\n }\n /** @deprecated */\n multiplyScalar(scalar) {\n // Multiplies all elements\n // `Matrix4.scale` only scales its 3x3 \"minor\"\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] *= scalar;\n }\n return this.check();\n }\n /** @deprecated */\n divideScalar(a) {\n return this.multiplyByScalar(1 / a);\n }\n /** @deprecated */\n clampScalar(min, max) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = Math.min(Math.max(this[i], min), max);\n }\n return this.check();\n }\n /** @deprecated */\n get elements() {\n return this;\n }\n}\n", "import { config } from \"./common.js\";\nexport function validateVector(v, length) {\n if (v.length !== length) {\n return false;\n }\n // Could be arguments \"array\" (v.every not availasble)\n for (let i = 0; i < v.length; ++i) {\n if (!Number.isFinite(v[i])) {\n return false;\n }\n }\n return true;\n}\nexport function checkNumber(value) {\n if (!Number.isFinite(value)) {\n throw new Error(`Invalid number ${JSON.stringify(value)}`);\n }\n return value;\n}\nexport function checkVector(v, length, callerName = '') {\n if (config.debug && !validateVector(v, length)) {\n throw new Error(`math.gl: ${callerName} some fields set to invalid numbers'`);\n }\n return v;\n}\nconst map = {};\nexport function deprecated(method, version) {\n if (!map[method]) {\n map[method] = true;\n // eslint-disable-next-line\n console.warn(`${method} has been removed in version ${version}, see upgrade guide for more information`);\n }\n}\n", "export function assert(condition, message) {\n if (!condition) {\n throw new Error(`math.gl assertion ${message}`);\n }\n}\n", "import { MathArray } from \"./math-array.js\";\nimport { checkNumber } from \"../../lib/validators.js\";\nimport { assert } from \"../../lib/assert.js\";\n/** Base class for vectors with at least 2 elements */\nexport class Vector extends MathArray {\n // ACCESSORS\n get x() {\n return this[0];\n }\n set x(value) {\n this[0] = checkNumber(value);\n }\n get y() {\n return this[1];\n }\n set y(value) {\n this[1] = checkNumber(value);\n }\n /**\n * Returns the length of the vector from the origin to the point described by this vector\n *\n * @note `length` is a reserved word for Arrays, so `v.length()` will return number of elements\n * Instead we provide `len` and `magnitude`\n */\n len() {\n return Math.sqrt(this.lengthSquared());\n }\n /**\n * Returns the length of the vector from the origin to the point described by this vector\n */\n magnitude() {\n return this.len();\n }\n /**\n * Returns the squared length of the vector from the origin to the point described by this vector\n */\n lengthSquared() {\n let length = 0;\n for (let i = 0; i < this.ELEMENTS; ++i) {\n length += this[i] * this[i];\n }\n return length;\n }\n /**\n * Returns the squared length of the vector from the origin to the point described by this vector\n */\n magnitudeSquared() {\n return this.lengthSquared();\n }\n distance(mathArray) {\n return Math.sqrt(this.distanceSquared(mathArray));\n }\n distanceSquared(mathArray) {\n let length = 0;\n for (let i = 0; i < this.ELEMENTS; ++i) {\n const dist = this[i] - mathArray[i];\n length += dist * dist;\n }\n return checkNumber(length);\n }\n dot(mathArray) {\n let product = 0;\n for (let i = 0; i < this.ELEMENTS; ++i) {\n product += this[i] * mathArray[i];\n }\n return checkNumber(product);\n }\n // MODIFIERS\n normalize() {\n const length = this.magnitude();\n if (length !== 0) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] /= length;\n }\n }\n return this.check();\n }\n multiply(...vectors) {\n for (const vector of vectors) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] *= vector[i];\n }\n }\n return this.check();\n }\n divide(...vectors) {\n for (const vector of vectors) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] /= vector[i];\n }\n }\n return this.check();\n }\n // THREE.js compatibility\n lengthSq() {\n return this.lengthSquared();\n }\n distanceTo(vector) {\n return this.distance(vector);\n }\n distanceToSquared(vector) {\n return this.distanceSquared(vector);\n }\n getComponent(i) {\n assert(i >= 0 && i < this.ELEMENTS, 'index is out of range');\n return checkNumber(this[i]);\n }\n setComponent(i, value) {\n assert(i >= 0 && i < this.ELEMENTS, 'index is out of range');\n this[i] = value;\n return this.check();\n }\n addVectors(a, b) {\n return this.copy(a).add(b);\n }\n subVectors(a, b) {\n return this.copy(a).subtract(b);\n }\n multiplyVectors(a, b) {\n return this.copy(a).multiply(b);\n }\n addScaledVector(a, b) {\n // @ts-expect-error error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.\n return this.add(new this.constructor(a).multiplyScalar(b));\n }\n}\n", "// @eslint-disable\n// @ts-nocheck\n/**\n * Common utilities\n * @module glMatrix\n */\n// Configuration Constants\nexport const EPSILON = 0.000001;\nexport let ARRAY_TYPE = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nexport const RANDOM = Math.random;\nexport const ANGLE_ORDER = 'zyx';\n/**\n * Symmetric round\n * see https://www.npmjs.com/package/round-half-up-symmetric#user-content-detailed-background\n *\n * @param {Number} a value to round\n */\nexport function round(a) {\n if (a >= 0)\n return Math.round(a);\n return a % 0.5 === 0 ? Math.floor(a) : Math.round(a);\n}\n/**\n * Sets the type of array used when creating new vectors and matrices\n *\n * @param {Float32ArrayConstructor | ArrayConstructor} type Array type, such as Float32Array or Array\n */\nexport function setMatrixArrayType(type) {\n ARRAY_TYPE = type;\n}\nconst degree = Math.PI / 180;\n/**\n * Convert Degree To Radian\n *\n * @param {Number} a Angle in Degrees\n */\nexport function toRadian(a) {\n return a * degree;\n}\n/**\n * Tests whether or not the arguments have approximately the same value, within an absolute\n * or relative tolerance of glMatrix.EPSILON (an absolute tolerance is used for values less\n * than or equal to 1.0, and a relative tolerance is used for larger values)\n *\n * @param {Number} a The first number to test.\n * @param {Number} b The second number to test.\n * @returns {Boolean} True if the numbers are approximately equal, false otherwise.\n */\nexport function equals(a, b) {\n return Math.abs(a - b) <= EPSILON * Math.max(1.0, Math.abs(a), Math.abs(b));\n}\n", "// @eslint-disable\n// @ts-nocheck\nimport * as glMatrix from './common.js';\n/**\n * 2 Dimensional Vector\n * @module vec2\n */\n/**\n * Creates a new, empty vec2\n *\n * @returns {NumericArray} a new 2D vector\n */\nexport function create() {\n const out = new glMatrix.ARRAY_TYPE(2);\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n }\n return out;\n}\n/**\n * Creates a new vec2 initialized with values from an existing vector\n *\n * @param {Readonly} a vector to clone\n * @returns {NumericArray} a new 2D vector\n */\nexport function clone(a) {\n const out = new glMatrix.ARRAY_TYPE(2);\n out[0] = a[0];\n out[1] = a[1];\n return out;\n}\n/**\n * Creates a new vec2 initialized with the given values\n *\n * @param {Number} x X component\n * @param {Number} y Y component\n * @returns {NumericArray} a new 2D vector\n */\nexport function fromValues(x, y) {\n const out = new glMatrix.ARRAY_TYPE(2);\n out[0] = x;\n out[1] = y;\n return out;\n}\n/**\n * Copy the values from one vec2 to another\n *\n * @param {NumericArray} out the receiving vector\n * @param {Readonly} a the source vector\n * @returns {NumericArray} out\n */\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n return out;\n}\n/**\n * Set the components of a vec2 to the given values\n *\n * @param {NumericArray} out the receiving vector\n * @param {Number} x X component\n * @param {Number} y Y component\n * @returns {NumericArray} out\n */\nexport function set(out, x, y) {\n out[0] = x;\n out[1] = y;\n return out;\n}\n/**\n * Adds two vec2's\n *\n * @param {NumericArray} out the receiving vector\n * @param {Readonly} a the first operand\n * @param {Readonly} b the second operand\n * @returns {NumericArray} out\n */\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n return out;\n}\n/**\n * Subtracts vector b from vector a\n *\n * @param {NumericArray} out the receiving vector\n * @param {Readonly} a the first operand\n * @param {Readonly} b the second operand\n * @returns {NumericArray} out\n */\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n return out;\n}\n/**\n * Multiplies two vec2's\n *\n * @param {NumericArray} out the receiving vector\n * @param {Readonly} a the first operand\n * @param {Readonly} b the second operand\n * @returns {NumericArray} out\n */\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n return out;\n}\n/**\n * Divides two vec2's\n *\n * @param {NumericArray} out the receiving vector\n * @param {Readonly} a the first operand\n * @param {Readonly} b the second operand\n * @returns {NumericArray} out\n */\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n return out;\n}\n/**\n * Math.ceil the components of a vec2\n *\n * @param {NumericArray} out the receiving vector\n * @param {Readonly} a vector to ceil\n * @returns {NumericArray} out\n */\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n return out;\n}\n/**\n * Math.floor the components of a vec2\n *\n * @param {NumericArray} out the receiving vector\n * @param {Readonly} a vector to floor\n * @returns {NumericArray} out\n */\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n return out;\n}\n/**\n * Returns the minimum of two vec2's\n *\n * @param {NumericArray} out the receiving vector\n * @param {Readonly} a the first operand\n * @param {Readonly} b the second operand\n * @returns {NumericArray} out\n */\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n return out;\n}\n/**\n * Returns the maximum of two vec2's\n *\n * @param {NumericArray} out the receiving vector\n * @param {Readonly} a the first operand\n * @param {Readonly} b the second operand\n * @returns {NumericArray} out\n */\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n return out;\n}\n/**\n * symmetric round the components of a vec2\n *\n * @param {NumericArray} out the receiving vector\n * @param {Readonly} a vector to round\n * @returns {NumericArray} out\n */\nexport function round(out, a) {\n out[0] = glMatrix.round(a[0]);\n out[1] = glMatrix.round(a[1]);\n return out;\n}\n/**\n * Scales a vec2 by a scalar number\n *\n * @param {NumericArray} out the receiving vector\n * @param {Readonly} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {NumericArray} out\n */\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n return out;\n}\n/**\n * Adds two vec2's after scaling the second operand by a scalar value\n *\n * @param {NumericArray} out the receiving vector\n * @param {Readonly} a the first operand\n * @param {Readonly} b the second operand\n * @param {Number} scale the amount to scale b by before adding\n * @returns {NumericArray} out\n */\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n return out;\n}\n/**\n * Calculates the euclidian distance between two vec2's\n *\n * @param {Readonly} a the first operand\n * @param {Readonly} b the second operand\n * @returns {Number} distance between a and b\n */\nexport function distance(a, b) {\n const x = b[0] - a[0];\n const y = b[1] - a[1];\n return Math.sqrt(x * x + y * y);\n}\n/**\n * Calculates the squared euclidian distance between two vec2's\n *\n * @param {Readonly} a the first operand\n * @param {Readonly} b the second operand\n * @returns {Number} squared distance between a and b\n */\nexport function squaredDistance(a, b) {\n const x = b[0] - a[0];\n const y = b[1] - a[1];\n return x * x + y * y;\n}\n/**\n * Calculates the length of a vec2\n *\n * @param {Readonly} a vector to calculate length of\n * @returns {Number} length of a\n */\nexport function length(a) {\n const x = a[0];\n const y = a[1];\n return Math.sqrt(x * x + y * y);\n}\n/**\n * Calculates the squared length of a vec2\n *\n * @param {Readonly} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */\nexport function squaredLength(a) {\n const x = a[0];\n const y = a[1];\n return x * x + y * y;\n}\n/**\n * Negates the components of a vec2\n *\n * @param {NumericArray} out the receiving vector\n * @param {Readonly} a vector to negate\n * @returns {NumericArray} out\n */\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n return out;\n}\n/**\n * Returns the inverse of the components of a vec2\n *\n * @param {NumericArray} out the receiving vector\n * @param {Readonly} a vector to invert\n * @returns {NumericArray} out\n */\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n return out;\n}\n/**\n * Normalize a vec2\n *\n * @param {NumericArray} out the receiving vector\n * @param {Readonly} a vector to normalize\n * @returns {NumericArray} out\n */\nexport function normalize(out, a) {\n const x = a[0];\n const y = a[1];\n let len = x * x + y * y;\n if (len > 0) {\n // TODO: evaluate use of glm_invsqrt here?\n len = 1 / Math.sqrt(len);\n }\n out[0] = a[0] * len;\n out[1] = a[1] * len;\n return out;\n}\n/**\n * Calculates the dot product of two vec2's\n *\n * @param {Readonly} a the first operand\n * @param {Readonly} b the second operand\n * @returns {Number} dot product of a and b\n */\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1];\n}\n/**\n * Computes the cross product of two vec2's\n * Note that the cross product must by definition produce a 3D vector\n *\n * @param {vec3} out the receiving vector\n * @param {Readonly} a the first operand\n * @param {Readonly} b the second operand\n * @returns {vec3} out\n */\nexport function cross(out, a, b) {\n const z = a[0] * b[1] - a[1] * b[0];\n out[0] = out[1] = 0;\n out[2] = z;\n return out;\n}\n/**\n * Performs a linear interpolation between two vec2's\n *\n * @param {NumericArray} out the receiving vector\n * @param {Readonly} a the first operand\n * @param {Readonly} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {NumericArray} out\n */\nexport function lerp(out, a, b, t) {\n const ax = a[0];\n const ay = a[1];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n return out;\n}\n/**\n * Generates a random vector with the given scale\n *\n * @param {NumericArray} out the receiving vector\n * @param {Number} [scale] Length of the resulting vector. If omitted, a unit vector will be returned\n * @returns {NumericArray} out\n */\nexport function random(out, scale) {\n scale = scale === undefined ? 1.0 : scale;\n const r = glMatrix.RANDOM() * 2.0 * Math.PI;\n out[0] = Math.cos(r) * scale;\n out[1] = Math.sin(r) * scale;\n return out;\n}\n/**\n * Transforms the vec2 with a mat2\n *\n * @param {NumericArray} out the receiving vector\n * @param {Readonly} a the vector to transform\n * @param {ReadonlyMat2} m matrix to transform with\n * @returns {NumericArray} out\n */\nexport function transformMat2(out, a, m) {\n const x = a[0];\n const y = a[1];\n out[0] = m[0] * x + m[2] * y;\n out[1] = m[1] * x + m[3] * y;\n return out;\n}\n/**\n * Transforms the vec2 with a mat2d\n *\n * @param {NumericArray} out the receiving vector\n * @param {Readonly} a the vector to transform\n * @param {ReadonlyMat2d} m matrix to transform with\n * @returns {NumericArray} out\n */\nexport function transformMat2d(out, a, m) {\n const x = a[0];\n const y = a[1];\n out[0] = m[0] * x + m[2] * y + m[4];\n out[1] = m[1] * x + m[3] * y + m[5];\n return out;\n}\n/**\n * Transforms the vec2 with a mat3\n * 3rd vector component is implicitly '1'\n *\n * @param {NumericArray} out the receiving vector\n * @param {Readonly} a the vector to transform\n * @param {ReadonlyMat3} m matrix to transform with\n * @returns {NumericArray} out\n */\nexport function transformMat3(out, a, m) {\n const x = a[0];\n const y = a[1];\n out[0] = m[0] * x + m[3] * y + m[6];\n out[1] = m[1] * x + m[4] * y + m[7];\n return out;\n}\n/**\n * Transforms the vec2 with a mat4\n * 3rd vector component is implicitly '0'\n * 4th vector component is implicitly '1'\n *\n * @param {NumericArray} out the receiving vector\n * @param {Readonly} a the vector to transform\n * @param {ReadonlyMat4} m matrix to transform with\n * @returns {NumericArray} out\n */\nexport function transformMat4(out, a, m) {\n const x = a[0];\n const y = a[1];\n out[0] = m[0] * x + m[4] * y + m[12];\n out[1] = m[1] * x + m[5] * y + m[13];\n return out;\n}\n/**\n * Rotate a 2D vector\n * @param {NumericArray} out The receiving vec2\n * @param {Readonly} a The vec2 point to rotate\n * @param {Readonly} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {NumericArray} out\n */\nexport function rotate(out, a, b, rad) {\n // Translate point to the origin\n const p0 = a[0] - b[0];\n const p1 = a[1] - b[1];\n const sinC = Math.sin(rad);\n const cosC = Math.cos(rad);\n // perform rotation and translate to correct position\n out[0] = p0 * cosC - p1 * sinC + b[0];\n out[1] = p0 * sinC + p1 * cosC + b[1];\n return out;\n}\n/**\n * Get the angle between two 2D vectors\n * @param {Readonly} a The first operand\n * @param {Readonly} b The second operand\n * @returns {Number} The angle in radians\n */\nexport function angle(a, b) {\n const x1 = a[0];\n const y1 = a[1];\n const x2 = b[0];\n const y2 = b[1];\n // mag is the product of the magnitudes of a and b\n const mag = Math.sqrt((x1 * x1 + y1 * y1) * (x2 * x2 + y2 * y2));\n // mag &&.. short circuits if mag == 0\n const cosine = mag && (x1 * x2 + y1 * y2) / mag;\n // Math.min(Math.max(cosine, -1), 1) clamps the cosine between -1 and 1\n return Math.acos(Math.min(Math.max(cosine, -1), 1));\n}\n/**\n * Set the components of a vec2 to zero\n *\n * @param {NumericArray} out the receiving vector\n * @returns {NumericArray} out\n */\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n return out;\n}\n/**\n * Returns a string representation of a vector\n *\n * @param {Readonly} a vector to represent as a string\n * @returns {String} string representation of the vector\n */\nexport function str(a) {\n return `vec2(${a[0]}, ${a[1]})`;\n}\n/**\n * Returns whether or not the vectors exactly have the same elements in the same position (when compared with ===)\n *\n * @param {Readonly} a The first vector.\n * @param {Readonly} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1];\n}\n/**\n * Returns whether or not the vectors have approximately the same elements in the same position.\n *\n * @param {Readonly} a The first vector.\n * @param {Readonly} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\nexport function equals(a, b) {\n const a0 = a[0];\n const a1 = a[1];\n const b0 = b[0];\n const b1 = b[1];\n return (Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) &&\n Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)));\n}\n/**\n * Alias for {@link vec2.length}\n * @function\n */\nexport const len = length;\n/**\n * Alias for {@link vec2.subtract}\n * @function\n */\nexport const sub = subtract;\n/**\n * Alias for {@link vec2.multiply}\n * @function\n */\nexport const mul = multiply;\n/**\n * Alias for {@link vec2.divide}\n * @function\n */\nexport const div = divide;\n/**\n * Alias for {@link vec2.distance}\n * @function\n */\nexport const dist = distance;\n/**\n * Alias for {@link vec2.squaredDistance}\n * @function\n */\nexport const sqrDist = squaredDistance;\n/**\n * Alias for {@link vec2.squaredLength}\n * @function\n */\nexport const sqrLen = squaredLength;\n/**\n * Perform some operation over an array of vec2s.\n *\n * @param {Array} a the array of vectors to iterate over\n * @param {Number} stride Number of elements between the start of each vec2. If 0 assumes tightly packed\n * @param {Number} offset Number of elements to skip at the beginning of the array\n * @param {Number} count Number of vec2s to iterate over. If 0 iterates over entire array\n * @param {Function} fn Function to call for each vector in the array\n * @param {Object} [arg] additional argument to pass to fn\n * @returns {Array} a\n * @function\n */\nexport const forEach = (function () {\n const vec = create();\n return function (a, stride, offset, count, fn, arg) {\n let i;\n let l;\n if (!stride) {\n stride = 2;\n }\n if (!offset) {\n offset = 0;\n }\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n }\n else {\n l = a.length;\n }\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n }\n return a;\n };\n})();\n", "// vec2 additions\nexport function vec2_transformMat4AsVector(out, a, m) {\n const x = a[0];\n const y = a[1];\n const w = m[3] * x + m[7] * y || 1.0;\n out[0] = (m[0] * x + m[4] * y) / w;\n out[1] = (m[1] * x + m[5] * y) / w;\n return out;\n}\n// vec3 additions\n// Transform as vector, only uses 3x3 minor matrix\nexport function vec3_transformMat4AsVector(out, a, m) {\n const x = a[0];\n const y = a[1];\n const z = a[2];\n const w = m[3] * x + m[7] * y + m[11] * z || 1.0;\n out[0] = (m[0] * x + m[4] * y + m[8] * z) / w;\n out[1] = (m[1] * x + m[5] * y + m[9] * z) / w;\n out[2] = (m[2] * x + m[6] * y + m[10] * z) / w;\n return out;\n}\nexport function vec3_transformMat2(out, a, m) {\n const x = a[0];\n const y = a[1];\n out[0] = m[0] * x + m[2] * y;\n out[1] = m[1] * x + m[3] * y;\n out[2] = a[2];\n return out;\n}\n// vec4 additions\nexport function vec4_transformMat2(out, a, m) {\n const x = a[0];\n const y = a[1];\n out[0] = m[0] * x + m[2] * y;\n out[1] = m[1] * x + m[3] * y;\n out[2] = a[2];\n out[3] = a[3];\n return out;\n}\nexport function vec4_transformMat3(out, a, m) {\n const x = a[0];\n const y = a[1];\n const z = a[2];\n out[0] = m[0] * x + m[3] * y + m[6] * z;\n out[1] = m[1] * x + m[4] * y + m[7] * z;\n out[2] = m[2] * x + m[5] * y + m[8] * z;\n out[3] = a[3];\n return out;\n}\n", "// @eslint-disable\n// @ts-nocheck\nimport * as glMatrix from './common.js';\n/**\n * 3 Dimensional Vector\n * @module vec3\n */\n/**\n * Creates a new, empty vec3\n *\n * @returns {vec3} a new 3D vector\n */\nexport function create() {\n const out = new glMatrix.ARRAY_TYPE(3);\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n }\n return out;\n}\n/**\n * Creates a new vec3 initialized with values from an existing vector\n *\n * @param {ReadonlyVec3} a vector to clone\n * @returns {vec3} a new 3D vector\n */\nexport function clone(a) {\n const out = new glMatrix.ARRAY_TYPE(3);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\n/**\n * Calculates the length of a vec3\n *\n * @param {ReadonlyVec3} a vector to calculate length of\n * @returns {Number} length of a\n */\nexport function length(a) {\n const x = a[0];\n const y = a[1];\n const z = a[2];\n return Math.sqrt(x * x + y * y + z * z);\n}\n/**\n * Creates a new vec3 initialized with the given values\n *\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @returns {vec3} a new 3D vector\n */\nexport function fromValues(x, y, z) {\n const out = new glMatrix.ARRAY_TYPE(3);\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n/**\n * Copy the values from one vec3 to another\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the source vector\n * @returns {vec3} out\n */\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\n/**\n * Set the components of a vec3 to the given values\n *\n * @param {vec3} out the receiving vector\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @returns {vec3} out\n */\nexport function set(out, x, y, z) {\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n/**\n * Adds two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n return out;\n}\n/**\n * Subtracts vector b from vector a\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n return out;\n}\n/**\n * Multiplies two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n out[2] = a[2] * b[2];\n return out;\n}\n/**\n * Divides two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n out[2] = a[2] / b[2];\n return out;\n}\n/**\n * Math.ceil the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to ceil\n * @returns {vec3} out\n */\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n out[2] = Math.ceil(a[2]);\n return out;\n}\n/**\n * Math.floor the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to floor\n * @returns {vec3} out\n */\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n out[2] = Math.floor(a[2]);\n return out;\n}\n/**\n * Returns the minimum of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n out[2] = Math.min(a[2], b[2]);\n return out;\n}\n/**\n * Returns the maximum of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n out[2] = Math.max(a[2], b[2]);\n return out;\n}\n/**\n * symmetric round the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to round\n * @returns {vec3} out\n */\nexport function round(out, a) {\n out[0] = glMatrix.round(a[0]);\n out[1] = glMatrix.round(a[1]);\n out[2] = glMatrix.round(a[2]);\n return out;\n}\n/**\n * Scales a vec3 by a scalar number\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec3} out\n */\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n return out;\n}\n/**\n * Adds two vec3's after scaling the second operand by a scalar value\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {Number} scale the amount to scale b by before adding\n * @returns {vec3} out\n */\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n return out;\n}\n/**\n * Calculates the euclidian distance between two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} distance between a and b\n */\nexport function distance(a, b) {\n const x = b[0] - a[0];\n const y = b[1] - a[1];\n const z = b[2] - a[2];\n return Math.sqrt(x * x + y * y + z * z);\n}\n/**\n * Calculates the squared euclidian distance between two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} squared distance between a and b\n */\nexport function squaredDistance(a, b) {\n const x = b[0] - a[0];\n const y = b[1] - a[1];\n const z = b[2] - a[2];\n return x * x + y * y + z * z;\n}\n/**\n * Calculates the squared length of a vec3\n *\n * @param {ReadonlyVec3} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */\nexport function squaredLength(a) {\n const x = a[0];\n const y = a[1];\n const z = a[2];\n return x * x + y * y + z * z;\n}\n/**\n * Negates the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to negate\n * @returns {vec3} out\n */\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n return out;\n}\n/**\n * Returns the inverse of the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to invert\n * @returns {vec3} out\n */\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n out[2] = 1.0 / a[2];\n return out;\n}\n/**\n * Normalize a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to normalize\n * @returns {vec3} out\n */\nexport function normalize(out, a) {\n const x = a[0];\n const y = a[1];\n const z = a[2];\n let len = x * x + y * y + z * z;\n if (len > 0) {\n // TODO: evaluate use of glm_invsqrt here?\n len = 1 / Math.sqrt(len);\n }\n out[0] = a[0] * len;\n out[1] = a[1] * len;\n out[2] = a[2] * len;\n return out;\n}\n/**\n * Calculates the dot product of two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} dot product of a and b\n */\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n/**\n * Computes the cross product of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\nexport function cross(out, a, b) {\n const ax = a[0];\n const ay = a[1];\n const az = a[2];\n const bx = b[0];\n const by = b[1];\n const bz = b[2];\n out[0] = ay * bz - az * by;\n out[1] = az * bx - ax * bz;\n out[2] = ax * by - ay * bx;\n return out;\n}\n/**\n * Performs a linear interpolation between two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\nexport function lerp(out, a, b, t) {\n const ax = a[0];\n const ay = a[1];\n const az = a[2];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n out[2] = az + t * (b[2] - az);\n return out;\n}\n/**\n * Performs a spherical linear interpolation between two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\nexport function slerp(out, a, b, t) {\n const angle = Math.acos(Math.min(Math.max(dot(a, b), -1), 1));\n const sinTotal = Math.sin(angle);\n const ratioA = Math.sin((1 - t) * angle) / sinTotal;\n const ratioB = Math.sin(t * angle) / sinTotal;\n out[0] = ratioA * a[0] + ratioB * b[0];\n out[1] = ratioA * a[1] + ratioB * b[1];\n out[2] = ratioA * a[2] + ratioB * b[2];\n return out;\n}\n/**\n * Performs a hermite interpolation with two control points\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {ReadonlyVec3} c the third operand\n * @param {ReadonlyVec3} d the fourth operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\nexport function hermite(out, a, b, c, d, t) {\n const factorTimes2 = t * t;\n const factor1 = factorTimes2 * (2 * t - 3) + 1;\n const factor2 = factorTimes2 * (t - 2) + t;\n const factor3 = factorTimes2 * (t - 1);\n const factor4 = factorTimes2 * (3 - 2 * t);\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\n/**\n * Performs a bezier interpolation with two control points\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {ReadonlyVec3} c the third operand\n * @param {ReadonlyVec3} d the fourth operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\nexport function bezier(out, a, b, c, d, t) {\n const inverseFactor = 1 - t;\n const inverseFactorTimesTwo = inverseFactor * inverseFactor;\n const factorTimes2 = t * t;\n const factor1 = inverseFactorTimesTwo * inverseFactor;\n const factor2 = 3 * t * inverseFactorTimesTwo;\n const factor3 = 3 * factorTimes2 * inverseFactor;\n const factor4 = factorTimes2 * t;\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\n/**\n * Generates a random vector with the given scale\n *\n * @param {vec3} out the receiving vector\n * @param {Number} [scale] Length of the resulting vector. If omitted, a unit vector will be returned\n * @returns {vec3} out\n */\nexport function random(out, scale) {\n scale = scale === undefined ? 1.0 : scale;\n const r = glMatrix.RANDOM() * 2.0 * Math.PI;\n const z = glMatrix.RANDOM() * 2.0 - 1.0;\n const zScale = Math.sqrt(1.0 - z * z) * scale;\n out[0] = Math.cos(r) * zScale;\n out[1] = Math.sin(r) * zScale;\n out[2] = z * scale;\n return out;\n}\n/**\n * Transforms the vec3 with a mat4.\n * 4th vector component is implicitly '1'\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyMat4} m matrix to transform with\n * @returns {vec3} out\n */\nexport function transformMat4(out, a, m) {\n const x = a[0];\n const y = a[1];\n const z = a[2];\n let w = m[3] * x + m[7] * y + m[11] * z + m[15];\n w = w || 1.0;\n out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;\n out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;\n out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;\n return out;\n}\n/**\n * Transforms the vec3 with a mat3.\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyMat3} m the 3x3 matrix to transform with\n * @returns {vec3} out\n */\nexport function transformMat3(out, a, m) {\n const x = a[0];\n const y = a[1];\n const z = a[2];\n out[0] = x * m[0] + y * m[3] + z * m[6];\n out[1] = x * m[1] + y * m[4] + z * m[7];\n out[2] = x * m[2] + y * m[5] + z * m[8];\n return out;\n}\n/**\n * Transforms the vec3 with a quat\n * Can also be used for dual quaternions. (Multiply it with the real part)\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyQuat} q quaternion to transform with\n * @returns {vec3} out\n */\nexport function transformQuat(out, a, q) {\n // benchmarks: https://jsperf.com/quaternion-transform-vec3-implementations-fixed\n const qx = q[0];\n const qy = q[1];\n const qz = q[2];\n const qw = q[3];\n const x = a[0];\n const y = a[1];\n const z = a[2];\n // var qvec = [qx, qy, qz];\n // var uv = vec3.cross([], qvec, a);\n let uvx = qy * z - qz * y;\n let uvy = qz * x - qx * z;\n let uvz = qx * y - qy * x;\n // var uuv = vec3.cross([], qvec, uv);\n let uuvx = qy * uvz - qz * uvy;\n let uuvy = qz * uvx - qx * uvz;\n let uuvz = qx * uvy - qy * uvx;\n // vec3.scale(uv, uv, 2 * w);\n const w2 = qw * 2;\n uvx *= w2;\n uvy *= w2;\n uvz *= w2;\n // vec3.scale(uuv, uuv, 2);\n uuvx *= 2;\n uuvy *= 2;\n uuvz *= 2;\n // return vec3.add(out, a, vec3.add(out, uv, uuv));\n out[0] = x + uvx + uuvx;\n out[1] = y + uvy + uuvy;\n out[2] = z + uvz + uuvz;\n return out;\n}\n/**\n * Rotate a 3D vector around the x-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\nexport function rotateX(out, a, b, rad) {\n const p = [];\n const r = [];\n // Translate point to the origin\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2];\n // perform rotation\n r[0] = p[0];\n r[1] = p[1] * Math.cos(rad) - p[2] * Math.sin(rad);\n r[2] = p[1] * Math.sin(rad) + p[2] * Math.cos(rad);\n // translate to correct position\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\n * Rotate a 3D vector around the y-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\nexport function rotateY(out, a, b, rad) {\n const p = [];\n const r = [];\n // Translate point to the origin\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2];\n // perform rotation\n r[0] = p[2] * Math.sin(rad) + p[0] * Math.cos(rad);\n r[1] = p[1];\n r[2] = p[2] * Math.cos(rad) - p[0] * Math.sin(rad);\n // translate to correct position\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\n * Rotate a 3D vector around the z-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\nexport function rotateZ(out, a, b, rad) {\n const p = [];\n const r = [];\n // Translate point to the origin\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2];\n // perform rotation\n r[0] = p[0] * Math.cos(rad) - p[1] * Math.sin(rad);\n r[1] = p[0] * Math.sin(rad) + p[1] * Math.cos(rad);\n r[2] = p[2];\n // translate to correct position\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\n * Get the angle between two 3D vectors\n * @param {ReadonlyVec3} a The first operand\n * @param {ReadonlyVec3} b The second operand\n * @returns {Number} The angle in radians\n */\nexport function angle(a, b) {\n const ax = a[0];\n const ay = a[1];\n const az = a[2];\n const bx = b[0];\n const by = b[1];\n const bz = b[2];\n const mag = Math.sqrt((ax * ax + ay * ay + az * az) * (bx * bx + by * by + bz * bz));\n const cosine = mag && dot(a, b) / mag;\n return Math.acos(Math.min(Math.max(cosine, -1), 1));\n}\n/**\n * Set the components of a vec3 to zero\n *\n * @param {vec3} out the receiving vector\n * @returns {vec3} out\n */\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n out[2] = 0.0;\n return out;\n}\n/**\n * Returns a string representation of a vector\n *\n * @param {ReadonlyVec3} a vector to represent as a string\n * @returns {String} string representation of the vector\n */\nexport function str(a) {\n return `vec3(${a[0]}, ${a[1]}, ${a[2]})`;\n}\n/**\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyVec3} a The first vector.\n * @param {ReadonlyVec3} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];\n}\n/**\n * Returns whether or not the vectors have approximately the same elements in the same position.\n *\n * @param {ReadonlyVec3} a The first vector.\n * @param {ReadonlyVec3} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\nexport function equals(a, b) {\n const a0 = a[0];\n const a1 = a[1];\n const a2 = a[2];\n const b0 = b[0];\n const b1 = b[1];\n const b2 = b[2];\n return (Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) &&\n Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) &&\n Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)));\n}\n/**\n * Alias for {@link vec3.subtract}\n * @function\n */\nexport const sub = subtract;\n/**\n * Alias for {@link vec3.multiply}\n * @function\n */\nexport const mul = multiply;\n/**\n * Alias for {@link vec3.divide}\n * @function\n */\nexport const div = divide;\n/**\n * Alias for {@link vec3.distance}\n * @function\n */\nexport const dist = distance;\n/**\n * Alias for {@link vec3.squaredDistance}\n * @function\n */\nexport const sqrDist = squaredDistance;\n/**\n * Alias for {@link vec3.length}\n * @function\n */\nexport const len = length;\n/**\n * Alias for {@link vec3.squaredLength}\n * @function\n */\nexport const sqrLen = squaredLength;\n/**\n * Perform some operation over an array of vec3s.\n *\n * @param {Array} a the array of vectors to iterate over\n * @param {Number} stride Number of elements between the start of each vec3. If 0 assumes tightly packed\n * @param {Number} offset Number of elements to skip at the beginning of the array\n * @param {Number} count Number of vec3s to iterate over. If 0 iterates over entire array\n * @param {Function} fn Function to call for each vector in the array\n * @param {Object} [arg] additional argument to pass to fn\n * @returns {Array} a\n * @function\n */\nexport const forEach = (function () {\n const vec = create();\n return function (a, stride, offset, count, fn, arg) {\n let i;\n let l;\n if (!stride) {\n stride = 3;\n }\n if (!offset) {\n offset = 0;\n }\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n }\n else {\n l = a.length;\n }\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n }\n return a;\n };\n})();\n", "import { Vector } from \"./base/vector.js\";\nimport { config, isArray } from \"../lib/common.js\";\nimport { checkNumber } from \"../lib/validators.js\";\n// @ts-ignore gl-matrix types\nimport { angle as vec3_angle, cross as vec3_cross, rotateX as vec3_rotateX, rotateY as vec3_rotateY, rotateZ as vec3_rotateZ, transformMat4 as vec3_transformMat4, transformMat3 as vec3_transformMat3, transformQuat as vec3_transformQuat } from \"../gl-matrix/vec3.js\";\n/* eslint-disable camelcase */\nimport { vec3_transformMat2, vec3_transformMat4AsVector } from \"../lib/gl-matrix-extras.js\";\nconst ORIGIN = [0, 0, 0];\nlet ZERO;\n/**\n * Three-element vector class.\n * Subclass of Array\n */\nexport class Vector3 extends Vector {\n static get ZERO() {\n if (!ZERO) {\n ZERO = new Vector3(0, 0, 0);\n Object.freeze(ZERO);\n }\n return ZERO;\n }\n /**\n * @class\n * @param x\n * @param y\n * @param z\n */\n constructor(x = 0, y = 0, z = 0) {\n // PERF NOTE: initialize elements as double precision numbers\n super(-0, -0, -0);\n if (arguments.length === 1 && isArray(x)) {\n this.copy(x);\n }\n else {\n // this.set(x, y, z);\n if (config.debug) {\n checkNumber(x);\n checkNumber(y);\n checkNumber(z);\n }\n // @ts-expect-error TS2412: Property '0' of type 'number | [number, number, number]' is not assignable to numeric index type 'number'\n this[0] = x;\n this[1] = y;\n this[2] = z;\n }\n }\n set(x, y, z) {\n this[0] = x;\n this[1] = y;\n this[2] = z;\n return this.check();\n }\n copy(array) {\n this[0] = array[0];\n this[1] = array[1];\n this[2] = array[2];\n return this.check();\n }\n fromObject(object) {\n if (config.debug) {\n checkNumber(object.x);\n checkNumber(object.y);\n checkNumber(object.z);\n }\n this[0] = object.x;\n this[1] = object.y;\n this[2] = object.z;\n return this.check();\n }\n toObject(object) {\n object.x = this[0];\n object.y = this[1];\n object.z = this[2];\n return object;\n }\n // Getters/setters\n get ELEMENTS() {\n return 3;\n }\n get z() {\n return this[2];\n }\n set z(value) {\n this[2] = checkNumber(value);\n }\n // ACCESSORS\n angle(vector) {\n return vec3_angle(this, vector);\n }\n // MODIFIERS\n cross(vector) {\n vec3_cross(this, this, vector);\n return this.check();\n }\n rotateX({ radians, origin = ORIGIN }) {\n vec3_rotateX(this, this, origin, radians);\n return this.check();\n }\n rotateY({ radians, origin = ORIGIN }) {\n vec3_rotateY(this, this, origin, radians);\n return this.check();\n }\n rotateZ({ radians, origin = ORIGIN }) {\n vec3_rotateZ(this, this, origin, radians);\n return this.check();\n }\n // Transforms\n // transforms as point (4th component is implicitly 1)\n transform(matrix4) {\n return this.transformAsPoint(matrix4);\n }\n // transforms as point (4th component is implicitly 1)\n transformAsPoint(matrix4) {\n vec3_transformMat4(this, this, matrix4);\n return this.check();\n }\n // transforms as vector (4th component is implicitly 0, ignores translation. slightly faster)\n transformAsVector(matrix4) {\n vec3_transformMat4AsVector(this, this, matrix4);\n return this.check();\n }\n transformByMatrix3(matrix3) {\n vec3_transformMat3(this, this, matrix3);\n return this.check();\n }\n transformByMatrix2(matrix2) {\n vec3_transformMat2(this, this, matrix2);\n return this.check();\n }\n transformByQuaternion(quaternion) {\n vec3_transformQuat(this, this, quaternion);\n return this.check();\n }\n}\n", "import { MathArray } from \"./math-array.js\";\nimport { checkNumber } from \"../../lib/validators.js\";\nimport { config } from \"../../lib/common.js\";\n/** Base class for matrices */\nexport class Matrix extends MathArray {\n // fromObject(object) {\n // const array = object.elements;\n // return this.fromRowMajor(array);\n // }\n // toObject(object) {\n // const array = object.elements;\n // this.toRowMajor(array);\n // return object;\n // }\n // TODO better override formatString?\n toString() {\n let string = '[';\n if (config.printRowMajor) {\n string += 'row-major:';\n for (let row = 0; row < this.RANK; ++row) {\n for (let col = 0; col < this.RANK; ++col) {\n string += ` ${this[col * this.RANK + row]}`;\n }\n }\n }\n else {\n string += 'column-major:';\n for (let i = 0; i < this.ELEMENTS; ++i) {\n string += ` ${this[i]}`;\n }\n }\n string += ']';\n return string;\n }\n getElementIndex(row, col) {\n return col * this.RANK + row;\n }\n // By default assumes row major indices\n getElement(row, col) {\n return this[col * this.RANK + row];\n }\n // By default assumes row major indices\n setElement(row, col, value) {\n this[col * this.RANK + row] = checkNumber(value);\n return this;\n }\n getColumn(columnIndex, result = new Array(this.RANK).fill(-0)) {\n const firstIndex = columnIndex * this.RANK;\n for (let i = 0; i < this.RANK; ++i) {\n result[i] = this[firstIndex + i];\n }\n return result;\n }\n setColumn(columnIndex, columnVector) {\n const firstIndex = columnIndex * this.RANK;\n for (let i = 0; i < this.RANK; ++i) {\n this[firstIndex + i] = columnVector[i];\n }\n return this;\n }\n}\n", "import * as glMatrix from './common.js';\n/**\n * 3x3 Matrix\n * @module mat3\n */\n/**\n * Creates a new identity mat3\n *\n * @returns {mat3} a new 3x3 matrix\n */\nexport function create() {\n const out = new glMatrix.ARRAY_TYPE(9);\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n }\n out[0] = 1;\n out[4] = 1;\n out[8] = 1;\n return out;\n}\n/**\n * Copies the upper-left 3x3 values into the given mat3.\n *\n * @param {mat3} out the receiving 3x3 matrix\n * @param {ReadonlyMat4} a the source 4x4 matrix\n * @returns {mat3} out\n */\nexport function fromMat4(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[4];\n out[4] = a[5];\n out[5] = a[6];\n out[6] = a[8];\n out[7] = a[9];\n out[8] = a[10];\n return out;\n}\n/**\n * Creates a new mat3 initialized with values from an existing matrix\n *\n * @param {ReadonlyMat3} a matrix to clone\n * @returns {mat3} a new 3x3 matrix\n */\nexport function clone(a) {\n const out = new glMatrix.ARRAY_TYPE(9);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n/**\n * Copy the values from one mat3 to another\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n/**\n * Create a new mat3 with the given values\n *\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\n * @returns {mat3} A new mat3\n */\nexport function fromValues(m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n const out = new glMatrix.ARRAY_TYPE(9);\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m10;\n out[4] = m11;\n out[5] = m12;\n out[6] = m20;\n out[7] = m21;\n out[8] = m22;\n return out;\n}\n/**\n * Set the components of a mat3 to the given values\n *\n * @param {mat3} out the receiving matrix\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\n * @returns {mat3} out\n */\nexport function set(out, m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m10;\n out[4] = m11;\n out[5] = m12;\n out[6] = m20;\n out[7] = m21;\n out[8] = m22;\n return out;\n}\n/**\n * Set a mat3 to the identity matrix\n *\n * @param {mat3} out the receiving matrix\n * @returns {mat3} out\n */\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 1;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n/**\n * Transpose the values of a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\nexport function transpose(out, a) {\n // If we are transposing ourselves we can skip a few steps but have to cache some values\n if (out === a) {\n const a01 = a[1];\n const a02 = a[2];\n const a12 = a[5];\n out[1] = a[3];\n out[2] = a[6];\n out[3] = a01;\n out[5] = a[7];\n out[6] = a02;\n out[7] = a12;\n }\n else {\n out[0] = a[0];\n out[1] = a[3];\n out[2] = a[6];\n out[3] = a[1];\n out[4] = a[4];\n out[5] = a[7];\n out[6] = a[2];\n out[7] = a[5];\n out[8] = a[8];\n }\n return out;\n}\n/**\n * Inverts a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\nexport function invert(out, a) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n const b01 = a22 * a11 - a12 * a21;\n const b11 = -a22 * a10 + a12 * a20;\n const b21 = a21 * a10 - a11 * a20;\n // Calculate the determinant\n let det = a00 * b01 + a01 * b11 + a02 * b21;\n if (!det) {\n return null;\n }\n det = 1.0 / det;\n out[0] = b01 * det;\n out[1] = (-a22 * a01 + a02 * a21) * det;\n out[2] = (a12 * a01 - a02 * a11) * det;\n out[3] = b11 * det;\n out[4] = (a22 * a00 - a02 * a20) * det;\n out[5] = (-a12 * a00 + a02 * a10) * det;\n out[6] = b21 * det;\n out[7] = (-a21 * a00 + a01 * a20) * det;\n out[8] = (a11 * a00 - a01 * a10) * det;\n return out;\n}\n/**\n * Calculates the adjugate of a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\nexport function adjoint(out, a) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n out[0] = a11 * a22 - a12 * a21;\n out[1] = a02 * a21 - a01 * a22;\n out[2] = a01 * a12 - a02 * a11;\n out[3] = a12 * a20 - a10 * a22;\n out[4] = a00 * a22 - a02 * a20;\n out[5] = a02 * a10 - a00 * a12;\n out[6] = a10 * a21 - a11 * a20;\n out[7] = a01 * a20 - a00 * a21;\n out[8] = a00 * a11 - a01 * a10;\n return out;\n}\n/**\n * Calculates the determinant of a mat3\n *\n * @param {ReadonlyMat3} a the source matrix\n * @returns {Number} determinant of a\n */\nexport function determinant(a) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n return (a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20));\n}\n/**\n * Multiplies two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\nexport function multiply(out, a, b) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n const b00 = b[0];\n const b01 = b[1];\n const b02 = b[2];\n const b10 = b[3];\n const b11 = b[4];\n const b12 = b[5];\n const b20 = b[6];\n const b21 = b[7];\n const b22 = b[8];\n out[0] = b00 * a00 + b01 * a10 + b02 * a20;\n out[1] = b00 * a01 + b01 * a11 + b02 * a21;\n out[2] = b00 * a02 + b01 * a12 + b02 * a22;\n out[3] = b10 * a00 + b11 * a10 + b12 * a20;\n out[4] = b10 * a01 + b11 * a11 + b12 * a21;\n out[5] = b10 * a02 + b11 * a12 + b12 * a22;\n out[6] = b20 * a00 + b21 * a10 + b22 * a20;\n out[7] = b20 * a01 + b21 * a11 + b22 * a21;\n out[8] = b20 * a02 + b21 * a12 + b22 * a22;\n return out;\n}\n/**\n * Translate a mat3 by the given vector\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to translate\n * @param {ReadonlyVec2} v vector to translate by\n * @returns {mat3} out\n */\nexport function translate(out, a, v) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n const x = v[0];\n const y = v[1];\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n out[3] = a10;\n out[4] = a11;\n out[5] = a12;\n out[6] = x * a00 + y * a10 + a20;\n out[7] = x * a01 + y * a11 + a21;\n out[8] = x * a02 + y * a12 + a22;\n return out;\n}\n/**\n * Rotates a mat3 by the given angle\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat3} out\n */\nexport function rotate(out, a, rad) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n const s = Math.sin(rad);\n const c = Math.cos(rad);\n out[0] = c * a00 + s * a10;\n out[1] = c * a01 + s * a11;\n out[2] = c * a02 + s * a12;\n out[3] = c * a10 - s * a00;\n out[4] = c * a11 - s * a01;\n out[5] = c * a12 - s * a02;\n out[6] = a20;\n out[7] = a21;\n out[8] = a22;\n return out;\n}\n/**\n * Scales the mat3 by the dimensions in the given vec2\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to scale\n * @param {ReadonlyVec2} v the vec2 to scale the matrix by\n * @returns {mat3} out\n **/\nexport function scale(out, a, v) {\n const x = v[0];\n const y = v[1];\n out[0] = x * a[0];\n out[1] = x * a[1];\n out[2] = x * a[2];\n out[3] = y * a[3];\n out[4] = y * a[4];\n out[5] = y * a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n/**\n * Creates a matrix from a vector translation\n * This is equivalent to (but much faster than):\n *\n * mat3.identity(dest);\n * mat3.translate(dest, dest, vec);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyVec2} v Translation vector\n * @returns {mat3} out\n */\nexport function fromTranslation(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 1;\n out[5] = 0;\n out[6] = v[0];\n out[7] = v[1];\n out[8] = 1;\n return out;\n}\n/**\n * Creates a matrix from a given angle\n * This is equivalent to (but much faster than):\n *\n * mat3.identity(dest);\n * mat3.rotate(dest, dest, rad);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat3} out\n */\nexport function fromRotation(out, rad) {\n const s = Math.sin(rad);\n const c = Math.cos(rad);\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n out[3] = -s;\n out[4] = c;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n/**\n * Creates a matrix from a vector scaling\n * This is equivalent to (but much faster than):\n *\n * mat3.identity(dest);\n * mat3.scale(dest, dest, vec);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyVec2} v Scaling vector\n * @returns {mat3} out\n */\nexport function fromScaling(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = v[1];\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n/**\n * Copies the values from a mat2d into a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat2d} a the matrix to copy\n * @returns {mat3} out\n **/\nexport function fromMat2d(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = 0;\n out[3] = a[2];\n out[4] = a[3];\n out[5] = 0;\n out[6] = a[4];\n out[7] = a[5];\n out[8] = 1;\n return out;\n}\n/**\n * Calculates a 3x3 matrix from the given quaternion\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyQuat} q Quaternion to create matrix from\n *\n * @returns {mat3} out\n */\nexport function fromQuat(out, q) {\n const x = q[0];\n const y = q[1];\n const z = q[2];\n const w = q[3];\n const x2 = x + x;\n const y2 = y + y;\n const z2 = z + z;\n const xx = x * x2;\n const yx = y * x2;\n const yy = y * y2;\n const zx = z * x2;\n const zy = z * y2;\n const zz = z * z2;\n const wx = w * x2;\n const wy = w * y2;\n const wz = w * z2;\n out[0] = 1 - yy - zz;\n out[3] = yx - wz;\n out[6] = zx + wy;\n out[1] = yx + wz;\n out[4] = 1 - xx - zz;\n out[7] = zy - wx;\n out[2] = zx - wy;\n out[5] = zy + wx;\n out[8] = 1 - xx - yy;\n return out;\n}\n/**\n * Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyMat4} a Mat4 to derive the normal matrix from\n *\n * @returns {mat3} out\n */\nexport function normalFromMat4(out, a) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a03 = a[3];\n const a10 = a[4];\n const a11 = a[5];\n const a12 = a[6];\n const a13 = a[7];\n const a20 = a[8];\n const a21 = a[9];\n const a22 = a[10];\n const a23 = a[11];\n const a30 = a[12];\n const a31 = a[13];\n const a32 = a[14];\n const a33 = a[15];\n const b00 = a00 * a11 - a01 * a10;\n const b01 = a00 * a12 - a02 * a10;\n const b02 = a00 * a13 - a03 * a10;\n const b03 = a01 * a12 - a02 * a11;\n const b04 = a01 * a13 - a03 * a11;\n const b05 = a02 * a13 - a03 * a12;\n const b06 = a20 * a31 - a21 * a30;\n const b07 = a20 * a32 - a22 * a30;\n const b08 = a20 * a33 - a23 * a30;\n const b09 = a21 * a32 - a22 * a31;\n const b10 = a21 * a33 - a23 * a31;\n const b11 = a22 * a33 - a23 * a32;\n // Calculate the determinant\n let det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n if (!det) {\n return null;\n }\n det = 1.0 / det;\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[2] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n out[3] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[4] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[5] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n out[6] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[7] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[8] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n return out;\n}\n/**\n * Generates a 2D projection matrix with the given bounds\n *\n * @param {mat3} out mat3 frustum matrix will be written into\n * @param {number} width Width of your gl context\n * @param {number} height Height of gl context\n * @returns {mat3} out\n */\nexport function projection(out, width, height) {\n out[0] = 2 / width;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = -2 / height;\n out[5] = 0;\n out[6] = -1;\n out[7] = 1;\n out[8] = 1;\n return out;\n}\n/**\n * Returns a string representation of a mat3\n *\n * @param {ReadonlyMat3} a matrix to represent as a string\n * @returns {String} string representation of the matrix\n */\nexport function str(a) {\n return `mat3(${a[0]}, ${a[1]}, ${a[2]}, ${a[3]}, ${a[4]}, ${a[5]}, ${a[6]}, ${a[7]}, ${a[8]})`;\n}\n/**\n * Returns Frobenius norm of a mat3\n *\n * @param {ReadonlyMat3} a the matrix to calculate Frobenius norm of\n * @returns {Number} Frobenius norm\n */\nexport function frob(a) {\n return Math.sqrt(a[0] * a[0] +\n a[1] * a[1] +\n a[2] * a[2] +\n a[3] * a[3] +\n a[4] * a[4] +\n a[5] * a[5] +\n a[6] * a[6] +\n a[7] * a[7] +\n a[8] * a[8]);\n}\n/**\n * Adds two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n out[4] = a[4] + b[4];\n out[5] = a[5] + b[5];\n out[6] = a[6] + b[6];\n out[7] = a[7] + b[7];\n out[8] = a[8] + b[8];\n return out;\n}\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n out[4] = a[4] - b[4];\n out[5] = a[5] - b[5];\n out[6] = a[6] - b[6];\n out[7] = a[7] - b[7];\n out[8] = a[8] - b[8];\n return out;\n}\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat3} out\n */\nexport function multiplyScalar(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n out[4] = a[4] * b;\n out[5] = a[5] * b;\n out[6] = a[6] * b;\n out[7] = a[7] * b;\n out[8] = a[8] * b;\n return out;\n}\n/**\n * Adds two mat3's after multiplying each element of the second operand by a scalar value.\n *\n * @param {mat3} out the receiving vector\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @param {Number} scale the amount to scale b's elements by before adding\n * @returns {mat3} out\n */\nexport function multiplyScalarAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n out[4] = a[4] + b[4] * scale;\n out[5] = a[5] + b[5] * scale;\n out[6] = a[6] + b[6] * scale;\n out[7] = a[7] + b[7] * scale;\n out[8] = a[8] + b[8] * scale;\n return out;\n}\n/**\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyMat3} a The first matrix.\n * @param {ReadonlyMat3} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\nexport function exactEquals(a, b) {\n return (a[0] === b[0] &&\n a[1] === b[1] &&\n a[2] === b[2] &&\n a[3] === b[3] &&\n a[4] === b[4] &&\n a[5] === b[5] &&\n a[6] === b[6] &&\n a[7] === b[7] &&\n a[8] === b[8]);\n}\n/**\n * Returns whether or not the matrices have approximately the same elements in the same position.\n *\n * @param {ReadonlyMat3} a The first matrix.\n * @param {ReadonlyMat3} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\nexport function equals(a, b) {\n const a0 = a[0];\n const a1 = a[1];\n const a2 = a[2];\n const a3 = a[3];\n const a4 = a[4];\n const a5 = a[5];\n const a6 = a[6];\n const a7 = a[7];\n const a8 = a[8];\n const b0 = b[0];\n const b1 = b[1];\n const b2 = b[2];\n const b3 = b[3];\n const b4 = b[4];\n const b5 = b[5];\n const b6 = b[6];\n const b7 = b[7];\n const b8 = b[8];\n return (Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) &&\n Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) &&\n Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) &&\n Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) &&\n Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) &&\n Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)) &&\n Math.abs(a6 - b6) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) &&\n Math.abs(a7 - b7) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) &&\n Math.abs(a8 - b8) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8)));\n}\n/**\n * Alias for {@link mat3.multiply}\n * @function\n */\nexport const mul = multiply;\n/**\n * Alias for {@link mat3.subtract}\n * @function\n */\nexport const sub = subtract;\n", "// Copyright (c) 2017 Uber Technologies, Inc.\n// MIT License\nimport { Matrix } from \"./base/matrix.js\";\nimport { checkVector } from \"../lib/validators.js\";\nimport { vec4_transformMat3 } from \"../lib/gl-matrix-extras.js\";\nimport { fromQuat as mat3_fromQuat, determinant as mat3_determinant, transpose as mat3_transpose, invert as mat3_invert, multiply as mat3_multiply, rotate as mat3_rotate, scale as mat3_scale, translate as mat3_translate } from \"../gl-matrix/mat3.js\";\nimport { transformMat3 as vec2_transformMat3 } from \"../gl-matrix/vec2.js\";\nimport { transformMat3 as vec3_transformMat3 } from \"../gl-matrix/vec3.js\";\nvar INDICES;\n(function (INDICES) {\n INDICES[INDICES[\"COL0ROW0\"] = 0] = \"COL0ROW0\";\n INDICES[INDICES[\"COL0ROW1\"] = 1] = \"COL0ROW1\";\n INDICES[INDICES[\"COL0ROW2\"] = 2] = \"COL0ROW2\";\n INDICES[INDICES[\"COL1ROW0\"] = 3] = \"COL1ROW0\";\n INDICES[INDICES[\"COL1ROW1\"] = 4] = \"COL1ROW1\";\n INDICES[INDICES[\"COL1ROW2\"] = 5] = \"COL1ROW2\";\n INDICES[INDICES[\"COL2ROW0\"] = 6] = \"COL2ROW0\";\n INDICES[INDICES[\"COL2ROW1\"] = 7] = \"COL2ROW1\";\n INDICES[INDICES[\"COL2ROW2\"] = 8] = \"COL2ROW2\";\n})(INDICES || (INDICES = {}));\nconst IDENTITY_MATRIX = Object.freeze([1, 0, 0, 0, 1, 0, 0, 0, 1]);\nexport class Matrix3 extends Matrix {\n static get IDENTITY() {\n return getIdentityMatrix();\n }\n static get ZERO() {\n return getZeroMatrix();\n }\n get ELEMENTS() {\n return 9;\n }\n get RANK() {\n return 3;\n }\n get INDICES() {\n return INDICES;\n }\n constructor(array, ...args) {\n // PERF NOTE: initialize elements as double precision numbers\n super(-0, -0, -0, -0, -0, -0, -0, -0, -0);\n if (arguments.length === 1 && Array.isArray(array)) {\n this.copy(array);\n }\n else if (args.length > 0) {\n this.copy([array, ...args]);\n }\n else {\n this.identity();\n }\n }\n copy(array) {\n // Element wise copy for performance\n this[0] = array[0];\n this[1] = array[1];\n this[2] = array[2];\n this[3] = array[3];\n this[4] = array[4];\n this[5] = array[5];\n this[6] = array[6];\n this[7] = array[7];\n this[8] = array[8];\n return this.check();\n }\n // Constructors\n identity() {\n return this.copy(IDENTITY_MATRIX);\n }\n /**\n *\n * @param object\n * @returns self\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n fromObject(object) {\n return this.check();\n }\n /** Calculates a 3x3 matrix from the given quaternion\n * q quat Quaternion to create matrix from\n */\n fromQuaternion(q) {\n mat3_fromQuat(this, q);\n return this.check();\n }\n /**\n * accepts column major order, stores in column major order\n */\n // eslint-disable-next-line max-params\n set(m00, m10, m20, m01, m11, m21, m02, m12, m22) {\n this[0] = m00;\n this[1] = m10;\n this[2] = m20;\n this[3] = m01;\n this[4] = m11;\n this[5] = m21;\n this[6] = m02;\n this[7] = m12;\n this[8] = m22;\n return this.check();\n }\n /**\n * accepts row major order, stores as column major\n */\n // eslint-disable-next-line max-params\n setRowMajor(m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n this[0] = m00;\n this[1] = m10;\n this[2] = m20;\n this[3] = m01;\n this[4] = m11;\n this[5] = m21;\n this[6] = m02;\n this[7] = m12;\n this[8] = m22;\n return this.check();\n }\n // Accessors\n determinant() {\n return mat3_determinant(this);\n }\n // Modifiers\n transpose() {\n mat3_transpose(this, this);\n return this.check();\n }\n /** Invert a matrix. Note that this can fail if the matrix is not invertible */\n invert() {\n mat3_invert(this, this);\n return this.check();\n }\n // Operations\n multiplyLeft(a) {\n mat3_multiply(this, a, this);\n return this.check();\n }\n multiplyRight(a) {\n mat3_multiply(this, this, a);\n return this.check();\n }\n rotate(radians) {\n mat3_rotate(this, this, radians);\n return this.check();\n }\n scale(factor) {\n if (Array.isArray(factor)) {\n mat3_scale(this, this, factor);\n }\n else {\n mat3_scale(this, this, [factor, factor]);\n }\n return this.check();\n }\n translate(vec) {\n mat3_translate(this, this, vec);\n return this.check();\n }\n // Transforms\n transform(vector, result) {\n let out;\n switch (vector.length) {\n case 2:\n out = vec2_transformMat3(result || [-0, -0], vector, this);\n break;\n case 3:\n out = vec3_transformMat3(result || [-0, -0, -0], vector, this);\n break;\n case 4:\n out = vec4_transformMat3(result || [-0, -0, -0, -0], vector, this);\n break;\n default:\n throw new Error('Illegal vector');\n }\n checkVector(out, vector.length);\n return out;\n }\n /** @deprecated */\n transformVector(vector, result) {\n return this.transform(vector, result);\n }\n /** @deprecated */\n transformVector2(vector, result) {\n return this.transform(vector, result);\n }\n /** @deprecated */\n transformVector3(vector, result) {\n return this.transform(vector, result);\n }\n}\nlet ZERO_MATRIX3;\nlet IDENTITY_MATRIX3 = null;\nfunction getZeroMatrix() {\n if (!ZERO_MATRIX3) {\n ZERO_MATRIX3 = new Matrix3([0, 0, 0, 0, 0, 0, 0, 0, 0]);\n Object.freeze(ZERO_MATRIX3);\n }\n return ZERO_MATRIX3;\n}\nfunction getIdentityMatrix() {\n if (!IDENTITY_MATRIX3) {\n IDENTITY_MATRIX3 = new Matrix3();\n Object.freeze(IDENTITY_MATRIX3);\n }\n return IDENTITY_MATRIX3;\n}\n", "// GLTF EXTENSION: KHR_lights_punctual\n// https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_lights_punctual\nimport { assert } from \"../../utils/assert.js\";\nimport { GLTFScenegraph } from \"../../api/gltf-scenegraph.js\";\nconst KHR_LIGHTS_PUNCTUAL = 'KHR_lights_punctual';\nexport const name = KHR_LIGHTS_PUNCTUAL;\nexport async function decode(gltfData) {\n const gltfScenegraph = new GLTFScenegraph(gltfData);\n const { json } = gltfScenegraph;\n // Move the light array out of the extension and remove the extension\n const extension = gltfScenegraph.getExtension(KHR_LIGHTS_PUNCTUAL);\n if (extension) {\n // @ts-ignore\n gltfScenegraph.json.lights = extension.lights;\n gltfScenegraph.removeExtension(KHR_LIGHTS_PUNCTUAL);\n }\n // Any nodes that have the extension, add lights field pointing to light object\n // and remove the extension\n for (const node of json.nodes || []) {\n const nodeExtension = gltfScenegraph.getObjectExtension(node, KHR_LIGHTS_PUNCTUAL);\n if (nodeExtension) {\n // @ts-ignore\n node.light = nodeExtension.light;\n }\n gltfScenegraph.removeObjectExtension(node, KHR_LIGHTS_PUNCTUAL);\n }\n}\n// Move the light ar ray out of the extension and remove the extension\nexport async function encode(gltfData) {\n const gltfScenegraph = new GLTFScenegraph(gltfData);\n const { json } = gltfScenegraph;\n // @ts-ignore\n if (json.lights) {\n const extension = gltfScenegraph.addExtension(KHR_LIGHTS_PUNCTUAL);\n // @ts-ignore\n assert(!extension.lights);\n // @ts-ignore\n extension.lights = json.lights;\n // @ts-ignore\n delete json.lights;\n }\n // Any nodes that have lights field pointing to light object\n // add the extension\n // @ts-ignore\n if (gltfScenegraph.json.lights) {\n // @ts-ignore\n for (const light of gltfScenegraph.json.lights) {\n const node = light.node;\n gltfScenegraph.addObjectExtension(node, KHR_LIGHTS_PUNCTUAL, light);\n }\n // @ts-ignore\n delete gltfScenegraph.json.lights;\n }\n}\n", "// GLTF EXTENSION: KHR_materials_unlit\n// https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_unlit\nimport { GLTFScenegraph } from \"../../api/gltf-scenegraph.js\";\nconst KHR_MATERIALS_UNLIT = 'KHR_materials_unlit';\nexport const name = KHR_MATERIALS_UNLIT;\nexport async function decode(gltfData) {\n const gltfScenegraph = new GLTFScenegraph(gltfData);\n const { json } = gltfScenegraph;\n // Any nodes that have the extension, add lights field pointing to light object\n // and remove the extension\n for (const material of json.materials || []) {\n const extension = material.extensions && material.extensions.KHR_materials_unlit;\n if (extension) {\n // @ts-ignore TODO\n material.unlit = true;\n }\n gltfScenegraph.removeObjectExtension(material, KHR_MATERIALS_UNLIT);\n }\n // Remove the top-level extension\n gltfScenegraph.removeExtension(KHR_MATERIALS_UNLIT);\n}\nexport function encode(gltfData) {\n const gltfScenegraph = new GLTFScenegraph(gltfData);\n const { json } = gltfScenegraph;\n // Any nodes that have lights field pointing to light object\n // add the extension\n // @ts-ignore\n if (gltfScenegraph.materials) {\n for (const material of json.materials || []) {\n // @ts-ignore\n if (material.unlit) {\n // @ts-ignore\n delete material.unlit;\n gltfScenegraph.addObjectExtension(material, KHR_MATERIALS_UNLIT, {});\n gltfScenegraph.addExtension(KHR_MATERIALS_UNLIT);\n }\n }\n }\n}\n", "// GLTF EXTENSION: KHR_techniques_webgl\n// https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_techniques_webgl\nimport { GLTFScenegraph } from \"../../api/gltf-scenegraph.js\";\nconst KHR_TECHNIQUES_WEBGL = 'KHR_techniques_webgl';\nexport const name = KHR_TECHNIQUES_WEBGL;\nexport async function decode(gltfData) {\n const gltfScenegraph = new GLTFScenegraph(gltfData);\n const { json } = gltfScenegraph;\n const extension = gltfScenegraph.getExtension(KHR_TECHNIQUES_WEBGL);\n if (extension) {\n const techniques = resolveTechniques(extension, gltfScenegraph);\n for (const material of json.materials || []) {\n const materialExtension = gltfScenegraph.getObjectExtension(material, KHR_TECHNIQUES_WEBGL);\n if (materialExtension) {\n // @ts-ignore TODO\n material.technique = Object.assign({}, materialExtension, \n // @ts-ignore\n techniques[materialExtension.technique]);\n // @ts-ignore TODO\n material.technique.values = resolveValues(material.technique, gltfScenegraph);\n }\n gltfScenegraph.removeObjectExtension(material, KHR_TECHNIQUES_WEBGL);\n }\n // Remove the top-level extension\n gltfScenegraph.removeExtension(KHR_TECHNIQUES_WEBGL);\n }\n}\n// eslint-disable-next-line\nexport async function encode(gltfData, options) {\n // TODO\n}\nfunction resolveTechniques(techniquesExtension, \n// programs: {[key: string]: any}[],\n// shaders: {[key: string]: any}[],\n// techniques: {[key: string]: any}[]\ngltfScenegraph) {\n const { programs = [], shaders = [], techniques = [] } = techniquesExtension;\n const textDecoder = new TextDecoder();\n shaders.forEach((shader) => {\n if (Number.isFinite(shader.bufferView)) {\n shader.code = textDecoder.decode(gltfScenegraph.getTypedArrayForBufferView(shader.bufferView));\n }\n else {\n // TODO: handle URI shader\n throw new Error('KHR_techniques_webgl: no shader code');\n }\n });\n programs.forEach((program) => {\n program.fragmentShader = shaders[program.fragmentShader];\n program.vertexShader = shaders[program.vertexShader];\n });\n techniques.forEach((technique) => {\n technique.program = programs[technique.program];\n });\n return techniques;\n}\nfunction resolveValues(technique, gltfScenegraph) {\n const values = Object.assign({}, technique.values);\n // merge values from uniforms\n Object.keys(technique.uniforms || {}).forEach((uniform) => {\n if (technique.uniforms[uniform].value && !(uniform in values)) {\n values[uniform] = technique.uniforms[uniform].value;\n }\n });\n // resolve textures\n Object.keys(values).forEach((uniform) => {\n if (typeof values[uniform] === 'object' && values[uniform].index !== undefined) {\n // Assume this is a texture\n // TODO: find if there are any other types that can be referenced\n values[uniform].texture = gltfScenegraph.getTexture(values[uniform].index);\n }\n });\n return values;\n}\n", "// GLTF 1.0 extensions (decode only)\n// import * as KHR_binary_gltf from './KHR_draco_mesh_compression';\n// GLTF 2.0 Vendor extensions\nimport * as EXT_mesh_features from \"../extensions/EXT_mesh_features.js\";\nimport * as EXT_structural_metadata from \"../extensions/EXT_structural_metadata.js\";\n// GLTF 2.0 Khronos extensions (decode/encode)\nimport * as EXT_meshopt_compression from \"../extensions/EXT_meshopt_compression.js\";\nimport * as EXT_texture_webp from \"../extensions/EXT_texture_webp.js\";\nimport * as KHR_texture_basisu from \"../extensions/KHR_texture_basisu.js\";\nimport * as KHR_draco_mesh_compression from \"../extensions/KHR_draco_mesh_compression.js\";\nimport * as KHR_texture_transform from \"../extensions/KHR_texture_transform.js\";\n// Deprecated. These should be handled by rendering library (e.g. luma.gl), not the loader.\nimport * as KHR_lights_punctual from \"../extensions/deprecated/KHR_lights_punctual.js\";\nimport * as KHR_materials_unlit from \"../extensions/deprecated/KHR_materials_unlit.js\";\nimport * as KHR_techniques_webgl from \"../extensions/deprecated/KHR_techniques_webgl.js\";\nimport * as EXT_feature_metadata from \"../extensions/deprecated/EXT_feature_metadata.js\";\n/**\n * List of extensions processed by the GLTFLoader\n * Note that may extensions can only be handled on the rendering stage and are left out here\n * These are just extensions that can be handled fully or partially during loading.\n */\nexport const EXTENSIONS = [\n // 1.0\n // KHR_binary_gltf is handled separately - must be processed before other parsing starts\n // KHR_binary_gltf,\n // 2.0\n EXT_structural_metadata,\n EXT_mesh_features,\n EXT_meshopt_compression,\n EXT_texture_webp,\n // Basisu should come after webp, we want basisu to be preferred if both are provided\n KHR_texture_basisu,\n KHR_draco_mesh_compression,\n KHR_lights_punctual,\n KHR_materials_unlit,\n KHR_techniques_webgl,\n KHR_texture_transform,\n EXT_feature_metadata\n];\n/** Call before any resource loading starts */\nexport function preprocessExtensions(gltf, options = {}, context) {\n const extensions = EXTENSIONS.filter((extension) => useExtension(extension.name, options));\n for (const extension of extensions) {\n extension.preprocess?.(gltf, options, context);\n }\n}\n/** Call after resource loading */\nexport async function decodeExtensions(gltf, options = {}, context) {\n const extensions = EXTENSIONS.filter((extension) => useExtension(extension.name, options));\n for (const extension of extensions) {\n // Note: We decode async extensions sequentially, this might not be necessary\n // Currently we only have Draco, but when we add Basis we may revisit\n await extension.decode?.(gltf, options, context);\n }\n}\nfunction useExtension(extensionName, options) {\n const excludes = options?.gltf?.excludeExtensions || {};\n const exclude = extensionName in excludes && !excludes[extensionName];\n return !exclude;\n}\n", "// GLTF 1.0 EXTENSION: KHR_binary_glTF\n// https://github.com/KhronosGroup/glTF/tree/master/extensions/1.0/Khronos/KHR_binary_glTF\n/* eslint-disable camelcase */\nimport { GLTFScenegraph } from \"../api/gltf-scenegraph.js\";\nconst KHR_BINARY_GLTF = 'KHR_binary_glTF';\n/** Extension name */\nexport const name = KHR_BINARY_GLTF;\nexport function preprocess(gltfData) {\n const gltfScenegraph = new GLTFScenegraph(gltfData);\n const { json } = gltfScenegraph;\n // Note: json.buffers.binary_glTF also needs to be replaced\n // This is currently done during gltf normalization\n // Image and shader nodes can have the extension\n // https://github.com/KhronosGroup/glTF/blob/master/extensions/1.0/Khronos/KHR_binary_glTF/schema/image.KHR_binary_glTF.schema.json\n for (const image of json.images || []) {\n const extension = gltfScenegraph.getObjectExtension(image, KHR_BINARY_GLTF);\n // The data in the extension is valid as glTF 2.0 data inside the object, so just copy it in\n if (extension) {\n Object.assign(image, extension);\n }\n gltfScenegraph.removeObjectExtension(image, KHR_BINARY_GLTF);\n }\n // TODO shaders - At least traverse and throw error if used?\n // https://github.com/KhronosGroup/glTF/blob/master/extensions/1.0/Khronos/KHR_binary_glTF/schema/shader.KHR_binary_glTF.schema.json\n // glTF v1 one files have a partially formed URI field that is not expected in (and causes problems in) 2.0\n if (json.buffers && json.buffers[0]) {\n delete json.buffers[0].uri;\n }\n // Remove the top-level extension as it has now been processed\n gltfScenegraph.removeExtension(KHR_BINARY_GLTF);\n}\n// KHR_binary_gltf is a 1.0 extension that is supported natively by 2.0\n// export function encode() {\n// throw new Error(KHR_BINARY_GLTF);\n// }\n", "/* eslint-disable camelcase */\nimport * as KHR_binary_glTF from \"../extensions/KHR_binary_gltf.js\";\n// Binary format changes (mainly implemented by GLBLoader)\n// https://github.com/KhronosGroup/glTF/tree/master/extensions/1.0/Khronos/KHR_binary_glTF\n// JSON format changes:\n// https://github.com/khronosgroup/gltf/issues/605\n// - [x] Top-level JSON objects are arrays now\n// - [ ] Removed indirection from animation: sampler now refers directly to accessors, #712\n// - [ ] material.parameter.value and technique.parameter.value must be an array, #690\n// - [ ] Node can have only one mesh #821\n// - [ ] Added reqs on JSON encoding\n// - [ ] Added reqs on binary data alignment #802 (comment)\n// Additions:\n// - [ ] Added accessor.normalized, #691, #706\n// - [ ] Added glExtensionsUsed property and 5125 (UNSIGNED_INT) accessor.componentType value, #619\n// - [ ] Added extensionsRequired property, #720, #721\n// - [ ] Added \"STEP\" as valid animation.sampler.interpolation value, #712\n// Removals:\n// - [x] Removed buffer.type, #786, #629\n// - [ ] Removed revision number from profile.version, #709\n// - [ ] Removed technique.functions.scissor and removed 3089 (SCISSOR_TEST) as a valid value for technique.states.enable, #681\n// - [ ] Techniques, programs, and shaders were moved out to KHR_technique_webgl extension.\n// Other edits:\n// - [x] asset is now required, #642\n// - [ ] buffer.byteLength and bufferView.byteLength are now required, #560.\n// - [ ] accessor.min and accessor.max are now required, #593, and clarified that the JSON value and binary data must be the same, #628.\n// - [ ] Clarified animation.sampler and animation.channel restrictions, #712\n// - [ ] skin.inverseBindMatrices is now optional, #461.\n// - [ ] Attribute parameters can't have a value defined in the technique or parameter, #563 (comment).\n// - [ ] Only TEXCOORD and COLOR attribute semantics can be written in the form [semantic]_[set_index], #563 (comment).\n// - [ ] TEXCOORD and COLOR attribute semantics must be written in the form [semantic]_[set_index], e.g., just TEXCOORD should be TEXCOORD_0, and just COLOR should be COLOR_0, #649\n// - [ ] camera.perspective.aspectRatio and camera.perspective.yfov must now be > 0, not >= 0, #563 (comment).\n// - [ ] Application-specific parameter semantics must start with an underscore, e.g., _TEMPERATURE and _SIMULATION_TIME, #563 (comment).\n// - [ ] Properties in technique.parameters must be defined in technique.uniforms or technique.attributes,\n// #563 (comment).\n// - [ ] technique.parameter.count can only be defined when the semantic is JOINTMATRIX or an application-specific semantic is used. It can never be defined for attribute parameters; only uniforms, d2f6945\n// - [ ] technique.parameter.semantic is required when the parameter is an attribute, 28e113d\n// - [ ] Mesh-only models are allowed, e.g., without materials, #642\n// - [ ] Skeleton hierarchies (nodes containing jointName) must be separated from non-skeleton hierarchies., #647\n// - [ ] technique.states.functions.blendColor and technique.states.functions.depthRange parameters now must match WebGL function min/max, #707\nconst GLTF_ARRAYS = {\n accessors: 'accessor',\n animations: 'animation',\n buffers: 'buffer',\n bufferViews: 'bufferView',\n images: 'image',\n materials: 'material',\n meshes: 'mesh',\n nodes: 'node',\n samplers: 'sampler',\n scenes: 'scene',\n skins: 'skin',\n textures: 'texture'\n};\nconst GLTF_KEYS = {\n accessor: 'accessors',\n animations: 'animation',\n buffer: 'buffers',\n bufferView: 'bufferViews',\n image: 'images',\n material: 'materials',\n mesh: 'meshes',\n node: 'nodes',\n sampler: 'samplers',\n scene: 'scenes',\n skin: 'skins',\n texture: 'textures'\n};\n/**\n * Converts (normalizes) glTF v1 to v2\n */\nclass GLTFV1Normalizer {\n idToIndexMap = {\n animations: {},\n accessors: {},\n buffers: {},\n bufferViews: {},\n images: {},\n materials: {},\n meshes: {},\n nodes: {},\n samplers: {},\n scenes: {},\n skins: {},\n textures: {}\n };\n json;\n // constructor() {}\n /**\n * Convert (normalize) glTF < 2.0 to glTF 2.0\n * @param gltf - object with json and binChunks\n * @param options\n * @param options normalize Whether to actually normalize\n */\n normalize(gltf, options) {\n this.json = gltf.json;\n const json = gltf.json;\n // Check version\n switch (json.asset && json.asset.version) {\n // We are converting to v2 format. Return if there is nothing to do\n case '2.0':\n return;\n // This class is written to convert 1.0\n case undefined:\n case '1.0':\n break;\n default:\n // eslint-disable-next-line no-undef, no-console\n console.warn(`glTF: Unknown version ${json.asset.version}`);\n return;\n }\n if (!options.normalize) {\n // We are still missing a few conversion tricks, remove once addressed\n throw new Error('glTF v1 is not supported.');\n }\n // eslint-disable-next-line no-undef, no-console\n console.warn('Converting glTF v1 to glTF v2 format. This is experimental and may fail.');\n this._addAsset(json);\n // In glTF2 top-level fields are Arrays not Object maps\n this._convertTopLevelObjectsToArrays(json);\n // Extract bufferView indices for images\n // (this extension needs to be invoked early in the normalization process)\n // TODO can this be handled by standard extension processing instead of called explicitly?\n KHR_binary_glTF.preprocess(gltf);\n // Convert object references from ids to indices\n this._convertObjectIdsToArrayIndices(json);\n this._updateObjects(json);\n this._updateMaterial(json);\n }\n // asset is now required, #642 https://github.com/KhronosGroup/glTF/issues/639\n _addAsset(json) {\n json.asset = json.asset || {};\n // We are normalizing to glTF v2, so change version to \"2.0\"\n json.asset.version = '2.0';\n json.asset.generator = json.asset.generator || 'Normalized to glTF 2.0 by loaders.gl';\n }\n _convertTopLevelObjectsToArrays(json) {\n // TODO check that all arrays are covered\n for (const arrayName in GLTF_ARRAYS) {\n this._convertTopLevelObjectToArray(json, arrayName);\n }\n }\n /** Convert one top level object to array */\n _convertTopLevelObjectToArray(json, mapName) {\n const objectMap = json[mapName];\n if (!objectMap || Array.isArray(objectMap)) {\n return;\n }\n // Rewrite the top-level field as an array\n json[mapName] = [];\n // Copy the map key into object.id\n for (const id in objectMap) {\n const object = objectMap[id];\n object.id = object.id || id; // Mutates the loaded object\n const index = json[mapName].length;\n json[mapName].push(object);\n this.idToIndexMap[mapName][id] = index;\n }\n }\n /** Go through all objects in all top-level arrays and replace ids with indices */\n _convertObjectIdsToArrayIndices(json) {\n for (const arrayName in GLTF_ARRAYS) {\n this._convertIdsToIndices(json, arrayName);\n }\n if ('scene' in json) {\n json.scene = this._convertIdToIndex(json.scene, 'scene');\n }\n // Convert any index references that are not using array names\n // texture.source (image)\n for (const texture of json.textures) {\n this._convertTextureIds(texture);\n }\n for (const mesh of json.meshes) {\n this._convertMeshIds(mesh);\n }\n for (const node of json.nodes) {\n this._convertNodeIds(node);\n }\n for (const node of json.scenes) {\n this._convertSceneIds(node);\n }\n }\n _convertTextureIds(texture) {\n if (texture.source) {\n texture.source = this._convertIdToIndex(texture.source, 'image');\n }\n }\n _convertMeshIds(mesh) {\n for (const primitive of mesh.primitives) {\n const { attributes, indices, material } = primitive;\n for (const attributeName in attributes) {\n attributes[attributeName] = this._convertIdToIndex(attributes[attributeName], 'accessor');\n }\n if (indices) {\n primitive.indices = this._convertIdToIndex(indices, 'accessor');\n }\n if (material) {\n primitive.material = this._convertIdToIndex(material, 'material');\n }\n }\n }\n _convertNodeIds(node) {\n if (node.children) {\n node.children = node.children.map((child) => this._convertIdToIndex(child, 'node'));\n }\n if (node.meshes) {\n node.meshes = node.meshes.map((mesh) => this._convertIdToIndex(mesh, 'mesh'));\n }\n }\n _convertSceneIds(scene) {\n if (scene.nodes) {\n scene.nodes = scene.nodes.map((node) => this._convertIdToIndex(node, 'node'));\n }\n }\n /** Go through all objects in a top-level array and replace ids with indices */\n _convertIdsToIndices(json, topLevelArrayName) {\n if (!json[topLevelArrayName]) {\n console.warn(`gltf v1: json doesn't contain attribute ${topLevelArrayName}`); // eslint-disable-line no-console, no-undef\n json[topLevelArrayName] = [];\n }\n for (const object of json[topLevelArrayName]) {\n for (const key in object) {\n const id = object[key];\n const index = this._convertIdToIndex(id, key);\n object[key] = index;\n }\n }\n }\n _convertIdToIndex(id, key) {\n const arrayName = GLTF_KEYS[key];\n if (arrayName in this.idToIndexMap) {\n const index = this.idToIndexMap[arrayName][id];\n if (!Number.isFinite(index)) {\n throw new Error(`gltf v1: failed to resolve ${key} with id ${id}`);\n }\n return index;\n }\n return id;\n }\n /**\n *\n * @param {*} json\n */\n _updateObjects(json) {\n for (const buffer of this.json.buffers) {\n // - [x] Removed buffer.type, #786, #629\n delete buffer.type;\n }\n }\n /**\n * Update material (set pbrMetallicRoughness)\n * @param {*} json\n */\n _updateMaterial(json) {\n for (const material of json.materials) {\n material.pbrMetallicRoughness = {\n baseColorFactor: [1, 1, 1, 1],\n metallicFactor: 1,\n roughnessFactor: 1\n };\n const textureId = material.values?.tex || material.values?.texture2d_0 || material.values?.diffuseTex;\n const textureIndex = json.textures.findIndex((texture) => texture.id === textureId);\n if (textureIndex !== -1) {\n material.pbrMetallicRoughness.baseColorTexture = { index: textureIndex };\n }\n }\n }\n}\nexport function normalizeGLTFV1(gltf, options = {}) {\n return new GLTFV1Normalizer().normalize(gltf, options);\n}\n", "import { parseJSON, sliceArrayBuffer, parseFromContext } from '@loaders.gl/loader-utils';\nimport { ImageLoader } from '@loaders.gl/images';\nimport { BasisLoader, selectSupportedBasisFormat } from '@loaders.gl/textures';\nimport { assert } from \"../utils/assert.js\";\nimport { isGLB, parseGLBSync } from \"./parse-glb.js\";\nimport { resolveUrl } from \"../gltf-utils/resolve-url.js\";\nimport { getTypedArrayForBufferView } from \"../gltf-utils/get-typed-array.js\";\nimport { preprocessExtensions, decodeExtensions } from \"../api/gltf-extensions.js\";\nimport { normalizeGLTFV1 } from \"../api/normalize-gltf-v1.js\";\n/** Check if an array buffer appears to contain GLTF data */\nexport function isGLTF(arrayBuffer, options) {\n const byteOffset = 0;\n return isGLB(arrayBuffer, byteOffset, options);\n}\nexport async function parseGLTF(gltf, arrayBufferOrString, byteOffset = 0, options, context) {\n parseGLTFContainerSync(gltf, arrayBufferOrString, byteOffset, options);\n normalizeGLTFV1(gltf, { normalize: options?.gltf?.normalize });\n preprocessExtensions(gltf, options, context);\n // Load linked buffers asynchronously and decodes base64 buffers in parallel\n if (options?.gltf?.loadBuffers && gltf.json.buffers) {\n await loadBuffers(gltf, options, context);\n }\n // loadImages and decodeExtensions should not be running in parallel, because\n // decodeExtensions uses data from images taken during the loadImages call.\n if (options?.gltf?.loadImages) {\n await loadImages(gltf, options, context);\n }\n await decodeExtensions(gltf, options, context);\n return gltf;\n}\n/**\n *\n * @param gltf\n * @param data - can be ArrayBuffer (GLB), ArrayBuffer (Binary JSON), String (JSON), or Object (parsed JSON)\n * @param byteOffset\n * @param options\n */\nfunction parseGLTFContainerSync(gltf, data, byteOffset, options) {\n // Initialize gltf container\n if (options.uri) {\n gltf.baseUri = options.uri;\n }\n // If data is binary and starting with magic bytes, assume binary JSON text, convert to string\n if (data instanceof ArrayBuffer && !isGLB(data, byteOffset, options)) {\n const textDecoder = new TextDecoder();\n data = textDecoder.decode(data);\n }\n if (typeof data === 'string') {\n // If string, try to parse as JSON\n gltf.json = parseJSON(data);\n }\n else if (data instanceof ArrayBuffer) {\n // If still ArrayBuffer, parse as GLB container\n const glb = {};\n byteOffset = parseGLBSync(glb, data, byteOffset, options.glb);\n assert(glb.type === 'glTF', `Invalid GLB magic string ${glb.type}`);\n gltf._glb = glb;\n gltf.json = glb.json;\n }\n else {\n assert(false, 'GLTF: must be ArrayBuffer or string');\n }\n // Populate buffers\n // Create an external buffers array to hold binary data\n const buffers = gltf.json.buffers || [];\n gltf.buffers = new Array(buffers.length).fill(null);\n // Populates JSON and some bin chunk info\n if (gltf._glb && gltf._glb.header.hasBinChunk) {\n const { binChunks } = gltf._glb;\n gltf.buffers[0] = {\n arrayBuffer: binChunks[0].arrayBuffer,\n byteOffset: binChunks[0].byteOffset,\n byteLength: binChunks[0].byteLength\n };\n // TODO - this modifies JSON and is a post processing thing\n // gltf.json.buffers[0].data = gltf.buffers[0].arrayBuffer;\n // gltf.json.buffers[0].byteOffset = gltf.buffers[0].byteOffset;\n }\n // Populate images\n const images = gltf.json.images || [];\n gltf.images = new Array(images.length).fill({});\n}\n/** Asynchronously fetch and parse buffers, store in buffers array outside of json\n * TODO - traverse gltf and determine which buffers are actually needed\n */\nasync function loadBuffers(gltf, options, context) {\n // TODO\n const buffers = gltf.json.buffers || [];\n for (let i = 0; i < buffers.length; ++i) {\n const buffer = buffers[i];\n if (buffer.uri) {\n const { fetch } = context;\n assert(fetch);\n const uri = resolveUrl(buffer.uri, options);\n const response = await context?.fetch?.(uri);\n const arrayBuffer = await response?.arrayBuffer?.();\n gltf.buffers[i] = {\n arrayBuffer,\n byteOffset: 0,\n byteLength: arrayBuffer.byteLength\n };\n delete buffer.uri;\n }\n else if (gltf.buffers[i] === null) {\n gltf.buffers[i] = {\n arrayBuffer: new ArrayBuffer(buffer.byteLength),\n byteOffset: 0,\n byteLength: buffer.byteLength\n };\n }\n }\n}\n/**\n * Loads all images\n * TODO - traverse gltf and determine which images are actually needed\n * @param gltf\n * @param options\n * @param context\n * @returns\n */\nasync function loadImages(gltf, options, context) {\n const imageIndices = getReferencesImageIndices(gltf);\n const images = gltf.json.images || [];\n const promises = [];\n for (const imageIndex of imageIndices) {\n promises.push(loadImage(gltf, images[imageIndex], imageIndex, options, context));\n }\n return await Promise.all(promises);\n}\n/** Make sure we only load images that are actually referenced by textures */\nfunction getReferencesImageIndices(gltf) {\n const imageIndices = new Set();\n const textures = gltf.json.textures || [];\n for (const texture of textures) {\n if (texture.source !== undefined) {\n imageIndices.add(texture.source);\n }\n }\n return Array.from(imageIndices).sort();\n}\n/** Asynchronously fetches and parses one image, store in images array outside of json */\nasync function loadImage(gltf, image, index, options, context) {\n let arrayBuffer;\n if (image.uri && !image.hasOwnProperty('bufferView')) {\n const uri = resolveUrl(image.uri, options);\n const { fetch } = context;\n const response = await fetch(uri);\n arrayBuffer = await response.arrayBuffer();\n image.bufferView = {\n data: arrayBuffer\n };\n }\n if (Number.isFinite(image.bufferView)) {\n const array = getTypedArrayForBufferView(gltf.json, gltf.buffers, image.bufferView);\n arrayBuffer = sliceArrayBuffer(array.buffer, array.byteOffset, array.byteLength);\n }\n assert(arrayBuffer, 'glTF image has no data');\n // Call `parse`\n let parsedImage = (await parseFromContext(arrayBuffer, [ImageLoader, BasisLoader], {\n ...options,\n mimeType: image.mimeType,\n basis: options.basis || { format: selectSupportedBasisFormat() }\n }, context));\n if (parsedImage && parsedImage[0]) {\n parsedImage = {\n compressed: true,\n // @ts-expect-error\n mipmaps: false,\n width: parsedImage[0].width,\n height: parsedImage[0].height,\n data: parsedImage[0]\n };\n }\n // TODO making sure ImageLoader is overridable by using array of loaders\n // const parsedImage = await parse(arrayBuffer, [ImageLoader]);\n // Store the loaded image\n gltf.images = gltf.images || [];\n // @ts-expect-error TODO - sort out image typing asap\n gltf.images[index] = parsedImage;\n}\n", "import { VERSION } from \"./lib/utils/version.js\";\nimport { parseGLTF } from \"./lib/parsers/parse-gltf.js\";\n/**\n * GLTF loader\n */\nexport const GLTFLoader = {\n dataType: null,\n batchType: null,\n name: 'glTF',\n id: 'gltf',\n module: 'gltf',\n version: VERSION,\n extensions: ['gltf', 'glb'],\n mimeTypes: ['model/gltf+json', 'model/gltf-binary'],\n text: true,\n binary: true,\n tests: ['glTF'],\n parse,\n options: {\n gltf: {\n normalize: true, // Normalize glTF v1 to glTF v2 format (not yet stable)\n loadBuffers: true, // Fetch any linked .BIN buffers, decode base64\n loadImages: true, // Create image objects\n decompressMeshes: true // Decompress Draco encoded meshes\n },\n // common?\n log: console // eslint-disable-line\n }\n};\nexport async function parse(arrayBuffer, options = {}, context) {\n // Apps can call the parse method directly, we so apply default options here\n options = { ...GLTFLoader.options, ...options };\n // @ts-ignore\n options.gltf = { ...GLTFLoader.options.gltf, ...options.gltf };\n const { byteOffset = 0 } = options;\n const gltf = {};\n return await parseGLTF(gltf, arrayBuffer, byteOffset, options, context);\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { assert } from \"../utils/assert.js\";\nimport { getAccessorArrayTypeAndLength } from \"../gltf-utils/gltf-utils.js\";\n// This is a post processor for loaded glTF files\n// The goal is to make the loaded data easier to use in WebGL applications\n//\n// Functions:\n// * Resolve indexed arrays structure of glTF into a linked tree.\n// * Translate stringified enum keys and values into WebGL constants.\n// * Load images (optional)\n// ENUM LOOKUP\nconst COMPONENTS = {\n SCALAR: 1,\n VEC2: 2,\n VEC3: 3,\n VEC4: 4,\n MAT2: 4,\n MAT3: 9,\n MAT4: 16\n};\nconst BYTES = {\n 5120: 1, // BYTE\n 5121: 1, // UNSIGNED_BYTE\n 5122: 2, // SHORT\n 5123: 2, // UNSIGNED_SHORT\n 5125: 4, // UNSIGNED_INT\n 5126: 4 // FLOAT\n};\nconst GL_SAMPLER = {\n // Sampler parameters\n TEXTURE_MAG_FILTER: 0x2800,\n TEXTURE_MIN_FILTER: 0x2801,\n TEXTURE_WRAP_S: 0x2802,\n TEXTURE_WRAP_T: 0x2803,\n // Sampler default values\n REPEAT: 0x2901,\n LINEAR: 0x2601,\n NEAREST_MIPMAP_LINEAR: 0x2702\n};\nconst SAMPLER_PARAMETER_GLTF_TO_GL = {\n magFilter: GL_SAMPLER.TEXTURE_MAG_FILTER,\n minFilter: GL_SAMPLER.TEXTURE_MIN_FILTER,\n wrapS: GL_SAMPLER.TEXTURE_WRAP_S,\n wrapT: GL_SAMPLER.TEXTURE_WRAP_T\n};\n// When undefined, a sampler with repeat wrapping and auto filtering should be used.\n// https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#texture\nconst DEFAULT_SAMPLER_PARAMETERS = {\n [GL_SAMPLER.TEXTURE_MAG_FILTER]: GL_SAMPLER.LINEAR,\n [GL_SAMPLER.TEXTURE_MIN_FILTER]: GL_SAMPLER.NEAREST_MIPMAP_LINEAR,\n [GL_SAMPLER.TEXTURE_WRAP_S]: GL_SAMPLER.REPEAT,\n [GL_SAMPLER.TEXTURE_WRAP_T]: GL_SAMPLER.REPEAT\n};\nfunction makeDefaultSampler() {\n return {\n id: 'default-sampler',\n parameters: DEFAULT_SAMPLER_PARAMETERS\n };\n}\nfunction getBytesFromComponentType(componentType) {\n return BYTES[componentType];\n}\nfunction getSizeFromAccessorType(type) {\n return COMPONENTS[type];\n}\nclass GLTFPostProcessor {\n baseUri = '';\n // @ts-expect-error\n jsonUnprocessed;\n // @ts-expect-error\n json;\n buffers = [];\n images = [];\n postProcess(gltf, options = {}) {\n const { json, buffers = [], images = [] } = gltf;\n // @ts-expect-error\n const { baseUri = '' } = gltf;\n assert(json);\n this.baseUri = baseUri;\n this.buffers = buffers;\n this.images = images;\n this.jsonUnprocessed = json;\n this.json = this._resolveTree(gltf.json, options);\n return this.json;\n }\n // Convert indexed glTF structure into tree structure\n // cross-link index resolution, enum lookup, convenience calculations\n // eslint-disable-next-line complexity, max-statements\n _resolveTree(gltf, options = {}) {\n // @ts-expect-error\n const json = { ...gltf };\n this.json = json;\n if (gltf.bufferViews) {\n json.bufferViews = gltf.bufferViews.map((bufView, i) => this._resolveBufferView(bufView, i));\n }\n if (gltf.images) {\n json.images = gltf.images.map((image, i) => this._resolveImage(image, i));\n }\n if (gltf.samplers) {\n json.samplers = gltf.samplers.map((sampler, i) => this._resolveSampler(sampler, i));\n }\n if (gltf.textures) {\n json.textures = gltf.textures.map((texture, i) => this._resolveTexture(texture, i));\n }\n if (gltf.accessors) {\n json.accessors = gltf.accessors.map((accessor, i) => this._resolveAccessor(accessor, i));\n }\n if (gltf.materials) {\n json.materials = gltf.materials.map((material, i) => this._resolveMaterial(material, i));\n }\n if (gltf.meshes) {\n json.meshes = gltf.meshes.map((mesh, i) => this._resolveMesh(mesh, i));\n }\n if (gltf.nodes) {\n json.nodes = gltf.nodes.map((node, i) => this._resolveNode(node, i));\n json.nodes = json.nodes.map((node, i) => this._resolveNodeChildren(node));\n }\n if (gltf.skins) {\n json.skins = gltf.skins.map((skin, i) => this._resolveSkin(skin, i));\n }\n if (gltf.scenes) {\n json.scenes = gltf.scenes.map((scene, i) => this._resolveScene(scene, i));\n }\n if (typeof this.json.scene === 'number' && json.scenes) {\n json.scene = json.scenes[this.json.scene];\n }\n return json;\n }\n getScene(index) {\n return this._get(this.json.scenes, index);\n }\n getNode(index) {\n return this._get(this.json.nodes, index);\n }\n getSkin(index) {\n return this._get(this.json.skins, index);\n }\n getMesh(index) {\n return this._get(this.json.meshes, index);\n }\n getMaterial(index) {\n return this._get(this.json.materials, index);\n }\n getAccessor(index) {\n return this._get(this.json.accessors, index);\n }\n getCamera(index) {\n return this._get(this.json.cameras, index);\n }\n getTexture(index) {\n return this._get(this.json.textures, index);\n }\n getSampler(index) {\n return this._get(this.json.samplers, index);\n }\n getImage(index) {\n return this._get(this.json.images, index);\n }\n getBufferView(index) {\n return this._get(this.json.bufferViews, index);\n }\n getBuffer(index) {\n return this._get(this.json.buffers, index);\n }\n _get(array, index) {\n // check if already resolved\n if (typeof index === 'object') {\n return index;\n }\n const object = array && array[index];\n if (!object) {\n console.warn(`glTF file error: Could not find ${array}[${index}]`); // eslint-disable-line\n }\n return object;\n }\n // PARSING HELPERS\n _resolveScene(scene, index) {\n return {\n ...scene,\n // @ts-ignore\n id: scene.id || `scene-${index}`,\n nodes: (scene.nodes || []).map((node) => this.getNode(node))\n };\n }\n _resolveNode(gltfNode, index) {\n // @ts-expect-error\n const node = {\n ...gltfNode,\n // @ts-expect-error id could already be present, glTF standard does not prevent it\n id: gltfNode?.id || `node-${index}`\n };\n if (gltfNode.mesh !== undefined) {\n node.mesh = this.getMesh(gltfNode.mesh);\n }\n if (gltfNode.camera !== undefined) {\n node.camera = this.getCamera(gltfNode.camera);\n }\n if (gltfNode.skin !== undefined) {\n node.skin = this.getSkin(gltfNode.skin);\n }\n // TODO deprecated - Delete in v4.0?\n // @ts-expect-error node.meshes does not seem to be part of the GLTF standard\n if (gltfNode.meshes !== undefined && gltfNode.meshes.length) {\n // @ts-expect-error\n node.mesh = gltfNode.meshes.reduce((accum, meshIndex) => {\n const mesh = this.getMesh(meshIndex);\n accum.id = mesh.id;\n accum.primitives = accum.primitives.concat(mesh.primitives);\n return accum;\n }, { primitives: [] });\n }\n return node;\n }\n _resolveNodeChildren(node) {\n if (node.children) {\n // @ts-expect-error node.children are numbers at this stage\n node.children = node.children.map((child) => this.getNode(child));\n }\n return node;\n }\n _resolveSkin(gltfSkin, index) {\n const inverseBindMatrices = typeof gltfSkin.inverseBindMatrices === 'number'\n ? this.getAccessor(gltfSkin.inverseBindMatrices)\n : undefined;\n return {\n ...gltfSkin,\n id: gltfSkin.id || `skin-${index}`,\n inverseBindMatrices\n };\n }\n _resolveMesh(gltfMesh, index) {\n const mesh = {\n ...gltfMesh,\n id: gltfMesh.id || `mesh-${index}`,\n primitives: []\n };\n if (gltfMesh.primitives) {\n mesh.primitives = gltfMesh.primitives.map((gltfPrimitive) => {\n const primitive = {\n ...gltfPrimitive,\n attributes: {},\n indices: undefined,\n material: undefined\n };\n const attributes = gltfPrimitive.attributes;\n for (const attribute in attributes) {\n primitive.attributes[attribute] = this.getAccessor(attributes[attribute]);\n }\n if (gltfPrimitive.indices !== undefined) {\n primitive.indices = this.getAccessor(gltfPrimitive.indices);\n }\n if (gltfPrimitive.material !== undefined) {\n primitive.material = this.getMaterial(gltfPrimitive.material);\n }\n return primitive;\n });\n }\n return mesh;\n }\n _resolveMaterial(gltfMaterial, index) {\n // @ts-expect-error\n const material = {\n ...gltfMaterial,\n // @ts-expect-error\n id: gltfMaterial.id || `material-${index}`\n };\n if (material.normalTexture) {\n material.normalTexture = { ...material.normalTexture };\n material.normalTexture.texture = this.getTexture(material.normalTexture.index);\n }\n if (material.occlusionTexture) {\n material.occlusionTexture = { ...material.occlusionTexture };\n material.occlusionTexture.texture = this.getTexture(material.occlusionTexture.index);\n }\n if (material.emissiveTexture) {\n material.emissiveTexture = { ...material.emissiveTexture };\n material.emissiveTexture.texture = this.getTexture(material.emissiveTexture.index);\n }\n if (!material.emissiveFactor) {\n material.emissiveFactor = material.emissiveTexture ? [1, 1, 1] : [0, 0, 0];\n }\n if (material.pbrMetallicRoughness) {\n material.pbrMetallicRoughness = { ...material.pbrMetallicRoughness };\n const mr = material.pbrMetallicRoughness;\n if (mr.baseColorTexture) {\n mr.baseColorTexture = { ...mr.baseColorTexture };\n mr.baseColorTexture.texture = this.getTexture(mr.baseColorTexture.index);\n }\n if (mr.metallicRoughnessTexture) {\n mr.metallicRoughnessTexture = { ...mr.metallicRoughnessTexture };\n mr.metallicRoughnessTexture.texture = this.getTexture(mr.metallicRoughnessTexture.index);\n }\n }\n return material;\n }\n _resolveAccessor(gltfAccessor, index) {\n // Look up enums\n const bytesPerComponent = getBytesFromComponentType(gltfAccessor.componentType);\n const components = getSizeFromAccessorType(gltfAccessor.type);\n const bytesPerElement = bytesPerComponent * components;\n const accessor = {\n ...gltfAccessor,\n // @ts-expect-error\n id: gltfAccessor.id || `accessor-${index}`,\n bytesPerComponent,\n components,\n bytesPerElement,\n value: undefined,\n bufferView: undefined,\n sparse: undefined\n };\n if (gltfAccessor.bufferView !== undefined) {\n // Draco encoded meshes don't have bufferView\n accessor.bufferView = this.getBufferView(gltfAccessor.bufferView);\n }\n // Create TypedArray for the accessor\n // Note: The canonical way to instantiate is to ignore this array and create\n // WebGLBuffer's using the bufferViews.\n if (accessor.bufferView) {\n const buffer = accessor.bufferView.buffer;\n const { ArrayType, byteLength } = getAccessorArrayTypeAndLength(accessor, accessor.bufferView);\n const byteOffset = (accessor.bufferView.byteOffset || 0) + (accessor.byteOffset || 0) + buffer.byteOffset;\n let cutBuffer = buffer.arrayBuffer.slice(byteOffset, byteOffset + byteLength);\n if (accessor.bufferView.byteStride) {\n cutBuffer = this._getValueFromInterleavedBuffer(buffer, byteOffset, accessor.bufferView.byteStride, accessor.bytesPerElement, accessor.count);\n }\n accessor.value = new ArrayType(cutBuffer);\n }\n return accessor;\n }\n /**\n * Take values of particular accessor from interleaved buffer\n * various parts of the buffer\n * @param buffer\n * @param byteOffset\n * @param byteStride\n * @param bytesPerElement\n * @param count\n * @returns\n */\n _getValueFromInterleavedBuffer(buffer, byteOffset, byteStride, bytesPerElement, count) {\n const result = new Uint8Array(count * bytesPerElement);\n for (let i = 0; i < count; i++) {\n const elementOffset = byteOffset + i * byteStride;\n result.set(new Uint8Array(buffer.arrayBuffer.slice(elementOffset, elementOffset + bytesPerElement)), i * bytesPerElement);\n }\n return result.buffer;\n }\n _resolveTexture(gltfTexture, index) {\n return {\n ...gltfTexture,\n // @ts-expect-error id could already be present, glTF standard does not prevent it\n id: gltfTexture.id || `texture-${index}`,\n sampler: typeof gltfTexture.sampler === 'number'\n ? this.getSampler(gltfTexture.sampler)\n : makeDefaultSampler(),\n source: typeof gltfTexture.source === 'number' ? this.getImage(gltfTexture.source) : undefined\n };\n }\n _resolveSampler(gltfSampler, index) {\n const sampler = {\n // @ts-expect-error id could already be present, glTF standard does not prevent it\n id: gltfSampler.id || `sampler-${index}`,\n ...gltfSampler,\n parameters: {}\n };\n // Map textual parameters to GL parameter values\n for (const key in sampler) {\n const glEnum = this._enumSamplerParameter(key);\n if (glEnum !== undefined) {\n sampler.parameters[glEnum] = sampler[key];\n }\n }\n return sampler;\n }\n _enumSamplerParameter(key) {\n return SAMPLER_PARAMETER_GLTF_TO_GL[key];\n }\n _resolveImage(gltfImage, index) {\n const image = {\n ...gltfImage,\n // @ts-expect-error id could already be present, glTF standard does not prevent it\n id: gltfImage.id || `image-${index}`,\n image: null,\n bufferView: gltfImage.bufferView !== undefined ? this.getBufferView(gltfImage.bufferView) : undefined\n };\n // Check if image has been preloaded by the GLTFLoader\n // If so, link it into the JSON and drop the URI\n const preloadedImage = this.images[index];\n if (preloadedImage) {\n image.image = preloadedImage;\n }\n return image;\n }\n _resolveBufferView(gltfBufferView, index) {\n const bufferIndex = gltfBufferView.buffer;\n const arrayBuffer = this.buffers[bufferIndex].arrayBuffer;\n // Add offset of buffer, then offset of buffer view\n let byteOffset = this.buffers[bufferIndex].byteOffset || 0;\n if (gltfBufferView.byteOffset) {\n byteOffset += gltfBufferView.byteOffset;\n }\n const bufferView = {\n // // @ts-expect-error id could already be present, glTF standard does not prevent it\n id: `bufferView-${index}`,\n ...gltfBufferView,\n // ...this.buffers[bufferIndex],\n buffer: this.buffers[bufferIndex],\n data: new Uint8Array(arrayBuffer, byteOffset, gltfBufferView.byteLength)\n };\n return bufferView;\n }\n _resolveCamera(gltfCamera, index) {\n const camera = {\n ...gltfCamera,\n // @ts-expect-error id could already be present, glTF standard does not prevent it\n id: gltfCamera.id || `camera-${index}`\n };\n // TODO - create 4x4 matrices\n if (camera.perspective) {\n // camera.matrix = createPerspectiveMatrix(camera.perspective);\n }\n if (camera.orthographic) {\n // camera.matrix = createOrthographicMatrix(camera.orthographic);\n }\n return camera;\n }\n}\nexport function postProcessGLTF(gltf, options) {\n return new GLTFPostProcessor().postProcess(gltf, options);\n}\n", "// import '@loaders.gl/polyfills';\nimport {parse} from '@loaders.gl/core';\nimport {GLTFLoader, postProcessGLTF} from '@loaders.gl/gltf';\n\nimport {\n ClampToEdgeWrapping,\n LinearFilter,\n LinearMipMapLinearFilter,\n LinearMipMapNearestFilter,\n LinesPrimitive,\n MirroredRepeatWrapping,\n NearestFilter,\n NearestMipMapLinearFilter,\n NearestMipMapNearestFilter,\n PointsPrimitive,\n RepeatWrapping,\n TrianglesPrimitive\n} from \"@xeokit/constants\";\nimport {isString} from \"@xeokit/utils\";\nimport {createMat4, identityMat4, mulMat4, quatToMat4, scalingMat4v, translationMat4v} from \"@xeokit/matrix\";\nimport type {FloatArrayParam} from \"@xeokit/math\";\nimport type {SceneGeometryParams, SceneMeshParams, SceneModel, SceneTextureSetParams} from \"@xeokit/scene\";\nimport type {DataModel} from \"@xeokit/data\";\nimport {SDKError} from \"@xeokit/core\";\n\ninterface ParsingContext {\n gltfData: any;\n nextId: number;\n log: any;\n error: (msg: any) => void;\n dataModel?: DataModel;\n sceneModel?: SceneModel;\n objectCreated: { [key: string]: boolean }\n}\n\n/**\n * Loads glTF file data from an ArrayBuffer into a {@link @xeokit/scene!SceneModel | SceneModel} and/or\n * a {@link @xeokit/data!DataModel | DataModel}.\n *\n * * Expects {@link @xeokit/scene!SceneModel.built | SceneModel.built} and {@link @xeokit/scene!SceneModel.destroyed | SceneModel.destroyed} to be ````false````\n * * Does not call {@link @xeokit/scene!SceneModel.build | SceneModel.build} - we call that ourselves, when we have finished building the SceneModel\n *\n * See {@link \"@xeokit/gltf\" | @xeokit/gltf} for usage.\n *\n * @param params - Loading parameters.\n * @param params.fileData - glTF file data\n * @param params.sceneModel - SceneModel to load into.\n * @param params.dataModel - DataModel to load into. For glTF, this will create a basic aggregation hierarchy (see {@link \"@xeokit/basictypes/basicTypes\"}).\n * @returns {Promise} Resolves when glTF has been loaded.\n * @returns {Promise} Resolves when glTF has been loaded into the SceneModel and/or DataModel.\n * @throws *{@link @xeokit/core!SDKError | SDKError}*\n * * If the SceneModel has already been destroyed.\n * * If the SceneModel has already been built.\n * * If the DataModel has already been destroyed.\n * * If the DataModel has already been built.\n */\nexport function loadGLTF(params: {\n fileData: ArrayBuffer,\n sceneModel: SceneModel,\n dataModel?: DataModel,\n log?: Function\n}): Promise {\n return new Promise(function (resolve, reject) {\n if (params.sceneModel.destroyed) {\n throw new SDKError(\"SceneModel already destroyed\");\n }\n if (params.sceneModel.built) {\n throw new SDKError(\"SceneModel already built\");\n }\n if (params.dataModel) {\n if (params.dataModel.destroyed) {\n throw new SDKError(\"DataModel already destroyed\");\n }\n if (params.dataModel.built) {\n throw new SDKError(\"DataModel already built\");\n }\n }\n parse(params.fileData, GLTFLoader, {\n loadImages: false\n }).then((gltfData) => {\n const processedGLTF = postProcessGLTF(gltfData);\n const ctx: ParsingContext = {\n gltfData: processedGLTF,\n nextId: 0,\n log: (params.log || function (msg: string) {\n }),\n error: function (msg) {\n console.error(msg);\n },\n dataModel: params.dataModel,\n sceneModel: params.sceneModel,\n objectCreated: {}\n };\n parseTextures(ctx);\n parseMaterials(ctx);\n parseDefaultScene(ctx);\n resolve();\n }, (errMsg) => {\n reject(new SDKError(`Error parsing glTF: ${errMsg}`));\n });\n });\n}\n\nfunction parseTextures(ctx: any) {\n if (!ctx.sceneModel) {\n return;\n }\n const gltfData = ctx.gltfData;\n const textures = gltfData.textures;\n if (textures) {\n for (let i = 0, len = textures.length; i < len; i++) {\n parseTexture(ctx, textures[i]);\n }\n }\n}\n\nfunction parseTexture(ctx: any, texture: any) {\n if (!texture.source || !texture.source.image) {\n return;\n }\n const textureId = `texture-${ctx.nextId++}`;\n let minFilter = NearestMipMapLinearFilter;\n switch (texture.sampler.minFilter) {\n case 9728:\n minFilter = NearestFilter;\n break;\n case 9729:\n minFilter = LinearFilter;\n break;\n case 9984:\n minFilter = NearestMipMapNearestFilter;\n break;\n case 9985:\n minFilter = LinearMipMapNearestFilter;\n break;\n case 9986:\n minFilter = NearestMipMapLinearFilter;\n break;\n case 9987:\n minFilter = LinearMipMapLinearFilter;\n break;\n }\n let magFilter = LinearFilter;\n switch (texture.sampler.magFilter) {\n case 9728:\n magFilter = NearestFilter;\n break;\n case 9729:\n magFilter = LinearFilter;\n break;\n }\n let wrapS = RepeatWrapping;\n switch (texture.sampler.wrapS) {\n case 33071:\n wrapS = ClampToEdgeWrapping;\n break;\n case 33648:\n wrapS = MirroredRepeatWrapping;\n break;\n case 10497:\n wrapS = RepeatWrapping;\n break;\n }\n let wrapT = RepeatWrapping;\n switch (texture.sampler.wrapT) {\n case 33071:\n wrapT = ClampToEdgeWrapping;\n break;\n case 33648:\n wrapT = MirroredRepeatWrapping;\n break;\n case 10497:\n wrapT = RepeatWrapping;\n break;\n }\n let wrapR = RepeatWrapping;\n switch (texture.sampler.wrapR) {\n case 33071:\n wrapR = ClampToEdgeWrapping;\n break;\n case 33648:\n wrapR = MirroredRepeatWrapping;\n break;\n case 10497:\n wrapR = RepeatWrapping;\n break;\n }\n ctx.sceneModel.createTexture({\n id: textureId,\n imageData: texture.source.image,\n mediaType: texture.source.mediaType,\n compressed: true,\n width: texture.source.image.width,\n height: texture.source.image.height,\n minFilter,\n magFilter,\n wrapS,\n wrapT,\n wrapR,\n flipY: !!texture.flipY,\n // encoding: \"sRGB\"\n });\n texture._textureId = textureId;\n}\n\nfunction parseMaterials(ctx: ParsingContext): void {\n if (!ctx.sceneModel) {\n return;\n }\n const gltfData = ctx.gltfData;\n const materials = gltfData.materials;\n if (materials) {\n for (let i = 0, len = materials.length; i < len; i++) {\n const material = materials[i];\n material._textureSetId = parseTextureSet(ctx, material);\n material._attributes = parseMaterialAttributes(ctx, material);\n }\n }\n}\n\nfunction parseTextureSet(ctx: ParsingContext, material: any): null | string {\n // @ts-ignore\n\n const textureSetCfg: SceneTextureSetParams = {\n // @ts-ignore\n id: null,\n occlusionTextureId: undefined,\n emissiveTextureId: undefined,\n colorTextureId: undefined,\n metallicRoughnessTextureId: undefined\n };\n if (material.occlusionTexture) {\n textureSetCfg.occlusionTextureId = material.occlusionTexture.texture._textureId;\n }\n if (material.emissiveTexture) {\n textureSetCfg.emissiveTextureId = material.emissiveTexture.texture._textureId;\n }\n // const alphaMode = material.alphaMode;\n // switch (alphaMode) {\n // case \"NORMAL_OPAQUE\":\n // materialCfg.alphaMode = \"opaque\";\n // break;\n // case \"MASK\":\n // materialCfg.alphaMode = \"mask\";\n // break;\n // case \"BLEND\":\n // materialCfg.alphaMode = \"blend\";\n // break;\n // default:\n // }\n // const alphaCutoff = material.alphaCutoff;\n // if (alphaCutoff !== undefined) {\n // materialCfg.alphaCutoff = alphaCutoff;\n // }\n const metallicPBR = material.pbrMetallicRoughness;\n if (material.pbrMetallicRoughness) {\n const pbrMetallicRoughness = material.pbrMetallicRoughness;\n const baseColorTexture = pbrMetallicRoughness.baseColorTexture || pbrMetallicRoughness.colorTexture;\n if (baseColorTexture) {\n if (baseColorTexture.texture) {\n textureSetCfg.colorTextureId = baseColorTexture.texture._textureId;\n } else {\n textureSetCfg.colorTextureId = ctx.gltfData.textures[baseColorTexture.index]._textureId;\n }\n }\n if (metallicPBR.metallicRoughnessTexture) {\n textureSetCfg.metallicRoughnessTextureId = metallicPBR.metallicRoughnessTexture.texture._textureId;\n }\n }\n const extensions = material.extensions;\n if (extensions) {\n const specularPBR = extensions[\"KHR_materials_pbrSpecularGlossiness\"];\n if (specularPBR) {\n const specularTexture = specularPBR.specularTexture;\n if (specularTexture !== null && specularTexture !== undefined) {\n // textureSetCfg.colorTextureId = ctx.gltfData.textures[specularColorTexture.index]._textureId;\n }\n const specularColorTexture = specularPBR.specularColorTexture;\n if (specularColorTexture !== null && specularColorTexture !== undefined) {\n textureSetCfg.colorTextureId = ctx.gltfData.textures[specularColorTexture.index]._textureId;\n }\n }\n }\n if (textureSetCfg.occlusionTextureId !== undefined ||\n textureSetCfg.emissiveTextureId !== undefined ||\n textureSetCfg.colorTextureId !== undefined ||\n textureSetCfg.metallicRoughnessTextureId !== undefined) {\n textureSetCfg.id = `textureSet-${ctx.nextId++};`\n // @ts-ignore\n ctx.sceneModel.createTextureSet(textureSetCfg);\n return textureSetCfg.id;\n }\n return null;\n}\n\nfunction parseMaterialAttributes(ctx: ParsingContext, material: any): any { // Substitute RGBA for material, to use fast flat shading instead\n const extensions = material.extensions;\n const materialAttributes = {\n color: new Float32Array([1, 1, 1, 1]),\n opacity: 1,\n metallic: 0,\n roughness: 1\n };\n if (extensions) {\n const specularPBR = extensions[\"KHR_materials_pbrSpecularGlossiness\"];\n if (specularPBR) {\n const diffuseFactor = specularPBR.diffuseFactor;\n if (diffuseFactor !== null && diffuseFactor !== undefined) {\n materialAttributes.color.set(diffuseFactor);\n }\n }\n const common = extensions[\"KHR_materials_common\"];\n if (common) {\n const technique = common.technique;\n const values = common.values || {};\n const blinn = technique === \"BLINN\";\n const phong = technique === \"PHONG\";\n const lambert = technique === \"LAMBERT\";\n const diffuse = values.diffuse;\n if (diffuse && (blinn || phong || lambert)) {\n if (!isString(diffuse)) {\n materialAttributes.color.set(diffuse);\n }\n }\n const transparency = values.transparency;\n if (transparency !== null && transparency !== undefined) {\n materialAttributes.opacity = transparency;\n }\n const transparent = values.transparent;\n if (transparent !== null && transparent !== undefined) {\n materialAttributes.opacity = transparent;\n }\n }\n }\n const metallicPBR = material.pbrMetallicRoughness;\n if (metallicPBR) {\n const baseColorFactor = metallicPBR.baseColorFactor;\n if (baseColorFactor) {\n materialAttributes.color[0] = baseColorFactor[0];\n materialAttributes.color[1] = baseColorFactor[1];\n materialAttributes.color[2] = baseColorFactor[2];\n materialAttributes.opacity = baseColorFactor[3];\n }\n const metallicFactor = metallicPBR.metallicFactor;\n if (metallicFactor !== null && metallicFactor !== undefined) {\n materialAttributes.metallic = metallicFactor;\n }\n const roughnessFactor = metallicPBR.roughnessFactor;\n if (roughnessFactor !== null && roughnessFactor !== undefined) {\n materialAttributes.roughness = roughnessFactor;\n }\n }\n return materialAttributes;\n}\n\nfunction parseDefaultScene(ctx: ParsingContext) {\n const gltfData = ctx.gltfData;\n const scene = gltfData.scene || gltfData.scenes[0];\n if (!scene) {\n ctx.error(\"glTF has no default scene\");\n return;\n }\n parseScene(ctx, scene);\n}\n\nfunction parseScene(ctx: ParsingContext, scene: any) {\n const nodes = scene.nodes;\n if (!nodes) {\n return;\n }\n for (let i = 0, len = nodes.length; i < len; i++) {\n const node = nodes[i];\n parseNode(ctx, node, 0, null);\n }\n}\n\nconst deferredMeshIds: string[] = [];\n\nfunction parseNode(ctx: ParsingContext, node: any, depth: number, matrix: null | FloatArrayParam) {\n\n // Pre-order visit scene node\n\n let localMatrix;\n if (node.matrix) {\n localMatrix = node.matrix;\n if (matrix) {\n matrix = mulMat4(matrix, localMatrix, createMat4());\n } else {\n matrix = localMatrix;\n }\n }\n if (node.translation) {\n localMatrix = translationMat4v(node.translation);\n if (matrix) {\n matrix = mulMat4(matrix, localMatrix, createMat4());\n } else {\n matrix = localMatrix;\n }\n }\n if (node.rotation) {\n localMatrix = quatToMat4(node.rotation);\n if (matrix) {\n matrix = mulMat4(matrix, localMatrix, createMat4());\n } else {\n matrix = localMatrix;\n }\n }\n if (node.scale) {\n localMatrix = scalingMat4v(node.scale);\n if (matrix) {\n matrix = mulMat4(matrix, localMatrix, createMat4());\n } else {\n matrix = localMatrix;\n }\n }\n\n if (node.mesh) {\n\n const mesh = node.mesh;\n const numPrimitives = mesh.primitives.length;\n\n if (numPrimitives > 0) {\n for (let i = 0; i < numPrimitives; i++) {\n const primitive = mesh.primitives[i];\n if (!primitive._geometryId) {\n const geometryId = \"geometry-\" + ctx.nextId++;\n\n const geometryParams: SceneGeometryParams = {\n id: geometryId,\n primitive: 0,\n // @ts-ignore\n positions: undefined\n };\n switch (primitive.mode) {\n case 0: // POINTS\n geometryParams.primitive = PointsPrimitive;\n break;\n case 1: // LINES\n geometryParams.primitive = LinesPrimitive;\n break;\n case 2: // LINE_LOOP\n geometryParams.primitive = LinesPrimitive;\n break;\n case 3: // LINE_STRIP\n geometryParams.primitive = LinesPrimitive;\n break;\n case 4: // TRIANGLES\n geometryParams.primitive = TrianglesPrimitive;\n break;\n case 5: // TRIANGLE_STRIP\n geometryParams.primitive = TrianglesPrimitive;\n break;\n case 6: // TRIANGLE_FAN\n geometryParams.primitive = TrianglesPrimitive;\n break;\n default:\n geometryParams.primitive = TrianglesPrimitive;\n }\n const POSITION = primitive.attributes.POSITION;\n if (!POSITION) {\n continue;\n }\n geometryParams.positions = primitive.attributes.POSITION.value;\n if (primitive.attributes.COLOR_0) {\n geometryParams.colors = primitive.attributes.COLOR_0.value;\n }\n if (primitive.attributes.TEXCOORD_0) {\n geometryParams.uvs = primitive.attributes.TEXCOORD_0.value;\n }\n if (primitive.indices) {\n geometryParams.indices = primitive.indices.value;\n }\n // @ts-ignore\n ctx.sceneModel.createGeometry(geometryParams);\n primitive._geometryId = geometryId;\n }\n\n const meshId = `${ctx.nextId++}`;\n const meshParams: SceneMeshParams = {\n id: meshId,\n geometryId: primitive._geometryId,\n matrix: matrix ? matrix.slice() : identityMat4(),\n textureSetId: undefined\n };\n const material = primitive.material;\n if (material) {\n // meshParams.textureSetId = material._textureSetId;\n meshParams.color = material._attributes.color;\n meshParams.opacity = material._attributes.opacity;\n // meshParams.metallic = material._attributes.metallic;\n // meshParams.roughness = material._attributes.roughness;\n } else {\n meshParams.color = [1.0, 1.0, 1.0];\n meshParams.opacity = 1.0;\n }\n // @ts-ignore\n ctx.sceneModel.createMesh(meshParams);\n deferredMeshIds.push(meshId);\n }\n }\n }\n\n // Visit child scene nodes\n\n if (node.children) {\n const children = node.children;\n for (let i = 0, len = children.length; i < len; i++) {\n const childNode = children[i];\n parseNode(ctx, childNode, depth + 1, matrix);\n }\n }\n\n // Post-order visit scene node\n\n const nodeName = node.name;\n if (((nodeName !== undefined && nodeName !== null) || depth === 0) && deferredMeshIds.length > 0) {\n if (nodeName === undefined || nodeName === null) {\n ctx.log(`Warning: 'name' properties not found on glTF scene nodes - will randomly-generate object IDs in DTX`);\n }\n let objectId = nodeName; // Fall back on generated ID when `name` not found on glTF scene node(s)\n if (!!objectId && ctx.objectCreated[objectId]) {\n ctx.log(`Warning: Two or more glTF nodes found with same 'name' attribute: '${nodeName} - will randomly-generating an object ID in DTX`);\n }\n while (!objectId || ctx.objectCreated[objectId]) {\n objectId = \"object-\" + ctx.nextId++;\n }\n // @ts-ignore\n ctx.sceneModel.createObject({\n id: objectId,\n meshIds: deferredMeshIds\n });\n ctx.objectCreated[objectId] = true;\n deferredMeshIds.length = 0;\n\n }\n}\n\n\n", "/**\n * [![npm version](https://badge.fury.io/js/%40xeokit%2Fxkt.svg)](https://badge.fury.io/js/%40xeokit%2Fxkt)\n * [![](https://data.jsdelivr.com/v1/package/npm/@xeokit/xkt/badge)](https://www.jsdelivr.com/package/npm/@xeokit/xkt)\n *\n * \n *\n * # xeokit [XKT](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#xkt) Importer and Exporter\n *\n * ---\n *\n * ### *Import models as xeokit's native binary [XKT](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#xkt) format*\n *\n * ---\n *\n * The xeokit SDK allows us to import 3D models from [XKT](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#xkt), which is xeokit's\n * native runtime asset delivery format for model representations and semantics.\n *\n * The [XKT](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#xkt) format compresses large double-precision model geometry to\n * a compact payload that loads quickly over the Web into a xeokit viewer running in the browser.\n *\n * To import a [XKT](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#xkt) model into xeokit, use the {@link loadXKT} function, which will load the file into\n * a {@link @xeokit/scene!SceneModel | SceneModel}.\n *\n * Use the {@link @xeokit/metamodel!loadMetamodel | loadMetamodel} function to load legacy JSON metadata into a {@link @xeokit/data!DataModel | DataModel}.\n *\n *
\n *\n * [![](https://mermaid.ink/img/pako:eNqNU01rwzAM_StBpw1a2K6h9DB6W8tKs8EOvqixsro4dvDHIJT-99lx0iaMlubi6El6T0_GJyg1J8ihlGjtSuCPwZopprgwVDqhVbbexbjLZ0VJijahQ2YnprLwCZ5OvT-GepuC0hA6-uigp-eE7b2QfAg4WWd0G8NzZB_4V-iwo7_H3hjdkHFtQff0ErYjidGFPYhmmtleWR4aMQ241si_3z-3GNZkhx0sFk2MyZFZLhOExmD75quKTALsZXM9_eB0Qi8T_ZW48qq7hcg7qivwlx4Z4zFVm9juqE5sM3hhMJ8vGbwyKEYKt6tWV93e4pCZ9OTZlyWbXWzYqD3xelP7dtVIuzd66R_3_NOGGdRkahQ8PI9uNQzcgWpikIdfThV66RiEFYVS9E4XrSohd8bTDHwTdk39g4K8QmkDSlw4bTb9k4vH-Q8aQzAW?type=png)](https://mermaid.live/edit#pako:eNqNU01rwzAM_StBpw1a2K6h9DB6W8tKs8EOvqixsro4dvDHIJT-99lx0iaMlubi6El6T0_GJyg1J8ihlGjtSuCPwZopprgwVDqhVbbexbjLZ0VJijahQ2YnprLwCZ5OvT-GepuC0hA6-uigp-eE7b2QfAg4WWd0G8NzZB_4V-iwo7_H3hjdkHFtQff0ErYjidGFPYhmmtleWR4aMQ241si_3z-3GNZkhx0sFk2MyZFZLhOExmD75quKTALsZXM9_eB0Qi8T_ZW48qq7hcg7qivwlx4Z4zFVm9juqE5sM3hhMJ8vGbwyKEYKt6tWV93e4pCZ9OTZlyWbXWzYqD3xelP7dtVIuzd66R_3_NOGGdRkahQ8PI9uNQzcgWpikIdfThV66RiEFYVS9E4XrSohd8bTDHwTdk39g4K8QmkDSlw4bTb9k4vH-Q8aQzAW)\n *\n *
\n *\n * ## Installation\n *\n * ````bash\n * npm install @xeokit/xkt\n * ````\n *\n * ## Usage\n *\n * In the example below, we will create a {@link @xeokit/viewer!Viewer | Viewer} with\n * a {@link @xeokit/webglrenderer!WebGLRenderer | WebGLRenderer} and a {@link @xeokit/scene!Scene | Scene}, which holds model geometry and materials.\n *\n * On our Viewer, we will create a single {@link @xeokit/viewer!View | View} to render it to a canvas element on the page. We will\n * also attach a {@link @xeokit/cameracontrol!CameraControl | CameraControl} to our View, allowing us to control its camera with mouse and touch input.\n *\n * Within the Scene, we will create a {@link @xeokit/scene!SceneModel | SceneModel} to hold a model. We will then use\n * {@link @xeokit/xkt!loadXKT | loadXKT} to load\n * a [XKT](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#xkt) file into our SceneModel.\n *\n * The {@link @xeokit/core!SDKError | SDKError} class will be used to handle any errors that may occur during this process.\n *\n * * [Run this example]()\n *\n * ````javascript\n * import {SDKError} from \"@xeokit/core\";\n * import {Scene} from \"@xeokit/scene\";\n * import {WebGLRenderer} from \"@xeokit/webglrenderer\";\n * import {Viewer} from \"@xeokit/viewer\";\n * import {CameraControl} from \"@xeokit/cameracontrol\";\n * import {loadXKT} from \"@xeokit/xkt\";\n *\n * const scene = new Scene();\n *\n * const renderer = new WebGLRenderer({});\n *\n * const viewer = new Viewer({\n * id: \"myViewer\",\n * scene,\n * renderer\n * });\n *\n * const view = viewer.createView({\n * id: \"myView\",\n * elementId: \"myCanvas\" // << Ensure that this HTMLElement exists in the page\n * });\n *\n * if (view instanceof SDKError) {\n * console.error(`Error creating View: ${view.message}`);\n *\n * } else {\n *\n * view.camera.eye = [1841982.93, 10.03, -5173286.74];\n * view.camera.look = [1842009.49, 9.68, -5173295.85];\n * view.camera.up = [0.0, 1.0, 0.0];\n *\n * new CameraControl(view, {});\n *\n * const sceneModel = scene.createModel({\n * id: \"myModel\"\n * });\n *\n * if (sceneModel instanceof SDKError) {\n * console.error(`Error creating SceneModel: ${sceneModel.message}`);\n *\n * } else {\n *\n * fetch(\"model.xkt\").then(response => {\n * response.arrayBuffer().then(fileData => {\n *\n * loadXKT({\n * fileData,\n * sceneModel\n * }).then(() => {\n *\n * sceneModel.build();\n *\n * }).catch(sdkError => {\n * sceneModel.destroy();\n * console.error(`Error loading XKT: ${sdkError.message}`);\n * });\n *\n * }).catch(message => {\n * console.error(`Error creating ArrayBuffer: ${message}`);\n * });\n *\n * }).catch(message => {\n * console.error(`Error fetching model: ${message}`);\n * });\n * }\n * }\n * ````\n *\n * @module @xeokit/xkt\n */\nexport * from \"./loadXKT\";\nexport * from \"./loadXKTManifest\";\n", "import type {XKTDataDeflated} from \"./XKTDataDeflated\";\nimport type {XKTData} from \"./XKTData\";\nimport * as pako from \"pako\";\n\n/**\n * @private\n */\nexport function inflateXKT(xktDataDeflated: XKTDataDeflated): XKTData {\n\n function inflate(array: any, options?: any) : Buffer{\n // @ts-ignore\n return (array.length === 0) ? [] : pako.inflate(array, options).buffer;\n }\n\n\n return {\n metadata: JSON.parse(pako.inflate(xktDataDeflated.metadata, {to: 'string'})),\n textureData: new Uint8Array(inflate(xktDataDeflated.textureData)), // <<----------------------------- ??? ZIPPing to blame?\n eachTextureDataPortion: new Uint32Array(inflate(xktDataDeflated.eachTextureDataPortion)),\n eachTextureAttributes: new Uint16Array(inflate(xktDataDeflated.eachTextureAttributes)),\n positions: new Uint16Array(inflate(xktDataDeflated.positions)),\n normals: new Int8Array(inflate(xktDataDeflated.normals)),\n colors: new Uint8Array(inflate(xktDataDeflated.colors)),\n uvs: new Float32Array(inflate(xktDataDeflated.uvs)),\n indices: new Uint32Array(inflate(xktDataDeflated.indices)),\n edgeIndices: new Uint32Array(inflate(xktDataDeflated.edgeIndices)),\n eachTextureSetTextures: new Int32Array(inflate(xktDataDeflated.eachTextureSetTextures)),\n matrices: new Float32Array(inflate(xktDataDeflated.matrices)),\n reusedGeometriesDecodeMatrix: new Float32Array(inflate(xktDataDeflated.reusedGeometriesDecodeMatrix)),\n eachGeometryPrimitiveType: new Uint8Array(inflate(xktDataDeflated.eachGeometryPrimitiveType)),\n eachGeometryPositionsPortion: new Uint32Array(inflate(xktDataDeflated.eachGeometryPositionsPortion)),\n eachGeometryNormalsPortion: new Uint32Array(inflate(xktDataDeflated.eachGeometryNormalsPortion)),\n eachGeometryColorsPortion: new Uint32Array(inflate(xktDataDeflated.eachGeometryColorsPortion)),\n eachGeometryUVsPortion: new Uint32Array(inflate(xktDataDeflated.eachGeometryUVsPortion)),\n eachGeometryIndicesPortion: new Uint32Array(inflate(xktDataDeflated.eachGeometryIndicesPortion)),\n eachGeometryEdgeIndicesPortion: new Uint32Array(inflate(xktDataDeflated.eachGeometryEdgeIndicesPortion)),\n eachMeshGeometriesPortion: new Uint32Array(inflate(xktDataDeflated.eachMeshGeometriesPortion)),\n eachMeshMatricesPortion: new Uint32Array(inflate(xktDataDeflated.eachMeshMatricesPortion)),\n eachMeshTextureSet: new Int32Array(inflate(xktDataDeflated.eachMeshTextureSet)), // Can be -1\n eachMeshMaterialAttributes: new Uint8Array(inflate(xktDataDeflated.eachMeshMaterialAttributes)),\n eachEntityId: JSON.parse(pako.inflate(xktDataDeflated.eachEntityId, {to: 'string'})),\n eachEntityMeshesPortion: new Uint32Array(inflate(xktDataDeflated.eachEntityMeshesPortion)),\n eachTileAABB: new Float64Array(inflate(xktDataDeflated.eachTileAABB)),\n eachTileEntitiesPortion: new Uint32Array(inflate(xktDataDeflated.eachTileEntitiesPortion)),\n };\n}\n", "import type {XKTDataDeflated} from \"./XKTDataDeflated\";\n\n/**\n * @private\n */\nexport function unpackXKT(arrayBuffer: ArrayBuffer): XKTDataDeflated {\n\n const dataView = new DataView(arrayBuffer);\n const dataArray = new Uint8Array(arrayBuffer);\n const xktVersion = dataView.getUint32(0, true);\n const numElements = dataView.getUint32(4, true);\n\n console.log(`Parsing XKT v${xktVersion}`)\n const elements = [];\n let byteOffset = (numElements + 2) * 4;\n for (let i = 0; i < numElements; i++) {\n const elementSize = dataView.getUint32((i + 2) * 4, true);\n elements.push(dataArray.subarray(byteOffset, byteOffset + elementSize));\n byteOffset += elementSize;\n }\n\n let i = 0;\n\n return {\n metadata: elements[i++],\n textureData: elements[i++],\n eachTextureDataPortion: elements[i++],\n eachTextureAttributes: elements[i++],\n positions: elements[i++],\n normals: elements[i++],\n colors: elements[i++],\n uvs: elements[i++],\n indices: elements[i++],\n edgeIndices: elements[i++],\n eachTextureSetTextures: elements[i++],\n matrices: elements[i++],\n reusedGeometriesDecodeMatrix: elements[i++],\n eachGeometryPrimitiveType: elements[i++],\n eachGeometryPositionsPortion: elements[i++],\n eachGeometryNormalsPortion: elements[i++],\n eachGeometryColorsPortion: elements[i++],\n eachGeometryUVsPortion: elements[i++],\n eachGeometryIndicesPortion: elements[i++],\n eachGeometryEdgeIndicesPortion: elements[i++],\n eachMeshGeometriesPortion: elements[i++],\n eachMeshMatricesPortion: elements[i++],\n eachMeshTextureSet: elements[i++],\n eachMeshMaterialAttributes: elements[i++],\n eachEntityId: elements[i++],\n eachEntityMeshesPortion: elements[i++],\n eachTileAABB: elements[i++],\n eachTileEntitiesPortion: elements[i++],\n };\n}\n", "import {\n LinesPrimitive,\n PointsPrimitive,\n SolidPrimitive,\n SurfacePrimitive,\n JPEGMediaType,\n PNGMediaType\n} from \"@xeokit/constants\";\nimport type {SceneModel} from \"@xeokit/scene\";\nimport type {XKTData} from \"./XKTData\";\nimport type {FloatArrayParam} from \"@xeokit/math\";\nimport {createVec3, createVec4} from \"@xeokit/matrix\";\nimport {createAABB3, getAABB3Center} from \"@xeokit/boundaries\";\n\nconst tempVec4a = createVec4();\nconst tempVec4b = createVec4();\n\nconst NUM_TEXTURE_ATTRIBUTES = 9;\n\nfunction lineStripToLines(positions, indices) {\n const linesIndices = [];\n if (indices.length > 1) {\n for (let i = 0, len = indices.length - 1; i < len; i++) {\n linesIndices.push(indices[i]);\n linesIndices.push(indices[i + 1]);\n }\n } else if (positions.length > 1) {\n for (let i = 0, len = (positions.length / 3) - 1; i < len; i++) {\n linesIndices.push(i);\n linesIndices.push(i + 1);\n }\n }\n return linesIndices;\n}\n\nconst decompressColor = (function () {\n const floatColor = new Float32Array(3);\n return function (intColor: FloatArrayParam) {\n floatColor[0] = intColor[0] / 255;\n floatColor[1] = intColor[1] / 255;\n floatColor[2] = intColor[2] / 255;\n return floatColor;\n };\n})();\n\n/**\n * @private\n */\nexport function xktToModel(params: {\n xktData: XKTData,\n sceneModel: SceneModel\n}): void {\n\n let nextId = 0;\n\n const getNextId = () => {\n return `${nextId++}`;\n };\n\n const xktData = params.xktData;\n const sceneModel = params.sceneModel;\n\n const modelPartId = getNextId();\n\n // const metadata = xktData.metadata;\n const textureData = xktData.textureData;\n const eachTextureDataPortion = xktData.eachTextureDataPortion;\n const eachTextureAttributes = xktData.eachTextureAttributes;\n const positions = xktData.positions;\n const normals = xktData.normals;\n const colors = xktData.colors;\n const uvs = xktData.uvs;\n const indices = xktData.indices;\n const edgeIndices = xktData.edgeIndices;\n const eachTextureSetTextures = xktData.eachTextureSetTextures;\n const matrices = xktData.matrices;\n const reusedGeometriesDecodeMatrix = xktData.reusedGeometriesDecodeMatrix;\n const eachGeometryPrimitiveType = xktData.eachGeometryPrimitiveType;\n const eachGeometryPositionsPortion = xktData.eachGeometryPositionsPortion;\n const eachGeometryNormalsPortion = xktData.eachGeometryNormalsPortion;\n const eachGeometryColorsPortion = xktData.eachGeometryColorsPortion;\n const eachGeometryUVsPortion = xktData.eachGeometryUVsPortion;\n const eachGeometryIndicesPortion = xktData.eachGeometryIndicesPortion;\n const eachGeometryEdgeIndicesPortion = xktData.eachGeometryEdgeIndicesPortion;\n const eachMeshGeometriesPortion = xktData.eachMeshGeometriesPortion;\n const eachMeshMatricesPortion = xktData.eachMeshMatricesPortion;\n const eachMeshTextureSet = xktData.eachMeshTextureSet;\n const eachMeshMaterialAttributes = xktData.eachMeshMaterialAttributes;\n const eachEntityId = xktData.eachEntityId;\n const eachEntityMeshesPortion = xktData.eachEntityMeshesPortion;\n const eachTileAABB = xktData.eachTileAABB;\n const eachTileEntitiesPortion = xktData.eachTileEntitiesPortion;\n\n const numTextures = eachTextureDataPortion.length;\n const numTextureSets = eachTextureSetTextures.length / 5;\n const numGeometries = eachGeometryPositionsPortion.length;\n const numMeshes = eachMeshGeometriesPortion.length;\n const numEntities = eachEntityMeshesPortion.length;\n const numTiles = eachTileEntitiesPortion.length;\n\n // if (metaModel) {\n // metaModel.loadData(metadata, {\n // includeTypes: options.includeTypes,\n // excludeTypes: options.excludeTypes,\n // globalizeObjectIds: options.globalizeObjectIds\n // }); // Can be empty\n // }\n\n // Create textures\n\n for (let textureIndex = 0; textureIndex < numTextures; textureIndex++) {\n const atLastTexture = (textureIndex === (numTextures - 1));\n const textureDataPortionStart = eachTextureDataPortion[textureIndex];\n const textureDataPortionEnd = atLastTexture ? textureData.length : (eachTextureDataPortion[textureIndex + 1]);\n\n const textureDataPortionSize = textureDataPortionEnd - textureDataPortionStart;\n const textureDataPortionExists = (textureDataPortionSize > 0);\n\n const textureAttrBaseIdx = (textureIndex * NUM_TEXTURE_ATTRIBUTES);\n\n const compressed = (eachTextureAttributes[textureAttrBaseIdx + 0] === 1);\n const mediaType = eachTextureAttributes[textureAttrBaseIdx + 1];\n const width = eachTextureAttributes[textureAttrBaseIdx + 2];\n const height = eachTextureAttributes[textureAttrBaseIdx + 3];\n const minFilter = eachTextureAttributes[textureAttrBaseIdx + 4];\n const magFilter = eachTextureAttributes[textureAttrBaseIdx + 5]; // LinearFilter | NearestFilter\n const wrapS = eachTextureAttributes[textureAttrBaseIdx + 6]; // ClampToEdgeWrapping | MirroredRepeatWrapping | RepeatWrapping\n const wrapT = eachTextureAttributes[textureAttrBaseIdx + 7]; // ClampToEdgeWrapping | MirroredRepeatWrapping | RepeatWrapping\n const wrapR = eachTextureAttributes[textureAttrBaseIdx + 8]; // ClampToEdgeWrapping | MirroredRepeatWrapping | RepeatWrapping\n\n if (textureDataPortionExists) {\n\n const imageDataSubarray = new Uint8Array(textureData.subarray(textureDataPortionStart, textureDataPortionEnd));\n const arrayBuffer = imageDataSubarray.buffer;\n const textureId = `${modelPartId}-texture-${textureIndex}`;\n\n if (compressed) {\n\n sceneModel.createTexture({\n id: textureId,\n buffers: [arrayBuffer],\n minFilter,\n magFilter,\n wrapS,\n wrapT,\n wrapR\n });\n\n } else {\n\n const mimeType = mediaType === JPEGMediaType ? \"image/jpeg\" : (mediaType === PNGMediaType ? \"image/png\" : \"image/gif\");\n const blob = new Blob([arrayBuffer], {type: mimeType});\n const urlCreator = window.URL || window.webkitURL;\n const imageUrl = urlCreator.createObjectURL(blob);\n const img = document.createElement('img');\n img.src = imageUrl;\n\n sceneModel.createTexture({\n id: textureId,\n image: img,\n //mediaType,\n minFilter,\n magFilter,\n wrapS,\n wrapT,\n wrapR\n });\n }\n }\n }\n\n // Create texture sets\n\n for (let textureSetIndex = 0; textureSetIndex < numTextureSets; textureSetIndex++) {\n const eachTextureSetTexturesIndex = textureSetIndex * 5;\n const textureSetId = `${modelPartId}-textureSet-${textureSetIndex}`;\n const colorTextureIndex = eachTextureSetTextures[eachTextureSetTexturesIndex + 0];\n const metallicRoughnessTextureIndex = eachTextureSetTextures[eachTextureSetTexturesIndex + 1];\n const normalsTextureIndex = eachTextureSetTextures[eachTextureSetTexturesIndex + 2];\n const emissiveTextureIndex = eachTextureSetTextures[eachTextureSetTexturesIndex + 3];\n const occlusionTextureIndex = eachTextureSetTextures[eachTextureSetTexturesIndex + 4];\n sceneModel.createTextureSet({\n id: textureSetId,\n colorTextureId: colorTextureIndex >= 0 ? `${modelPartId}-texture-${colorTextureIndex}` : null,\n normalsTextureId: normalsTextureIndex >= 0 ? `${modelPartId}-texture-${normalsTextureIndex}` : null,\n metallicRoughnessTextureId: metallicRoughnessTextureIndex >= 0 ? `${modelPartId}-texture-${metallicRoughnessTextureIndex}` : null,\n emissiveTextureId: emissiveTextureIndex >= 0 ? `${modelPartId}-texture-${emissiveTextureIndex}` : null,\n occlusionTextureId: occlusionTextureIndex >= 0 ? `${modelPartId}-texture-${occlusionTextureIndex}` : null\n });\n }\n\n // Count instances of each geometry\n\n const geometryReuseCounts = new Uint32Array(numGeometries);\n\n for (let meshIndex = 0; meshIndex < numMeshes; meshIndex++) {\n const geometryIndex = eachMeshGeometriesPortion[meshIndex];\n if (geometryReuseCounts[geometryIndex] !== undefined) {\n geometryReuseCounts[geometryIndex]++;\n } else {\n geometryReuseCounts[geometryIndex] = 1;\n }\n }\n\n // Iterate over tiles\n\n const tileCenter = createVec3();\n const rtcAABB = createAABB3();\n\n const geometryArraysCache = {};\n\n for (let tileIndex = 0; tileIndex < numTiles; tileIndex++) {\n\n const lastTileIndex = (numTiles - 1);\n\n const atLastTile = (tileIndex === lastTileIndex);\n\n const firstTileEntityIndex = eachTileEntitiesPortion [tileIndex];\n const lastTileEntityIndex = atLastTile ? (numEntities - 1) : (eachTileEntitiesPortion[tileIndex + 1] - 1);\n\n const tileAABBIndex = tileIndex * 6;\n const tileAABB = eachTileAABB.subarray(tileAABBIndex, tileAABBIndex + 6);\n\n getAABB3Center(tileAABB, tileCenter);\n\n rtcAABB[0] = tileAABB[0] - tileCenter[0];\n rtcAABB[1] = tileAABB[1] - tileCenter[1];\n rtcAABB[2] = tileAABB[2] - tileCenter[2];\n rtcAABB[3] = tileAABB[3] - tileCenter[0];\n rtcAABB[4] = tileAABB[4] - tileCenter[1];\n rtcAABB[5] = tileAABB[5] - tileCenter[2];\n\n const geometryCreatedInTile = {};\n\n // Iterate over each tile's entities\n\n for (let tileEntityIndex = firstTileEntityIndex; tileEntityIndex <= lastTileEntityIndex; tileEntityIndex++) {\n\n const xktEntityId = eachEntityId[tileEntityIndex];\n\n const entityId = xktEntityId;\n\n const finalTileEntityIndex = (numEntities - 1);\n const atLastTileEntity = (tileEntityIndex === finalTileEntityIndex);\n const firstMeshIndex = eachEntityMeshesPortion [tileEntityIndex];\n const lastMeshIndex = atLastTileEntity ? (eachMeshGeometriesPortion.length - 1) : (eachEntityMeshesPortion[tileEntityIndex + 1] - 1);\n\n const meshIds = [];\n\n // Iterate each entity's meshes\n\n for (let meshIndex = firstMeshIndex; meshIndex <= lastMeshIndex; meshIndex++) {\n\n const geometryIndex = eachMeshGeometriesPortion[meshIndex];\n const geometryReuseCount = geometryReuseCounts[geometryIndex];\n const isReusedGeometry = (geometryReuseCount > 1);\n\n const atLastGeometry = (geometryIndex === (numGeometries - 1));\n\n const textureSetIndex = eachMeshTextureSet[meshIndex];\n\n const textureSetId = (textureSetIndex >= 0) ? `${modelPartId}-textureSet-${textureSetIndex}` : null;\n\n const meshColor = decompressColor(eachMeshMaterialAttributes.subarray((meshIndex * 6), (meshIndex * 6) + 3));\n const meshOpacity = eachMeshMaterialAttributes[(meshIndex * 6) + 3] / 255.0;\n const meshMetallic = eachMeshMaterialAttributes[(meshIndex * 6) + 4] / 255.0;\n const meshRoughness = eachMeshMaterialAttributes[(meshIndex * 6) + 5] / 255.0;\n\n const meshId = getNextId();\n\n if (isReusedGeometry) {\n\n // Create mesh for multi-use geometry - create (or reuse) geometry, create mesh using that geometry\n\n const meshMatrixIndex = eachMeshMatricesPortion[meshIndex];\n const meshMatrix = matrices.slice(meshMatrixIndex, meshMatrixIndex + 16);\n\n const geometryId = `${modelPartId}-geometry.${tileIndex}.${geometryIndex}`; // These IDs are local to the SceneModel\n\n let geometryArrays = geometryArraysCache[geometryId];\n\n if (!geometryArrays) {\n geometryArrays = {};\n const primitiveType = eachGeometryPrimitiveType[geometryIndex];\n let geometryValid = false;\n switch (primitiveType) {\n case 0:\n geometryArrays.primitiveName = SolidPrimitive;\n geometryArrays.geometryPositions = positions.subarray(eachGeometryPositionsPortion [geometryIndex], atLastGeometry ? positions.length : eachGeometryPositionsPortion [geometryIndex + 1]);\n geometryArrays.geometryNormals = normals.subarray(eachGeometryNormalsPortion [geometryIndex], atLastGeometry ? normals.length : eachGeometryNormalsPortion [geometryIndex + 1]);\n geometryArrays.geometryUVs = uvs.subarray(eachGeometryUVsPortion [geometryIndex], atLastGeometry ? uvs.length : eachGeometryUVsPortion [geometryIndex + 1]);\n geometryArrays.geometryIndices = indices.subarray(eachGeometryIndicesPortion [geometryIndex], atLastGeometry ? indices.length : eachGeometryIndicesPortion [geometryIndex + 1]);\n geometryArrays.geometryEdgeIndices = edgeIndices.subarray(eachGeometryEdgeIndicesPortion [geometryIndex], atLastGeometry ? edgeIndices.length : eachGeometryEdgeIndicesPortion [geometryIndex + 1]);\n geometryValid = (geometryArrays.geometryPositions.length > 0 && geometryArrays.geometryIndices.length > 0);\n break;\n case 1:\n geometryArrays.primitiveName = SurfacePrimitive;\n geometryArrays.geometryPositions = positions.subarray(eachGeometryPositionsPortion [geometryIndex], atLastGeometry ? positions.length : eachGeometryPositionsPortion [geometryIndex + 1]);\n geometryArrays.geometryNormals = normals.subarray(eachGeometryNormalsPortion [geometryIndex], atLastGeometry ? normals.length : eachGeometryNormalsPortion [geometryIndex + 1]);\n geometryArrays.geometryUVs = uvs.subarray(eachGeometryUVsPortion [geometryIndex], atLastGeometry ? uvs.length : eachGeometryUVsPortion [geometryIndex + 1]);\n geometryArrays.geometryIndices = indices.subarray(eachGeometryIndicesPortion [geometryIndex], atLastGeometry ? indices.length : eachGeometryIndicesPortion [geometryIndex + 1]);\n geometryArrays.geometryEdgeIndices = edgeIndices.subarray(eachGeometryEdgeIndicesPortion [geometryIndex], atLastGeometry ? edgeIndices.length : eachGeometryEdgeIndicesPortion [geometryIndex + 1]);\n geometryValid = (geometryArrays.geometryPositions.length > 0 && geometryArrays.geometryIndices.length > 0);\n break;\n case 2:\n geometryArrays.primitiveName = PointsPrimitive;\n geometryArrays.geometryPositions = positions.subarray(eachGeometryPositionsPortion [geometryIndex], atLastGeometry ? positions.length : eachGeometryPositionsPortion [geometryIndex + 1]);\n geometryArrays.geometryColors = colors.subarray(eachGeometryColorsPortion [geometryIndex], atLastGeometry ? colors.length : eachGeometryColorsPortion [geometryIndex + 1]);\n geometryValid = (geometryArrays.geometryPositions.length > 0);\n break;\n case 3:\n geometryArrays.primitiveName = LinesPrimitive;\n geometryArrays.geometryPositions = positions.subarray(eachGeometryPositionsPortion [geometryIndex], atLastGeometry ? positions.length : eachGeometryPositionsPortion [geometryIndex + 1]);\n geometryArrays.geometryIndices = indices.subarray(eachGeometryIndicesPortion [geometryIndex], atLastGeometry ? indices.length : eachGeometryIndicesPortion [geometryIndex + 1]);\n geometryValid = (geometryArrays.geometryPositions.length > 0 && geometryArrays.geometryIndices.length > 0);\n break;\n case 4:\n geometryArrays.primitiveName = LinesPrimitive;\n geometryArrays.geometryPositions = positions.subarray(eachGeometryPositionsPortion [geometryIndex], atLastGeometry ? positions.length : eachGeometryPositionsPortion [geometryIndex + 1]);\n geometryArrays.geometryIndices = lineStripToLines(\n geometryArrays.geometryPositions,\n indices.subarray(eachGeometryIndicesPortion [geometryIndex],\n atLastGeometry\n ? indices.length\n : eachGeometryIndicesPortion [geometryIndex + 1]));\n geometryValid = (geometryArrays.geometryPositions.length > 0 && geometryArrays.geometryIndices.length > 0);\n break;\n default:\n continue;\n }\n\n if (!geometryValid) {\n geometryArrays = null;\n }\n }\n\n if (geometryArrays) {\n\n if (!geometryCreatedInTile[geometryId]) {\n\n sceneModel.createGeometryCompressed({\n id: geometryId,\n primitive: geometryArrays.primitiveName,\n positionsCompressed: geometryArrays.geometryPositions,\n uvsCompressed: geometryArrays.geometryUVs,\n colorsCompressed: geometryArrays.geometryColors,\n indices: geometryArrays.geometryIndices,\n edgeIndices: geometryArrays.geometryEdgeIndices,\n\n aabb: rtcAABB\n });\n\n geometryCreatedInTile[geometryId] = true;\n }\n\n sceneModel.createMesh({\n id: meshId,\n geometryId,\n textureSetId,\n matrix: meshMatrix,\n color: meshColor,\n opacity: meshOpacity,\n\n ///////////////////////////////////\n // Adjust matrix?\n /////////////////////////////////////\n // origin: tileCenter\n });\n\n meshIds.push(meshId);\n }\n\n } else { // Do not reuse geometry\n\n const primitiveType = eachGeometryPrimitiveType[geometryIndex];\n\n let primitiveName;\n let geometryPositions;\n let geometryNormals;\n let geometryUVs;\n let geometryColors;\n let geometryIndices;\n let geometryEdgeIndices;\n let geometryValid = false;\n\n switch (primitiveType) {\n case 0:\n primitiveName = SolidPrimitive;\n geometryPositions = positions.subarray(eachGeometryPositionsPortion [geometryIndex], atLastGeometry ? positions.length : eachGeometryPositionsPortion [geometryIndex + 1]);\n geometryNormals = normals.subarray(eachGeometryNormalsPortion [geometryIndex], atLastGeometry ? normals.length : eachGeometryNormalsPortion [geometryIndex + 1]);\n geometryUVs = uvs.subarray(eachGeometryUVsPortion [geometryIndex], atLastGeometry ? uvs.length : eachGeometryUVsPortion [geometryIndex + 1]);\n geometryIndices = indices.subarray(eachGeometryIndicesPortion [geometryIndex], atLastGeometry ? indices.length : eachGeometryIndicesPortion [geometryIndex + 1]);\n geometryEdgeIndices = edgeIndices.subarray(eachGeometryEdgeIndicesPortion [geometryIndex], atLastGeometry ? edgeIndices.length : eachGeometryEdgeIndicesPortion [geometryIndex + 1]);\n geometryValid = (geometryPositions.length > 0 && geometryIndices.length > 0);\n break;\n case 1:\n primitiveName = SurfacePrimitive;\n geometryPositions = positions.subarray(eachGeometryPositionsPortion [geometryIndex], atLastGeometry ? positions.length : eachGeometryPositionsPortion [geometryIndex + 1]);\n geometryNormals = normals.subarray(eachGeometryNormalsPortion [geometryIndex], atLastGeometry ? normals.length : eachGeometryNormalsPortion [geometryIndex + 1]);\n geometryUVs = uvs.subarray(eachGeometryUVsPortion [geometryIndex], atLastGeometry ? uvs.length : eachGeometryUVsPortion [geometryIndex + 1]);\n geometryIndices = indices.subarray(eachGeometryIndicesPortion [geometryIndex], atLastGeometry ? indices.length : eachGeometryIndicesPortion [geometryIndex + 1]);\n geometryEdgeIndices = edgeIndices.subarray(eachGeometryEdgeIndicesPortion [geometryIndex], atLastGeometry ? edgeIndices.length : eachGeometryEdgeIndicesPortion [geometryIndex + 1]);\n geometryValid = (geometryPositions.length > 0 && geometryIndices.length > 0);\n break;\n case 2:\n primitiveName = PointsPrimitive;\n geometryPositions = positions.subarray(eachGeometryPositionsPortion [geometryIndex], atLastGeometry ? positions.length : eachGeometryPositionsPortion [geometryIndex + 1]);\n geometryColors = colors.subarray(eachGeometryColorsPortion [geometryIndex], atLastGeometry ? colors.length : eachGeometryColorsPortion [geometryIndex + 1]);\n geometryValid = (geometryPositions.length > 0);\n break;\n case 3:\n primitiveName = LinesPrimitive;\n geometryPositions = positions.subarray(eachGeometryPositionsPortion [geometryIndex], atLastGeometry ? positions.length : eachGeometryPositionsPortion [geometryIndex + 1]);\n geometryIndices = indices.subarray(eachGeometryIndicesPortion [geometryIndex], atLastGeometry ? indices.length : eachGeometryIndicesPortion [geometryIndex + 1]);\n geometryValid = (geometryPositions.length > 0 && geometryIndices.length > 0);\n break;\n case 4:\n primitiveName = LinesPrimitive;\n geometryPositions = positions.subarray(eachGeometryPositionsPortion [geometryIndex], atLastGeometry ? positions.length : eachGeometryPositionsPortion [geometryIndex + 1]);\n geometryIndices = lineStripToLines(\n geometryPositions,\n indices.subarray(eachGeometryIndicesPortion [geometryIndex], atLastGeometry\n ? indices.length\n : eachGeometryIndicesPortion [geometryIndex + 1]));\n geometryValid = (geometryPositions.length > 0 && geometryIndices.length > 0);\n break;\n default:\n continue;\n }\n\n if (geometryValid) {\n\n const geometryId = getNextId();\n\n sceneModel.createGeometryCompressed({\n id: geometryId,\n primitive: primitiveName,\n positionsCompressed: geometryPositions,\n uvsCompressed: geometryUVs && geometryUVs.length > 0 ? geometryUVs : null,\n colorsCompressed: geometryColors,\n indices: geometryIndices,\n edgeIndices: geometryEdgeIndices,\n aabb: rtcAABB\n });\n\n sceneModel.createMesh({\n id: meshId,\n geometryId,\n textureSetId,\n // origin: tileCenter,\n color: meshColor,\n metallic: meshMetallic,\n roughness: meshRoughness,\n opacity: meshOpacity\n });\n meshIds.push(meshId);\n }\n }\n }\n\n if (meshIds.length > 0) {\n\n sceneModel.createObject({\n id: entityId,\n meshIds: meshIds\n });\n }\n }\n }\n}\n\n\n\n", "import {inflateXKT} from \"./inflateXKT\";\nimport {unpackXKT} from \"./unpackXKT\";\nimport {SceneModel} from \"@xeokit/scene\";\nimport {SDKError} from \"@xeokit/core\";\nimport {xktToModel} from \"./xktToModel\";\n\nexport function parseXKTv10(params: {\n fileData: ArrayBuffer;\n sceneModel: SceneModel;\n}): Promise {\n const {fileData, sceneModel} = params;\n if (sceneModel.destroyed) {\n return Promise.reject(new SDKError(\"SceneModel already destroyed\"));\n }\n if (sceneModel.built) {\n return Promise.reject(new SDKError(\"SceneModel already built\"));\n }\n xktToModel({\n xktData: inflateXKT(unpackXKT(fileData)),\n sceneModel\n });\n return Promise.resolve();\n}\n", "import {SDKError} from \"@xeokit/core\";\nimport type {SceneModel} from \"@xeokit/scene\";\nimport {parseXKTv10} from \"./versions/v10/parseXKT\"\n\nconst parsers = {\n 10: parseXKTv10\n};\n\n/**\n * Imports [XKT](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#xkt) file data from an ArrayBuffer\n * into a {@link @xeokit/scene!SceneModel | SceneModel}.\n *\n * * Expects {@link @xeokit/scene!SceneModel.built | SceneModel.built} and\n * {@link @xeokit/scene!SceneModel.destroyed | SceneModel.destroyed} to be ````false````\n *\n * See {@link \"@xeokit/xkt\" | @xeokit/xkt} for usage.\n *\n * See {@link @xeokit/xkt!XKTData} for insights into the structure of a [XKT](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#xkt) file.\n *\n * @param params - Loading parameters.\n * @param params.fileData - [XKT](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#xkt) file data\n * @param params.sceneModel - SceneModel to load into.\n * @returns {Promise} Resolves when [XKT](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#xkt) has been loaded.\n * @throws *{@link @xeokit/core!SDKError | SDKError}*\n * * If the SceneModel has already been destroyed.\n * * If the SceneModel has already been built.\n */\nexport function loadXKT(params: {\n fileData: ArrayBuffer;\n sceneModel: SceneModel;\n}): Promise {\n const {fileData, sceneModel} = params;\n if (sceneModel.destroyed) {\n return Promise.reject(new SDKError(\"SceneModel already destroyed\"));\n }\n if (sceneModel.built) {\n return Promise.reject(new SDKError(\"SceneModel already built\"));\n }\n return parseXKTv10(params);\n}\n", "import {SDKError} from \"@xeokit/core\";\nimport type {DataModel} from \"@xeokit/data\";\nimport {IfcRelAggregates, ifcTypeCodes} from \"@xeokit/ifctypes\";\n\n\n/**\n * Imports [XKT](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#xkt) metadata\n * into a {@link @xeokit/scene!DataModel | DataModel}.\n *\n * * Expects {@link @xeokit/scene!DataModel.built | DataModel.built} and\n * {@link @xeokit/scene!DataModel.destroyed | DataModel.destroyed} to be ````false````\n *\n * See {@link \"@xeokit/xkt\" | @xeokit/xkt} for usage.\n *\n * @param params - Loading parameters.\n * @param params.fileData - [XKT](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#xkt) file data\n * @param params.dataModel - DataModel to load into.\n * @returns {Promise} Resolves when metadata has been loaded.\n * @throws *{@link @xeokit/core!SDKError | SDKError}*\n * * If the DataModel has already been destroyed.\n * * If the DataModel has already been built.\n */\nexport function loadMetamodel(params: {\n fileData: any;\n dataModel: DataModel;\n}): Promise {\n if (!params) {\n return Promise.reject(new SDKError(\"[loadXKTMetaData] Argument expected: params\"));\n }\n const {fileData, dataModel} = params;\n if (!fileData) {\n return Promise.reject(new SDKError(\"[loadXKTMetaData] Parameter expected: params.fileData\"));\n }\n if (!dataModel) {\n return Promise.reject(new SDKError(\"[loadXKTMetaData] Parameter expected: params.dataModel\"));\n }\n if (dataModel.destroyed) {\n return Promise.reject(new SDKError(\"DataModel already destroyed\"));\n }\n if (dataModel.built) {\n return Promise.reject(new SDKError(\"DataModel already built\"));\n }\n //////////////////////////////////\n // TODO: Property set decompression\n //////////////////////////////////\n if (fileData.propertySets) {\n for (let i = 0, len = fileData.propertySets.length; i < len; i++) {\n const propertySetData = fileData.propertySets[i];\n if (!propertySetData.properties) { // HACK: https://github.com/Creoox/creoox-ifc2gltfcxconverter/issues/8\n propertySetData.properties = [];\n }\n let propertySet = dataModel.propertySets[propertySetData.id];\n if (!propertySet) {\n dataModel.createPropertySet({\n id: propertySetData.id,\n type: propertySetData.type,\n name: propertySetData.name,\n\n /////////////////////////////////////////\n // FIXME: Properties not translated right here\n /////////////////////////////////////////\n\n properties: propertySetData.properties\n });\n }\n }\n }\n if (fileData.metaObjects) {\n for (let i = 0, len = fileData.metaObjects.length; i < len; i++) {\n const metaObjectData = fileData.metaObjects[i];\n const id = metaObjectData.id;\n\n let dataObject = dataModel.objects[id];\n if (!dataObject) {\n const originalSystemId = metaObjectData.originalSystemId;\n const propertySetIds = metaObjectData.propertySets || metaObjectData.propertySetIds;\n const type = ifcTypeCodes[metaObjectData.type];\n dataModel.createObject({\n id,\n originalSystemId,\n type,\n name: metaObjectData.name,\n propertySetIds\n });\n if (metaObjectData.parent) {\n dataModel.createRelationship({\n relatingObjectId: metaObjectData.parent,\n relatedObjectId: id,\n type: IfcRelAggregates\n })\n }\n }\n }\n }\n return Promise.resolve();\n}\n", "import {SceneModel} from \"@xeokit/scene\";\nimport {DataModel} from \"@xeokit/data\";\nimport {SDKError} from \"@xeokit/core\";\nimport {loadXKT} from \"./loadXKT\";\nimport {loadMetamodel} from \"@xeokit/metamodel\";\n\n/**\n *\n */\nexport interface XKTManifest {\n xktFiles: string[],\n metaModelFiles?: string []\n}\n\n/**\n *\n * @param params\n */\nexport function loadXKTManifest(params: {\n src?: string,\n manifest?: XKTManifest,\n sceneModel: SceneModel,\n dataModel: DataModel\n}) {\n return new Promise((resolve, reject) => {\n\n if (!params) {\n return reject(new SDKError(\"[loadXKTChunks] Argument expected: params\"));\n }\n\n const sceneModel = params.sceneModel;\n if (!sceneModel) {\n return reject(new SDKError(\"[loadXKTChunks] Parameter expected: sceneModel\"));\n }\n\n const dataModel = params.dataModel;\n if (!params.manifest && !params.src) {\n return reject(new SDKError(\"[loadXKTChunks] Parameter expected: manifest or src\"));\n }\n\n if (params.src) {\n const baseDir = getBaseDirectory(params.src);\n\n fetch(params.src).then(response => {\n response.json().then(manifest => {\n\n const xktFiles = manifest.xktFiles;\n const metaModelFiles = manifest.metaModelFiles;\n\n const loadXKTFiles = (done: () => void) => {\n let i = 0;\n const loadNextXKT = () => {\n if (sceneModel.destroyed) {\n done();\n } else if (i >= xktFiles.length) {\n done();\n } else {\n fetch(`${baseDir}${xktFiles[i]}`).then(response => {\n response.arrayBuffer().then(fileData => {\n loadXKT({\n fileData,\n sceneModel\n }).then(() => {\n i++;\n loadNextXKT();\n }).catch((error) => {\n reject(`[loadXKTChunks] Error loading XKT file: ${error}`);\n })\n });\n });\n }\n }\n loadNextXKT();\n }\n\n const loadMetaModelFiles = (done: () => void) => {\n let i = 0;\n const loadNextMetaModelFile = () => {\n if (dataModel.destroyed) {\n done();\n } else if (i >= metaModelFiles.length) {\n done();\n } else {\n fetch(`${baseDir}${metaModelFiles[i]}`).then(response => {\n response.json().then(fileData => {\n loadMetamodel({\n fileData,\n dataModel\n }).then(() => {\n i++;\n loadNextMetaModelFile();\n }).catch((error) => {\n reject(`[loadXKTChunks] Error loading XKT metadata file: ${error}`);\n })\n });\n });\n }\n }\n loadNextMetaModelFile();\n }\n\n if (xktFiles && metaModelFiles) {\n loadXKTFiles(() => {\n loadMetaModelFiles(() => {\n resolve();\n });\n });\n } else if (xktFiles) {\n loadXKTFiles(() => {\n resolve();\n });\n } else if (metaModelFiles) {\n loadMetaModelFiles(() => {\n resolve();\n });\n } else {\n resolve();\n }\n });\n });\n }\n });\n}\n\n\nfunction getBaseDirectory(filePath) {\n const pathArray = filePath.split('/');\n pathArray.pop(); // Remove the file name or the last segment of the path\n return pathArray.join('/') + '/';\n}\n", "/**\n * [![npm version](https://badge.fury.io/js/%40xeokit%2Fviewer.svg)](https://badge.fury.io/js/%40xeokit%2Fviewer)\n * [![](https://data.jsdelivr.com/v1/package/npm/@xeokit/viewer/badge)](https://www.jsdelivr.com/package/npm/@xeokit/viewer)\n *\n * \n *\n * # xeokit Scene Viewer\n *\n * ---\n *\n * ### *The SDK's browser-based 3D/2D scene viewer*\n *\n * ---\n *\n * ## Features\n *\n * * Use a {@link @xeokit/viewer!Viewer | Viewer} to interactively view a {@link @xeokit/scene!Scene | Scene} in all major browsers, including mobile.\n * * A Viewer has a {@link @xeokit/viewer!Renderer}, which is a pluggable strategy that adapts the Viewer to use various browser graphics APIs. Currently we have two\n * Renderer implementations:\n * {@link @xeokit/webglrenderer!WebGLRenderer} and WebGPURenderer.\n * * A Viewer can have multiple {@link @xeokit/viewer!View | Views}, each providing an independently configurable view of the Scene in a separate HTML canvas.\n * * Each View has a {@link @xeokit/viewer!ViewObject} for each of the {@link @xeokit/scene!SceneObject | SceneObjects} in the Scene, which represnts and controls that\n * SceneObject's appearance in the View's canvas.\n * The View creates and destroys its ViewObjects automatically, in order to proxy the SceneObjects.\n * * Each View also has it's own {@link @xeokit/viewer!Camera}, {@link @xeokit/viewer!DirLight | Lights} and {@link @xeokit/viewer!SectionPlane | SectionPlanes}.\n * * Each View can optionally organize its ViewObjects into {@link @xeokit/viewer!ViewLayer | ViewLayers}. These allow us to partition our ViewObjects into\n * different *bins* depending on what they represent in the View, and then conveniently focus our updates (toggle visibility, select, highlight, slice etc.)\n * eon certain bins, exclusively. ViewLayers also allow us to restrict which SceneObjects are renderable in the Viewer's [phycially-based](https://xeokit.github.io/sdk/docs/pages/GLOSSARY.html#pbr)\n * quality rendering mode. This allows us to disable wasteful quality rendering for objects that are not supposed to appear realistic, such as grids and other 3D helper objects.\n *\n *
\n *\n * [![](https://mermaid.ink/img/pako:eNqNVU1v4jAQ_SuRT7srQKRAgKjiQqXdA6iI7oe0ysVJpsWtY2cdhy2l_Pd1_JEmkK7KJWbemzdj541zRAlPAYUoobgobgh-EDiLWEoEJJJw5q22EdOY95PAXxDeMWKe-QlgKQgQJlAkwMAs94pZmGUiAEuoUj99NpGInZqKTi_BbI9tEo8fVXWngDMQ2Kwpedi5eGEa3FDMwIYoPoBoFV5VEVfZhO4aeW1kValXoVaDWsJ1SdKODv-UmBJ52OrjOMu-1cTz9D0pSEzBbYQqClhop5rQ23SBZ6EasOuEUy7Ii01MKMlzXOvkJHl6-4dxHDd6WepTdH3AATx7ZJw_mVWZWxnBH80RNdKbh-ZEcl54VkXZpfleb4jQZ-mYFeyoegstF2ytjTT7-hrHhRQ4kYtFg_ML4q-rFrG5t7KQPNvUfbuyGZaCPDd3UVm0RpXvaafhtBnWFVz7gwIWLWdoKc35rzWMljGBE4tLQlP3JwW1W3641L40jsIjZoYwQn6E-v2Ffm7rMewA78xUmkcNfLGAKfIurPdnUbN-V-G8tMKrUGivgmp9AZrcsD6wt5imtLZgucosuYACmCw8wrxv39er-uborKGnN3QXQx2J0HAw-EA7rbNc2pvoopDze-jupwtGc34iZoWa2hvVX16R9t34rZA73omcuz9i9Zxcv_b7Z6MTeiTLKWTVCXYxNz8-RF3z5OkdYvO-WXKm3F2PiP4waCO34NbL8M3LQD2kGBkmqfo26fQIyZ2qEaFQLVO4xyVVPlFqiopLye8OLEHhPaYF9FCZp2ru7OesjkJKJBdr-8GrHj2UY4bCI3pGoT-dD4JgOJv644nvj-ejWQ8dUDgKZoPRfDjxx1fB_Go6np166IVzpTocTILJVGGjSTAMRrPxSMv91qAUJZz-AZsUb1U?type=png)](https://mermaid.live/edit#pako:eNqNVU1v4jAQ_SuRT7srQKRAgKjiQqXdA6iI7oe0ysVJpsWtY2cdhy2l_Pd1_JEmkK7KJWbemzdj541zRAlPAYUoobgobgh-EDiLWEoEJJJw5q22EdOY95PAXxDeMWKe-QlgKQgQJlAkwMAs94pZmGUiAEuoUj99NpGInZqKTi_BbI9tEo8fVXWngDMQ2Kwpedi5eGEa3FDMwIYoPoBoFV5VEVfZhO4aeW1kValXoVaDWsJ1SdKODv-UmBJ52OrjOMu-1cTz9D0pSEzBbYQqClhop5rQ23SBZ6EasOuEUy7Ii01MKMlzXOvkJHl6-4dxHDd6WepTdH3AATx7ZJw_mVWZWxnBH80RNdKbh-ZEcl54VkXZpfleb4jQZ-mYFeyoegstF2ytjTT7-hrHhRQ4kYtFg_ML4q-rFrG5t7KQPNvUfbuyGZaCPDd3UVm0RpXvaafhtBnWFVz7gwIWLWdoKc35rzWMljGBE4tLQlP3JwW1W3641L40jsIjZoYwQn6E-v2Ffm7rMewA78xUmkcNfLGAKfIurPdnUbN-V-G8tMKrUGivgmp9AZrcsD6wt5imtLZgucosuYACmCw8wrxv39er-uborKGnN3QXQx2J0HAw-EA7rbNc2pvoopDze-jupwtGc34iZoWa2hvVX16R9t34rZA73omcuz9i9Zxcv_b7Z6MTeiTLKWTVCXYxNz8-RF3z5OkdYvO-WXKm3F2PiP4waCO34NbL8M3LQD2kGBkmqfo26fQIyZ2qEaFQLVO4xyVVPlFqiopLye8OLEHhPaYF9FCZp2ru7OesjkJKJBdr-8GrHj2UY4bCI3pGoT-dD4JgOJv644nvj-ejWQ8dUDgKZoPRfDjxx1fB_Go6np166IVzpTocTILJVGGjSTAMRrPxSMv91qAUJZz-AZsUb1U)\n *\n * ## Installation\n *\n * ````bash\n * npm install @xeokit/viewer\n * ````\n *\n * ## Usage\n *\n * * [Creating a Viewer](#creating-a-viewer)\n * * [Creating a View](#creating-a-view)\n * * [Adding a CameraControl](#adding-a-cameracontrol)\n * * [Creating a SceneModel](#creating-a-scene)\n * * [Showing and Hiding Objects](#showing-and-hiding-objects)\n * * [Highlighting, Selecting and X-Raying Objects](#highlighting-selecting-and-x-raying-objects)\n * * [Creating a Second View](#creating-a-second-view)\n * * [Slicing Objects](#slicing-objects)\n * * [Adding a ViewLayer](#adding-a-viewlayer)\n *\n * ### Creating a Viewer\n *\n * Install these NPM modules:\n *\n * ````bash\n * npm install @xeokit/scene\n * npm install @xeokit/viewer\n * npm install @xeokit/ktx2\n * npm install @xeokit/webglrenderer\n * npm install @xeokit/constants\n * npm install @xeokit/cameracontrol\n * ````\n *\n * In our JavaScript, import the modules:\n *\n * ````javascript\n * import {Scene} from \"@xeokit/scene\";\n * import {Viewer} from \"@xeokit/viewer\";\n * import {WebGLRenderer} from \"@xeokit/webglrenderer\";\n * import {KTX2TextureTranscoder} from \"@xeokit/ktx2\";\n * import {TrianglesPrimitive, LinearEncoding, LinearFilter} from \"@xeokit/constants\";\n * import {CameraControl} from \"@xeokit/cameracontrol\";\n * ````\n *\n * Create a {@link @xeokit/scene!Scene | Scene} to hold our scene graph:\n *\n * ````javascript\n * const scene = new Scene();\n * ````\n *\n * Create a {@link @xeokit/viewer!Viewer | Viewer} to view our Scene.\n *\n * We'll configured it with\n * a {@link @xeokit/webglrenderer!WebGLRenderer}, which will adapt the Viewer to use the browser's WebGL graphics API.\n * We'll also equip our WebGLRenderer with a {@link @xeokit/ktx2!KTX2TextureTranscoder} so we that we can view compressed textures.\n *\n * ````javascript\n * const myViewer = new Viewer({\n * id: \"myViewer\",\n * scene,\n * renderers: new WebGLRenderer({\n * textureTranscoder: new KTX2TextureTranscoder({ // Optional, this is the default\n * transcoderPath: \"./../dist/basis/\" // Optional, defaults to CDN\n * })\n * })\n * });\n * ````\n *\n * ### Creating a View\n *\n * Within our Viewer, create a {@link @xeokit/viewer!View} and arrange its {@link @xeokit/viewer!Camera}:\n *\n * ````javascript\n * const view1 = myViewer.createView({\n * id: \"myView\",\n * elementId: \"myView1\"\n * });\n *\n * view1.camera.eye = [-3.933, 2.855, 27.018];\n * view1.camera.look = [4.400, 3.724, 8.899];\n * view1.camera.up = [-0.018, 0.999, 0.039];\n * ````\n *\n * ### Adding a CameraControl\n *\n * > *See [@xeokit/cameracontrol](/docs/modules/_xeokit_cameracontrol.html)*\n *\n * Add a {@link @xeokit/cameracontrol!CameraControl} to the View, to control the Camera from mouse and touch input:\n *\n * ````javascript\n * const myCameraControl = new CameraControl({\n * view: view1\n * });\n * ````\n *\n * ### Creating a SceneModel\n *\n * > *See [@xeokit/scene](/docs/modules/_xeokit_scene.html)*\n *\n * Our {@link @xeokit/scene!Scene | Scene } contains geometric representations of our models and objects,\n * with materials and textures.\n *\n * Within the Scene, we'll create a {@link @xeokit/scene!SceneModel | SceneModel} that contains a couple\n * of textured {@link @xeokit/scene!SceneModel | SceneObjects}:\n *\n * ````javascript\n * const sceneModel = scene.createModel();\n *\n * sceneModel.createGeometry({\n * id: \"myGeometry\",\n * primitive: TrianglesPrimitive,\n * positions: [202, 202, 202, 200, 202, 202, ...],\n * indices: [0, 1, 2, 0, 2, 3, 4, 5, 6, 4, ...]\n * });\n *\n * sceneModel.createTexture({\n * id: \"myColorTexture\",\n * src: \"myTexture\",\n * encoding: LinearEncoding, // Demo some texture configs\n * magFilter: LinearFilter,\n * minFilter: LinearFilter\n * });\n *\n * sceneModel.createTextureSet({\n * id: \"myTextureSet\",\n * colorTextureId: \"myColorTexture\"\n * });\n *\n * sceneModel.createLayerMesh({\n * id: \"myMesh1\",\n * geometryId: \"myGeometry\",\n * textureSetId: \"myTextureSet\"\n * });\n *\n * sceneModel.createLayerMesh({\n * id: \"myMesh2\",\n * geometryId: \"myGeometry\",\n * textureSetId: \"myTextureSet\"\n * });\n *\n * sceneModel.createObject({\n * id: \"myObject1\",\n * meshIds: [\"myMesh1\"]\n * });\n *\n * sceneModel.createObject({\n * id: \"myObject2\",\n * meshIds: [\"myMesh2\"]\n * });\n *\n * sceneModel.build();\n * ````\n *\n * As soon as we've called {@link @xeokit/scene!SceneModel.build | SceneModel.build}, two new objects appear\n * in the View's canvas.\n *\n * ### Showing and Hiding Objects\n *\n * Hide one of the objects in the View's canvas:\n *\n * ````javascript\n * view1.setObjectsVisible([\"myObject1\"], false);\n * ````\n *\n * Another way to hide the object:\n *\n * ````javascript\n * view1.objects[\"myObject1\"].visible = false;\n * ````\n *\n * Show the object again:\n *\n * ````javascript\n * view1.objects[\"myObject1\"].visible = true;\n * ````\n *\n * ### Highlighting, Selecting and X-Raying Objects\n *\n * The functions for highlighting, selecting, colorizing and X-raying objects work the same as hiding and\n * showing, as just described.\n *\n * Let's highlight the first object in our View:\n *\n * ````javascript\n * view1.objects[\"myObject1\"].highlighted = true;\n * ````\n *\n * ### Creating a Second View\n *\n * A Viewer can have many Views, each providing an independent view of the Scene in a separate\n * HTML canvas. Each View can have a completely different viewpoint, projection, and configuration of which objects\n * are visible, x-rayed, highlighted etc.\n *\n * Create a second View, with a separate canvas, that shows the other object highlighted instead:\n *\n * ```` javascript\n * const view2 = myViewer.createView({\n * id: \"myView2\",\n * elementId: \"myView2\"\n * });\n *\n * view2.camera.eye = [-3.933, 2.855, 27.018];\n * view2.camera.look = [4.400, 3.724, 8.899];\n * view2.camera.up = [-0.018, 0.999, 0.039];\n *\n * view2.objects[\"myObject1\"].highlighted = true;\n * ````\n *\n * To show an independent view of {@link @xeokit/scene!SceneModel | SceneObjects}, a View\n * proxies them with {@link @xeokit/viewer!ViewObject | ViewObjects}, which represent and control their appearance within the View's canvas.\n *\n * ### Slicing Objects\n *\n * Each View can have an unlimited number of interactive {@link SectionPlane | SectionPlanes}, with which we can use to slice open objects\n * to view interior structures.\n *\n * Create a couple of SectionPlanes within our second View, to slice through one of our\n * objects, then adjust the direction of one of the SectionPlanes:\n *\n * ````javascript\n * const mySlice1 = view2.createSlice({\n * id: \"mySlice1\",\n * pos: [0,0,0],\n * dir: [-1,-1,-1]\n * });\n *\n * const mySlice2 = view2.createSlice({\n * id: \"mySlice2\",\n * pos: [0,0,0],\n * dir: [1,1,.5]\n * });\n *\n * mySlice1.dir = [1,1,1];\n * ````\n *\n * ### Adding a ViewLayer\n *\n * Sometimes we want to create SceneModels whose objects will never be included in any BCF viewpoints that we save, and\n * will never be disturbed by any viewpoints that we load.\n *\n * An example of such a case is a skybox, which we'd never want included in any BCF viewpoints, or hidden\n * whenever we load a BCF viewpoint.\n *\n * TODO TODO TODO TODO\n *\n * ````javascript\n * const environmentViewLayer = view.createLayer({\n * id: \"myEnviromentViewLayer\"\n * });\n * ````\n *\n * Now we'll create a SceneModel for our skybox in that ViewLayer:\n *\n * ````javascript\n * const skyboxSceneModel = myVScene.createModel({\n * id: \"mySkyBox\",\n * layerId: \"myEnviromentViewLayer\"\n * });\n *\n * skyboxSceneModel.createObject({\n * id: \"skyBox\",\n * //...\n * });\n *\n * skyboxSceneModel.build();\n * ````\n *\n * Now we can save that View as a BCF viewpoint that will never include our skybox objects:\n *\n * ````javascript\n * const bcfViewpointAgain = saveBCFViewpoint({\n * view: view2,\n * excludeLayerIds: [\"myEnviromentViewLayer\"]\n * });\n * ````\n *\n * We can also load that viewpoint back into our View, in a way that won't disrupt our skybox:\n *\n * ````javascript\n * loadBCFViewpoint({\n * bcfViewpoint: bcfViewpointAgain\n * view: view2,\n * excludeLayerIds: [\"myEnvironmentViewLayer\"]\n * });\n * ````\n *\n * ````javascript\n * myViewer.viewModes.createViewMode({\n * id: \"qualityViewMode\"\n * });\n *\n * myViewer.viewModes.createViewMode({\n * id: \"navigationViewMode\"\n * });\n *\n * environmentViewLayer.setViewModes([\"qualityViewMode\"]};\n *\n * myViewer.viewModes.setActiveViewMode(\"quality\");\n * ````\n *\n * @module @xeokit/viewer\n */\nexport * from \"./Viewer\";\nexport * from \"./ViewParams\";\nexport * from \"./Renderer\";\nexport * from \"./Camera\";\nexport * from \"./Projection\";\nexport * from \"./FrustumProjection\";\nexport * from \"./OrthoProjection\";\nexport * from \"./PerspectiveProjection\";\nexport * from \"./CustomProjection\";\nexport * from \"./CameraFlightAnimation\";\nexport * from \"./AmbientLight\";\nexport * from \"./DirLight\";\nexport * from \"./PointLight\";\nexport * from \"./EmphasisMaterial\";\nexport * from \"./Edges\";\nexport * from \"./PointsMaterial\";\nexport * from \"./LinesMaterial\";\nexport * from \"./Metriqs\";\nexport * from \"./View\";\nexport * from \"./ViewLayer\";\nexport * from \"./ViewObject\";\nexport * from \"./SectionPlane\";\nexport * from \"./SectionPlaneParams\";\nexport * from \"./SAO\";\nexport * from \"./PickParams\";\nexport * from \"./PickResult\";\nexport * from \"./ViewLayerParams\";\nexport * from \"./ResolutionScale\";\nexport * from \"./Texturing\";\nexport * from \"./TickParams\";\nexport * from \"./SnapshotParams\";\nexport * from \"./SnapshotResult\";\n", "import {apply, createUUID, inQuotes} from \"@xeokit/utils\";\nimport {type Capabilities, Component, EventEmitter, SDKError} from \"@xeokit/core\";\nimport {EventDispatcher} from \"strongly-typed-events\";\nimport type {FloatArrayParam} from \"@xeokit/math\";\nimport {Scene, SceneModel} from \"@xeokit/scene\";\n\nimport {View} from \"./View\";\nimport {scheduler} from \"./scheduler\";\nimport type {Renderer} from \"./Renderer\";\n\nimport type {ViewParams} from \"./ViewParams\";\nimport type {TickParams} from \"./TickParams\";\n\n/**\n * A Browser-based 2D/3D model viewer.\n *\n * See {@link \"@xeokit/viewer\" | @xeokit/viewer} for usage.\n */\nexport class Viewer extends Component {\n\n /**\n * ID of this Viewer.\n */\n declare readonly id: string;\n\n /**\n * True once this Viewer has been destroyed.\n *\n * Don't use this Viewer if this is ````false````.\n */\n declare readonly destroyed: boolean;\n\n /**\n * Indicates the capabilities of this Viewer.\n */\n readonly capabilities: Capabilities;\n\n /**\n * Emits an event each time a message is logged.\n *\n * @event\n */\n readonly onLog: EventEmitter;\n\n /**\n * Emits an event each time a Viewer \"tick\" occurs (~10-60 times per second).\n *\n * @event\n */\n readonly onTick: EventEmitter;\n\n /**\n * Emits an event each time a {@link @xeokit/viewer!View} is created.\n *\n * @event\n */\n readonly onViewCreated: EventEmitter;\n\n /**\n * Emits an event each time a {@link @xeokit/viewer!View} is destroyed.\n *\n * @event\n */\n readonly onViewDestroyed: EventEmitter;\n\n /**\n * The Viewer's scene representation.\n *\n * The {@link @xeokit/scene!SceneModel | SceneModels} is the container of {@link @xeokit/scene!SceneModel | SceneModels}\n * and {@link @xeokit/scene!SceneObject | SceneObjects}, which contain the geometry and materials for models currently\n * loaded in the Viewer.\n */\n readonly scene: Scene;\n\n /**\n * Map of all the Views in this Viewer.\n *\n * Each {@link @xeokit/viewer!View} is mapped here against {@link @xeokit/viewer!View.id | View.id}.\n *\n * Each {@link @xeokit/viewer!View} is an independently configurable view of the Viewer's models, with its own\n * canvas, camera position, section planes, lights, and object visual states.\n */\n readonly views: { [key: string]: View };\n\n /**\n * List of all the Views in this Viewer.\n *\n * Each {@link @xeokit/viewer!View} is an independently configurable view of the Viewer's models, with its own canvas, camera position, section planes, lights, and object visual states.\n *\n * @internal\n */\n readonly viewList: View[];\n\n /**\n * The number of {@link View | Views} belonging to this Viewer.\n *\n * The maxiumum number of Views that a Viewer can have is determined by the {@link Renderer} implementation it was\n * configured with, which is provided in {@link Capabilities.maxViews}.\n */\n numViews: number;\n\n /**\n * The time that this Viewer was created.\n * This is the number of milliseconds since the epoch, which is defined as the midnight at the beginning of January 1, 1970, UTC.\n */\n readonly startTime: number = (new Date()).getTime();\n\n /**\n * The Renderer that this Viewer was configured with via the Viewer's constructor.\n * Th Renderer is only used by the Viewer, and is not intended to for users to use directly. It's provided via this property\n * in order to verify which Render implementation the Viewer is configured with.\n */\n readonly renderer: Renderer;\n\n #tickifiedFunctions: {};\n\n /**\n * Creates a Viewer.\n *\n * @param params - Viewer configuration.\n * @param params.scene - Contains model representations.\n * @param params.renderer - Manages rendering of models.\n * @param params.id - ID for this Viewer, automatically generated by default.\n * @param params.units - The measurement unit type. Accepted values are ````\"meters\"````, ````\"metres\"````, , ````\"centimeters\"````, ````\"centimetres\"````, ````\"millimeters\"````, ````\"millimetres\"````, ````\"yards\"````, ````\"feet\"```` and ````\"inches\"````.\n * @param params.scale - The number of Real-space units in each World-space coordinate system unit.\n * @param params.origin - The Real-space 3D origin, in current measurement units, at which the World-space coordinate origin ````[0,0,0]```` sits.\n * @param params.localeService - Locale-based translation service.\n * @throws SDKError\n * The given Renderer is already attached to some other Viewer.\n */\n constructor(params: {\n scene?: Scene,\n renderer: Renderer,\n id?: string,\n units?: string,\n scale?: number,\n origin?: FloatArrayParam,\n }) {\n super(null, {});\n\n this.id = params.id || createUUID();\n\n if (params.renderer.viewer !== undefined) {\n throw new SDKError(`Failed to create Viewer - the given Renderer is currently attached to another Viewer`);\n }\n\n this.onLog = new EventEmitter(new EventDispatcher());\n this.onTick = new EventEmitter(new EventDispatcher());\n this.onViewCreated = new EventEmitter(new EventDispatcher());\n this.onViewDestroyed = new EventEmitter(new EventDispatcher());\n\n this.viewList = [];\n this.numViews = 0;\n this.views = {};\n this.destroyed = false;\n\n this.capabilities = {\n maxViews: 1,\n headless: false,\n astcSupported: false,\n etc1Supported: false,\n etc2Supported: false,\n dxtSupported: false,\n bptcSupported: false,\n pvrtcSupported: false\n };\n\n this.scene = params.scene || new Scene();\n\n params.renderer.attachViewer(this);\n params.renderer.getCapabilities(this.capabilities);\n\n this.renderer = params.renderer;\n\n this.#tickifiedFunctions = {};\n\n this.scene.onModelCreated.subscribe((scene: Scene, sceneModel: SceneModel) => {\n this.renderer.attachSceneModel(sceneModel);\n });\n this.scene.onModelDestroyed.subscribe((scene: Scene, sceneModel: SceneModel) => {\n this.renderer.detachSceneModel(sceneModel);\n });\n\n scheduler.registerViewer(this);\n }\n\n /**\n * This method will \"tickify\" the provided `cb` function.\n *\n * This means, the function will be wrapped so:\n *\n * - it runs time-aligned to scene ticks\n * - it runs maximum once per scene-tick\n *\n * @param {Function} cb The function to tickify\n * @returns {Function}\n */\n tickify(cb: any): any {\n let cbString = cb.toString();\n\n /**\n * Check if the function is already tickified, and if so return the cached one.\n */\n if (cbString in this.#tickifiedFunctions) {\n return this.#tickifiedFunctions[cbString].wrapperFunc;\n }\n\n let alreadyRun = 0;\n let needToRun = 0;\n\n let lastArgs;\n\n /**\n * The provided `cb` function is replaced with a \"set-dirty\" function\n *\n * @type {Function}\n */\n const wrapperFunc = function (...args) {\n lastArgs = args;\n needToRun++;\n };\n\n /**\n * An each scene tick, if the \"dirty-flag\" is set, run the `cb` function.\n *\n * This will make it run time-aligned to the scene tick.\n */\n const tickSubId = this.onTick.sub(() => {\n const tmp = needToRun;\n if (tmp > alreadyRun) {\n alreadyRun = tmp;\n cb(...lastArgs);\n }\n });\n\n /**\n * And, store the list of subscribers.\n */\n this.#tickifiedFunctions[cbString] = {tickSubId, wrapperFunc};\n\n return wrapperFunc;\n }\n\n /**\n * Creates a new {@link @xeokit/viewer!View} within this Viewer.\n *\n * * The maximum number of views you're allowed to create is provided in {@link Capabilities.maxViews}. This\n * will be determined by the {@link Renderer} implementation the Viewer is configured with.\n * * To destroy the View after use, call {@link View.destroy}.\n * * You must add a View to the Viewer before you can create or load content into the Viewer's Viewer.\n *\n * ### Usage\n *\n * ````javascript\n * const view1 = myViewer.createView({\n * id: \"myView\",\n * elementId: \"myView1\"\n * });\n *\n * if (view1 instanceof SDKError) {\n * console.log(view1.message);\n * } else {\n * view1.camera.eye = [-3.933, 2.855, 27.018];\n * view1.camera.look = [4.400, 3.724, 8.899];\n * view1.camera.up = [-0.018, 0.999, 0.039];\n *\n * //...\n * }\n * ````\n *\n * @param params View configuration.\n * @returns *{@link View}*\n * * On success.\n * @returns *{@link @xeokit/core!SDKError | SDKError}*\n * * If View already exists with the given ID.\n * * Attempted to create too many Views - see {@link Capabilities.maxViews | Capabilities.maxViews}.\n */\n createView(params: ViewParams): View | SDKError {\n if (this.viewList.length >= this.capabilities.maxViews) {\n return new SDKError(`Attempted to create too many Views with View.createView() - maximum of ${this.capabilities.maxViews} is allowed`);\n }\n let viewId = params.id || createUUID();\n if (this.views[viewId]) {\n return new SDKError(`View with ID \"${viewId}\" already exists in this Viewer`);\n }\n // @ts-ignore\n const htmlElement = params.htmlElement || document.getElementById(params.elementId);\n if (!(htmlElement instanceof HTMLElement)) {\n return new SDKError(\"Mandatory View config expected: valid elementId or HTMLElement\");\n }\n const view = new View(apply({viewId, viewer: this}, params));\n {\n const result: void | SDKError = this.renderer.attachView(view);\n if (result instanceof SDKError) {\n this.error(`Failed to create View (id = \"${view.viewId}\"): ${result.message}`);\n return result;\n }\n }\n this.#registerView(view);\n view.onDestroyed.one(() => {\n this.#deregisterView(view);\n this.renderer.detachView(view);\n this.onViewDestroyed.dispatch(this, view);\n });\n // Renderer.attachSceneModel creates RendererObjects in Renderer.rendererObjects,\n // which are then expected by View.initViewObjects\n for (let id in this.scene.models) {\n this.renderer.attachSceneModel(this.scene.models[id]);\n }\n view.initViewObjects();\n this.onViewCreated.dispatch(this, view);\n return view;\n }\n\n /**\n * Trigger redraw of all {@link View | Views} belonging to this Viewer.\n *\n * @private\n */\n redraw(): void {\n for (let viewId in this.views) {\n this.views[viewId].redraw();\n }\n }\n\n /**\n * Logs a console debugging message for this Viewer.\n *\n * The console message will have this format: *````[LOG] [ : ````*\n *\n * @private\n * @param message - The message to log\n */\n log(message: string): void {\n window.console.log(`[LOG] ${this.#prefixMessageWithID(message)}`);\n }\n\n /**\n * Logs a warning for this Viewer to the JavaScript console.\n *\n * The console message will have this format: *````[WARN] [ =: ````*\n *\n * @private\n * @param message - The warning message to log\n */\n warn(message: string): void {\n window.console.warn(`[WARN] ${this.#prefixMessageWithID(message)}`);\n }\n\n /**\n * Logs an error for this Viewer to the JavaScript console.\n *\n * The console message will have this format: *````[ERROR] [ =: ````*\n *\n * @private\n * @param message The error message to log\n */\n error(message: string): void {\n window.console.error(`[ERROR] ${this.#prefixMessageWithID(message)}`);\n }\n\n /**\n * @private\n * @param params\n */\n render(params: any) {\n for (let viewIndex = 0; viewIndex < this.viewList.length; viewIndex++) {\n // console.log(\"this.renderer.render()\");\n // console.log(\"...\");\n this.renderer.render(viewIndex, {force: false});\n }\n }\n\n #prefixMessageWithID(message: string): string {\n return `[${this.constructor.name} \"${inQuotes(this.id)}\"]: ${message}`;\n }\n\n #registerView(view: View): void {\n if (this.views[view.id]) {\n return;\n }\n this.views[view.id] = view;\n for (let viewIndex = 0; ; viewIndex++) {\n if (!this.viewList[viewIndex]) {\n this.viewList[viewIndex] = view;\n this.numViews++;\n view.viewIndex = viewIndex;\n return;\n }\n }\n }\n\n #deregisterView(view: View): void {\n if (!this.views[view.id]) {\n return;\n }\n delete this.views[view.id];\n delete this.viewList[view.viewIndex];\n this.numViews--;\n }\n\n /**\n * Destroys this Viewer.\n */\n destroy(): void {\n if (this.destroyed) {\n return;\n }\n this.renderer.detachViewer();\n scheduler.deregisterViewer(this);\n for (let id in this.views) {\n this.views[id].destroy();\n }\n this.onLog.clear();\n this.onTick.clear();\n this.onViewCreated.clear();\n this.onViewDestroyed.clear();\n super.destroy();\n }\n}\n", "import {EventDispatcher} from \"strongly-typed-events\";\nimport {Component, EventEmitter, SDKError} from \"@xeokit/core\";\nimport {createUUID} from \"@xeokit/utils\";\nimport {FastRender, QualityRender} from \"@xeokit/constants\";\nimport type {FloatArrayParam, IntArrayParam} from \"@xeokit/math\";\nimport {createVec3} from \"@xeokit/matrix\";\nimport type {Scene, SceneModel} from \"@xeokit/scene\";\n\nimport {ViewObject} from \"./ViewObject\";\nimport {SectionPlane} from \"./SectionPlane\";\nimport type {Viewer} from \"./Viewer\";\nimport {Metrics} from \"./Metriqs\";\nimport {SAO} from \"./SAO\";\nimport {Texturing} from \"./Texturing\";\nimport {LinesMaterial} from \"./LinesMaterial\";\nimport {ViewLayer} from \"./ViewLayer\";\nimport type {ViewLayerParams} from \"./ViewLayerParams\";\nimport type {SectionPlaneParams} from \"./SectionPlaneParams\";\nimport {EmphasisMaterial} from \"./EmphasisMaterial\";\nimport {Edges} from \"./Edges\";\nimport {PointsMaterial} from \"./PointsMaterial\";\nimport {Camera} from \"./Camera\";\nimport type {PointLight} from \"./PointLight\";\nimport {CameraFlightAnimation} from \"./CameraFlightAnimation\";\nimport {AmbientLight} from \"./AmbientLight\";\nimport {DirLight} from \"./DirLight\";\nimport type {RendererObject} from \"@xeokit/scene/src/RendererObject\";\nimport type {PickParams} from \"./PickParams\";\nimport type {PickResult} from \"./PickResult\";\nimport {SnapshotResult} from \"./SnapshotResult\";\nimport type {SnapshotParams} from \"./SnapshotParams\";\nimport {ResolutionScale} from \"./ResolutionScale\";\n\n/**\n * Event that signifies the beginning of a canvas snapshot captured with\n */\nexport interface SnapshotStartedEvent {\n width: number;\n height: number;\n}\n\n/**\n *\n */\nexport interface SnapshotFinishedEvent {\n width: number;\n height: number;\n}\n\n\n/**\n * An independently-configurable view of the models in a {@link @xeokit/viewer!Viewer | Viewer}.\n *\n * See {@link \"@xeokit/viewer\" | @xeokit/viewer} for usage.\n *\n * ## Overview\n *\n * A View is an independently-configurable view of the {@link RendererObject | ViewerObjects} existing within a Viewer, with\n * its own HTML canvas. A View automatically contains a {@link @xeokit/viewer!ViewObject} for each existing ViewerObject. ViewObjects\n * function as a kind of proxy for the ViewerObjects, through which we control their appearance\n * (show/hide/highlight etc.) within that particular View's canvas.\n *\n * Using Views, we can essentially have multiple canvases viewing the same model, each canvas perhaps showing a different subset\n * of the objects, with different visual effects, camera position etc.\n *\n * ## Quickstart\n *\n * * Create a View with {@link Viewer.createView}\n * * Control the View's viewpoint and projection with {@link View.camera}\n * * Create light sources with {@link View.createLightSource}\n * * Create slicing planes with {@link View createSectionPlane}\n * * Each View automatically has a {@link @xeokit/viewer!ViewObject} for every {@link RendererObject}\n * * Uses {@link @xeokit/viewer!ViewLayer | ViewLayers} to organize ViewObjects into layers\n * * Optionally uses ViewLayers to mask which ViewObjects are automatically maintained\n * * Control the visibility of ViewObjects with {@link View.setObjectsVisible}\n * * Emphasise ViewObjects with {@link View.setObjectsHighlighted}, {@link View.setObjectsSelected}, {@link View.setObjectsXRayed} and {@link View.setObjectsColorized}\n *\n * ## Examples\n *\n * Create a view in a given canvas, with three objects visible and a couple of object X-rayed (rendered translucent):\n *\n * ````javascript\n * const view1 = myViewer.createView({\n * id: \"myView\",\n * elementId: \"myView1\"\n * });\n *\n * view1.camera.eye = [-3.933, 2.855, 27.018];\n * view1.camera.look = [4.400, 3.724, 8.899];\n * view1.camera.up = [-0.018, 0.999, 0.039];\n *\n * view1.setObjectsVisible([\"myObject1\", \"myObject2\", \"myObject3\", ...], true);\n * view1.setObjectsXRayed([\"myObject1\", \"myObject\", ...], true);\n * ````\n *\n * Create a second view, using a different canvas, that shows two objects visible, with one of them highlighted:\n *\n * ```` javascript\n * const view2 = myViewer.createView({\n * id: \"myView2\",\n * elementId: \"myView2\"\n * });\n *\n * view2.camera.eye = [-1.4, 1.5, 15.8];\n * view2.camera.look = [4.0, 3.7, 1.8];\n * view2.camera.up = [0.0, 0.9, 0.0];\n *\n * view2.setObjectsVisible([\"myObject1\", \"myObject3\", ...], true);\n * view2.setObjectsHighlighted([\"myObject3\", ...], true);\n * ````\n */\nclass View extends Component {\n\n /**\n ID of this View, unique within the {@link @xeokit/viewer!Viewer | Viewer}.\n */\n declare viewId: string;\n\n /**\n * The Viewer to which this View belongs.\n */\n declare readonly viewer: Viewer;\n\n /**\n * The index of this View in {@link Viewer.viewList}.\n * @private\n */\n viewIndex: number;\n\n /**\n * Manages the Camera for this View.\n */\n readonly camera: Camera;\n\n /**\n * The HTML canvas.\n */\n public htmlElement: HTMLElement;\n\n /**\n * Indicates if this View is transparent.\n */\n public readonly transparent: boolean;\n\n /**\n * Boundary of the canvas in absolute browser window coordinates.\n * Format is ````[xmin, ymin, xwidth, ywidth]````.\n */\n public readonly boundary: number[];\n\n /**\n * Configures Scalable Ambient Obscurance (SAO) for this View.\n */\n readonly sao: SAO;\n\n /**\n * Configures when textures are rendered for this View.\n */\n readonly texturing: Texturing;\n\n /**\n * Flies or jumps the View's {@link @xeokit/viewer!Camera} to given positions.\n */\n readonly cameraFlight: CameraFlightAnimation;\n\n /**\n * Manages measurement units, origin and scale for this View.\n */\n readonly metrics: Metrics;\n\n /**\n * Configures the X-rayed appearance of {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n */\n readonly xrayMaterial: EmphasisMaterial;\n\n /**\n * Configures the highlighted appearance of {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n */\n readonly highlightMaterial: EmphasisMaterial;\n\n /**\n * Configures the appearance of {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n */\n readonly selectedMaterial: EmphasisMaterial;\n\n /**\n * Configures the appearance of edges belonging to {@link @xeokit/viewer!ViewObject} in this View.\n */\n readonly edges: Edges;\n\n /**\n * Configures resolution scaling for this View.\n */\n readonly resolutionScale: ResolutionScale;\n\n /**\n * Configures the appearance of point primitives belonging to {@link @xeokit/viewer!ViewObject | ViewObjects} in this View .\n */\n readonly pointsMaterial: PointsMaterial;\n\n /**\n * Configures the appearance of lines belonging to {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n */\n readonly linesMaterial: LinesMaterial;\n\n /**\n * Map of the all {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n *\n * Each {@link @xeokit/viewer!ViewObject} is mapped here by {@link @xeokit/viewer!ViewObject.id}.\n *\n * The View automatically ensures that there is a {@link @xeokit/viewer!ViewObject} here for\n * each {@link RendererObject} in the {@link @xeokit/viewer!Viewer | Viewer}\n */\n readonly objects: { [key: string]: ViewObject };\n\n /**\n * Map of the currently visible {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n *\n * A ViewObject is visible when {@link @xeokit/viewer!ViewObject.visible} is true.\n *\n * Each {@link @xeokit/viewer!ViewObject} is mapped here by {@link @xeokit/viewer!ViewObject.id}.\n */\n readonly visibleObjects: { [key: string]: ViewObject };\n\n /**\n * Map of currently x-rayed {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n *\n * A ViewObject is x-rayed when {@link @xeokit/viewer!ViewObject.xrayed} is true.\n *\n * Each {@link @xeokit/viewer!ViewObject} is mapped here by {@link @xeokit/viewer!ViewObject.id}.\n */\n readonly xrayedObjects: { [key: string]: ViewObject };\n\n /**\n * Map of currently highlighted {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n *\n * A ViewObject is highlighted when {@link @xeokit/viewer!ViewObject.highlighted} is true.\n *\n * Each {@link @xeokit/viewer!ViewObject} is mapped here by {@link @xeokit/viewer!ViewObject.id}.\n */\n readonly highlightedObjects: { [key: string]: ViewObject };\n\n /**\n * Map of currently selected {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n *\n * A ViewObject is selected when {@link @xeokit/viewer!ViewObject.selected} is true.\n *\n * Each {@link @xeokit/viewer!ViewObject} is mapped here by {@link @xeokit/viewer!ViewObject.id}.\n */\n readonly selectedObjects: { [key: string]: ViewObject };\n\n /**\n * Map of currently colorized {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n *\n * Each {@link @xeokit/viewer!ViewObject} is mapped here by {@link @xeokit/viewer!ViewObject.id}.\n */\n readonly colorizedObjects: { [key: string]: ViewObject };\n\n /**\n * Map of {@link @xeokit/viewer!ViewObject | ViewObjects} in this View whose opacity has been updated.\n *\n * Each {@link @xeokit/viewer!ViewObject} is mapped here by {@link @xeokit/viewer!ViewObject.id}.\n */\n readonly opacityObjects: { [key: string]: ViewObject };\n\n /**\n * Map of {@link SectionPlane}s in this View.\n *\n * Each {@link SectionPlane} is mapped here by {@link SectionPlane.id}.\n */\n readonly sectionPlanes: { [key: string]: SectionPlane };\n\n /**\n * List of {@link SectionPlane}s in this View.\n */\n readonly sectionPlanesList: SectionPlane[] = [];\n\n /**\n * Map of light sources in this View.\n */\n readonly lights: { [key: string]: AmbientLight | PointLight | DirLight };\n\n /**\n * List of light sources in this View.\n */\n readonly lightsList: (AmbientLight | PointLight | DirLight)[] = [];\n\n gammaOutput: boolean;\n\n /**\n * Map of the all {@link @xeokit/viewer!ViewLayer}s in this View.\n *\n * Each {@link @xeokit/viewer!ViewLayer} is mapped here by {@link @xeokit/viewer!ViewLayer.id}.\n */\n readonly layers: { [key: string]: ViewLayer };\n\n /**\n * Whether the View will automatically create {@link @xeokit/viewer!ViewLayer | ViewLayers} on-demand\n * as {@link RendererObject | ViewerObjects} are created.\n *\n * When ````true```` (default), the View will automatically create {@link @xeokit/viewer!ViewLayer | ViewLayers} as needed for each new\n * {@link RendererObject.layerId} encountered, including a \"default\" ViewLayer for ViewerObjects that have no\n * layerId. This default setting therefore ensures that a ViewObject is created in the View for every SceneObject that is created.\n *\n * If you set this ````false````, however, then the View will only create {@link @xeokit/viewer!ViewObject | ViewObjects} for {@link RendererObject | ViewerObjects} that have\n * a {@link RendererObject.layerId} that matches the ID of a {@link @xeokit/viewer!ViewLayer} that you have explicitly created previously with {@link View.createLayer}.\n *\n * Setting this parameter false enables Views to contain only the ViewObjects that they actually need to show, i.e. to represent only\n * ViewerObjects that they need to view. This enables a View to avoid wastefully creating and maintaining ViewObjects for ViewerObjects\n * that it never needs to show.\n */\n readonly autoLayers: boolean;\n\n /**\n * Emits an event each time the canvas boundary changes.\n *\n * @event\n */\n readonly onBoundary: EventEmitter;\n\n /**\n * Emits an event each time a {@link @xeokit/viewer!ViewObject} is created in this View.\n *\n * @event\n */\n readonly onObjectCreated: EventEmitter;\n\n /**\n * Emits an event each time a {@link @xeokit/viewer!ViewObject} is destroyed in this View.\n *\n * @event\n */\n readonly onObjectDestroyed: EventEmitter;\n\n /**\n * Emits an event each time the visibility of a {@link @xeokit/viewer!ViewObject} changes in this View.\n *\n * ViewObjects are shown and hidden with {@link View.setObjectsVisible}, {@link @xeokit/viewer!ViewLayer.setObjectsVisible} or {@link @xeokit/viewer!ViewObject.visible}.\n *\n * @event\n */\n readonly onObjectVisibility: EventEmitter;\n\n /**\n * Emits an event each time the X-ray state of a {@link @xeokit/viewer!ViewObject} changes in this View.\n *\n * ViewObjects are X-rayed with {@link View.setObjectsXRayed}, {@link @xeokit/viewer!ViewLayer.setObjectsXRayed} or {@link @xeokit/viewer!ViewObject.xrayed}.\n *\n * @event\n */\n readonly onObjectXRayed: EventEmitter;\n\n /**\n * Emits an event each time a {@link @xeokit/viewer!ViewLayer} is created in this View.\n *\n * Layers are created explicitly with {@link View.createLayer}, or implicitly with {@link View.createModel} and {@link CreateModelParams.layerId}.\n *\n * @event\n */\n readonly onLayerCreated: EventEmitter;\n\n /**\n * Emits an event each time a {@link @xeokit/viewer!ViewLayer} in this View is destroyed.\n *\n * ViewLayers are destroyed explicitly with {@link @xeokit/viewer!ViewLayer.destroy}, or implicitly when they become empty and {@link View.autoLayers} is false.\n *\n * @event\n */\n readonly onLayerDestroyed: EventEmitter;\n\n /**\n * Emits an event each time a {@link SectionPlane} is created in this View.\n *\n * @event\n */\n readonly onSectionPlaneCreated: EventEmitter;\n\n /**\n * Emits an event each time a {@link SectionPlane} in this View is destroyed.\n *\n * @event\n */\n readonly onSectionPlaneDestroyed: EventEmitter;\n\n /**\n * Emits an event each time a snapshot is initiated with {@link View.getSnapshot}.\n *\n * @event\n */\n readonly onSnapshotStarted: EventEmitter;\n\n /**\n * Emits an event each time a snapshot is completed with {@link View.getSnapshot}.\n *\n * @event\n */\n readonly onSnapshotFinished: EventEmitter;\n\n #onTick: () => void;\n\n #renderMode: number = QualityRender;\n\n #backgroundColor: FloatArrayParam;\n #backgroundColorFromAmbientLight: boolean;\n #numObjects: number;\n #objectIds: string[] | null;\n #numVisibleObjects: number;\n #visibleObjectIds: string[] | null;\n #numXRayedObjects: number;\n #xrayedObjectIds: string[] | null;\n #numHighlightedObjects: number;\n #highlightedObjectIds: string[] | null;\n #numSelectedObjects: number;\n #selectedObjectIds: string[] | null;\n #numColorizedObjects: number;\n #colorizedObjectIds: string[] | null;\n #numOpacityObjects: number;\n #opacityObjectIds: string[] | null;\n #qualityRender: boolean;\n #lightsHash: string | null = null;\n #sectionPlanesHash: string | null = null;\n #snapshotBegun: boolean;\n\n /**\n * @private\n */\n constructor(options: {\n viewer: Viewer;\n origin?: number[];\n scale?: number;\n units?: number;\n elementId?: string;\n htmlElement: HTMLElement;\n backgroundColor?: any[];\n backgroundColorFromAmbientLight?: boolean;\n premultipliedAlpha?: boolean;\n transparent?: boolean;\n qualityRender?: boolean;\n autoLayers?: boolean;\n }) {\n super(null, options);\n\n this.viewer = options.viewer;\n\n const canvas =\n options.htmlElement ||\n document.getElementById(options.elementId);\n\n if (!(canvas instanceof HTMLElement)) {\n throw \"Mandatory View config expected: valid HTMLElement\";\n }\n\n this.htmlElement = canvas;\n this.viewIndex = 0;\n this.objects = {};\n this.visibleObjects = {};\n this.xrayedObjects = {};\n this.highlightedObjects = {};\n this.selectedObjects = {};\n this.colorizedObjects = {};\n this.opacityObjects = {};\n this.sectionPlanes = {};\n this.sectionPlanesList = [];\n this.lights = {};\n this.lightsList = [];\n this.layers = {};\n\n this.#numObjects = 0;\n this.#objectIds = null;\n this.#numVisibleObjects = 0;\n this.#visibleObjectIds = null;\n this.#numXRayedObjects = 0;\n this.#xrayedObjectIds = null;\n this.#numHighlightedObjects = 0;\n this.#highlightedObjectIds = null;\n this.#numSelectedObjects = 0;\n this.#selectedObjectIds = null;\n this.#numColorizedObjects = 0;\n this.#colorizedObjectIds = null;\n this.#numOpacityObjects = 0;\n this.#opacityObjectIds = null;\n this.#qualityRender = !!options.qualityRender;\n this.gammaOutput = true;\n this.#snapshotBegun = false;\n\n this.#sectionPlanesHash = null;\n this.#lightsHash = null;\n\n // this.canvas = new View(this, {\n // canvas: canvas,\n // transparent: !!options.transparent,\n // backgroundColor: options.backgroundColor,\n // backgroundColorFromAmbientLight: !!options.backgroundColorFromAmbientLight,\n // premultipliedAlpha: !!options.premultipliedAlpha\n // });\n //\n // this.canvas.onBoundary.subscribe(() => {\n // this.redraw();\n // });\n\n this.onBoundary = new EventEmitter(\n new EventDispatcher()\n );\n\n this.#backgroundColor = createVec3([\n options.backgroundColor ? options.backgroundColor[0] : 1,\n options.backgroundColor ? options.backgroundColor[1] : 1,\n options.backgroundColor ? options.backgroundColor[2] : 1,\n ]);\n this.#backgroundColorFromAmbientLight =\n !!options.backgroundColorFromAmbientLight;\n this.transparent = !!options.transparent;\n // this.htmlElement.width = this.htmlElement.clientWidth;\n // this.htmlElement.height = this.htmlElement.clientHeight;\n this.boundary = [\n this.htmlElement.offsetLeft,\n this.htmlElement.offsetTop,\n this.htmlElement.clientWidth,\n this.htmlElement.clientHeight,\n ];\n\n // Publish htmlElement size and position changes on each scene tick\n\n let lastWindowWidth = 0;\n let lastWindowHeight = 0;\n let lastViewWidth = 0;\n let lastViewHeight = 0;\n let lastViewOffsetLeft = 0;\n let lastViewOffsetTop = 0;\n let lastParent: null | HTMLElement = null;\n\n let lastResolutionScale: null | number = null;\n\n this.#onTick = this.viewer.onTick.subscribe(() => {\n const htmlElement = this.htmlElement;\n const newResolutionScale = this.resolutionScale.resolutionScale !== lastResolutionScale;\n const newWindowSize =\n window.innerWidth !== lastWindowWidth ||\n window.innerHeight !== lastWindowHeight;\n const newViewSize =\n htmlElement.clientWidth !== lastViewWidth ||\n htmlElement.clientHeight !== lastViewHeight;\n const newViewPos =\n htmlElement.offsetLeft !== lastViewOffsetLeft ||\n htmlElement.offsetTop !== lastViewOffsetTop;\n const parent = htmlElement.parentElement;\n const newParent = parent !== lastParent;\n\n if (\n newResolutionScale ||\n newWindowSize ||\n newViewSize ||\n newViewPos ||\n newParent\n ) {\n // this._spinner._adjustPosition();\n if (newResolutionScale || newViewSize || newViewPos) {\n const newWidth = htmlElement.clientWidth;\n const newHeight = htmlElement.clientHeight;\n if (newResolutionScale || newViewSize) {\n //////////////////////////////////////////////////////////////////////////////////////\n // TODO: apply resolutionscale properly\n //////////////////////////////////////////////////////////////////////////////////////\n // htmlElement.width = Math.round(\n // htmlElement.clientWidth * this.resolutionScale.resolutionScale\n // );\n // htmlElement.height = Math.round(\n // htmlElement.clientHeight * this.resolutionScale.resolutionScale\n // );\n }\n const boundary = this.boundary;\n boundary[0] = htmlElement.offsetLeft;\n boundary[1] = htmlElement.offsetTop;\n boundary[2] = newWidth;\n boundary[3] = newHeight;\n if (!newResolutionScale || newViewSize) {\n this.onBoundary.dispatch(this, boundary);\n }\n lastViewWidth = newWidth;\n lastViewHeight = newHeight;\n }\n\n if (newResolutionScale) {\n // lastResolutionScale = this.#resolutionScale;\n }\n if (newWindowSize) {\n lastWindowWidth = window.innerWidth;\n lastWindowHeight = window.innerHeight;\n }\n if (newViewPos) {\n lastViewOffsetLeft = htmlElement.offsetLeft;\n lastViewOffsetTop = htmlElement.offsetTop;\n }\n lastParent = parent;\n }\n });\n\n this.camera = new Camera(this);\n\n this.sao = new SAO(this, {});\n\n this.texturing = new Texturing(this, {});\n\n this.cameraFlight = new CameraFlightAnimation(this, {\n duration: 0.5,\n });\n\n this.metrics = new Metrics(this, {\n units: options.units,\n scale: options.scale,\n origin: options.origin,\n });\n\n this.xrayMaterial = new EmphasisMaterial(this, {\n fill: true,\n fillColor: [0.9, 0.7, 0.6],\n fillAlpha: 0.4,\n edges: true,\n edgeColor: [0.5, 0.4, 0.4],\n edgeAlpha: 1.0,\n edgeWidth: 1,\n });\n\n this.highlightMaterial = new EmphasisMaterial(this, {\n fill: true,\n fillColor: [1.0, 1.0, 0.0],\n fillAlpha: 0.5,\n edges: true,\n edgeColor: [0.5, 0.4, 0.4],\n edgeAlpha: 1.0,\n edgeWidth: 1,\n });\n\n this.selectedMaterial = new EmphasisMaterial(this, {\n fill: true,\n fillColor: [0.0, 1.0, 0.0],\n fillAlpha: 0.5,\n edges: true,\n edgeColor: [0.4, 0.5, 0.4],\n edgeAlpha: 1.0,\n edgeWidth: 1,\n });\n\n this.edges = new Edges(this, {\n edgeColor: [0.0, 0.0, 0.0],\n edgeAlpha: 1.0,\n edgeWidth: 1,\n enabled: true,\n renderModes: [QualityRender],\n });\n\n this.resolutionScale = new ResolutionScale(this, {\n enabled: true,\n renderModes: [FastRender],\n resolutionScale: 1.0\n });\n\n this.pointsMaterial = new PointsMaterial(this, {\n pointSize: 1,\n roundPoints: true,\n perspectivePoints: true,\n minPerspectivePointSize: 1,\n maxPerspectivePointSize: 6,\n filterIntensity: false,\n minIntensity: 0,\n maxIntensity: 1,\n });\n\n this.linesMaterial = new LinesMaterial(this, {\n lineWidth: 1,\n });\n\n this.lights = {};\n\n this.#qualityRender = !!options.qualityRender;\n\n this.autoLayers = options.autoLayers !== false;\n\n this.onObjectCreated = new EventEmitter(\n new EventDispatcher()\n );\n\n this.onObjectDestroyed = new EventEmitter(\n new EventDispatcher()\n );\n\n this.onObjectVisibility = new EventEmitter(\n new EventDispatcher()\n );\n\n this.onObjectXRayed = new EventEmitter(\n new EventDispatcher()\n );\n\n this.onLayerCreated = new EventEmitter(\n new EventDispatcher()\n );\n\n this.onLayerDestroyed = new EventEmitter(\n new EventDispatcher()\n );\n\n this.onSectionPlaneCreated = new EventEmitter(\n new EventDispatcher()\n );\n\n this.onSectionPlaneDestroyed = new EventEmitter(\n new EventDispatcher()\n );\n\n this.onSnapshotStarted = new EventEmitter(\n new EventDispatcher()\n );\n\n this.onSnapshotFinished = new EventEmitter(\n new EventDispatcher()\n );\n\n new AmbientLight(this, {\n color: [1.0, 1.0, 1.0],\n intensity: 1.0\n });\n\n new DirLight(this, {\n dir: [0.8, -.5, -0.5],\n color: [0.8, 0.8, 1.0],\n intensity: 1.0,\n space: \"world\"\n });\n\n new DirLight(this, {\n dir: [-0.8, -1.0, 0.5],\n color: [1, 1, .9],\n intensity: 1.0,\n space: \"world\"\n });\n\n new DirLight(this, {\n dir: [-0.8, -1.0, -0.5],\n color: [.0, .0, 1],\n intensity: 1.0,\n space: \"world\"\n });\n\n }\n\n /**\n * @private\n */\n initViewObjects() {\n for (const id in this.viewer.scene.models) {\n this.#createViewObjectsForSceneModel(this.viewer.scene.models[id]);\n }\n this.viewer.scene.onModelCreated.subscribe((scene: Scene, sceneModel: SceneModel) => {\n this.#createViewObjectsForSceneModel(sceneModel);\n }\n );\n this.viewer.scene.onModelDestroyed.subscribe((scene: Scene, sceneModel: SceneModel) => {\n this.#destroyViewObjectsForSceneModel(sceneModel);\n }\n );\n }\n\n #createViewObjectsForSceneModel(sceneModel: SceneModel) {\n // The Renderer has a RendererObject for each object, through which a ViewObject can\n // push state changes into the Renderer for its object.\n // The RendererObject\n const sceneObjects = sceneModel.objects;\n const rendererObjects = this.viewer.renderer.rendererObjects;\n for (let id in sceneObjects) {\n const sceneObject = sceneObjects[id];\n const rendererObject = rendererObjects[id];\n const layerId = sceneObject.layerId || \"default\";\n let viewLayer = this.layers[layerId];\n if (!viewLayer) {\n if (!this.autoLayers) {\n continue;\n }\n viewLayer = new ViewLayer({\n id: layerId,\n view: this,\n viewer: this.viewer,\n });\n this.layers[layerId] = viewLayer;\n viewLayer.onDestroyed.one(() => {\n delete this.layers[viewLayer.id];\n this.onLayerDestroyed.dispatch(this, viewLayer);\n });\n this.onLayerCreated.dispatch(this, viewLayer);\n }\n const viewObject = new ViewObject(viewLayer, sceneObject, rendererObject);\n viewLayer.registerViewObject(viewObject);\n this.registerViewObject(viewObject);\n this.onObjectCreated.dispatch(this, viewObject);\n }\n }\n\n /**\n * Sets which rendering mode this View is in.\n *\n * Supported rendering modes are:\n *\n * * {@link @xeokit/constants!FastRender | FastRender} - Fast rendering mode for smooth interactivity.\n * * {@link @xeokit/constants!QualityRender | QualityRender} - Quality rendering mode for maximum image fidelity.\n *\n * Default value is {@link @xeokit/constants!QualityRender | QualityRender}.\n *\n * @param renderMode The rendering mode\n * @returns *{@link @xeokit/core!SDKError | SDKError}*\n * * Rendering mode not supported.\n */\n setRenderMode(renderMode: number): SDKError | void {\n if (renderMode !== QualityRender && renderMode !== FastRender) {\n return new SDKError(`Failed to set render mode for View - unsupported mode - supported modes are FastRender and QualityRender`);\n }\n this.#renderMode = renderMode;\n }\n\n /**\n * Gets which rendering mode this View is in.\n *\n * Supported rendering modes are:\n *\n * * {@link @xeokit/constants!FastRender | FastRender} - Fast rendering mode for smooth interactivity.\n * * {@link @xeokit/constants!QualityRender | QualityRender} - Quality rendering mode for maximum image fidelity.\n *\n * Default value is {@link @xeokit/constants!QualityRender | QualityRender}.\n */\n get renderMode(): number {\n return this.#renderMode;\n }\n\n /**\n *\n */\n get aabb(): FloatArrayParam {\n return this.viewer.scene.aabb;\n }\n\n /**\n * Gets the canvas clear color.\n *\n * Default value is ````[1, 1, 1]````.\n */\n get backgroundColor(): FloatArrayParam {\n return this.#backgroundColor;\n }\n\n /**\n * Sets the canvas clear color.\n *\n * Default value is ````[1, 1, 1]````.\n */\n set backgroundColor(value: FloatArrayParam) {\n if (value) {\n this.#backgroundColor[0] = value[0];\n this.#backgroundColor[1] = value[1];\n this.#backgroundColor[2] = value[2];\n } else {\n this.#backgroundColor[0] = 1.0;\n this.#backgroundColor[1] = 1.0;\n this.#backgroundColor[2] = 1.0;\n }\n this.redraw();\n }\n\n /**\n * Gets whether the canvas clear color will be derived from {@link AmbientLight} or {@link View#backgroundColor}\n * when {@link View#transparent} is ```true```.\n *\n * When {@link View#transparent} is ```true``` and this is ````true````, then the canvas clear color will\n * be taken from the ambient light color.\n *\n * When {@link View#transparent} is ```true``` and this is ````false````, then the canvas clear color will\n * be taken from {@link View#backgroundColor}.\n *\n * Default value is ````true````.\n */\n get backgroundColorFromAmbientLight(): boolean {\n return this.#backgroundColorFromAmbientLight;\n }\n\n /**\n * Sets if the canvas background color is derived from an {@link AmbientLight}.\n *\n * This only has effect when the canvas is not transparent. When not enabled, the background color\n * will be the canvas element's HTML/CSS background color.\n *\n * Default value is ````true````.\n */\n set backgroundColorFromAmbientLight(\n backgroundColorFromAmbientLight: boolean\n ) {\n this.#backgroundColorFromAmbientLight =\n backgroundColorFromAmbientLight !== false;\n }\n\n /**\n * Gets the gamma factor.\n */\n get gammaFactor() {\n // TODO\n return 1.0;\n }\n\n /**\n * Gets whether quality rendering is enabled for this View.\n *\n * Default is ````false````.\n */\n get qualityRender(): boolean {\n return this.#qualityRender;\n }\n\n /**\n * Sets whether quality rendering is enabled for this View.\n *\n * Default is ````false````.\n */\n set qualityRender(value: boolean) {\n if (this.#qualityRender === value) {\n return;\n }\n this.#qualityRender = value;\n this.redraw();\n }\n\n /**\n * Gets the number of {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n */\n get numObjects(): number {\n return this.#numObjects;\n }\n\n /**\n * Gets the IDs of the {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n */\n get objectIds(): string[] {\n if (!this.#objectIds) {\n this.#objectIds = Object.keys(this.objects);\n }\n return this.#objectIds;\n }\n\n /**\n * Gets the number of visible {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n */\n get numVisibleObjects(): number {\n return this.#numVisibleObjects;\n }\n\n /**\n * Gets the IDs of the visible {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n */\n get visibleObjectIds(): string[] {\n if (!this.#visibleObjectIds) {\n this.#visibleObjectIds = Object.keys(this.visibleObjects);\n }\n return this.#visibleObjectIds;\n }\n\n /**\n * Gets the number of X-rayed {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n */\n get numXRayedObjects(): number {\n return this.#numXRayedObjects;\n }\n\n /**\n * Gets the IDs of the X-rayed {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n */\n get xrayedObjectIds(): string[] {\n if (!this.#xrayedObjectIds) {\n this.#xrayedObjectIds = Object.keys(this.xrayedObjects);\n }\n return this.#xrayedObjectIds;\n }\n\n /**\n * Gets the number of highlighted {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n */\n get numHighlightedObjects(): number {\n return this.#numHighlightedObjects;\n }\n\n /**\n * Gets the IDs of the highlighted {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n */\n get highlightedObjectIds(): string[] {\n if (!this.#highlightedObjectIds) {\n this.#highlightedObjectIds = Object.keys(this.highlightedObjects);\n }\n return this.#highlightedObjectIds;\n }\n\n /**\n * Gets the number of selected {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n */\n get numSelectedObjects(): number {\n return this.#numSelectedObjects;\n }\n\n /**\n * Gets the IDs of the selected {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n */\n get selectedObjectIds(): string[] {\n if (!this.#selectedObjectIds) {\n this.#selectedObjectIds = Object.keys(this.selectedObjects);\n }\n return this.#selectedObjectIds;\n }\n\n /**\n * Gets the number of colorized {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n */\n get numColorizedObjects(): number {\n return this.#numColorizedObjects;\n }\n\n /**\n * Gets the IDs of the colorized {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n */\n get colorizedObjectIds(): string[] {\n if (!this.#colorizedObjectIds) {\n this.#colorizedObjectIds = Object.keys(this.colorizedObjects);\n }\n return this.#colorizedObjectIds;\n }\n\n /**\n * Gets the IDs of the {@link @xeokit/viewer!ViewObject | ViewObjects} in this View that have updated opacities.\n */\n get opacityObjectIds(): string[] {\n if (!this.#opacityObjectIds) {\n this.#opacityObjectIds = Object.keys(this.opacityObjects);\n }\n return this.#opacityObjectIds;\n }\n\n /**\n * Gets the number of {@link @xeokit/viewer!ViewObject | ViewObjects} in this View that have updated opacities.\n */\n get numOpacityObjects(): number {\n return this.#numOpacityObjects;\n }\n\n /**\n * @private\n */\n registerViewObject(viewObject: ViewObject) {\n this.objects[viewObject.id] = viewObject;\n this.#numObjects++;\n this.#objectIds = null; // Lazy regenerate\n }\n\n /**\n * @private\n */\n deregisterViewObject(viewObject: ViewObject) {\n delete this.objects[viewObject.id];\n delete this.visibleObjects[viewObject.id];\n delete this.xrayedObjects[viewObject.id];\n delete this.highlightedObjects[viewObject.id];\n delete this.selectedObjects[viewObject.id];\n delete this.colorizedObjects[viewObject.id];\n delete this.opacityObjects[viewObject.id];\n this.#numObjects--;\n this.#objectIds = null; // Lazy regenerate\n }\n\n /**\n * @private\n */\n objectVisibilityUpdated(\n viewObject: ViewObject,\n visible: boolean,\n notify: boolean = true\n ) {\n if (visible) {\n this.visibleObjects[viewObject.id] = viewObject;\n this.#numVisibleObjects++;\n } else {\n delete this.visibleObjects[viewObject.id];\n this.#numVisibleObjects--;\n }\n this.#visibleObjectIds = null; // Lazy regenerate\n if (notify) {\n this.onObjectVisibility.dispatch(this, viewObject);\n }\n }\n\n /**\n * @private\n */\n objectXRayedUpdated(\n viewObject: ViewObject,\n xrayed: boolean,\n notify: boolean = true\n ) {\n if (xrayed) {\n this.xrayedObjects[viewObject.id] = viewObject;\n this.#numXRayedObjects++;\n } else {\n delete this.xrayedObjects[viewObject.id];\n this.#numXRayedObjects--;\n }\n this.#xrayedObjectIds = null; // Lazy regenerate\n if (notify) {\n this.onObjectXRayed.dispatch(this, viewObject);\n }\n }\n\n /**\n * @private\n */\n objectHighlightedUpdated(viewObject: ViewObject, highlighted: boolean) {\n if (highlighted) {\n this.highlightedObjects[viewObject.id] = viewObject;\n this.#numHighlightedObjects++;\n } else {\n delete this.highlightedObjects[viewObject.id];\n this.#numHighlightedObjects--;\n }\n this.#highlightedObjectIds = null; // Lazy regenerate\n }\n\n /**\n * @private\n */\n objectSelectedUpdated(viewObject: ViewObject, selected: boolean) {\n if (selected) {\n this.selectedObjects[viewObject.id] = viewObject;\n this.#numSelectedObjects++;\n } else {\n delete this.selectedObjects[viewObject.id];\n this.#numSelectedObjects--;\n }\n this.#selectedObjectIds = null; // Lazy regenerate\n }\n\n /**\n * @private\n */\n objectColorizeUpdated(viewObject: ViewObject, colorized: boolean) {\n if (colorized) {\n this.colorizedObjects[viewObject.id] = viewObject;\n this.#numColorizedObjects++;\n } else {\n delete this.colorizedObjects[viewObject.id];\n this.#numColorizedObjects--;\n }\n this.#colorizedObjectIds = null; // Lazy regenerate\n }\n\n /**\n * @private\n */\n objectOpacityUpdated(viewObject: ViewObject, opacityUpdated: boolean) {\n if (opacityUpdated) {\n this.opacityObjects[viewObject.id] = viewObject;\n this.#numOpacityObjects++;\n } else {\n delete this.opacityObjects[viewObject.id];\n this.#numOpacityObjects--;\n }\n this.#opacityObjectIds = null; // Lazy regenerate\n }\n\n /**\n * Creates a {@link SectionPlane} in this View.\n *\n * @param sectionPlaneParams\n */\n createSectionPlane(sectionPlaneParams: SectionPlaneParams): SectionPlane {\n let id = sectionPlaneParams.id || createUUID();\n if (this.sectionPlanes[id]) {\n this.error(\n `SectionPlane with ID \"${id}\" already exists - will randomly-generate ID`\n );\n id = createUUID();\n }\n const sectionPlane = new SectionPlane(this, sectionPlaneParams);\n this.#registerSectionPlane(sectionPlane);\n sectionPlane.onDestroyed.one(() => {\n this.#deregisterSectionPlane(sectionPlane);\n });\n return sectionPlane;\n }\n\n /**\n * Destroys the {@link SectionPlane}s in this View.\n */\n clearSectionPlanes(): void {\n const objectIds = Object.keys(this.sectionPlanes);\n for (let i = 0, len = objectIds.length; i < len; i++) {\n this.sectionPlanes[objectIds[i]].destroy();\n }\n this.sectionPlanesList.length = 0;\n this.#sectionPlanesHash = null;\n }\n\n /**\n * @private\n */\n getSectionPlanesHash() {\n if (this.#sectionPlanesHash) {\n return this.#sectionPlanesHash;\n }\n if (this.sectionPlanesList.length === 0) {\n return (this.#sectionPlanesHash = \";\");\n }\n let sectionPlane;\n const hashParts = [];\n for (let i = 0, len = this.sectionPlanesList.length; i < len; i++) {\n sectionPlane = this.sectionPlanesList[i];\n hashParts.push(\"cp\");\n }\n hashParts.push(\";\");\n this.#sectionPlanesHash = hashParts.join(\"\");\n return this.#sectionPlanesHash;\n }\n\n /**\n * @private\n */\n registerLight(light: PointLight | DirLight | AmbientLight) {\n this.lightsList.push(light);\n this.lights[light.id] = light;\n this.#lightsHash = null;\n this.rebuild();\n }\n\n /**\n * @private\n */\n deregisterLight(light: PointLight | DirLight | AmbientLight) {\n for (let i = 0, len = this.lightsList.length; i < len; i++) {\n if (this.lightsList[i].id === light.id) {\n this.lightsList.splice(i, 1);\n this.#lightsHash = null;\n delete this.lights[light.id];\n this.rebuild();\n return;\n }\n }\n }\n\n /**\n * Destroys the light sources in this View.\n */\n clearLights(): void {\n const lightIds = Object.keys(this.lights);\n for (let i = 0, len = lightIds.length; i < len; i++) {\n this.lights[lightIds[i]].destroy();\n }\n }\n\n /**\n * @private\n */\n getLightsHash() {\n if (this.#lightsHash) {\n return this.#lightsHash;\n }\n if (this.lightsList.length === 0) {\n return (this.#lightsHash = \";\");\n }\n const hashParts = [];\n const lights = this.lightsList;\n for (let i = 0, len = lights.length; i < len; i++) {\n const light: any = lights[i];\n hashParts.push(\"/\");\n hashParts.push(light instanceof DirLight ? \"d\" : \"p\");\n hashParts.push(light.space === \"world\" ? \"w\" : \"v\");\n if (light.castsShadow) {\n hashParts.push(\"sh\");\n }\n }\n // if (this.lightMaps.length > 0) {\n // hashParts.push(\"/lm\");\n // }\n // if (this.reflectionMaps.length > 0) {\n // hashParts.push(\"/rm\");\n // }\n hashParts.push(\";\");\n this.#lightsHash = hashParts.join(\"\");\n return this.#lightsHash;\n }\n\n /**\n * @private\n */\n rebuild() {\n this.viewer.renderer.setNeedsRebuild(this.viewIndex);\n }\n\n /**\n * @private\n */\n redraw() {\n this.viewer.renderer.setImageDirty(this.viewIndex);\n }\n\n /**\n * @private\n */\n getAmbientColorAndIntensity(): FloatArrayParam {\n return [0.5, 0.5, 0.5, 1];\n }\n\n /**\n * Updates the visibility of the given {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n *\n * - Updates {@link @xeokit/viewer!ViewObject.visible} on the Objects with the given IDs.\n * - Updates {@link View.visibleObjects} and {@link View.numVisibleObjects}.\n *\n * @param {String[]} objectIds Array of {@link @xeokit/viewer!ViewObject.id} values.\n * @param visible Whether or not to cull.\n * @returns True if any {@link @xeokit/viewer!ViewObject | ViewObjects} were updated, else false if all updates were redundant and not applied.\n */\n setObjectsVisible(objectIds: string[], visible: boolean): boolean {\n return this.withObjects(objectIds, (viewObject: ViewObject) => {\n const changed = viewObject.visible !== visible;\n viewObject.visible = visible;\n return changed;\n });\n }\n\n /**\n * Updates the collidability of the given {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n *\n * Updates {@link @xeokit/viewer!ViewObject.collidable} on the Objects with the given IDs.\n *\n * @param {String[]} objectIds Array of {@link @xeokit/viewer!ViewObject.id} values.\n * @param collidable Whether or not to cull.\n * @returns True if any {@link @xeokit/viewer!ViewObject | ViewObjects} were updated, else false if all updates were redundant and not applied.\n */\n setObjectsCollidable(objectIds: string[], collidable: boolean): boolean {\n return this.withObjects(objectIds, (viewObject: ViewObject) => {\n const changed = viewObject.collidable !== collidable;\n viewObject.collidable = collidable;\n return changed;\n });\n }\n\n /**\n * Updates the culled status of the given {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n *\n * Updates {@link @xeokit/viewer!ViewObject.culled} on the Objects with the given IDs.\n *\n * @param {String[]} objectIds Array of {@link @xeokit/viewer!ViewObject.id} values.\n * @param culled Whether or not to cull.\n * @returns True if any {@link @xeokit/viewer!ViewObject | ViewObjects} were updated, else false if all updates were redundant and not applied.\n */\n setObjectsCulled(objectIds: string[], culled: boolean): boolean {\n return this.withObjects(objectIds, (viewObject: ViewObject) => {\n const changed = viewObject.culled !== culled;\n viewObject.culled = culled;\n return changed;\n });\n }\n\n /**\n * Selects or deselects the given {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n *\n * - Updates {@link @xeokit/viewer!ViewObject.selected} on the Objects with the given IDs.\n * - Updates {@link View.selectedObjects} and {@link View.numSelectedObjects}.\n *\n * @param objectIds One or more {@link @xeokit/viewer!ViewObject.id} values.\n * @param selected Whether or not to select.\n * @returns True if any {@link @xeokit/viewer!ViewObject | ViewObjects} were updated, else false if all updates were redundant and not applied.\n */\n setObjectsSelected(objectIds: string[], selected: boolean): boolean {\n return this.withObjects(objectIds, (viewObject: ViewObject) => {\n const changed = viewObject.selected !== selected;\n viewObject.selected = selected;\n return changed;\n });\n }\n\n /**\n * Highlights or un-highlights the given {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n *\n * - Updates {@link @xeokit/viewer!ViewObject.highlighted} on the Objects with the given IDs.\n * - Updates {@link View.highlightedObjects} and {@link View.numHighlightedObjects}.\n *\n * @param objectIds One or more {@link @xeokit/viewer!ViewObject.id} values.\n * @param highlighted Whether or not to highlight.\n * @returns True if any {@link @xeokit/viewer!ViewObject | ViewObjects} were updated, else false if all updates were redundant and not applied.\n */\n setObjectsHighlighted(objectIds: string[], highlighted: boolean): boolean {\n return this.withObjects(objectIds, (viewObject: ViewObject) => {\n const changed = viewObject.highlighted !== highlighted;\n viewObject.highlighted = highlighted;\n return changed;\n });\n }\n\n /**\n * Applies or removes X-ray rendering for the given {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n *\n * - Updates {@link @xeokit/viewer!ViewObject.xrayed} on the Objects with the given IDs.\n * - Updates {@link View.xrayedObjects} and {@link View.numXRayedObjects}.\n *\n * @param objectIds One or more {@link @xeokit/viewer!ViewObject.id} values.\n * @param xrayed Whether or not to xray.\n * @returns True if any {@link @xeokit/viewer!ViewObject | ViewObjects} were updated, else false if all updates were redundant and not applied.\n */\n setObjectsXRayed(objectIds: string[], xrayed: boolean): boolean {\n return this.withObjects(objectIds, (viewObject: ViewObject) => {\n const changed = viewObject.xrayed !== xrayed;\n if (changed) {\n viewObject.xrayed = xrayed;\n }\n return changed;\n });\n }\n\n /**\n * Colorizes the given {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n *\n * - Updates {@link @xeokit/viewer!ViewObject.colorize} on the Objects with the given IDs.\n * - Updates {@link View.colorizedObjects} and {@link View.numColorizedObjects}.\n *\n * @param objectIds One or more {@link @xeokit/viewer!ViewObject.id} values.\n * @param colorize - RGB colorize factors in range ````[0..1,0..1,0..1]````.\n * @returns True if any {@link @xeokit/viewer!ViewObject | ViewObjects} changed opacity, else false if all updates were redundant and not applied.\n */\n setObjectsColorized(objectIds: string[], colorize: number[]) {\n return this.withObjects(objectIds, (viewObject: ViewObject) => {\n viewObject.colorize = colorize;\n });\n }\n\n /**\n * Sets the opacity of the given {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n *\n * - Updates {@link @xeokit/viewer!ViewObject.opacity} on the Objects with the given IDs.\n * - Updates {@link View.opacityObjects} and {@link View.numOpacityObjects}.\n *\n * @param objectIds - One or more {@link @xeokit/viewer!ViewObject.id} values.\n * @param opacity - Opacity factor in range ````[0..1]````.\n * @returns True if any {@link @xeokit/viewer!ViewObject | ViewObjects} changed opacity, else false if all updates were redundant and not applied.\n */\n setObjectsOpacity(objectIds: string[], opacity: number): boolean {\n return this.withObjects(objectIds, (viewObject: ViewObject) => {\n const changed = viewObject.opacity !== opacity;\n if (changed) {\n viewObject.opacity = opacity;\n }\n return changed;\n });\n }\n\n /**\n * Sets the pickability of the given {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n *\n * - Updates {@link @xeokit/viewer!ViewObject.pickable} on the Objects with the given IDs.\n * - Enables or disables the ability to pick the given Objects with {@link View.pick}.\n *\n * @param {String[]} objectIds Array of {@link @xeokit/viewer!ViewObject.id} values.\n * @param pickable Whether or not to set pickable.\n * @returns True if any {@link @xeokit/viewer!ViewObject | ViewObjects} were updated, else false if all updates were redundant and not applied.\n */\n setObjectsPickable(objectIds: string[], pickable: boolean): boolean {\n return this.withObjects(objectIds, (viewObject: ViewObject) => {\n const changed = viewObject.pickable !== pickable;\n if (changed) {\n viewObject.pickable = pickable;\n }\n return changed;\n });\n }\n\n /**\n * Sets the clippability of the given {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n *\n * - Updates {@link @xeokit/viewer!ViewObject.clippable} on the Objects with the given IDs.\n * - Enables or disables the ability to clip the given Objects with {@link SectionPlane}.\n *\n * @param {String[]} objectIds Array of {@link @xeokit/viewer!ViewObject.id} values.\n * @param clippable Whether or not to set clippable.\n * @returns True if any {@link @xeokit/viewer!ViewObject | ViewObjects} were updated, else false if all updates were redundant and not applied.\n */\n setObjectsClippable(objectIds: string[], clippable: boolean): boolean {\n return this.withObjects(objectIds, (viewObject: ViewObject) => {\n const changed = viewObject.clippable !== clippable;\n if (changed) {\n viewObject.clippable = clippable;\n }\n return changed;\n });\n }\n\n /**\n * Iterates with a callback over the given {@link @xeokit/viewer!ViewObject | ViewObjects} in this View.\n *\n * @param objectIds One or more {@link @xeokit/viewer!ViewObject.id} values.\n * @param callback Callback to execute on each {@link @xeokit/viewer!ViewObject}.\n * @returns True if any {@link @xeokit/viewer!ViewObject | ViewObjects} were updated, else false if all updates were redundant and not applied.\n */\n withObjects(objectIds: string[], callback: Function): boolean {\n let changed = false;\n for (let i = 0, len = objectIds.length; i < len; i++) {\n const id = objectIds[i];\n let viewObject = this.objects[id];\n if (viewObject) {\n changed = callback(viewObject) || changed;\n }\n }\n return changed;\n }\n\n /**\n * Creates a {@link @xeokit/viewer!ViewLayer} in this View.\n *\n * The ViewLayer is then registered in {@link View.layers}.\n *\n * Since the ViewLayer is created explicitly by this method, the ViewLayer will persist until {@link @xeokit/viewer!ViewLayer.destroy}\n * is called, or the {@link @xeokit/viewer!View} itself is destroyed. If a ViewLayer with the given ID already exists, then the method\n * returns that existing ViewLayer. The method will also ensure that the existing ViewLayer likewise persists.\n *\n * @param viewLayerParams\n * @returns The new ViewLayer\n */\n createLayer(viewLayerParams: ViewLayerParams): ViewLayer {\n let viewLayer = this.layers[viewLayerParams.id];\n if (!viewLayer) {\n viewLayer = new ViewLayer({\n // Automatically creates ViewObjects\n id: viewLayerParams.id,\n view: this,\n viewer: this.viewer,\n });\n this.layers[viewLayerParams.id] = viewLayer;\n this.onLayerCreated.dispatch(this, viewLayer);\n viewLayer.onDestroyed.one(() => {\n delete this.layers[viewLayer.id];\n this.onLayerDestroyed.dispatch(this, viewLayer);\n });\n }\n viewLayer.autoDestroy = false;\n return viewLayer;\n }\n\n /**\n * Attempts to pick a ViewObject in this View.\n *\n * @param pickParams Picking parameters.\n * @param pickResult Picking results, when caller wants to manage them externally.\n * @throws {@link @xeokit/core!SDKError | SDKError}\n * * No View is currently attached to this Renderer.\n * * Can't find a View attached to this Renderer with the given handle.\n * * Illegal picking parameters given.\n * @returns {@link @xeokit/viewer!PickResult}\n * * Picking attempt completed.\n */\n pick(pickParams: PickParams, pickResult?: PickResult): PickResult | null {\n return this.viewer.renderer.pick(this.viewIndex, pickParams, pickResult);\n }\n\n /**\n * Enter snapshot mode.\n *\n * Switches rendering to a hidden snapshot canvas.\n *\n * Exit snapshot mode using {@link Viewer#endSnapshot}.\n */\n beginSnapshot() {\n if (this.#snapshotBegun) {\n return;\n }\n this.viewer.renderer.beginSnapshot(this.viewIndex);\n this.#snapshotBegun = true;\n }\n\n /**\n * Captures a snapshot image of this View.\n *\n * @param snapshotParams\n * @param snapshotResult\n */\n getSnapshot(snapshotParams: SnapshotParams, snapshotResult?: SnapshotResult): SnapshotResult {\n // const needFinishSnapshot = (!this.#snapshotBegun);\n // const resize = (snapshotParams.width !== undefined && snapshotParams.height !== undefined);\n // const canvas = this.htmlElement;\n // const saveWidth = canvas.clientWidth;\n // const saveHeight = canvas.clientHeight;\n // const width = snapshotParams.width ? Math.floor(snapshotParams.width) : canvas.width;\n // const height = snapshotParams.height ? Math.floor(snapshotParams.height) : canvas.height;\n //\n // if (resize) {\n // // canvas.width = width;\n // // canvas.height = height;\n // }\n //\n // if (!this.#snapshotBegun) {\n // this.onSnapshotStarted.dispatch(this, {\n // width,\n // height\n // });\n // }\n\n // if (!snapshotParams.includeGizmos) {\n // this.sendToPlugins(\"snapshotStarting\"); // Tells plugins to hide things that shouldn't be in snapshot\n // }\n //\n // const captured = {};\n // for (let i = 0, len = this._plugins.length; i < len; i++) {\n // const plugin = this._plugins[i];\n // if (plugin.getContainerElement) {\n // const container = plugin.getContainerElement();\n // if (container !== document.body) {\n // if (!captured[container.id]) {\n // captured[container.id] = true;\n // html2canvas(container).then(function (canvas) {\n // document.body.appendChild(canvas);\n // });\n // }\n // }\n // }\n // }\n //\n // this.scene._renderer.renderSnapshot();\n //\n // const imageDataURI = this.scene._renderer.readSnapshot(snapshotParams);\n //\n // if (resize) {\n // canvas.width = saveWidth;\n // canvas.height = saveHeight;\n //\n // this.scene.glRedraw();\n // }\n //\n // if (!snapshotParams.includeGizmos) {\n // this.sendToPlugins(\"snapshotFinished\");\n // }\n //\n // if (needFinishSnapshot) {\n // this.endSnapshot();\n // }\n\n // return imageDataURI;\n return new SnapshotResult();\n }\n\n #registerSectionPlane(sectionPlane: SectionPlane) {\n this.sectionPlanesList.push(sectionPlane);\n this.sectionPlanes[sectionPlane.id] = sectionPlane;\n this.#sectionPlanesHash = null;\n this.rebuild();\n this.onSectionPlaneCreated.dispatch(this, sectionPlane);\n }\n\n #deregisterSectionPlane(sectionPlane: SectionPlane) {\n for (let i = 0, len = this.sectionPlanesList.length; i < len; i++) {\n if (this.sectionPlanesList[i].id === sectionPlane.id) {\n this.sectionPlanesList.splice(i, 1);\n this.#sectionPlanesHash = null;\n delete this.sectionPlanes[sectionPlane.id];\n this.rebuild();\n this.onSectionPlaneDestroyed.dispatch(this, sectionPlane);\n return;\n }\n }\n }\n\n getNumAllocatedSectionPlanes(): number {\n return this.sectionPlanesList.length;\n }\n\n /**\n * Destroys this View.\n *\n * Causes {@link @xeokit/viewer!Viewer | Viewer} to fire a \"viewDestroyed\" event.\n */\n destroy() {\n this.viewer.onTick.unsubscribe(this.#onTick);\n this.#destroyViewLayers();\n this.#destroyViewObjects();\n this.onObjectCreated.clear();\n this.onObjectDestroyed.clear();\n this.onObjectVisibility.clear();\n this.onObjectXRayed.clear();\n this.onLayerCreated.clear();\n this.onLayerDestroyed.clear();\n this.onSectionPlaneCreated.clear();\n this.onSectionPlaneDestroyed.clear();\n super.destroy();\n }\n\n #destroyViewObjectsForSceneModel(sceneModel: SceneModel) {\n const objects = sceneModel.objects;\n for (let id in objects) {\n const object = objects[id];\n const layerId = object.layerId || \"default\";\n let viewLayer = this.layers[layerId];\n const viewObject = this.objects[object.id];\n this.deregisterViewObject(viewObject);\n if (viewLayer) {\n viewLayer.deregisterViewObject(viewObject);\n if (viewLayer.autoDestroy && viewLayer.numObjects === 0) {\n viewLayer.destroy();\n }\n }\n this.onObjectDestroyed.dispatch(this, viewObject);\n }\n }\n\n #destroyViewLayers() {\n const viewLayers = this.layers;\n for (let id in viewLayers) {\n const viewLayer = viewLayers[id];\n viewLayer.destroy();\n }\n }\n\n #destroyViewObjects() {\n const objects = this.objects;\n for (let id in objects) {\n const object = objects[id];\n const sceneObject = object.sceneObject;\n const layerId = sceneObject.layerId || \"default\";\n let viewLayer = this.layers[layerId];\n const viewObject = this.objects[object.id];\n this.deregisterViewObject(viewObject);\n if (viewLayer) {\n viewLayer.deregisterViewObject(viewObject);\n if (viewLayer.autoDestroy && viewLayer.numObjects === 0) {\n viewLayer.destroy();\n }\n }\n this.onObjectDestroyed.dispatch(this, viewObject);\n }\n }\n}\n\nexport {View};\n", "import type {FloatArrayParam} from \"@xeokit/math\";\n\nimport type {ViewLayer} from \"./ViewLayer\";\nimport type {SceneObject} from \"@xeokit/scene\";\nimport type {RendererObject} from \"@xeokit/scene/src/RendererObject\";\nimport {SDKError} from \"@xeokit/core\";\n\n/**\n * Represents and controls the visual state of a {@link @xeokit/scene!SceneModel | SceneObject} in\n * a {@link @xeokit/viewer!View |View's} canvas.\n *\n * ## Summary\n *\n * * Stored in {@link View.objects | View.objects} and {@link @xeokit/viewer!ViewLayer.objects | ViewLayer.objects}\n * * Viewer automatically creates one of these in each existing {@link @xeokit/viewer!View} for each {@link @xeokit/scene!SceneModel | SceneObject} created\n * * {@link @xeokit/scene!SceneObject.layerId | SceneObject.layerId} determines which of the View's {@link @xeokit/viewer!ViewLayer | ViewLayers} to put the ViewObject in\n *\n * ## Overview\n *\n * Every View automatically maintains within itself a ViewObject for each {@link @xeokit/scene!SceneModel | SceneObject} that exists in the {@link @xeokit/viewer!Viewer | Viewer}.\n *\n * Whenever we create a SceneObject, each View will automatically create a corresponding ViewObject within itself. When\n * we destroy a SceneObject, each View will automatically destroy its corresponding ViewObject. The ViewObjects in a View\n * are therefore a manifest of the ViewerObjects in the View.\n *\n * {@link @xeokit/viewer!ViewLayer}.\n */\nexport class ViewObject {\n\n /**\n * Unique ID of this ViewObject within {@link @xeokit/viewer!ViewLayer.objects}.\n */\n public readonly id: string;\n\n /**\n * ID of this ViewObject within the originating system.\n */\n public readonly originalSystemId: string;\n\n /**\n * The ViewLayer to which this ViewObject belongs.\n */\n public readonly layer: ViewLayer;\n\n /**\n * The corresponding {@link @xeokit/scene!SceneObject}.\n */\n public readonly sceneObject: SceneObject;\n\n /**\n * The corresponding {@link RendererObject}.\n * @internal\n */\n #rendererObject: RendererObject;\n\n #state: {\n visible: boolean;\n culled: boolean;\n pickable: boolean;\n clippable: boolean;\n collidable: boolean;\n xrayed: boolean;\n selected: boolean;\n highlighted: boolean;\n colorize: Float32Array;\n colorized: boolean;\n opacityUpdated: boolean;\n };\n\n /**\n * @private\n */\n constructor(layer: ViewLayer, sceneObject: SceneObject, rendererObject: RendererObject) {\n\n this.id = sceneObject.id;\n this.originalSystemId = sceneObject.originalSystemId;\n this.layer = layer;\n this.sceneObject = sceneObject;\n this.#rendererObject = rendererObject;\n\n this.#state = {\n visible: true,\n culled: false,\n pickable: true,\n clippable: true,\n collidable: true,\n xrayed: false,\n selected: false,\n highlighted: false,\n colorize: new Float32Array(4),\n colorized: false,\n opacityUpdated: false,\n };\n\n this.#rendererObject.setVisible(this.layer.view.viewIndex, this.#state.visible);\n\n // this.#rendererObject.initFlags(this.layer.view.viewIndex, this.#state);\n\n this.layer.objectVisibilityUpdated(this, this.#state.visible, true);\n\n //this.#rendererObject.setClippable(this.layer.view.viewIndex, this.#state.clippable);\n\n this.#rendererObject.setPickable(this.layer.view.viewIndex, this.#state.pickable);\n }\n\n /**\n * Gets the World-space axis-aligned 3D boundary of this ViewObject.\n */\n get aabb(): FloatArrayParam {\n return this.sceneObject.aabb;\n }\n\n /**\n * Gets if this ViewObject is visible.\n *\n * * When {@link @xeokit/viewer!ViewObject.visible} is ````true```` the ViewObject will be registered by {@link @xeokit/viewer!ViewObject.id} in {@link @xeokit/viewer!ViewLayer.visibleObjects}.\n * * Each ViewObject is only rendered when {@link @xeokit/viewer!ViewObject.visible} is ````true```` and {@link @xeokit/viewer!ViewObject.culled} is ````false````.\n * * Use {@link @xeokit/viewer!ViewLayer.setObjectsVisible} to batch-update the visibility of ViewObjects, which fires a single event for the batch.\n */\n get visible(): boolean {\n return this.#state.visible;\n }\n\n /**\n * Sets if this ViewObject is visible.\n *\n * * When {@link @xeokit/viewer!ViewObject.visible} is ````true```` the ViewObject will be registered by {@link @xeokit/viewer!ViewObject.id} in {@link @xeokit/viewer!ViewLayer.visibleObjects}.\n * * Each ViewObject is only rendered when {@link @xeokit/viewer!ViewObject.visible} is ````true```` and {@link @xeokit/viewer!ViewObject.culled} is ````false````.\n * * Fires an \"objectVisibility\" event on associated {@link @xeokit/viewer!ViewLayer}s.\n * * Use {@link @xeokit/viewer!ViewLayer.setObjectsVisible} to batch-update the visibility of ViewObjects, which fires a single event for the batch.\n */\n set visible(visible: boolean) {\n if (visible === this.#state.visible) {\n return;\n }\n this.#state.visible = visible;\n const result = this.#rendererObject.setVisible(this.layer.view.viewIndex, visible);\n if (result instanceof SDKError) {\n throw result;\n }\n this.layer.objectVisibilityUpdated(this, visible, true);\n this.layer.redraw();\n }\n\n /**\n * Gets if this ViewObject is X-rayed.\n *\n * * When {@link @xeokit/viewer!ViewObject.xrayed} is ````true```` the ViewObject will be registered by {@link @xeokit/viewer!ViewObject.id} in {@link @xeokit/viewer!ViewLayer.xrayedObjects | ViewLayer.xrayedObjects}.\n * * Use {@link @xeokit/viewer!ViewLayer.setObjectsXRayed} to batch-update the X-rayed state of ViewObjects.\n */\n get xrayed(): boolean {\n return this.#state.xrayed;\n }\n\n /**\n * Sets if this ViewObject is X-rayed.\n *\n * * When {@link @xeokit/viewer!ViewObject.xrayed} is ````true```` the ViewObject will be registered by {@link @xeokit/viewer!ViewObject.id} in {@link @xeokit/viewer!ViewLayer.xrayedObjects | ViewLayer.xrayedObjects}.\n * * Use {@link @xeokit/viewer!ViewLayer.setObjectsXRayed} to batch-update the X-rayed state of ViewObjects.\n */\n set xrayed(xrayed: boolean) {\n if (this.#state.xrayed === xrayed) {\n return;\n }\n this.#state.xrayed = xrayed;\n const result = this.#rendererObject.setXRayed(this.layer.view.viewIndex, xrayed);\n if (result instanceof SDKError) {\n throw result;\n }\n this.layer.objectXRayedUpdated(this, xrayed);\n this.layer.redraw();\n }\n\n /**\n * Gets if this ViewObject is highlighted.\n *\n * * When {@link @xeokit/viewer!ViewObject.highlighted} is ````true```` the ViewObject will be registered by {@link @xeokit/viewer!ViewObject.id} in {@link @xeokit/viewer!ViewLayer.highlightedObjects | ViewLayer.highlightedObjects}.\n * * Use {@link @xeokit/viewer!ViewLayer.setObjectsHighlighted} to batch-update the highlighted state of ViewObjects.\n */\n get highlighted(): boolean {\n return this.#state.highlighted;\n }\n\n /**\n * Sets if this ViewObject is highlighted.\n *\n * * When {@link @xeokit/viewer!ViewObject.highlighted} is ````true```` the ViewObject will be registered by {@link @xeokit/viewer!ViewObject.id} in {@link @xeokit/viewer!ViewLayer.highlightedObjects | ViewLayer.highlightedObjects}.\n * * Use {@link @xeokit/viewer!ViewLayer.setObjectsHighlighted} to batch-update the highlighted state of ViewObjects.\n */\n set highlighted(highlighted: boolean) {\n if (highlighted === this.#state.highlighted) {\n return;\n }\n this.#state.highlighted = highlighted;\n const result = this.#rendererObject.setHighlighted(this.layer.view.viewIndex, highlighted);\n if (result instanceof SDKError) {\n throw result;\n }\n this.layer.objectHighlightedUpdated(this, highlighted);\n this.layer.redraw();\n }\n\n /**\n * Gets if this ViewObject is selected.\n *\n * * When {@link @xeokit/viewer!ViewObject.selected} is ````true```` the ViewObject will be registered by {@link @xeokit/viewer!ViewObject.id} in {@link @xeokit/viewer!ViewLayer.selectedObjects | ViewLayer.selectedObjects}.\n * * Use {@link @xeokit/viewer!ViewLayer.setObjectsSelected} to batch-update the selected state of ViewObjects.\n */\n get selected(): boolean {\n return this.#state.selected;\n }\n\n /**\n * Sets if this ViewObject is selected.\n *\n * * When {@link @xeokit/viewer!ViewObject.selected} is ````true```` the ViewObject will be registered by {@link @xeokit/viewer!ViewObject.id} in {@link @xeokit/viewer!ViewLayer.selectedObjects | ViewLayer.selectedObjects}.\n * * Use {@link @xeokit/viewer!ViewLayer.setObjectsSelected} to batch-update the selected state of ViewObjects.\n */\n set selected(selected: boolean) {\n if (selected === this.#state.selected) {\n return;\n }\n this.#state.selected = selected;\n const result = this.#rendererObject.setSelected(this.layer.view.viewIndex, selected);\n if (result instanceof SDKError) {\n throw result;\n }\n this.layer.objectSelectedUpdated(this, selected);\n this.layer.redraw();\n }\n\n /**\n * Gets if this ViewObject is culled.\n *\n * * The ViewObject is only rendered when {@link @xeokit/viewer!ViewObject.visible} is ````true```` and {@link @xeokit/viewer!ViewObject.culled} is ````false````.\n * * Use {@link @xeokit/viewer!ViewLayer.setObjectsCulled} to batch-update the culled state of ViewObjects.\n */\n get culled(): boolean {\n return this.#state.culled;\n }\n\n /**\n * Sets if this ViewObject is culled.\n *\n * * The ViewObject is only rendered when {@link @xeokit/viewer!ViewObject.visible} is ````true```` and {@link @xeokit/viewer!ViewObject.culled} is ````false````.\n * * Use {@link @xeokit/viewer!ViewLayer.setObjectsCulled} to batch-update the culled state of ViewObjects.\n */\n set culled(culled: boolean) {\n if (culled === this.#state.culled) {\n return;\n }\n const result = this.#rendererObject.setCulled(this.layer.view.viewIndex, culled);\n if (result instanceof SDKError) {\n throw result;\n }\n this.#state.culled = culled;\n this.layer.redraw();\n }\n\n /**\n * Gets if this ViewObject is clippable.\n *\n * * Clipping is done by the {@link SectionPlane}s in {@link @xeokit/viewer!ViewLayer.sectionPlanes}.\n * * Use {@link @xeokit/viewer!ViewLayer.setObjectsClippable} to batch-update the clippable state of ViewObjects.\n */\n get clippable(): boolean {\n return this.#state.clippable;\n }\n\n /**\n * Sets if this ViewObject is clippable.\n *\n * * Clipping is done by the {@link SectionPlane}s in {@link @xeokit/viewer!ViewLayer.sectionPlanes}.\n * * Use {@link @xeokit/viewer!ViewLayer.setObjectsClippable} to batch-update the clippable state of ViewObjects.\n */\n set clippable(clippable: boolean) {\n if (clippable === this.#state.clippable) {\n return;\n }\n const result = this.#rendererObject.setCulled(this.layer.view.viewIndex, clippable);\n if (result instanceof SDKError) {\n throw result;\n }\n this.#state.clippable = clippable;\n this.layer.redraw();\n }\n\n /**\n * Gets if this ViewObject is included in boundary calculations.\n *\n * * When ````true````, the 3D World boundaries returned by {@link @xeokit/viewer!ViewLayer.aabb} will include this ViewObject's boundary.\n * * The ViewObject's 3D boundary is held in {@link @xeokit/scene!SceneObject.aabb}.\n * * Use {@link @xeokit/viewer!ViewLayer.setObjectsCollidable} to batch-update the collidable state of ViewObjects.\n */\n get collidable(): boolean {\n return this.#state.collidable;\n }\n\n /**\n * Sets if this ViewObject included in boundary calculations.\n *\n * * When ````true````, the 3D World boundaries returned by {@link @xeokit/viewer!ViewLayer.aabb} will include this ViewObject's boundary.\n * * The ViewObject's 3D boundary is held in {@link @xeokit/scene!SceneObject.aabb}.\n * * Use {@link @xeokit/viewer!ViewLayer.setObjectsCollidable} to batch-update the collidable state of ViewObjects.\n */\n set collidable(collidable: boolean) {\n if (collidable === this.#state.collidable) {\n return;\n }\n const result = this.#rendererObject.setCollidable(this.layer.view.viewIndex, collidable);\n if (result instanceof SDKError) {\n throw result;\n }\n this.#state.collidable = collidable;\n // this._setAABBDirty();\n // this.layer._aabbDirty = true;\n }\n\n /**\n * Gets if this ViewObject is pickable.\n *\n * * Picking is done with {@link @xeokit/viewer!View.pick}.\n * * Use {@link @xeokit/viewer!ViewLayer.setObjectsPickable} to batch-update the pickable state of ViewObjects.\n */\n get pickable(): boolean {\n return this.#state.pickable;\n }\n\n /**\n * Sets if this ViewObject is pickable.\n *\n * * Picking is done with {@link @xeokit/viewer!View.pick}.\n * * Use {@link @xeokit/viewer!ViewLayer.setObjectsPickable} to batch-update the pickable state of ViewObjects.\n */\n set pickable(pickable: boolean) {\n if (this.#state.pickable === pickable) {\n return;\n }\n const result = this.#rendererObject.setPickable(this.layer.view.viewIndex, pickable);\n if (result instanceof SDKError) {\n throw result;\n }\n this.#state.pickable = pickable;\n // No need to trigger a render;\n // state is only used when picking\n }\n\n /**\n * Gets the RGB colorize color for this ViewObject.\n *\n * * Multiplies by rendered fragment colors.\n * * Each element of the color is in range ````[0..1]````.\n * * Use {@link @xeokit/viewer!ViewLayer.setObjectsColorized} to batch-update the colorized state of ViewObjects.\n */\n get colorize(): Float32Array {\n return this.#state.colorize;\n }\n\n /**\n * Sets the RGB colorize color for this ViewObject.\n *\n * * Multiplies by rendered fragment colors.\n * * Each element of the color is in range ````[0..1]````.\n * * Set to ````null```` or ````undefined```` to reset the colorize color to its default value of ````[1,1,1]````.\n * * Use {@link @xeokit/viewer!ViewLayer.setObjectsColorized} to batch-update the colorized state of ViewObjects.\n */\n set colorize(value: FloatArrayParam | undefined | null) {\n let colorize = this.#state.colorize;\n if (value) {\n colorize[0] = value[0];\n colorize[1] = value[1];\n colorize[2] = value[2];\n } else {\n colorize[0] = 1;\n colorize[1] = 1;\n colorize[2] = 1;\n }\n const result = this.#rendererObject.setColorize(this.layer.view.viewIndex, colorize);\n if (result instanceof SDKError) {\n throw result;\n }\n this.#state.colorized = !!value;\n this.layer.objectColorizeUpdated(this, this.#state.colorized);\n this.layer.redraw();\n }\n\n /**\n * Gets the opacity factor for this ViewObject.\n *\n * * This is a factor in range ````[0..1]```` which multiplies by the rendered fragment alphas.\n * * Use {@link @xeokit/viewer!ViewLayer.setObjectsOpacity} to batch-update the opacities of ViewObjects.\n */\n get opacity(): number {\n return this.#state.colorize[3];\n }\n\n /**\n * Sets the opacity factor for this ViewObject.\n *\n * * This is a factor in range ````[0..1]```` which multiplies by the rendered fragment alphas.\n * * Set to ````null```` or ````undefined```` to reset the opacity to its default value of ````1````.\n * * Use {@link @xeokit/viewer!ViewLayer.setObjectsOpacity} to batch-update the opacities of ViewObjects.\n */\n set opacity(opacity: number | undefined | null) {\n let colorize = this.#state.colorize;\n this.#state.opacityUpdated = opacity !== null && opacity !== undefined;\n // @ts-ignore\n colorize[3] = this.#state.opacityUpdated ? opacity : 1.0;\n this.layer.objectOpacityUpdated(this, this.#state.opacityUpdated);\n this.layer.redraw();\n }\n\n /**\n * @private\n */\n _destroy() {\n // Called by ViewLayer#destroyViewObjects\n if (this.#state.visible) {\n this.layer.objectVisibilityUpdated(this, false, false);\n }\n if (this.#state.xrayed) {\n this.layer.objectXRayedUpdated(this, false);\n }\n if (this.#state.selected) {\n this.layer.objectSelectedUpdated(this, false);\n }\n if (this.#state.highlighted) {\n this.layer.objectHighlightedUpdated(this, false);\n }\n if (this.#state.colorized) {\n this.layer.objectColorizeUpdated(this, false);\n }\n if (this.#state.opacityUpdated) {\n this.layer.objectOpacityUpdated(this, false);\n }\n this.layer.redraw();\n }\n}\n\n", "import {EventDispatcher} from \"strongly-typed-events\";\nimport {Component, EventEmitter} from \"@xeokit/core\";\n\nimport * as matrix from '@xeokit/matrix';\n\n\nimport type {View} from \"./View\";\nimport type {FloatArrayParam} from \"@xeokit/math\";\n\n\n/**\n * An arbitrarily-aligned World-space clipping plane.\n *\n * ## Summary\n *\n * * Belongs to a {@link @xeokit/viewer!View}.\n * * Slices portions off {@link @xeokit/viewer!ViewObject | ViewObjects} to create cross-section views or reveal interiors.\n * * Registered by {@link SectionPlane.id} in {@link View.sectionPlanes}.\n * * Indicates its World-space position in {@link SectionPlane.pos} and orientation vector in {@link SectionPlane.dir}.\n * * Discards elements from the half-space in the direction of {@link SectionPlane.dir}.\n * * Can be be enabled or disabled via {@link SectionPlane.active}.\n *\n * ## Usage\n *\n * In the example below, we'll create two SectionPlanes to slice a model loaded from glTF. Note that we could also create them\n * using a {@link SectionPlanesPlugin}.\n *\n * ````javascript\n * import {Viewer, GLTFLoaderPlugin, SectionPlane} from \"xeokit-viewer.es.js\";\n *\n * const viewer = new Viewer({\n * elementId: \"myCanvas\"\n * });\n *\n * const gltfLoaderPlugin = new GLTFModelsPlugin(viewer, {\n * id: \"GLTFModels\"\n * });\n *\n * const model = gltfLoaderPlugin.load({\n * id: \"myModel\",\n * src: \"./models/gltf/mygltfmodel.gltf\"\n * });\n *\n * // Create a SectionPlane on negative diagonal\n * const sectionPlane1 = new SectionPlane(viewer.scene, {\n * pos: [1.0, 1.0, 1.0],\n * dir: [-1.0, -1.0, -1.0],\n * active: true\n * }),\n *\n * // Create a SectionPlane on positive diagonal\n * const sectionPlane2 = new SectionPlane(viewer.scene, {\n * pos: [-1.0, -1.0, -1.0],\n * dir: [1.0, 1.0, 1.0],\n * active: true\n * });\n * ````\n */\nclass SectionPlane extends Component {\n\n /**\n ID of this SectionPlane, unique within the {@link @xeokit/viewer!View}.\n */\n declare public id: string;\n\n /**\n * The View to which this DirLight belongs.\n *\n * @property view\n * @type {View}\n * @final\n */\n public readonly view: View;\n\n /**\n * Emits an event each time {@link SectionPlane.pos} changes.\n *\n * @event\n */\n readonly onPos: EventEmitter;\n\n /**\n * Emits an event each time {@link SectionPlane.dir} changes.\n *\n * @event\n */\n readonly onDir: EventEmitter;\n\n /**\n * Emits an event each time {@link SectionPlane.active} changes.\n *\n * @event\n */\n readonly onActive: EventEmitter