@opentui/core 0.0.0-20251202-52296102 → 0.0.0-20251208-bec95e7d
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.
- package/3d.js +3 -5
- package/3d.js.map +2 -2
- package/Renderable.d.ts +2 -1
- package/{index-re80811e.js → index-crebvcxc.js} +1801 -1307
- package/index-crebvcxc.js.map +59 -0
- package/index.d.ts +1 -1
- package/index.js +265 -93
- package/index.js.map +13 -13
- package/lib/bunfs.d.ts +7 -0
- package/lib/keymapping.d.ts +4 -1
- package/lib/yoga.options.d.ts +1 -1
- package/package.json +9 -9
- package/parser.worker.js +17 -3
- package/parser.worker.js.map +6 -5
- package/renderables/Diff.d.ts +4 -0
- package/renderables/Input.d.ts +10 -0
- package/renderables/Select.d.ts +10 -0
- package/renderables/TabSelect.d.ts +10 -0
- package/renderables/Textarea.d.ts +5 -1
- package/renderer.d.ts +19 -0
- package/testing/mock-keys.d.ts +12 -0
- package/testing/test-recorder.d.ts +44 -0
- package/testing.d.ts +1 -0
- package/testing.js +69 -4
- package/testing.js.map +6 -5
- package/index-g8dczzvv.js +0 -33
- package/index-g8dczzvv.js.map +0 -9
- package/index-re80811e.js.map +0 -55
- package/libyoga-2ksztx35.dylib +0 -0
- package/libyoga-gh2tjwb7.so +0 -0
- package/libyoga-j5nt7np1.dylib +0 -0
- package/libyoga-jjdjx62k.js +0 -11
- package/libyoga-jjdjx62k.js.map +0 -9
- package/libyoga-jkq1dr7g.js +0 -11
- package/libyoga-jkq1dr7g.js.map +0 -9
- package/libyoga-m7gmcz0e.js +0 -11
- package/libyoga-m7gmcz0e.js.map +0 -9
- package/libyoga-wnbqxxhv.so +0 -0
- package/libyoga-zt51h244.js +0 -11
- package/libyoga-zt51h244.js.map +0 -9
- package/yoga-jkgc6c1f.dll +0 -0
- package/yoga-merwjcba.js +0 -11
- package/yoga-merwjcba.js.map +0 -9
|
@@ -1,1285 +1,1669 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __toESM = (mod, isNodeMode, target) => {
|
|
8
|
+
target = mod != null ? __create(__getProtoOf(mod)) : {};
|
|
9
|
+
const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
|
|
10
|
+
for (let key of __getOwnPropNames(mod))
|
|
11
|
+
if (!__hasOwnProp.call(to, key))
|
|
12
|
+
__defProp(to, key, {
|
|
13
|
+
get: () => mod[key],
|
|
14
|
+
enumerable: true
|
|
15
|
+
});
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
|
|
19
|
+
var __export = (target, all) => {
|
|
20
|
+
for (var name in all)
|
|
21
|
+
__defProp(target, name, {
|
|
22
|
+
get: all[name],
|
|
23
|
+
enumerable: true,
|
|
24
|
+
configurable: true,
|
|
25
|
+
set: (newValue) => all[name] = () => newValue
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
var __require = import.meta.require;
|
|
7
29
|
|
|
8
|
-
// ../../node_modules/
|
|
9
|
-
var
|
|
10
|
-
__export(
|
|
11
|
-
default: () =>
|
|
30
|
+
// ../../node_modules/yoga-layout/dist/src/index.js
|
|
31
|
+
var exports_src = {};
|
|
32
|
+
__export(exports_src, {
|
|
33
|
+
default: () => src_default,
|
|
12
34
|
Wrap: () => Wrap,
|
|
13
|
-
WRAP_WRAP_REVERSE: () => WRAP_WRAP_REVERSE,
|
|
14
|
-
WRAP_WRAP: () => WRAP_WRAP,
|
|
15
|
-
WRAP_NO_WRAP: () => WRAP_NO_WRAP,
|
|
16
35
|
Unit: () => Unit,
|
|
17
36
|
PositionType: () => PositionType,
|
|
18
|
-
POSITION_TYPE_STATIC: () => POSITION_TYPE_STATIC,
|
|
19
|
-
POSITION_TYPE_RELATIVE: () => POSITION_TYPE_RELATIVE,
|
|
20
|
-
POSITION_TYPE_ABSOLUTE: () => POSITION_TYPE_ABSOLUTE,
|
|
21
37
|
Overflow: () => Overflow,
|
|
22
|
-
OVERFLOW_VISIBLE: () => OVERFLOW_VISIBLE,
|
|
23
|
-
OVERFLOW_SCROLL: () => OVERFLOW_SCROLL,
|
|
24
|
-
OVERFLOW_HIDDEN: () => OVERFLOW_HIDDEN,
|
|
25
38
|
NodeType: () => NodeType,
|
|
26
|
-
Node: () => Node,
|
|
27
39
|
MeasureMode: () => MeasureMode,
|
|
28
40
|
LogLevel: () => LogLevel,
|
|
29
41
|
Justify: () => Justify,
|
|
30
|
-
JUSTIFY_SPACE_EVENLY: () => JUSTIFY_SPACE_EVENLY,
|
|
31
|
-
JUSTIFY_SPACE_BETWEEN: () => JUSTIFY_SPACE_BETWEEN,
|
|
32
|
-
JUSTIFY_SPACE_AROUND: () => JUSTIFY_SPACE_AROUND,
|
|
33
|
-
JUSTIFY_FLEX_START: () => JUSTIFY_FLEX_START,
|
|
34
|
-
JUSTIFY_FLEX_END: () => JUSTIFY_FLEX_END,
|
|
35
|
-
JUSTIFY_CENTER: () => JUSTIFY_CENTER,
|
|
36
42
|
Gutter: () => Gutter,
|
|
37
43
|
FlexDirection: () => FlexDirection,
|
|
38
|
-
FLEX_DIRECTION_ROW_REVERSE: () => FLEX_DIRECTION_ROW_REVERSE,
|
|
39
|
-
FLEX_DIRECTION_ROW: () => FLEX_DIRECTION_ROW,
|
|
40
|
-
FLEX_DIRECTION_COLUMN_REVERSE: () => FLEX_DIRECTION_COLUMN_REVERSE,
|
|
41
|
-
FLEX_DIRECTION_COLUMN: () => FLEX_DIRECTION_COLUMN,
|
|
42
44
|
ExperimentalFeature: () => ExperimentalFeature,
|
|
43
45
|
Errata: () => Errata,
|
|
44
46
|
Edge: () => Edge,
|
|
45
|
-
EDGE_VERTICAL: () => EDGE_VERTICAL,
|
|
46
|
-
EDGE_TOP: () => EDGE_TOP,
|
|
47
|
-
EDGE_START: () => EDGE_START,
|
|
48
|
-
EDGE_RIGHT: () => EDGE_RIGHT,
|
|
49
|
-
EDGE_LEFT: () => EDGE_LEFT,
|
|
50
|
-
EDGE_HORIZONTAL: () => EDGE_HORIZONTAL,
|
|
51
|
-
EDGE_END: () => EDGE_END,
|
|
52
|
-
EDGE_BOTTOM: () => EDGE_BOTTOM,
|
|
53
|
-
EDGE_ALL: () => EDGE_ALL,
|
|
54
47
|
Display: () => Display,
|
|
55
48
|
Direction: () => Direction,
|
|
56
49
|
Dimension: () => Dimension,
|
|
57
|
-
DISPLAY_NONE: () => DISPLAY_NONE,
|
|
58
|
-
DISPLAY_FLEX: () => DISPLAY_FLEX,
|
|
59
|
-
DIRECTION_RTL: () => DIRECTION_RTL,
|
|
60
|
-
DIRECTION_LTR: () => DIRECTION_LTR,
|
|
61
|
-
DIRECTION_INHERIT: () => DIRECTION_INHERIT,
|
|
62
|
-
Config: () => Config,
|
|
63
50
|
BoxSizing: () => BoxSizing,
|
|
64
|
-
Align: () => Align
|
|
65
|
-
ALIGN_STRETCH: () => ALIGN_STRETCH,
|
|
66
|
-
ALIGN_SPACE_EVENLY: () => ALIGN_SPACE_EVENLY,
|
|
67
|
-
ALIGN_SPACE_BETWEEN: () => ALIGN_SPACE_BETWEEN,
|
|
68
|
-
ALIGN_SPACE_AROUND: () => ALIGN_SPACE_AROUND,
|
|
69
|
-
ALIGN_FLEX_START: () => ALIGN_FLEX_START,
|
|
70
|
-
ALIGN_FLEX_END: () => ALIGN_FLEX_END,
|
|
71
|
-
ALIGN_CENTER: () => ALIGN_CENTER,
|
|
72
|
-
ALIGN_BASELINE: () => ALIGN_BASELINE,
|
|
73
|
-
ALIGN_AUTO: () => ALIGN_AUTO
|
|
74
|
-
});
|
|
75
|
-
import { dlopen, suffix, JSCallback, FFIType } from "bun:ffi";
|
|
76
|
-
import { join } from "path";
|
|
77
|
-
import { existsSync } from "fs";
|
|
78
|
-
var __dirname = "/Users/runner/work/opentui/opentui/node_modules/bun-yoga/dist";
|
|
79
|
-
var embeddedLib = await (async () => {
|
|
80
|
-
try {
|
|
81
|
-
if (process.platform === "darwin" && process.arch === "arm64") {
|
|
82
|
-
return (await import("./libyoga-m7gmcz0e.js", { with: { type: "file" } })).default;
|
|
83
|
-
} else if (process.platform === "darwin" && process.arch === "x64") {
|
|
84
|
-
return (await import("./libyoga-jkq1dr7g.js", { with: { type: "file" } })).default;
|
|
85
|
-
} else if (process.platform === "linux" && process.arch === "x64") {
|
|
86
|
-
return (await import("./libyoga-zt51h244.js", { with: { type: "file" } })).default;
|
|
87
|
-
} else if (process.platform === "linux" && process.arch === "arm64") {
|
|
88
|
-
return (await import("./libyoga-jjdjx62k.js", { with: { type: "file" } })).default;
|
|
89
|
-
} else if (process.platform === "win32") {
|
|
90
|
-
return (await import("./yoga-merwjcba.js", { with: { type: "file" } })).default;
|
|
91
|
-
}
|
|
92
|
-
} catch {}
|
|
93
|
-
return;
|
|
94
|
-
})();
|
|
95
|
-
function getLibPath() {
|
|
96
|
-
if (process.platform === "win32") {
|
|
97
|
-
if (existsSync(join(__dirname, "..", "zig-out", "lib", `yoga.${suffix}`))) {
|
|
98
|
-
return join(__dirname, "..", "zig-out", "lib", `yoga.${suffix}`);
|
|
99
|
-
}
|
|
100
|
-
if (existsSync(join(__dirname, "..", "zig-out", "bin", `yoga.${suffix}`))) {
|
|
101
|
-
return join(__dirname, "..", "zig-out", "bin", `yoga.${suffix}`);
|
|
102
|
-
}
|
|
103
|
-
} else {
|
|
104
|
-
if (existsSync(join(__dirname, "..", "zig-out", "lib", `libyoga.${suffix}`))) {
|
|
105
|
-
return join(__dirname, "..", "zig-out", "lib", `libyoga.${suffix}`);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
if (embeddedLib && existsSync(embeddedLib)) {
|
|
109
|
-
return embeddedLib;
|
|
110
|
-
}
|
|
111
|
-
throw new Error(`Could not find native library. Platform: ${process.platform}-${process.arch}
|
|
112
|
-
Make sure to run 'zig build' or install the package with binaries.`);
|
|
113
|
-
}
|
|
114
|
-
var Align = {
|
|
115
|
-
Auto: 0,
|
|
116
|
-
FlexStart: 1,
|
|
117
|
-
Center: 2,
|
|
118
|
-
FlexEnd: 3,
|
|
119
|
-
Stretch: 4,
|
|
120
|
-
Baseline: 5,
|
|
121
|
-
SpaceBetween: 6,
|
|
122
|
-
SpaceAround: 7,
|
|
123
|
-
SpaceEvenly: 8
|
|
124
|
-
};
|
|
125
|
-
var BoxSizing = {
|
|
126
|
-
BorderBox: 0,
|
|
127
|
-
ContentBox: 1
|
|
128
|
-
};
|
|
129
|
-
var Dimension = {
|
|
130
|
-
Width: 0,
|
|
131
|
-
Height: 1
|
|
132
|
-
};
|
|
133
|
-
var Direction = {
|
|
134
|
-
Inherit: 0,
|
|
135
|
-
LTR: 1,
|
|
136
|
-
RTL: 2
|
|
137
|
-
};
|
|
138
|
-
var Display = {
|
|
139
|
-
Flex: 0,
|
|
140
|
-
None: 1,
|
|
141
|
-
Contents: 2
|
|
142
|
-
};
|
|
143
|
-
var Edge = {
|
|
144
|
-
Left: 0,
|
|
145
|
-
Top: 1,
|
|
146
|
-
Right: 2,
|
|
147
|
-
Bottom: 3,
|
|
148
|
-
Start: 4,
|
|
149
|
-
End: 5,
|
|
150
|
-
Horizontal: 6,
|
|
151
|
-
Vertical: 7,
|
|
152
|
-
All: 8
|
|
153
|
-
};
|
|
154
|
-
var Errata = {
|
|
155
|
-
None: 0,
|
|
156
|
-
StretchFlexBasis: 1,
|
|
157
|
-
AbsolutePositionWithoutInsetsExcludesPadding: 2,
|
|
158
|
-
AbsolutePercentAgainstInnerSize: 4,
|
|
159
|
-
All: 2147483647,
|
|
160
|
-
Classic: 2147483646
|
|
161
|
-
};
|
|
162
|
-
var ExperimentalFeature = {
|
|
163
|
-
WebFlexBasis: 0
|
|
164
|
-
};
|
|
165
|
-
var FlexDirection = {
|
|
166
|
-
Column: 0,
|
|
167
|
-
ColumnReverse: 1,
|
|
168
|
-
Row: 2,
|
|
169
|
-
RowReverse: 3
|
|
170
|
-
};
|
|
171
|
-
var Gutter = {
|
|
172
|
-
Column: 0,
|
|
173
|
-
Row: 1,
|
|
174
|
-
All: 2
|
|
175
|
-
};
|
|
176
|
-
var Justify = {
|
|
177
|
-
FlexStart: 0,
|
|
178
|
-
Center: 1,
|
|
179
|
-
FlexEnd: 2,
|
|
180
|
-
SpaceBetween: 3,
|
|
181
|
-
SpaceAround: 4,
|
|
182
|
-
SpaceEvenly: 5
|
|
183
|
-
};
|
|
184
|
-
var LogLevel = {
|
|
185
|
-
Error: 0,
|
|
186
|
-
Warn: 1,
|
|
187
|
-
Info: 2,
|
|
188
|
-
Debug: 3,
|
|
189
|
-
Verbose: 4,
|
|
190
|
-
Fatal: 5
|
|
191
|
-
};
|
|
192
|
-
var MeasureMode = {
|
|
193
|
-
Undefined: 0,
|
|
194
|
-
Exactly: 1,
|
|
195
|
-
AtMost: 2
|
|
196
|
-
};
|
|
197
|
-
var NodeType = {
|
|
198
|
-
Default: 0,
|
|
199
|
-
Text: 1
|
|
200
|
-
};
|
|
201
|
-
var Overflow = {
|
|
202
|
-
Visible: 0,
|
|
203
|
-
Hidden: 1,
|
|
204
|
-
Scroll: 2
|
|
205
|
-
};
|
|
206
|
-
var PositionType = {
|
|
207
|
-
Static: 0,
|
|
208
|
-
Relative: 1,
|
|
209
|
-
Absolute: 2
|
|
210
|
-
};
|
|
211
|
-
var Unit = {
|
|
212
|
-
Undefined: 0,
|
|
213
|
-
Point: 1,
|
|
214
|
-
Percent: 2,
|
|
215
|
-
Auto: 3
|
|
216
|
-
};
|
|
217
|
-
var Wrap = {
|
|
218
|
-
NoWrap: 0,
|
|
219
|
-
Wrap: 1,
|
|
220
|
-
WrapReverse: 2
|
|
221
|
-
};
|
|
222
|
-
var EDGE_LEFT = Edge.Left;
|
|
223
|
-
var EDGE_TOP = Edge.Top;
|
|
224
|
-
var EDGE_RIGHT = Edge.Right;
|
|
225
|
-
var EDGE_BOTTOM = Edge.Bottom;
|
|
226
|
-
var EDGE_START = Edge.Start;
|
|
227
|
-
var EDGE_END = Edge.End;
|
|
228
|
-
var EDGE_HORIZONTAL = Edge.Horizontal;
|
|
229
|
-
var EDGE_VERTICAL = Edge.Vertical;
|
|
230
|
-
var EDGE_ALL = Edge.All;
|
|
231
|
-
var FLEX_DIRECTION_COLUMN = FlexDirection.Column;
|
|
232
|
-
var FLEX_DIRECTION_COLUMN_REVERSE = FlexDirection.ColumnReverse;
|
|
233
|
-
var FLEX_DIRECTION_ROW = FlexDirection.Row;
|
|
234
|
-
var FLEX_DIRECTION_ROW_REVERSE = FlexDirection.RowReverse;
|
|
235
|
-
var JUSTIFY_FLEX_START = Justify.FlexStart;
|
|
236
|
-
var JUSTIFY_CENTER = Justify.Center;
|
|
237
|
-
var JUSTIFY_FLEX_END = Justify.FlexEnd;
|
|
238
|
-
var JUSTIFY_SPACE_BETWEEN = Justify.SpaceBetween;
|
|
239
|
-
var JUSTIFY_SPACE_AROUND = Justify.SpaceAround;
|
|
240
|
-
var JUSTIFY_SPACE_EVENLY = Justify.SpaceEvenly;
|
|
241
|
-
var ALIGN_AUTO = Align.Auto;
|
|
242
|
-
var ALIGN_FLEX_START = Align.FlexStart;
|
|
243
|
-
var ALIGN_CENTER = Align.Center;
|
|
244
|
-
var ALIGN_FLEX_END = Align.FlexEnd;
|
|
245
|
-
var ALIGN_STRETCH = Align.Stretch;
|
|
246
|
-
var ALIGN_BASELINE = Align.Baseline;
|
|
247
|
-
var ALIGN_SPACE_BETWEEN = Align.SpaceBetween;
|
|
248
|
-
var ALIGN_SPACE_AROUND = Align.SpaceAround;
|
|
249
|
-
var ALIGN_SPACE_EVENLY = Align.SpaceEvenly;
|
|
250
|
-
var WRAP_NO_WRAP = Wrap.NoWrap;
|
|
251
|
-
var WRAP_WRAP = Wrap.Wrap;
|
|
252
|
-
var WRAP_WRAP_REVERSE = Wrap.WrapReverse;
|
|
253
|
-
var OVERFLOW_VISIBLE = Overflow.Visible;
|
|
254
|
-
var OVERFLOW_HIDDEN = Overflow.Hidden;
|
|
255
|
-
var OVERFLOW_SCROLL = Overflow.Scroll;
|
|
256
|
-
var DISPLAY_FLEX = Display.Flex;
|
|
257
|
-
var DISPLAY_NONE = Display.None;
|
|
258
|
-
var POSITION_TYPE_STATIC = PositionType.Static;
|
|
259
|
-
var POSITION_TYPE_RELATIVE = PositionType.Relative;
|
|
260
|
-
var POSITION_TYPE_ABSOLUTE = PositionType.Absolute;
|
|
261
|
-
var DIRECTION_INHERIT = Direction.Inherit;
|
|
262
|
-
var DIRECTION_LTR = Direction.LTR;
|
|
263
|
-
var DIRECTION_RTL = Direction.RTL;
|
|
264
|
-
function parseValue(value) {
|
|
265
|
-
if (value === undefined) {
|
|
266
|
-
return { unit: Unit.Undefined, asNumber: undefined };
|
|
267
|
-
}
|
|
268
|
-
if (value === "auto") {
|
|
269
|
-
return { unit: Unit.Auto, asNumber: undefined };
|
|
270
|
-
}
|
|
271
|
-
if (typeof value === "string" && value.endsWith("%")) {
|
|
272
|
-
return { unit: Unit.Percent, asNumber: parseFloat(value) };
|
|
273
|
-
}
|
|
274
|
-
return { unit: Unit.Point, asNumber: value };
|
|
275
|
-
}
|
|
276
|
-
var UNDEFINED_VALUE = { unit: Unit.Undefined, value: NaN };
|
|
277
|
-
function unpackValue(packed) {
|
|
278
|
-
const p = BigInt(packed);
|
|
279
|
-
const unit = Number(p & 0xffffffffn);
|
|
280
|
-
const valueBits = Number(p >> 32n & 0xffffffffn);
|
|
281
|
-
const buffer = new ArrayBuffer(4);
|
|
282
|
-
const view = new DataView(buffer);
|
|
283
|
-
view.setUint32(0, valueBits, true);
|
|
284
|
-
const value = view.getFloat32(0, true);
|
|
285
|
-
return { unit, value };
|
|
286
|
-
}
|
|
287
|
-
var lib = dlopen(getLibPath(), {
|
|
288
|
-
ygConfigNew: { args: [], returns: "ptr" },
|
|
289
|
-
ygConfigFree: { args: ["ptr"], returns: "void" },
|
|
290
|
-
ygConfigGetDefault: { args: [], returns: "ptr" },
|
|
291
|
-
ygConfigSetUseWebDefaults: { args: ["ptr", "bool"], returns: "void" },
|
|
292
|
-
ygConfigGetUseWebDefaults: { args: ["ptr"], returns: "bool" },
|
|
293
|
-
ygConfigSetPointScaleFactor: { args: ["ptr", "f32"], returns: "void" },
|
|
294
|
-
ygConfigGetPointScaleFactor: { args: ["ptr"], returns: "f32" },
|
|
295
|
-
ygConfigSetErrata: { args: ["ptr", "i32"], returns: "void" },
|
|
296
|
-
ygConfigGetErrata: { args: ["ptr"], returns: "i32" },
|
|
297
|
-
ygConfigSetExperimentalFeatureEnabled: {
|
|
298
|
-
args: ["ptr", "i32", "bool"],
|
|
299
|
-
returns: "void"
|
|
300
|
-
},
|
|
301
|
-
ygConfigIsExperimentalFeatureEnabled: {
|
|
302
|
-
args: ["ptr", "i32"],
|
|
303
|
-
returns: "bool"
|
|
304
|
-
},
|
|
305
|
-
ygNodeNew: { args: [], returns: "ptr" },
|
|
306
|
-
ygNodeNewWithConfig: { args: ["ptr"], returns: "ptr" },
|
|
307
|
-
ygNodeClone: { args: ["ptr"], returns: "ptr" },
|
|
308
|
-
ygNodeFree: { args: ["ptr"], returns: "void" },
|
|
309
|
-
ygNodeFreeRecursive: { args: ["ptr"], returns: "void" },
|
|
310
|
-
ygNodeReset: { args: ["ptr"], returns: "void" },
|
|
311
|
-
ygNodeCopyStyle: { args: ["ptr", "ptr"], returns: "void" },
|
|
312
|
-
ygNodeSetIsReferenceBaseline: { args: ["ptr", "bool"], returns: "void" },
|
|
313
|
-
ygNodeIsReferenceBaseline: { args: ["ptr"], returns: "bool" },
|
|
314
|
-
ygNodeSetAlwaysFormsContainingBlock: {
|
|
315
|
-
args: ["ptr", "bool"],
|
|
316
|
-
returns: "void"
|
|
317
|
-
},
|
|
318
|
-
ygNodeInsertChild: { args: ["ptr", "ptr", "u64"], returns: "void" },
|
|
319
|
-
ygNodeRemoveChild: { args: ["ptr", "ptr"], returns: "void" },
|
|
320
|
-
ygNodeRemoveAllChildren: { args: ["ptr"], returns: "void" },
|
|
321
|
-
ygNodeGetChild: { args: ["ptr", "u64"], returns: "ptr" },
|
|
322
|
-
ygNodeGetChildCount: { args: ["ptr"], returns: "u64" },
|
|
323
|
-
ygNodeGetParent: { args: ["ptr"], returns: "ptr" },
|
|
324
|
-
ygNodeCalculateLayout: { args: ["ptr", "f32", "f32", "i32"], returns: "void" },
|
|
325
|
-
ygNodeGetHasNewLayout: { args: ["ptr"], returns: "bool" },
|
|
326
|
-
ygNodeSetHasNewLayout: { args: ["ptr", "bool"], returns: "void" },
|
|
327
|
-
ygNodeMarkDirty: { args: ["ptr"], returns: "void" },
|
|
328
|
-
ygNodeIsDirty: { args: ["ptr"], returns: "bool" },
|
|
329
|
-
ygNodeLayoutGetLeft: { args: ["ptr"], returns: "f32" },
|
|
330
|
-
ygNodeLayoutGetTop: { args: ["ptr"], returns: "f32" },
|
|
331
|
-
ygNodeLayoutGetRight: { args: ["ptr"], returns: "f32" },
|
|
332
|
-
ygNodeLayoutGetBottom: { args: ["ptr"], returns: "f32" },
|
|
333
|
-
ygNodeLayoutGetWidth: { args: ["ptr"], returns: "f32" },
|
|
334
|
-
ygNodeLayoutGetHeight: { args: ["ptr"], returns: "f32" },
|
|
335
|
-
ygNodeLayoutGetBorder: { args: ["ptr", "i32"], returns: "f32" },
|
|
336
|
-
ygNodeLayoutGetMargin: { args: ["ptr", "i32"], returns: "f32" },
|
|
337
|
-
ygNodeLayoutGetPadding: { args: ["ptr", "i32"], returns: "f32" },
|
|
338
|
-
ygNodeStyleSetDirection: { args: ["ptr", "i32"], returns: "void" },
|
|
339
|
-
ygNodeStyleGetDirection: { args: ["ptr"], returns: "i32" },
|
|
340
|
-
ygNodeStyleSetFlexDirection: { args: ["ptr", "i32"], returns: "void" },
|
|
341
|
-
ygNodeStyleGetFlexDirection: { args: ["ptr"], returns: "i32" },
|
|
342
|
-
ygNodeStyleSetJustifyContent: { args: ["ptr", "i32"], returns: "void" },
|
|
343
|
-
ygNodeStyleGetJustifyContent: { args: ["ptr"], returns: "i32" },
|
|
344
|
-
ygNodeStyleSetAlignContent: { args: ["ptr", "i32"], returns: "void" },
|
|
345
|
-
ygNodeStyleGetAlignContent: { args: ["ptr"], returns: "i32" },
|
|
346
|
-
ygNodeStyleSetAlignItems: { args: ["ptr", "i32"], returns: "void" },
|
|
347
|
-
ygNodeStyleGetAlignItems: { args: ["ptr"], returns: "i32" },
|
|
348
|
-
ygNodeStyleSetAlignSelf: { args: ["ptr", "i32"], returns: "void" },
|
|
349
|
-
ygNodeStyleGetAlignSelf: { args: ["ptr"], returns: "i32" },
|
|
350
|
-
ygNodeStyleSetPositionType: { args: ["ptr", "i32"], returns: "void" },
|
|
351
|
-
ygNodeStyleGetPositionType: { args: ["ptr"], returns: "i32" },
|
|
352
|
-
ygNodeStyleSetFlexWrap: { args: ["ptr", "i32"], returns: "void" },
|
|
353
|
-
ygNodeStyleGetFlexWrap: { args: ["ptr"], returns: "i32" },
|
|
354
|
-
ygNodeStyleSetOverflow: { args: ["ptr", "i32"], returns: "void" },
|
|
355
|
-
ygNodeStyleGetOverflow: { args: ["ptr"], returns: "i32" },
|
|
356
|
-
ygNodeStyleSetDisplay: { args: ["ptr", "i32"], returns: "void" },
|
|
357
|
-
ygNodeStyleGetDisplay: { args: ["ptr"], returns: "i32" },
|
|
358
|
-
ygNodeStyleSetBoxSizing: { args: ["ptr", "i32"], returns: "void" },
|
|
359
|
-
ygNodeStyleGetBoxSizing: { args: ["ptr"], returns: "i32" },
|
|
360
|
-
ygNodeStyleSetFlex: { args: ["ptr", "f32"], returns: "void" },
|
|
361
|
-
ygNodeStyleGetFlex: { args: ["ptr"], returns: "f32" },
|
|
362
|
-
ygNodeStyleSetFlexGrow: { args: ["ptr", "f32"], returns: "void" },
|
|
363
|
-
ygNodeStyleGetFlexGrow: { args: ["ptr"], returns: "f32" },
|
|
364
|
-
ygNodeStyleSetFlexShrink: { args: ["ptr", "f32"], returns: "void" },
|
|
365
|
-
ygNodeStyleGetFlexShrink: { args: ["ptr"], returns: "f32" },
|
|
366
|
-
ygNodeStyleSetFlexBasis: { args: ["ptr", "f32"], returns: "void" },
|
|
367
|
-
ygNodeStyleSetFlexBasisPercent: { args: ["ptr", "f32"], returns: "void" },
|
|
368
|
-
ygNodeStyleSetFlexBasisAuto: { args: ["ptr"], returns: "void" },
|
|
369
|
-
ygNodeStyleSetPosition: { args: ["ptr", "i32", "f32"], returns: "void" },
|
|
370
|
-
ygNodeStyleSetPositionPercent: { args: ["ptr", "i32", "f32"], returns: "void" },
|
|
371
|
-
ygNodeStyleSetPositionAuto: { args: ["ptr", "i32"], returns: "void" },
|
|
372
|
-
ygNodeStyleSetMargin: { args: ["ptr", "i32", "f32"], returns: "void" },
|
|
373
|
-
ygNodeStyleSetMarginPercent: { args: ["ptr", "i32", "f32"], returns: "void" },
|
|
374
|
-
ygNodeStyleSetMarginAuto: { args: ["ptr", "i32"], returns: "void" },
|
|
375
|
-
ygNodeStyleSetPadding: { args: ["ptr", "i32", "f32"], returns: "void" },
|
|
376
|
-
ygNodeStyleSetPaddingPercent: { args: ["ptr", "i32", "f32"], returns: "void" },
|
|
377
|
-
ygNodeStyleSetBorder: { args: ["ptr", "i32", "f32"], returns: "void" },
|
|
378
|
-
ygNodeStyleGetBorder: { args: ["ptr", "i32"], returns: "f32" },
|
|
379
|
-
ygNodeStyleSetGap: { args: ["ptr", "i32", "f32"], returns: "void" },
|
|
380
|
-
ygNodeStyleSetGapPercent: { args: ["ptr", "i32", "f32"], returns: "void" },
|
|
381
|
-
ygNodeStyleSetWidth: { args: ["ptr", "f32"], returns: "void" },
|
|
382
|
-
ygNodeStyleSetWidthPercent: { args: ["ptr", "f32"], returns: "void" },
|
|
383
|
-
ygNodeStyleSetWidthAuto: { args: ["ptr"], returns: "void" },
|
|
384
|
-
ygNodeStyleSetHeight: { args: ["ptr", "f32"], returns: "void" },
|
|
385
|
-
ygNodeStyleSetHeightPercent: { args: ["ptr", "f32"], returns: "void" },
|
|
386
|
-
ygNodeStyleSetHeightAuto: { args: ["ptr"], returns: "void" },
|
|
387
|
-
ygNodeStyleSetMinWidth: { args: ["ptr", "f32"], returns: "void" },
|
|
388
|
-
ygNodeStyleSetMinWidthPercent: { args: ["ptr", "f32"], returns: "void" },
|
|
389
|
-
ygNodeStyleSetMinHeight: { args: ["ptr", "f32"], returns: "void" },
|
|
390
|
-
ygNodeStyleSetMinHeightPercent: { args: ["ptr", "f32"], returns: "void" },
|
|
391
|
-
ygNodeStyleSetMaxWidth: { args: ["ptr", "f32"], returns: "void" },
|
|
392
|
-
ygNodeStyleSetMaxWidthPercent: { args: ["ptr", "f32"], returns: "void" },
|
|
393
|
-
ygNodeStyleSetMaxHeight: { args: ["ptr", "f32"], returns: "void" },
|
|
394
|
-
ygNodeStyleSetMaxHeightPercent: { args: ["ptr", "f32"], returns: "void" },
|
|
395
|
-
ygNodeStyleSetAspectRatio: { args: ["ptr", "f32"], returns: "void" },
|
|
396
|
-
ygNodeStyleGetAspectRatio: { args: ["ptr"], returns: "f32" },
|
|
397
|
-
ygNodeSetContext: { args: ["ptr", "ptr"], returns: "void" },
|
|
398
|
-
ygNodeGetContext: { args: ["ptr"], returns: "ptr" },
|
|
399
|
-
ygNodeSetMeasureFunc: { args: ["ptr", "ptr"], returns: "void" },
|
|
400
|
-
ygNodeUnsetMeasureFunc: { args: ["ptr"], returns: "void" },
|
|
401
|
-
ygNodeHasMeasureFunc: { args: ["ptr"], returns: "bool" },
|
|
402
|
-
ygNodeSetBaselineFunc: { args: ["ptr", "ptr"], returns: "void" },
|
|
403
|
-
ygNodeUnsetBaselineFunc: { args: ["ptr"], returns: "void" },
|
|
404
|
-
ygNodeHasBaselineFunc: { args: ["ptr"], returns: "bool" },
|
|
405
|
-
ygNodeSetDirtiedFunc: { args: ["ptr", "ptr"], returns: "void" },
|
|
406
|
-
ygNodeUnsetDirtiedFunc: { args: ["ptr"], returns: "void" },
|
|
407
|
-
ygNodeGetDirtiedFunc: { args: ["ptr"], returns: "ptr" },
|
|
408
|
-
ygCreateSize: { args: ["f32", "f32"], returns: "u64" },
|
|
409
|
-
ygStoreMeasureResult: { args: ["f32", "f32"], returns: "void" },
|
|
410
|
-
ygStoreBaselineResult: { args: ["f32"], returns: "void" },
|
|
411
|
-
ygNodeSetMeasureFuncTrampoline: { args: ["ptr", "ptr"], returns: "void" },
|
|
412
|
-
ygNodeUnsetMeasureFuncTrampoline: { args: ["ptr"], returns: "void" },
|
|
413
|
-
ygNodeSetBaselineFuncTrampoline: { args: ["ptr", "ptr"], returns: "void" },
|
|
414
|
-
ygNodeUnsetBaselineFuncTrampoline: { args: ["ptr"], returns: "void" },
|
|
415
|
-
ygNodeFreeCallbacks: { args: ["ptr"], returns: "void" },
|
|
416
|
-
ygNodeStyleGetWidthPacked: { args: ["ptr"], returns: "u64" },
|
|
417
|
-
ygNodeStyleGetHeightPacked: { args: ["ptr"], returns: "u64" },
|
|
418
|
-
ygNodeStyleGetMinWidthPacked: { args: ["ptr"], returns: "u64" },
|
|
419
|
-
ygNodeStyleGetMinHeightPacked: { args: ["ptr"], returns: "u64" },
|
|
420
|
-
ygNodeStyleGetMaxWidthPacked: { args: ["ptr"], returns: "u64" },
|
|
421
|
-
ygNodeStyleGetMaxHeightPacked: { args: ["ptr"], returns: "u64" },
|
|
422
|
-
ygNodeStyleGetMarginPacked: { args: ["ptr", "i32"], returns: "u64" },
|
|
423
|
-
ygNodeStyleGetPaddingPacked: { args: ["ptr", "i32"], returns: "u64" },
|
|
424
|
-
ygNodeStyleGetPositionPacked: { args: ["ptr", "i32"], returns: "u64" },
|
|
425
|
-
ygNodeStyleGetGapPacked: { args: ["ptr", "i32"], returns: "u64" },
|
|
426
|
-
ygNodeStyleGetFlexBasisPacked: { args: ["ptr"], returns: "u64" }
|
|
51
|
+
Align: () => Align
|
|
427
52
|
});
|
|
428
|
-
var yg = lib.symbols;
|
|
429
53
|
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
}
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
if (this._freed)
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
}
|
|
547
|
-
getParent() {
|
|
548
|
-
if (this._freed)
|
|
549
|
-
return null;
|
|
550
|
-
const ptr = yg.ygNodeGetParent(this.ptr);
|
|
551
|
-
return ptr ? new Node(ptr) : null;
|
|
552
|
-
}
|
|
553
|
-
calculateLayout(width, height, direction = Direction.LTR) {
|
|
554
|
-
if (this._freed)
|
|
555
|
-
return;
|
|
556
|
-
const w = width === "auto" || width === undefined ? NaN : width;
|
|
557
|
-
const h = height === "auto" || height === undefined ? NaN : height;
|
|
558
|
-
yg.ygNodeCalculateLayout(this.ptr, w, h, direction);
|
|
559
|
-
}
|
|
560
|
-
hasNewLayout() {
|
|
561
|
-
if (this._freed)
|
|
562
|
-
return false;
|
|
563
|
-
return yg.ygNodeGetHasNewLayout(this.ptr);
|
|
564
|
-
}
|
|
565
|
-
markLayoutSeen() {
|
|
566
|
-
if (this._freed)
|
|
567
|
-
return;
|
|
568
|
-
yg.ygNodeSetHasNewLayout(this.ptr, false);
|
|
569
|
-
}
|
|
570
|
-
markDirty() {
|
|
571
|
-
if (this._freed)
|
|
572
|
-
return;
|
|
573
|
-
yg.ygNodeMarkDirty(this.ptr);
|
|
574
|
-
}
|
|
575
|
-
isDirty() {
|
|
576
|
-
if (this._freed)
|
|
577
|
-
return true;
|
|
578
|
-
return yg.ygNodeIsDirty(this.ptr);
|
|
579
|
-
}
|
|
580
|
-
getComputedLayout() {
|
|
581
|
-
if (this._freed)
|
|
582
|
-
return { left: 0, top: 0, right: 0, bottom: 0, width: 0, height: 0 };
|
|
583
|
-
return {
|
|
584
|
-
left: yg.ygNodeLayoutGetLeft(this.ptr),
|
|
585
|
-
top: yg.ygNodeLayoutGetTop(this.ptr),
|
|
586
|
-
right: yg.ygNodeLayoutGetRight(this.ptr),
|
|
587
|
-
bottom: yg.ygNodeLayoutGetBottom(this.ptr),
|
|
588
|
-
width: yg.ygNodeLayoutGetWidth(this.ptr),
|
|
589
|
-
height: yg.ygNodeLayoutGetHeight(this.ptr)
|
|
590
|
-
};
|
|
591
|
-
}
|
|
592
|
-
getComputedLeft() {
|
|
593
|
-
if (this._freed)
|
|
594
|
-
return 0;
|
|
595
|
-
return yg.ygNodeLayoutGetLeft(this.ptr);
|
|
596
|
-
}
|
|
597
|
-
getComputedTop() {
|
|
598
|
-
if (this._freed)
|
|
599
|
-
return 0;
|
|
600
|
-
return yg.ygNodeLayoutGetTop(this.ptr);
|
|
601
|
-
}
|
|
602
|
-
getComputedRight() {
|
|
603
|
-
if (this._freed)
|
|
604
|
-
return 0;
|
|
605
|
-
return yg.ygNodeLayoutGetRight(this.ptr);
|
|
606
|
-
}
|
|
607
|
-
getComputedBottom() {
|
|
608
|
-
if (this._freed)
|
|
609
|
-
return 0;
|
|
610
|
-
return yg.ygNodeLayoutGetBottom(this.ptr);
|
|
611
|
-
}
|
|
612
|
-
getComputedWidth() {
|
|
613
|
-
if (this._freed)
|
|
614
|
-
return 0;
|
|
615
|
-
return yg.ygNodeLayoutGetWidth(this.ptr);
|
|
616
|
-
}
|
|
617
|
-
getComputedHeight() {
|
|
618
|
-
if (this._freed)
|
|
619
|
-
return 0;
|
|
620
|
-
return yg.ygNodeLayoutGetHeight(this.ptr);
|
|
621
|
-
}
|
|
622
|
-
getComputedBorder(edge) {
|
|
623
|
-
if (this._freed)
|
|
624
|
-
return 0;
|
|
625
|
-
return yg.ygNodeLayoutGetBorder(this.ptr, edge);
|
|
626
|
-
}
|
|
627
|
-
getComputedMargin(edge) {
|
|
628
|
-
if (this._freed)
|
|
629
|
-
return 0;
|
|
630
|
-
return yg.ygNodeLayoutGetMargin(this.ptr, edge);
|
|
631
|
-
}
|
|
632
|
-
getComputedPadding(edge) {
|
|
633
|
-
if (this._freed)
|
|
634
|
-
return 0;
|
|
635
|
-
return yg.ygNodeLayoutGetPadding(this.ptr, edge);
|
|
636
|
-
}
|
|
637
|
-
setDirection(direction) {
|
|
638
|
-
if (this._freed)
|
|
639
|
-
return;
|
|
640
|
-
yg.ygNodeStyleSetDirection(this.ptr, direction);
|
|
641
|
-
}
|
|
642
|
-
getDirection() {
|
|
643
|
-
if (this._freed)
|
|
644
|
-
return Direction.Inherit;
|
|
645
|
-
return yg.ygNodeStyleGetDirection(this.ptr);
|
|
646
|
-
}
|
|
647
|
-
setFlexDirection(flexDirection) {
|
|
648
|
-
if (this._freed)
|
|
649
|
-
return;
|
|
650
|
-
yg.ygNodeStyleSetFlexDirection(this.ptr, flexDirection);
|
|
651
|
-
}
|
|
652
|
-
getFlexDirection() {
|
|
653
|
-
if (this._freed)
|
|
654
|
-
return FlexDirection.Column;
|
|
655
|
-
return yg.ygNodeStyleGetFlexDirection(this.ptr);
|
|
656
|
-
}
|
|
657
|
-
setJustifyContent(justifyContent) {
|
|
658
|
-
if (this._freed)
|
|
659
|
-
return;
|
|
660
|
-
yg.ygNodeStyleSetJustifyContent(this.ptr, justifyContent);
|
|
661
|
-
}
|
|
662
|
-
getJustifyContent() {
|
|
663
|
-
if (this._freed)
|
|
664
|
-
return Justify.FlexStart;
|
|
665
|
-
return yg.ygNodeStyleGetJustifyContent(this.ptr);
|
|
666
|
-
}
|
|
667
|
-
setAlignContent(alignContent) {
|
|
668
|
-
if (this._freed)
|
|
669
|
-
return;
|
|
670
|
-
yg.ygNodeStyleSetAlignContent(this.ptr, alignContent);
|
|
671
|
-
}
|
|
672
|
-
getAlignContent() {
|
|
673
|
-
if (this._freed)
|
|
674
|
-
return Align.Auto;
|
|
675
|
-
return yg.ygNodeStyleGetAlignContent(this.ptr);
|
|
676
|
-
}
|
|
677
|
-
setAlignItems(alignItems) {
|
|
678
|
-
if (this._freed)
|
|
679
|
-
return;
|
|
680
|
-
yg.ygNodeStyleSetAlignItems(this.ptr, alignItems);
|
|
681
|
-
}
|
|
682
|
-
getAlignItems() {
|
|
683
|
-
if (this._freed)
|
|
684
|
-
return Align.Auto;
|
|
685
|
-
return yg.ygNodeStyleGetAlignItems(this.ptr);
|
|
686
|
-
}
|
|
687
|
-
setAlignSelf(alignSelf) {
|
|
688
|
-
if (this._freed)
|
|
689
|
-
return;
|
|
690
|
-
yg.ygNodeStyleSetAlignSelf(this.ptr, alignSelf);
|
|
691
|
-
}
|
|
692
|
-
getAlignSelf() {
|
|
693
|
-
if (this._freed)
|
|
694
|
-
return Align.Auto;
|
|
695
|
-
return yg.ygNodeStyleGetAlignSelf(this.ptr);
|
|
696
|
-
}
|
|
697
|
-
setPositionType(positionType) {
|
|
698
|
-
if (this._freed)
|
|
699
|
-
return;
|
|
700
|
-
yg.ygNodeStyleSetPositionType(this.ptr, positionType);
|
|
701
|
-
}
|
|
702
|
-
getPositionType() {
|
|
703
|
-
if (this._freed)
|
|
704
|
-
return PositionType.Static;
|
|
705
|
-
return yg.ygNodeStyleGetPositionType(this.ptr);
|
|
706
|
-
}
|
|
707
|
-
setFlexWrap(flexWrap) {
|
|
708
|
-
if (this._freed)
|
|
709
|
-
return;
|
|
710
|
-
yg.ygNodeStyleSetFlexWrap(this.ptr, flexWrap);
|
|
711
|
-
}
|
|
712
|
-
getFlexWrap() {
|
|
713
|
-
if (this._freed)
|
|
714
|
-
return Wrap.NoWrap;
|
|
715
|
-
return yg.ygNodeStyleGetFlexWrap(this.ptr);
|
|
716
|
-
}
|
|
717
|
-
setOverflow(overflow) {
|
|
718
|
-
if (this._freed)
|
|
719
|
-
return;
|
|
720
|
-
yg.ygNodeStyleSetOverflow(this.ptr, overflow);
|
|
721
|
-
}
|
|
722
|
-
getOverflow() {
|
|
723
|
-
if (this._freed)
|
|
724
|
-
return Overflow.Visible;
|
|
725
|
-
return yg.ygNodeStyleGetOverflow(this.ptr);
|
|
726
|
-
}
|
|
727
|
-
setDisplay(display) {
|
|
728
|
-
if (this._freed)
|
|
729
|
-
return;
|
|
730
|
-
yg.ygNodeStyleSetDisplay(this.ptr, display);
|
|
731
|
-
}
|
|
732
|
-
getDisplay() {
|
|
733
|
-
if (this._freed)
|
|
734
|
-
return Display.Flex;
|
|
735
|
-
return yg.ygNodeStyleGetDisplay(this.ptr);
|
|
736
|
-
}
|
|
737
|
-
setBoxSizing(boxSizing) {
|
|
738
|
-
if (this._freed)
|
|
739
|
-
return;
|
|
740
|
-
yg.ygNodeStyleSetBoxSizing(this.ptr, boxSizing);
|
|
741
|
-
}
|
|
742
|
-
getBoxSizing() {
|
|
743
|
-
if (this._freed)
|
|
744
|
-
return BoxSizing.BorderBox;
|
|
745
|
-
return yg.ygNodeStyleGetBoxSizing(this.ptr);
|
|
746
|
-
}
|
|
747
|
-
setFlex(flex) {
|
|
748
|
-
if (this._freed)
|
|
749
|
-
return;
|
|
750
|
-
yg.ygNodeStyleSetFlex(this.ptr, flex);
|
|
751
|
-
}
|
|
752
|
-
getFlex() {
|
|
753
|
-
if (this._freed)
|
|
754
|
-
return NaN;
|
|
755
|
-
return yg.ygNodeStyleGetFlex(this.ptr);
|
|
756
|
-
}
|
|
757
|
-
setFlexGrow(flexGrow) {
|
|
758
|
-
if (this._freed)
|
|
759
|
-
return;
|
|
760
|
-
yg.ygNodeStyleSetFlexGrow(this.ptr, flexGrow);
|
|
761
|
-
}
|
|
762
|
-
getFlexGrow() {
|
|
763
|
-
if (this._freed)
|
|
764
|
-
return NaN;
|
|
765
|
-
return yg.ygNodeStyleGetFlexGrow(this.ptr);
|
|
766
|
-
}
|
|
767
|
-
setFlexShrink(flexShrink) {
|
|
768
|
-
if (this._freed)
|
|
769
|
-
return;
|
|
770
|
-
yg.ygNodeStyleSetFlexShrink(this.ptr, flexShrink);
|
|
771
|
-
}
|
|
772
|
-
getFlexShrink() {
|
|
773
|
-
if (this._freed)
|
|
774
|
-
return NaN;
|
|
775
|
-
return yg.ygNodeStyleGetFlexShrink(this.ptr);
|
|
776
|
-
}
|
|
777
|
-
setFlexBasis(flexBasis) {
|
|
778
|
-
if (this._freed)
|
|
779
|
-
return;
|
|
780
|
-
const { unit, asNumber } = parseValue(flexBasis);
|
|
781
|
-
if (unit === Unit.Auto) {
|
|
782
|
-
yg.ygNodeStyleSetFlexBasisAuto(this.ptr);
|
|
783
|
-
} else if (unit === Unit.Percent) {
|
|
784
|
-
yg.ygNodeStyleSetFlexBasisPercent(this.ptr, asNumber);
|
|
785
|
-
} else if (unit === Unit.Point && asNumber !== undefined) {
|
|
786
|
-
yg.ygNodeStyleSetFlexBasis(this.ptr, asNumber);
|
|
787
|
-
}
|
|
788
|
-
}
|
|
789
|
-
setFlexBasisPercent(flexBasis) {
|
|
790
|
-
if (this._freed)
|
|
791
|
-
return;
|
|
792
|
-
if (flexBasis !== undefined) {
|
|
793
|
-
yg.ygNodeStyleSetFlexBasisPercent(this.ptr, flexBasis);
|
|
794
|
-
}
|
|
795
|
-
}
|
|
796
|
-
setFlexBasisAuto() {
|
|
797
|
-
if (this._freed)
|
|
798
|
-
return;
|
|
799
|
-
yg.ygNodeStyleSetFlexBasisAuto(this.ptr);
|
|
800
|
-
}
|
|
801
|
-
setPosition(edge, position) {
|
|
802
|
-
if (this._freed)
|
|
803
|
-
return;
|
|
804
|
-
const { unit, asNumber } = parseValue(position);
|
|
805
|
-
if (unit === Unit.Percent) {
|
|
806
|
-
yg.ygNodeStyleSetPositionPercent(this.ptr, edge, asNumber);
|
|
807
|
-
} else if (unit === Unit.Point && asNumber !== undefined) {
|
|
808
|
-
yg.ygNodeStyleSetPosition(this.ptr, edge, asNumber);
|
|
809
|
-
}
|
|
810
|
-
}
|
|
811
|
-
setPositionPercent(edge, position) {
|
|
812
|
-
if (this._freed)
|
|
813
|
-
return;
|
|
814
|
-
if (position !== undefined) {
|
|
815
|
-
yg.ygNodeStyleSetPositionPercent(this.ptr, edge, position);
|
|
816
|
-
}
|
|
817
|
-
}
|
|
818
|
-
setPositionAuto(edge) {
|
|
819
|
-
if (this._freed)
|
|
820
|
-
return;
|
|
821
|
-
yg.ygNodeStyleSetPositionAuto(this.ptr, edge);
|
|
822
|
-
}
|
|
823
|
-
setMargin(edge, margin) {
|
|
824
|
-
if (this._freed)
|
|
825
|
-
return;
|
|
826
|
-
const { unit, asNumber } = parseValue(margin);
|
|
827
|
-
if (unit === Unit.Auto) {
|
|
828
|
-
yg.ygNodeStyleSetMarginAuto(this.ptr, edge);
|
|
829
|
-
} else if (unit === Unit.Percent) {
|
|
830
|
-
yg.ygNodeStyleSetMarginPercent(this.ptr, edge, asNumber);
|
|
831
|
-
} else if (unit === Unit.Point && asNumber !== undefined) {
|
|
832
|
-
yg.ygNodeStyleSetMargin(this.ptr, edge, asNumber);
|
|
833
|
-
}
|
|
834
|
-
}
|
|
835
|
-
setMarginPercent(edge, margin) {
|
|
836
|
-
if (this._freed)
|
|
837
|
-
return;
|
|
838
|
-
if (margin !== undefined) {
|
|
839
|
-
yg.ygNodeStyleSetMarginPercent(this.ptr, edge, margin);
|
|
840
|
-
}
|
|
841
|
-
}
|
|
842
|
-
setMarginAuto(edge) {
|
|
843
|
-
if (this._freed)
|
|
844
|
-
return;
|
|
845
|
-
yg.ygNodeStyleSetMarginAuto(this.ptr, edge);
|
|
846
|
-
}
|
|
847
|
-
setPadding(edge, padding) {
|
|
848
|
-
if (this._freed)
|
|
849
|
-
return;
|
|
850
|
-
const { unit, asNumber } = parseValue(padding);
|
|
851
|
-
if (unit === Unit.Percent) {
|
|
852
|
-
yg.ygNodeStyleSetPaddingPercent(this.ptr, edge, asNumber);
|
|
853
|
-
} else if (unit === Unit.Point && asNumber !== undefined) {
|
|
854
|
-
yg.ygNodeStyleSetPadding(this.ptr, edge, asNumber);
|
|
855
|
-
}
|
|
856
|
-
}
|
|
857
|
-
setPaddingPercent(edge, padding) {
|
|
858
|
-
if (this._freed)
|
|
859
|
-
return;
|
|
860
|
-
if (padding !== undefined) {
|
|
861
|
-
yg.ygNodeStyleSetPaddingPercent(this.ptr, edge, padding);
|
|
862
|
-
}
|
|
863
|
-
}
|
|
864
|
-
setBorder(edge, border) {
|
|
865
|
-
if (this._freed)
|
|
866
|
-
return;
|
|
867
|
-
if (border !== undefined) {
|
|
868
|
-
yg.ygNodeStyleSetBorder(this.ptr, edge, border);
|
|
869
|
-
}
|
|
870
|
-
}
|
|
871
|
-
getBorder(edge) {
|
|
872
|
-
if (this._freed)
|
|
873
|
-
return NaN;
|
|
874
|
-
return yg.ygNodeStyleGetBorder(this.ptr, edge);
|
|
875
|
-
}
|
|
876
|
-
setGap(gutter, gap) {
|
|
877
|
-
if (this._freed)
|
|
878
|
-
return;
|
|
879
|
-
const { unit, asNumber } = parseValue(gap);
|
|
880
|
-
if (unit === Unit.Percent) {
|
|
881
|
-
yg.ygNodeStyleSetGapPercent(this.ptr, gutter, asNumber);
|
|
882
|
-
} else if (unit === Unit.Point && asNumber !== undefined) {
|
|
883
|
-
yg.ygNodeStyleSetGap(this.ptr, gutter, asNumber);
|
|
884
|
-
}
|
|
885
|
-
}
|
|
886
|
-
setGapPercent(gutter, gap) {
|
|
887
|
-
if (this._freed)
|
|
888
|
-
return;
|
|
889
|
-
if (gap !== undefined) {
|
|
890
|
-
yg.ygNodeStyleSetGapPercent(this.ptr, gutter, gap);
|
|
891
|
-
}
|
|
892
|
-
}
|
|
893
|
-
setWidth(width) {
|
|
894
|
-
if (this._freed)
|
|
895
|
-
return;
|
|
896
|
-
const { unit, asNumber } = parseValue(width);
|
|
897
|
-
if (unit === Unit.Auto) {
|
|
898
|
-
yg.ygNodeStyleSetWidthAuto(this.ptr);
|
|
899
|
-
} else if (unit === Unit.Percent) {
|
|
900
|
-
yg.ygNodeStyleSetWidthPercent(this.ptr, asNumber);
|
|
901
|
-
} else if (unit === Unit.Point && asNumber !== undefined) {
|
|
902
|
-
yg.ygNodeStyleSetWidth(this.ptr, asNumber);
|
|
903
|
-
}
|
|
904
|
-
}
|
|
905
|
-
setWidthPercent(width) {
|
|
906
|
-
if (this._freed)
|
|
907
|
-
return;
|
|
908
|
-
if (width !== undefined) {
|
|
909
|
-
yg.ygNodeStyleSetWidthPercent(this.ptr, width);
|
|
910
|
-
}
|
|
911
|
-
}
|
|
912
|
-
setWidthAuto() {
|
|
913
|
-
if (this._freed)
|
|
914
|
-
return;
|
|
915
|
-
yg.ygNodeStyleSetWidthAuto(this.ptr);
|
|
916
|
-
}
|
|
917
|
-
setHeight(height) {
|
|
918
|
-
if (this._freed)
|
|
919
|
-
return;
|
|
920
|
-
const { unit, asNumber } = parseValue(height);
|
|
921
|
-
if (unit === Unit.Auto) {
|
|
922
|
-
yg.ygNodeStyleSetHeightAuto(this.ptr);
|
|
923
|
-
} else if (unit === Unit.Percent) {
|
|
924
|
-
yg.ygNodeStyleSetHeightPercent(this.ptr, asNumber);
|
|
925
|
-
} else if (unit === Unit.Point && asNumber !== undefined) {
|
|
926
|
-
yg.ygNodeStyleSetHeight(this.ptr, asNumber);
|
|
927
|
-
}
|
|
928
|
-
}
|
|
929
|
-
setHeightPercent(height) {
|
|
930
|
-
if (this._freed)
|
|
931
|
-
return;
|
|
932
|
-
if (height !== undefined) {
|
|
933
|
-
yg.ygNodeStyleSetHeightPercent(this.ptr, height);
|
|
934
|
-
}
|
|
935
|
-
}
|
|
936
|
-
setHeightAuto() {
|
|
937
|
-
if (this._freed)
|
|
938
|
-
return;
|
|
939
|
-
yg.ygNodeStyleSetHeightAuto(this.ptr);
|
|
940
|
-
}
|
|
941
|
-
setMinWidth(minWidth) {
|
|
942
|
-
if (this._freed)
|
|
943
|
-
return;
|
|
944
|
-
const { unit, asNumber } = parseValue(minWidth);
|
|
945
|
-
if (unit === Unit.Percent) {
|
|
946
|
-
yg.ygNodeStyleSetMinWidthPercent(this.ptr, asNumber);
|
|
947
|
-
} else if (unit === Unit.Point && asNumber !== undefined) {
|
|
948
|
-
yg.ygNodeStyleSetMinWidth(this.ptr, asNumber);
|
|
949
|
-
}
|
|
950
|
-
}
|
|
951
|
-
setMinWidthPercent(minWidth) {
|
|
952
|
-
if (this._freed)
|
|
953
|
-
return;
|
|
954
|
-
if (minWidth !== undefined) {
|
|
955
|
-
yg.ygNodeStyleSetMinWidthPercent(this.ptr, minWidth);
|
|
956
|
-
}
|
|
957
|
-
}
|
|
958
|
-
setMinHeight(minHeight) {
|
|
959
|
-
if (this._freed)
|
|
960
|
-
return;
|
|
961
|
-
const { unit, asNumber } = parseValue(minHeight);
|
|
962
|
-
if (unit === Unit.Percent) {
|
|
963
|
-
yg.ygNodeStyleSetMinHeightPercent(this.ptr, asNumber);
|
|
964
|
-
} else if (unit === Unit.Point && asNumber !== undefined) {
|
|
965
|
-
yg.ygNodeStyleSetMinHeight(this.ptr, asNumber);
|
|
966
|
-
}
|
|
967
|
-
}
|
|
968
|
-
setMinHeightPercent(minHeight) {
|
|
969
|
-
if (this._freed)
|
|
970
|
-
return;
|
|
971
|
-
if (minHeight !== undefined) {
|
|
972
|
-
yg.ygNodeStyleSetMinHeightPercent(this.ptr, minHeight);
|
|
54
|
+
// ../../node_modules/yoga-layout/dist/binaries/yoga-wasm-base64-esm.js
|
|
55
|
+
var loadYoga = (() => {
|
|
56
|
+
var _scriptDir = import.meta.url;
|
|
57
|
+
return function(loadYoga2) {
|
|
58
|
+
loadYoga2 = loadYoga2 || {};
|
|
59
|
+
var h;
|
|
60
|
+
h || (h = typeof loadYoga2 !== "undefined" ? loadYoga2 : {});
|
|
61
|
+
var aa, ca;
|
|
62
|
+
h.ready = new Promise(function(a, b) {
|
|
63
|
+
aa = a;
|
|
64
|
+
ca = b;
|
|
65
|
+
});
|
|
66
|
+
var da = Object.assign({}, h), q = "";
|
|
67
|
+
typeof document != "undefined" && document.currentScript && (q = document.currentScript.src);
|
|
68
|
+
_scriptDir && (q = _scriptDir);
|
|
69
|
+
q.indexOf("blob:") !== 0 ? q = q.substr(0, q.replace(/[?#].*/, "").lastIndexOf("/") + 1) : q = "";
|
|
70
|
+
var ea = h.print || console.log.bind(console), v = h.printErr || console.warn.bind(console);
|
|
71
|
+
Object.assign(h, da);
|
|
72
|
+
da = null;
|
|
73
|
+
var w;
|
|
74
|
+
h.wasmBinary && (w = h.wasmBinary);
|
|
75
|
+
var noExitRuntime = h.noExitRuntime || true;
|
|
76
|
+
typeof WebAssembly != "object" && x("no native wasm support detected");
|
|
77
|
+
var fa, ha = false;
|
|
78
|
+
function z(a, b, c) {
|
|
79
|
+
c = b + c;
|
|
80
|
+
for (var d = "";!(b >= c); ) {
|
|
81
|
+
var e = a[b++];
|
|
82
|
+
if (!e)
|
|
83
|
+
break;
|
|
84
|
+
if (e & 128) {
|
|
85
|
+
var f = a[b++] & 63;
|
|
86
|
+
if ((e & 224) == 192)
|
|
87
|
+
d += String.fromCharCode((e & 31) << 6 | f);
|
|
88
|
+
else {
|
|
89
|
+
var g = a[b++] & 63;
|
|
90
|
+
e = (e & 240) == 224 ? (e & 15) << 12 | f << 6 | g : (e & 7) << 18 | f << 12 | g << 6 | a[b++] & 63;
|
|
91
|
+
65536 > e ? d += String.fromCharCode(e) : (e -= 65536, d += String.fromCharCode(55296 | e >> 10, 56320 | e & 1023));
|
|
92
|
+
}
|
|
93
|
+
} else
|
|
94
|
+
d += String.fromCharCode(e);
|
|
95
|
+
}
|
|
96
|
+
return d;
|
|
97
|
+
}
|
|
98
|
+
var ia, ja, A, C, ka, D, E, la, ma;
|
|
99
|
+
function na() {
|
|
100
|
+
var a = fa.buffer;
|
|
101
|
+
ia = a;
|
|
102
|
+
h.HEAP8 = ja = new Int8Array(a);
|
|
103
|
+
h.HEAP16 = C = new Int16Array(a);
|
|
104
|
+
h.HEAP32 = D = new Int32Array(a);
|
|
105
|
+
h.HEAPU8 = A = new Uint8Array(a);
|
|
106
|
+
h.HEAPU16 = ka = new Uint16Array(a);
|
|
107
|
+
h.HEAPU32 = E = new Uint32Array(a);
|
|
108
|
+
h.HEAPF32 = la = new Float32Array(a);
|
|
109
|
+
h.HEAPF64 = ma = new Float64Array(a);
|
|
110
|
+
}
|
|
111
|
+
var oa, pa = [], qa = [], ra = [];
|
|
112
|
+
function sa() {
|
|
113
|
+
var a = h.preRun.shift();
|
|
114
|
+
pa.unshift(a);
|
|
115
|
+
}
|
|
116
|
+
var F = 0, ta = null, G = null;
|
|
117
|
+
function x(a) {
|
|
118
|
+
if (h.onAbort)
|
|
119
|
+
h.onAbort(a);
|
|
120
|
+
a = "Aborted(" + a + ")";
|
|
121
|
+
v(a);
|
|
122
|
+
ha = true;
|
|
123
|
+
a = new WebAssembly.RuntimeError(a + ". Build with -sASSERTIONS for more info.");
|
|
124
|
+
ca(a);
|
|
125
|
+
throw a;
|
|
126
|
+
}
|
|
127
|
+
function ua(a) {
|
|
128
|
+
return a.startsWith("data:application/octet-stream;base64,");
|
|
129
|
+
}
|
|
130
|
+
var H;
|
|
131
|
+
H = "data:application/octet-stream;base64,AGFzbQEAAAABugM3YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gBH9/f30BfWADf398AGAAAGAEf39/fwBgAX8BfGACf38BfGAFf39/f38Bf2AAAX9gA39/fwF9YAZ/f31/fX8AYAV/f39/fwBgAn9/AX1gBX9/f319AX1gAX8BfWADf35/AX5gB39/f39/f38AYAZ/f39/f38AYAR/f39/AX9gBn9/f319fQF9YAR/f31/AGADf399AX1gBn98f39/fwF/YAR/fHx/AGACf30AYAh/f39/f39/fwBgDX9/f39/f39/f39/f38AYAp/f39/f39/f39/AGAFf39/f38BfGAEfHx/fwF9YA1/fX1/f399fX9/f39/AX9gB39/f319f38AYAJ+fwF/YAN/fX0BfWABfAF8YAN/fHwAYAR/f319AGAHf39/fX19fQF9YA1/fX99f31/fX19fX1/AX9gC39/f39/f399fX19AX9gCH9/f39/f319AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfGAEf39/fABgA39/fQBgBn9/fX99fwF/ArUBHgFhAWEAHwFhAWIAAwFhAWMACQFhAWQAFgFhAWUAEQFhAWYAIAFhAWcAAAFhAWgAIQFhAWkAAwFhAWoAAAFhAWsAFwFhAWwACgFhAW0ABQFhAW4AAwFhAW8AAQFhAXAAFwFhAXEABgFhAXIAAAFhAXMAIgFhAXQACgFhAXUADQFhAXYAFgFhAXcAAgFhAXgAAwFhAXkAGAFhAXoAAgFhAUEAAQFhAUIAEQFhAUMAAQFhAUQAAAOiAqACAgMSBwcACRkDAAoRBgYKEwAPDxMBBiMTCgcHGgMUASQFJRQHAwMKCgMmAQYYDxobFAAKBw8KBwMDAgkCAAAFGwACBwIHBgIDAQMIDAABKAkHBQURACkZASoAAAIrLAIALQcHBy4HLwkFCgMCMA0xAgMJAgACAQYKAQIBBQEACQIFAQEABQAODQ0GFQIBHBUGAgkCEAAAAAUyDzMMBQYINAUCAwUODg41AgMCAgIDBgICNgIBDAwMAQsLCwsLCx0CAAIAAAABABABBQICAQMCEgMMCwEBAQEBAQsLAQICAwICAgICAgIDAgIICAEICAgEBAQEBAQEBAQABAQABAQEBAAE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GiABQQA2AvADIAFCADcC6AMgAigC7AMiAyACKALoAyIERwRAIAMgBGsiBEEASA0FIAEgBBAeIgM2AuwDIAEgAzYC6AMgASADIARqNgLwAyACKALoAyIEIAIoAuwDIghHBEADQCADIAQoAgA2AgAgA0EEaiEDIARBBGoiBCAIRw0ACwsgASADNgLsAwsgASACKQL0AzcC9AMgASACKAKEBDYChAQgASACKQL8AzcC/AMgAUEANgLkAwsgBSABNgIAIAEgADYC5AMLIAZBAWohBiAFQQRqIgUgB0cNAAsLDwsQAgALUAACQAJAAkACQAJAIAIOBAQAAQIDCyAAIAEgAUEwahBDDwsgACABIAFBMGogAxBEDwsgACABIAFBMGoQQg8LECQACyAAIAEgAUEwaiADEEULcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QdwlaigCACACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwt5AgF/AX0jAEEQayIDJAAgA0EIaiAAIAFBAnRB7CVqKAIAIAIQU0MAAMB/IQQCQAJAAkAgAy0ADEEBaw4CAAECCyADKgIIIQQMAQsgAyoCCEMAAAAAlEMK1yM8lCEECyADQRBqJAAgBEMAAAAAl0MAAAAAIAQgBFsbC1QAAkACQAJAAkACQCACDgQEAAECAwsgACABIAFBwgBqEEMPCyAAIAEgAUHCAGogAxBEDwsgACABIAFBwgBqEEIPCxAkAAsgACABIAFBwgBqIAMQRQsvACAAIAJFQQF0IgIgASADEGAgACACIAEQS5IgACACIAEgAxB/IAAgAiABEFKSkgvOAQIDfwJ9IwBBEGsiAyQAQQEhBCADQQhqIABB/ABqIgUgACABQQF0akH2AGoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyADQRBqJAALzgECA38CfSMAQRBrIgMkAEEBIQQgA0EIaiAAQfwAaiIFIAAgAUEBdGpB8gBqIgEvAQAQHwJAAkAgAyoCCCIHIAIqAgAiBlwEQCAHIAdbBEAgAi0ABCECDAILIAYgBlwhBAsgAi0ABCECIARFDQAgAy0ADCACQf8BcUYNAQsgBSABIAYgAhA5A0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsgA0EQaiQACwoAIABBMGtBCkkLBQAQAgALBAAgAAsUACAABEAgACAAKAIAKAIEEQAACwsrAQF/IAAoAgwiAQRAIAEQIwsgACgCACIBBEAgACABNgIEIAEQIwsgABAjC4EEAQN/IwBBEGsiAyQAIABCADcCBCAAQcEgOwAVIABCADcCDCAAQoCAgICAgIACNwIYIAAgAC0AF0HgAXE6ABcgACAALQAAQeABcUEFcjoAACAAIAAtABRBgAFxOgAUIABBIGpBAEHOABAqGiAAQgA3AXIgAEGEgBA2AW4gAEEANgF6IABCADcCgAEgAEIANwKIASAAQgA3ApABIABCADcCoAEgAEKAgICAgICA4P8ANwKYASAAQQA6AKgBIABBrAFqQQBBxAEQKhogAEHwAmohBCAAQbABaiECA0AgAkKAgID8i4CAwL9/NwIQIAJCgYCAgBA3AgggAkKAgID8i4CAwL9/NwIAIAJBGGoiAiAERw0ACyAAQoCAgPyLgIDAv383AvACIABCgICA/IuAgMC/fzcCgAMgAEKBgICAEDcC+AIgAEKAgID+h4CA4P8ANwKUAyAAQoCAgP6HgIDg/wA3AowDIABBiANqIgIgAi0AAEH4AXE6AAAgAEGcA2pBAEHYABAqGiAAQQA6AIQEIABBgICA/gc2AoAEIABBADoA/AMgAEGAgID+BzYC+AMgACABNgL0AyABBEAgAS0ACEEBcQRAIAAgAC0AFEHzAXFBCHI6ABQgACAALwAVQfD/A3FBBHI7ABULIANBEGokACAADwsgA0GiGjYCACADEHIQJAALMwAgACABQQJ0QfwlaigCAEECdGoqApQDIABBFGoiACABQQEgAhAiIAAgAUEBIAIQIZKSC44DAQp/IwBB0AJrIgEkACAAKALoAyIDIAAoAuwDIgVHBEAgAUGMAmohBiABQeABaiEHIAFBIGohCCABQRxqIQkgAUEQaiEEA0AgAygCACICLQAXQRB0QYCAMHFBgIAgRgRAIAFBCGpBAEHEAhAqGiABQYCAgP4HNgIMIARBADoACCAEQgA3AgAgCUEAQcQBECoaIAghAANAIABCgICA/IuAgMC/fzcCECAAQoGAgIAQNwIIIABCgICA/IuAgMC/fzcCACAAQRhqIgAgB0cNAAsgAUKAgID8i4CAwL9/NwPwASABQoGAgIAQNwPoASABQoCAgPyLgIDAv383A+ABIAFCgICA/oeAgOD/ADcChAIgAUKAgID+h4CA4P8ANwL8ASABIAEtAPgBQfgBcToA+AEgBkEAQcAAECoaIAJBmAFqIAFBCGpBxAIQKxogAkIANwKMAyACIAItAAAiAEEBciIKQfsBcSAKIABBBHEbOgAAIAIQTyACEF4LIANBBGoiAyAFRw0ACwsgAUHQAmokAAtMAQF/QQEhAQJAIAAtAB5BB3ENACAALQAiQQdxDQAgAC0ALkEHcQ0AIAAtACpBB3ENACAALQAmQQdxDQAgAC0AKEEHcUEARyEBCyABC3YCAX8BfSMAQRBrIgQkACAEQQhqIAAgAUECdEHcJWooAgAgAhBQQwAAwH8hBQJAAkACQCAELQAMQQFrDgIAAQILIAQqAgghBQwBCyAEKgIIIAOUQwrXIzyUIQULIARBEGokACAFQwAAAACXQwAAAAAgBSAFWxsLogQCBn8CfgJ/QQghBAJAAkAgAEFHSw0AA0BBCCAEIARBCE0bIQRB6DopAwAiBwJ/QQggAEEDakF8cSAAQQhNGyIAQf8ATQRAIABBA3ZBAWsMAQsgAEEdIABnIgFrdkEEcyABQQJ0a0HuAGogAEH/H00NABpBPyAAQR4gAWt2QQJzIAFBAXRrQccAaiIBIAFBP08bCyIDrYgiCFBFBEADQCAIIAh6IgiIIQcCfiADIAinaiIDQQR0IgJB6DJqKAIAIgEgAkHgMmoiBkcEQCABIAQgABBjIgUNBSABKAIEIgUgASgCCDYCCCABKAIIIAU2AgQgASAGNgIIIAEgAkHkMmoiAigCADYCBCACIAE2AgAgASgCBCABNgIIIANBAWohAyAHQgGIDAELQeg6Qeg6KQMAQn4gA62JgzcDACAHQgGFCyIIQgBSDQALQeg6KQMAIQcLAkAgB1BFBEBBPyAHeadrIgZBBHQiAkHoMmooAgAhAQJAIAdCgICAgARUDQBB4wAhAyABIAJB4DJqIgJGDQADQCADRQ0BIAEgBCAAEGMiBQ0FIANBAWshAyABKAIIIgEgAkcNAAsgAiEBCyAAQTBqEGQNASABRQ0EIAEgBkEEdEHgMmoiAkYNBANAIAEgBCAAEGMiBQ0EIAEoAggiASACRw0ACwwECyAAQTBqEGRFDQMLQQAhBSAEIARBAWtxDQEgAEFHTQ0ACwsgBQwBC0EACwtwAgF/AX0jAEEQayIEJAAgBEEIaiAAIAFBAnRB7CVqKAIAIAIQKEMAAMB/IQUCQAJAAkAgBC0ADEEBaw4CAAECCyAEKgIIIQUMAQsgBCoCCCADlEMK1yM8lCEFCyAEQRBqJAAgBUMAAAAAIAUgBVsbC6ADAQN/IAEgAEEEaiIEakEBa0EAIAFrcSIFIAJqIAAgACgCACIBakEEa00EfyAAKAIEIgMgACgCCDYCCCAAKAIIIAM2AgQgBCAFRwRAIAAgAEEEaygCAEF+cWsiAyAFIARrIgQgAygCAGoiBTYCACAFQXxxIANqQQRrIAU2AgAgACAEaiIAIAEgBGsiATYCAAsCQCABIAJBGGpPBEAgACACakEIaiIDIAEgAmtBCGsiATYCACABQXxxIANqQQRrIAFBAXI2AgAgAwJ/IAMoAgBBCGsiAUH/AE0EQCABQQN2QQFrDAELIAFnIQQgAUEdIARrdkEEcyAEQQJ0a0HuAGogAUH/H00NABpBPyABQR4gBGt2QQJzIARBAXRrQccAaiIBIAFBP08bCyIBQQR0IgRB4DJqNgIEIAMgBEHoMmoiBCgCADYCCCAEIAM2AgAgAygCCCADNgIEQeg6Qeg6KQMAQgEgAa2GhDcDACAAIAJBCGoiATYCACABQXxxIABqQQRrIAE2AgAMAQsgACABakEEayABNgIACyAAQQRqBSADCwvmAwEFfwJ/QbAwKAIAIgEgAEEHakF4cSIDaiECAkAgA0EAIAEgAk8bDQAgAj8AQRB0SwRAIAIQFkUNAQtBsDAgAjYCACABDAELQfw7QTA2AgBBfwsiAkF/RwRAIAAgAmoiA0EQayIBQRA2AgwgAUEQNgIAAkACf0HgOigCACIABH8gACgCCAVBAAsgAkYEQCACIAJBBGsoAgBBfnFrIgRBBGsoAgAhBSAAIAM2AghBcCAEIAVBfnFrIgAgACgCAGpBBGstAABBAXFFDQEaIAAoAgQiAyAAKAIINgIIIAAoAgggAzYCBCAAIAEgAGsiATYCAAwCCyACQRA2AgwgAkEQNgIAIAIgAzYCCCACIAA2AgRB4DogAjYCAEEQCyACaiIAIAEgAGsiATYCAAsgAUF8cSAAakEEayABQQFyNgIAIAACfyAAKAIAQQhrIgFB/wBNBEAgAUEDdkEBawwBCyABQR0gAWciA2t2QQRzIANBAnRrQe4AaiABQf8fTQ0AGkE/IAFBHiADa3ZBAnMgA0EBdGtBxwBqIgEgAUE/TxsLIgFBBHQiA0HgMmo2AgQgACADQegyaiIDKAIANgIIIAMgADYCACAAKAIIIAA2AgRB6DpB6DopAwBCASABrYaENwMACyACQX9HC80BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQSBqIgEvAQAQHwJAAkAgAyoCCCIHIAIqAgAiBlwEQCAHIAdbBEAgAi0ABCECDAILIAYgBlwhBAsgAi0ABCECIARFDQAgAy0ADCACQf8BcUYNAQsgBSABIAYgAhA5A0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsgA0EQaiQAC0ABAX8CQEGsOy0AAEEBcQRAQag7KAIAIQIMAQtBAUGAJxAMIQJBrDtBAToAAEGoOyACNgIACyACIAAgAUEAEBMLzQECA38CfSMAQRBrIgMkAEEBIQQgA0EIaiAAQfwAaiIFIAAgAUEBdGpBMmoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyADQRBqJAALDwAgASAAKAIAaiACOQMACw0AIAEgACgCAGorAwALCwAgAARAIAAQIwsLxwECBH8CfSMAQRBrIgIkACACQQhqIABB/ABqIgQgAEEeaiIFLwEAEB9BASEDAkACQCACKgIIIgcgASoCACIGXARAIAcgB1sEQCABLQAEIQEMAgsgBiAGXCEDCyABLQAEIQEgA0UNACACLQAMIAFB/wFxRg0BCyAEIAUgBiABEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyACQRBqJAALlgMCA34CfyAAvSICQjSIp0H/D3EiBEH/D0YEQCAARAAAAAAAAPA/oiIAIACjDwsgAkIBhiIBQoCAgICAgIDw/wBYBEAgAEQAAAAAAAAAAKIgACABQoCAgICAgIDw/wBRGw8LAn4gBEUEQEEAIQQgAkIMhiIBQgBZBEADQCAEQQFrIQQgAUIBhiIBQgBZDQALCyACQQEgBGuthgwBCyACQv////////8Hg0KAgICAgICACIQLIQEgBEH/B0oEQANAAkAgAUKAgICAgICACH0iA0IAUw0AIAMiAUIAUg0AIABEAAAAAAAAAACiDwsgAUIBhiEBIARBAWsiBEH/B0oNAAtB/wchBAsCQCABQoCAgICAgIAIfSIDQgBTDQAgAyIBQgBSDQAgAEQAAAAAAAAAAKIPCyABQv////////8HWARAA0AgBEEBayEEIAFCgICAgICAgARUIQUgAUIBhiEBIAUNAAsLIAJCgICAgICAgICAf4MgAUKAgICAgICACH0gBK1CNIaEIAFBASAEa62IIARBAEobhL8LiwEBA38DQCAAQQR0IgFB5DJqIAFB4DJqIgI2AgAgAUHoMmogAjYCACAAQQFqIgBBwABHDQALQTAQZBpBmDtBBjYCAEGcO0EANgIAEJwBQZw7Qcg7KAIANgIAQcg7QZg7NgIAQcw7QcMBNgIAQdA7QQA2AgAQjwFB0DtByDsoAgA2AgBByDtBzDs2AgALjwEBAn8jAEEQayIEJAACfUMAAAAAIAAvABVBgOAAcUUNABogBEEIaiAAQRRqIgBBASACQQJGQQF0IAFB/gFxQQJHGyIFIAIQNgJAIAQtAAxFDQAgBEEIaiAAIAUgAhA2IAQtAAxBA0YNACAAIAEgAiADEIEBDAELIAAgASACIAMQgAGMCyEDIARBEGokACADC4QBAQJ/AkACQCAAKALoAyICIAAoAuwDIgNGDQADQCACKAIAIAFGDQEgAkEEaiICIANHDQALDAELIAIgA0YNACABLQAXQRB0QYCAMHFBgIAgRgRAIAAgACgC4ANBAWs2AuADCyACIAJBBGoiASADIAFrEDMaIAAgA0EEazYC7ANBAQ8LQQALCwBByDEgACABEEkLPAAgAEUEQCACQQVHQQAgAhtFBEBBuDAgAyAEEEkaDwsgAyAEEHAaDwsgACABIAIgAyAEIAAoAgQRDQAaCyYBAX8jAEEQayIBJAAgASAANgIMQbgwQdglIAAQSRogAUEQaiQAC4cDAwN/BXwCfSAAKgKgA7siBiACoCECIAAqApwDuyIHIAGgIQggACgC9AMqAhgiC0MAAAAAXARAIAAqApADuyEJIAAqAowDIQwgACAHIAu7IgFBACAALQAAQRBxIgNBBHYiBBA0OAKcAyAAIAYgAUEAIAQQNDgCoAMgASAMuyIHohBsIgYgBmIiBEUgBplELUMc6+I2Gj9jcUUEQCAEIAZEAAAAAAAA8L+gmUQtQxzr4jYaP2NFciEFCyACIAmgIQogCCAHoCEHAn8gASAJohBsIgYgBmIiBEUEQEEAIAaZRC1DHOviNho/Yw0BGgsgBCAGRAAAAAAAAPC/oJlELUMc6+I2Gj9jRXILIQQgACAHIAEgA0EARyIDIAVxIAMgBUEBc3EQNCAIIAFBACADEDSTOAKMAyAAIAogASADIARxIAMgBEEBc3EQNCACIAFBACADEDSTOAKQAwsgACgC6AMiAyAAKALsAyIARwRAA0AgAygCACAIIAIQcyADQQRqIgMgAEcNAAsLC1UBAX0gAEEUaiIAIAEgAkECSSICIAQgBRA1IQYgACABIAIgBCAFEC0iBUMAAAAAYCADIAVecQR9IAUFIAZDAAAAAGBFBEAgAw8LIAYgAyADIAZdGwsLeAEBfwJAIAAoAgAiAgRAA0AgAUUNAiACIAEoAgQ2AgQgAiABKAIINgIIIAEoAgAhASAAKAIAIQAgAigCACICDQALCyAAIAEQPA8LAkAgAEUNACAAKAIAIgFFDQAgAEEANgIAA0AgASgCACEAIAEQIyAAIgENAAsLC5kCAgZ/AX0gAEEUaiEHQQMhBCAALQAUQQJ2QQNxIQUCQAJ/AkAgAUEBIAAoAuQDGyIIQQJGBEACQCAFQQJrDgIEAAILQQIhBAwDC0ECIQRBACAFQQFLDQEaCyAECyEGIAUhBAsgACAEIAggAyACIARBAkkiBRsQbiEKIAAgBiAIIAIgAyAFGxBuIQMgAEGcA2oiAEEBIAFBAkZBAXQiCCAFG0ECdGogCiAHIAQgASACECKSOAIAIABBAyABQQJHQQF0IgkgBRtBAnRqIAogByAEIAEgAhAhkjgCACAAIAhBASAGQQF2IgQbQQJ0aiADIAcgBiABIAIQIpI4AgAgACAJQQMgBBtBAnRqIAMgByAGIAEgAhAhkjgCAAvUAgEDfyMAQdACayIBJAAgAUEIakEAQcQCECoaIAFBADoAGCABQgA3AxAgAUGAgID+BzYCDCABQRxqQQBBxAEQKhogAUHgAWohAyABQSBqIQIDQCACQoCAgPyLgIDAv383AhAgAkKBgICAEDcCCCACQoCAgPyLgIDAv383AgAgAkEYaiICIANHDQALIAFCgICA/IuAgMC/fzcD8AEgAUKBgICAEDcD6AEgAUKAgID8i4CAwL9/NwPgASABQoCAgP6HgIDg/wA3AoQCIAFCgICA/oeAgOD/ADcC/AEgASABLQD4AUH4AXE6APgBIAFBjAJqQQBBwAAQKhogAEGYAWogAUEIakHEAhArGiAAQgA3AowDIAAgAC0AAEEBcjoAACAAEE8gACgC6AMiAiAAKALsAyIARwRAA0AgAigCABB3IAJBBGoiAiAARw0ACwsgAUHQAmokAAuuAgIKfwJ9IwBBIGsiASQAIAFBgAI7AB4gAEHuAGohByAAQfgDaiEFIABB8gBqIQggAEH2AGohCSAAQfwAaiEDQQAhAANAIAFBEGogAyAJIAFBHmogBGotAAAiAkEBdCIEaiIGLwEAEB8CQAJAIAEtABRFDQAgAUEIaiADIAYvAQAQHyABIAMgBCAIai8BABAfIAEtAAwgAS0ABEcNAAJAIAEqAggiDCAMXCIKIAEqAgAiCyALXHJFBEAgDCALk4tDF7fROF0NAQwCCyAKRSALIAtbcg0BCyABQRBqIAMgBi8BABAfDAELIAFBEGogAyAEIAdqLwEAEB8LIAUgAkEDdGoiAiABLQAUOgAEIAIgASgCEDYCAEEBIQQgACECQQEhACACRQ0ACyABQSBqJAALMgACf0EAIAAvABVBgOAAcUGAwABGDQAaQQEgABA7QwAAAABcDQAaIAAQQEMAAAAAXAsLewEBfSADIASTIgMgA1sEfUMAAAAAIABBFGoiACABIAIgBSAGEDUiByAEkyAHIAdcGyIHQ///f38gACABIAIgBSAGEC0iBSAEkyAFIAVcGyIEIAMgAyAEXhsiAyADIAddGyAHIAMgAyADXBsgAyADWyAHIAdbcRsFIAMLC98FAwR/BX0BfCAJQwAAAABdIAhDAAAAAF1yBH8gDQUgBSESIAEhEyADIRQgByERIAwqAhgiFUMAAAAAXARAIAG7IBW7IhZBAEEAEDQhEyADuyAWQQBBABA0IRQgBbsgFkEAQQAQNCESIAe7IBZBAEEAEDQhEQsCf0EAIAAgBEcNABogEiATk4tDF7fROF0gEyATXCINIBIgElxyRQ0AGkEAIBIgElsNABogDQshDAJAIAIgBkcNACAUIBRcIg0gESARXHJFBEAgESAUk4tDF7fROF0hDwwBCyARIBFbDQAgDSEPC0EBIQ5BASENAkAgDA0AIAEgCpMhAQJAIABFBEAgASABXCIAIAggCFxyRQRAQQAhDCABIAiTi0MXt9E4XUUNAgwDC0EAIQwgCCAIWw0BIAANAgwBCyAAQQJGIQwgAEECRw0AIARBAUcNACABIAhgDQECQCAIIAhcIgAgASABXHJFBEAgASAIk4tDF7fROF1FDQEMAwtBACENIAEgAVsNAkEBIQ0gAA0CC0EAIQ0MAQtBACENIAggCFwiACABIAVdRXINACAMRSABIAFcIhAgBSAFXHIgBEECR3JyDQBBASENIAEgCGANAEEAIQ0gACAQcg0AIAEgCJOLQxe30ThdIQ0LAkAgDw0AIAMgC5MhAQJAAkAgAkUEQCABIAFcIgIgCSAJXHJFBEBBACEAIAEgCZOLQxe30ThdRQ0CDAQLQQAhACAJIAlbDQEgAg0DDAELIAJBAkYhACACQQJHIAZBAUdyDQAgASAJYARADAMLIAkgCVwiACABIAFcckUEQCABIAmTi0MXt9E4XUUNAgwDC0EAIQ4gASABWw0CQQEhDiAADQIMAQsgCSAJXCICIAEgB11Fcg0AIABFIAEgAVwiBCAHIAdcciAGQQJHcnINACABIAlgDQFBACEOIAIgBHINASABIAmTi0MXt9E4XSEODAELQQAhDgsgDSAOcQsL4wEBA38jAEEQayIBJAACQAJAIAAtABRBCHFFDQBBASEDIAAvABVB8AFxQdAARg0AIAEgABAyIAEoAgQhAAJAIAEoAgAiAkUEQEEAIQMgAEUNAQsDQCACKALsAyACKALoAyICa0ECdSAATQ0DIAIgAEECdGooAgAiAC8AFSAALQAXQRB0ciIAQYDgAHFBgMAARyAAQYAecUGACkZxIgMNASABEC4gASgCBCIAIAEoAgAiAnINAAsLIAEoAggiAEUNAANAIAAoAgAhAiAAECMgAiIADQALCyABQRBqJAAgAw8LEAIAC7IBAQR/AkACQCAAKAIEIgMgACgCACIEKALsAyAEKALoAyIBa0ECdUkEQCABIANBAnRqIQIDQCACKAIAIgEtABdBEHRBgIAwcUGAgCBHDQMgASgC7AMgASgC6ANGDQJBDBAeIgIgBDYCBCACIAM2AgggAiAAKAIINgIAQQAhAyAAQQA2AgQgACABNgIAIAAgAjYCCCABIQQgASgC6AMiAiABKALsA0cNAAsLEAIACyAAEC4LC4wQAgx/B30jAEEgayINJAAgDUEIaiABEDIgDSgCCCIOIA0oAgwiDHIEQCADQQEgAxshFSAAQRRqIRQgBUEBaiEWA0ACQAJAAn8CQAJAAkACQAJAIAwgDigC7AMgDigC6AMiDmtBAnVJBEAgDiAMQQJ0aigCACILLwAVIAstABdBEHRyIgxBgIAwcUGAgBBGDQgCQAJAIAxBDHZBA3EOAwEKAAoLIAkhFyAKIRogASgC9AMtABRBBHFFBEAgACoClAMgFEECQQEQMCAUQQJBARAvkpMhFyAAKgKYAyAUQQBBARAwIBRBAEEBEC+SkyEaCyALQRRqIQ8gAS0AFEECdkEDcSEQAkACfwJAIANBAkciE0UEQEEAIQ5BAyEMAkAgEEECaw4CBAACC0ECIQwMAwtBAiEMQQAgEEEBSw0BGgsgDAshDiAQIQwLIA9BAkEBIBcQIiAPQQJBASAXECGSIR0gD0EAQQEgFxAiIRwgD0EAQQEgFxAhIRsgCyoC+AMhGAJAAkACQAJAIAstAPwDQQFrDgIBAAILIBggF5RDCtcjPJQhGAsgGEMAAAAAYEUNACAdIAsgA0EAIBcgFxAxkiEYDAELIA1BGGogDyALQTJqIhAgAxBFQwAAwH8hGCANLQAcRQ0AIA1BGGogDyAQIAMQRCANLQAcRQ0AIA1BGGogDyAQIAMQRSANLQAcQQNGDQAgDUEYaiAPIBAgAxBEIA0tABxBA0YNACALQQIgAyAAKgKUAyAUQQIgAxBLIBRBAiADEFKSkyAPQQIgAyAXEFEgD0ECIAMgFxCDAZKTIBcgFxAlIRgLIBwgG5IhHCALKgKABCEZAkACQAJAIAstAIQEQQFrDgIBAAILIBkgGpRDCtcjPJQhGQsgGUMAAAAAYEUNACAcIAsgA0EBIBogFxAxkiEZDAMLIA1BGGogDyALQTJqIhAQQwJAIA0tABxFDQAgDUEYaiAPIBAQQiANLQAcRQ0AIA1BGGogDyAQEEMgDS0AHEEDRg0AIA1BGGogDyAQEEIgDS0AHEEDRg0AIAtBACADIAAqApgDIBRBACADEEsgFEEAIAMQUpKTIA9BACADIBoQUSAPQQAgAyAaEIMBkpMgGiAXECUhGQwDC0MAAMB/IRkgGCAYXA0GIAtB/ABqIhAgC0H6AGoiEi8BABAgIhsgG1sNAwwFCyALLQAAQQhxDQggCxBPIAAgCyACIAstABRBA3EiDCAVIAwbIAQgFiAGIAsqApwDIAeSIAsqAqADIAiSIAkgChB+IBFyIQxBACERIAxBAXFFDQhBASERIAsgCy0AAEEBcjoAAAwICxACAAsgGCAYXCAZIBlcRg0BIAtB/ABqIhAgC0H6AGoiEi8BABAgIhsgG1wNASAYIBhcBEAgGSAckyAQIAsvAXoQIJQgHZIhGAwCCyAZIBlbDQELIBwgGCAdkyAQIBIvAQAQIJWSIRkLIBggGFwNASAZIBlbDQMLQQAMAQtBAQshEiALIBcgGCACQQFHIAxBAklxIBdDAAAAAF5xIBJxIhAbIBkgA0ECIBIgEBsgGSAZXCAXIBpBAEEGIAQgBSAGED0aIAsqApQDIA9BAkEBIBcQIiAPQQJBASAXECGSkiEYIAsqApgDIA9BAEEBIBcQIiAPQQBBASAXECGSkiEZC0EBIRAgCyAYIBkgA0EAQQAgFyAaQQFBASAEIAUgBhA9GiAAIAEgCyADIAxBASAXIBoQggEgACABIAsgAyAOQQAgFyAaEIIBIBFBAXFFBEAgCy0AAEEBcSEQCyABLQAUIhJBAnZBA3EhDAJAAn8CQAJAAkACQAJAAkACQAJAAkACfwJAIBNFBEBBACERQQMhDiAMQQJrDgIDDQELQQIhDkEAIAxBAUsNARoLIA4LIREgEkEEcUUNBCASQQhxRQ0BIAwhDgsgASEMIA8QXw0BDAILAkAgCy0ANEEHcQ0AIAstADhBB3ENACALLQBCQQdxDQAgDCEOIAEhDCALQUBrLwEAQQdxRQ0CDAELIAwhDgsgACEMCwJ/AkACQAJAIA5BAWsOAwABAgULIAtBmANqIQ4gC0GoA2ohE0EBIRIgDEGYA2oMAgsgC0GUA2ohDiALQZwDaiETQQIhEiAMQZQDagwBCyALQZQDaiEOIAtBpANqIRNBACESIAxBlANqCyEMIAsgEkECdGogDCoCACAOKgIAkyATKgIAkzgCnAMLIBFBAXFFDQUCQAJAIBFBAnEEQCABIQwgDxBfDQEMAgsgCy0ANEEHcQ0AIAstADhBB3ENACALLQBCQQdxDQAgASEMIAtBQGsvAQBBB3FFDQELIAAhDAsgEUEBaw4DAQIDAAsQJAALIAtBmANqIREgC0GoA2ohDkEBIRMgDEGYA2oMAgsgC0GUA2ohESALQZwDaiEOQQIhEyAMQZQDagwBCyALQZQDaiERIAtBpANqIQ5BACETIAxBlANqCyEMIAsgE0ECdGogDCoCACARKgIAkyAOKgIAkzgCnAMLIAsqAqADIRsgCyoCnAMgB0MAAAAAIA8QXxuTIRcCfQJAIAstADRBB3ENACALLQA4QQdxDQAgCy0AQkEHcQ0AIAtBQGsvAQBBB3ENAEMAAAAADAELIAgLIRogCyAXOAKcAyALIBsgGpM4AqADIBAhEQsgDUEIahAuIA0oAgwiDCANKAIIIg5yDQALCyANKAIQIgwEQANAIAwoAgAhACAMECMgACIMDQALCyANQSBqJAAgEUEBcQt2AgF/AX0jAEEQayIEJAAgBEEIaiAAIAFBAnRB7CVqKAIAIAIQUEMAAMB/IQUCQAJAAkAgBC0ADEEBaw4CAAECCyAEKgIIIQUMAQsgBCoCCCADlEMK1yM8lCEFCyAEQRBqJAAgBUMAAAAAl0MAAAAAIAUgBVsbC3gCAX8BfSMAQRBrIgQkACAEQQhqIABBAyACQQJHQQF0IAFB/gFxQQJHGyACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwt4AgF/AX0jAEEQayIEJAAgBEEIaiAAQQEgAkECRkEBdCABQf4BcUECRxsgAhA2QwAAwH8hBQJAAkACQCAELQAMQQFrDgIAAQILIAQqAgghBQwBCyAEKgIIIAOUQwrXIzyUIQULIARBEGokACAFQwAAAAAgBSAFWxsLoA0BBH8jAEEQayIJJAAgCUEIaiACQRRqIgggA0ECRkEBdEEBIARB/gFxQQJGIgobIgsgAxA2IAYgByAKGyEHAkACQAJAAkACQAJAIAktAAxFDQAgCUEIaiAIIAsgAxA2IAktAAxBA0YNACAIIAQgAyAHEIEBIABBFGogBCADEDCSIAggBCADIAcQIpIhBkEBIQMCQAJ/AkACQAJAAkAgBA4EAgMBAAcLQQIhAwwBC0EAIQMLIAMgC0YNAgJAAkAgBA4EAgIAAQYLIABBlANqIQNBAAwCCyAAQZQDaiEDQQAMAQsgAEGYA2ohA0EBCyEAIAMqAgAgAiAAQQJ0aioClAOTIAaTIQYLIAIgBEECdEHcJWooAgBBAnRqIAY4ApwDDAULIAlBCGogCCADQQJHQQF0QQMgChsiCiADEDYCQCAJLQAMRQ0AIAlBCGogCCAKIAMQNiAJLQAMQQNGDQACfwJAAkACQCAEDgQCAgABBQsgAEGUA2ohBUEADAILIABBlANqIQVBAAwBCyAAQZgDaiEFQQELIQEgBSoCACACQZQDaiIFIAFBAnRqKgIAkyAAQRRqIAQgAxAvkyAIIAQgAyAHECGTIAggBCADIAcQgAGTIQZBASEDAkACfwJAAkACQAJAIAQOBAIDAQAHC0ECIQMMAQtBACEDCyADIAtGDQICQAJAIAQOBAICAAEGCyAAQZQDaiEDQQAMAgsgAEGUA2ohA0EADAELIABBmANqIQNBAQshACADKgIAIAUgAEECdGoqAgCTIAaTIQYLIAIgBEECdEHcJWooAgBBAnRqIAY4ApwDDAULAkACQAJAIAUEQCABLQAUQQR2QQdxIgBBBUsNCEEBIAB0IgBBMnENASAAQQlxBEAgBEECdEHcJWooAgAhACAIIAQgAyAGEEEgASAAQQJ0IgBqIgEqArwDkiEGIAAgAmogAigC9AMtABRBAnEEfSAGBSAGIAEqAswDkgs4ApwDDAkLIAEgBEECdEHsJWooAgBBAnRqIgAqArwDIAggBCADIAYQYpIhBiACKAL0Ay0AFEECcUUEQCAGIAAqAswDkiEGCwJAAkACQAJAIAQOBAEBAgAICyABKgKUAyACKgKUA5MhB0ECIQMMAgsgASoCmAMgAioCmAOTIQdBASEDAkAgBA4CAgAHC0EDIQMMAQsgASoClAMgAioClAOTIQdBACEDCyACIANBAnRqIAcgBpM4ApwDDAgLIAIvABZBD3EiBUUEQCABLQAVQQR2IQULIAVBBUYEQCABLQAUQQhxRQ0CCyABLwAVQYCAA3FBgIACRgRAIAVBAmsOAgEHAwsgBUEISw0HQQEgBXRB8wNxDQYgBUECRw0CC0EAIQACfQJ/AkACQAJAAkACfwJAAkACQCAEDgQCAgABBAsgASoClAMhB0ECIQAgAUG8A2oMAgsgASoClAMhByABQcQDagwBCyABKgKYAyEHAkACQCAEDgIAAQMLQQMhACABQcADagwBC0EBIQAgAUHIA2oLIQUgByAFKgIAkyABQbwDaiIIIABBAnRqKgIAkyIHIAIoAvQDLQAUQQJxDQUaAkAgBA4EAAIDBAELQQMhACABQdADagwECxAkAAtBASEAIAFB2ANqDAILQQIhACABQcwDagwBC0EAIQAgAUHUA2oLIQUgByAFKgIAkyABIABBAnRqKgLMA5MLIAIgBEECdCIFQfwlaigCAEECdGoqApQDIAJBFGoiACAEQQEgBhAiIAAgBEEBIAYQIZKSk0MAAAA/lCAIIAVB3CVqKAIAIgVBAnRqKgIAkiAAIAQgAyAGEEGSIQYgAiAFQQJ0aiACKAL0Ay0AFEECcQR9IAYFIAYgASAFQQJ0aioCzAOSCzgCnAMMBgsgAS8AFUGAgANxQYCAAkcNBAsgASAEQQJ0QewlaigCAEECdGoiACoCvAMgCCAEIAMgBhBikiEGIAIoAvQDLQAUQQJxRQRAIAYgACoCzAOSIQYLAkACQCAEDgQBAQMAAgsgASoClAMgAioClAOTIQdBAiEDDAMLIAEqApgDIAIqApgDkyEHQQEhAwJAIAQOAgMAAQtBAyEDDAILECQACyABKgKUAyACKgKUA5MhB0EAIQMLIAIgA0ECdGogByAGkzgCnAMMAQsgBEECdEHcJWooAgAhACAIIAQgAyAGEEEgASAAQQJ0IgBqIgEqArwDkiEGIAAgAmogAigC9AMtABRBAnEEfSAGBSAGIAEqAswDkgs4ApwDCyAJQRBqJAALcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QewlaigCACACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAVCwUAEFgACzkAIABFBEBBAA8LAn8gAUGAf3FBgL8DRiABQf8ATXJFBEBB/DtBGTYCAEF/DAELIAAgAToAAEEBCwvEAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACgsMCgsCAwQFDAsMDAoLBwgJCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCwALIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LAAsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAQALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC84BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQegAaiIBLwEAEB8CQAJAIAMqAggiByACKgIAIgZcBEAgByAHWwRAIAItAAQhAgwCCyAGIAZcIQQLIAItAAQhAiAERQ0AIAMtAAwgAkH/AXFGDQELIAUgASAGIAIQOQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIANBEGokAAtdAQR/IAAoAgAhAgNAIAIsAAAiAxBXBEBBfyEEIAAgAkEBaiICNgIAIAFBzJmz5gBNBH9BfyADQTBrIgMgAUEKbCIEaiADIARB/////wdzShsFIAQLIQEMAQsLIAELrhQCEn8BfiMAQdAAayIIJAAgCCABNgJMIAhBN2ohFyAIQThqIRQCQAJAAkACQANAIAEhDSAHIA5B/////wdzSg0BIAcgDmohDgJAAkACQCANIgctAAAiCQRAA0ACQAJAIAlB/wFxIgFFBEAgByEBDAELIAFBJUcNASAH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IQEgAEIANwIEIAAgATYCACABIAA2AgQgAkEQaiQAIAALGwEBfyAABEAgACgCACIBBEAgARAjCyAAECMLC0kBAn9BBBAeIQFBIBAeIgBBADYCHCAAQoCAgICAgIDAPzcCFCAAQgA3AgwgAEEAOgAIIABBAzYCBCAAQQA2AgAgASAANgIAIAELIAAgAkEFR0EAIAIbRQRAQbgwIAMgBBBJDwsgAyAEEHALIgEBfiABIAKtIAOtQiCGhCAEIAARFQAiBUIgiKckASAFpwuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECsaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECsaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACCwQAQgALBABBAAuKBQIGfgJ/IAEgASgCAEEHakF4cSIBQRBqNgIAIAAhCSABKQMAIQMgASkDCCEGIwBBIGsiCCQAAkAgBkL///////////8AgyIEQoCAgICAgMCAPH0gBEKAgICAgIDA/8MAfVQEQCAGQgSGIANCPIiEIQQgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIARCgYCAgICAgIDAAHwhAgwCCyAEQoCAgICAgICAQH0hAiADQoCAgICAgICACFINASACIARCAYN8IQIMAQsgA1AgBEKAgICAgIDA//8AVCAEQoCAgICAgMD//wBRG0UEQCAGQgSGIANCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiAEQv///////7//wwBWDQBCACECIARCMIinIgBBkfcASQ0AIAMhAiAGQv///////z+DQoCAgICAgMAAhCIFIQcCQCAAQYH3AGsiAUHAAHEEQCACIAFBQGqthiEHQgAhAgwBCyABRQ0AIAcgAa0iBIYgAkHAACABa62IhCEHIAIgBIYhAgsgCCACNwMQIAggBzcDGAJAQYH4ACAAayIAQcAAcQRAIAUgAEFAaq2IIQNCACEFDAELIABFDQAgBUHAACAAa62GIAMgAK0iAoiEIQMgBSACiCEFCyAIIAM3AwAgCCAF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ASAAKAIAIQAgASACQQFxBH8gASgCACAAaigCAAUgAAsRCwALYQECfyMAQRBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAiABIANBAXEEfyABKAIAIABqKAIABSAACxEBAEEQEB4iACACKQMINwMIIAAgAikDADcDACACQRBqJAAgAAtjAQJ/IwBBEGsiAyQAIAEgACgCBCIEQQF1aiEBIAAoAgAhACADIAEgAiAEQQFxBH8gASgCACAAaigCAAUgAAsRAwBBEBAeIgAgAykDCDcDCCAAIAMpAwA3AwAgA0EQaiQAIAALNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEEAAs5AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhACABIAIgAyAEQQFxBH8gASgCACAAaigCAAUgAAsRCAALCQAgASAAEQIACwUAQcM7Cw8AIAEgACgCAGogAjYCAAsNACABIAAoAgBqKAIACxgBAX9BEBAeIgBCADcDCCAAQQA2AgAgAAsYAQF/QRAQHiIAQgA3AwAgAEIANwMIIAALDABBMBAeQQBBMBAqCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRHgALBQBBvjsLIQAgACABKAIAIAEgASwAC0EASBtBuzsgAigCABAQNgIACyoBAX9BDBAeIgFBADoABCABIAAoAgA2AgggAEEANgIAIAFB2Cc2AgAgAQsFAEG7OwsFAEG4OwshACAAIAEoAgAgASABLAALQQBIG0GkOyACKAIAEBA2AgAL2AEBBH8jAEEgayIDJAAgASgCACIEQfD///8HSQRAAkACQCAEQQtPBEAgBEEPckEBaiIFEB4hBiADIAVBgICAgHhyNgIQIAMgBjYCCCADIAQ2AgwgBCAGaiEFDAELIAMgBDoAEyADQQhqIgYgBGohBSAERQ0BCyAGIAFBBGogBBArGgsgBUEAOgAAIAMgAjYCACADQRhqIANBCGogAyAAEQMAIAMoAhgQHSADKAIYIgAQBiADKAIAEAYgAywAE0EASARAIAMoAggQIwsgA0EgaiQAIAAPCxACAAsqAQF/QQwQHiIBQQA6AAQgASAAKAIANgIIIABBADYCACABQeAmNgIA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AkEIaiAIIAYQHyACIAcgAC8AABAfQQEhAyACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSADC0UNAiACLQAMIAItAARHDQILIABBAmohAEEBIQMgBCEGQQEhBCAGRQ0ACyABLwB6IgBBB3FFBEAgBS0AekEHcUUNAgsgCCAAECAiCiAHIAUvAHoQICILWw0BIAogClsNACALIAtcDQELIAFBFGogBUEUakHoABArGiABQfwAaiAFQfwAahCgAQNAIAEtAAAiAEEEcQ0BIAEgAEEEcjoAACABKAIQIgAEQCABIAARAAALIAFBgICA/gc2ApwBIAEoAuQDIgENAAsLIAJBEGokAAvGAwEEfyMAQaAEayICJAAgACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALAkAgACgCACIAKALoAyAAKALsA0YEQCAAKALkAw0BIAAgAkEYaiAAKAL0AxBcIgEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCCAAQRRqIAFBFGpB6AAQKxogACABKQKMATcCjAEgACABKQKEATcChAEgACABKQJ8NwJ8IAEoApQBIQQgAUEANgKUASAAKAKUASEDIAAgBDYClAEgAwRAIAMQWwsgAEGYAWogAUGYAWpB0AIQKxogACgC6AMiAwRAIAAgAzYC7AMgAxAjCyAAIAEoAugDNgLoAyAAIAEoAuwDNgLsAyAAIAEoAvADNgLwAyABQQA2AvADIAFCADcC6AMgACABKQL8AzcC/AMgACABKQL0AzcC9AMgACABKAKEBDYChAQgASgClAEhACABQQA2ApQBIAAEQCAAEFsLIAJBoARqJAAPCyACQfAcNgIQIABBBUHYJSACQRBqECwQJAALIAJB5hE2AgAgAEEFQdglIAIQLBAkAAsLAEEMEB4gABCiAQsLAEEMEB5BABCiAQsNACAAKAIALQAIQQFxCwoAIAAoAgAoAhQLGQAgAUH/AXEEQBACAAsgACgCACgCEEEBcQsYACAAKAIAIgAgAC0ACEH+AXEgAXI6AAgLJgAgASAAKAIAIgAoAhRHBEAgACABNgIUIAAgACgCDEEBajYCDAsLkgEBAn8jAEEQayICJAAgACgCACEAIAFDAAAAAGAEQCABIAAqAhhcBEAgACABOAIYIAAgACgCDEEBajYCDAsgAkEQaiQADwsgAkGIFDYCACMAQRBrIgMkACADIAI2AgwCQCAARQRAQbgwQdglIAIQSRoMAQsgAEEAQQVB2CUgAiAAKAIEEQ0AGgsgA0EQaiQAECQACz8AIAFB/wFxRQRAIAIgACgCACIAKAIQIgFBAXFHBEAgACABQX5xIAJyNgIQIAAgACgCDEEBajYCDAsPCxACAAsL4CYjAEGACAuBHk9ubHkgbGVhZiBub2RlcyB3aXRoIGN1c3RvbSBtZWFzdXJlIGZ1bmN0aW9ucyBzaG91bGQgbWFudWFsbHkgbWFyayB0aGVtc2VsdmVzIGFzIGRpcnR5AGlzRGlydHkAbWFya0RpcnR5AGRlc3Ryb3kAc2V0RGlzcGxheQBnZXREaXNwbGF5AHNldEZsZXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABzZXRGbGV4R3JvdwBnZXRGbGV4R3JvdwBzZXRPdmVyZmxvdwBnZXRPdmVyZmxvdwBoYXNOZXdMYXlvdXQAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodFNpemluZ01vZGUgbXVzdCBiZSBTaXppbmdNb2RlOjpNYXhDb250ZW50AGF2YWlsYWJsZVdpZHRoIGlzIGluZGVmaW5pdGUgc28gd2lkdGhTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABzZXRBbGlnbkNvbnRlbnQAZ2V0QWxpZ25Db250ZW50AGdldFBhcmVudABpbXBsZW1lbnQAc2V0TWF4SGVpZ2h0UGVyY2VudABzZXRIZWlnaHRQZXJjZW50AHNldE1pbkhlaWdodFBlcmNlbnQAc2V0RmxleEJhc2lzUGVyY2VudABzZXRHYXBQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6UG9pbnQgfHwgaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHNldFBvaW50U2NhbGVGYWN0b3IATWVhc3VyZUNhbGxiYWNrV3JhcHBlcgBEaXJ0aWVkQ2FsbGJhY2tXcmFwcGVyAENhbm5vdCByZXNldCBhIG5vZGUgc3RpbGwgYXR0YWNoZWQgdG8gYSBvd25lcgBzZXRCb3JkZXIAZ2V0Qm9yZGVyAGdldENvbXB1dGVkQm9yZGVyAGdldE51bWJlcgBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6Ok51bWJlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRQb3NpdGlvbkF1dG8Ac2V0TWFyZ2luQXV0bwBzZXRXaWR0aEF1dG8AU2NhbGUgZmFjdG9yIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuIHplcm8Ac2V0QXNwZWN0UmF0aW8AZ2V0QXNwZWN0UmF0aW8Ac2V0UG9zaXRpb24AZ2V0UG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgBzZXRGbGV4RGlyZWN0aW9uAGdldEZsZXhEaXJlY3Rpb24Ac2V0RGlyZWN0aW9uAGdldERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG1hcmtMYXlvdXRTZWVuAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAHNldEFsd2F5c0Zvcm1zQ29udGFpbmluZ0Jsb2NrAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAZ2V0TGVuZ3RoAHdpZHRoAHNldE1heFdpZHRoAGdldE1heFdpZHRoAHNldFdpZHRoAGdldFdpZHRoAHNldE1pbldpZHRoAGdldE1pbldpZHRoAGdldENvbXB1dGVkV2lkdGgAcHVzaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1NtYWxsVmFsdWVCdWZmZXIuaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1N0eWxlVmFsdWVQb29sLmgAdW5zaWduZWQgbG9uZwBzZXRCb3hTaXppbmcAZ2V0Qm94U2l6aW5nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEATWVhc3VyZSBmdW5jdGlvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRpbWVuc2lvbiB0byBZb2dhOiBbd2lkdGg9JWYsIGhlaWdodD0lZl0ARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVk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";
|
|
132
|
+
if (!ua(H)) {
|
|
133
|
+
var va = H;
|
|
134
|
+
H = h.locateFile ? h.locateFile(va, q) : q + va;
|
|
135
|
+
}
|
|
136
|
+
function wa() {
|
|
137
|
+
var a = H;
|
|
138
|
+
try {
|
|
139
|
+
if (a == H && w)
|
|
140
|
+
return new Uint8Array(w);
|
|
141
|
+
if (ua(a))
|
|
142
|
+
try {
|
|
143
|
+
var b = xa(a.slice(37)), c = new Uint8Array(b.length);
|
|
144
|
+
for (a = 0;a < b.length; ++a)
|
|
145
|
+
c[a] = b.charCodeAt(a);
|
|
146
|
+
var d = c;
|
|
147
|
+
} catch (f) {
|
|
148
|
+
throw Error("Converting base64 string to bytes failed.");
|
|
149
|
+
}
|
|
150
|
+
else
|
|
151
|
+
d = undefined;
|
|
152
|
+
var e = d;
|
|
153
|
+
if (e)
|
|
154
|
+
return e;
|
|
155
|
+
throw "both async and sync fetching of the wasm failed";
|
|
156
|
+
} catch (f) {
|
|
157
|
+
x(f);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
function ya() {
|
|
161
|
+
return w || typeof fetch != "function" ? Promise.resolve().then(function() {
|
|
162
|
+
return wa();
|
|
163
|
+
}) : fetch(H, { credentials: "same-origin" }).then(function(a) {
|
|
164
|
+
if (!a.ok)
|
|
165
|
+
throw "failed to load wasm binary file at '" + H + "'";
|
|
166
|
+
return a.arrayBuffer();
|
|
167
|
+
}).catch(function() {
|
|
168
|
+
return wa();
|
|
169
|
+
});
|
|
973
170
|
}
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
171
|
+
function za(a) {
|
|
172
|
+
for (;0 < a.length; )
|
|
173
|
+
a.shift()(h);
|
|
174
|
+
}
|
|
175
|
+
function Aa(a) {
|
|
176
|
+
if (a === undefined)
|
|
177
|
+
return "_unknown";
|
|
178
|
+
a = a.replace(/[^a-zA-Z0-9_]/g, "$");
|
|
179
|
+
var b = a.charCodeAt(0);
|
|
180
|
+
return 48 <= b && 57 >= b ? "_" + a : a;
|
|
181
|
+
}
|
|
182
|
+
function Ba(a, b) {
|
|
183
|
+
a = Aa(a);
|
|
184
|
+
return function() {
|
|
185
|
+
return b.apply(this, arguments);
|
|
186
|
+
};
|
|
983
187
|
}
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
188
|
+
var J = [{}, { value: undefined }, { value: null }, { value: true }, { value: false }], Ca = [];
|
|
189
|
+
function Da(a) {
|
|
190
|
+
var b = Error, c = Ba(a, function(d) {
|
|
191
|
+
this.name = a;
|
|
192
|
+
this.message = d;
|
|
193
|
+
d = Error(d).stack;
|
|
194
|
+
d !== undefined && (this.stack = this.toString() + `
|
|
195
|
+
` + d.replace(/^Error(:[^\n]*)?\n/, ""));
|
|
196
|
+
});
|
|
197
|
+
c.prototype = Object.create(b.prototype);
|
|
198
|
+
c.prototype.constructor = c;
|
|
199
|
+
c.prototype.toString = function() {
|
|
200
|
+
return this.message === undefined ? this.name : this.name + ": " + this.message;
|
|
201
|
+
};
|
|
202
|
+
return c;
|
|
203
|
+
}
|
|
204
|
+
var K = undefined;
|
|
205
|
+
function L(a) {
|
|
206
|
+
throw new K(a);
|
|
207
|
+
}
|
|
208
|
+
var M = (a) => {
|
|
209
|
+
a || L("Cannot use deleted val. handle = " + a);
|
|
210
|
+
return J[a].value;
|
|
211
|
+
}, Ea = (a) => {
|
|
212
|
+
switch (a) {
|
|
213
|
+
case undefined:
|
|
214
|
+
return 1;
|
|
215
|
+
case null:
|
|
216
|
+
return 2;
|
|
217
|
+
case true:
|
|
218
|
+
return 3;
|
|
219
|
+
case false:
|
|
220
|
+
return 4;
|
|
221
|
+
default:
|
|
222
|
+
var b = Ca.length ? Ca.pop() : J.length;
|
|
223
|
+
J[b] = { ga: 1, value: a };
|
|
224
|
+
return b;
|
|
225
|
+
}
|
|
226
|
+
}, Fa = undefined, Ga = undefined;
|
|
227
|
+
function N(a) {
|
|
228
|
+
for (var b = "";A[a]; )
|
|
229
|
+
b += Ga[A[a++]];
|
|
230
|
+
return b;
|
|
231
|
+
}
|
|
232
|
+
var O = [];
|
|
233
|
+
function Ha() {
|
|
234
|
+
for (;O.length; ) {
|
|
235
|
+
var a = O.pop();
|
|
236
|
+
a.M.$ = false;
|
|
237
|
+
a["delete"]();
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
var P = undefined, Q = {};
|
|
241
|
+
function Ia(a, b) {
|
|
242
|
+
for (b === undefined && L("ptr should not be undefined");a.R; )
|
|
243
|
+
b = a.ba(b), a = a.R;
|
|
244
|
+
return b;
|
|
245
|
+
}
|
|
246
|
+
var R = {};
|
|
247
|
+
function Ja(a) {
|
|
248
|
+
a = Ka(a);
|
|
249
|
+
var b = N(a);
|
|
250
|
+
S(a);
|
|
251
|
+
return b;
|
|
252
|
+
}
|
|
253
|
+
function La(a, b) {
|
|
254
|
+
var c = R[a];
|
|
255
|
+
c === undefined && L(b + " has unknown type " + Ja(a));
|
|
256
|
+
return c;
|
|
257
|
+
}
|
|
258
|
+
function Ma() {}
|
|
259
|
+
var Na = false;
|
|
260
|
+
function Oa(a) {
|
|
261
|
+
--a.count.value;
|
|
262
|
+
a.count.value === 0 && (a.T ? a.U.W(a.T) : a.P.N.W(a.O));
|
|
263
|
+
}
|
|
264
|
+
function Pa(a, b, c) {
|
|
265
|
+
if (b === c)
|
|
266
|
+
return a;
|
|
267
|
+
if (c.R === undefined)
|
|
268
|
+
return null;
|
|
269
|
+
a = Pa(a, b, c.R);
|
|
270
|
+
return a === null ? null : c.na(a);
|
|
271
|
+
}
|
|
272
|
+
var Qa = {};
|
|
273
|
+
function Ra(a, b) {
|
|
274
|
+
b = Ia(a, b);
|
|
275
|
+
return Q[b];
|
|
276
|
+
}
|
|
277
|
+
var Sa = undefined;
|
|
278
|
+
function Ta(a) {
|
|
279
|
+
throw new Sa(a);
|
|
280
|
+
}
|
|
281
|
+
function Ua(a, b) {
|
|
282
|
+
b.P && b.O || Ta("makeClassHandle requires ptr and ptrType");
|
|
283
|
+
!!b.U !== !!b.T && Ta("Both smartPtrType and smartPtr must be specified");
|
|
284
|
+
b.count = { value: 1 };
|
|
285
|
+
return T(Object.create(a, { M: { value: b } }));
|
|
286
|
+
}
|
|
287
|
+
function T(a) {
|
|
288
|
+
if (typeof FinalizationRegistry === "undefined")
|
|
289
|
+
return T = (b) => b, a;
|
|
290
|
+
Na = new FinalizationRegistry((b) => {
|
|
291
|
+
Oa(b.M);
|
|
292
|
+
});
|
|
293
|
+
T = (b) => {
|
|
294
|
+
var c = b.M;
|
|
295
|
+
c.T && Na.register(b, { M: c }, b);
|
|
296
|
+
return b;
|
|
297
|
+
};
|
|
298
|
+
Ma = (b) => {
|
|
299
|
+
Na.unregister(b);
|
|
300
|
+
};
|
|
301
|
+
return T(a);
|
|
990
302
|
}
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
yg.ygNodeStyleSetMaxHeightPercent(this.ptr, asNumber);
|
|
998
|
-
} else if (unit === Unit.Point && asNumber !== undefined) {
|
|
999
|
-
yg.ygNodeStyleSetMaxHeight(this.ptr, asNumber);
|
|
303
|
+
var Va = {};
|
|
304
|
+
function Wa(a) {
|
|
305
|
+
for (;a.length; ) {
|
|
306
|
+
var b = a.pop();
|
|
307
|
+
a.pop()(b);
|
|
308
|
+
}
|
|
1000
309
|
}
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
if (this._freed)
|
|
1004
|
-
return;
|
|
1005
|
-
if (maxHeight !== undefined) {
|
|
1006
|
-
yg.ygNodeStyleSetMaxHeightPercent(this.ptr, maxHeight);
|
|
310
|
+
function Xa(a) {
|
|
311
|
+
return this.fromWireType(D[a >> 2]);
|
|
1007
312
|
}
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
getHeight() {
|
|
1027
|
-
if (this._freed)
|
|
1028
|
-
return UNDEFINED_VALUE;
|
|
1029
|
-
return unpackValue(yg.ygNodeStyleGetHeightPacked(this.ptr));
|
|
1030
|
-
}
|
|
1031
|
-
getMinWidth() {
|
|
1032
|
-
if (this._freed)
|
|
1033
|
-
return UNDEFINED_VALUE;
|
|
1034
|
-
return unpackValue(yg.ygNodeStyleGetMinWidthPacked(this.ptr));
|
|
1035
|
-
}
|
|
1036
|
-
getMinHeight() {
|
|
1037
|
-
if (this._freed)
|
|
1038
|
-
return UNDEFINED_VALUE;
|
|
1039
|
-
return unpackValue(yg.ygNodeStyleGetMinHeightPacked(this.ptr));
|
|
1040
|
-
}
|
|
1041
|
-
getMaxWidth() {
|
|
1042
|
-
if (this._freed)
|
|
1043
|
-
return UNDEFINED_VALUE;
|
|
1044
|
-
return unpackValue(yg.ygNodeStyleGetMaxWidthPacked(this.ptr));
|
|
1045
|
-
}
|
|
1046
|
-
getMaxHeight() {
|
|
1047
|
-
if (this._freed)
|
|
1048
|
-
return UNDEFINED_VALUE;
|
|
1049
|
-
return unpackValue(yg.ygNodeStyleGetMaxHeightPacked(this.ptr));
|
|
1050
|
-
}
|
|
1051
|
-
getMargin(edge) {
|
|
1052
|
-
if (this._freed)
|
|
1053
|
-
return UNDEFINED_VALUE;
|
|
1054
|
-
return unpackValue(yg.ygNodeStyleGetMarginPacked(this.ptr, edge));
|
|
1055
|
-
}
|
|
1056
|
-
getPadding(edge) {
|
|
1057
|
-
if (this._freed)
|
|
1058
|
-
return UNDEFINED_VALUE;
|
|
1059
|
-
return unpackValue(yg.ygNodeStyleGetPaddingPacked(this.ptr, edge));
|
|
1060
|
-
}
|
|
1061
|
-
getPosition(edge) {
|
|
1062
|
-
if (this._freed)
|
|
1063
|
-
return UNDEFINED_VALUE;
|
|
1064
|
-
return unpackValue(yg.ygNodeStyleGetPositionPacked(this.ptr, edge));
|
|
1065
|
-
}
|
|
1066
|
-
getGap(gutter) {
|
|
1067
|
-
if (this._freed)
|
|
1068
|
-
return UNDEFINED_VALUE;
|
|
1069
|
-
return unpackValue(yg.ygNodeStyleGetGapPacked(this.ptr, gutter));
|
|
1070
|
-
}
|
|
1071
|
-
getFlexBasis() {
|
|
1072
|
-
if (this._freed)
|
|
1073
|
-
return UNDEFINED_VALUE;
|
|
1074
|
-
return unpackValue(yg.ygNodeStyleGetFlexBasisPacked(this.ptr));
|
|
1075
|
-
}
|
|
1076
|
-
setMeasureFunc(measureFunc) {
|
|
1077
|
-
if (this._freed)
|
|
1078
|
-
return;
|
|
1079
|
-
this.unsetMeasureFunc();
|
|
1080
|
-
if (measureFunc) {
|
|
1081
|
-
this.measureCallback = new JSCallback((nodePtr, width, widthMode, height, heightMode) => {
|
|
1082
|
-
const result = measureFunc(width, widthMode, height, heightMode);
|
|
1083
|
-
yg.ygStoreMeasureResult(result.width, result.height);
|
|
1084
|
-
}, {
|
|
1085
|
-
args: [
|
|
1086
|
-
FFIType.ptr,
|
|
1087
|
-
FFIType.f32,
|
|
1088
|
-
FFIType.u32,
|
|
1089
|
-
FFIType.f32,
|
|
1090
|
-
FFIType.u32
|
|
1091
|
-
],
|
|
1092
|
-
returns: FFIType.void
|
|
313
|
+
var U = {}, Ya = {};
|
|
314
|
+
function V(a, b, c) {
|
|
315
|
+
function d(k) {
|
|
316
|
+
k = c(k);
|
|
317
|
+
k.length !== a.length && Ta("Mismatched type converter count");
|
|
318
|
+
for (var m = 0;m < a.length; ++m)
|
|
319
|
+
W(a[m], k[m]);
|
|
320
|
+
}
|
|
321
|
+
a.forEach(function(k) {
|
|
322
|
+
Ya[k] = b;
|
|
323
|
+
});
|
|
324
|
+
var e = Array(b.length), f = [], g = 0;
|
|
325
|
+
b.forEach((k, m) => {
|
|
326
|
+
R.hasOwnProperty(k) ? e[m] = R[k] : (f.push(k), U.hasOwnProperty(k) || (U[k] = []), U[k].push(() => {
|
|
327
|
+
e[m] = R[k];
|
|
328
|
+
++g;
|
|
329
|
+
g === f.length && d(e);
|
|
330
|
+
}));
|
|
1093
331
|
});
|
|
1094
|
-
|
|
1095
|
-
|
|
332
|
+
f.length === 0 && d(e);
|
|
333
|
+
}
|
|
334
|
+
function Za(a) {
|
|
335
|
+
switch (a) {
|
|
336
|
+
case 1:
|
|
337
|
+
return 0;
|
|
338
|
+
case 2:
|
|
339
|
+
return 1;
|
|
340
|
+
case 4:
|
|
341
|
+
return 2;
|
|
342
|
+
case 8:
|
|
343
|
+
return 3;
|
|
344
|
+
default:
|
|
345
|
+
throw new TypeError("Unknown type size: " + a);
|
|
1096
346
|
}
|
|
1097
347
|
}
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
348
|
+
function W(a, b, c = {}) {
|
|
349
|
+
if (!("argPackAdvance" in b))
|
|
350
|
+
throw new TypeError("registerType registeredInstance requires argPackAdvance");
|
|
351
|
+
var d = b.name;
|
|
352
|
+
a || L('type "' + d + '" must have a positive integer typeid pointer');
|
|
353
|
+
if (R.hasOwnProperty(a)) {
|
|
354
|
+
if (c.ua)
|
|
355
|
+
return;
|
|
356
|
+
L("Cannot register type '" + d + "' twice");
|
|
357
|
+
}
|
|
358
|
+
R[a] = b;
|
|
359
|
+
delete Ya[a];
|
|
360
|
+
U.hasOwnProperty(a) && (b = U[a], delete U[a], b.forEach((e) => e()));
|
|
361
|
+
}
|
|
362
|
+
function $a(a) {
|
|
363
|
+
L(a.M.P.N.name + " instance already deleted");
|
|
364
|
+
}
|
|
365
|
+
function X() {}
|
|
366
|
+
function ab(a, b, c) {
|
|
367
|
+
if (a[b].S === undefined) {
|
|
368
|
+
var d = a[b];
|
|
369
|
+
a[b] = function() {
|
|
370
|
+
a[b].S.hasOwnProperty(arguments.length) || L("Function '" + c + "' called with an invalid number of arguments (" + arguments.length + ") - expects one of (" + a[b].S + ")!");
|
|
371
|
+
return a[b].S[arguments.length].apply(this, arguments);
|
|
372
|
+
};
|
|
373
|
+
a[b].S = [];
|
|
374
|
+
a[b].S[d.Z] = d;
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
function bb(a, b) {
|
|
378
|
+
h.hasOwnProperty(a) ? (L("Cannot register public name '" + a + "' twice"), ab(h, a, a), h.hasOwnProperty(undefined) && L("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"), h[a].S[undefined] = b) : h[a] = b;
|
|
379
|
+
}
|
|
380
|
+
function cb(a, b, c, d, e, f, g, k) {
|
|
381
|
+
this.name = a;
|
|
382
|
+
this.constructor = b;
|
|
383
|
+
this.X = c;
|
|
384
|
+
this.W = d;
|
|
385
|
+
this.R = e;
|
|
386
|
+
this.pa = f;
|
|
387
|
+
this.ba = g;
|
|
388
|
+
this.na = k;
|
|
389
|
+
this.ja = [];
|
|
390
|
+
}
|
|
391
|
+
function db(a, b, c) {
|
|
392
|
+
for (;b !== c; )
|
|
393
|
+
b.ba || L("Expected null or instance of " + c.name + ", got an instance of " + b.name), a = b.ba(a), b = b.R;
|
|
394
|
+
return a;
|
|
395
|
+
}
|
|
396
|
+
function eb(a, b) {
|
|
397
|
+
if (b === null)
|
|
398
|
+
return this.ea && L("null is not a valid " + this.name), 0;
|
|
399
|
+
b.M || L('Cannot pass "' + fb(b) + '" as a ' + this.name);
|
|
400
|
+
b.M.O || L("Cannot pass deleted object as a pointer of type " + this.name);
|
|
401
|
+
return db(b.M.O, b.M.P.N, this.N);
|
|
402
|
+
}
|
|
403
|
+
function gb(a, b) {
|
|
404
|
+
if (b === null) {
|
|
405
|
+
this.ea && L("null is not a valid " + this.name);
|
|
406
|
+
if (this.da) {
|
|
407
|
+
var c = this.fa();
|
|
408
|
+
a !== null && a.push(this.W, c);
|
|
409
|
+
return c;
|
|
410
|
+
}
|
|
411
|
+
return 0;
|
|
412
|
+
}
|
|
413
|
+
b.M || L('Cannot pass "' + fb(b) + '" as a ' + this.name);
|
|
414
|
+
b.M.O || L("Cannot pass deleted object as a pointer of type " + this.name);
|
|
415
|
+
!this.ca && b.M.P.ca && L("Cannot convert argument of type " + (b.M.U ? b.M.U.name : b.M.P.name) + " to parameter type " + this.name);
|
|
416
|
+
c = db(b.M.O, b.M.P.N, this.N);
|
|
417
|
+
if (this.da)
|
|
418
|
+
switch (b.M.T === undefined && L("Passing raw pointer to smart pointer is illegal"), this.Ba) {
|
|
419
|
+
case 0:
|
|
420
|
+
b.M.U === this ? c = b.M.T : L("Cannot convert argument of type " + (b.M.U ? b.M.U.name : b.M.P.name) + " to parameter type " + this.name);
|
|
421
|
+
break;
|
|
422
|
+
case 1:
|
|
423
|
+
c = b.M.T;
|
|
424
|
+
break;
|
|
425
|
+
case 2:
|
|
426
|
+
if (b.M.U === this)
|
|
427
|
+
c = b.M.T;
|
|
428
|
+
else {
|
|
429
|
+
var d = b.clone();
|
|
430
|
+
c = this.xa(c, Ea(function() {
|
|
431
|
+
d["delete"]();
|
|
432
|
+
}));
|
|
433
|
+
a !== null && a.push(this.W, c);
|
|
434
|
+
}
|
|
435
|
+
break;
|
|
436
|
+
default:
|
|
437
|
+
L("Unsupporting sharing policy");
|
|
438
|
+
}
|
|
439
|
+
return c;
|
|
440
|
+
}
|
|
441
|
+
function hb(a, b) {
|
|
442
|
+
if (b === null)
|
|
443
|
+
return this.ea && L("null is not a valid " + this.name), 0;
|
|
444
|
+
b.M || L('Cannot pass "' + fb(b) + '" as a ' + this.name);
|
|
445
|
+
b.M.O || L("Cannot pass deleted object as a pointer of type " + this.name);
|
|
446
|
+
b.M.P.ca && L("Cannot convert argument of type " + b.M.P.name + " to parameter type " + this.name);
|
|
447
|
+
return db(b.M.O, b.M.P.N, this.N);
|
|
448
|
+
}
|
|
449
|
+
function Y(a, b, c, d) {
|
|
450
|
+
this.name = a;
|
|
451
|
+
this.N = b;
|
|
452
|
+
this.ea = c;
|
|
453
|
+
this.ca = d;
|
|
454
|
+
this.da = false;
|
|
455
|
+
this.W = this.xa = this.fa = this.ka = this.Ba = this.wa = undefined;
|
|
456
|
+
b.R !== undefined ? this.toWireType = gb : (this.toWireType = d ? eb : hb, this.V = null);
|
|
457
|
+
}
|
|
458
|
+
function ib(a, b) {
|
|
459
|
+
h.hasOwnProperty(a) || Ta("Replacing nonexistant public symbol");
|
|
460
|
+
h[a] = b;
|
|
461
|
+
h[a].Z = undefined;
|
|
462
|
+
}
|
|
463
|
+
function jb(a, b) {
|
|
464
|
+
var c = [];
|
|
465
|
+
return function() {
|
|
466
|
+
c.length = 0;
|
|
467
|
+
Object.assign(c, arguments);
|
|
468
|
+
if (a.includes("j")) {
|
|
469
|
+
var d = h["dynCall_" + a];
|
|
470
|
+
d = c && c.length ? d.apply(null, [b].concat(c)) : d.call(null, b);
|
|
471
|
+
} else
|
|
472
|
+
d = oa.get(b).apply(null, c);
|
|
473
|
+
return d;
|
|
474
|
+
};
|
|
1105
475
|
}
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
return
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
476
|
+
function Z(a, b) {
|
|
477
|
+
a = N(a);
|
|
478
|
+
var c = a.includes("j") ? jb(a, b) : oa.get(b);
|
|
479
|
+
typeof c != "function" && L("unknown function pointer with signature " + a + ": " + b);
|
|
480
|
+
return c;
|
|
481
|
+
}
|
|
482
|
+
var mb = undefined;
|
|
483
|
+
function nb(a, b) {
|
|
484
|
+
function c(f) {
|
|
485
|
+
e[f] || R[f] || (Ya[f] ? Ya[f].forEach(c) : (d.push(f), e[f] = true));
|
|
486
|
+
}
|
|
487
|
+
var d = [], e = {};
|
|
488
|
+
b.forEach(c);
|
|
489
|
+
throw new mb(a + ": " + d.map(Ja).join([", "]));
|
|
490
|
+
}
|
|
491
|
+
function ob(a, b, c, d, e) {
|
|
492
|
+
var f = b.length;
|
|
493
|
+
2 > f && L("argTypes array size mismatch! Must at least get return value and 'this' types!");
|
|
494
|
+
var g = b[1] !== null && c !== null, k = false;
|
|
495
|
+
for (c = 1;c < b.length; ++c)
|
|
496
|
+
if (b[c] !== null && b[c].V === undefined) {
|
|
497
|
+
k = true;
|
|
498
|
+
break;
|
|
499
|
+
}
|
|
500
|
+
var m = b[0].name !== "void", l = f - 2, n = Array(l), p = [], r = [];
|
|
501
|
+
return function() {
|
|
502
|
+
arguments.length !== l && L("function " + a + " called with " + arguments.length + " arguments, expected " + l + " args!");
|
|
503
|
+
r.length = 0;
|
|
504
|
+
p.length = g ? 2 : 1;
|
|
505
|
+
p[0] = e;
|
|
506
|
+
if (g) {
|
|
507
|
+
var u = b[1].toWireType(r, this);
|
|
508
|
+
p[1] = u;
|
|
509
|
+
}
|
|
510
|
+
for (var t = 0;t < l; ++t)
|
|
511
|
+
n[t] = b[t + 2].toWireType(r, arguments[t]), p.push(n[t]);
|
|
512
|
+
t = d.apply(null, p);
|
|
513
|
+
if (k)
|
|
514
|
+
Wa(r);
|
|
515
|
+
else
|
|
516
|
+
for (var y = g ? 1 : 2;y < b.length; y++) {
|
|
517
|
+
var B = y === 1 ? u : n[y - 2];
|
|
518
|
+
b[y].V !== null && b[y].V(B);
|
|
519
|
+
}
|
|
520
|
+
u = m ? b[0].fromWireType(t) : undefined;
|
|
521
|
+
return u;
|
|
522
|
+
};
|
|
1128
523
|
}
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
return;
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
524
|
+
function pb(a, b) {
|
|
525
|
+
for (var c = [], d = 0;d < a; d++)
|
|
526
|
+
c.push(E[b + 4 * d >> 2]);
|
|
527
|
+
return c;
|
|
528
|
+
}
|
|
529
|
+
function qb(a) {
|
|
530
|
+
4 < a && --J[a].ga === 0 && (J[a] = undefined, Ca.push(a));
|
|
531
|
+
}
|
|
532
|
+
function fb(a) {
|
|
533
|
+
if (a === null)
|
|
534
|
+
return "null";
|
|
535
|
+
var b = typeof a;
|
|
536
|
+
return b === "object" || b === "array" || b === "function" ? a.toString() : "" + a;
|
|
537
|
+
}
|
|
538
|
+
function rb(a, b) {
|
|
539
|
+
switch (b) {
|
|
540
|
+
case 2:
|
|
541
|
+
return function(c) {
|
|
542
|
+
return this.fromWireType(la[c >> 2]);
|
|
543
|
+
};
|
|
544
|
+
case 3:
|
|
545
|
+
return function(c) {
|
|
546
|
+
return this.fromWireType(ma[c >> 3]);
|
|
547
|
+
};
|
|
548
|
+
default:
|
|
549
|
+
throw new TypeError("Unknown float type: " + a);
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
function sb(a, b, c) {
|
|
553
|
+
switch (b) {
|
|
554
|
+
case 0:
|
|
555
|
+
return c ? function(d) {
|
|
556
|
+
return ja[d];
|
|
557
|
+
} : function(d) {
|
|
558
|
+
return A[d];
|
|
559
|
+
};
|
|
560
|
+
case 1:
|
|
561
|
+
return c ? function(d) {
|
|
562
|
+
return C[d >> 1];
|
|
563
|
+
} : function(d) {
|
|
564
|
+
return ka[d >> 1];
|
|
565
|
+
};
|
|
566
|
+
case 2:
|
|
567
|
+
return c ? function(d) {
|
|
568
|
+
return D[d >> 2];
|
|
569
|
+
} : function(d) {
|
|
570
|
+
return E[d >> 2];
|
|
571
|
+
};
|
|
572
|
+
default:
|
|
573
|
+
throw new TypeError("Unknown integer type: " + a);
|
|
574
|
+
}
|
|
1136
575
|
}
|
|
1137
|
-
|
|
576
|
+
function tb(a, b) {
|
|
577
|
+
for (var c = "", d = 0;!(d >= b / 2); ++d) {
|
|
578
|
+
var e = C[a + 2 * d >> 1];
|
|
579
|
+
if (e == 0)
|
|
580
|
+
break;
|
|
581
|
+
c += String.fromCharCode(e);
|
|
582
|
+
}
|
|
583
|
+
return c;
|
|
584
|
+
}
|
|
585
|
+
function ub(a, b, c) {
|
|
586
|
+
c === undefined && (c = 2147483647);
|
|
587
|
+
if (2 > c)
|
|
588
|
+
return 0;
|
|
589
|
+
c -= 2;
|
|
590
|
+
var d = b;
|
|
591
|
+
c = c < 2 * a.length ? c / 2 : a.length;
|
|
592
|
+
for (var e = 0;e < c; ++e)
|
|
593
|
+
C[b >> 1] = a.charCodeAt(e), b += 2;
|
|
594
|
+
C[b >> 1] = 0;
|
|
595
|
+
return b - d;
|
|
596
|
+
}
|
|
597
|
+
function vb(a) {
|
|
598
|
+
return 2 * a.length;
|
|
599
|
+
}
|
|
600
|
+
function wb(a, b) {
|
|
601
|
+
for (var c = 0, d = "";!(c >= b / 4); ) {
|
|
602
|
+
var e = D[a + 4 * c >> 2];
|
|
603
|
+
if (e == 0)
|
|
604
|
+
break;
|
|
605
|
+
++c;
|
|
606
|
+
65536 <= e ? (e -= 65536, d += String.fromCharCode(55296 | e >> 10, 56320 | e & 1023)) : d += String.fromCharCode(e);
|
|
607
|
+
}
|
|
608
|
+
return d;
|
|
609
|
+
}
|
|
610
|
+
function xb(a, b, c) {
|
|
611
|
+
c === undefined && (c = 2147483647);
|
|
612
|
+
if (4 > c)
|
|
613
|
+
return 0;
|
|
614
|
+
var d = b;
|
|
615
|
+
c = d + c - 4;
|
|
616
|
+
for (var e = 0;e < a.length; ++e) {
|
|
617
|
+
var f = a.charCodeAt(e);
|
|
618
|
+
if (55296 <= f && 57343 >= f) {
|
|
619
|
+
var g = a.charCodeAt(++e);
|
|
620
|
+
f = 65536 + ((f & 1023) << 10) | g & 1023;
|
|
621
|
+
}
|
|
622
|
+
D[b >> 2] = f;
|
|
623
|
+
b += 4;
|
|
624
|
+
if (b + 4 > c)
|
|
625
|
+
break;
|
|
626
|
+
}
|
|
627
|
+
D[b >> 2] = 0;
|
|
628
|
+
return b - d;
|
|
629
|
+
}
|
|
630
|
+
function yb(a) {
|
|
631
|
+
for (var b = 0, c = 0;c < a.length; ++c) {
|
|
632
|
+
var d = a.charCodeAt(c);
|
|
633
|
+
55296 <= d && 57343 >= d && ++c;
|
|
634
|
+
b += 4;
|
|
635
|
+
}
|
|
636
|
+
return b;
|
|
637
|
+
}
|
|
638
|
+
var zb = {};
|
|
639
|
+
function Ab(a) {
|
|
640
|
+
var b = zb[a];
|
|
641
|
+
return b === undefined ? N(a) : b;
|
|
642
|
+
}
|
|
643
|
+
var Bb = [];
|
|
644
|
+
function Cb(a) {
|
|
645
|
+
var b = Bb.length;
|
|
646
|
+
Bb.push(a);
|
|
647
|
+
return b;
|
|
648
|
+
}
|
|
649
|
+
function Db(a, b) {
|
|
650
|
+
for (var c = Array(a), d = 0;d < a; ++d)
|
|
651
|
+
c[d] = La(E[b + 4 * d >> 2], "parameter " + d);
|
|
652
|
+
return c;
|
|
653
|
+
}
|
|
654
|
+
var Eb = [], Fb = [null, [], []];
|
|
655
|
+
K = h.BindingError = Da("BindingError");
|
|
656
|
+
h.count_emval_handles = function() {
|
|
657
|
+
for (var a = 0, b = 5;b < J.length; ++b)
|
|
658
|
+
J[b] !== undefined && ++a;
|
|
659
|
+
return a;
|
|
660
|
+
};
|
|
661
|
+
h.get_first_emval = function() {
|
|
662
|
+
for (var a = 5;a < J.length; ++a)
|
|
663
|
+
if (J[a] !== undefined)
|
|
664
|
+
return J[a];
|
|
665
|
+
return null;
|
|
666
|
+
};
|
|
667
|
+
Fa = h.PureVirtualError = Da("PureVirtualError");
|
|
668
|
+
for (var Gb = Array(256), Hb = 0;256 > Hb; ++Hb)
|
|
669
|
+
Gb[Hb] = String.fromCharCode(Hb);
|
|
670
|
+
Ga = Gb;
|
|
671
|
+
h.getInheritedInstanceCount = function() {
|
|
672
|
+
return Object.keys(Q).length;
|
|
673
|
+
};
|
|
674
|
+
h.getLiveInheritedInstances = function() {
|
|
675
|
+
var a = [], b;
|
|
676
|
+
for (b in Q)
|
|
677
|
+
Q.hasOwnProperty(b) && a.push(Q[b]);
|
|
678
|
+
return a;
|
|
679
|
+
};
|
|
680
|
+
h.flushPendingDeletes = Ha;
|
|
681
|
+
h.setDelayFunction = function(a) {
|
|
682
|
+
P = a;
|
|
683
|
+
O.length && P && P(Ha);
|
|
684
|
+
};
|
|
685
|
+
Sa = h.InternalError = Da("InternalError");
|
|
686
|
+
X.prototype.isAliasOf = function(a) {
|
|
687
|
+
if (!(this instanceof X && a instanceof X))
|
|
688
|
+
return false;
|
|
689
|
+
var b = this.M.P.N, c = this.M.O, d = a.M.P.N;
|
|
690
|
+
for (a = a.M.O;b.R; )
|
|
691
|
+
c = b.ba(c), b = b.R;
|
|
692
|
+
for (;d.R; )
|
|
693
|
+
a = d.ba(a), d = d.R;
|
|
694
|
+
return b === d && c === a;
|
|
695
|
+
};
|
|
696
|
+
X.prototype.clone = function() {
|
|
697
|
+
this.M.O || $a(this);
|
|
698
|
+
if (this.M.aa)
|
|
699
|
+
return this.M.count.value += 1, this;
|
|
700
|
+
var a = T, b = Object, c = b.create, d = Object.getPrototypeOf(this), e = this.M;
|
|
701
|
+
a = a(c.call(b, d, { M: { value: { count: e.count, $: e.$, aa: e.aa, O: e.O, P: e.P, T: e.T, U: e.U } } }));
|
|
702
|
+
a.M.count.value += 1;
|
|
703
|
+
a.M.$ = false;
|
|
704
|
+
return a;
|
|
705
|
+
};
|
|
706
|
+
X.prototype["delete"] = function() {
|
|
707
|
+
this.M.O || $a(this);
|
|
708
|
+
this.M.$ && !this.M.aa && L("Object already scheduled for deletion");
|
|
709
|
+
Ma(this);
|
|
710
|
+
Oa(this.M);
|
|
711
|
+
this.M.aa || (this.M.T = undefined, this.M.O = undefined);
|
|
712
|
+
};
|
|
713
|
+
X.prototype.isDeleted = function() {
|
|
714
|
+
return !this.M.O;
|
|
715
|
+
};
|
|
716
|
+
X.prototype.deleteLater = function() {
|
|
717
|
+
this.M.O || $a(this);
|
|
718
|
+
this.M.$ && !this.M.aa && L("Object already scheduled for deletion");
|
|
719
|
+
O.push(this);
|
|
720
|
+
O.length === 1 && P && P(Ha);
|
|
721
|
+
this.M.$ = true;
|
|
722
|
+
return this;
|
|
723
|
+
};
|
|
724
|
+
Y.prototype.qa = function(a) {
|
|
725
|
+
this.ka && (a = this.ka(a));
|
|
726
|
+
return a;
|
|
727
|
+
};
|
|
728
|
+
Y.prototype.ha = function(a) {
|
|
729
|
+
this.W && this.W(a);
|
|
730
|
+
};
|
|
731
|
+
Y.prototype.argPackAdvance = 8;
|
|
732
|
+
Y.prototype.readValueFromPointer = Xa;
|
|
733
|
+
Y.prototype.deleteObject = function(a) {
|
|
734
|
+
if (a !== null)
|
|
735
|
+
a["delete"]();
|
|
736
|
+
};
|
|
737
|
+
Y.prototype.fromWireType = function(a) {
|
|
738
|
+
function b() {
|
|
739
|
+
return this.da ? Ua(this.N.X, { P: this.wa, O: c, U: this, T: a }) : Ua(this.N.X, { P: this, O: a });
|
|
740
|
+
}
|
|
741
|
+
var c = this.qa(a);
|
|
742
|
+
if (!c)
|
|
743
|
+
return this.ha(a), null;
|
|
744
|
+
var d = Ra(this.N, c);
|
|
745
|
+
if (d !== undefined) {
|
|
746
|
+
if (d.M.count.value === 0)
|
|
747
|
+
return d.M.O = c, d.M.T = a, d.clone();
|
|
748
|
+
d = d.clone();
|
|
749
|
+
this.ha(a);
|
|
750
|
+
return d;
|
|
751
|
+
}
|
|
752
|
+
d = this.N.pa(c);
|
|
753
|
+
d = Qa[d];
|
|
754
|
+
if (!d)
|
|
755
|
+
return b.call(this);
|
|
756
|
+
d = this.ca ? d.la : d.pointerType;
|
|
757
|
+
var e = Pa(c, this.N, d.N);
|
|
758
|
+
return e === null ? b.call(this) : this.da ? Ua(d.N.X, { P: d, O: e, U: this, T: a }) : Ua(d.N.X, { P: d, O: e });
|
|
759
|
+
};
|
|
760
|
+
mb = h.UnboundTypeError = Da("UnboundTypeError");
|
|
761
|
+
var xa = typeof atob == "function" ? atob : function(a) {
|
|
762
|
+
var b = "", c = 0;
|
|
763
|
+
a = a.replace(/[^A-Za-z0-9\+\/=]/g, "");
|
|
764
|
+
do {
|
|
765
|
+
var d = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(c++));
|
|
766
|
+
var e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(c++));
|
|
767
|
+
var f = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(c++));
|
|
768
|
+
var g = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(c++));
|
|
769
|
+
d = d << 2 | e >> 4;
|
|
770
|
+
e = (e & 15) << 4 | f >> 2;
|
|
771
|
+
var k = (f & 3) << 6 | g;
|
|
772
|
+
b += String.fromCharCode(d);
|
|
773
|
+
f !== 64 && (b += String.fromCharCode(e));
|
|
774
|
+
g !== 64 && (b += String.fromCharCode(k));
|
|
775
|
+
} while (c < a.length);
|
|
776
|
+
return b;
|
|
777
|
+
}, Jb = {
|
|
778
|
+
l: function(a, b, c, d) {
|
|
779
|
+
x("Assertion failed: " + (a ? z(A, a) : "") + ", at: " + [b ? b ? z(A, b) : "" : "unknown filename", c, d ? d ? z(A, d) : "" : "unknown function"]);
|
|
780
|
+
},
|
|
781
|
+
q: function(a, b, c) {
|
|
782
|
+
a = N(a);
|
|
783
|
+
b = La(b, "wrapper");
|
|
784
|
+
c = M(c);
|
|
785
|
+
var d = [].slice, e = b.N, f = e.X, g = e.R.X, k = e.R.constructor;
|
|
786
|
+
a = Ba(a, function() {
|
|
787
|
+
e.R.ja.forEach(function(l) {
|
|
788
|
+
if (this[l] === g[l])
|
|
789
|
+
throw new Fa("Pure virtual function " + l + " must be implemented in JavaScript");
|
|
790
|
+
}.bind(this));
|
|
791
|
+
Object.defineProperty(this, "__parent", { value: f });
|
|
792
|
+
this.__construct.apply(this, d.call(arguments));
|
|
793
|
+
});
|
|
794
|
+
f.__construct = function() {
|
|
795
|
+
this === f && L("Pass correct 'this' to __construct");
|
|
796
|
+
var l = k.implement.apply(undefined, [this].concat(d.call(arguments)));
|
|
797
|
+
Ma(l);
|
|
798
|
+
var n = l.M;
|
|
799
|
+
l.notifyOnDestruction();
|
|
800
|
+
n.aa = true;
|
|
801
|
+
Object.defineProperties(this, { M: { value: n } });
|
|
802
|
+
T(this);
|
|
803
|
+
l = n.O;
|
|
804
|
+
l = Ia(e, l);
|
|
805
|
+
Q.hasOwnProperty(l) ? L("Tried to register registered instance: " + l) : Q[l] = this;
|
|
806
|
+
};
|
|
807
|
+
f.__destruct = function() {
|
|
808
|
+
this === f && L("Pass correct 'this' to __destruct");
|
|
809
|
+
Ma(this);
|
|
810
|
+
var l = this.M.O;
|
|
811
|
+
l = Ia(e, l);
|
|
812
|
+
Q.hasOwnProperty(l) ? delete Q[l] : L("Tried to unregister unregistered instance: " + l);
|
|
813
|
+
};
|
|
814
|
+
a.prototype = Object.create(f);
|
|
815
|
+
for (var m in c)
|
|
816
|
+
a.prototype[m] = c[m];
|
|
817
|
+
return Ea(a);
|
|
818
|
+
},
|
|
819
|
+
j: function(a) {
|
|
820
|
+
var b = Va[a];
|
|
821
|
+
delete Va[a];
|
|
822
|
+
var { fa: c, W: d, ia: e } = b, f = e.map((g) => g.ta).concat(e.map((g) => g.za));
|
|
823
|
+
V([a], f, (g) => {
|
|
824
|
+
var k = {};
|
|
825
|
+
e.forEach((m, l) => {
|
|
826
|
+
var n = g[l], p = m.ra, r = m.sa, u = g[l + e.length], t = m.ya, y = m.Aa;
|
|
827
|
+
k[m.oa] = { read: (B) => n.fromWireType(p(r, B)), write: (B, ba) => {
|
|
828
|
+
var I = [];
|
|
829
|
+
t(y, B, u.toWireType(I, ba));
|
|
830
|
+
Wa(I);
|
|
831
|
+
} };
|
|
832
|
+
});
|
|
833
|
+
return [{ name: b.name, fromWireType: function(m) {
|
|
834
|
+
var l = {}, n;
|
|
835
|
+
for (n in k)
|
|
836
|
+
l[n] = k[n].read(m);
|
|
837
|
+
d(m);
|
|
838
|
+
return l;
|
|
839
|
+
}, toWireType: function(m, l) {
|
|
840
|
+
for (var n in k)
|
|
841
|
+
if (!(n in l))
|
|
842
|
+
throw new TypeError('Missing field: "' + n + '"');
|
|
843
|
+
var p = c();
|
|
844
|
+
for (n in k)
|
|
845
|
+
k[n].write(p, l[n]);
|
|
846
|
+
m !== null && m.push(d, p);
|
|
847
|
+
return p;
|
|
848
|
+
}, argPackAdvance: 8, readValueFromPointer: Xa, V: d }];
|
|
849
|
+
});
|
|
850
|
+
},
|
|
851
|
+
v: function() {},
|
|
852
|
+
B: function(a, b, c, d, e) {
|
|
853
|
+
var f = Za(c);
|
|
854
|
+
b = N(b);
|
|
855
|
+
W(a, {
|
|
856
|
+
name: b,
|
|
857
|
+
fromWireType: function(g) {
|
|
858
|
+
return !!g;
|
|
859
|
+
},
|
|
860
|
+
toWireType: function(g, k) {
|
|
861
|
+
return k ? d : e;
|
|
862
|
+
},
|
|
863
|
+
argPackAdvance: 8,
|
|
864
|
+
readValueFromPointer: function(g) {
|
|
865
|
+
if (c === 1)
|
|
866
|
+
var k = ja;
|
|
867
|
+
else if (c === 2)
|
|
868
|
+
k = C;
|
|
869
|
+
else if (c === 4)
|
|
870
|
+
k = D;
|
|
871
|
+
else
|
|
872
|
+
throw new TypeError("Unknown boolean type size: " + b);
|
|
873
|
+
return this.fromWireType(k[g >> f]);
|
|
874
|
+
},
|
|
875
|
+
V: null
|
|
876
|
+
});
|
|
877
|
+
},
|
|
878
|
+
f: function(a, b, c, d, e, f, g, k, m, l, n, p, r) {
|
|
879
|
+
n = N(n);
|
|
880
|
+
f = Z(e, f);
|
|
881
|
+
k && (k = Z(g, k));
|
|
882
|
+
l && (l = Z(m, l));
|
|
883
|
+
r = Z(p, r);
|
|
884
|
+
var u = Aa(n);
|
|
885
|
+
bb(u, function() {
|
|
886
|
+
nb("Cannot construct " + n + " due to unbound types", [d]);
|
|
887
|
+
});
|
|
888
|
+
V([a, b, c], d ? [d] : [], function(t) {
|
|
889
|
+
t = t[0];
|
|
890
|
+
if (d) {
|
|
891
|
+
var y = t.N;
|
|
892
|
+
var B = y.X;
|
|
893
|
+
} else
|
|
894
|
+
B = X.prototype;
|
|
895
|
+
t = Ba(u, function() {
|
|
896
|
+
if (Object.getPrototypeOf(this) !== ba)
|
|
897
|
+
throw new K("Use 'new' to construct " + n);
|
|
898
|
+
if (I.Y === undefined)
|
|
899
|
+
throw new K(n + " has no accessible constructor");
|
|
900
|
+
var kb = I.Y[arguments.length];
|
|
901
|
+
if (kb === undefined)
|
|
902
|
+
throw new K("Tried to invoke ctor of " + n + " with invalid number of parameters (" + arguments.length + ") - expected (" + Object.keys(I.Y).toString() + ") parameters instead!");
|
|
903
|
+
return kb.apply(this, arguments);
|
|
904
|
+
});
|
|
905
|
+
var ba = Object.create(B, { constructor: { value: t } });
|
|
906
|
+
t.prototype = ba;
|
|
907
|
+
var I = new cb(n, t, ba, r, y, f, k, l);
|
|
908
|
+
y = new Y(n, I, true, false);
|
|
909
|
+
B = new Y(n + "*", I, false, false);
|
|
910
|
+
var lb = new Y(n + " const*", I, false, true);
|
|
911
|
+
Qa[a] = {
|
|
912
|
+
pointerType: B,
|
|
913
|
+
la: lb
|
|
914
|
+
};
|
|
915
|
+
ib(u, t);
|
|
916
|
+
return [y, B, lb];
|
|
917
|
+
});
|
|
918
|
+
},
|
|
919
|
+
d: function(a, b, c, d, e, f, g) {
|
|
920
|
+
var k = pb(c, d);
|
|
921
|
+
b = N(b);
|
|
922
|
+
f = Z(e, f);
|
|
923
|
+
V([], [a], function(m) {
|
|
924
|
+
function l() {
|
|
925
|
+
nb("Cannot call " + n + " due to unbound types", k);
|
|
926
|
+
}
|
|
927
|
+
m = m[0];
|
|
928
|
+
var n = m.name + "." + b;
|
|
929
|
+
b.startsWith("@@") && (b = Symbol[b.substring(2)]);
|
|
930
|
+
var p = m.N.constructor;
|
|
931
|
+
p[b] === undefined ? (l.Z = c - 1, p[b] = l) : (ab(p, b, n), p[b].S[c - 1] = l);
|
|
932
|
+
V([], k, function(r) {
|
|
933
|
+
r = ob(n, [r[0], null].concat(r.slice(1)), null, f, g);
|
|
934
|
+
p[b].S === undefined ? (r.Z = c - 1, p[b] = r) : p[b].S[c - 1] = r;
|
|
935
|
+
return [];
|
|
936
|
+
});
|
|
937
|
+
return [];
|
|
938
|
+
});
|
|
939
|
+
},
|
|
940
|
+
p: function(a, b, c, d, e, f) {
|
|
941
|
+
0 < b || x();
|
|
942
|
+
var g = pb(b, c);
|
|
943
|
+
e = Z(d, e);
|
|
944
|
+
V([], [a], function(k) {
|
|
945
|
+
k = k[0];
|
|
946
|
+
var m = "constructor " + k.name;
|
|
947
|
+
k.N.Y === undefined && (k.N.Y = []);
|
|
948
|
+
if (k.N.Y[b - 1] !== undefined)
|
|
949
|
+
throw new K("Cannot register multiple constructors with identical number of parameters (" + (b - 1) + ") for class '" + k.name + "'! Overload resolution is currently only performed using the parameter count, not actual type info!");
|
|
950
|
+
k.N.Y[b - 1] = () => {
|
|
951
|
+
nb("Cannot construct " + k.name + " due to unbound types", g);
|
|
952
|
+
};
|
|
953
|
+
V([], g, function(l) {
|
|
954
|
+
l.splice(1, 0, null);
|
|
955
|
+
k.N.Y[b - 1] = ob(m, l, null, e, f);
|
|
956
|
+
return [];
|
|
957
|
+
});
|
|
958
|
+
return [];
|
|
959
|
+
});
|
|
960
|
+
},
|
|
961
|
+
a: function(a, b, c, d, e, f, g, k) {
|
|
962
|
+
var m = pb(c, d);
|
|
963
|
+
b = N(b);
|
|
964
|
+
f = Z(e, f);
|
|
965
|
+
V([], [a], function(l) {
|
|
966
|
+
function n() {
|
|
967
|
+
nb("Cannot call " + p + " due to unbound types", m);
|
|
968
|
+
}
|
|
969
|
+
l = l[0];
|
|
970
|
+
var p = l.name + "." + b;
|
|
971
|
+
b.startsWith("@@") && (b = Symbol[b.substring(2)]);
|
|
972
|
+
k && l.N.ja.push(b);
|
|
973
|
+
var r = l.N.X, u = r[b];
|
|
974
|
+
u === undefined || u.S === undefined && u.className !== l.name && u.Z === c - 2 ? (n.Z = c - 2, n.className = l.name, r[b] = n) : (ab(r, b, p), r[b].S[c - 2] = n);
|
|
975
|
+
V([], m, function(t) {
|
|
976
|
+
t = ob(p, t, l, f, g);
|
|
977
|
+
r[b].S === undefined ? (t.Z = c - 2, r[b] = t) : r[b].S[c - 2] = t;
|
|
978
|
+
return [];
|
|
979
|
+
});
|
|
980
|
+
return [];
|
|
981
|
+
});
|
|
982
|
+
},
|
|
983
|
+
A: function(a, b) {
|
|
984
|
+
b = N(b);
|
|
985
|
+
W(a, { name: b, fromWireType: function(c) {
|
|
986
|
+
var d = M(c);
|
|
987
|
+
qb(c);
|
|
988
|
+
return d;
|
|
989
|
+
}, toWireType: function(c, d) {
|
|
990
|
+
return Ea(d);
|
|
991
|
+
}, argPackAdvance: 8, readValueFromPointer: Xa, V: null });
|
|
992
|
+
},
|
|
993
|
+
n: function(a, b, c) {
|
|
994
|
+
c = Za(c);
|
|
995
|
+
b = N(b);
|
|
996
|
+
W(a, { name: b, fromWireType: function(d) {
|
|
997
|
+
return d;
|
|
998
|
+
}, toWireType: function(d, e) {
|
|
999
|
+
return e;
|
|
1000
|
+
}, argPackAdvance: 8, readValueFromPointer: rb(b, c), V: null });
|
|
1001
|
+
},
|
|
1002
|
+
e: function(a, b, c, d, e) {
|
|
1003
|
+
b = N(b);
|
|
1004
|
+
e === -1 && (e = 4294967295);
|
|
1005
|
+
e = Za(c);
|
|
1006
|
+
var f = (k) => k;
|
|
1007
|
+
if (d === 0) {
|
|
1008
|
+
var g = 32 - 8 * c;
|
|
1009
|
+
f = (k) => k << g >>> g;
|
|
1010
|
+
}
|
|
1011
|
+
c = b.includes("unsigned") ? function(k, m) {
|
|
1012
|
+
return m >>> 0;
|
|
1013
|
+
} : function(k, m) {
|
|
1014
|
+
return m;
|
|
1015
|
+
};
|
|
1016
|
+
W(a, { name: b, fromWireType: f, toWireType: c, argPackAdvance: 8, readValueFromPointer: sb(b, e, d !== 0), V: null });
|
|
1017
|
+
},
|
|
1018
|
+
b: function(a, b, c) {
|
|
1019
|
+
function d(f) {
|
|
1020
|
+
f >>= 2;
|
|
1021
|
+
var g = E;
|
|
1022
|
+
return new e(ia, g[f + 1], g[f]);
|
|
1023
|
+
}
|
|
1024
|
+
var e = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array][b];
|
|
1025
|
+
c = N(c);
|
|
1026
|
+
W(a, { name: c, fromWireType: d, argPackAdvance: 8, readValueFromPointer: d }, { ua: true });
|
|
1027
|
+
},
|
|
1028
|
+
o: function(a, b) {
|
|
1029
|
+
b = N(b);
|
|
1030
|
+
var c = b === "std::string";
|
|
1031
|
+
W(a, { name: b, fromWireType: function(d) {
|
|
1032
|
+
var e = E[d >> 2], f = d + 4;
|
|
1033
|
+
if (c)
|
|
1034
|
+
for (var g = f, k = 0;k <= e; ++k) {
|
|
1035
|
+
var m = f + k;
|
|
1036
|
+
if (k == e || A[m] == 0) {
|
|
1037
|
+
g = g ? z(A, g, m - g) : "";
|
|
1038
|
+
if (l === undefined)
|
|
1039
|
+
var l = g;
|
|
1040
|
+
else
|
|
1041
|
+
l += String.fromCharCode(0), l += g;
|
|
1042
|
+
g = m + 1;
|
|
1043
|
+
}
|
|
1044
|
+
}
|
|
1045
|
+
else {
|
|
1046
|
+
l = Array(e);
|
|
1047
|
+
for (k = 0;k < e; ++k)
|
|
1048
|
+
l[k] = String.fromCharCode(A[f + k]);
|
|
1049
|
+
l = l.join("");
|
|
1050
|
+
}
|
|
1051
|
+
S(d);
|
|
1052
|
+
return l;
|
|
1053
|
+
}, toWireType: function(d, e) {
|
|
1054
|
+
e instanceof ArrayBuffer && (e = new Uint8Array(e));
|
|
1055
|
+
var f, g = typeof e == "string";
|
|
1056
|
+
g || e instanceof Uint8Array || e instanceof Uint8ClampedArray || e instanceof Int8Array || L("Cannot pass non-string to std::string");
|
|
1057
|
+
if (c && g) {
|
|
1058
|
+
var k = 0;
|
|
1059
|
+
for (f = 0;f < e.length; ++f) {
|
|
1060
|
+
var m = e.charCodeAt(f);
|
|
1061
|
+
127 >= m ? k++ : 2047 >= m ? k += 2 : 55296 <= m && 57343 >= m ? (k += 4, ++f) : k += 3;
|
|
1062
|
+
}
|
|
1063
|
+
f = k;
|
|
1064
|
+
} else
|
|
1065
|
+
f = e.length;
|
|
1066
|
+
k = Ib(4 + f + 1);
|
|
1067
|
+
m = k + 4;
|
|
1068
|
+
E[k >> 2] = f;
|
|
1069
|
+
if (c && g) {
|
|
1070
|
+
if (g = m, m = f + 1, f = A, 0 < m) {
|
|
1071
|
+
m = g + m - 1;
|
|
1072
|
+
for (var l = 0;l < e.length; ++l) {
|
|
1073
|
+
var n = e.charCodeAt(l);
|
|
1074
|
+
if (55296 <= n && 57343 >= n) {
|
|
1075
|
+
var p = e.charCodeAt(++l);
|
|
1076
|
+
n = 65536 + ((n & 1023) << 10) | p & 1023;
|
|
1077
|
+
}
|
|
1078
|
+
if (127 >= n) {
|
|
1079
|
+
if (g >= m)
|
|
1080
|
+
break;
|
|
1081
|
+
f[g++] = n;
|
|
1082
|
+
} else {
|
|
1083
|
+
if (2047 >= n) {
|
|
1084
|
+
if (g + 1 >= m)
|
|
1085
|
+
break;
|
|
1086
|
+
f[g++] = 192 | n >> 6;
|
|
1087
|
+
} else {
|
|
1088
|
+
if (65535 >= n) {
|
|
1089
|
+
if (g + 2 >= m)
|
|
1090
|
+
break;
|
|
1091
|
+
f[g++] = 224 | n >> 12;
|
|
1092
|
+
} else {
|
|
1093
|
+
if (g + 3 >= m)
|
|
1094
|
+
break;
|
|
1095
|
+
f[g++] = 240 | n >> 18;
|
|
1096
|
+
f[g++] = 128 | n >> 12 & 63;
|
|
1097
|
+
}
|
|
1098
|
+
f[g++] = 128 | n >> 6 & 63;
|
|
1099
|
+
}
|
|
1100
|
+
f[g++] = 128 | n & 63;
|
|
1101
|
+
}
|
|
1102
|
+
}
|
|
1103
|
+
f[g] = 0;
|
|
1104
|
+
}
|
|
1105
|
+
} else if (g)
|
|
1106
|
+
for (g = 0;g < f; ++g)
|
|
1107
|
+
l = e.charCodeAt(g), 255 < l && (S(m), L("String has UTF-16 code units that do not fit in 8 bits")), A[m + g] = l;
|
|
1108
|
+
else
|
|
1109
|
+
for (g = 0;g < f; ++g)
|
|
1110
|
+
A[m + g] = e[g];
|
|
1111
|
+
d !== null && d.push(S, k);
|
|
1112
|
+
return k;
|
|
1113
|
+
}, argPackAdvance: 8, readValueFromPointer: Xa, V: function(d) {
|
|
1114
|
+
S(d);
|
|
1115
|
+
} });
|
|
1116
|
+
},
|
|
1117
|
+
i: function(a, b, c) {
|
|
1118
|
+
c = N(c);
|
|
1119
|
+
if (b === 2) {
|
|
1120
|
+
var d = tb;
|
|
1121
|
+
var e = ub;
|
|
1122
|
+
var f = vb;
|
|
1123
|
+
var g = () => ka;
|
|
1124
|
+
var k = 1;
|
|
1125
|
+
} else
|
|
1126
|
+
b === 4 && (d = wb, e = xb, f = yb, g = () => E, k = 2);
|
|
1127
|
+
W(a, { name: c, fromWireType: function(m) {
|
|
1128
|
+
for (var l = E[m >> 2], n = g(), p, r = m + 4, u = 0;u <= l; ++u) {
|
|
1129
|
+
var t = m + 4 + u * b;
|
|
1130
|
+
if (u == l || n[t >> k] == 0)
|
|
1131
|
+
r = d(r, t - r), p === undefined ? p = r : (p += String.fromCharCode(0), p += r), r = t + b;
|
|
1132
|
+
}
|
|
1133
|
+
S(m);
|
|
1134
|
+
return p;
|
|
1135
|
+
}, toWireType: function(m, l) {
|
|
1136
|
+
typeof l != "string" && L("Cannot pass non-string to C++ string type " + c);
|
|
1137
|
+
var n = f(l), p = Ib(4 + n + b);
|
|
1138
|
+
E[p >> 2] = n >> k;
|
|
1139
|
+
e(l, p + 4, n + b);
|
|
1140
|
+
m !== null && m.push(S, p);
|
|
1141
|
+
return p;
|
|
1142
|
+
}, argPackAdvance: 8, readValueFromPointer: Xa, V: function(m) {
|
|
1143
|
+
S(m);
|
|
1144
|
+
} });
|
|
1145
|
+
},
|
|
1146
|
+
k: function(a, b, c, d, e, f) {
|
|
1147
|
+
Va[a] = { name: N(b), fa: Z(c, d), W: Z(e, f), ia: [] };
|
|
1148
|
+
},
|
|
1149
|
+
h: function(a, b, c, d, e, f, g, k, m, l) {
|
|
1150
|
+
Va[a].ia.push({ oa: N(b), ta: c, ra: Z(d, e), sa: f, za: g, ya: Z(k, m), Aa: l });
|
|
1151
|
+
},
|
|
1152
|
+
C: function(a, b) {
|
|
1153
|
+
b = N(b);
|
|
1154
|
+
W(a, {
|
|
1155
|
+
va: true,
|
|
1156
|
+
name: b,
|
|
1157
|
+
argPackAdvance: 0,
|
|
1158
|
+
fromWireType: function() {},
|
|
1159
|
+
toWireType: function() {}
|
|
1160
|
+
});
|
|
1161
|
+
},
|
|
1162
|
+
s: function(a, b, c, d, e) {
|
|
1163
|
+
a = Bb[a];
|
|
1164
|
+
b = M(b);
|
|
1165
|
+
c = Ab(c);
|
|
1166
|
+
var f = [];
|
|
1167
|
+
E[d >> 2] = Ea(f);
|
|
1168
|
+
return a(b, c, f, e);
|
|
1169
|
+
},
|
|
1170
|
+
t: function(a, b, c, d) {
|
|
1171
|
+
a = Bb[a];
|
|
1172
|
+
b = M(b);
|
|
1173
|
+
c = Ab(c);
|
|
1174
|
+
a(b, c, null, d);
|
|
1175
|
+
},
|
|
1176
|
+
g: qb,
|
|
1177
|
+
m: function(a, b) {
|
|
1178
|
+
var c = Db(a, b), d = c[0];
|
|
1179
|
+
b = d.name + "_$" + c.slice(1).map(function(g) {
|
|
1180
|
+
return g.name;
|
|
1181
|
+
}).join("_") + "$";
|
|
1182
|
+
var e = Eb[b];
|
|
1183
|
+
if (e !== undefined)
|
|
1184
|
+
return e;
|
|
1185
|
+
var f = Array(a - 1);
|
|
1186
|
+
e = Cb((g, k, m, l) => {
|
|
1187
|
+
for (var n = 0, p = 0;p < a - 1; ++p)
|
|
1188
|
+
f[p] = c[p + 1].readValueFromPointer(l + n), n += c[p + 1].argPackAdvance;
|
|
1189
|
+
g = g[k].apply(g, f);
|
|
1190
|
+
for (p = 0;p < a - 1; ++p)
|
|
1191
|
+
c[p + 1].ma && c[p + 1].ma(f[p]);
|
|
1192
|
+
if (!d.va)
|
|
1193
|
+
return d.toWireType(m, g);
|
|
1194
|
+
});
|
|
1195
|
+
return Eb[b] = e;
|
|
1196
|
+
},
|
|
1197
|
+
D: function(a) {
|
|
1198
|
+
4 < a && (J[a].ga += 1);
|
|
1199
|
+
},
|
|
1200
|
+
r: function(a) {
|
|
1201
|
+
var b = M(a);
|
|
1202
|
+
Wa(b);
|
|
1203
|
+
qb(a);
|
|
1204
|
+
},
|
|
1205
|
+
c: function() {
|
|
1206
|
+
x("");
|
|
1207
|
+
},
|
|
1208
|
+
x: function(a, b, c) {
|
|
1209
|
+
A.copyWithin(a, b, b + c);
|
|
1210
|
+
},
|
|
1211
|
+
w: function(a) {
|
|
1212
|
+
var b = A.length;
|
|
1213
|
+
a >>>= 0;
|
|
1214
|
+
if (2147483648 < a)
|
|
1215
|
+
return false;
|
|
1216
|
+
for (var c = 1;4 >= c; c *= 2) {
|
|
1217
|
+
var d = b * (1 + 0.2 / c);
|
|
1218
|
+
d = Math.min(d, a + 100663296);
|
|
1219
|
+
var e = Math;
|
|
1220
|
+
d = Math.max(a, d);
|
|
1221
|
+
e = e.min.call(e, 2147483648, d + (65536 - d % 65536) % 65536);
|
|
1222
|
+
a: {
|
|
1223
|
+
try {
|
|
1224
|
+
fa.grow(e - ia.byteLength + 65535 >>> 16);
|
|
1225
|
+
na();
|
|
1226
|
+
var f = 1;
|
|
1227
|
+
break a;
|
|
1228
|
+
} catch (g) {}
|
|
1229
|
+
f = undefined;
|
|
1230
|
+
}
|
|
1231
|
+
if (f)
|
|
1232
|
+
return true;
|
|
1233
|
+
}
|
|
1234
|
+
return false;
|
|
1235
|
+
},
|
|
1236
|
+
z: function() {
|
|
1237
|
+
return 52;
|
|
1238
|
+
},
|
|
1239
|
+
u: function() {
|
|
1240
|
+
return 70;
|
|
1241
|
+
},
|
|
1242
|
+
y: function(a, b, c, d) {
|
|
1243
|
+
for (var e = 0, f = 0;f < c; f++) {
|
|
1244
|
+
var g = E[b >> 2], k = E[b + 4 >> 2];
|
|
1245
|
+
b += 8;
|
|
1246
|
+
for (var m = 0;m < k; m++) {
|
|
1247
|
+
var l = A[g + m], n = Fb[a];
|
|
1248
|
+
l === 0 || l === 10 ? ((a === 1 ? ea : v)(z(n, 0)), n.length = 0) : n.push(l);
|
|
1249
|
+
}
|
|
1250
|
+
e += k;
|
|
1251
|
+
}
|
|
1252
|
+
E[d >> 2] = e;
|
|
1253
|
+
return 0;
|
|
1254
|
+
}
|
|
1255
|
+
};
|
|
1256
|
+
(function() {
|
|
1257
|
+
function a(e) {
|
|
1258
|
+
h.asm = e.exports;
|
|
1259
|
+
fa = h.asm.E;
|
|
1260
|
+
na();
|
|
1261
|
+
oa = h.asm.J;
|
|
1262
|
+
qa.unshift(h.asm.F);
|
|
1263
|
+
F--;
|
|
1264
|
+
h.monitorRunDependencies && h.monitorRunDependencies(F);
|
|
1265
|
+
F == 0 && (ta !== null && (clearInterval(ta), ta = null), G && (e = G, G = null, e()));
|
|
1266
|
+
}
|
|
1267
|
+
function b(e) {
|
|
1268
|
+
a(e.instance);
|
|
1269
|
+
}
|
|
1270
|
+
function c(e) {
|
|
1271
|
+
return ya().then(function(f) {
|
|
1272
|
+
return WebAssembly.instantiate(f, d);
|
|
1273
|
+
}).then(function(f) {
|
|
1274
|
+
return f;
|
|
1275
|
+
}).then(e, function(f) {
|
|
1276
|
+
v("failed to asynchronously prepare wasm: " + f);
|
|
1277
|
+
x(f);
|
|
1278
|
+
});
|
|
1279
|
+
}
|
|
1280
|
+
var d = { a: Jb };
|
|
1281
|
+
F++;
|
|
1282
|
+
h.monitorRunDependencies && h.monitorRunDependencies(F);
|
|
1283
|
+
if (h.instantiateWasm)
|
|
1284
|
+
try {
|
|
1285
|
+
return h.instantiateWasm(d, a);
|
|
1286
|
+
} catch (e) {
|
|
1287
|
+
v("Module.instantiateWasm callback failed with error: " + e), ca(e);
|
|
1288
|
+
}
|
|
1289
|
+
(function() {
|
|
1290
|
+
return w || typeof WebAssembly.instantiateStreaming != "function" || ua(H) || typeof fetch != "function" ? c(b) : fetch(H, { credentials: "same-origin" }).then(function(e) {
|
|
1291
|
+
return WebAssembly.instantiateStreaming(e, d).then(b, function(f) {
|
|
1292
|
+
v("wasm streaming compile failed: " + f);
|
|
1293
|
+
v("falling back to ArrayBuffer instantiation");
|
|
1294
|
+
return c(b);
|
|
1295
|
+
});
|
|
1296
|
+
});
|
|
1297
|
+
})().catch(ca);
|
|
1298
|
+
return {};
|
|
1299
|
+
})();
|
|
1300
|
+
h.___wasm_call_ctors = function() {
|
|
1301
|
+
return (h.___wasm_call_ctors = h.asm.F).apply(null, arguments);
|
|
1302
|
+
};
|
|
1303
|
+
var Ka = h.___getTypeName = function() {
|
|
1304
|
+
return (Ka = h.___getTypeName = h.asm.G).apply(null, arguments);
|
|
1305
|
+
};
|
|
1306
|
+
h.__embind_initialize_bindings = function() {
|
|
1307
|
+
return (h.__embind_initialize_bindings = h.asm.H).apply(null, arguments);
|
|
1308
|
+
};
|
|
1309
|
+
var Ib = h._malloc = function() {
|
|
1310
|
+
return (Ib = h._malloc = h.asm.I).apply(null, arguments);
|
|
1311
|
+
}, S = h._free = function() {
|
|
1312
|
+
return (S = h._free = h.asm.K).apply(null, arguments);
|
|
1313
|
+
};
|
|
1314
|
+
h.dynCall_jiji = function() {
|
|
1315
|
+
return (h.dynCall_jiji = h.asm.L).apply(null, arguments);
|
|
1316
|
+
};
|
|
1317
|
+
var Kb;
|
|
1318
|
+
G = function Lb() {
|
|
1319
|
+
Kb || Mb();
|
|
1320
|
+
Kb || (G = Lb);
|
|
1321
|
+
};
|
|
1322
|
+
function Mb() {
|
|
1323
|
+
function a() {
|
|
1324
|
+
if (!Kb && (Kb = true, h.calledRun = true, !ha)) {
|
|
1325
|
+
za(qa);
|
|
1326
|
+
aa(h);
|
|
1327
|
+
if (h.onRuntimeInitialized)
|
|
1328
|
+
h.onRuntimeInitialized();
|
|
1329
|
+
if (h.postRun)
|
|
1330
|
+
for (typeof h.postRun == "function" && (h.postRun = [h.postRun]);h.postRun.length; ) {
|
|
1331
|
+
var b = h.postRun.shift();
|
|
1332
|
+
ra.unshift(b);
|
|
1333
|
+
}
|
|
1334
|
+
za(ra);
|
|
1335
|
+
}
|
|
1336
|
+
}
|
|
1337
|
+
if (!(0 < F)) {
|
|
1338
|
+
if (h.preRun)
|
|
1339
|
+
for (typeof h.preRun == "function" && (h.preRun = [h.preRun]);h.preRun.length; )
|
|
1340
|
+
sa();
|
|
1341
|
+
za(pa);
|
|
1342
|
+
0 < F || (h.setStatus ? (h.setStatus("Running..."), setTimeout(function() {
|
|
1343
|
+
setTimeout(function() {
|
|
1344
|
+
h.setStatus("");
|
|
1345
|
+
}, 1);
|
|
1346
|
+
a();
|
|
1347
|
+
}, 1)) : a());
|
|
1348
|
+
}
|
|
1349
|
+
}
|
|
1350
|
+
if (h.preInit)
|
|
1351
|
+
for (typeof h.preInit == "function" && (h.preInit = [h.preInit]);0 < h.preInit.length; )
|
|
1352
|
+
h.preInit.pop()();
|
|
1353
|
+
Mb();
|
|
1354
|
+
return loadYoga2.ready;
|
|
1355
|
+
};
|
|
1356
|
+
})();
|
|
1357
|
+
var yoga_wasm_base64_esm_default = loadYoga;
|
|
1358
|
+
|
|
1359
|
+
// ../../node_modules/yoga-layout/dist/src/generated/YGEnums.js
|
|
1360
|
+
var Align = /* @__PURE__ */ function(Align2) {
|
|
1361
|
+
Align2[Align2["Auto"] = 0] = "Auto";
|
|
1362
|
+
Align2[Align2["FlexStart"] = 1] = "FlexStart";
|
|
1363
|
+
Align2[Align2["Center"] = 2] = "Center";
|
|
1364
|
+
Align2[Align2["FlexEnd"] = 3] = "FlexEnd";
|
|
1365
|
+
Align2[Align2["Stretch"] = 4] = "Stretch";
|
|
1366
|
+
Align2[Align2["Baseline"] = 5] = "Baseline";
|
|
1367
|
+
Align2[Align2["SpaceBetween"] = 6] = "SpaceBetween";
|
|
1368
|
+
Align2[Align2["SpaceAround"] = 7] = "SpaceAround";
|
|
1369
|
+
Align2[Align2["SpaceEvenly"] = 8] = "SpaceEvenly";
|
|
1370
|
+
return Align2;
|
|
1371
|
+
}({});
|
|
1372
|
+
var BoxSizing = /* @__PURE__ */ function(BoxSizing2) {
|
|
1373
|
+
BoxSizing2[BoxSizing2["BorderBox"] = 0] = "BorderBox";
|
|
1374
|
+
BoxSizing2[BoxSizing2["ContentBox"] = 1] = "ContentBox";
|
|
1375
|
+
return BoxSizing2;
|
|
1376
|
+
}({});
|
|
1377
|
+
var Dimension = /* @__PURE__ */ function(Dimension2) {
|
|
1378
|
+
Dimension2[Dimension2["Width"] = 0] = "Width";
|
|
1379
|
+
Dimension2[Dimension2["Height"] = 1] = "Height";
|
|
1380
|
+
return Dimension2;
|
|
1381
|
+
}({});
|
|
1382
|
+
var Direction = /* @__PURE__ */ function(Direction2) {
|
|
1383
|
+
Direction2[Direction2["Inherit"] = 0] = "Inherit";
|
|
1384
|
+
Direction2[Direction2["LTR"] = 1] = "LTR";
|
|
1385
|
+
Direction2[Direction2["RTL"] = 2] = "RTL";
|
|
1386
|
+
return Direction2;
|
|
1387
|
+
}({});
|
|
1388
|
+
var Display = /* @__PURE__ */ function(Display2) {
|
|
1389
|
+
Display2[Display2["Flex"] = 0] = "Flex";
|
|
1390
|
+
Display2[Display2["None"] = 1] = "None";
|
|
1391
|
+
Display2[Display2["Contents"] = 2] = "Contents";
|
|
1392
|
+
return Display2;
|
|
1393
|
+
}({});
|
|
1394
|
+
var Edge = /* @__PURE__ */ function(Edge2) {
|
|
1395
|
+
Edge2[Edge2["Left"] = 0] = "Left";
|
|
1396
|
+
Edge2[Edge2["Top"] = 1] = "Top";
|
|
1397
|
+
Edge2[Edge2["Right"] = 2] = "Right";
|
|
1398
|
+
Edge2[Edge2["Bottom"] = 3] = "Bottom";
|
|
1399
|
+
Edge2[Edge2["Start"] = 4] = "Start";
|
|
1400
|
+
Edge2[Edge2["End"] = 5] = "End";
|
|
1401
|
+
Edge2[Edge2["Horizontal"] = 6] = "Horizontal";
|
|
1402
|
+
Edge2[Edge2["Vertical"] = 7] = "Vertical";
|
|
1403
|
+
Edge2[Edge2["All"] = 8] = "All";
|
|
1404
|
+
return Edge2;
|
|
1405
|
+
}({});
|
|
1406
|
+
var Errata = /* @__PURE__ */ function(Errata2) {
|
|
1407
|
+
Errata2[Errata2["None"] = 0] = "None";
|
|
1408
|
+
Errata2[Errata2["StretchFlexBasis"] = 1] = "StretchFlexBasis";
|
|
1409
|
+
Errata2[Errata2["AbsolutePositionWithoutInsetsExcludesPadding"] = 2] = "AbsolutePositionWithoutInsetsExcludesPadding";
|
|
1410
|
+
Errata2[Errata2["AbsolutePercentAgainstInnerSize"] = 4] = "AbsolutePercentAgainstInnerSize";
|
|
1411
|
+
Errata2[Errata2["All"] = 2147483647] = "All";
|
|
1412
|
+
Errata2[Errata2["Classic"] = 2147483646] = "Classic";
|
|
1413
|
+
return Errata2;
|
|
1414
|
+
}({});
|
|
1415
|
+
var ExperimentalFeature = /* @__PURE__ */ function(ExperimentalFeature2) {
|
|
1416
|
+
ExperimentalFeature2[ExperimentalFeature2["WebFlexBasis"] = 0] = "WebFlexBasis";
|
|
1417
|
+
return ExperimentalFeature2;
|
|
1418
|
+
}({});
|
|
1419
|
+
var FlexDirection = /* @__PURE__ */ function(FlexDirection2) {
|
|
1420
|
+
FlexDirection2[FlexDirection2["Column"] = 0] = "Column";
|
|
1421
|
+
FlexDirection2[FlexDirection2["ColumnReverse"] = 1] = "ColumnReverse";
|
|
1422
|
+
FlexDirection2[FlexDirection2["Row"] = 2] = "Row";
|
|
1423
|
+
FlexDirection2[FlexDirection2["RowReverse"] = 3] = "RowReverse";
|
|
1424
|
+
return FlexDirection2;
|
|
1425
|
+
}({});
|
|
1426
|
+
var Gutter = /* @__PURE__ */ function(Gutter2) {
|
|
1427
|
+
Gutter2[Gutter2["Column"] = 0] = "Column";
|
|
1428
|
+
Gutter2[Gutter2["Row"] = 1] = "Row";
|
|
1429
|
+
Gutter2[Gutter2["All"] = 2] = "All";
|
|
1430
|
+
return Gutter2;
|
|
1431
|
+
}({});
|
|
1432
|
+
var Justify = /* @__PURE__ */ function(Justify2) {
|
|
1433
|
+
Justify2[Justify2["FlexStart"] = 0] = "FlexStart";
|
|
1434
|
+
Justify2[Justify2["Center"] = 1] = "Center";
|
|
1435
|
+
Justify2[Justify2["FlexEnd"] = 2] = "FlexEnd";
|
|
1436
|
+
Justify2[Justify2["SpaceBetween"] = 3] = "SpaceBetween";
|
|
1437
|
+
Justify2[Justify2["SpaceAround"] = 4] = "SpaceAround";
|
|
1438
|
+
Justify2[Justify2["SpaceEvenly"] = 5] = "SpaceEvenly";
|
|
1439
|
+
return Justify2;
|
|
1440
|
+
}({});
|
|
1441
|
+
var LogLevel = /* @__PURE__ */ function(LogLevel2) {
|
|
1442
|
+
LogLevel2[LogLevel2["Error"] = 0] = "Error";
|
|
1443
|
+
LogLevel2[LogLevel2["Warn"] = 1] = "Warn";
|
|
1444
|
+
LogLevel2[LogLevel2["Info"] = 2] = "Info";
|
|
1445
|
+
LogLevel2[LogLevel2["Debug"] = 3] = "Debug";
|
|
1446
|
+
LogLevel2[LogLevel2["Verbose"] = 4] = "Verbose";
|
|
1447
|
+
LogLevel2[LogLevel2["Fatal"] = 5] = "Fatal";
|
|
1448
|
+
return LogLevel2;
|
|
1449
|
+
}({});
|
|
1450
|
+
var MeasureMode = /* @__PURE__ */ function(MeasureMode2) {
|
|
1451
|
+
MeasureMode2[MeasureMode2["Undefined"] = 0] = "Undefined";
|
|
1452
|
+
MeasureMode2[MeasureMode2["Exactly"] = 1] = "Exactly";
|
|
1453
|
+
MeasureMode2[MeasureMode2["AtMost"] = 2] = "AtMost";
|
|
1454
|
+
return MeasureMode2;
|
|
1455
|
+
}({});
|
|
1456
|
+
var NodeType = /* @__PURE__ */ function(NodeType2) {
|
|
1457
|
+
NodeType2[NodeType2["Default"] = 0] = "Default";
|
|
1458
|
+
NodeType2[NodeType2["Text"] = 1] = "Text";
|
|
1459
|
+
return NodeType2;
|
|
1460
|
+
}({});
|
|
1461
|
+
var Overflow = /* @__PURE__ */ function(Overflow2) {
|
|
1462
|
+
Overflow2[Overflow2["Visible"] = 0] = "Visible";
|
|
1463
|
+
Overflow2[Overflow2["Hidden"] = 1] = "Hidden";
|
|
1464
|
+
Overflow2[Overflow2["Scroll"] = 2] = "Scroll";
|
|
1465
|
+
return Overflow2;
|
|
1466
|
+
}({});
|
|
1467
|
+
var PositionType = /* @__PURE__ */ function(PositionType2) {
|
|
1468
|
+
PositionType2[PositionType2["Static"] = 0] = "Static";
|
|
1469
|
+
PositionType2[PositionType2["Relative"] = 1] = "Relative";
|
|
1470
|
+
PositionType2[PositionType2["Absolute"] = 2] = "Absolute";
|
|
1471
|
+
return PositionType2;
|
|
1472
|
+
}({});
|
|
1473
|
+
var Unit = /* @__PURE__ */ function(Unit2) {
|
|
1474
|
+
Unit2[Unit2["Undefined"] = 0] = "Undefined";
|
|
1475
|
+
Unit2[Unit2["Point"] = 1] = "Point";
|
|
1476
|
+
Unit2[Unit2["Percent"] = 2] = "Percent";
|
|
1477
|
+
Unit2[Unit2["Auto"] = 3] = "Auto";
|
|
1478
|
+
return Unit2;
|
|
1479
|
+
}({});
|
|
1480
|
+
var Wrap = /* @__PURE__ */ function(Wrap2) {
|
|
1481
|
+
Wrap2[Wrap2["NoWrap"] = 0] = "NoWrap";
|
|
1482
|
+
Wrap2[Wrap2["Wrap"] = 1] = "Wrap";
|
|
1483
|
+
Wrap2[Wrap2["WrapReverse"] = 2] = "WrapReverse";
|
|
1484
|
+
return Wrap2;
|
|
1485
|
+
}({});
|
|
1486
|
+
var constants = {
|
|
1487
|
+
ALIGN_AUTO: Align.Auto,
|
|
1488
|
+
ALIGN_FLEX_START: Align.FlexStart,
|
|
1489
|
+
ALIGN_CENTER: Align.Center,
|
|
1490
|
+
ALIGN_FLEX_END: Align.FlexEnd,
|
|
1491
|
+
ALIGN_STRETCH: Align.Stretch,
|
|
1492
|
+
ALIGN_BASELINE: Align.Baseline,
|
|
1493
|
+
ALIGN_SPACE_BETWEEN: Align.SpaceBetween,
|
|
1494
|
+
ALIGN_SPACE_AROUND: Align.SpaceAround,
|
|
1495
|
+
ALIGN_SPACE_EVENLY: Align.SpaceEvenly,
|
|
1496
|
+
BOX_SIZING_BORDER_BOX: BoxSizing.BorderBox,
|
|
1497
|
+
BOX_SIZING_CONTENT_BOX: BoxSizing.ContentBox,
|
|
1498
|
+
DIMENSION_WIDTH: Dimension.Width,
|
|
1499
|
+
DIMENSION_HEIGHT: Dimension.Height,
|
|
1500
|
+
DIRECTION_INHERIT: Direction.Inherit,
|
|
1501
|
+
DIRECTION_LTR: Direction.LTR,
|
|
1502
|
+
DIRECTION_RTL: Direction.RTL,
|
|
1503
|
+
DISPLAY_FLEX: Display.Flex,
|
|
1504
|
+
DISPLAY_NONE: Display.None,
|
|
1505
|
+
DISPLAY_CONTENTS: Display.Contents,
|
|
1506
|
+
EDGE_LEFT: Edge.Left,
|
|
1507
|
+
EDGE_TOP: Edge.Top,
|
|
1508
|
+
EDGE_RIGHT: Edge.Right,
|
|
1509
|
+
EDGE_BOTTOM: Edge.Bottom,
|
|
1510
|
+
EDGE_START: Edge.Start,
|
|
1511
|
+
EDGE_END: Edge.End,
|
|
1512
|
+
EDGE_HORIZONTAL: Edge.Horizontal,
|
|
1513
|
+
EDGE_VERTICAL: Edge.Vertical,
|
|
1514
|
+
EDGE_ALL: Edge.All,
|
|
1515
|
+
ERRATA_NONE: Errata.None,
|
|
1516
|
+
ERRATA_STRETCH_FLEX_BASIS: Errata.StretchFlexBasis,
|
|
1517
|
+
ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING: Errata.AbsolutePositionWithoutInsetsExcludesPadding,
|
|
1518
|
+
ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE: Errata.AbsolutePercentAgainstInnerSize,
|
|
1519
|
+
ERRATA_ALL: Errata.All,
|
|
1520
|
+
ERRATA_CLASSIC: Errata.Classic,
|
|
1521
|
+
EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS: ExperimentalFeature.WebFlexBasis,
|
|
1522
|
+
FLEX_DIRECTION_COLUMN: FlexDirection.Column,
|
|
1523
|
+
FLEX_DIRECTION_COLUMN_REVERSE: FlexDirection.ColumnReverse,
|
|
1524
|
+
FLEX_DIRECTION_ROW: FlexDirection.Row,
|
|
1525
|
+
FLEX_DIRECTION_ROW_REVERSE: FlexDirection.RowReverse,
|
|
1526
|
+
GUTTER_COLUMN: Gutter.Column,
|
|
1527
|
+
GUTTER_ROW: Gutter.Row,
|
|
1528
|
+
GUTTER_ALL: Gutter.All,
|
|
1529
|
+
JUSTIFY_FLEX_START: Justify.FlexStart,
|
|
1530
|
+
JUSTIFY_CENTER: Justify.Center,
|
|
1531
|
+
JUSTIFY_FLEX_END: Justify.FlexEnd,
|
|
1532
|
+
JUSTIFY_SPACE_BETWEEN: Justify.SpaceBetween,
|
|
1533
|
+
JUSTIFY_SPACE_AROUND: Justify.SpaceAround,
|
|
1534
|
+
JUSTIFY_SPACE_EVENLY: Justify.SpaceEvenly,
|
|
1535
|
+
LOG_LEVEL_ERROR: LogLevel.Error,
|
|
1536
|
+
LOG_LEVEL_WARN: LogLevel.Warn,
|
|
1537
|
+
LOG_LEVEL_INFO: LogLevel.Info,
|
|
1538
|
+
LOG_LEVEL_DEBUG: LogLevel.Debug,
|
|
1539
|
+
LOG_LEVEL_VERBOSE: LogLevel.Verbose,
|
|
1540
|
+
LOG_LEVEL_FATAL: LogLevel.Fatal,
|
|
1541
|
+
MEASURE_MODE_UNDEFINED: MeasureMode.Undefined,
|
|
1542
|
+
MEASURE_MODE_EXACTLY: MeasureMode.Exactly,
|
|
1543
|
+
MEASURE_MODE_AT_MOST: MeasureMode.AtMost,
|
|
1544
|
+
NODE_TYPE_DEFAULT: NodeType.Default,
|
|
1545
|
+
NODE_TYPE_TEXT: NodeType.Text,
|
|
1546
|
+
OVERFLOW_VISIBLE: Overflow.Visible,
|
|
1547
|
+
OVERFLOW_HIDDEN: Overflow.Hidden,
|
|
1548
|
+
OVERFLOW_SCROLL: Overflow.Scroll,
|
|
1549
|
+
POSITION_TYPE_STATIC: PositionType.Static,
|
|
1550
|
+
POSITION_TYPE_RELATIVE: PositionType.Relative,
|
|
1551
|
+
POSITION_TYPE_ABSOLUTE: PositionType.Absolute,
|
|
1552
|
+
UNIT_UNDEFINED: Unit.Undefined,
|
|
1553
|
+
UNIT_POINT: Unit.Point,
|
|
1554
|
+
UNIT_PERCENT: Unit.Percent,
|
|
1555
|
+
UNIT_AUTO: Unit.Auto,
|
|
1556
|
+
WRAP_NO_WRAP: Wrap.NoWrap,
|
|
1557
|
+
WRAP_WRAP: Wrap.Wrap,
|
|
1558
|
+
WRAP_WRAP_REVERSE: Wrap.WrapReverse
|
|
1559
|
+
};
|
|
1560
|
+
var YGEnums_default = constants;
|
|
1561
|
+
|
|
1562
|
+
// ../../node_modules/yoga-layout/dist/src/wrapAssembly.js
|
|
1563
|
+
function wrapAssembly(lib) {
|
|
1564
|
+
function patch(prototype, name, fn) {
|
|
1565
|
+
const original = prototype[name];
|
|
1566
|
+
prototype[name] = function() {
|
|
1567
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0;_key < _len; _key++) {
|
|
1568
|
+
args[_key] = arguments[_key];
|
|
1569
|
+
}
|
|
1570
|
+
return fn.call(this, original, ...args);
|
|
1571
|
+
};
|
|
1138
1572
|
}
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1573
|
+
for (const fnName of ["setPosition", "setMargin", "setFlexBasis", "setWidth", "setHeight", "setMinWidth", "setMinHeight", "setMaxWidth", "setMaxHeight", "setPadding", "setGap"]) {
|
|
1574
|
+
const methods = {
|
|
1575
|
+
[Unit.Point]: lib.Node.prototype[fnName],
|
|
1576
|
+
[Unit.Percent]: lib.Node.prototype[`${fnName}Percent`],
|
|
1577
|
+
[Unit.Auto]: lib.Node.prototype[`${fnName}Auto`]
|
|
1578
|
+
};
|
|
1579
|
+
patch(lib.Node.prototype, fnName, function(original) {
|
|
1580
|
+
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1;_key2 < _len2; _key2++) {
|
|
1581
|
+
args[_key2 - 1] = arguments[_key2];
|
|
1582
|
+
}
|
|
1583
|
+
const value = args.pop();
|
|
1584
|
+
let unit, asNumber;
|
|
1585
|
+
if (value === "auto") {
|
|
1586
|
+
unit = Unit.Auto;
|
|
1587
|
+
asNumber = undefined;
|
|
1588
|
+
} else if (typeof value === "object") {
|
|
1589
|
+
unit = value.unit;
|
|
1590
|
+
asNumber = value.valueOf();
|
|
1591
|
+
} else {
|
|
1592
|
+
unit = typeof value === "string" && value.endsWith("%") ? Unit.Percent : Unit.Point;
|
|
1593
|
+
asNumber = parseFloat(value);
|
|
1594
|
+
if (value !== undefined && !Number.isNaN(value) && Number.isNaN(asNumber)) {
|
|
1595
|
+
throw new Error(`Invalid value ${value} for ${fnName}`);
|
|
1596
|
+
}
|
|
1597
|
+
}
|
|
1598
|
+
if (!methods[unit])
|
|
1599
|
+
throw new Error(`Failed to execute "${fnName}": Unsupported unit '${value}'`);
|
|
1600
|
+
if (asNumber !== undefined) {
|
|
1601
|
+
return methods[unit].call(this, ...args, asNumber);
|
|
1602
|
+
} else {
|
|
1603
|
+
return methods[unit].call(this, ...args);
|
|
1604
|
+
}
|
|
1605
|
+
});
|
|
1143
1606
|
}
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
});
|
|
1156
|
-
if (this.dirtiedCallback.ptr) {
|
|
1157
|
-
yg.ygNodeSetDirtiedFunc(this.ptr, this.dirtiedCallback.ptr);
|
|
1607
|
+
function wrapMeasureFunction(measureFunction) {
|
|
1608
|
+
return lib.MeasureCallback.implement({
|
|
1609
|
+
measure: function() {
|
|
1610
|
+
const {
|
|
1611
|
+
width,
|
|
1612
|
+
height
|
|
1613
|
+
} = measureFunction(...arguments);
|
|
1614
|
+
return {
|
|
1615
|
+
width: width ?? NaN,
|
|
1616
|
+
height: height ?? NaN
|
|
1617
|
+
};
|
|
1158
1618
|
}
|
|
1159
|
-
}
|
|
1619
|
+
});
|
|
1160
1620
|
}
|
|
1161
|
-
|
|
1162
|
-
if (
|
|
1163
|
-
return;
|
|
1164
|
-
|
|
1165
|
-
this.
|
|
1166
|
-
this.dirtiedCallback = null;
|
|
1621
|
+
patch(lib.Node.prototype, "setMeasureFunc", function(original, measureFunc) {
|
|
1622
|
+
if (measureFunc) {
|
|
1623
|
+
return original.call(this, wrapMeasureFunction(measureFunc));
|
|
1624
|
+
} else {
|
|
1625
|
+
return this.unsetMeasureFunc();
|
|
1167
1626
|
}
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
return yg.ygNodeGetDirtiedFunc(this.ptr) !== null;
|
|
1627
|
+
});
|
|
1628
|
+
function wrapDirtiedFunc(dirtiedFunction) {
|
|
1629
|
+
return lib.DirtiedCallback.implement({
|
|
1630
|
+
dirtied: dirtiedFunction
|
|
1631
|
+
});
|
|
1174
1632
|
}
|
|
1633
|
+
patch(lib.Node.prototype, "setDirtiedFunc", function(original, dirtiedFunc) {
|
|
1634
|
+
original.call(this, wrapDirtiedFunc(dirtiedFunc));
|
|
1635
|
+
});
|
|
1636
|
+
patch(lib.Config.prototype, "free", function() {
|
|
1637
|
+
lib.Config.destroy(this);
|
|
1638
|
+
});
|
|
1639
|
+
patch(lib.Node, "create", (_, config) => {
|
|
1640
|
+
return config ? lib.Node.createWithConfig(config) : lib.Node.createDefault();
|
|
1641
|
+
});
|
|
1642
|
+
patch(lib.Node.prototype, "free", function() {
|
|
1643
|
+
lib.Node.destroy(this);
|
|
1644
|
+
});
|
|
1645
|
+
patch(lib.Node.prototype, "freeRecursive", function() {
|
|
1646
|
+
for (let t = 0, T = this.getChildCount();t < T; ++t) {
|
|
1647
|
+
this.getChild(0).freeRecursive();
|
|
1648
|
+
}
|
|
1649
|
+
this.free();
|
|
1650
|
+
});
|
|
1651
|
+
patch(lib.Node.prototype, "calculateLayout", function(original) {
|
|
1652
|
+
let width = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NaN;
|
|
1653
|
+
let height = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : NaN;
|
|
1654
|
+
let direction = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Direction.LTR;
|
|
1655
|
+
return original.call(this, width, height, direction);
|
|
1656
|
+
});
|
|
1657
|
+
return {
|
|
1658
|
+
Config: lib.Config,
|
|
1659
|
+
Node: lib.Node,
|
|
1660
|
+
...YGEnums_default
|
|
1661
|
+
};
|
|
1175
1662
|
}
|
|
1176
1663
|
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
this.ptr = ptr;
|
|
1181
|
-
}
|
|
1182
|
-
static create() {
|
|
1183
|
-
const ptr = yg.ygConfigNew();
|
|
1184
|
-
if (!ptr)
|
|
1185
|
-
throw new Error("Failed to create config");
|
|
1186
|
-
return new Config(ptr);
|
|
1187
|
-
}
|
|
1188
|
-
static destroy(config) {
|
|
1189
|
-
config.free();
|
|
1190
|
-
}
|
|
1191
|
-
free() {
|
|
1192
|
-
yg.ygConfigFree(this.ptr);
|
|
1193
|
-
}
|
|
1194
|
-
setUseWebDefaults(useWebDefaults) {
|
|
1195
|
-
yg.ygConfigSetUseWebDefaults(this.ptr, useWebDefaults);
|
|
1196
|
-
}
|
|
1197
|
-
useWebDefaults() {
|
|
1198
|
-
return yg.ygConfigGetUseWebDefaults(this.ptr);
|
|
1199
|
-
}
|
|
1200
|
-
setPointScaleFactor(pointScaleFactor) {
|
|
1201
|
-
yg.ygConfigSetPointScaleFactor(this.ptr, pointScaleFactor);
|
|
1202
|
-
}
|
|
1203
|
-
getPointScaleFactor() {
|
|
1204
|
-
return yg.ygConfigGetPointScaleFactor(this.ptr);
|
|
1205
|
-
}
|
|
1206
|
-
setErrata(errata) {
|
|
1207
|
-
yg.ygConfigSetErrata(this.ptr, errata);
|
|
1208
|
-
}
|
|
1209
|
-
getErrata() {
|
|
1210
|
-
return yg.ygConfigGetErrata(this.ptr);
|
|
1211
|
-
}
|
|
1212
|
-
setExperimentalFeatureEnabled(feature, enabled) {
|
|
1213
|
-
yg.ygConfigSetExperimentalFeatureEnabled(this.ptr, feature, enabled);
|
|
1214
|
-
}
|
|
1215
|
-
isExperimentalFeatureEnabled(feature) {
|
|
1216
|
-
return yg.ygConfigIsExperimentalFeatureEnabled(this.ptr, feature);
|
|
1217
|
-
}
|
|
1218
|
-
}
|
|
1219
|
-
var dist_default = {
|
|
1220
|
-
Node,
|
|
1221
|
-
Config,
|
|
1222
|
-
Align,
|
|
1223
|
-
BoxSizing,
|
|
1224
|
-
Dimension,
|
|
1225
|
-
Direction,
|
|
1226
|
-
Display,
|
|
1227
|
-
Edge,
|
|
1228
|
-
Errata,
|
|
1229
|
-
ExperimentalFeature,
|
|
1230
|
-
FlexDirection,
|
|
1231
|
-
Gutter,
|
|
1232
|
-
Justify,
|
|
1233
|
-
LogLevel,
|
|
1234
|
-
MeasureMode,
|
|
1235
|
-
NodeType,
|
|
1236
|
-
Overflow,
|
|
1237
|
-
PositionType,
|
|
1238
|
-
Unit,
|
|
1239
|
-
Wrap,
|
|
1240
|
-
EDGE_LEFT,
|
|
1241
|
-
EDGE_TOP,
|
|
1242
|
-
EDGE_RIGHT,
|
|
1243
|
-
EDGE_BOTTOM,
|
|
1244
|
-
EDGE_START,
|
|
1245
|
-
EDGE_END,
|
|
1246
|
-
EDGE_HORIZONTAL,
|
|
1247
|
-
EDGE_VERTICAL,
|
|
1248
|
-
EDGE_ALL,
|
|
1249
|
-
FLEX_DIRECTION_COLUMN,
|
|
1250
|
-
FLEX_DIRECTION_COLUMN_REVERSE,
|
|
1251
|
-
FLEX_DIRECTION_ROW,
|
|
1252
|
-
FLEX_DIRECTION_ROW_REVERSE,
|
|
1253
|
-
JUSTIFY_FLEX_START,
|
|
1254
|
-
JUSTIFY_CENTER,
|
|
1255
|
-
JUSTIFY_FLEX_END,
|
|
1256
|
-
JUSTIFY_SPACE_BETWEEN,
|
|
1257
|
-
JUSTIFY_SPACE_AROUND,
|
|
1258
|
-
JUSTIFY_SPACE_EVENLY,
|
|
1259
|
-
ALIGN_AUTO,
|
|
1260
|
-
ALIGN_FLEX_START,
|
|
1261
|
-
ALIGN_CENTER,
|
|
1262
|
-
ALIGN_FLEX_END,
|
|
1263
|
-
ALIGN_STRETCH,
|
|
1264
|
-
ALIGN_BASELINE,
|
|
1265
|
-
ALIGN_SPACE_BETWEEN,
|
|
1266
|
-
ALIGN_SPACE_AROUND,
|
|
1267
|
-
ALIGN_SPACE_EVENLY,
|
|
1268
|
-
WRAP_NO_WRAP,
|
|
1269
|
-
WRAP_WRAP,
|
|
1270
|
-
WRAP_WRAP_REVERSE,
|
|
1271
|
-
OVERFLOW_VISIBLE,
|
|
1272
|
-
OVERFLOW_HIDDEN,
|
|
1273
|
-
OVERFLOW_SCROLL,
|
|
1274
|
-
DISPLAY_FLEX,
|
|
1275
|
-
DISPLAY_NONE,
|
|
1276
|
-
POSITION_TYPE_STATIC,
|
|
1277
|
-
POSITION_TYPE_RELATIVE,
|
|
1278
|
-
POSITION_TYPE_ABSOLUTE,
|
|
1279
|
-
DIRECTION_INHERIT,
|
|
1280
|
-
DIRECTION_LTR,
|
|
1281
|
-
DIRECTION_RTL
|
|
1282
|
-
};
|
|
1664
|
+
// ../../node_modules/yoga-layout/dist/src/index.js
|
|
1665
|
+
var Yoga = wrapAssembly(await yoga_wasm_base64_esm_default());
|
|
1666
|
+
var src_default = Yoga;
|
|
1283
1667
|
|
|
1284
1668
|
// src/lib/border.ts
|
|
1285
1669
|
var BorderChars = {
|
|
@@ -1858,9 +2242,11 @@ var parseKeypress = (s = "", options = {}) => {
|
|
|
1858
2242
|
const modifier = parseInt(modifyOtherKeysMatch[1], 10) - 1;
|
|
1859
2243
|
const charCode = parseInt(modifyOtherKeysMatch[2], 10);
|
|
1860
2244
|
key.ctrl = !!(modifier & 4);
|
|
1861
|
-
key.meta = !!(modifier &
|
|
2245
|
+
key.meta = !!(modifier & 2);
|
|
1862
2246
|
key.shift = !!(modifier & 1);
|
|
1863
2247
|
key.option = !!(modifier & 2);
|
|
2248
|
+
key.super = !!(modifier & 8);
|
|
2249
|
+
key.hyper = !!(modifier & 16);
|
|
1864
2250
|
if (charCode === 13) {
|
|
1865
2251
|
key.name = "return";
|
|
1866
2252
|
} else if (charCode === 27) {
|
|
@@ -1937,9 +2323,11 @@ var parseKeypress = (s = "", options = {}) => {
|
|
|
1937
2323
|
const code = [parts[1], parts[2], parts[4], parts[6]].filter(Boolean).join("");
|
|
1938
2324
|
const modifier = parseInt(parts[3] || parts[5] || "1", 10) - 1;
|
|
1939
2325
|
key.ctrl = !!(modifier & 4);
|
|
1940
|
-
key.meta = !!(modifier &
|
|
2326
|
+
key.meta = !!(modifier & 2);
|
|
1941
2327
|
key.shift = !!(modifier & 1);
|
|
1942
2328
|
key.option = !!(modifier & 2);
|
|
2329
|
+
key.super = !!(modifier & 8);
|
|
2330
|
+
key.hyper = !!(modifier & 16);
|
|
1943
2331
|
key.code = code;
|
|
1944
2332
|
const keyNameResult = keyName[code];
|
|
1945
2333
|
if (keyNameResult) {
|
|
@@ -6817,9 +7205,22 @@ function getParsers() {
|
|
|
6817
7205
|
}
|
|
6818
7206
|
|
|
6819
7207
|
// src/lib/tree-sitter/client.ts
|
|
6820
|
-
import { resolve as resolve2, isAbsolute } from "path";
|
|
6821
|
-
import { existsSync
|
|
6822
|
-
|
|
7208
|
+
import { resolve as resolve2, isAbsolute, parse } from "path";
|
|
7209
|
+
import { existsSync } from "fs";
|
|
7210
|
+
|
|
7211
|
+
// src/lib/bunfs.ts
|
|
7212
|
+
import { basename, join } from "path";
|
|
7213
|
+
function isBunfsPath(path) {
|
|
7214
|
+
return path.includes("$bunfs") || /^B:[\\/]~BUN/i.test(path);
|
|
7215
|
+
}
|
|
7216
|
+
function getBunfsRootPath() {
|
|
7217
|
+
return process.platform === "win32" ? "B:\\~BUN\\root" : "/$bunfs/root";
|
|
7218
|
+
}
|
|
7219
|
+
function normalizeBunfsPath(fileName) {
|
|
7220
|
+
return join(getBunfsRootPath(), basename(fileName));
|
|
7221
|
+
}
|
|
7222
|
+
|
|
7223
|
+
// src/lib/tree-sitter/client.ts
|
|
6823
7224
|
registerEnvVar({
|
|
6824
7225
|
name: "OTUI_TREE_SITTER_WORKER_PATH",
|
|
6825
7226
|
description: "Path to the TreeSitter worker",
|
|
@@ -6879,7 +7280,7 @@ class TreeSitterClient extends EventEmitter3 {
|
|
|
6879
7280
|
worker_path = this.options.workerPath;
|
|
6880
7281
|
} else {
|
|
6881
7282
|
worker_path = new URL("./parser.worker.js", import.meta.url).href;
|
|
6882
|
-
if (!
|
|
7283
|
+
if (!existsSync(resolve2(import.meta.dirname, "parser.worker.js"))) {
|
|
6883
7284
|
worker_path = new URL("./parser.worker.ts", import.meta.url).href;
|
|
6884
7285
|
}
|
|
6885
7286
|
}
|
|
@@ -6941,8 +7342,8 @@ class TreeSitterClient extends EventEmitter3 {
|
|
|
6941
7342
|
if (isUrl(path)) {
|
|
6942
7343
|
return path;
|
|
6943
7344
|
}
|
|
6944
|
-
if (
|
|
6945
|
-
return
|
|
7345
|
+
if (isBunfsPath(path)) {
|
|
7346
|
+
return normalizeBunfsPath(parse(path).base);
|
|
6946
7347
|
}
|
|
6947
7348
|
if (!isAbsolute(path)) {
|
|
6948
7349
|
return resolve2(path);
|
|
@@ -8772,8 +9173,8 @@ function createTerminalPalette(stdin, stdout, writeFn, isLegacyTmux) {
|
|
|
8772
9173
|
return new TerminalPalette(stdin, stdout, writeFn, isLegacyTmux);
|
|
8773
9174
|
}
|
|
8774
9175
|
// src/zig.ts
|
|
8775
|
-
import { dlopen
|
|
8776
|
-
import { existsSync as
|
|
9176
|
+
import { dlopen, toArrayBuffer as toArrayBuffer4, JSCallback, ptr as ptr3 } from "bun:ffi";
|
|
9177
|
+
import { existsSync as existsSync2 } from "fs";
|
|
8777
9178
|
import { EventEmitter as EventEmitter5 } from "events";
|
|
8778
9179
|
|
|
8779
9180
|
// src/buffer.ts
|
|
@@ -8840,9 +9241,9 @@ class OptimizedBuffer {
|
|
|
8840
9241
|
}
|
|
8841
9242
|
return this._rawBuffers;
|
|
8842
9243
|
}
|
|
8843
|
-
constructor(
|
|
9244
|
+
constructor(lib, ptr, width, height, options) {
|
|
8844
9245
|
this.id = options.id || `fb_${OptimizedBuffer.fbIdCounter++}`;
|
|
8845
|
-
this.lib =
|
|
9246
|
+
this.lib = lib;
|
|
8846
9247
|
this.respectAlpha = options.respectAlpha || false;
|
|
8847
9248
|
this._width = width;
|
|
8848
9249
|
this._height = height;
|
|
@@ -8850,10 +9251,10 @@ class OptimizedBuffer {
|
|
|
8850
9251
|
this.bufferPtr = ptr;
|
|
8851
9252
|
}
|
|
8852
9253
|
static create(width, height, widthMethod, options = {}) {
|
|
8853
|
-
const
|
|
9254
|
+
const lib = resolveRenderLib();
|
|
8854
9255
|
const respectAlpha = options.respectAlpha || false;
|
|
8855
9256
|
const id = options.id && options.id.trim() !== "" ? options.id : "unnamed buffer";
|
|
8856
|
-
const buffer =
|
|
9257
|
+
const buffer = lib.createOptimizedBuffer(width, height, widthMethod, respectAlpha, id);
|
|
8857
9258
|
return buffer;
|
|
8858
9259
|
}
|
|
8859
9260
|
get widthMethod() {
|
|
@@ -9692,10 +10093,10 @@ var MeasureResultStruct = defineStruct([
|
|
|
9692
10093
|
// src/zig.ts
|
|
9693
10094
|
var module = await import(`@opentui/core-${process.platform}-${process.arch}/index.ts`);
|
|
9694
10095
|
var targetLibPath = module.default;
|
|
9695
|
-
if (
|
|
10096
|
+
if (isBunfsPath(targetLibPath)) {
|
|
9696
10097
|
targetLibPath = targetLibPath.replace("../", "");
|
|
9697
10098
|
}
|
|
9698
|
-
if (!
|
|
10099
|
+
if (!existsSync2(targetLibPath)) {
|
|
9699
10100
|
throw new Error(`opentui is not supported on the current platform: ${process.platform}-${process.arch}`);
|
|
9700
10101
|
}
|
|
9701
10102
|
registerEnvVar({
|
|
@@ -9724,7 +10125,7 @@ registerEnvVar({
|
|
|
9724
10125
|
});
|
|
9725
10126
|
function getOpenTUILib(libPath) {
|
|
9726
10127
|
const resolvedLibPath = libPath || targetLibPath;
|
|
9727
|
-
const rawSymbols =
|
|
10128
|
+
const rawSymbols = dlopen(resolvedLibPath, {
|
|
9728
10129
|
setLogCallback: {
|
|
9729
10130
|
args: ["ptr"],
|
|
9730
10131
|
returns: "void"
|
|
@@ -10652,7 +11053,7 @@ class FFIRenderLib {
|
|
|
10652
11053
|
if (this.logCallbackWrapper) {
|
|
10653
11054
|
return;
|
|
10654
11055
|
}
|
|
10655
|
-
const logCallback = new
|
|
11056
|
+
const logCallback = new JSCallback((level, msgPtr, msgLenBigInt) => {
|
|
10656
11057
|
try {
|
|
10657
11058
|
const msgLen = typeof msgLenBigInt === "bigint" ? Number(msgLenBigInt) : msgLenBigInt;
|
|
10658
11059
|
if (msgLen === 0 || !msgPtr) {
|
|
@@ -10697,7 +11098,7 @@ class FFIRenderLib {
|
|
|
10697
11098
|
if (this.eventCallbackWrapper) {
|
|
10698
11099
|
return;
|
|
10699
11100
|
}
|
|
10700
|
-
const eventCallback = new
|
|
11101
|
+
const eventCallback = new JSCallback((namePtr, nameLenBigInt, dataPtr, dataLenBigInt) => {
|
|
10701
11102
|
try {
|
|
10702
11103
|
const nameLen = typeof nameLenBigInt === "bigint" ? Number(nameLenBigInt) : nameLenBigInt;
|
|
10703
11104
|
const dataLen = typeof dataLenBigInt === "bigint" ? Number(dataLenBigInt) : dataLenBigInt;
|
|
@@ -11710,13 +12111,13 @@ class TextBuffer {
|
|
|
11710
12111
|
_textBytes;
|
|
11711
12112
|
_memId;
|
|
11712
12113
|
_appendedChunks = [];
|
|
11713
|
-
constructor(
|
|
11714
|
-
this.lib =
|
|
12114
|
+
constructor(lib, ptr4) {
|
|
12115
|
+
this.lib = lib;
|
|
11715
12116
|
this.bufferPtr = ptr4;
|
|
11716
12117
|
}
|
|
11717
12118
|
static create(widthMethod) {
|
|
11718
|
-
const
|
|
11719
|
-
return
|
|
12119
|
+
const lib = resolveRenderLib();
|
|
12120
|
+
return lib.createTextBuffer(widthMethod);
|
|
11720
12121
|
}
|
|
11721
12122
|
guard() {
|
|
11722
12123
|
if (this._destroyed)
|
|
@@ -12024,7 +12425,7 @@ class BaseRenderable extends EventEmitter6 {
|
|
|
12024
12425
|
this._visible = value;
|
|
12025
12426
|
}
|
|
12026
12427
|
}
|
|
12027
|
-
var yogaConfig =
|
|
12428
|
+
var yogaConfig = src_default.Config.create();
|
|
12028
12429
|
yogaConfig.setUseWebDefaults(false);
|
|
12029
12430
|
yogaConfig.setPointScaleFactor(1);
|
|
12030
12431
|
|
|
@@ -12067,6 +12468,7 @@ class Renderable extends BaseRenderable {
|
|
|
12067
12468
|
parent = null;
|
|
12068
12469
|
childrenPrimarySortDirty = true;
|
|
12069
12470
|
childrenSortedByPrimaryAxis = [];
|
|
12471
|
+
_shouldUpdateBefore = new Set;
|
|
12070
12472
|
onLifecyclePass = null;
|
|
12071
12473
|
renderBefore;
|
|
12072
12474
|
renderAfter;
|
|
@@ -12090,7 +12492,7 @@ class Renderable extends BaseRenderable {
|
|
|
12090
12492
|
this.buffered = options.buffered ?? false;
|
|
12091
12493
|
this._live = options.live ?? false;
|
|
12092
12494
|
this._liveCount = this._live && this._visible ? 1 : 0;
|
|
12093
|
-
this.yogaNode =
|
|
12495
|
+
this.yogaNode = src_default.Node.create(yogaConfig);
|
|
12094
12496
|
this.yogaNode.setDisplay(this._visible ? Display.Flex : Display.None);
|
|
12095
12497
|
this.setupYogaProperties(options);
|
|
12096
12498
|
this.applyEventOptions(options);
|
|
@@ -12770,6 +13172,7 @@ class Renderable extends BaseRenderable {
|
|
|
12770
13172
|
this._childrenInLayoutOrder.push(renderable);
|
|
12771
13173
|
this.yogaNode.insertChild(childLayoutNode, insertedIndex);
|
|
12772
13174
|
this.childrenPrimarySortDirty = true;
|
|
13175
|
+
this._shouldUpdateBefore.add(renderable);
|
|
12773
13176
|
this.requestRender();
|
|
12774
13177
|
return insertedIndex;
|
|
12775
13178
|
}
|
|
@@ -12822,6 +13225,7 @@ class Renderable extends BaseRenderable {
|
|
|
12822
13225
|
const insertedIndex = Math.max(0, Math.min(anchorIndex, this._childrenInLayoutOrder.length));
|
|
12823
13226
|
this._childrenInLayoutOrder.splice(insertedIndex, 0, renderable);
|
|
12824
13227
|
this.yogaNode.insertChild(renderable.getLayoutNode(), insertedIndex);
|
|
13228
|
+
this._shouldUpdateBefore.add(renderable);
|
|
12825
13229
|
this.requestRender();
|
|
12826
13230
|
return insertedIndex;
|
|
12827
13231
|
}
|
|
@@ -12871,6 +13275,14 @@ class Renderable extends BaseRenderable {
|
|
|
12871
13275
|
if (this._isDestroyed)
|
|
12872
13276
|
return;
|
|
12873
13277
|
this.updateFromLayout();
|
|
13278
|
+
if (this._shouldUpdateBefore.size > 0) {
|
|
13279
|
+
for (const child of this._shouldUpdateBefore) {
|
|
13280
|
+
if (!child.isDestroyed) {
|
|
13281
|
+
child.updateFromLayout();
|
|
13282
|
+
}
|
|
13283
|
+
}
|
|
13284
|
+
this._shouldUpdateBefore.clear();
|
|
13285
|
+
}
|
|
12874
13286
|
if (this._isDestroyed)
|
|
12875
13287
|
return;
|
|
12876
13288
|
renderList.push({ action: "render", renderable: this });
|
|
@@ -13079,7 +13491,7 @@ class RootRenderable extends Renderable {
|
|
|
13079
13491
|
if (this.yogaNode) {
|
|
13080
13492
|
this.yogaNode.free();
|
|
13081
13493
|
}
|
|
13082
|
-
this.yogaNode =
|
|
13494
|
+
this.yogaNode = src_default.Node.create(yogaConfig);
|
|
13083
13495
|
this.yogaNode.setWidth(ctx.width);
|
|
13084
13496
|
this.yogaNode.setHeight(ctx.height);
|
|
13085
13497
|
this.yogaNode.setFlexDirection(FlexDirection.Column);
|
|
@@ -14137,6 +14549,12 @@ registerEnvVar({
|
|
|
14137
14549
|
type: "boolean",
|
|
14138
14550
|
default: true
|
|
14139
14551
|
});
|
|
14552
|
+
registerEnvVar({
|
|
14553
|
+
name: "OTUI_DEBUG",
|
|
14554
|
+
description: "Enable debug mode to capture all raw input for debugging purposes.",
|
|
14555
|
+
type: "boolean",
|
|
14556
|
+
default: false
|
|
14557
|
+
});
|
|
14140
14558
|
|
|
14141
14559
|
class MouseEvent {
|
|
14142
14560
|
type;
|
|
@@ -14182,13 +14600,6 @@ var MouseButton;
|
|
|
14182
14600
|
MouseButton2[MouseButton2["WHEEL_UP"] = 4] = "WHEEL_UP";
|
|
14183
14601
|
MouseButton2[MouseButton2["WHEEL_DOWN"] = 5] = "WHEEL_DOWN";
|
|
14184
14602
|
})(MouseButton ||= {});
|
|
14185
|
-
singleton("ProcessExitSignals", () => {
|
|
14186
|
-
["SIGINT", "SIGTERM", "SIGQUIT", "SIGABRT"].forEach((signal) => {
|
|
14187
|
-
process.on(signal, () => {
|
|
14188
|
-
process.exit();
|
|
14189
|
-
});
|
|
14190
|
-
});
|
|
14191
|
-
});
|
|
14192
14603
|
var rendererTracker = singleton("RendererTracker", () => {
|
|
14193
14604
|
const renderers = new Set;
|
|
14194
14605
|
return {
|
|
@@ -14256,11 +14667,14 @@ class CliRenderer extends EventEmitter9 {
|
|
|
14256
14667
|
stdin;
|
|
14257
14668
|
stdout;
|
|
14258
14669
|
exitOnCtrlC;
|
|
14670
|
+
exitSignals;
|
|
14671
|
+
_exitListenersAdded = false;
|
|
14259
14672
|
_isDestroyed = false;
|
|
14260
14673
|
nextRenderBuffer;
|
|
14261
14674
|
currentRenderBuffer;
|
|
14262
14675
|
_isRunning = false;
|
|
14263
14676
|
targetFps = 30;
|
|
14677
|
+
maxFps = 60;
|
|
14264
14678
|
automaticMemorySnapshot = false;
|
|
14265
14679
|
memorySnapshotInterval;
|
|
14266
14680
|
memorySnapshotTimer = null;
|
|
@@ -14286,7 +14700,8 @@ class CliRenderer extends EventEmitter9 {
|
|
|
14286
14700
|
frameCount = 0;
|
|
14287
14701
|
lastFpsTime = 0;
|
|
14288
14702
|
currentFps = 0;
|
|
14289
|
-
targetFrameTime =
|
|
14703
|
+
targetFrameTime = 1000 / this.targetFps;
|
|
14704
|
+
minTargetFrameTime = 1000 / this.maxFps;
|
|
14290
14705
|
immediateRerenderRequested = false;
|
|
14291
14706
|
updateScheduled = false;
|
|
14292
14707
|
liveRequestCounter = 0;
|
|
@@ -14348,6 +14763,9 @@ class CliRenderer extends EventEmitter9 {
|
|
|
14348
14763
|
_onDestroy;
|
|
14349
14764
|
inputHandlers = [];
|
|
14350
14765
|
prependedInputHandlers = [];
|
|
14766
|
+
idleResolvers = [];
|
|
14767
|
+
_debugInputs = [];
|
|
14768
|
+
_debugModeEnabled = env.OTUI_DEBUG;
|
|
14351
14769
|
handleError = ((error) => {
|
|
14352
14770
|
console.error(error);
|
|
14353
14771
|
if (this._openConsoleOnError) {
|
|
@@ -14389,13 +14807,13 @@ Captured output:
|
|
|
14389
14807
|
get controlState() {
|
|
14390
14808
|
return this._controlState;
|
|
14391
14809
|
}
|
|
14392
|
-
constructor(
|
|
14810
|
+
constructor(lib, rendererPtr, stdin, stdout, width, height, config = {}) {
|
|
14393
14811
|
super();
|
|
14394
14812
|
rendererTracker.addRenderer(this);
|
|
14395
14813
|
this.stdin = stdin;
|
|
14396
14814
|
this.stdout = stdout;
|
|
14397
14815
|
this.realStdoutWrite = stdout.write;
|
|
14398
|
-
this.lib =
|
|
14816
|
+
this.lib = lib;
|
|
14399
14817
|
this._terminalWidth = stdout.columns;
|
|
14400
14818
|
this._terminalHeight = stdout.rows;
|
|
14401
14819
|
this.width = width;
|
|
@@ -14406,12 +14824,16 @@ Captured output:
|
|
|
14406
14824
|
capture.on("write", this.captureCallback);
|
|
14407
14825
|
this.renderOffset = height - this._splitHeight;
|
|
14408
14826
|
this.height = this._splitHeight;
|
|
14409
|
-
|
|
14827
|
+
lib.setRenderOffset(rendererPtr, this.renderOffset);
|
|
14410
14828
|
}
|
|
14411
14829
|
this.rendererPtr = rendererPtr;
|
|
14412
14830
|
this.exitOnCtrlC = config.exitOnCtrlC === undefined ? true : config.exitOnCtrlC;
|
|
14831
|
+
this.exitSignals = config.exitSignals || ["SIGINT", "SIGTERM", "SIGQUIT", "SIGABRT"];
|
|
14413
14832
|
this.resizeDebounceDelay = config.debounceDelay || 100;
|
|
14414
14833
|
this.targetFps = config.targetFps || 30;
|
|
14834
|
+
this.maxFps = config.maxFps || 60;
|
|
14835
|
+
this.targetFrameTime = 1000 / this.targetFps;
|
|
14836
|
+
this.minTargetFrameTime = 1000 / this.maxFps;
|
|
14415
14837
|
this.memorySnapshotInterval = config.memorySnapshotInterval ?? 0;
|
|
14416
14838
|
this.gatherStats = config.gatherStats || false;
|
|
14417
14839
|
this.maxStatSamples = config.maxStatSamples || 300;
|
|
@@ -14433,7 +14855,7 @@ Captured output:
|
|
|
14433
14855
|
process.on("warning", this.warningHandler);
|
|
14434
14856
|
process.on("uncaughtException", this.handleError);
|
|
14435
14857
|
process.on("unhandledRejection", this.handleError);
|
|
14436
|
-
process.on("
|
|
14858
|
+
process.on("beforeExit", this.exitHandler);
|
|
14437
14859
|
this._keyHandler = new InternalKeyHandler(config.useKittyKeyboard ?? true);
|
|
14438
14860
|
this._keyHandler.on("keypress", (event) => {
|
|
14439
14861
|
if (this.exitOnCtrlC && event.name === "c" && event.ctrl) {
|
|
@@ -14443,6 +14865,7 @@ Captured output:
|
|
|
14443
14865
|
return;
|
|
14444
14866
|
}
|
|
14445
14867
|
});
|
|
14868
|
+
this.addExitListeners();
|
|
14446
14869
|
this._stdinBuffer = new StdinBuffer({ timeout: 5 });
|
|
14447
14870
|
this._console = new TerminalConsole(this, config.consoleOptions);
|
|
14448
14871
|
this.useConsole = config.useConsole ?? true;
|
|
@@ -14471,6 +14894,22 @@ Captured output:
|
|
|
14471
14894
|
}
|
|
14472
14895
|
this.setupInput();
|
|
14473
14896
|
}
|
|
14897
|
+
addExitListeners() {
|
|
14898
|
+
if (this._exitListenersAdded || this.exitSignals.length === 0)
|
|
14899
|
+
return;
|
|
14900
|
+
this.exitSignals.forEach((signal) => {
|
|
14901
|
+
process.addListener(signal, this.exitHandler);
|
|
14902
|
+
});
|
|
14903
|
+
this._exitListenersAdded = true;
|
|
14904
|
+
}
|
|
14905
|
+
removeExitListeners() {
|
|
14906
|
+
if (!this._exitListenersAdded || this.exitSignals.length === 0)
|
|
14907
|
+
return;
|
|
14908
|
+
this.exitSignals.forEach((signal) => {
|
|
14909
|
+
process.removeListener(signal, this.exitHandler);
|
|
14910
|
+
});
|
|
14911
|
+
this._exitListenersAdded = false;
|
|
14912
|
+
}
|
|
14474
14913
|
get isDestroyed() {
|
|
14475
14914
|
return this._isDestroyed;
|
|
14476
14915
|
}
|
|
@@ -14507,14 +14946,33 @@ Captured output:
|
|
|
14507
14946
|
return this.realStdoutWrite.call(this.stdout, chunk, encoding, callback);
|
|
14508
14947
|
}
|
|
14509
14948
|
requestRender() {
|
|
14510
|
-
if (
|
|
14949
|
+
if (this._controlState === "explicit_suspended" /* EXPLICIT_SUSPENDED */) {
|
|
14950
|
+
return;
|
|
14951
|
+
}
|
|
14952
|
+
if (this._isRunning) {
|
|
14953
|
+
return;
|
|
14954
|
+
}
|
|
14955
|
+
if (this.rendering) {
|
|
14956
|
+
this.immediateRerenderRequested = true;
|
|
14957
|
+
return;
|
|
14958
|
+
}
|
|
14959
|
+
if (!this.updateScheduled && !this.renderTimeout) {
|
|
14511
14960
|
this.updateScheduled = true;
|
|
14512
|
-
|
|
14513
|
-
|
|
14514
|
-
|
|
14515
|
-
|
|
14961
|
+
const now = Date.now();
|
|
14962
|
+
const elapsed = now - this.lastTime;
|
|
14963
|
+
const delay = Math.max(this.minTargetFrameTime - elapsed, 0);
|
|
14964
|
+
if (delay === 0) {
|
|
14965
|
+
process.nextTick(() => this.activateFrame());
|
|
14966
|
+
return;
|
|
14967
|
+
}
|
|
14968
|
+
setTimeout(() => this.activateFrame(), delay);
|
|
14516
14969
|
}
|
|
14517
14970
|
}
|
|
14971
|
+
async activateFrame() {
|
|
14972
|
+
await this.loop();
|
|
14973
|
+
this.updateScheduled = false;
|
|
14974
|
+
this.resolveIdleIfNeeded();
|
|
14975
|
+
}
|
|
14518
14976
|
get useConsole() {
|
|
14519
14977
|
return this._useConsole;
|
|
14520
14978
|
}
|
|
@@ -14529,6 +14987,26 @@ Captured output:
|
|
|
14529
14987
|
get isRunning() {
|
|
14530
14988
|
return this._isRunning;
|
|
14531
14989
|
}
|
|
14990
|
+
isIdleNow() {
|
|
14991
|
+
return !this._isRunning && !this.rendering && !this.renderTimeout && !this.updateScheduled && !this.immediateRerenderRequested;
|
|
14992
|
+
}
|
|
14993
|
+
resolveIdleIfNeeded() {
|
|
14994
|
+
if (!this.isIdleNow())
|
|
14995
|
+
return;
|
|
14996
|
+
const resolvers = this.idleResolvers.splice(0);
|
|
14997
|
+
for (const resolve4 of resolvers) {
|
|
14998
|
+
resolve4();
|
|
14999
|
+
}
|
|
15000
|
+
}
|
|
15001
|
+
idle() {
|
|
15002
|
+
if (this._isDestroyed)
|
|
15003
|
+
return Promise.resolve();
|
|
15004
|
+
if (this.isIdleNow())
|
|
15005
|
+
return Promise.resolve();
|
|
15006
|
+
return new Promise((resolve4) => {
|
|
15007
|
+
this.idleResolvers.push(resolve4);
|
|
15008
|
+
});
|
|
15009
|
+
}
|
|
14532
15010
|
get resolution() {
|
|
14533
15011
|
return this._resolution;
|
|
14534
15012
|
}
|
|
@@ -14575,6 +15053,9 @@ Captured output:
|
|
|
14575
15053
|
get capabilities() {
|
|
14576
15054
|
return this._capabilities;
|
|
14577
15055
|
}
|
|
15056
|
+
getDebugInputs() {
|
|
15057
|
+
return [...this._debugInputs];
|
|
15058
|
+
}
|
|
14578
15059
|
get useKittyKeyboard() {
|
|
14579
15060
|
return this.lib.getUseKittyKeyboard(this.rendererPtr);
|
|
14580
15061
|
}
|
|
@@ -14751,6 +15232,12 @@ Captured output:
|
|
|
14751
15232
|
this.stdin.setEncoding("utf8");
|
|
14752
15233
|
this.stdin.on("data", this.stdinListener);
|
|
14753
15234
|
this._stdinBuffer.on("data", (sequence) => {
|
|
15235
|
+
if (this._debugModeEnabled) {
|
|
15236
|
+
this._debugInputs.push({
|
|
15237
|
+
timestamp: new Date().toISOString(),
|
|
15238
|
+
sequence
|
|
15239
|
+
});
|
|
15240
|
+
}
|
|
14754
15241
|
for (const handler of this.inputHandlers) {
|
|
14755
15242
|
if (handler(sequence)) {
|
|
14756
15243
|
return;
|
|
@@ -15000,19 +15487,19 @@ Captured output:
|
|
|
15000
15487
|
this.lib.dumpStdoutBuffer(this.rendererPtr, timestamp);
|
|
15001
15488
|
}
|
|
15002
15489
|
static setCursorPosition(renderer, x, y, visible = true) {
|
|
15003
|
-
const
|
|
15004
|
-
|
|
15490
|
+
const lib = resolveRenderLib();
|
|
15491
|
+
lib.setCursorPosition(renderer.rendererPtr, x, y, visible);
|
|
15005
15492
|
}
|
|
15006
15493
|
static setCursorStyle(renderer, style, blinking = false, color) {
|
|
15007
|
-
const
|
|
15008
|
-
|
|
15494
|
+
const lib = resolveRenderLib();
|
|
15495
|
+
lib.setCursorStyle(renderer.rendererPtr, style, blinking);
|
|
15009
15496
|
if (color) {
|
|
15010
|
-
|
|
15497
|
+
lib.setCursorColor(renderer.rendererPtr, color);
|
|
15011
15498
|
}
|
|
15012
15499
|
}
|
|
15013
15500
|
static setCursorColor(renderer, color) {
|
|
15014
|
-
const
|
|
15015
|
-
|
|
15501
|
+
const lib = resolveRenderLib();
|
|
15502
|
+
lib.setCursorColor(renderer.rendererPtr, color);
|
|
15016
15503
|
}
|
|
15017
15504
|
setCursorPosition(x, y, visible = true) {
|
|
15018
15505
|
this.lib.setCursorPosition(this.rendererPtr, x, y, visible);
|
|
@@ -15084,6 +15571,7 @@ Captured output:
|
|
|
15084
15571
|
this.internalPause();
|
|
15085
15572
|
this._suspendedMouseEnabled = this._useMouse;
|
|
15086
15573
|
this.disableMouse();
|
|
15574
|
+
this.removeExitListeners();
|
|
15087
15575
|
this._stdinBuffer.clear();
|
|
15088
15576
|
this.stdin.removeListener("data", this.stdinListener);
|
|
15089
15577
|
this.lib.suspendRenderer(this.rendererPtr);
|
|
@@ -15097,6 +15585,7 @@ Captured output:
|
|
|
15097
15585
|
this.stdin.setRawMode(true);
|
|
15098
15586
|
}
|
|
15099
15587
|
this.stdin.resume();
|
|
15588
|
+
this.addExitListeners();
|
|
15100
15589
|
setImmediate(() => {
|
|
15101
15590
|
while (this.stdin.read() !== null) {}
|
|
15102
15591
|
this.stdin.on("data", this.stdinListener);
|
|
@@ -15131,6 +15620,9 @@ Captured output:
|
|
|
15131
15620
|
clearTimeout(this.renderTimeout);
|
|
15132
15621
|
this.renderTimeout = null;
|
|
15133
15622
|
}
|
|
15623
|
+
if (!this.rendering) {
|
|
15624
|
+
this.resolveIdleIfNeeded();
|
|
15625
|
+
}
|
|
15134
15626
|
}
|
|
15135
15627
|
}
|
|
15136
15628
|
destroy() {
|
|
@@ -15183,6 +15675,7 @@ Captured output:
|
|
|
15183
15675
|
console.error("Error in onDestroy callback:", e instanceof Error ? e.stack : String(e));
|
|
15184
15676
|
}
|
|
15185
15677
|
}
|
|
15678
|
+
this.resolveIdleIfNeeded();
|
|
15186
15679
|
}
|
|
15187
15680
|
startRenderLoop() {
|
|
15188
15681
|
if (!this._isRunning)
|
|
@@ -15191,12 +15684,12 @@ Captured output:
|
|
|
15191
15684
|
this.frameCount = 0;
|
|
15192
15685
|
this.lastFpsTime = this.lastTime;
|
|
15193
15686
|
this.currentFps = 0;
|
|
15194
|
-
this.targetFrameTime = 1000 / this.targetFps;
|
|
15195
15687
|
this.loop();
|
|
15196
15688
|
}
|
|
15197
15689
|
async loop() {
|
|
15198
15690
|
if (this.rendering || this._isDestroyed)
|
|
15199
15691
|
return;
|
|
15692
|
+
this.renderTimeout = null;
|
|
15200
15693
|
this.rendering = true;
|
|
15201
15694
|
if (this.renderTimeout) {
|
|
15202
15695
|
clearTimeout(this.renderTimeout);
|
|
@@ -15231,10 +15724,6 @@ Captured output:
|
|
|
15231
15724
|
} catch (error) {
|
|
15232
15725
|
console.error("Error in frame callback:", error);
|
|
15233
15726
|
}
|
|
15234
|
-
if (this._isDestroyed) {
|
|
15235
|
-
this.rendering = false;
|
|
15236
|
-
return;
|
|
15237
|
-
}
|
|
15238
15727
|
}
|
|
15239
15728
|
const end = performance.now();
|
|
15240
15729
|
this.renderStats.frameCallbackTime = end - start;
|
|
@@ -15250,16 +15739,21 @@ Captured output:
|
|
|
15250
15739
|
if (this.gatherStats) {
|
|
15251
15740
|
this.collectStatSample(overallFrameTime);
|
|
15252
15741
|
}
|
|
15253
|
-
if (this._isRunning) {
|
|
15254
|
-
const
|
|
15255
|
-
|
|
15742
|
+
if (this._isRunning || this.immediateRerenderRequested) {
|
|
15743
|
+
const targetFrameTime = this.immediateRerenderRequested ? this.minTargetFrameTime : this.targetFrameTime;
|
|
15744
|
+
const delay = Math.max(1, targetFrameTime - Math.floor(overallFrameTime));
|
|
15745
|
+
this.immediateRerenderRequested = false;
|
|
15746
|
+
this.renderTimeout = setTimeout(() => {
|
|
15747
|
+
this.renderTimeout = null;
|
|
15748
|
+
this.loop();
|
|
15749
|
+
}, delay);
|
|
15750
|
+
} else {
|
|
15751
|
+
clearTimeout(this.renderTimeout);
|
|
15752
|
+
this.renderTimeout = null;
|
|
15256
15753
|
}
|
|
15257
15754
|
}
|
|
15258
15755
|
this.rendering = false;
|
|
15259
|
-
|
|
15260
|
-
this.immediateRerenderRequested = false;
|
|
15261
|
-
this.loop();
|
|
15262
|
-
}
|
|
15756
|
+
this.resolveIdleIfNeeded();
|
|
15263
15757
|
}
|
|
15264
15758
|
intermediateRender() {
|
|
15265
15759
|
this.immediateRerenderRequested = true;
|
|
@@ -15449,7 +15943,7 @@ Captured output:
|
|
|
15449
15943
|
}
|
|
15450
15944
|
}
|
|
15451
15945
|
|
|
15452
|
-
export { Edge, Gutter, MeasureMode,
|
|
15946
|
+
export { __toESM, __commonJS, __export, __require, Edge, Gutter, MeasureMode, exports_src, BorderChars, getBorderFromSides, getBorderSides, borderCharsToArray, BorderCharArrays, nonAlphanumericKeys, parseKeypress, KeyEvent, PasteEvent, KeyHandler, InternalKeyHandler, RGBA, hexToRgb, rgbToHex, hsvToRgb, parseColor, fonts, measureText, getCharacterPositions, coordinateToCharacterIndex, renderFontToFrameBuffer, TextAttributes, DebugOverlayCorner, createTextAttributes, visualizeRenderableTree, isStyledText, StyledText, stringToStyledText, black, red, green, yellow, blue, magenta, cyan, white, brightBlack, brightRed, brightGreen, brightYellow, brightBlue, brightMagenta, brightCyan, brightWhite, bgBlack, bgRed, bgGreen, bgYellow, bgBlue, bgMagenta, bgCyan, bgWhite, bold, italic, underline, strikethrough, dim, reverse, blink, fg, bg, t, hastToStyledText, LinearScrollAccel, MacOSScrollAccel, StdinBuffer, parseAlign, parseBoxSizing, parseDimension, parseDirection, parseDisplay, parseEdge, parseFlexDirection, parseGutter, parseJustify, parseLogLevel, parseMeasureMode, parseOverflow, parsePositionType, parseUnit, parseWrap, MouseParser, Selection, convertGlobalToLocalSelection, ASCIIFontSelectionHelper, envRegistry, registerEnvVar, clearEnvCache, generateEnvMarkdown, generateEnvColored, env, treeSitterToTextChunks, treeSitterToStyledText, addDefaultParsers, TreeSitterClient, DataPathsManager, getDataPaths, extToFiletype, pathToFiletype, main, getTreeSitterClient, ExtmarksController, createExtmarksController, TerminalPalette, createTerminalPalette, TextBuffer, LogLevel2 as LogLevel, setRenderLibPath, resolveRenderLib, OptimizedBuffer, h, isVNode, maybeMakeRenderable, wrapWithDelegates, instantiate, delegate, isValidPercentage, LayoutEvents, RenderableEvents, isRenderable, BaseRenderable, Renderable, RootRenderable, ANSI, capture, ConsolePosition, TerminalConsole, getObjectsInViewport, MouseEvent, MouseButton, createCliRenderer, CliRenderEvents, RendererControlState, CliRenderer };
|
|
15453
15947
|
|
|
15454
|
-
//# debugId=
|
|
15455
|
-
//# sourceMappingURL=index-
|
|
15948
|
+
//# debugId=50CCF62F4F782D5964756E2164756E21
|
|
15949
|
+
//# sourceMappingURL=index-crebvcxc.js.map
|