1 |
- {"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\nvar scratchCartesian = new Cartesian3();\n\nvar packedBoxLength = Matrix4.packedLength + Cartesian3.packedLength;\nvar packedCylinderLength = Matrix4.packedLength + 2;\nvar packedEllipsoidLength = Matrix4.packedLength + Cartesian3.packedLength;\nvar packedSphereLength = Cartesian3.packedLength + 1;\n\nvar scratchModelMatrixAndBV = {\n modelMatrix: new Matrix4(),\n boundingVolume: new BoundingSphere(),\n};\n\nfunction boxModelMatrixAndBoundingVolume(boxes, index) {\n var boxIndex = index * packedBoxLength;\n\n var dimensions = Cartesian3.unpack(boxes, boxIndex, scratchCartesian);\n boxIndex += Cartesian3.packedLength;\n\n var boxModelMatrix = Matrix4.unpack(\n boxes,\n boxIndex,\n scratchModelMatrixAndBV.modelMatrix\n );\n Matrix4.multiplyByScale(boxModelMatrix, dimensions, boxModelMatrix);\n\n var 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 var cylinderIndex = index * packedCylinderLength;\n\n var cylinderRadius = cylinders[cylinderIndex++];\n var length = cylinders[cylinderIndex++];\n var scale = Cartesian3.fromElements(\n cylinderRadius,\n cylinderRadius,\n length,\n scratchCartesian\n );\n\n var cylinderModelMatrix = Matrix4.unpack(\n cylinders,\n cylinderIndex,\n scratchModelMatrixAndBV.modelMatrix\n );\n Matrix4.multiplyByScale(cylinderModelMatrix, scale, cylinderModelMatrix);\n\n var 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 var ellipsoidIndex = index * packedEllipsoidLength;\n\n var radii = Cartesian3.unpack(ellipsoids, ellipsoidIndex, scratchCartesian);\n ellipsoidIndex += Cartesian3.packedLength;\n\n var ellipsoidModelMatrix = Matrix4.unpack(\n ellipsoids,\n ellipsoidIndex,\n scratchModelMatrixAndBV.modelMatrix\n );\n Matrix4.multiplyByScale(ellipsoidModelMatrix, radii, ellipsoidModelMatrix);\n\n var 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 var sphereIndex = index * packedSphereLength;\n\n var sphereRadius = spheres[sphereIndex++];\n\n var sphereTranslation = Cartesian3.unpack(\n spheres,\n sphereIndex,\n scratchCartesian\n );\n var sphereModelMatrix = Matrix4.fromTranslation(\n sphereTranslation,\n scratchModelMatrixAndBV.modelMatrix\n );\n Matrix4.multiplyByUniformScale(\n sphereModelMatrix,\n sphereRadius,\n sphereModelMatrix\n );\n\n var boundingVolume = scratchModelMatrixAndBV.boundingVolume;\n Cartesian3.clone(Cartesian3.ZERO, boundingVolume.center);\n boundingVolume.radius = 1.0;\n\n return scratchModelMatrixAndBV;\n}\n\nvar 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 var numberOfPrimitives = primitiveBatchIds.length;\n var geometryPositions = geometry.attributes.position.values;\n var geometryIndices = geometry.indices;\n\n var positions = options.positions;\n var vertexBatchIds = options.vertexBatchIds;\n var indices = options.indices;\n\n var batchIds = options.batchIds;\n var batchTableColors = options.batchTableColors;\n var batchedIndices = options.batchedIndices;\n var indexOffsets = options.indexOffsets;\n var indexCounts = options.indexCounts;\n var boundingVolumes = options.boundingVolumes;\n\n var modelMatrix = options.modelMatrix;\n var center = options.center;\n\n var positionOffset = options.positionOffset;\n var batchIdIndex = options.batchIdIndex;\n var indexOffset = options.indexOffset;\n var batchedIndicesOffset = options.batchedIndicesOffset;\n\n for (var i = 0; i < numberOfPrimitives; ++i) {\n var primitiveModelMatrixAndBV = getModelMatrixAndBoundingVolume(\n primitive,\n i\n );\n var primitiveModelMatrix = primitiveModelMatrixAndBV.modelMatrix;\n Matrix4.multiply(modelMatrix, primitiveModelMatrix, primitiveModelMatrix);\n\n var batchId = primitiveBatchIds[i];\n\n var positionsLength = geometryPositions.length;\n for (var j = 0; j < positionsLength; j += 3) {\n var 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 var indicesLength = geometryIndices.length;\n for (var k = 0; k < indicesLength; ++k) {\n indices[indexOffset + k] = geometryIndices[k] + positionOffset;\n }\n\n var 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\nvar scratchCenter = new Cartesian3();\nvar scratchMatrix4 = new Matrix4();\n\nfunction unpackBuffer(buffer) {\n var packedBuffer = new Float64Array(buffer);\n\n var 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 var length = batchedIndices.length;\n var count = 0;\n for (var 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 var numBVs = boundingVolumes.length;\n var length =\n 1 +\n 1 +\n numBVs * BoundingSphere.packedLength +\n 1 +\n packedBatchedIndicesLength(batchedIndices);\n\n var packedBuffer = new Float64Array(length);\n\n var offset = 0;\n packedBuffer[offset++] = indicesBytesPerElement;\n packedBuffer[offset++] = numBVs;\n\n for (var i = 0; i < numBVs; ++i) {\n BoundingSphere.pack(boundingVolumes[i], packedBuffer, offset);\n offset += BoundingSphere.packedLength;\n }\n\n var indicesLength = batchedIndices.length;\n packedBuffer[offset++] = indicesLength;\n\n for (var j = 0; j < indicesLength; ++j) {\n var 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 var batchIds = batchedIndex.batchIds;\n var batchIdsLength = batchIds.length;\n packedBuffer[offset++] = batchIdsLength;\n\n for (var k = 0; k < batchIdsLength; ++k) {\n packedBuffer[offset++] = batchIds[k];\n }\n }\n\n return packedBuffer;\n}\n\nfunction createVectorTileGeometries(parameters, transferableObjects) {\n var boxes = defined(parameters.boxes)\n ? new Float32Array(parameters.boxes)\n : undefined;\n var boxBatchIds = defined(parameters.boxBatchIds)\n ? new Uint16Array(parameters.boxBatchIds)\n : undefined;\n var cylinders = defined(parameters.cylinders)\n ? new Float32Array(parameters.cylinders)\n : undefined;\n var cylinderBatchIds = defined(parameters.cylinderBatchIds)\n ? new Uint16Array(parameters.cylinderBatchIds)\n : undefined;\n var ellipsoids = defined(parameters.ellipsoids)\n ? new Float32Array(parameters.ellipsoids)\n : undefined;\n var ellipsoidBatchIds = defined(parameters.ellipsoidBatchIds)\n ? new Uint16Array(parameters.ellipsoidBatchIds)\n : undefined;\n var spheres = defined(parameters.spheres)\n ? new Float32Array(parameters.spheres)\n : undefined;\n var sphereBatchIds = defined(parameters.sphereBatchIds)\n ? new Uint16Array(parameters.sphereBatchIds)\n : undefined;\n\n var numberOfBoxes = defined(boxes) ? boxBatchIds.length : 0;\n var numberOfCylinders = defined(cylinders) ? cylinderBatchIds.length : 0;\n var numberOfEllipsoids = defined(ellipsoids) ? ellipsoidBatchIds.length : 0;\n var numberOfSpheres = defined(spheres) ? sphereBatchIds.length : 0;\n\n var boxGeometry = BoxGeometry.getUnitBox();\n var cylinderGeometry = CylinderGeometry.getUnitCylinder();\n var ellipsoidGeometry = EllipsoidGeometry.getUnitEllipsoid();\n\n var boxPositions = boxGeometry.attributes.position.values;\n var cylinderPositions = cylinderGeometry.attributes.position.values;\n var ellipsoidPositions = ellipsoidGeometry.attributes.position.values;\n\n var numberOfPositions = boxPositions.length * numberOfBoxes;\n numberOfPositions += cylinderPositions.length * numberOfCylinders;\n numberOfPositions +=\n ellipsoidPositions.length * (numberOfEllipsoids + numberOfSpheres);\n\n var boxIndices = boxGeometry.indices;\n var cylinderIndices = cylinderGeometry.indices;\n var ellipsoidIndices = ellipsoidGeometry.indices;\n\n var numberOfIndices = boxIndices.length * numberOfBoxes;\n numberOfIndices += cylinderIndices.length * numberOfCylinders;\n numberOfIndices +=\n ellipsoidIndices.length * (numberOfEllipsoids + numberOfSpheres);\n\n var positions = new Float32Array(numberOfPositions);\n var vertexBatchIds = new Uint16Array(numberOfPositions / 3);\n var indices = IndexDatatype.createTypedArray(\n numberOfPositions / 3,\n numberOfIndices\n );\n\n var numberOfGeometries =\n numberOfBoxes + numberOfCylinders + numberOfEllipsoids + numberOfSpheres;\n var batchIds = new Uint16Array(numberOfGeometries);\n var batchedIndices = new Array(numberOfGeometries);\n var indexOffsets = new Uint32Array(numberOfGeometries);\n var indexCounts = new Uint32Array(numberOfGeometries);\n var boundingVolumes = new Array(numberOfGeometries);\n\n unpackBuffer(parameters.packedBuffer);\n\n var 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 var 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,IAAI,gBAAgB,GAAG,IAAIA,qBAAU,EAAE,CAAC;AACxC;EACA,IAAI,eAAe,GAAGC,kBAAO,CAAC,YAAY,GAAGD,qBAAU,CAAC,YAAY,CAAC;EACrE,IAAI,oBAAoB,GAAGC,kBAAO,CAAC,YAAY,GAAG,CAAC,CAAC;EACpD,IAAI,qBAAqB,GAAGA,kBAAO,CAAC,YAAY,GAAGD,qBAAU,CAAC,YAAY,CAAC;EAC3E,IAAI,kBAAkB,GAAGA,qBAAU,CAAC,YAAY,GAAG,CAAC,CAAC;AACrD;EACA,IAAI,uBAAuB,GAAG;EAC9B,EAAE,WAAW,EAAE,IAAIC,kBAAO,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,IAAI,UAAU,GAAGF,qBAAU,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;EACxE,EAAE,QAAQ,IAAIA,qBAAU,CAAC,YAAY,CAAC;AACtC;EACA,EAAE,IAAI,cAAc,GAAGC,kBAAO,CAAC,MAAM;EACrC,IAAI,KAAK;EACT,IAAI,QAAQ;EACZ,IAAI,uBAAuB,CAAC,WAAW;EACvC,GAAG,CAAC;EACJ,EAAEA,kBAAO,CAAC,eAAe,CAAC,cAAc,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;AACtE;EACA,EAAE,IAAI,cAAc,GAAG,uBAAuB,CAAC,cAAc,CAAC;EAC9D,EAAED,qBAAU,CAAC,KAAK,CAACA,qBAAU,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,IAAI,cAAc,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC;EAClD,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC;EAC1C,EAAE,IAAI,KAAK,GAAGA,qBAAU,CAAC,YAAY;EACrC,IAAI,cAAc;EAClB,IAAI,cAAc;EAClB,IAAI,MAAM;EACV,IAAI,gBAAgB;EACpB,GAAG,CAAC;AACJ;EACA,EAAE,IAAI,mBAAmB,GAAGC,kBAAO,CAAC,MAAM;EAC1C,IAAI,SAAS;EACb,IAAI,aAAa;EACjB,IAAI,uBAAuB,CAAC,WAAW;EACvC,GAAG,CAAC;EACJ,EAAEA,kBAAO,CAAC,eAAe,CAAC,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAC;AAC3E;EACA,EAAE,IAAI,cAAc,GAAG,uBAAuB,CAAC,cAAc,CAAC;EAC9D,EAAED,qBAAU,CAAC,KAAK,CAACA,qBAAU,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,IAAI,KAAK,GAAGA,qBAAU,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;EAC9E,EAAE,cAAc,IAAIA,qBAAU,CAAC,YAAY,CAAC;AAC5C;EACA,EAAE,IAAI,oBAAoB,GAAGC,kBAAO,CAAC,MAAM;EAC3C,IAAI,UAAU;EACd,IAAI,cAAc;EAClB,IAAI,uBAAuB,CAAC,WAAW;EACvC,GAAG,CAAC;EACJ,EAAEA,kBAAO,CAAC,eAAe,CAAC,oBAAoB,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC;AAC7E;EACA,EAAE,IAAI,cAAc,GAAG,uBAAuB,CAAC,cAAc,CAAC;EAC9D,EAAED,qBAAU,CAAC,KAAK,CAACA,qBAAU,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,IAAI,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;AAC5C;EACA,EAAE,IAAI,iBAAiB,GAAGA,qBAAU,CAAC,MAAM;EAC3C,IAAI,OAAO;EACX,IAAI,WAAW;EACf,IAAI,gBAAgB;EACpB,GAAG,CAAC;EACJ,EAAE,IAAI,iBAAiB,GAAGC,kBAAO,CAAC,eAAe;EACjD,IAAI,iBAAiB;EACrB,IAAI,uBAAuB,CAAC,WAAW;EACvC,GAAG,CAAC;EACJ,EAAEA,kBAAO,CAAC,sBAAsB;EAChC,IAAI,iBAAiB;EACrB,IAAI,YAAY;EAChB,IAAI,iBAAiB;EACrB,GAAG,CAAC;AACJ;EACA,EAAE,IAAI,cAAc,GAAG,uBAAuB,CAAC,cAAc,CAAC;EAC9D,EAAED,qBAAU,CAAC,KAAK,CAACA,qBAAU,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,IAAI,eAAe,GAAG,IAAIA,qBAAU,EAAE,CAAC;AACvC;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,IAAI,kBAAkB,GAAG,iBAAiB,CAAC,MAAM,CAAC;EACpD,EAAE,IAAI,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;EAC9D,EAAE,IAAI,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC;AACzC;EACA,EAAE,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;EACpC,EAAE,IAAI,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;EAC9C,EAAE,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;AAChC;EACA,EAAE,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;EAClC,EAAE,IAAI,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;EAClD,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,IAAI,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;AAChD;EACA,EAAE,IAAI,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;EACxC,EAAE,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AAC9B;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,IAAI,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;AAC1D;EACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,EAAE,EAAE,CAAC,EAAE;EAC/C,IAAI,IAAI,yBAAyB,GAAG,+BAA+B;EACnE,MAAM,SAAS;EACf,MAAM,CAAC;EACP,KAAK,CAAC;EACN,IAAI,IAAI,oBAAoB,GAAG,yBAAyB,CAAC,WAAW,CAAC;EACrE,IAAIF,kBAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;AAC9E;EACA,IAAI,IAAI,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACvC;EACA,IAAI,IAAI,eAAe,GAAG,iBAAiB,CAAC,MAAM,CAAC;EACnD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,IAAI,CAAC,EAAE;EACjD,MAAM,IAAI,QAAQ,GAAGD,qBAAU,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC;EAC9E,MAAMC,kBAAO,CAAC,eAAe,CAAC,oBAAoB,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;EACxE,MAAMD,qBAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AACtD;EACA,MAAMA,qBAAU,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,IAAI,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC;EAC/C,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,IAAI,MAAM,GAAG,CAAC,GAAG,oBAAoB,CAAC;EAC1C,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,IAAI,aAAa,GAAG,IAAIF,qBAAU,EAAE,CAAC;EACrC,IAAI,cAAc,GAAG,IAAIC,kBAAO,EAAE,CAAC;AACnC;EACA,SAAS,YAAY,CAAC,MAAM,EAAE;EAC9B,EAAE,IAAI,YAAY,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;AAC9C;EACA,EAAE,IAAI,MAAM,GAAG,CAAC,CAAC;EACjB,EAAED,qBAAU,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;EACzD,EAAE,MAAM,IAAIA,qBAAU,CAAC,YAAY,CAAC;AACpC;EACA,EAAEC,kBAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;EACvD,CAAC;AACD;EACA,SAAS,0BAA0B,CAAC,cAAc,EAAE;EACpD,EAAE,IAAI,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;EACrC,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,IAAI,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;EACtC,EAAE,IAAI,MAAM;EACZ,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,IAAI,YAAY,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;AAC9C;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,IAAI,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC;EAC5C,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,IAAI,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;AACzC;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,IAAI,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;EACzC,IAAI,IAAI,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;EACzC,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,IAAI,KAAK,GAAGD,YAAO,CAAC,UAAU,CAAC,KAAK,CAAC;EACvC,MAAM,IAAI,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC;EACxC,MAAM,SAAS,CAAC;EAChB,EAAE,IAAI,WAAW,GAAGA,YAAO,CAAC,UAAU,CAAC,WAAW,CAAC;EACnD,MAAM,IAAI,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC;EAC7C,MAAM,SAAS,CAAC;EAChB,EAAE,IAAI,SAAS,GAAGA,YAAO,CAAC,UAAU,CAAC,SAAS,CAAC;EAC/C,MAAM,IAAI,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC;EAC5C,MAAM,SAAS,CAAC;EAChB,EAAE,IAAI,gBAAgB,GAAGA,YAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC;EAC7D,MAAM,IAAI,WAAW,CAAC,UAAU,CAAC,gBAAgB,CAAC;EAClD,MAAM,SAAS,CAAC;EAChB,EAAE,IAAI,UAAU,GAAGA,YAAO,CAAC,UAAU,CAAC,UAAU,CAAC;EACjD,MAAM,IAAI,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC;EAC7C,MAAM,SAAS,CAAC;EAChB,EAAE,IAAI,iBAAiB,GAAGA,YAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC;EAC/D,MAAM,IAAI,WAAW,CAAC,UAAU,CAAC,iBAAiB,CAAC;EACnD,MAAM,SAAS,CAAC;EAChB,EAAE,IAAI,OAAO,GAAGA,YAAO,CAAC,UAAU,CAAC,OAAO,CAAC;EAC3C,MAAM,IAAI,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC;EAC1C,MAAM,SAAS,CAAC;EAChB,EAAE,IAAI,cAAc,GAAGA,YAAO,CAAC,UAAU,CAAC,cAAc,CAAC;EACzD,MAAM,IAAI,WAAW,CAAC,UAAU,CAAC,cAAc,CAAC;EAChD,MAAM,SAAS,CAAC;AAChB;EACA,EAAE,IAAI,aAAa,GAAGA,YAAO,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;EAC9D,EAAE,IAAI,iBAAiB,GAAGA,YAAO,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;EAC3E,EAAE,IAAI,kBAAkB,GAAGA,YAAO,CAAC,UAAU,CAAC,GAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;EAC9E,EAAE,IAAI,eAAe,GAAGA,YAAO,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;AACrE;EACA,EAAE,IAAI,WAAW,GAAGE,uBAAW,CAAC,UAAU,EAAE,CAAC;EAC7C,EAAE,IAAI,gBAAgB,GAAGC,iCAAgB,CAAC,eAAe,EAAE,CAAC;EAC5D,EAAE,IAAI,iBAAiB,GAAGC,mCAAiB,CAAC,gBAAgB,EAAE,CAAC;AAC/D;EACA,EAAE,IAAI,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;EAC5D,EAAE,IAAI,iBAAiB,GAAG,gBAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;EACtE,EAAE,IAAI,kBAAkB,GAAG,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;AACxE;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,IAAI,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC;EACvC,EAAE,IAAI,eAAe,GAAG,gBAAgB,CAAC,OAAO,CAAC;EACjD,EAAE,IAAI,gBAAgB,GAAG,iBAAiB,CAAC,OAAO,CAAC;AACnD;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,IAAI,SAAS,GAAG,IAAI,YAAY,CAAC,iBAAiB,CAAC,CAAC;EACtD,EAAE,IAAI,cAAc,GAAG,IAAI,WAAW,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;EAC9D,EAAE,IAAI,OAAO,GAAGC,2BAAa,CAAC,gBAAgB;EAC9C,IAAI,iBAAiB,GAAG,CAAC;EACzB,IAAI,eAAe;EACnB,GAAG,CAAC;AACJ;EACA,EAAE,IAAI,kBAAkB;EACxB,IAAI,aAAa,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,eAAe,CAAC;EAC7E,EAAE,IAAI,QAAQ,GAAG,IAAI,WAAW,CAAC,kBAAkB,CAAC,CAAC;EACrD,EAAE,IAAI,cAAc,GAAG,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;EACrD,EAAE,IAAI,YAAY,GAAG,IAAI,WAAW,CAAC,kBAAkB,CAAC,CAAC;EACzD,EAAE,IAAI,WAAW,GAAG,IAAI,WAAW,CAAC,kBAAkB,CAAC,CAAC;EACxD,EAAE,IAAI,eAAe,GAAG,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;AACtD;EACA,EAAE,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACxC;EACA,EAAE,IAAI,OAAO,GAAG;EAChB,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,IAAI,YAAY,GAAG,UAAU;EAC/B,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;;;;;;;;"}
|