@helix3/helix-cli 0.1.13-helix3.144 → 0.1.13-helix3.145

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,15 +8,11 @@ const node_path_1 = require("node:path");
8
8
  const archive_1 = require("./archive");
9
9
  const fbx_1 = require("./fbx");
10
10
  const obj_1 = require("./obj");
11
+ const helsinkiTiles_1 = require("./helsinkiTiles");
11
12
  const package_1 = require("./package");
12
13
  const types_1 = require("./types");
13
14
  const HELSINKI_SHA = '38cdce6d0a1570aa0b11bc74ba955d08ac422867d69cf0d1af1d19ad20110a32';
14
15
  const BISTRO_SHA = '0d50e3c724c6c5da19f8eb99ad3f53e36fec37ffa2df9621f9ccf0603f3934e1';
15
- const HELSINKI_MEMBERS = {
16
- proxyObj: '672496d1/Tile_+033_+019_L13.obj',
17
- detailObj: '672496d1/Tile_+033_+019_L16_000.obj',
18
- detailTexture: '672496d1/Tile_+033_+019_L16_000_0.jpg',
19
- };
20
16
  const BISTRO_MEMBERS = {
21
17
  fbx: 'Bistro_v5_2/BistroInterior.fbx',
22
18
  };
@@ -53,34 +49,40 @@ async function compileHelsinki(archivePath, outputDir) {
53
49
  const profile = sourceProfile('helsinki-672496d1');
54
50
  const work = await (0, promises_1.mkdtemp)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'helix-helsinki-'));
