createVectorTilePolylines.js.map 15 KB

1
  1. {"version":3,"file":"createVectorTilePolylines.js","sources":["../../../../Source/WorkersES6/createVectorTilePolylines.js"],"sourcesContent":["import AttributeCompression from \"../Core/AttributeCompression.js\";\nimport Cartesian3 from \"../Core/Cartesian3.js\";\nimport Cartographic from \"../Core/Cartographic.js\";\nimport Ellipsoid from \"../Core/Ellipsoid.js\";\nimport IndexDatatype from \"../Core/IndexDatatype.js\";\nimport CesiumMath from \"../Core/Math.js\";\nimport Rectangle from \"../Core/Rectangle.js\";\nimport createTaskProcessorWorker from \"./createTaskProcessorWorker.js\";\n\nvar maxShort = 32767;\n\nvar scratchBVCartographic = new Cartographic();\nvar scratchEncodedPosition = new Cartesian3();\n\nfunction decodePositions(\n positions,\n rectangle,\n minimumHeight,\n maximumHeight,\n ellipsoid\n) {\n var positionsLength = positions.length / 3;\n var uBuffer = positions.subarray(0, positionsLength);\n var vBuffer = positions.subarray(positionsLength, 2 * positionsLength);\n var heightBuffer = positions.subarray(\n 2 * positionsLength,\n 3 * positionsLength\n );\n AttributeCompression.zigZagDeltaDecode(uBuffer, vBuffer, heightBuffer);\n\n var decoded = new Float64Array(positions.length);\n for (var i = 0; i < positionsLength; ++i) {\n var u = uBuffer[i];\n var v = vBuffer[i];\n var h = heightBuffer[i];\n\n var lon = CesiumMath.lerp(rectangle.west, rectangle.east, u / maxShort);\n var lat = CesiumMath.lerp(rectangle.south, rectangle.north, v / maxShort);\n var alt = CesiumMath.lerp(minimumHeight, maximumHeight, h / maxShort);\n\n var cartographic = Cartographic.fromRadians(\n lon,\n lat,\n alt,\n scratchBVCartographic\n );\n var decodedPosition = ellipsoid.cartographicToCartesian(\n cartographic,\n scratchEncodedPosition\n );\n Cartesian3.pack(decodedPosition, decoded, i * 3);\n }\n return decoded;\n}\n\nvar scratchRectangle = new Rectangle();\nvar scratchEllipsoid = new Ellipsoid();\nvar scratchCenter = new Cartesian3();\nvar scratchMinMaxHeights = {\n min: undefined,\n max: undefined,\n};\n\nfunction unpackBuffer(packedBuffer) {\n packedBuffer = new Float64Array(packedBuffer);\n\n var offset = 0;\n scratchMinMaxHeights.min = packedBuffer[offset++];\n scratchMinMaxHeights.max = packedBuffer[offset++];\n\n Rectangle.unpack(packedBuffer, offset, scratchRectangle);\n offset += Rectangle.packedLength;\n\n Ellipsoid.unpack(packedBuffer, offset, scratchEllipsoid);\n offset += Ellipsoid.packedLength;\n\n Cartesian3.unpack(packedBuffer, offset, scratchCenter);\n}\n\nvar scratchP0 = new Cartesian3();\nvar scratchP1 = new Cartesian3();\nvar scratchPrev = new Cartesian3();\nvar scratchCur = new Cartesian3();\nvar scratchNext = new Cartesian3();\n\nfunction createVectorTilePolylines(parameters, transferableObjects) {\n var encodedPositions = new Uint16Array(parameters.positions);\n var widths = new Uint16Array(parameters.widths);\n var counts = new Uint32Array(parameters.counts);\n var batchIds = new Uint16Array(parameters.batchIds);\n\n unpackBuffer(parameters.packedBuffer);\n var rectangle = scratchRectangle;\n var ellipsoid = scratchEllipsoid;\n var center = scratchCenter;\n var minimumHeight = scratchMinMaxHeights.min;\n var maximumHeight = scratchMinMaxHeights.max;\n\n var positions = decodePositions(\n encodedPositions,\n rectangle,\n minimumHeight,\n maximumHeight,\n ellipsoid\n );\n\n var positionsLength = positions.length / 3;\n var size = positionsLength * 4 - 4;\n\n var curPositions = new Float32Array(size * 3);\n var prevPositions = new Float32Array(size * 3);\n var nextPositions = new Float32Array(size * 3);\n var expandAndWidth = new Float32Array(size * 2);\n var vertexBatchIds = new Uint16Array(size);\n\n var positionIndex = 0;\n var expandAndWidthIndex = 0;\n var batchIdIndex = 0;\n\n var i;\n var offset = 0;\n var length = counts.length;\n\n for (i = 0; i < length; ++i) {\n var count = counts[i];\n var width = widths[i];\n var batchId = batchIds[i];\n\n for (var j = 0; j < count; ++j) {\n var previous;\n if (j === 0) {\n var p0 = Cartesian3.unpack(positions, offset * 3, scratchP0);\n var p1 = Cartesian3.unpack(positions, (offset + 1) * 3, scratchP1);\n\n previous = Cartesian3.subtract(p0, p1, scratchPrev);\n Cartesian3.add(p0, previous, previous);\n } else {\n previous = Cartesian3.unpack(\n positions,\n (offset + j - 1) * 3,\n scratchPrev\n );\n }\n\n var current = Cartesian3.unpack(positions, (offset + j) * 3, scratchCur);\n\n var next;\n if (j === count - 1) {\n var p2 = Cartesian3.unpack(\n positions,\n (offset + count - 1) * 3,\n scratchP0\n );\n var p3 = Cartesian3.unpack(\n positions,\n (offset + count - 2) * 3,\n scratchP1\n );\n\n next = Cartesian3.subtract(p2, p3, scratchNext);\n Cartesian3.add(p2, next, next);\n } else {\n next = Cartesian3.unpack(positions, (offset + j + 1) * 3, scratchNext);\n }\n\n Cartesian3.subtract(previous, center, previous);\n Cartesian3.subtract(current, center, current);\n Cartesian3.subtract(next, center, next);\n\n var startK = j === 0 ? 2 : 0;\n var endK = j === count - 1 ? 2 : 4;\n\n for (var k = startK; k < endK; ++k) {\n Cartesian3.pack(current, curPositions, positionIndex);\n Cartesian3.pack(previous, prevPositions, positionIndex);\n Cartesian3.pack(next, nextPositions, positionIndex);\n positionIndex += 3;\n\n var direction = k - 2 < 0 ? -1.0 : 1.0;\n expandAndWidth[expandAndWidthIndex++] = 2 * (k % 2) - 1;\n expandAndWidth[expandAndWidthIndex++] = direction * width;\n\n vertexBatchIds[batchIdIndex++] = batchId;\n }\n }\n\n offset += count;\n }\n\n var indices = IndexDatatype.createTypedArray(size, positionsLength * 6 - 6);\n var index = 0;\n var indicesIndex = 0;\n length = positionsLength - 1;\n for (i = 0; i < length; ++i) {\n indices[indicesIndex++] = index;\n indices[indicesIndex++] = index + 2;\n indices[indicesIndex++] = index + 1;\n\n indices[indicesIndex++] = index + 1;\n indices[indicesIndex++] = index + 2;\n indices[indicesIndex++] = index + 3;\n\n index += 4;\n }\n\n transferableObjects.push(\n curPositions.buffer,\n prevPositions.buffer,\n nextPositions.buffer\n );\n transferableObjects.push(\n expandAndWidth.buffer,\n vertexBatchIds.buffer,\n indices.buffer\n );\n\n return {\n indexDatatype:\n indices.BYTES_PER_ELEMENT === 2\n ? IndexDatatype.UNSIGNED_SHORT\n : IndexDatatype.UNSIGNED_INT,\n currentPositions: curPositions.buffer,\n previousPositions: prevPositions.buffer,\n nextPositions: nextPositions.buffer,\n expandAndWidth: expandAndWidth.buffer,\n batchIds: vertexBatchIds.buffer,\n indices: indices.buffer,\n };\n}\nexport default createTaskProcessorWorker(createVectorTilePolylines);\n"],"names":["Cartographic","Cartesian3","AttributeCompression","CesiumMath","Rectangle","Ellipsoid","IndexDatatype"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;EASA,IAAI,QAAQ,GAAG,KAAK,CAAC;AACrB;EACA,IAAI,qBAAqB,GAAG,IAAIA,uBAAY,EAAE,CAAC;EAC/C,IAAI,sBAAsB,GAAG,IAAIC,qBAAU,EAAE,CAAC;AAC9C;EACA,SAAS,eAAe;EACxB,EAAE,SAAS;EACX,EAAE,SAAS;EACX,EAAE,aAAa;EACf,EAAE,aAAa;EACf,EAAE,SAAS;EACX,EAAE;EACF,EAAE,IAAI,eAAe,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;EAC7C,EAAE,IAAI,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;EACvD,EAAE,IAAI,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC;EACzE,EAAE,IAAI,YAAY,GAAG,SAAS,CAAC,QAAQ;EACvC,IAAI,CAAC,GAAG,eAAe;EACvB,IAAI,CAAC,GAAG,eAAe;EACvB,GAAG,CAAC;EACJ,EAAEC,yCAAoB,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;AACzE;EACA,EAAE,IAAI,OAAO,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;EACnD,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,EAAE,CAAC,EAAE;EAC5C,IAAI,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;EACvB,IAAI,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;EACvB,IAAI,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AAC5B;EACA,IAAI,IAAI,GAAG,GAAGC,gBAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC;EAC5E,IAAI,IAAI,GAAG,GAAGA,gBAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC;EAC9E,IAAI,IAAI,GAAG,GAAGA,gBAAU,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC;AAC1E;EACA,IAAI,IAAI,YAAY,GAAGH,uBAAY,CAAC,WAAW;EAC/C,MAAM,GAAG;EACT,MAAM,GAAG;EACT,MAAM,GAAG;EACT,MAAM,qBAAqB;EAC3B,KAAK,CAAC;EACN,IAAI,IAAI,eAAe,GAAG,SAAS,CAAC,uBAAuB;EAC3D,MAAM,YAAY;EAClB,MAAM,sBAAsB;EAC5B,KAAK,CAAC;EACN,IAAIC,qBAAU,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;EACrD,GAAG;EACH,EAAE,OAAO,OAAO,CAAC;EACjB,CAAC;AACD;EACA,IAAI,gBAAgB,GAAG,IAAIG,oBAAS,EAAE,CAAC;EACvC,IAAI,gBAAgB,GAAG,IAAIC,oBAAS,EAAE,CAAC;EACvC,IAAI,aAAa,GAAG,IAAIJ,qBAAU,EAAE,CAAC;EACrC,IAAI,oBAAoB,GAAG;EAC3B,EAAE,GAAG,EAAE,SAAS;EAChB,EAAE,GAAG,EAAE,SAAS;EAChB,CAAC,CAAC;AACF;EACA,SAAS,YAAY,CAAC,YAAY,EAAE;EACpC,EAAE,YAAY,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC,CAAC;AAChD;EACA,EAAE,IAAI,MAAM,GAAG,CAAC,CAAC;EACjB,EAAE,oBAAoB,CAAC,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;EACpD,EAAE,oBAAoB,CAAC,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;AACpD;EACA,EAAEG,oBAAS,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;EAC3D,EAAE,MAAM,IAAIA,oBAAS,CAAC,YAAY,CAAC;AACnC;EACA,EAAEC,oBAAS,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;EAC3D,EAAE,MAAM,IAAIA,oBAAS,CAAC,YAAY,CAAC;AACnC;EACA,EAAEJ,qBAAU,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;EACzD,CAAC;AACD;EACA,IAAI,SAAS,GAAG,IAAIA,qBAAU,EAAE,CAAC;EACjC,IAAI,SAAS,GAAG,IAAIA,qBAAU,EAAE,CAAC;EACjC,IAAI,WAAW,GAAG,IAAIA,qBAAU,EAAE,CAAC;EACnC,IAAI,UAAU,GAAG,IAAIA,qBAAU,EAAE,CAAC;EAClC,IAAI,WAAW,GAAG,IAAIA,qBAAU,EAAE,CAAC;AACnC;EACA,SAAS,yBAAyB,CAAC,UAAU,EAAE,mBAAmB,EAAE;EACpE,EAAE,IAAI,gBAAgB,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;EAC/D,EAAE,IAAI,MAAM,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;EAClD,EAAE,IAAI,MAAM,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;EAClD,EAAE,IAAI,QAAQ,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACtD;EACA,EAAE,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;EACxC,EAAE,IAAI,SAAS,GAAG,gBAAgB,CAAC;EACnC,EAAE,IAAI,SAAS,GAAG,gBAAgB,CAAC;EACnC,EAAE,IAAI,MAAM,GAAG,aAAa,CAAC;EAC7B,EAAE,IAAI,aAAa,GAAG,oBAAoB,CAAC,GAAG,CAAC;EAC/C,EAAE,IAAI,aAAa,GAAG,oBAAoB,CAAC,GAAG,CAAC;AAC/C;EACA,EAAE,IAAI,SAAS,GAAG,eAAe;EACjC,IAAI,gBAAgB;EACpB,IAAI,SAAS;EACb,IAAI,aAAa;EACjB,IAAI,aAAa;EACjB,IAAI,SAAS;EACb,GAAG,CAAC;AACJ;EACA,EAAE,IAAI,eAAe,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;EAC7C,EAAE,IAAI,IAAI,GAAG,eAAe,GAAG,CAAC,GAAG,CAAC,CAAC;AACrC;EACA,EAAE,IAAI,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;EAChD,EAAE,IAAI,aAAa,GAAG,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;EACjD,EAAE,IAAI,aAAa,GAAG,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;EACjD,EAAE,IAAI,cAAc,GAAG,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;EAClD,EAAE,IAAI,cAAc,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;AAC7C;EACA,EAAE,IAAI,aAAa,GAAG,CAAC,CAAC;EACxB,EAAE,IAAI,mBAAmB,GAAG,CAAC,CAAC;EAC9B,EAAE,IAAI,YAAY,GAAG,CAAC,CAAC;AACvB;EACA,EAAE,IAAI,CAAC,CAAC;EACR,EAAE,IAAI,MAAM,GAAG,CAAC,CAAC;EACjB,EAAE,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7B;EACA,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;EAC/B,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;EAC1B,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;EAC1B,IAAI,IAAI,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC9B;EACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC,EAAE;EACpC,MAAM,IAAI,QAAQ,CAAC;EACnB,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE;EACnB,QAAQ,IAAI,EAAE,GAAGA,qBAAU,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;EACrE,QAAQ,IAAI,EAAE,GAAGA,qBAAU,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;AAC3E;EACA,QAAQ,QAAQ,GAAGA,qBAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;EAC5D,QAAQA,qBAAU,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;EAC/C,OAAO,MAAM;EACb,QAAQ,QAAQ,GAAGA,qBAAU,CAAC,MAAM;EACpC,UAAU,SAAS;EACnB,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;EAC9B,UAAU,WAAW;EACrB,SAAS,CAAC;EACV,OAAO;AACP;EACA,MAAM,IAAI,OAAO,GAAGA,qBAAU,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;AAC/E;EACA,MAAM,IAAI,IAAI,CAAC;EACf,MAAM,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,EAAE;EAC3B,QAAQ,IAAI,EAAE,GAAGA,qBAAU,CAAC,MAAM;EAClC,UAAU,SAAS;EACnB,UAAU,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC;EAClC,UAAU,SAAS;EACnB,SAAS,CAAC;EACV,QAAQ,IAAI,EAAE,GAAGA,qBAAU,CAAC,MAAM;EAClC,UAAU,SAAS;EACnB,UAAU,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC;EAClC,UAAU,SAAS;EACnB,SAAS,CAAC;AACV;EACA,QAAQ,IAAI,GAAGA,qBAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;EACxD,QAAQA,qBAAU,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;EACvC,OAAO,MAAM;EACb,QAAQ,IAAI,GAAGA,qBAAU,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;EAC/E,OAAO;AACP;EACA,MAAMA,qBAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;EACtD,MAAMA,qBAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;EACpD,MAAMA,qBAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC9C;EACA,MAAM,IAAI,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;EACnC,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzC;EACA,MAAM,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;EAC1C,QAAQA,qBAAU,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;EAC9D,QAAQA,qBAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;EAChE,QAAQA,qBAAU,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;EAC5D,QAAQ,aAAa,IAAI,CAAC,CAAC;AAC3B;EACA,QAAQ,IAAI,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;EAC/C,QAAQ,cAAc,CAAC,mBAAmB,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;EAChE,QAAQ,cAAc,CAAC,mBAAmB,EAAE,CAAC,GAAG,SAAS,GAAG,KAAK,CAAC;AAClE;EACA,QAAQ,cAAc,CAAC,YAAY,EAAE,CAAC,GAAG,OAAO,CAAC;EACjD,OAAO;EACP,KAAK;AACL;EACA,IAAI,MAAM,IAAI,KAAK,CAAC;EACpB,GAAG;AACH;EACA,EAAE,IAAI,OAAO,GAAGK,2BAAa,CAAC,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;EAC9E,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;EAChB,EAAE,IAAI,YAAY,GAAG,CAAC,CAAC;EACvB,EAAE,MAAM,GAAG,eAAe,GAAG,CAAC,CAAC;EAC/B,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;EAC/B,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,CAAC;EACpC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;EACxC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AACxC;EACA,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;EACxC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;EACxC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AACxC;EACA,IAAI,KAAK,IAAI,CAAC,CAAC;EACf,GAAG;AACH;EACA,EAAE,mBAAmB,CAAC,IAAI;EAC1B,IAAI,YAAY,CAAC,MAAM;EACvB,IAAI,aAAa,CAAC,MAAM;EACxB,IAAI,aAAa,CAAC,MAAM;EACxB,GAAG,CAAC;EACJ,EAAE,mBAAmB,CAAC,IAAI;EAC1B,IAAI,cAAc,CAAC,MAAM;EACzB,IAAI,cAAc,CAAC,MAAM;EACzB,IAAI,OAAO,CAAC,MAAM;EAClB,GAAG,CAAC;AACJ;EACA,EAAE,OAAO;EACT,IAAI,aAAa;EACjB,MAAM,OAAO,CAAC,iBAAiB,KAAK,CAAC;EACrC,UAAUA,2BAAa,CAAC,cAAc;EACtC,UAAUA,2BAAa,CAAC,YAAY;EACpC,IAAI,gBAAgB,EAAE,YAAY,CAAC,MAAM;EACzC,IAAI,iBAAiB,EAAE,aAAa,CAAC,MAAM;EAC3C,IAAI,aAAa,EAAE,aAAa,CAAC,MAAM;EACvC,IAAI,cAAc,EAAE,cAAc,CAAC,MAAM;EACzC,IAAI,QAAQ,EAAE,cAAc,CAAC,MAAM;EACnC,IAAI,OAAO,EAAE,OAAO,CAAC,MAAM;EAC3B,GAAG,CAAC;EACJ,CAAC;AACD,oCAAe,yBAAyB,CAAC,yBAAyB,CAAC;;;;;;;;"}