@lightdash/common 0.2439.2 → 0.2440.0

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.
@@ -169,6 +169,15 @@ export declare class TableCalculationFunctionCompiler {
169
169
  * @returns SQL with window function to retrieve value from specified column
170
170
  */
171
171
  private compilePivotIndex;
172
+ /**
173
+ * Compiles a pivot_where function call to return a value from the first pivot column matching a condition.
174
+ * Evaluates the select expression for each pivot column and returns the value expression
175
+ * from the first column where the condition is true.
176
+ * @param selectExpression - Boolean expression to evaluate for each pivot column
177
+ * @param valueExpression - Expression to return when condition matches
178
+ * @returns SQL with conditional aggregation to find first matching pivot column
179
+ */
180
+ private compilePivotWhere;
172
181
  }
173
182
  export {};
174
183
  //# sourceMappingURL=tableCalculationFunctions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tableCalculationFunctions.d.ts","sourceRoot":"","sources":["../../../src/utils/tableCalculationFunctions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tableCalculationFunctions.d.ts","sourceRoot":"","sources":["../../../src/utils/tableCalculationFunctions.ts"],"names":[],"mappings":"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"}
@@ -101,6 +101,44 @@ function parseTableCalculationFunctions(sql) {
101
101
  });
102
102
  match = pivotIndexRegex.exec(sql);
103
103
  }
104
+ // Parse pivot_where function calls using a simpler approach
105
+ // We'll find the function start, then carefully parse the two arguments
106
+ const pivotWhereRegex = /pivot_where\s*\(/gi;
107
+ let pivotMatch = pivotWhereRegex.exec(sql);
108
+ while (pivotMatch !== null) {
109
+ const startIdx = pivotMatch.index + pivotMatch[0].length;
110
+ let parenCount = 1;
111
+ let commaIdx = -1;
112
+ let endIdx = -1;
113
+ // Find the comma separating the two arguments and the closing parenthesis
114
+ for (let i = startIdx; i < sql.length; i += 1) {
115
+ if (sql[i] === '(') {
116
+ parenCount += 1;
117
+ }
118
+ else if (sql[i] === ')') {
119
+ parenCount -= 1;
120
+ if (parenCount === 0) {
121
+ endIdx = i;
122
+ break;
123
+ }
124
+ }
125
+ else if (sql[i] === ',' && parenCount === 1 && commaIdx === -1) {
126
+ commaIdx = i;
127
+ }
128
+ }
129
+ if (commaIdx !== -1 && endIdx !== -1) {
130
+ const selectExpression = sql.slice(startIdx, commaIdx).trim();
131
+ const valueExpression = sql.slice(commaIdx + 1, endIdx).trim();
132
+ const rawSql = sql.slice(pivotMatch.index, endIdx + 1);
133
+ functions.push({
134
+ type: TableCalculationFunctionType.PIVOT_WHERE,
135
+ selectExpression,
136
+ valueExpression,
137
+ rawSql,
138
+ });
139
+ }
140
+ pivotMatch = pivotWhereRegex.exec(sql);
141
+ }
104
142
  // Parse row function calls
105
143
  const rowRegex = /row\s*\(\s*\)/gi;
106
144
  match = rowRegex.exec(sql);
@@ -226,6 +264,12 @@ class TableCalculationFunctionCompiler {
226
264
  processedSql = processedSql.replace(func.rawSql, compiled);
227
265
  break;
228
266
  }
267
+ case TableCalculationFunctionType.PIVOT_WHERE: {
268
+ const pivotWhereFunc = func;
269
+ const compiled = this.compilePivotWhere(pivotWhereFunc.selectExpression, pivotWhereFunc.valueExpression);
270
+ processedSql = processedSql.replace(func.rawSql, compiled);
271
+ break;
272
+ }
229
273
  default:
230
274
  // Not implemented yet
231
275
  break;
@@ -282,6 +326,20 @@ class TableCalculationFunctionCompiler {
282
326
  // The window partitions by row_index to group all columns of the same row
283
327
  return `MAX(CASE WHEN ${q}column_index${q} = ${pivotIndex} THEN ${expression} ELSE NULL END) OVER (PARTITION BY ${q}row_index${q})`;
284
328
  }
329
+ /**
330
+ * Compiles a pivot_where function call to return a value from the first pivot column matching a condition.
331
+ * Evaluates the select expression for each pivot column and returns the value expression
332
+ * from the first column where the condition is true.
333
+ * @param selectExpression - Boolean expression to evaluate for each pivot column
334
+ * @param valueExpression - Expression to return when condition matches
335
+ * @returns SQL with conditional aggregation to find first matching pivot column
336
+ */
337
+ compilePivotWhere(selectExpression, valueExpression) {
338
+ const q = this.warehouseSqlBuilder.getFieldQuoteChar();
339
+ // Use MIN with column_index to get the first matching column
340
+ // Then use that column_index to get the value
341
+ return `MAX(CASE WHEN ${q}column_index${q} = (SELECT MIN(${q}column_index${q}) FROM (SELECT ${q}column_index${q}, ${selectExpression} AS condition FROM DUAL) WHERE condition = TRUE) THEN ${valueExpression} ELSE NULL END) OVER (PARTITION BY ${q}row_index${q})`;
342
+ }
285
343
  }
286
344
  exports.TableCalculationFunctionCompiler = TableCalculationFunctionCompiler;
