1 line
28 KiB
Plaintext
1 line
28 KiB
Plaintext
{"version":3,"file":"createVectorTileGeometries.js","sources":["../../../../Source/Scene/Vector3DTileBatch.js","../../../../Source/WorkersES6/createVectorTileGeometries.js"],"sourcesContent":["/**\n * Describes a renderable batch of geometry.\n *\n * @alias Vector3DTileBatch\n * @constructor\n *\n * @param {Object} options An object with the following properties:\n * @param {Number} options.offset The offset of the batch into the indices buffer.\n * @param {Number} options.count The number of indices in the batch.\n * @param {Color} options.color The color of the geometry in the batch.\n * @param {Number[]} options.batchIds An array where each element is the batch id of the geometry in the batch.\n *\n * @private\n */\nfunction Vector3DTileBatch(options) {\n /**\n * The offset of the batch into the indices buffer.\n * @type {Number}\n */\n this.offset = options.offset;\n /**\n * The number of indices in the batch.\n * @type {Number}\n */\n this.count = options.count;\n /**\n * The color of the geometry in the batch.\n * @type {Color}\n */\n this.color = options.color;\n /**\n * An array where each element is the batch id of the geometry in the batch.\n * @type {Number[]}\n */\n this.batchIds = options.batchIds;\n}\nexport default Vector3DTileBatch;\n","import BoundingSphere from \"../Core/BoundingSphere.js\";\nimport BoxGeometry from \"../Core/BoxGeometry.js\";\nimport Cartesian3 from \"../Core/Cartesian3.js\";\nimport Color from \"../Core/Color.js\";\nimport CylinderGeometry from \"../Core/CylinderGeometry.js\";\nimport defined from \"../Core/defined.js\";\nimport EllipsoidGeometry from \"../Core/EllipsoidGeometry.js\";\nimport IndexDatatype from \"../Core/IndexDatatype.js\";\nimport Matrix4 from \"../Core/Matrix4.js\";\nimport Vector3DTileBatch from \"../Scene/Vector3DTileBatch.js\";\nimport createTaskProcessorWorker from \"./createTaskProcessorWorker.js\";\n\nconst scratchCartesian = new Cartesian3();\n\nconst packedBoxLength = Matrix4.packedLength + Cartesian3.packedLength;\nconst packedCylinderLength = Matrix4.packedLength + 2;\nconst packedEllipsoidLength = Matrix4.packedLength + Cartesian3.packedLength;\nconst packedSphereLength = Cartesian3.packedLength + 1;\n\nconst scratchModelMatrixAndBV = {\n modelMatrix: new Matrix4(),\n boundingVolume: new BoundingSphere(),\n};\n\nfunction boxModelMatrixAndBoundingVolume(boxes, index) {\n let boxIndex = index * packedBoxLength;\n\n const dimensions = Cartesian3.unpack(boxes, boxIndex, scratchCartesian);\n boxIndex += Cartesian3.packedLength;\n\n const boxModelMatrix = Matrix4.unpack(\n boxes,\n boxIndex,\n scratchModelMatrixAndBV.modelMatrix\n );\n Matrix4.multiplyByScale(boxModelMatrix, dimensions, boxModelMatrix);\n\n const boundingVolume = scratchModelMatrixAndBV.boundingVolume;\n Cartesian3.clone(Cartesian3.ZERO, boundingVolume.center);\n boundingVolume.radius = Math.sqrt(3.0);\n\n return scratchModelMatrixAndBV;\n}\n\nfunction cylinderModelMatrixAndBoundingVolume(cylinders, index) {\n let cylinderIndex = index * packedCylinderLength;\n\n const cylinderRadius = cylinders[cylinderIndex++];\n const length = cylinders[cylinderIndex++];\n const scale = Cartesian3.fromElements(\n cylinderRadius,\n cylinderRadius,\n length,\n scratchCartesian\n );\n\n const cylinderModelMatrix = Matrix4.unpack(\n cylinders,\n cylinderIndex,\n scratchModelMatrixAndBV.modelMatrix\n );\n Matrix4.multiplyByScale(cylinderModelMatrix, scale, cylinderModelMatrix);\n\n const boundingVolume = scratchModelMatrixAndBV.boundingVolume;\n Cartesian3.clone(Cartesian3.ZERO, boundingVolume.center);\n boundingVolume.radius = Math.sqrt(2.0);\n\n return scratchModelMatrixAndBV;\n}\n\nfunction ellipsoidModelMatrixAndBoundingVolume(ellipsoids, index) {\n let ellipsoidIndex = index * packedEllipsoidLength;\n\n const radii = Cartesian3.unpack(ellipsoids, ellipsoidIndex, scratchCartesian);\n ellipsoidIndex += Cartesian3.packedLength;\n\n const ellipsoidModelMatrix = Matrix4.unpack(\n ellipsoids,\n ellipsoidIndex,\n scratchModelMatrixAndBV.modelMatrix\n );\n Matrix4.multiplyByScale(ellipsoidModelMatrix, radii, ellipsoidModelMatrix);\n\n const boundingVolume = scratchModelMatrixAndBV.boundingVolume;\n Cartesian3.clone(Cartesian3.ZERO, boundingVolume.center);\n boundingVolume.radius = 1.0;\n\n return scratchModelMatrixAndBV;\n}\n\nfunction sphereModelMatrixAndBoundingVolume(spheres, index) {\n let sphereIndex = index * packedSphereLength;\n\n const sphereRadius = spheres[sphereIndex++];\n\n const sphereTranslation = Cartesian3.unpack(\n spheres,\n sphereIndex,\n scratchCartesian\n );\n const sphereModelMatrix = Matrix4.fromTranslation(\n sphereTranslation,\n scratchModelMatrixAndBV.modelMatrix\n );\n Matrix4.multiplyByUniformScale(\n sphereModelMatrix,\n sphereRadius,\n sphereModelMatrix\n );\n\n const boundingVolume = scratchModelMatrixAndBV.boundingVolume;\n Cartesian3.clone(Cartesian3.ZERO, boundingVolume.center);\n boundingVolume.radius = 1.0;\n\n return scratchModelMatrixAndBV;\n}\n\nconst scratchPosition = new Cartesian3();\n\nfunction createPrimitive(\n options,\n primitive,\n primitiveBatchIds,\n geometry,\n getModelMatrixAndBoundingVolume\n) {\n if (!defined(primitive)) {\n return;\n }\n\n const numberOfPrimitives = primitiveBatchIds.length;\n const geometryPositions = geometry.attributes.position.values;\n const geometryIndices = geometry.indices;\n\n const positions = options.positions;\n const vertexBatchIds = options.vertexBatchIds;\n const indices = options.indices;\n\n const batchIds = options.batchIds;\n const batchTableColors = options.batchTableColors;\n const batchedIndices = options.batchedIndices;\n const indexOffsets = options.indexOffsets;\n const indexCounts = options.indexCounts;\n const boundingVolumes = options.boundingVolumes;\n\n const modelMatrix = options.modelMatrix;\n const center = options.center;\n\n let positionOffset = options.positionOffset;\n let batchIdIndex = options.batchIdIndex;\n let indexOffset = options.indexOffset;\n const batchedIndicesOffset = options.batchedIndicesOffset;\n\n for (let i = 0; i < numberOfPrimitives; ++i) {\n const primitiveModelMatrixAndBV = getModelMatrixAndBoundingVolume(\n primitive,\n i\n );\n const primitiveModelMatrix = primitiveModelMatrixAndBV.modelMatrix;\n Matrix4.multiply(modelMatrix, primitiveModelMatrix, primitiveModelMatrix);\n\n const batchId = primitiveBatchIds[i];\n\n const positionsLength = geometryPositions.length;\n for (let j = 0; j < positionsLength; j += 3) {\n const position = Cartesian3.unpack(geometryPositions, j, scratchPosition);\n Matrix4.multiplyByPoint(primitiveModelMatrix, position, position);\n Cartesian3.subtract(position, center, position);\n\n Cartesian3.pack(position, positions, positionOffset * 3 + j);\n vertexBatchIds[batchIdIndex++] = batchId;\n }\n\n const indicesLength = geometryIndices.length;\n for (let k = 0; k < indicesLength; ++k) {\n indices[indexOffset + k] = geometryIndices[k] + positionOffset;\n }\n\n const offset = i + batchedIndicesOffset;\n batchedIndices[offset] = new Vector3DTileBatch({\n offset: indexOffset,\n count: indicesLength,\n color: Color.fromRgba(batchTableColors[batchId]),\n batchIds: [batchId],\n });\n batchIds[offset] = batchId;\n indexOffsets[offset] = indexOffset;\n indexCounts[offset] = indicesLength;\n boundingVolumes[offset] = BoundingSphere.transform(\n primitiveModelMatrixAndBV.boundingVolume,\n primitiveModelMatrix\n );\n\n positionOffset += positionsLength / 3;\n indexOffset += indicesLength;\n }\n\n options.positionOffset = positionOffset;\n options.batchIdIndex = batchIdIndex;\n options.indexOffset = indexOffset;\n options.batchedIndicesOffset += numberOfPrimitives;\n}\n\nconst scratchCenter = new Cartesian3();\nconst scratchMatrix4 = new Matrix4();\n\nfunction unpackBuffer(buffer) {\n const packedBuffer = new Float64Array(buffer);\n\n let offset = 0;\n Cartesian3.unpack(packedBuffer, offset, scratchCenter);\n offset += Cartesian3.packedLength;\n\n Matrix4.unpack(packedBuffer, offset, scratchMatrix4);\n}\n\nfunction packedBatchedIndicesLength(batchedIndices) {\n const length = batchedIndices.length;\n let count = 0;\n for (let i = 0; i < length; ++i) {\n count += Color.packedLength + 3 + batchedIndices[i].batchIds.length;\n }\n return count;\n}\n\nfunction packBuffer(indicesBytesPerElement, batchedIndices, boundingVolumes) {\n const numBVs = boundingVolumes.length;\n const length =\n 1 +\n 1 +\n numBVs * BoundingSphere.packedLength +\n 1 +\n packedBatchedIndicesLength(batchedIndices);\n\n const packedBuffer = new Float64Array(length);\n\n let offset = 0;\n packedBuffer[offset++] = indicesBytesPerElement;\n packedBuffer[offset++] = numBVs;\n\n for (let i = 0; i < numBVs; ++i) {\n BoundingSphere.pack(boundingVolumes[i], packedBuffer, offset);\n offset += BoundingSphere.packedLength;\n }\n\n const indicesLength = batchedIndices.length;\n packedBuffer[offset++] = indicesLength;\n\n for (let j = 0; j < indicesLength; ++j) {\n const batchedIndex = batchedIndices[j];\n\n Color.pack(batchedIndex.color, packedBuffer, offset);\n offset += Color.packedLength;\n\n packedBuffer[offset++] = batchedIndex.offset;\n packedBuffer[offset++] = batchedIndex.count;\n\n const batchIds = batchedIndex.batchIds;\n const batchIdsLength = batchIds.length;\n packedBuffer[offset++] = batchIdsLength;\n\n for (let k = 0; k < batchIdsLength; ++k) {\n packedBuffer[offset++] = batchIds[k];\n }\n }\n\n return packedBuffer;\n}\n\nfunction createVectorTileGeometries(parameters, transferableObjects) {\n const boxes = defined(parameters.boxes)\n ? new Float32Array(parameters.boxes)\n : undefined;\n const boxBatchIds = defined(parameters.boxBatchIds)\n ? new Uint16Array(parameters.boxBatchIds)\n : undefined;\n const cylinders = defined(parameters.cylinders)\n ? new Float32Array(parameters.cylinders)\n : undefined;\n const cylinderBatchIds = defined(parameters.cylinderBatchIds)\n ? new Uint16Array(parameters.cylinderBatchIds)\n : undefined;\n const ellipsoids = defined(parameters.ellipsoids)\n ? new Float32Array(parameters.ellipsoids)\n : undefined;\n const ellipsoidBatchIds = defined(parameters.ellipsoidBatchIds)\n ? new Uint16Array(parameters.ellipsoidBatchIds)\n : undefined;\n const spheres = defined(parameters.spheres)\n ? new Float32Array(parameters.spheres)\n : undefined;\n const sphereBatchIds = defined(parameters.sphereBatchIds)\n ? new Uint16Array(parameters.sphereBatchIds)\n : undefined;\n\n const numberOfBoxes = defined(boxes) ? boxBatchIds.length : 0;\n const numberOfCylinders = defined(cylinders) ? cylinderBatchIds.length : 0;\n const numberOfEllipsoids = defined(ellipsoids) ? ellipsoidBatchIds.length : 0;\n const numberOfSpheres = defined(spheres) ? sphereBatchIds.length : 0;\n\n const boxGeometry = BoxGeometry.getUnitBox();\n const cylinderGeometry = CylinderGeometry.getUnitCylinder();\n const ellipsoidGeometry = EllipsoidGeometry.getUnitEllipsoid();\n\n const boxPositions = boxGeometry.attributes.position.values;\n const cylinderPositions = cylinderGeometry.attributes.position.values;\n const ellipsoidPositions = ellipsoidGeometry.attributes.position.values;\n\n let numberOfPositions = boxPositions.length * numberOfBoxes;\n numberOfPositions += cylinderPositions.length * numberOfCylinders;\n numberOfPositions +=\n ellipsoidPositions.length * (numberOfEllipsoids + numberOfSpheres);\n\n const boxIndices = boxGeometry.indices;\n const cylinderIndices = cylinderGeometry.indices;\n const ellipsoidIndices = ellipsoidGeometry.indices;\n\n let numberOfIndices = boxIndices.length * numberOfBoxes;\n numberOfIndices += cylinderIndices.length * numberOfCylinders;\n numberOfIndices +=\n ellipsoidIndices.length * (numberOfEllipsoids + numberOfSpheres);\n\n const positions = new Float32Array(numberOfPositions);\n const vertexBatchIds = new Uint16Array(numberOfPositions / 3);\n const indices = IndexDatatype.createTypedArray(\n numberOfPositions / 3,\n numberOfIndices\n );\n\n const numberOfGeometries =\n numberOfBoxes + numberOfCylinders + numberOfEllipsoids + numberOfSpheres;\n const batchIds = new Uint16Array(numberOfGeometries);\n const batchedIndices = new Array(numberOfGeometries);\n const indexOffsets = new Uint32Array(numberOfGeometries);\n const indexCounts = new Uint32Array(numberOfGeometries);\n const boundingVolumes = new Array(numberOfGeometries);\n\n unpackBuffer(parameters.packedBuffer);\n\n const options = {\n batchTableColors: new Uint32Array(parameters.batchTableColors),\n positions: positions,\n vertexBatchIds: vertexBatchIds,\n indices: indices,\n batchIds: batchIds,\n batchedIndices: batchedIndices,\n indexOffsets: indexOffsets,\n indexCounts: indexCounts,\n boundingVolumes: boundingVolumes,\n positionOffset: 0,\n batchIdIndex: 0,\n indexOffset: 0,\n batchedIndicesOffset: 0,\n modelMatrix: scratchMatrix4,\n center: scratchCenter,\n };\n\n createPrimitive(\n options,\n boxes,\n boxBatchIds,\n boxGeometry,\n boxModelMatrixAndBoundingVolume\n );\n createPrimitive(\n options,\n cylinders,\n cylinderBatchIds,\n cylinderGeometry,\n cylinderModelMatrixAndBoundingVolume\n );\n createPrimitive(\n options,\n ellipsoids,\n ellipsoidBatchIds,\n ellipsoidGeometry,\n ellipsoidModelMatrixAndBoundingVolume\n );\n createPrimitive(\n options,\n spheres,\n sphereBatchIds,\n ellipsoidGeometry,\n sphereModelMatrixAndBoundingVolume\n );\n\n const packedBuffer = packBuffer(\n indices.BYTES_PER_ELEMENT,\n batchedIndices,\n boundingVolumes\n );\n transferableObjects.push(\n positions.buffer,\n vertexBatchIds.buffer,\n indices.buffer\n );\n transferableObjects.push(\n batchIds.buffer,\n indexOffsets.buffer,\n indexCounts.buffer\n );\n transferableObjects.push(packedBuffer.buffer);\n\n return {\n positions: positions.buffer,\n vertexBatchIds: vertexBatchIds.buffer,\n indices: indices.buffer,\n indexOffsets: indexOffsets.buffer,\n indexCounts: indexCounts.buffer,\n batchIds: batchIds.buffer,\n packedBuffer: packedBuffer.buffer,\n };\n}\nexport default createTaskProcessorWorker(createVectorTileGeometries);\n"],"names":["Cartesian3","Matrix4","BoundingSphere","defined","Color","BoxGeometry","CylinderGeometry","EllipsoidGeometry","IndexDatatype"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;EAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,iBAAiB,CAAC,OAAO,EAAE;EACpC;EACA;EACA;EACA;EACA,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;EAC/B;EACA;EACA;EACA;EACA,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;EAC7B;EACA;EACA;EACA;EACA,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;EAC7B;EACA;EACA;EACA;EACA,EAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;EACnC;;ECvBA,MAAM,gBAAgB,GAAG,IAAIA,kBAAU,EAAE,CAAC;AAC1C;EACA,MAAM,eAAe,GAAGC,eAAO,CAAC,YAAY,GAAGD,kBAAU,CAAC,YAAY,CAAC;EACvE,MAAM,oBAAoB,GAAGC,eAAO,CAAC,YAAY,GAAG,CAAC,CAAC;EACtD,MAAM,qBAAqB,GAAGA,eAAO,CAAC,YAAY,GAAGD,kBAAU,CAAC,YAAY,CAAC;EAC7E,MAAM,kBAAkB,GAAGA,kBAAU,CAAC,YAAY,GAAG,CAAC,CAAC;AACvD;EACA,MAAM,uBAAuB,GAAG;EAChC,EAAE,WAAW,EAAE,IAAIC,eAAO,EAAE;EAC5B,EAAE,cAAc,EAAE,IAAIC,yBAAc,EAAE;EACtC,CAAC,CAAC;AACF;EACA,SAAS,+BAA+B,CAAC,KAAK,EAAE,KAAK,EAAE;EACvD,EAAE,IAAI,QAAQ,GAAG,KAAK,GAAG,eAAe,CAAC;AACzC;EACA,EAAE,MAAM,UAAU,GAAGF,kBAAU,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;EAC1E,EAAE,QAAQ,IAAIA,kBAAU,CAAC,YAAY,CAAC;AACtC;EACA,EAAE,MAAM,cAAc,GAAGC,eAAO,CAAC,MAAM;EACvC,IAAI,KAAK;EACT,IAAI,QAAQ;EACZ,IAAI,uBAAuB,CAAC,WAAW;EACvC,GAAG,CAAC;EACJ,EAAEA,eAAO,CAAC,eAAe,CAAC,cAAc,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;AACtE;EACA,EAAE,MAAM,cAAc,GAAG,uBAAuB,CAAC,cAAc,CAAC;EAChE,EAAED,kBAAU,CAAC,KAAK,CAACA,kBAAU,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;EAC3D,EAAE,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC;EACA,EAAE,OAAO,uBAAuB,CAAC;EACjC,CAAC;AACD;EACA,SAAS,oCAAoC,CAAC,SAAS,EAAE,KAAK,EAAE;EAChE,EAAE,IAAI,aAAa,GAAG,KAAK,GAAG,oBAAoB,CAAC;AACnD;EACA,EAAE,MAAM,cAAc,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC;EACpD,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC;EAC5C,EAAE,MAAM,KAAK,GAAGA,kBAAU,CAAC,YAAY;EACvC,IAAI,cAAc;EAClB,IAAI,cAAc;EAClB,IAAI,MAAM;EACV,IAAI,gBAAgB;EACpB,GAAG,CAAC;AACJ;EACA,EAAE,MAAM,mBAAmB,GAAGC,eAAO,CAAC,MAAM;EAC5C,IAAI,SAAS;EACb,IAAI,aAAa;EACjB,IAAI,uBAAuB,CAAC,WAAW;EACvC,GAAG,CAAC;EACJ,EAAEA,eAAO,CAAC,eAAe,CAAC,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAC;AAC3E;EACA,EAAE,MAAM,cAAc,GAAG,uBAAuB,CAAC,cAAc,CAAC;EAChE,EAAED,kBAAU,CAAC,KAAK,CAACA,kBAAU,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;EAC3D,EAAE,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC;EACA,EAAE,OAAO,uBAAuB,CAAC;EACjC,CAAC;AACD;EACA,SAAS,qCAAqC,CAAC,UAAU,EAAE,KAAK,EAAE;EAClE,EAAE,IAAI,cAAc,GAAG,KAAK,GAAG,qBAAqB,CAAC;AACrD;EACA,EAAE,MAAM,KAAK,GAAGA,kBAAU,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;EAChF,EAAE,cAAc,IAAIA,kBAAU,CAAC,YAAY,CAAC;AAC5C;EACA,EAAE,MAAM,oBAAoB,GAAGC,eAAO,CAAC,MAAM;EAC7C,IAAI,UAAU;EACd,IAAI,cAAc;EAClB,IAAI,uBAAuB,CAAC,WAAW;EACvC,GAAG,CAAC;EACJ,EAAEA,eAAO,CAAC,eAAe,CAAC,oBAAoB,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC;AAC7E;EACA,EAAE,MAAM,cAAc,GAAG,uBAAuB,CAAC,cAAc,CAAC;EAChE,EAAED,kBAAU,CAAC,KAAK,CAACA,kBAAU,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;EAC3D,EAAE,cAAc,CAAC,MAAM,GAAG,GAAG,CAAC;AAC9B;EACA,EAAE,OAAO,uBAAuB,CAAC;EACjC,CAAC;AACD;EACA,SAAS,kCAAkC,CAAC,OAAO,EAAE,KAAK,EAAE;EAC5D,EAAE,IAAI,WAAW,GAAG,KAAK,GAAG,kBAAkB,CAAC;AAC/C;EACA,EAAE,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;AAC9C;EACA,EAAE,MAAM,iBAAiB,GAAGA,kBAAU,CAAC,MAAM;EAC7C,IAAI,OAAO;EACX,IAAI,WAAW;EACf,IAAI,gBAAgB;EACpB,GAAG,CAAC;EACJ,EAAE,MAAM,iBAAiB,GAAGC,eAAO,CAAC,eAAe;EACnD,IAAI,iBAAiB;EACrB,IAAI,uBAAuB,CAAC,WAAW;EACvC,GAAG,CAAC;EACJ,EAAEA,eAAO,CAAC,sBAAsB;EAChC,IAAI,iBAAiB;EACrB,IAAI,YAAY;EAChB,IAAI,iBAAiB;EACrB,GAAG,CAAC;AACJ;EACA,EAAE,MAAM,cAAc,GAAG,uBAAuB,CAAC,cAAc,CAAC;EAChE,EAAED,kBAAU,CAAC,KAAK,CAACA,kBAAU,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;EAC3D,EAAE,cAAc,CAAC,MAAM,GAAG,GAAG,CAAC;AAC9B;EACA,EAAE,OAAO,uBAAuB,CAAC;EACjC,CAAC;AACD;EACA,MAAM,eAAe,GAAG,IAAIA,kBAAU,EAAE,CAAC;AACzC;EACA,SAAS,eAAe;EACxB,EAAE,OAAO;EACT,EAAE,SAAS;EACX,EAAE,iBAAiB;EACnB,EAAE,QAAQ;EACV,EAAE,+BAA+B;EACjC,EAAE;EACF,EAAE,IAAI,CAACG,YAAO,CAAC,SAAS,CAAC,EAAE;EAC3B,IAAI,OAAO;EACX,GAAG;AACH;EACA,EAAE,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,MAAM,CAAC;EACtD,EAAE,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;EAChE,EAAE,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC;AAC3C;EACA,EAAE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;EACtC,EAAE,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;EAChD,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;AAClC;EACA,EAAE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;EACpC,EAAE,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;EACpD,EAAE,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;EAChD,EAAE,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;EAC5C,EAAE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;EAC1C,EAAE,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;AAClD;EACA,EAAE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;EAC1C,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AAChC;EACA,EAAE,IAAI,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;EAC9C,EAAE,IAAI,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;EAC1C,EAAE,IAAI,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;EACxC,EAAE,MAAM,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;AAC5D;EACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,EAAE,EAAE,CAAC,EAAE;EAC/C,IAAI,MAAM,yBAAyB,GAAG,+BAA+B;EACrE,MAAM,SAAS;EACf,MAAM,CAAC;EACP,KAAK,CAAC;EACN,IAAI,MAAM,oBAAoB,GAAG,yBAAyB,CAAC,WAAW,CAAC;EACvE,IAAIF,eAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;AAC9E;EACA,IAAI,MAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACzC;EACA,IAAI,MAAM,eAAe,GAAG,iBAAiB,CAAC,MAAM,CAAC;EACrD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,IAAI,CAAC,EAAE;EACjD,MAAM,MAAM,QAAQ,GAAGD,kBAAU,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC;EAChF,MAAMC,eAAO,CAAC,eAAe,CAAC,oBAAoB,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;EACxE,MAAMD,kBAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AACtD;EACA,MAAMA,kBAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;EACnE,MAAM,cAAc,CAAC,YAAY,EAAE,CAAC,GAAG,OAAO,CAAC;EAC/C,KAAK;AACL;EACA,IAAI,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC;EACjD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,EAAE,CAAC,EAAE;EAC5C,MAAM,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;EACrE,KAAK;AACL;EACA,IAAI,MAAM,MAAM,GAAG,CAAC,GAAG,oBAAoB,CAAC;EAC5C,IAAI,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,iBAAiB,CAAC;EACnD,MAAM,MAAM,EAAE,WAAW;EACzB,MAAM,KAAK,EAAE,aAAa;EAC1B,MAAM,KAAK,EAAEI,WAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;EACtD,MAAM,QAAQ,EAAE,CAAC,OAAO,CAAC;EACzB,KAAK,CAAC,CAAC;EACP,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;EAC/B,IAAI,YAAY,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;EACvC,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC;EACxC,IAAI,eAAe,CAAC,MAAM,CAAC,GAAGF,yBAAc,CAAC,SAAS;EACtD,MAAM,yBAAyB,CAAC,cAAc;EAC9C,MAAM,oBAAoB;EAC1B,KAAK,CAAC;AACN;EACA,IAAI,cAAc,IAAI,eAAe,GAAG,CAAC,CAAC;EAC1C,IAAI,WAAW,IAAI,aAAa,CAAC;EACjC,GAAG;AACH;EACA,EAAE,OAAO,CAAC,cAAc,GAAG,cAAc,CAAC;EAC1C,EAAE,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC;EACtC,EAAE,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;EACpC,EAAE,OAAO,CAAC,oBAAoB,IAAI,kBAAkB,CAAC;EACrD,CAAC;AACD;EACA,MAAM,aAAa,GAAG,IAAIF,kBAAU,EAAE,CAAC;EACvC,MAAM,cAAc,GAAG,IAAIC,eAAO,EAAE,CAAC;AACrC;EACA,SAAS,YAAY,CAAC,MAAM,EAAE;EAC9B,EAAE,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;AAChD;EACA,EAAE,IAAI,MAAM,GAAG,CAAC,CAAC;EACjB,EAAED,kBAAU,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;EACzD,EAAE,MAAM,IAAIA,kBAAU,CAAC,YAAY,CAAC;AACpC;EACA,EAAEC,eAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;EACvD,CAAC;AACD;EACA,SAAS,0BAA0B,CAAC,cAAc,EAAE;EACpD,EAAE,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;EACvC,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;EAChB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;EACnC,IAAI,KAAK,IAAIG,WAAK,CAAC,YAAY,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;EACxE,GAAG;EACH,EAAE,OAAO,KAAK,CAAC;EACf,CAAC;AACD;EACA,SAAS,UAAU,CAAC,sBAAsB,EAAE,cAAc,EAAE,eAAe,EAAE;EAC7E,EAAE,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;EACxC,EAAE,MAAM,MAAM;EACd,IAAI,CAAC;EACL,IAAI,CAAC;EACL,IAAI,MAAM,GAAGF,yBAAc,CAAC,YAAY;EACxC,IAAI,CAAC;EACL,IAAI,0BAA0B,CAAC,cAAc,CAAC,CAAC;AAC/C;EACA,EAAE,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;AAChD;EACA,EAAE,IAAI,MAAM,GAAG,CAAC,CAAC;EACjB,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,sBAAsB,CAAC;EAClD,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC;AAClC;EACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;EACnC,IAAIA,yBAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;EAClE,IAAI,MAAM,IAAIA,yBAAc,CAAC,YAAY,CAAC;EAC1C,GAAG;AACH;EACA,EAAE,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC;EAC9C,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,aAAa,CAAC;AACzC;EACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,EAAE,CAAC,EAAE;EAC1C,IAAI,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;AAC3C;EACA,IAAIE,WAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;EACzD,IAAI,MAAM,IAAIA,WAAK,CAAC,YAAY,CAAC;AACjC;EACA,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC;EACjD,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC;AAChD;EACA,IAAI,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;EAC3C,IAAI,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;EAC3C,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,cAAc,CAAC;AAC5C;EACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,EAAE,CAAC,EAAE;EAC7C,MAAM,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;EAC3C,KAAK;EACL,GAAG;AACH;EACA,EAAE,OAAO,YAAY,CAAC;EACtB,CAAC;AACD;EACA,SAAS,0BAA0B,CAAC,UAAU,EAAE,mBAAmB,EAAE;EACrE,EAAE,MAAM,KAAK,GAAGD,YAAO,CAAC,UAAU,CAAC,KAAK,CAAC;EACzC,MAAM,IAAI,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC;EACxC,MAAM,SAAS,CAAC;EAChB,EAAE,MAAM,WAAW,GAAGA,YAAO,CAAC,UAAU,CAAC,WAAW,CAAC;EACrD,MAAM,IAAI,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC;EAC7C,MAAM,SAAS,CAAC;EAChB,EAAE,MAAM,SAAS,GAAGA,YAAO,CAAC,UAAU,CAAC,SAAS,CAAC;EACjD,MAAM,IAAI,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC;EAC5C,MAAM,SAAS,CAAC;EAChB,EAAE,MAAM,gBAAgB,GAAGA,YAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC;EAC/D,MAAM,IAAI,WAAW,CAAC,UAAU,CAAC,gBAAgB,CAAC;EAClD,MAAM,SAAS,CAAC;EAChB,EAAE,MAAM,UAAU,GAAGA,YAAO,CAAC,UAAU,CAAC,UAAU,CAAC;EACnD,MAAM,IAAI,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC;EAC7C,MAAM,SAAS,CAAC;EAChB,EAAE,MAAM,iBAAiB,GAAGA,YAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC;EACjE,MAAM,IAAI,WAAW,CAAC,UAAU,CAAC,iBAAiB,CAAC;EACnD,MAAM,SAAS,CAAC;EAChB,EAAE,MAAM,OAAO,GAAGA,YAAO,CAAC,UAAU,CAAC,OAAO,CAAC;EAC7C,MAAM,IAAI,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC;EAC1C,MAAM,SAAS,CAAC;EAChB,EAAE,MAAM,cAAc,GAAGA,YAAO,CAAC,UAAU,CAAC,cAAc,CAAC;EAC3D,MAAM,IAAI,WAAW,CAAC,UAAU,CAAC,cAAc,CAAC;EAChD,MAAM,SAAS,CAAC;AAChB;EACA,EAAE,MAAM,aAAa,GAAGA,YAAO,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;EAChE,EAAE,MAAM,iBAAiB,GAAGA,YAAO,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;EAC7E,EAAE,MAAM,kBAAkB,GAAGA,YAAO,CAAC,UAAU,CAAC,GAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;EAChF,EAAE,MAAM,eAAe,GAAGA,YAAO,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;AACvE;EACA,EAAE,MAAM,WAAW,GAAGE,uBAAW,CAAC,UAAU,EAAE,CAAC;EAC/C,EAAE,MAAM,gBAAgB,GAAGC,iCAAgB,CAAC,eAAe,EAAE,CAAC;EAC9D,EAAE,MAAM,iBAAiB,GAAGC,mCAAiB,CAAC,gBAAgB,EAAE,CAAC;AACjE;EACA,EAAE,MAAM,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;EAC9D,EAAE,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;EACxE,EAAE,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC1E;EACA,EAAE,IAAI,iBAAiB,GAAG,YAAY,CAAC,MAAM,GAAG,aAAa,CAAC;EAC9D,EAAE,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,GAAG,iBAAiB,CAAC;EACpE,EAAE,iBAAiB;EACnB,IAAI,kBAAkB,CAAC,MAAM,IAAI,kBAAkB,GAAG,eAAe,CAAC,CAAC;AACvE;EACA,EAAE,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC;EACzC,EAAE,MAAM,eAAe,GAAG,gBAAgB,CAAC,OAAO,CAAC;EACnD,EAAE,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,OAAO,CAAC;AACrD;EACA,EAAE,IAAI,eAAe,GAAG,UAAU,CAAC,MAAM,GAAG,aAAa,CAAC;EAC1D,EAAE,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,iBAAiB,CAAC;EAChE,EAAE,eAAe;EACjB,IAAI,gBAAgB,CAAC,MAAM,IAAI,kBAAkB,GAAG,eAAe,CAAC,CAAC;AACrE;EACA,EAAE,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,iBAAiB,CAAC,CAAC;EACxD,EAAE,MAAM,cAAc,GAAG,IAAI,WAAW,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;EAChE,EAAE,MAAM,OAAO,GAAGC,2BAAa,CAAC,gBAAgB;EAChD,IAAI,iBAAiB,GAAG,CAAC;EACzB,IAAI,eAAe;EACnB,GAAG,CAAC;AACJ;EACA,EAAE,MAAM,kBAAkB;EAC1B,IAAI,aAAa,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,eAAe,CAAC;EAC7E,EAAE,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,kBAAkB,CAAC,CAAC;EACvD,EAAE,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;EACvD,EAAE,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,kBAAkB,CAAC,CAAC;EAC3D,EAAE,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,kBAAkB,CAAC,CAAC;EAC1D,EAAE,MAAM,eAAe,GAAG,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;AACxD;EACA,EAAE,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACxC;EACA,EAAE,MAAM,OAAO,GAAG;EAClB,IAAI,gBAAgB,EAAE,IAAI,WAAW,CAAC,UAAU,CAAC,gBAAgB,CAAC;EAClE,IAAI,SAAS,EAAE,SAAS;EACxB,IAAI,cAAc,EAAE,cAAc;EAClC,IAAI,OAAO,EAAE,OAAO;EACpB,IAAI,QAAQ,EAAE,QAAQ;EACtB,IAAI,cAAc,EAAE,cAAc;EAClC,IAAI,YAAY,EAAE,YAAY;EAC9B,IAAI,WAAW,EAAE,WAAW;EAC5B,IAAI,eAAe,EAAE,eAAe;EACpC,IAAI,cAAc,EAAE,CAAC;EACrB,IAAI,YAAY,EAAE,CAAC;EACnB,IAAI,WAAW,EAAE,CAAC;EAClB,IAAI,oBAAoB,EAAE,CAAC;EAC3B,IAAI,WAAW,EAAE,cAAc;EAC/B,IAAI,MAAM,EAAE,aAAa;EACzB,GAAG,CAAC;AACJ;EACA,EAAE,eAAe;EACjB,IAAI,OAAO;EACX,IAAI,KAAK;EACT,IAAI,WAAW;EACf,IAAI,WAAW;EACf,IAAI,+BAA+B;EACnC,GAAG,CAAC;EACJ,EAAE,eAAe;EACjB,IAAI,OAAO;EACX,IAAI,SAAS;EACb,IAAI,gBAAgB;EACpB,IAAI,gBAAgB;EACpB,IAAI,oCAAoC;EACxC,GAAG,CAAC;EACJ,EAAE,eAAe;EACjB,IAAI,OAAO;EACX,IAAI,UAAU;EACd,IAAI,iBAAiB;EACrB,IAAI,iBAAiB;EACrB,IAAI,qCAAqC;EACzC,GAAG,CAAC;EACJ,EAAE,eAAe;EACjB,IAAI,OAAO;EACX,IAAI,OAAO;EACX,IAAI,cAAc;EAClB,IAAI,iBAAiB;EACrB,IAAI,kCAAkC;EACtC,GAAG,CAAC;AACJ;EACA,EAAE,MAAM,YAAY,GAAG,UAAU;EACjC,IAAI,OAAO,CAAC,iBAAiB;EAC7B,IAAI,cAAc;EAClB,IAAI,eAAe;EACnB,GAAG,CAAC;EACJ,EAAE,mBAAmB,CAAC,IAAI;EAC1B,IAAI,SAAS,CAAC,MAAM;EACpB,IAAI,cAAc,CAAC,MAAM;EACzB,IAAI,OAAO,CAAC,MAAM;EAClB,GAAG,CAAC;EACJ,EAAE,mBAAmB,CAAC,IAAI;EAC1B,IAAI,QAAQ,CAAC,MAAM;EACnB,IAAI,YAAY,CAAC,MAAM;EACvB,IAAI,WAAW,CAAC,MAAM;EACtB,GAAG,CAAC;EACJ,EAAE,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAChD;EACA,EAAE,OAAO;EACT,IAAI,SAAS,EAAE,SAAS,CAAC,MAAM;EAC/B,IAAI,cAAc,EAAE,cAAc,CAAC,MAAM;EACzC,IAAI,OAAO,EAAE,OAAO,CAAC,MAAM;EAC3B,IAAI,YAAY,EAAE,YAAY,CAAC,MAAM;EACrC,IAAI,WAAW,EAAE,WAAW,CAAC,MAAM;EACnC,IAAI,QAAQ,EAAE,QAAQ,CAAC,MAAM;EAC7B,IAAI,YAAY,EAAE,YAAY,CAAC,MAAM;EACrC,GAAG,CAAC;EACJ,CAAC;AACD,qCAAe,yBAAyB,CAAC,0BAA0B,CAAC;;;;;;;;"} |