@activepieces/shared 0.80.0 → 0.81.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.
Files changed (44) hide show
  1. package/package.json +2 -1
  2. package/src/index.d.ts +4 -0
  3. package/src/index.d.ts.map +1 -1
  4. package/src/index.js +5 -0
  5. package/src/index.js.map +1 -1
  6. package/src/lib/automation/engine/execution-errors.d.ts +7 -0
  7. package/src/lib/automation/engine/execution-errors.d.ts.map +1 -1
  8. package/src/lib/automation/engine/execution-errors.js +7 -1
  9. package/src/lib/automation/engine/execution-errors.js.map +1 -1
  10. package/src/lib/automation/workers/worker-contract.d.ts +37 -1
  11. package/src/lib/automation/workers/worker-contract.d.ts.map +1 -1
  12. package/src/lib/automation/workers/worker-contract.js +3 -0
  13. package/src/lib/automation/workers/worker-contract.js.map +1 -1
  14. package/src/lib/core/license-keys/index.d.ts +2 -0
  15. package/src/lib/core/license-keys/index.d.ts.map +1 -1
  16. package/src/lib/core/license-keys/index.js +1 -0
  17. package/src/lib/core/license-keys/index.js.map +1 -1
  18. package/src/lib/ee/billing/index.d.ts.map +1 -1
  19. package/src/lib/ee/billing/index.js +2 -0
  20. package/src/lib/ee/billing/index.js.map +1 -1
  21. package/src/lib/ee/chat/index.d.ts +27 -15
  22. package/src/lib/ee/chat/index.d.ts.map +1 -1
  23. package/src/lib/ee/chat/index.js +6 -0
  24. package/src/lib/ee/chat/index.js.map +1 -1
  25. package/src/lib/formula/formula-evaluator.d.ts +22 -0
  26. package/src/lib/formula/formula-evaluator.d.ts.map +1 -0
  27. package/src/lib/formula/formula-evaluator.js +438 -0
  28. package/src/lib/formula/formula-evaluator.js.map +1 -0
  29. package/src/lib/formula/function-implementations.d.ts +9 -0
  30. package/src/lib/formula/function-implementations.d.ts.map +1 -0
  31. package/src/lib/formula/function-implementations.js +333 -0
  32. package/src/lib/formula/function-implementations.js.map +1 -0
  33. package/src/lib/formula/function-registry.d.ts +25 -0
  34. package/src/lib/formula/function-registry.d.ts.map +1 -0
  35. package/src/lib/formula/function-registry.js +978 -0
  36. package/src/lib/formula/function-registry.js.map +1 -0
  37. package/src/lib/formula/function-type-checker.d.ts +9 -0
  38. package/src/lib/formula/function-type-checker.d.ts.map +1 -0
  39. package/src/lib/formula/function-type-checker.js +206 -0
  40. package/src/lib/formula/function-type-checker.js.map +1 -0
  41. package/src/lib/management/platform/platform.model.d.ts +4 -0
  42. package/src/lib/management/platform/platform.model.d.ts.map +1 -1
  43. package/src/lib/management/platform/platform.model.js +1 -1
  44. package/src/lib/management/platform/platform.model.js.map +1 -1