287
345
  //# sourceMappingURL=tableCalculationFunctions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tableCalculationFunctions.js","sourceRoot":"","sources":["../../../src/utils/tableCalculationFunctions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tableCalculationFunctions.js","sourceRoot":"","sources":["../../../src/utils/tableCalculationFunctions.ts"],"names":[],"mappings":"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"}
@@ -209,6 +209,194 @@ describe('tableCalculationFunctions', () => {
209
209
  expect(result[0].type).toBe(tableCalculationFunctions_1.TableCalculationFunctionType.OFFSET);
210
210
  });
211
211
  });
212
+ describe('pivot_where parsing', () => {
213
+ it('should parse simple pivot_where', () => {
214
+ const sql = 'pivot_where(status = "completed", revenue)';
215
+ const result = (0, tableCalculationFunctions_1.parseTableCalculationFunctions)(sql);
216
+ expect(result).toHaveLength(1);
217
+ expect(result[0].type).toBe(tableCalculationFunctions_1.TableCalculationFunctionType.PIVOT_WHERE);
218
+ if (result[0].type === tableCalculationFunctions_1.TableCalculationFunctionType.PIVOT_WHERE) {
219
+ expect(result[0].selectExpression).toBe('status = "completed"');
220
+ expect(result[0].valueExpression).toBe('revenue');
221
+ expect(result[0].rawSql).toBe('pivot_where(status = "completed", revenue)');
222
+ }
223
+ });
224
+ it('should parse pivot_where with complex condition', () => {
225
+ const sql = 'pivot_where(revenue > 1000 AND orders > 10, status)';
226
+ const result = (0, tableCalculationFunctions_1.parseTableCalculationFunctions)(sql);
227
+ expect(result).toHaveLength(1);
228
+ expect(result[0].type).toBe(tableCalculationFunctions_1.TableCalculationFunctionType.PIVOT_WHERE);
229
+ if (result[0].type === tableCalculationFunctions_1.TableCalculationFunctionType.PIVOT_WHERE) {
230
+ expect(result[0].selectExpression).toBe('revenue > 1000 AND orders > 10');
231
+ expect(result[0].valueExpression).toBe('status');
232
+ }
233
+ });
234
+ it('should parse pivot_where with nested function calls', () => {
235
+ const sql = 'pivot_where(LOWER(status) = "active", ROUND(revenue, 2))';
236
+ const result = (0, tableCalculationFunctions_1.parseTableCalculationFunctions)(sql);
237
+ expect(result).toHaveLength(1);
238
+ expect(result[0].type).toBe(tableCalculationFunctions_1.TableCalculationFunctionType.PIVOT_WHERE);
239
+ if (result[0].type === tableCalculationFunctions_1.TableCalculationFunctionType.PIVOT_WHERE) {
240
+ expect(result[0].selectExpression).toBe('LOWER(status) = "active"');
241
+ expect(result[0].valueExpression).toBe('ROUND(revenue, 2)');
242
+ }
243
+ });
244
+ it('should parse multiple pivot_where calls', () => {
245
+ const sql = 'pivot_where(status = "active", revenue) + pivot_where(status = "pending", revenue)';
246
+ const result = (0, tableCalculationFunctions_1.parseTableCalculationFunctions)(sql);
247
+ expect(result).toHaveLength(2);
248
+ expect(result[0].type).toBe(tableCalculationFunctions_1.TableCalculationFunctionType.PIVOT_WHERE);
249
+ expect(result[1].type).toBe(tableCalculationFunctions_1.TableCalculationFunctionType.PIVOT_WHERE);
250
+ });
251
+ it('should handle whitespace in pivot_where', () => {
252
+ const sql = 'pivot_where( status = "active" , revenue )';
253
+ const result = (0, tableCalculationFunctions_1.parseTableCalculationFunctions)(sql);
254
+ expect(result).toHaveLength(1);
255
+ expect(result[0].type).toBe(tableCalculationFunctions_1.TableCalculationFunctionType.PIVOT_WHERE);
256
+ if (result[0].type === tableCalculationFunctions_1.TableCalculationFunctionType.PIVOT_WHERE) {
257
+ expect(result[0].selectExpression).toBe('status = "active"');
258
+ expect(result[0].valueExpression).toBe('revenue');
259
+ }
260
+ });
261
+ });
262
+ });
263
+ describe('TableCalculationFunctionCompiler', () => {
264
+ describe('compileFunctions', () => {
265
+ let compiler;
266
+ let mockWarehouseSqlBuilder;
267
+ beforeEach(() => {
268
+ mockWarehouseSqlBuilder = {
269
+ getFieldQuoteChar: jest.fn().mockReturnValue('"'),
270
+ };
271
+ compiler = new tableCalculationFunctions_1.TableCalculationFunctionCompiler(mockWarehouseSqlBuilder);
272
+ });
273
+ describe('pivot_offset compilation', () => {
274
+ it('should compile pivot_offset with positive offset', () => {
275
+ const sql = 'pivot_offset(revenue, 1)';
276
+ const functions = (0, tableCalculationFunctions_1.parseTableCalculationFunctions)(sql);
277
+ const compiled = compiler.compileFunctions(sql, functions);
278
+ const expectedSql = 'CASE WHEN LEAD("row_index", 1) OVER (PARTITION BY "column_index" ORDER BY "row_index") = "row_index" + (1) THEN LEAD(revenue, 1) OVER (PARTITION BY "column_index" ORDER BY "row_index") ELSE NULL END';
279
+ expect(compiled).toBe(expectedSql);
280
+ });
281
+ it('should compile pivot_offset with negative offset', () => {
282
+ const sql = 'pivot_offset(revenue, -1)';
283
+ const functions = (0, tableCalculationFunctions_1.parseTableCalculationFunctions)(sql);
284
+ const compiled = compiler.compileFunctions(sql, functions);
285
+ const expectedSql = 'CASE WHEN LAG("row_index", 1) OVER (PARTITION BY "column_index" ORDER BY "row_index") = "row_index" + (-1) THEN LAG(revenue, 1) OVER (PARTITION BY "column_index" ORDER BY "row_index") ELSE NULL END';
286
+ expect(compiled).toBe(expectedSql);
287
+ });
288
+ it('should compile pivot_offset with zero offset', () => {
289
+ const sql = 'pivot_offset(revenue, 0)';
290
+ const functions = (0, tableCalculationFunctions_1.parseTableCalculationFunctions)(sql);
291
+ const compiled = compiler.compileFunctions(sql, functions);
292
+ const expectedSql = 'revenue';
293
+ expect(compiled).toBe(expectedSql);
294
+ });
295
+ it('should compile expression with pivot_offset', () => {
296
+ const sql = 'revenue - pivot_offset(revenue, -1)';
297
+ const functions = (0, tableCalculationFunctions_1.parseTableCalculationFunctions)(sql);
298
+ const compiled = compiler.compileFunctions(sql, functions);
299
+ const expectedSql = 'revenue - CASE WHEN LAG("row_index", 1) OVER (PARTITION BY "column_index" ORDER BY "row_index") = "row_index" + (-1) THEN LAG(revenue, 1) OVER (PARTITION BY "column_index" ORDER BY "row_index") ELSE NULL END';
300
+ expect(compiled).toBe(expectedSql);
301
+ });
302
+ });
303
+ describe('pivot_column compilation', () => {
304
+ it('should compile pivot_column to column_index', () => {
305
+ const sql = 'pivot_column()';
306
+ const functions = (0, tableCalculationFunctions_1.parseTableCalculationFunctions)(sql);
307
+ const compiled = compiler.compileFunctions(sql, functions);
308
+ const expectedSql = '"column_index"';
309
+ expect(compiled).toBe(expectedSql);
310
+ });
311
+ it('should compile expression with pivot_column', () => {
312
+ const sql = 'pivot_column() + 1';
313
+ const functions = (0, tableCalculationFunctions_1.parseTableCalculationFunctions)(sql);
314
+ const compiled = compiler.compileFunctions(sql, functions);
315
+ const expectedSql = '"column_index" + 1';
316
+ expect(compiled).toBe(expectedSql);
317
+ });
318
+ });
319
+ describe('pivot_index compilation', () => {
320
+ it('should compile pivot_index to get value from specific column', () => {
321
+ const sql = 'pivot_index(revenue, 0)';
322
+ const functions = (0, tableCalculationFunctions_1.parseTableCalculationFunctions)(sql);
323
+ const compiled = compiler.compileFunctions(sql, functions);
324
+ const expectedSql = 'MAX(CASE WHEN "column_index" = 0 THEN revenue ELSE NULL END) OVER (PARTITION BY "row_index")';
325
+ expect(compiled).toBe(expectedSql);
326
+ });
327
+ it('should compile expression with pivot_index', () => {
328
+ const sql = 'revenue / pivot_index(revenue, 0)';
329
+ const functions = (0, tableCalculationFunctions_1.parseTableCalculationFunctions)(sql);
330
+ const compiled = compiler.compileFunctions(sql, functions);
331
+ const expectedSql = 'revenue / MAX(CASE WHEN "column_index" = 0 THEN revenue ELSE NULL END) OVER (PARTITION BY "row_index")';
332
+ expect(compiled).toBe(expectedSql);
333
+ });
334
+ });
335
+ describe('pivot_offset_list compilation', () => {
336
+ it('should pass through pivot_offset_list as-is (not yet implemented)', () => {
337
+ const sql = 'pivot_offset_list(revenue, -2, 3)';
338
+ const functions = (0, tableCalculationFunctions_1.parseTableCalculationFunctions)(sql);
339
+ const compiled = compiler.compileFunctions(sql, functions);
340
+ // pivot_offset_list is not yet parsed/compiled, so the SQL is returned unchanged
341
+ expect(compiled).toBe(sql);
342
+ });
343
+ });
344
+ describe('pivot_row compilation', () => {
345
+ it('should pass through pivot_row as-is (not yet implemented)', () => {
346
+ const sql = 'pivot_row(revenue)';
347
+ const functions = (0, tableCalculationFunctions_1.parseTableCalculationFunctions)(sql);
348
+ const compiled = compiler.compileFunctions(sql, functions);
349
+ // pivot_row is not yet parsed/compiled, so the SQL is returned unchanged
350
+ expect(compiled).toBe(sql);
351
+ });
352
+ });
353
+ describe('pivot_where compilation', () => {
354
+ it('should compile simple pivot_where to SQL', () => {
355
+ const sql = 'pivot_where(status = "active", revenue)';
356
+ const functions = (0, tableCalculationFunctions_1.parseTableCalculationFunctions)(sql);
357
+ const compiled = compiler.compileFunctions(sql, functions);
358
+ const expectedSql = 'MAX(CASE WHEN "column_index" = (SELECT MIN("column_index") FROM (SELECT "column_index", status = "active" AS condition FROM DUAL) WHERE condition = TRUE) THEN revenue ELSE NULL END) OVER (PARTITION BY "row_index")';
359
+ expect(compiled).toBe(expectedSql);
360
+ });
361
+ it('should replace pivot_where with compiled SQL', () => {
362
+ const sql = 'pivot_where(status = "completed", revenue) + 100';
363
+ const functions = (0, tableCalculationFunctions_1.parseTableCalculationFunctions)(sql);
364
+ const compiled = compiler.compileFunctions(sql, functions);
365
+ const expectedSql = 'MAX(CASE WHEN "column_index" = (SELECT MIN("column_index") FROM (SELECT "column_index", status = "completed" AS condition FROM DUAL) WHERE condition = TRUE) THEN revenue ELSE NULL END) OVER (PARTITION BY "row_index") + 100';
366
+ expect(compiled).toBe(expectedSql);
367
+ });
368
+ it('should compile multiple pivot_where calls', () => {
369
+ const sql = 'pivot_where(status = "active", revenue) + pivot_where(status = "pending", orders)';
370
+ const functions = (0, tableCalculationFunctions_1.parseTableCalculationFunctions)(sql);
371
+ const compiled = compiler.compileFunctions(sql, functions);
372
+ const expectedSql = 'MAX(CASE WHEN "column_index" = (SELECT MIN("column_index") FROM (SELECT "column_index", status = "active" AS condition FROM DUAL) WHERE condition = TRUE) THEN revenue ELSE NULL END) OVER (PARTITION BY "row_index") + MAX(CASE WHEN "column_index" = (SELECT MIN("column_index") FROM (SELECT "column_index", status = "pending" AS condition FROM DUAL) WHERE condition = TRUE) THEN orders ELSE NULL END) OVER (PARTITION BY "row_index")';
373
+ expect(compiled).toBe(expectedSql);
374
+ });
375
+ it('should handle pivot_where with complex expressions', () => {
376
+ const sql = 'COALESCE(pivot_where(revenue > 1000, status), "none")';
377
+ const functions = (0, tableCalculationFunctions_1.parseTableCalculationFunctions)(sql);
378
+ const compiled = compiler.compileFunctions(sql, functions);
379
+ const expectedSql = 'COALESCE(MAX(CASE WHEN "column_index" = (SELECT MIN("column_index") FROM (SELECT "column_index", revenue > 1000 AS condition FROM DUAL) WHERE condition = TRUE) THEN status ELSE NULL END) OVER (PARTITION BY "row_index"), "none")';
380
+ expect(compiled).toBe(expectedSql);
381
+ });
382
+ });
383
+ describe('mixed function compilation', () => {
384
+ it('should compile multiple different pivot functions together', () => {
385
+ const sql = 'pivot_column() * pivot_offset(revenue, -1) + pivot_index(revenue, 0)';
386
+ const functions = (0, tableCalculationFunctions_1.parseTableCalculationFunctions)(sql);
387
+ const compiled = compiler.compileFunctions(sql, functions);
388
+ const expectedSql = '"column_index" * CASE WHEN LAG("row_index", 1) OVER (PARTITION BY "column_index" ORDER BY "row_index") = "row_index" + (-1) THEN LAG(revenue, 1) OVER (PARTITION BY "column_index" ORDER BY "row_index") ELSE NULL END + MAX(CASE WHEN "column_index" = 0 THEN revenue ELSE NULL END) OVER (PARTITION BY "row_index")';
389
+ expect(compiled).toBe(expectedSql);
390
+ });
391
+ it('should handle complex nested expressions', () => {
392
+ const sql = 'CASE WHEN pivot_column() = 0 THEN pivot_where(status = "active", revenue) ELSE pivot_offset(revenue, -1) END';
393
+ const functions = (0, tableCalculationFunctions_1.parseTableCalculationFunctions)(sql);
394
+ const compiled = compiler.compileFunctions(sql, functions);
395
+ const expectedSql = 'CASE WHEN "column_index" = 0 THEN MAX(CASE WHEN "column_index" = (SELECT MIN("column_index") FROM (SELECT "column_index", status = "active" AS condition FROM DUAL) WHERE condition = TRUE) THEN revenue ELSE NULL END) OVER (PARTITION BY "row_index") ELSE CASE WHEN LAG("row_index", 1) OVER (PARTITION BY "column_index" ORDER BY "row_index") = "row_index" + (-1) THEN LAG(revenue, 1) OVER (PARTITION BY "column_index" ORDER BY "row_index") ELSE NULL END END';
396
+ expect(compiled).toBe(expectedSql);
397
+ });
398
+ });
399
+ });
212
400
  });