55
51
  try {
56
- const members = Object.values(HELSINKI_MEMBERS);
52
+ const detailMembers = (0, helsinkiTiles_1.helsinkiDetailMembers)(helsinkiTiles_1.HELSINKI_DETAIL_LEVEL);
57
53
  const files = await (0, archive_1.extractArchiveMembers)({
58
54
  archivePath,
59
55
  expectedSha256: profile.sha256,
60
- members,
56
+ members: [
57
+ helsinkiTiles_1.HELSINKI_PROXY_OBJ,
58
+ ...detailMembers.flatMap((member) => [member.obj, member.texture]),
59
+ ],
61
60
  outputDir: work,
62
61
  });
63
62
  const cellOrigin = [6500, 4500, 0];
64
63
  const proxy = await (0, obj_1.compileObjGlb)({
65
- sourceName: (0, node_path_1.basename)(HELSINKI_MEMBERS.proxyObj),
66
- obj: await (0, promises_1.readFile)(required(files, HELSINKI_MEMBERS.proxyObj)),
64
+ sourceName: (0, node_path_1.basename)(helsinkiTiles_1.HELSINKI_PROXY_OBJ),
65
+ obj: await (0, promises_1.readFile)(required(files, helsinkiTiles_1.HELSINKI_PROXY_OBJ)),
67
66
  localOrigin: cellOrigin,
68
67
  receipt: profile.receipt,
69
68
  axisMapping: helsinkiToHelix,
70
69
  });
71
70
  proxy.filename = 'helsinki-672496d1-l13.proxy.glb';
72
- const detail = await (0, obj_1.compileObjGlb)({
73
- sourceName: (0, node_path_1.basename)(HELSINKI_MEMBERS.detailObj),
74
- obj: await (0, promises_1.readFile)(required(files, HELSINKI_MEMBERS.detailObj)),
71
+ const detail = await (0, obj_1.compileObjParts)({
72
+ sourceName: `${helsinkiTiles_1.HELSINKI_TILE_PREFIX}_L${helsinkiTiles_1.HELSINKI_DETAIL_LEVEL}.obj`,
73
+ parts: await Promise.all(detailMembers.map(async (member) => ({
74
+ name: (0, node_path_1.basename)(member.obj),
75
+ obj: await (0, promises_1.readFile)(required(files, member.obj)),
76
+ texture: {
77
+ bytes: await (0, promises_1.readFile)(required(files, member.texture)),
78
+ mimeType: 'image/jpeg',
79
+ },
80
+ }))),
75
81
  localOrigin: cellOrigin,
76
82
  receipt: profile.receipt,
77
- texture: {
78
- bytes: await (0, promises_1.readFile)(required(files, HELSINKI_MEMBERS.detailTexture)),
79
- mimeType: 'image/jpeg',
80
- },
81
83
  axisMapping: helsinkiToHelix,
82
84
  });
83
- detail.filename = 'helsinki-672496d1-l16.detail.glb';
85
+ detail.filename = `helsinki-672496d1-l${helsinkiTiles_1.HELSINKI_DETAIL_LEVEL}.detail.glb`;
84
86
  return (0, package_1.createSceneV2Package)({
85
87
  outputDir,
86
88
  title: 'Helsinki 672496d1',
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/sceneImport/compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/sceneImport/compiler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ export declare const HELSINKI_TILE = "672496d1";
2
+ export declare const HELSINKI_TILE_PREFIX = "Tile_+033_+019";
3
+ export declare const HELSINKI_PROXY_OBJ = "672496d1/Tile_+033_+019_L13.obj";
4
+ /**
5
+ * Which refinement level of the photogrammetry quadtree becomes the streamed
6
+ * detail mesh. The source stores levels 13 through 21; 16 is a single mesh for
7
+ * the whole 250 m tile and is visibly coarse underfoot, while each further
8
+ * level quadruples the piece count and roughly triples the bytes.
9
+ *
10
+ * 18 is also the deepest level this importer can address at all. Levels 16-18
11
+ * are a COMPLETE quadtree (1, 4, 16 pieces), but the source prunes and
12
+ * re-splits below that -- level 19 carries 68 pieces where a complete tree
13
+ * would have 64, and levels 20 and 21 carry 68 as well. Generated paths stop
14
+ * describing the archive at that point, so reaching deeper means reading the
15
+ * real tree out of the inventory rather than raising this number.
16
+ */
17
+ export declare const HELSINKI_DETAIL_LEVEL = 18;
18
+ export declare const HELSINKI_MAX_COMPLETE_LEVEL = 18;
19
+ /**
20
+ * Every mesh at `level` beneath the tile's single level-16 node.
21
+ *
22
+ * The quadtree names each piece by its path from the root: level 16 is `000`,
23
+ * level 17 is `000` plus one base-4 digit, level 18 `000` plus two, and so on.
24
+ * The paths are generated rather than read back from the archive so the
25
+ * extractor keeps its explicit allowlist -- nothing is extracted because the
26
+ * archive happened to name it.
27
+ */
28
+ export declare function helsinkiDetailMembers(level: number): Array<{
29
+ obj: string;
30
+ texture: string;
31
+ }>;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ // Addressing for the Helsinki 3D photogrammetry archive's quadtree.
3
+ //
4
+ // Kept in its own module with no heavy imports: `compiler.ts` pulls in the FBX
5
+ // loader, which is ESM-only and cannot be required from the Jest environment,
6
+ // so anything a test needs to reach must not sit behind it.
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.HELSINKI_MAX_COMPLETE_LEVEL = exports.HELSINKI_DETAIL_LEVEL = exports.HELSINKI_PROXY_OBJ = exports.HELSINKI_TILE_PREFIX = exports.HELSINKI_TILE = void 0;
9
+ exports.helsinkiDetailMembers = helsinkiDetailMembers;
10
+ exports.HELSINKI_TILE = '672496d1';
11
+ exports.HELSINKI_TILE_PREFIX = 'Tile_+033_+019';
12
+ exports.HELSINKI_PROXY_OBJ = `${exports.HELSINKI_TILE}/${exports.HELSINKI_TILE_PREFIX}_L13.obj`;
13
+ /**
14
+ * Which refinement level of the photogrammetry quadtree becomes the streamed
15
+ * detail mesh. The source stores levels 13 through 21; 16 is a single mesh for
16
+ * the whole 250 m tile and is visibly coarse underfoot, while each further
17
+ * level quadruples the piece count and roughly triples the bytes.
18
+ *
19
+ * 18 is also the deepest level this importer can address at all. Levels 16-18
20
+ * are a COMPLETE quadtree (1, 4, 16 pieces), but the source prunes and
21
+ * re-splits below that -- level 19 carries 68 pieces where a complete tree
22
+ * would have 64, and levels 20 and 21 carry 68 as well. Generated paths stop
23
+ * describing the archive at that point, so reaching deeper means reading the
24
+ * real tree out of the inventory rather than raising this number.
25
+ */
26
+ exports.HELSINKI_DETAIL_LEVEL = 18;
27
+ exports.HELSINKI_MAX_COMPLETE_LEVEL = 18;
28
+ /**
29
+ * Every mesh at `level` beneath the tile's single level-16 node.
30
+ *
31
+ * The quadtree names each piece by its path from the root: level 16 is `000`,
32
+ * level 17 is `000` plus one base-4 digit, level 18 `000` plus two, and so on.
33
+ * The paths are generated rather than read back from the archive so the
34
+ * extractor keeps its explicit allowlist -- nothing is extracted because the
35
+ * archive happened to name it.
36
+ */
37
+ function helsinkiDetailMembers(level) {
38
+ if (!Number.isInteger(level) ||
39
+ level < 16 ||
40
+ level > exports.HELSINKI_MAX_COMPLETE_LEVEL) {
41
+ throw new Error(`Helsinki detail level must be an integer 16-${exports.HELSINKI_MAX_COMPLETE_LEVEL}; deeper levels prune the quadtree and cannot be addressed by generated paths (got ${level})`);
42
+ }
43
+ let paths = ['000'];
44
+ for (let depth = 16; depth < level; depth += 1) {
45
+ paths = paths.flatMap((path) => ['0', '1', '2', '3'].map((digit) => path + digit));
46
+ }
47
+ return paths.map((path) => ({
48
+ obj: `${exports.HELSINKI_TILE}/${exports.HELSINKI_TILE_PREFIX}_L${level}_${path}.obj`,
49
+ texture: `${exports.HELSINKI_TILE}/${exports.HELSINKI_TILE_PREFIX}_L${level}_${path}_0.jpg`,
50
+ }));
51
+ }
52
+ //# sourceMappingURL=helsinkiTiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helsinkiTiles.js","sourceRoot":"","sources":["../../src/sceneImport/helsinkiTiles.ts"],"names":[],"mappings":";AAAA,oEAAoE;AACpE,EAAE;AACF,+EAA+E;AAC/E,8EAA8E;AAC9E,4DAA4D;;;AA8B5D,sDAoBC;AAhDY,QAAA,aAAa,GAAG,UAAU,CAAC;AAC3B,QAAA,oBAAoB,GAAG,gBAAgB,CAAC;AACxC,QAAA,kBAAkB,GAAG,GAAG,qBAAa,IAAI,4BAAoB,UAAU,CAAC;AACrF;;;;;;;;;;;;GAYG;AACU,QAAA,qBAAqB,GAAG,EAAE,CAAC;AAC3B,QAAA,2BAA2B,GAAG,EAAE,CAAC;AAE9C;;;;;;;;GAQG;AACH,SAAgB,qBAAqB,CACnC,KAAa;IAEb,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;QACxB,KAAK,GAAG,EAAE;QACV,KAAK,GAAG,mCAA2B,EACnC,CAAC;QACD,MAAM,IAAI,KAAK,CACb,+CAA+C,mCAA2B,sFAAsF,KAAK,GAAG,CACzK,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,KAAK,IAAI,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC/C,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1B,GAAG,EAAE,GAAG,qBAAa,IAAI,4BAAoB,KAAK,KAAK,IAAI,IAAI,MAAM;QACrE,OAAO,EAAE,GAAG,qBAAa,IAAI,4BAAoB,KAAK,KAAK,IAAI,IAAI,QAAQ;KAC5E,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -1,5 +1,14 @@
1
1
  import type { CompiledSceneArtifact, SourceConversionReceipt, Vec3 } from './types';
2
2
  type AxisMapping = (source: Vec3) => Vec3;
3
+ export type ObjSourcePart = {
4
+ /** Distinguishes this part's materials from every other part's. */
5
+ name: string;
6
+ obj: Buffer;
7
+ texture?: {
8
+ bytes: Buffer;
9
+ mimeType: 'image/jpeg' | 'image/png';
10
+ };
11
+ };
3
12
  export declare function compileObjGlb(input: {
4
13
  sourceName: string;
5
14
  obj: Buffer;
@@ -11,4 +20,22 @@ export declare function compileObjGlb(input: {
11
20
  };
12
21
  axisMapping?: AxisMapping;
13
22
  }): Promise<CompiledSceneArtifact>;
23
+ /**
24
+ * Compile one GLB from several source OBJs that share a coordinate space.
25
+ *
26
+ * A photogrammetry quadtree stores each refinement level as N sibling meshes,
27
+ * each with its OWN texture atlas -- level 18 of a Helsinki tile is 16 pieces,
28
+ * not one. Compiling a single piece throws away fifteen sixteenths of the tile,
29
+ * so the only way to serve a deeper level as one resource is to carry every
30
+ * sibling and its texture into the same document. Materials are namespaced per
31
+ * part, because sibling OBJs reuse the same `usemtl` names against different
32
+ * atlases and merging them would paint one part with another's texture.
33
+ */
34
+ export declare function compileObjParts(input: {
35
+ sourceName: string;
36
+ parts: ObjSourcePart[];
37
+ localOrigin: Vec3;
38
+ receipt: SourceConversionReceipt;
39
+ axisMapping?: AxisMapping;
40
+ }): Promise<CompiledSceneArtifact>;
14
41
  export {};
@@ -1,83 +1,127 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.compileObjGlb = compileObjGlb;
4
+ exports.compileObjParts = compileObjParts;
4
5
  const node_crypto_1 = require("node:crypto");
5
6
  const core_1 = require("@gltf-transform/core");
6
7
  const spawnProbe_1 = require("./spawnProbe");
7
8
  const types_1 = require("./types");
8
9
  async function compileObjGlb(input) {
10
+ return compileObjParts({
11
+ sourceName: input.sourceName,
12
+ parts: [
13
+ {
14
+ name: input.sourceName,
15
+ obj: input.obj,
16
+ ...(input.texture ? { texture: input.texture } : {}),
17
+ },
18
+ ],
19
+ localOrigin: input.localOrigin,
20
+ receipt: input.receipt,
21
+ ...(input.axisMapping ? { axisMapping: input.axisMapping } : {}),
22
+ });
23
+ }
24
+ /**
25
+ * Compile one GLB from several source OBJs that share a coordinate space.
26
+ *
27
+ * A photogrammetry quadtree stores each refinement level as N sibling meshes,
28
+ * each with its OWN texture atlas -- level 18 of a Helsinki tile is 16 pieces,
29
+ * not one. Compiling a single piece throws away fifteen sixteenths of the tile,
30
+ * so the only way to serve a deeper level as one resource is to carry every
31
+ * sibling and its texture into the same document. Materials are namespaced per
32
+ * part, because sibling OBJs reuse the same `usemtl` names against different
33
+ * atlases and merging them would paint one part with another's texture.
34
+ */
35
+ async function compileObjParts(input) {
9
36
  (0, types_1.assertFiniteVec3)(input.localOrigin, 'local origin');
10
- const parsed = parseObj(input.obj.toString('utf8'), input.localOrigin, input.axisMapping);
11
- if (!parsed.triangles.length)
12
- throw new Error(`${input.sourceName} contains no triangles`);
37
+ if (!input.parts.length)
38
+ throw new Error(`${input.sourceName} has no source parts`);
13
39
  const document = new core_1.Document();
14
40
  const buffer = document.createBuffer();
15
41
  const scene = document.createScene('scene');
16
42
  const materialByName = new Map();
17
43
  let textureCount = 0;
18
- let texture;
19
- if (input.texture) {
20
- texture = document
21
- .createTexture('source-base-color')
22
- .setImage(new Uint8Array(input.texture.bytes))
23
- .setMimeType(input.texture.mimeType);
24
- textureCount = 1;
25
- }
26
- for (const group of parsed.groups) {
27
- const positions = [];
28
- const normals = [];
29
- const uvs = [];
30
- const indices = [];
31
- for (const triangle of group.triangles) {
32
- for (const vertex of triangle) {
33
- indices.push(indices.length);
34
- positions.push(...vertex.position);
35
- if (vertex.normal)
36
- normals.push(...vertex.normal);
37
- if (vertex.uv)
38
- uvs.push(...vertex.uv);
39
- }
44
+ const allTriangles = [];
45
+ const bounds = {
46
+ min: [Infinity, Infinity, Infinity],
47
+ max: [-Infinity, -Infinity, -Infinity],
48
+ };
49
+ let groupCount = 0;
50
+ for (const part of input.parts) {
51
+ const parsed = parseObj(part.obj.toString('utf8'), input.localOrigin, input.axisMapping);
52
+ if (!parsed.triangles.length)
53
+ throw new Error(`${part.name} contains no triangles`);
54
+ allTriangles.push(...parsed.triangles);
55
+ groupCount += parsed.groups.length;
56
+ for (let axis = 0; axis < 3; axis++) {
57
+ bounds.min[axis] = Math.min(bounds.min[axis], parsed.bounds.min[axis]);
58
+ bounds.max[axis] = Math.max(bounds.max[axis], parsed.bounds.max[axis]);
40
59
  }
41
- const primitive = document
42
- .createPrimitive()
43
- .setMode(4)
44
- .setIndices(document
45
- .createAccessor()
46
- .setType('SCALAR')
47
- .setArray(new Uint32Array(indices))
48
- .setBuffer(buffer))
49
- .setAttribute('POSITION', document
50
- .createAccessor()
51
- .setType('VEC3')
52
- .setArray(new Float32Array(positions))
53
- .setBuffer(buffer));
54
- const normalsOut = normals.length === positions.length ? normals : computeFlatNormals(positions);
55
- primitive.setAttribute('NORMAL', document.createAccessor().setType('VEC3').setArray(new Float32Array(normalsOut)).setBuffer(buffer));
56
- if (uvs.length * 3 === positions.length * 2) {
57
- primitive.setAttribute('TEXCOORD_0', document
60
+ let texture;
61
+ if (part.texture) {
62
+ texture = document
63
+ .createTexture(`${part.name}-base-color`)
64
+ .setImage(new Uint8Array(part.texture.bytes))
65
+ .setMimeType(part.texture.mimeType);
66
+ textureCount += 1;
67
+ }
68
+ for (const group of parsed.groups) {
69
+ const positions = [];
70
+ const normals = [];
71
+ const uvs = [];
72
+ const indices = [];
73
+ for (const triangle of group.triangles) {
74
+ for (const vertex of triangle) {
75
+ indices.push(indices.length);
76
+ positions.push(...vertex.position);
77
+ if (vertex.normal)
78
+ normals.push(...vertex.normal);
79
+ if (vertex.uv)
80
+ uvs.push(...vertex.uv);
81
+ }
82
+ }
83
+ const primitive = document
84
+ .createPrimitive()
85
+ .setMode(4)
86
+ .setIndices(document
58
87
  .createAccessor()
59
- .setType('VEC2')
60
- .setArray(new Float32Array(uvs))
88
+ .setType('SCALAR')
89
+ .setArray(new Uint32Array(indices))
90
+ .setBuffer(buffer))
91
+ .setAttribute('POSITION', document
92
+ .createAccessor()
93
+ .setType('VEC3')
94
+ .setArray(new Float32Array(positions))
61
95
  .setBuffer(buffer));
62
- }
63
- let material = materialByName.get(group.material);
64
- if (!material) {
65
- material = document
66
- .createMaterial(group.material)
67
- .setBaseColorFactor([0.72, 0.72, 0.72, 1])
68
- .setRoughnessFactor(1)
69
- .setMetallicFactor(0);
70
- if (texture && group.material !== 'default') {
71
- material.setBaseColorTexture(texture);
72
- // glTF multiplies the sampled base color by this factor. The neutral fallback gray is
73
- // only for untextured proxies; retaining it here darkens source imagery by 28%.
74
- material.setBaseColorFactor([1, 1, 1, 1]);
96
+ const normalsOut = normals.length === positions.length ? normals : computeFlatNormals(positions);
97
+ primitive.setAttribute('NORMAL', document.createAccessor().setType('VEC3').setArray(new Float32Array(normalsOut)).setBuffer(buffer));
98
+ if (uvs.length * 3 === positions.length * 2) {
99
+ primitive.setAttribute('TEXCOORD_0', document
100
+ .createAccessor()
101
+ .setType('VEC2')
102
+ .setArray(new Float32Array(uvs))
103
+ .setBuffer(buffer));
104
+ }
105
+ const materialKey = `${part.name}\u0000${group.material}`;
106
+ let material = materialByName.get(materialKey);
107
+ if (!material) {
108
+ material = document
109
+ .createMaterial(group.material)
110
+ .setBaseColorFactor([0.72, 0.72, 0.72, 1])
111
+ .setRoughnessFactor(1)
112
+ .setMetallicFactor(0);
113
+ if (texture && group.material !== 'default') {
114
+ material.setBaseColorTexture(texture);
115
+ // glTF multiplies the sampled base color by this factor. The neutral fallback gray is
116
+ // only for untextured proxies; retaining it here darkens source imagery by 28%.
117
+ material.setBaseColorFactor([1, 1, 1, 1]);
118
+ }
119
+ materialByName.set(materialKey, material);
75
120
  }
76
- materialByName.set(group.material, material);
121
+ primitive.setMaterial(material);
122
+ const mesh = document.createMesh(group.name).addPrimitive(primitive);
123
+ scene.addChild(document.createNode(group.name).setMesh(mesh));
77
124
  }
78
- primitive.setMaterial(material);
79
- const mesh = document.createMesh(group.name).addPrimitive(primitive);
80
- scene.addChild(document.createNode(group.name).setMesh(mesh));
81
125
  }
82
126
  document.getRoot().setExtras({
83
127
  helixSource: {
@@ -91,16 +135,16 @@ async function compileObjGlb(input) {
91
135
  filename: input.sourceName.replace(/\.obj$/i, '.glb'),
92
136
  bytes,
93
137
  contentSha256: (0, node_crypto_1.createHash)('sha256').update(bytes).digest('hex'),
94
- bounds: parsed.bounds,
138
+ bounds,
95
139
  summary: {
96
- triangles: parsed.triangles.length,
140
+ triangles: allTriangles.length,
97
141
  materials: materialByName.size,
98
142
  textures: textureCount,
99
- nodes: parsed.groups.length,
143
+ nodes: groupCount,
100
144
  },
101
145
  spawn: (0, spawnProbe_1.probeSpawn)({
102
- triangles: parsed.triangles.map((triangle) => [triangle[0].position, triangle[1].position, triangle[2].position]),
103
- bounds: parsed.bounds,
146
+ triangles: allTriangles.map((triangle) => [triangle[0].position, triangle[1].position, triangle[2].position]),
147
+ bounds,
104
148
  clearanceHeightM: 1.9,
105
149
  }),
106
150
  };
@@ -1 +1 @@
1
- {"version":3,"file":"obj.js","sourceRoot":"","sources":["../../src/sceneImport/obj.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"obj.js","sourceRoot":"","sources":["../../src/sceneImport/obj.ts"],"names":[],"mappings":";;AAeA,sCAqBC;AAaD,0CAsIC;AAvLD,6CAAyC;AACzC,+CAAwD;AACxD,6CAA8D;AAE9D,mCAA2C;AAWpC,KAAK,UAAU,aAAa,CAAC,KAOnC;IACC,OAAO,eAAe,CAAC;QACrB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,KAAK,CAAC,UAAU;gBACtB,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrD;SACF;QACD,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjE,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;GAUG;AACI,KAAK,UAAU,eAAe,CAAC,KAMrC;IACC,IAAA,wBAAgB,EAAC,KAAK,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACpD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,UAAU,sBAAsB,CAAC,CAAC;IACpF,MAAM,QAAQ,GAAG,IAAI,eAAQ,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkD,CAAC;IACjF,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,MAAM,YAAY,GAAkB,EAAE,CAAC;IACvC,MAAM,MAAM,GAAW;QACrB,GAAG,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;QACnC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC;KACvC,CAAC;IACF,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QACzF,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,wBAAwB,CAAC,CAAC;QACpF,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QACvC,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QACnC,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACvE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,OAA0D,CAAC;QAC/D,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,GAAG,QAAQ;iBACf,aAAa,CAAC,GAAG,IAAI,CAAC,IAAI,aAAa,CAAC;iBACxC,QAAQ,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;iBAC5C,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACtC,YAAY,IAAI,CAAC,CAAC;QACpB,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,SAAS,GAAa,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAa,EAAE,CAAC;YACzB,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACvC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;oBAC9B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBAC7B,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACnC,IAAI,MAAM,CAAC,MAAM;wBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;oBAClD,IAAI,MAAM,CAAC,EAAE;wBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;YACD,MAAM,SAAS,GAAG,QAAQ;iBACvB,eAAe,EAAE;iBACjB,OAAO,CAAC,CAAC,CAAC;iBACV,UAAU,CACT,QAAQ;iBACL,cAAc,EAAE;iBAChB,OAAO,CAAC,QAAQ,CAAC;iBACjB,QAAQ,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;iBAClC,SAAS,CAAC,MAAM,CAAC,CACrB;iBACA,YAAY,CACX,UAAU,EACV,QAAQ;iBACL,cAAc,EAAE;iBAChB,OAAO,CAAC,MAAM,CAAC;iBACf,QAAQ,CAAC,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;iBACrC,SAAS,CAAC,MAAM,CAAC,CACrB,CAAC;YACJ,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;YACjG,SAAS,CAAC,YAAY,CACpB,QAAQ,EACR,QAAQ,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CACnG,CAAC;YACF,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,SAAS,CAAC,YAAY,CACpB,YAAY,EACZ,QAAQ;qBACL,cAAc,EAAE;qBAChB,OAAO,CAAC,MAAM,CAAC;qBACf,QAAQ,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;qBAC/B,SAAS,CAAC,MAAM,CAAC,CACrB,CAAC;YACJ,CAAC;YACD,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,IAAI,SAAS,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC1D,IAAI,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,QAAQ,GAAG,QAAQ;qBAChB,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;qBAC9B,kBAAkB,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;qBACzC,kBAAkB,CAAC,CAAC,CAAC;qBACrB,iBAAiB,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,OAAO,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC5C,QAAQ,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;oBACtC,sFAAsF;oBACtF,gFAAgF;oBAChF,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5C,CAAC;gBACD,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC5C,CAAC;YACD,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YACrE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAChE,CAAC;IACD,CAAC;IACD,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC;QAC3B,WAAW,EAAE;YACX,GAAG,KAAK,CAAC,OAAO;YAChB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B;KACF,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,aAAM,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpE,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;QACrD,KAAK;QACL,aAAa,EAAE,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/D,MAAM;QACN,OAAO,EAAE;YACP,SAAS,EAAE,YAAY,CAAC,MAAM;YAC9B,SAAS,EAAE,cAAc,CAAC,IAAI;YAC9B,QAAQ,EAAE,YAAY;YACtB,KAAK,EAAE,UAAU;SAClB;QACD,KAAK,EAAE,IAAA,uBAAU,EAAC;YAChB,SAAS,EAAE,YAAY,CAAC,GAAG,CACzB,CAAC,QAAQ,EAAE,EAAE,CACX,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAkB,CACtF;YACD,MAAM;YACN,gBAAgB,EAAE,GAAG;SACtB,CAAC;KACH,CAAC;AACJ,CAAC;AAKD,SAAS,QAAQ,CAAC,IAAY,EAAE,MAAY,EAAE,WAAyB;IACrE,MAAM,SAAS,GAAW,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAW,EAAE,CAAC;IAC3B,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAwE,CAAC;IAC/F,MAAM,SAAS,GAAkB,EAAE,CAAC;IACpC,MAAM,MAAM,GAAW;QACrB,GAAG,EAAE,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,CAAC;QACnF,GAAG,EAAE,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,CAAC;KACpF,CAAC;IACF,IAAI,UAAU,GAAG,QAAQ,CAAC;IAC1B,IAAI,YAAY,GAAG,SAAS,CAAC;IAC7B,KAAK,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QAC9D,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5C,MAAM,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB,UAAU,GAAG,CAAC,EAAE,CAAS,CAAC;YAC3F,MAAM,KAAK,GAAS,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1F,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACxD,IAAA,wBAAgB,EAAC,MAAM,EAAE,yBAAyB,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC;YACpE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;aAAM,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB,UAAU,GAAG,CAAC,EAAE,CAAS,CAAC;YAC3F,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;aAAM,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YAC5B,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,8BAA8B,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/F,uFAAuF;YACvF,sFAAsF;YACtF,iFAAiF;YACjF,gFAAgF;YAChF,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;aAAM,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;YAC9C,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC;QACzD,CAAC;aAAM,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC;QAC1D,CAAC;aAAM,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,UAAU,GAAG,CAAC,gCAAgC,CAAC,CAAC;YACtG,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;YACrG,MAAM,GAAG,GAAG,GAAG,UAAU,KAAK,YAAY,EAAE,CAAC;YAC7C,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,KAAK,GAAG,EAAE,IAAI,EAAE,GAAG,UAAU,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;gBACxF,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACzB,CAAC;YACD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;gBACzD,MAAM,QAAQ,GAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;gBAClF,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC/B,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzB,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;oBAC9B,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;wBACpC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;wBACrE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;oBACvE,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AAC7D,CAAC;AAED,SAAS,eAAe,CACtB,KAAa,EACb,SAAiB,EACjB,GAA4B,EAC5B,OAAe,EACf,UAAkB;IAElB,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,yBAAyB,UAAU,EAAE,CAAC,CAAC;IAC1F,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,mBAAmB,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxF,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,uBAAuB,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5G,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC5E,CAAC;AAED,SAAS,OAAO,CAAI,MAAW,EAAE,GAAW,EAAE,KAAa;IACzD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,uBAAuB,CAAC,CAAC;IAChG,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,6BAA6B,CAAC,CAAC;IACnE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,KAAe,EAAE,KAAa;IAClD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,8BAA8B,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC;AACtF,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,kBAAkB,CAAC,SAA4B;IACtD,MAAM,OAAO,GAAG,IAAI,KAAK,CAAS,SAAS,CAAC,MAAM,CAAC,CAAC;IACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACvE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QAC/C,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QAC/C,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QAC3B,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QAC3B,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QAC3C,EAAE,IAAI,MAAM,CAAC;QAAC,EAAE,IAAI,MAAM,CAAC;QAAC,EAAE,IAAI,MAAM,CAAC;QACzC,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;YAC1C,OAAO,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAC7B,OAAO,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACjC,OAAO,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}