@@ -0,0 +1,333 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.DAY_NAMES = exports.MONTH_NAMES = void 0;
5
+ exports.evaluateRaw = evaluateRaw;
6
+ const tslib_1 = require("tslib");
7
+ const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
8
+ const relativeTime_1 = tslib_1.__importDefault(require("dayjs/plugin/relativeTime"));
9
+ const timezone_1 = tslib_1.__importDefault(require("dayjs/plugin/timezone"));
10
+ const utc_1 = tslib_1.__importDefault(require("dayjs/plugin/utc"));
11
+ const expr_eval_1 = require("expr-eval");
12
+ const function_registry_1 = require("./function-registry");
13
+ dayjs_1.default.extend(relativeTime_1.default);
14
+ dayjs_1.default.extend(timezone_1.default);
15
+ dayjs_1.default.extend(utc_1.default);
16
+ // Parser is a module-private singleton — exposing it would let any consumer
17
+ // of @activepieces/shared mutate `parser.functions.X` and break formula
18
+ // evaluation process-wide. Use `evaluateRaw` instead.
19
+ const parser = new expr_eval_1.Parser();
20
+ function evaluateRaw(expression, vars) {
21
+ return parser.evaluate(expression, vars);
22
+ }
23
+ parser.functions.combine = (a, b, sep = '') => `${a !== null && a !== void 0 ? a : ''}${String(sep)}${b !== null && b !== void 0 ? b : ''}`;
24
+ parser.functions.uppercase = (s) => String(s !== null && s !== void 0 ? s : '').toUpperCase();
25
+ parser.functions.lowercase = (s) => String(s !== null && s !== void 0 ? s : '').toLowerCase();
26
+ parser.functions.titlecase = (s) => String(s !== null && s !== void 0 ? s : '').replace(/\w\S*/g, (w) => w.charAt(0).toUpperCase() + w.slice(1).toLowerCase());
27
+ parser.functions.trim = (s) => String(s !== null && s !== void 0 ? s : '').trim();
28
+ parser.functions.prefix = (s, pfx) => `${String(pfx !== null && pfx !== void 0 ? pfx : '')}${String(s !== null && s !== void 0 ? s : '')}`;
29
+ parser.functions.suffix = (s, sfx) => `${String(s !== null && s !== void 0 ? s : '')}${String(sfx !== null && sfx !== void 0 ? sfx : '')}`;
30
+ parser.functions.replace = (s, from, to) => String(s !== null && s !== void 0 ? s : '').split(String(from !== null && from !== void 0 ? from : '')).join(String(to !== null && to !== void 0 ? to : ''));
31
+ parser.functions.remove = (s, sub) => String(s !== null && s !== void 0 ? s : '').split(String(sub !== null && sub !== void 0 ? sub : '')).join('');
32
+ parser.functions.first_n = (s, n) => String(s !== null && s !== void 0 ? s : '').slice(0, Number(n));
33
+ parser.functions.last_n = (s, n) => {
34
+ const str = String(s !== null && s !== void 0 ? s : '');
35
+ const num = Number(n);
36
+ return str.slice(Math.max(0, str.length - num));
37
+ };
38
+ parser.functions.truncate = (s, n) => {
39
+ const str = String(s !== null && s !== void 0 ? s : '');
40
+ const num = Number(n);
41
+ return str.length > num ? str.slice(0, num) + '...' : str;
42
+ };
43
+ parser.functions.split = (s, sep, idx) => {
44
+ var _a;
45
+ const parts = String(s !== null && s !== void 0 ? s : '').split(String(sep !== null && sep !== void 0 ? sep : ''));
46
+ return (_a = parts[Number(idx)]) !== null && _a !== void 0 ? _a : '';
47
+ };
48
+ parser.functions.extract_between = (s, start, end) => {
49
+ const str = String(s !== null && s !== void 0 ? s : '');
50
+ const startStr = String(start !== null && start !== void 0 ? start : '');
51
+ const endStr = String(end !== null && end !== void 0 ? end : '');
52
+ const si = str.indexOf(startStr);
53
+ if (si === -1)
54
+ return '';
55
+ const ei = str.indexOf(endStr, si + startStr.length);
56
+ if (ei === -1)
57
+ return '';
58
+ return str.slice(si + startStr.length, ei);
59
+ };
60
+ parser.functions.extract_email = (s) => {
61
+ const match = String(s !== null && s !== void 0 ? s : '').match(/[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}/);
62
+ return match ? match[0] : '';
63
+ };
64
+ parser.functions.extract_url = (s) => {
65
+ const match = String(s !== null && s !== void 0 ? s : '').match(/https?:\/\/[^\s]+/);
66
+ return match ? match[0] : '';
67
+ };
68
+ parser.functions.length = (s) => String(s !== null && s !== void 0 ? s : '').length;
69
+ parser.functions.contains = (s, sub) => String(s !== null && s !== void 0 ? s : '').includes(String(sub !== null && sub !== void 0 ? sub : ''));
70
+ parser.functions.starts_with = (s, prefix) => String(s !== null && s !== void 0 ? s : '').startsWith(String(prefix !== null && prefix !== void 0 ? prefix : ''));
71
+ parser.functions.ends_with = (s, suffix) => String(s !== null && s !== void 0 ? s : '').endsWith(String(suffix !== null && suffix !== void 0 ? suffix : ''));
72
+ parser.functions.remove_spaces = (s) => String(s !== null && s !== void 0 ? s : '').replace(/\s+/g, ' ').trim();
73
+ parser.functions.word_count = (s) => String(s !== null && s !== void 0 ? s : '').trim().split(/\s+/).filter(Boolean).length;
74
+ parser.functions.add = (a, b) => Number(a) + Number(b);
75
+ parser.functions.subtract = (a, b) => Number(a) - Number(b);
76
+ parser.functions.multiply = (a, b) => Number(a) * Number(b);
77
+ parser.functions.divide = (a, b) => {
78
+ const divisor = Number(b);
79
+ if (divisor === 0)
80
+ throw new Error('Division by zero');
81
+ return Number(a) / divisor;
82
+ };
83
+ // expr-eval has a built-in 1-arg `round` that shadows our 2-arg version,
84
+ // so we alias to ap_round and rewrite in normalizeExpression
85
+ parser.functions.ap_round = (n, decimals = 0) => Number(Number(n).toFixed(Number(decimals)));
86
+ parser.functions.round_up = (n) => Math.ceil(Number(n));
87
+ parser.functions.round_down = (n) => Math.floor(Number(n));
88
+ parser.functions.absolute = (n) => Math.abs(Number(n));
89
+ parser.functions.percentage = (n, total) => {
90
+ const divisor = Number(total);
91
+ if (divisor === 0)
92
+ throw new Error('Division by zero');
93
+ return (Number(n) / divisor) * 100;
94
+ };
95
+ parser.functions.format_number = (n, decimals = 0) => {
96
+ const d = Number(decimals);
97
+ return Number(n).toLocaleString('en-US', {
98
+ minimumFractionDigits: d,
99
+ maximumFractionDigits: d,
100
+ });
101
+ };
102
+ parser.functions.format_currency = (n, symbol = '$') => `${String(symbol)}${Number(n).toFixed(2)}`;
103
+ parser.functions.cents_to_dollars = (n) => `$${(Number(n) / 100).toFixed(2)}`;
104
+ parser.functions.min = (a, b) => Math.min(Number(a), Number(b));
105
+ parser.functions.max = (a, b) => Math.max(Number(a), Number(b));
106
+ parser.functions.to_number = (s) => Number(s);
107
+ parser.functions.format_date = (d, pattern = 'YYYY-MM-DD') => {
108
+ const parsed = (0, dayjs_1.default)(String(d !== null && d !== void 0 ? d : ''));
109
+ return parsed.isValid() ? parsed.format(String(pattern)) : '';
110
+ };
111
+ parser.functions.format_date_long = (d) => {
112
+ const parsed = (0, dayjs_1.default)(String(d !== null && d !== void 0 ? d : ''));
113
+ if (!parsed.isValid())
114
+ return '';
115
+ return parsed.toDate().toLocaleDateString('en-US', {
116
+ weekday: 'long', year: 'numeric', month: 'long', day: 'numeric',
117
+ });
118
+ };
119
+ parser.functions.format_time = (d, pattern = 'HH:mm') => {
120
+ const parsed = (0, dayjs_1.default)(String(d !== null && d !== void 0 ? d : ''));
121
+ return parsed.isValid() ? parsed.format(String(pattern)) : '';
122
+ };
123
+ parser.functions.relative_time = (d) => {
124
+ const parsed = (0, dayjs_1.default)(String(d !== null && d !== void 0 ? d : ''));
125
+ return parsed.isValid() ? parsed.fromNow() : '';
126
+ };
127
+ parser.functions.add_days = (d, n) => {
128
+ const parsed = (0, dayjs_1.default)(String(d !== null && d !== void 0 ? d : ''));
129
+ return parsed.isValid() ? parsed.add(Number(n), 'day').toISOString() : '';
130
+ };
131
+ parser.functions.subtract_days = (d, n) => {
132
+ const parsed = (0, dayjs_1.default)(String(d !== null && d !== void 0 ? d : ''));
133
+ return parsed.isValid() ? parsed.subtract(Number(n), 'day').toISOString() : '';
134
+ };
135
+ parser.functions.add_hours = (d, n) => {
136
+ const parsed = (0, dayjs_1.default)(String(d !== null && d !== void 0 ? d : ''));
137
+ return parsed.isValid() ? parsed.add(Number(n), 'hour').toISOString() : '';
138
+ };
139
+ parser.functions.days_between = (a, b) => {
140
+ const da = (0, dayjs_1.default)(String(a !== null && a !== void 0 ? a : ''));
141
+ const db = (0, dayjs_1.default)(String(b !== null && b !== void 0 ? b : ''));
142
+ if (!da.isValid() || !db.isValid())
143
+ return '';
144
+ return Math.round(Math.abs(db.diff(da, 'day', true)));
145
+ };
146
+ parser.functions.get_day = (d) => {
147
+ const parsed = (0, dayjs_1.default)(String(d !== null && d !== void 0 ? d : ''));
148
+ return parsed.isValid() ? parsed.date() : '';
149
+ };
150
+ parser.functions.get_month = (d) => {
151
+ const parsed = (0, dayjs_1.default)(String(d !== null && d !== void 0 ? d : ''));
152
+ return parsed.isValid() ? parsed.toDate().toLocaleDateString('en-US', { month: 'long' }) : '';
153
+ };
154
+ parser.functions.get_year = (d) => {
155
+ const parsed = (0, dayjs_1.default)(String(d !== null && d !== void 0 ? d : ''));
156
+ return parsed.isValid() ? parsed.year() : '';
157
+ };
158
+ parser.functions.get_day_of_week = (d) => {
159
+ const parsed = (0, dayjs_1.default)(String(d !== null && d !== void 0 ? d : ''));
160
+ return parsed.isValid() ? parsed.toDate().toLocaleDateString('en-US', { weekday: 'long' }) : '';
161
+ };
162
+ parser.functions.start_of_month = (d) => {
163
+ const parsed = (0, dayjs_1.default)(String(d !== null && d !== void 0 ? d : ''));
164
+ return parsed.isValid() ? parsed.startOf('month').toISOString() : '';
165
+ };
166
+ parser.functions.end_of_month = (d) => {
167
+ const parsed = (0, dayjs_1.default)(String(d !== null && d !== void 0 ? d : ''));
168
+ return parsed.isValid() ? parsed.endOf('month').toISOString() : '';
169
+ };
170
+ parser.functions.convert_timezone = (d, tz) => {
171
+ const parsed = (0, dayjs_1.default)(String(d !== null && d !== void 0 ? d : ''));
172
+ if (!parsed.isValid())
173
+ return '';
174
+ return parsed.tz(String(tz !== null && tz !== void 0 ? tz : 'UTC')).format();
175
+ };
176
+ parser.functions.now = () => new Date().toISOString();
177
+ parser.functions.today = () => (0, dayjs_1.default)().format('YYYY-MM-DD');
178
+ parser.functions.to_date = (d) => {
179
+ const parsed = (0, dayjs_1.default)(String(d !== null && d !== void 0 ? d : ''));
180
+ return parsed.isValid() ? parsed.toISOString() : '';
181
+ };
182
+ parser.functions.filter_list = (list, field, value) => toArray(list).filter((item) => typeof item === 'object' &&
183
+ item !== null &&
184
+ // Loose equality is intentional: formula args arrive as strings from text
185
+ // input, while item fields are typed (`{age: 25}`). `===` would silently
186
+ // return zero matches when filtering numeric fields with string args.
187
+ // Same rationale applies to is_equal, switch, if_null below.
188
+ item[String(field)] == value);
189
+ parser.functions.sort_list = (list, field, order = 'asc') => {
190
+ const arr = [...toArray(list)];
191
+ const fieldName = String(field);
192
+ const ord = String(order);
193
+ return arr.sort((a, b) => {
194
+ const av = readField(a, fieldName);
195
+ const bv = readField(b, fieldName);
196
+ if (av == null && bv == null)
197
+ return 0;
198
+ if (av == null)
199
+ return 1;
200
+ if (bv == null)
201
+ return -1;
202
+ const cmp = av < bv ? -1 : av > bv ? 1 : 0;
203
+ return ord === 'desc' ? -cmp : cmp;
204
+ });
205
+ };
206
+ parser.functions.pluck = (list, field) => toArray(list).map((item) => typeof item === 'object' && item !== null
207
+ ? item[String(field)]
208
+ : undefined);
209
+ parser.functions.join_list = (list, sep = ',') => toArray(list).join(String(sep));
210
+ parser.functions.first_item = (list) => toArray(list)[0];
211
+ parser.functions.last_item = (list) => {
212
+ const arr = toArray(list);
213
+ return arr[arr.length - 1];
214
+ };
215
+ parser.functions.item_at = (list, idx) => toArray(list)[Number(idx)];
216
+ parser.functions.count = (list) => toArray(list).length;
217
+ parser.functions.sum = (list, field) => {
218
+ return toArray(list).reduce((acc, item) => {
219
+ const v = typeof item === 'object' && item !== null
220
+ ? Number(item[String(field)])
221
+ : 0;
222
+ return acc + (isNaN(v) ? 0 : v);
223
+ }, 0);
224
+ };
225
+ parser.functions.average = (list, field) => {
226
+ const arr = toArray(list);
227
+ if (!arr.length)
228
+ return 0;
229
+ const total = arr.reduce((acc, item) => {
230
+ const v = typeof item === 'object' && item !== null
231
+ ? Number(item[String(field)])
232
+ : 0;
233
+ return acc + (isNaN(v) ? 0 : v);
234
+ }, 0);
235
+ return total / arr.length;
236
+ };
237
+ parser.functions.max_in_list = (list, field) => {
238
+ const nums = toNumericFieldValues(list, field);
239
+ return nums.length === 0 ? null : Math.max(...nums);
240
+ };
241
+ parser.functions.min_in_list = (list, field) => {
242
+ const nums = toNumericFieldValues(list, field);
243
+ return nums.length === 0 ? null : Math.min(...nums);
244
+ };
245
+ parser.functions.deduplicate = (list, field) => {
246
+ const seen = new Set();
247
+ return toArray(list).filter((item) => {
248
+ const key = typeof item === 'object' && item !== null
249
+ ? item[String(field)]
250
+ : item;
251
+ if (seen.has(key))
252
+ return false;
253
+ seen.add(key);
254
+ return true;
255
+ });
256
+ };
257
+ parser.functions.flatten = (list) => toArray(list).flat();
258
+ parser.functions.split_text_to_list = (s, sep = ',') => String(s !== null && s !== void 0 ? s : '').split(String(sep)).map((x) => x.trim());
259
+ // `if` intentionally NOT registered as a JS function. Eager arg evaluation
260
+ // would break short-circuit semantics (e.g. `if(is_empty(x); "safe"; divide(x; 0))`
261
+ // would throw when x is empty). `rewriteLazyIf` transforms `if(c; a; b)` into
262
+ // expr-eval's lazy ternary `((c) ? (a) : (b))` before evaluation.
263
+ parser.functions.if_empty = (val, fallback) => val === '' || val == null || val === 'undefined' ? fallback : val;
264
+ parser.functions.if_null = (val, fallback) => val == null || val === 'undefined' ? fallback : val;
265
+ parser.functions.switch = (...args) => {
266
+ const [val, ...pairs] = args;
267
+ for (let i = 0; i + 1 < pairs.length; i += 2) {
268
+ if (pairs[i] == val)
269
+ return pairs[i + 1];
270
+ }
271
+ return pairs.length % 2 === 1 ? pairs[pairs.length - 1] : '';
272
+ };
273
+ parser.functions.is_empty = (val) => val === '' || val == null;
274
+ parser.functions.is_not_empty = (val) => val !== '' && val != null;
275
+ parser.functions.is_equal = (a, b) => a == b;
276
+ // and/or/not are reserved operators in expr-eval — register under prefixed names
277
+ // and normalizeExpression() rewrites them in the expression before evaluation
278
+ parser.functions.ap_and = (a, b) => Boolean(a) && Boolean(b);
279
+ parser.functions.ap_or = (a, b) => Boolean(a) || Boolean(b);
280
+ parser.functions.ap_not = (a) => !a;
281
+ parser.functions.coalesce = (...args) => { var _a; return (_a = args.find((a) => a !== '' && a != null)) !== null && _a !== void 0 ? _a : ''; };
282
+ // After every impl is registered above, wrap any function whose registry entry
283
+ // declares `argCompatibility.defaultArgs` so older saved flows that were saved
284
+ // before a new arg was added keep working at runtime instead of throwing a
285
+ // "wrong number of arguments" error.
286
+ for (const fn of function_registry_1.AP_FUNCTIONS) {
287
+ const defaults = (_a = fn.argCompatibility) === null || _a === void 0 ? void 0 : _a.defaultArgs;
288
+ if (!defaults || defaults.length === 0)
289
+ continue;
290
+ const impl = parser.functions[fn.name];
291
+ if (!impl)
292
+ continue;
293
+ parser.functions[fn.name] = (...args) => {
294
+ var _a;
295
+ const padded = [...args];
296
+ for (let i = padded.length; i < fn.minArgs; i++) {
297
+ padded.push((_a = defaults[i - args.length]) !== null && _a !== void 0 ? _a : defaults[defaults.length - 1]);
298
+ }
299
+ return impl(...padded);
300
+ };
301
+ }
302
+ function toArray(value) {
303
+ if (Array.isArray(value))
304
+ return value;
305
+ if (value == null)
306
+ return [];
307
+ return [value];
308
+ }
309
+ function readField(item, field) {
310
+ if (item !== null && typeof item === 'object') {
311
+ return item[field];
312
+ }
313
+ return undefined;
314
+ }
315
+ function toNumericFieldValues(list, field) {
316
+ const fieldName = String(field);
317
+ const result = [];
318
+ for (const item of toArray(list)) {
319
+ const raw = readField(item, fieldName);
320
+ if (raw == null)
321
+ continue;
322
+ const num = Number(raw);
323
+ if (Number.isFinite(num))
324
+ result.push(num);
325
+ }
326
+ return result;
327
+ }
328
+ exports.MONTH_NAMES = [
329
+ 'January', 'February', 'March', 'April', 'May', 'June',
330
+ 'July', 'August', 'September', 'October', 'November', 'December',
331
+ ];
332
+ exports.DAY_NAMES = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
333
+ //# sourceMappingURL=function-implementations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function-implementations.js","sourceRoot":"","sources":["../../../../src/lib/formula/function-implementations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export declare const AP_FUNCTIONS: ApFunction[];
2
+ export type ApFunctionBaseType = 'string' | 'number' | 'boolean' | 'date' | 'list';
3
+ export type ApFunctionArgType = ApFunctionBaseType | ApFunctionBaseType[];
4
+ export type ApFunctionDeprecation = {
5
+ replacement?: string;
6
+ removeAfter: string;
7
+ };
8
+ export type ApFunctionArgCompatibility = {
9
+ defaultArgs?: unknown[];
10
+ };
11
+ export type ApFunction = {
12
+ name: string;
13
+ category: 'text' | 'number' | 'date' | 'list' | 'logic';
14
+ description: string;
15
+ syntax: string;
16
+ example: string;
17
+ exampleResult: string;
18
+ minArgs: number;
19
+ maxArgs: number;
20
+ argTypes: ApFunctionArgType[];
21
+ returnType: ApFunctionArgType;
22
+ deprecated?: ApFunctionDeprecation;
23
+ argCompatibility?: ApFunctionArgCompatibility;
24
+ };
25
+ //# sourceMappingURL=function-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function-registry.d.ts","sourceRoot":"","sources":["../../../../src/lib/formula/function-registry.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,EAAE,UAAU,EA68BpC,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAA;AAClF,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,GAAG,kBAAkB,EAAE,CAAA;AAEzE,MAAM,MAAM,qBAAqB,GAAG;IAChC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG;IACrC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;IACvD,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,iBAAiB,EAAE,CAAA;IAC7B,UAAU,EAAE,iBAAiB,CAAA;IAC7B,UAAU,CAAC,EAAE,qBAAqB,CAAA;IAClC,gBAAgB,CAAC,EAAE,0BAA0B,CAAA;CAChD,CAAA"}