213
401
  describe('ROW_FUNCTIONS constant', () => {
214
402
  it('should contain all row function types', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"tableCalculationFunctions.test.js","sourceRoot":"","sources":["../../../src/utils/tableCalculationFunctions.test.ts"],"names":[],"mappings":";;AAAA,2EAKqC;AAErC,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACvC,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC5C,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAClC,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;gBAC7D,MAAM,GAAG,GAAG,0BAA0B,CAAC;gBACvC,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,YAAY,CAC5C,CAAC;gBACF,IACI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,wDAA4B,CAAC,YAAY,EAC9D,CAAC;oBACC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACvC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;gBAC9D,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;gBACtD,MAAM,GAAG,GAAG,wCAAwC,CAAC;gBACrD,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,YAAY,CAC5C,CAAC;gBACF,IACI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,wDAA4B,CAAC,YAAY,EAC9D,CAAC;oBACC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;oBAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACxC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CACzB,wCAAwC,CAC3C,CAAC;gBACN,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;gBAChD,MAAM,GAAG,GACL,iEAAiE,CAAC;gBACtE,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,8CAA8C;gBAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,YAAY,CAC5C,CAAC;gBACF,IACI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,wDAA4B,CAAC,YAAY,EAC9D,CAAC;oBACC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,6BAA6B;gBAC1E,CAAC;gBACD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,YAAY,CAC5C,CAAC;gBACF,IACI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,wDAA4B,CAAC,YAAY,EAC9D,CAAC;oBACC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,6BAA6B;gBAC1E,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;gBACxD,MAAM,GAAG,GACL,8EAA8E,CAAC;gBACnF,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,YAAY,CAC5C,CAAC;gBACF,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,YAAY,CAC5C,CAAC;gBACF,IACI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;oBACV,wDAA4B,CAAC,YAAY;oBAC7C,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,wDAA4B,CAAC,YAAY,EAC9D,CAAC;oBACC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACxC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5C,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;gBAChD,MAAM,GAAG,GAAG,kCAAkC,CAAC;gBAC/C,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,YAAY,CAC5C,CAAC;gBACF,IACI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,wDAA4B,CAAC,YAAY,EAC9D,CAAC;oBACC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5C,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;gBACxE,MAAM,GAAG,GAAG,gCAAgC,CAAC;gBAC7C,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,YAAY,CAC5C,CAAC;gBACF,IACI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,wDAA4B,CAAC,YAAY,EAC9D,CAAC;oBACC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBAClD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5C,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAClC,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;gBACnC,MAAM,GAAG,GAAG,gBAAgB,CAAC;gBAC7B,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,YAAY,CAC5C,CAAC;gBACF,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;gBACjD,MAAM,GAAG,GAAG,oBAAoB,CAAC;gBACjC,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,YAAY,CAC5C,CAAC;YACN,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;YACjC,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;gBAChC,MAAM,GAAG,GAAG,yBAAyB,CAAC;gBACtC,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,WAAW,CAC3C,CAAC;gBACF,IACI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,wDAA4B,CAAC,WAAW,EAC7D,CAAC;oBACC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;gBAC7D,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;gBAClD,MAAM,GAAG,GAAG,mCAAmC,CAAC;gBAChD,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,WAAW,CAC3C,CAAC;gBACF,IACI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,wDAA4B,CAAC,WAAW,EAC7D,CAAC;oBACC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACzC,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAClC,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;gBAC1B,MAAM,GAAG,GAAG,OAAO,CAAC;gBACpB,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,wDAA4B,CAAC,GAAG,CAAC,CAAC;gBAC9D,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;gBACxC,MAAM,GAAG,GAAG,YAAY,CAAC;gBACzB,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,wDAA4B,CAAC,GAAG,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;YAC3C,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;gBACpC,MAAM,GAAG,GAAG,qBAAqB,CAAC;gBAClC,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,MAAM,CACtC,CAAC;gBACF,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,wDAA4B,CAAC,MAAM,EAAE,CAAC;oBACzD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACzC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACzD,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;gBAC1D,MAAM,GAAG,GAAG,gDAAgD,CAAC;gBAC7D,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,8CAA8C;gBAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,YAAY,CAC5C,CAAC;gBACF,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,MAAM,CACtC,CAAC;YACN,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;YAC1C,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;gBACnC,MAAM,GAAG,GAAG,mBAAmB,CAAC;gBAChC,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,wDAA4B,CAAC,KAAK,CAAC,CAAC;gBAChE,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,wDAA4B,CAAC,KAAK,EAAE,CAAC;oBACxD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACnC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACvD,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;gBACxD,MAAM,GAAG,GAAG,6CAA6C,CAAC;gBAC1D,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,8CAA8C;gBAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,WAAW,CAC3C,CAAC;gBACF,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,wDAA4B,CAAC,KAAK,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;YACpC,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;gBACjD,MAAM,GAAG,GACL,uEAAuE,CAAC;gBAC5E,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACxC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,wDAA4B,CAAC,GAAG,CAAC,CAAC;gBAC1D,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CACnB,wDAA4B,CAAC,YAAY,CAC5C,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,wDAA4B,CAAC,MAAM,CAAC,CAAC;gBAC7D,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CACnB,wDAA4B,CAAC,YAAY,CAC5C,CAAC;YACN,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;YACjC,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;gBAC/C,MAAM,GAAG,GACL,oFAAoF,CAAC;gBACzF,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CACF,MAAM,CAAC,KAAK,CACR,CAAC,CAAC,EAAE,EAAE,CACF,CAAC,CAAC,IAAI;oBACN,wDAA4B,CAAC,YAAY,CAChD,CACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;gBACtD,MAAM,GAAG,GACL,2DAA2D,CAAC;gBAChE,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CACF,MAAM,CAAC,KAAK,CACR,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,wDAA4B,CAAC,MAAM,CACxD,CACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;gBAC1C,MAAM,GAAG,GAAG,yCAAyC,CAAC;gBACtD,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,WAAW,CAC3C,CAAC;YACN,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;gBAC7C,MAAM,GAAG,GAAG,+BAA+B,CAAC;gBAC5C,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,MAAM,CACtC,CAAC;YACN,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC7C,MAAM,CAAC,yCAAa,CAAC,CAAC,SAAS,CAAC,wDAA4B,CAAC,GAAG,CAAC,CAAC;YAClE,MAAM,CAAC,yCAAa,CAAC,CAAC,SAAS,CAAC,wDAA4B,CAAC,KAAK,CAAC,CAAC;YACpE,MAAM,CAAC,yCAAa,CAAC,CAAC,SAAS,CAC3B,wDAA4B,CAAC,MAAM,CACtC,CAAC;YACF,MAAM,CAAC,yCAAa,CAAC,CAAC,SAAS,CAC3B,wDAA4B,CAAC,WAAW,CAC3C,CAAC;YACF,MAAM,CAAC,yCAAa,CAAC,CAAC,SAAS,CAC3B,wDAA4B,CAAC,MAAM,CACtC,CAAC;YACF,MAAM,CAAC,yCAAa,CAAC,CAAC,SAAS,CAAC,wDAA4B,CAAC,IAAI,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YAC/C,MAAM,CAAC,2CAAe,CAAC,CAAC,SAAS,CAC7B,wDAA4B,CAAC,YAAY,CAC5C,CAAC;YACF,MAAM,CAAC,2CAAe,CAAC,CAAC,SAAS,CAC7B,wDAA4B,CAAC,WAAW,CAC3C,CAAC;YACF,MAAM,CAAC,2CAAe,CAAC,CAAC,SAAS,CAC7B,wDAA4B,CAAC,YAAY,CAC5C,CAAC;YACF,MAAM,CAAC,2CAAe,CAAC,CAAC,SAAS,CAC7B,wDAA4B,CAAC,iBAAiB,CACjD,CAAC;YACF,MAAM,CAAC,2CAAe,CAAC,CAAC,SAAS,CAC7B,wDAA4B,CAAC,SAAS,CACzC,CAAC;YACF,MAAM,CAAC,2CAAe,CAAC,CAAC,SAAS,CAC7B,wDAA4B,CAAC,WAAW,CAC3C,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"tableCalculationFunctions.test.js","sourceRoot":"","sources":["../../../src/utils/tableCalculationFunctions.test.ts"],"names":[],"mappings":";;AACA,2EAMqC;AAErC,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACvC,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC5C,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAClC,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;gBAC7D,MAAM,GAAG,GAAG,0BAA0B,CAAC;gBACvC,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,YAAY,CAC5C,CAAC;gBACF,IACI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,wDAA4B,CAAC,YAAY,EAC9D,CAAC;oBACC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACvC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;gBAC9D,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;gBACtD,MAAM,GAAG,GAAG,wCAAwC,CAAC;gBACrD,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,YAAY,CAC5C,CAAC;gBACF,IACI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,wDAA4B,CAAC,YAAY,EAC9D,CAAC;oBACC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;oBAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACxC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CACzB,wCAAwC,CAC3C,CAAC;gBACN,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;gBAChD,MAAM,GAAG,GACL,iEAAiE,CAAC;gBACtE,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,8CAA8C;gBAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,YAAY,CAC5C,CAAC;gBACF,IACI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,wDAA4B,CAAC,YAAY,EAC9D,CAAC;oBACC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,6BAA6B;gBAC1E,CAAC;gBACD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,YAAY,CAC5C,CAAC;gBACF,IACI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,wDAA4B,CAAC,YAAY,EAC9D,CAAC;oBACC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,6BAA6B;gBAC1E,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;gBACxD,MAAM,GAAG,GACL,8EAA8E,CAAC;gBACnF,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,YAAY,CAC5C,CAAC;gBACF,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,YAAY,CAC5C,CAAC;gBACF,IACI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;oBACV,wDAA4B,CAAC,YAAY;oBAC7C,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,wDAA4B,CAAC,YAAY,EAC9D,CAAC;oBACC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACxC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5C,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;gBAChD,MAAM,GAAG,GAAG,kCAAkC,CAAC;gBAC/C,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,YAAY,CAC5C,CAAC;gBACF,IACI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,wDAA4B,CAAC,YAAY,EAC9D,CAAC;oBACC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5C,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;gBACxE,MAAM,GAAG,GAAG,gCAAgC,CAAC;gBAC7C,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,YAAY,CAC5C,CAAC;gBACF,IACI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,wDAA4B,CAAC,YAAY,EAC9D,CAAC;oBACC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBAClD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5C,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAClC,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;gBACnC,MAAM,GAAG,GAAG,gBAAgB,CAAC;gBAC7B,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,YAAY,CAC5C,CAAC;gBACF,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;gBACjD,MAAM,GAAG,GAAG,oBAAoB,CAAC;gBACjC,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,YAAY,CAC5C,CAAC;YACN,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;YACjC,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;gBAChC,MAAM,GAAG,GAAG,yBAAyB,CAAC;gBACtC,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,WAAW,CAC3C,CAAC;gBACF,IACI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,wDAA4B,CAAC,WAAW,EAC7D,CAAC;oBACC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;gBAC7D,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;gBAClD,MAAM,GAAG,GAAG,mCAAmC,CAAC;gBAChD,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,WAAW,CAC3C,CAAC;gBACF,IACI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,wDAA4B,CAAC,WAAW,EAC7D,CAAC;oBACC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACzC,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAClC,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;gBAC1B,MAAM,GAAG,GAAG,OAAO,CAAC;gBACpB,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,wDAA4B,CAAC,GAAG,CAAC,CAAC;gBAC9D,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;gBACxC,MAAM,GAAG,GAAG,YAAY,CAAC;gBACzB,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,wDAA4B,CAAC,GAAG,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;YAC3C,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;gBACpC,MAAM,GAAG,GAAG,qBAAqB,CAAC;gBAClC,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,MAAM,CACtC,CAAC;gBACF,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,wDAA4B,CAAC,MAAM,EAAE,CAAC;oBACzD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACzC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACzD,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;gBAC1D,MAAM,GAAG,GAAG,gDAAgD,CAAC;gBAC7D,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,8CAA8C;gBAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,YAAY,CAC5C,CAAC;gBACF,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,MAAM,CACtC,CAAC;YACN,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;YAC1C,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;gBACnC,MAAM,GAAG,GAAG,mBAAmB,CAAC;gBAChC,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,wDAA4B,CAAC,KAAK,CAAC,CAAC;gBAChE,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,wDAA4B,CAAC,KAAK,EAAE,CAAC;oBACxD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACnC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACvD,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;gBACxD,MAAM,GAAG,GAAG,6CAA6C,CAAC;gBAC1D,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,8CAA8C;gBAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,WAAW,CAC3C,CAAC;gBACF,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,wDAA4B,CAAC,KAAK,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;YACpC,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;gBACjD,MAAM,GAAG,GACL,uEAAuE,CAAC;gBAC5E,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACxC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,wDAA4B,CAAC,GAAG,CAAC,CAAC;gBAC1D,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CACnB,wDAA4B,CAAC,YAAY,CAC5C,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,wDAA4B,CAAC,MAAM,CAAC,CAAC;gBAC7D,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CACnB,wDAA4B,CAAC,YAAY,CAC5C,CAAC;YACN,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;YACjC,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;gBAC/C,MAAM,GAAG,GACL,oFAAoF,CAAC;gBACzF,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CACF,MAAM,CAAC,KAAK,CACR,CAAC,CAAC,EAAE,EAAE,CACF,CAAC,CAAC,IAAI;oBACN,wDAA4B,CAAC,YAAY,CAChD,CACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;gBACtD,MAAM,GAAG,GACL,2DAA2D,CAAC;gBAChE,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CACF,MAAM,CAAC,KAAK,CACR,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,wDAA4B,CAAC,MAAM,CACxD,CACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;gBAC1C,MAAM,GAAG,GAAG,yCAAyC,CAAC;gBACtD,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,WAAW,CAC3C,CAAC;YACN,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;gBAC7C,MAAM,GAAG,GAAG,+BAA+B,CAAC;gBAC5C,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,MAAM,CACtC,CAAC;YACN,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;YACjC,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;gBACvC,MAAM,GAAG,GAAG,4CAA4C,CAAC;gBACzD,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,WAAW,CAC3C,CAAC;gBACF,IACI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,wDAA4B,CAAC,WAAW,EAC7D,CAAC;oBACC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,CACnC,sBAAsB,CACzB,CAAC;oBACF,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAClD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CACzB,4CAA4C,CAC/C,CAAC;gBACN,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;gBACvD,MAAM,GAAG,GACL,qDAAqD,CAAC;gBAC1D,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,WAAW,CAC3C,CAAC;gBACF,IACI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,wDAA4B,CAAC,WAAW,EAC7D,CAAC;oBACC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,CACnC,gCAAgC,CACnC,CAAC;oBACF,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACrD,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;gBAC3D,MAAM,GAAG,GACL,0DAA0D,CAAC;gBAC/D,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,WAAW,CAC3C,CAAC;gBACF,IACI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,wDAA4B,CAAC,WAAW,EAC7D,CAAC;oBACC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,CACnC,0BAA0B,CAC7B,CAAC;oBACF,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAChE,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;gBAC/C,MAAM,GAAG,GACL,oFAAoF,CAAC;gBACzF,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,WAAW,CAC3C,CAAC;gBACF,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,WAAW,CAC3C,CAAC;YACN,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;gBAC/C,MAAM,GAAG,GAAG,gDAAgD,CAAC;gBAC7D,MAAM,MAAM,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;gBAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,wDAA4B,CAAC,WAAW,CAC3C,CAAC;gBACF,IACI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,wDAA4B,CAAC,WAAW,EAC7D,CAAC;oBACC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,CACnC,mBAAmB,CACtB,CAAC;oBACF,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtD,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC9C,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAC9B,IAAI,QAA0C,CAAC;YAC/C,IAAI,uBAA4C,CAAC;YAEjD,UAAU,CAAC,GAAG,EAAE;gBACZ,uBAAuB,GAAG;oBACtB,iBAAiB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC;iBAClB,CAAC;gBACpC,QAAQ,GAAG,IAAI,4DAAgC,CAC3C,uBAAuB,CAC1B,CAAC;YACN,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;gBACtC,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;oBACxD,MAAM,GAAG,GAAG,0BAA0B,CAAC;oBACvC,MAAM,SAAS,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;oBACtD,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAE3D,MAAM,WAAW,GACb,wMAAwM,CAAC;oBAC7M,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;oBACxD,MAAM,GAAG,GAAG,2BAA2B,CAAC;oBACxC,MAAM,SAAS,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;oBACtD,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAE3D,MAAM,WAAW,GACb,uMAAuM,CAAC;oBAC5M,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;oBACpD,MAAM,GAAG,GAAG,0BAA0B,CAAC;oBACvC,MAAM,SAAS,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;oBACtD,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAE3D,MAAM,WAAW,GAAG,SAAS,CAAC;oBAC9B,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;oBACnD,MAAM,GAAG,GAAG,qCAAqC,CAAC;oBAClD,MAAM,SAAS,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;oBACtD,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAE3D,MAAM,WAAW,GACb,iNAAiN,CAAC;oBACtN,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;gBACtC,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;oBACnD,MAAM,GAAG,GAAG,gBAAgB,CAAC;oBAC7B,MAAM,SAAS,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;oBACtD,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAE3D,MAAM,WAAW,GAAG,gBAAgB,CAAC;oBACrC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;oBACnD,MAAM,GAAG,GAAG,oBAAoB,CAAC;oBACjC,MAAM,SAAS,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;oBACtD,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAE3D,MAAM,WAAW,GAAG,oBAAoB,CAAC;oBACzC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;gBACrC,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;oBACpE,MAAM,GAAG,GAAG,yBAAyB,CAAC;oBACtC,MAAM,SAAS,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;oBACtD,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAE3D,MAAM,WAAW,GACb,8FAA8F,CAAC;oBACnG,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;oBAClD,MAAM,GAAG,GAAG,mCAAmC,CAAC;oBAChD,MAAM,SAAS,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;oBACtD,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAE3D,MAAM,WAAW,GACb,wGAAwG,CAAC;oBAC7G,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;gBAC3C,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;oBACzE,MAAM,GAAG,GAAG,mCAAmC,CAAC;oBAChD,MAAM,SAAS,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;oBACtD,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAE3D,iFAAiF;oBACjF,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC/B,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;gBACnC,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;oBACjE,MAAM,GAAG,GAAG,oBAAoB,CAAC;oBACjC,MAAM,SAAS,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;oBACtD,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAE3D,yEAAyE;oBACzE,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC/B,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;gBACrC,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;oBAChD,MAAM,GAAG,GAAG,yCAAyC,CAAC;oBACtD,MAAM,SAAS,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;oBACtD,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAE3D,MAAM,WAAW,GACb,uNAAuN,CAAC;oBAC5N,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;oBACpD,MAAM,GAAG,GACL,kDAAkD,CAAC;oBACvD,MAAM,SAAS,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;oBACtD,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAE3D,MAAM,WAAW,GACb,gOAAgO,CAAC;oBACrO,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;oBACjD,MAAM,GAAG,GACL,mFAAmF,CAAC;oBACxF,MAAM,SAAS,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;oBACtD,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAE3D,MAAM,WAAW,GACb,+aAA+a,CAAC;oBACpb,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;oBAC1D,MAAM,GAAG,GACL,uDAAuD,CAAC;oBAC5D,MAAM,SAAS,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;oBACtD,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAE3D,MAAM,WAAW,GACb,qOAAqO,CAAC;oBAC1O,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;gBACxC,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;oBAClE,MAAM,GAAG,GACL,sEAAsE,CAAC;oBAC3E,MAAM,SAAS,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;oBACtD,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAE3D,MAAM,WAAW,GACb,uTAAuT,CAAC;oBAC5T,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;oBAChD,MAAM,GAAG,GACL,8GAA8G,CAAC;oBACnH,MAAM,SAAS,GAAG,IAAA,0DAA8B,EAAC,GAAG,CAAC,CAAC;oBACtD,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAE3D,MAAM,WAAW,GACb,wcAAwc,CAAC;oBAC7c,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC7C,MAAM,CAAC,yCAAa,CAAC,CAAC,SAAS,CAAC,wDAA4B,CAAC,GAAG,CAAC,CAAC;YAClE,MAAM,CAAC,yCAAa,CAAC,CAAC,SAAS,CAAC,wDAA4B,CAAC,KAAK,CAAC,CAAC;YACpE,MAAM,CAAC,yCAAa,CAAC,CAAC,SAAS,CAC3B,wDAA4B,CAAC,MAAM,CACtC,CAAC;YACF,MAAM,CAAC,yCAAa,CAAC,CAAC,SAAS,CAC3B,wDAA4B,CAAC,WAAW,CAC3C,CAAC;YACF,MAAM,CAAC,yCAAa,CAAC,CAAC,SAAS,CAC3B,wDAA4B,CAAC,MAAM,CACtC,CAAC;YACF,MAAM,CAAC,yCAAa,CAAC,CAAC,SAAS,CAAC,wDAA4B,CAAC,IAAI,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YAC/C,MAAM,CAAC,2CAAe,CAAC,CAAC,SAAS,CAC7B,wDAA4B,CAAC,YAAY,CAC5C,CAAC;YACF,MAAM,CAAC,2CAAe,CAAC,CAAC,SAAS,CAC7B,wDAA4B,CAAC,WAAW,CAC3C,CAAC;YACF,MAAM,CAAC,2CAAe,CAAC,CAAC,SAAS,CAC7B,wDAA4B,CAAC,YAAY,CAC5C,CAAC;YACF,MAAM,CAAC,2CAAe,CAAC,CAAC,SAAS,CAC7B,wDAA4B,CAAC,iBAAiB,CACjD,CAAC;YACF,MAAM,CAAC,2CAAe,CAAC,CAAC,SAAS,CAC7B,wDAA4B,CAAC,SAAS,CACzC,CAAC;YACF,MAAM,CAAC,2CAAe,CAAC,CAAC,SAAS,CAC7B,wDAA4B,CAAC,WAAW,CAC3C,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}