@shotstack/shotstack-canvas 1.2.5 → 1.2.6

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.
@@ -1,2081 +1,9 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
-
30
- // src/env/entry.node.ts
31
- var entry_node_exports = {};
32
- __export(entry_node_exports, {
33
- createTextEngine: () => createTextEngine,
34
- isGlyphFill: () => isGlyphFill2,
35
- isShadowFill: () => isShadowFill2
36
- });
37
- module.exports = __toCommonJS(entry_node_exports);
38
-
39
- // src/schema/asset-schema.ts
40
- var import_joi = __toESM(require("joi"), 1);
41
-
42
- // src/config/canvas-constants.ts
43
- var CANVAS_CONFIG = {
44
- DEFAULTS: {
45
- width: 800,
46
- height: 400,
47
- pixelRatio: 2,
48
- fontFamily: "Roboto",
49
- fontSize: 48,
50
- color: "#000000",
51
- textAlign: "left"
52
- },
53
- LIMITS: {
54
- minWidth: 1,
55
- maxWidth: 4096,
56
- minHeight: 1,
57
- maxHeight: 4096,
58
- minFontSize: 1,
59
- maxFontSize: 512,
60
- minDuration: 0.1,
61
- maxDuration: 120,
62
- maxTextLength: 1e4
63
- },
64
- ANIMATION_TYPES: [
65
- "typewriter",
66
- "fadeIn",
67
- "slideIn",
68
- "shift",
69
- "ascend",
70
- "movingLetters"
71
- ]
72
- };
73
-
74
- // src/schema/asset-schema.ts
75
- var HEX6 = /^#[A-Fa-f0-9]{6}$/;
76
- var gradientSchema = import_joi.default.object({
77
- type: import_joi.default.string().valid("linear", "radial").default("linear"),
78
- angle: import_joi.default.number().min(0).max(360).default(0),
79
- stops: import_joi.default.array().items(
80
- import_joi.default.object({
81
- offset: import_joi.default.number().min(0).max(1).required(),
82
- color: import_joi.default.string().pattern(HEX6).required()
83
- }).unknown(false)
84
- ).min(2).required()
85
- }).unknown(false);
86
- var shadowSchema = import_joi.default.object({
87
- offsetX: import_joi.default.number().default(0),
88
- offsetY: import_joi.default.number().default(0),
89
- blur: import_joi.default.number().min(0).default(0),
90
- color: import_joi.default.string().pattern(HEX6).default("#000000"),
91
- opacity: import_joi.default.number().min(0).max(1).default(0.5)
92
- }).unknown(false);
93
- var strokeSchema = import_joi.default.object({
94
- width: import_joi.default.number().min(0).default(0),
95
- color: import_joi.default.string().pattern(HEX6).default("#000000"),
96
- opacity: import_joi.default.number().min(0).max(1).default(1)
97
- }).unknown(false);
98
- var fontSchema = import_joi.default.object({
99
- family: import_joi.default.string().default(CANVAS_CONFIG.DEFAULTS.fontFamily),
100
- size: import_joi.default.number().min(CANVAS_CONFIG.LIMITS.minFontSize).max(CANVAS_CONFIG.LIMITS.maxFontSize).default(CANVAS_CONFIG.DEFAULTS.fontSize),
101
- weight: import_joi.default.alternatives().try(import_joi.default.string(), import_joi.default.number()).default("400"),
102
- style: import_joi.default.string().valid("normal", "italic", "oblique").default("normal"),
103
- color: import_joi.default.string().pattern(HEX6).default(CANVAS_CONFIG.DEFAULTS.color),
104
- opacity: import_joi.default.number().min(0).max(1).default(1)
105
- }).unknown(false);
106
- var styleSchema = import_joi.default.object({
107
- letterSpacing: import_joi.default.number().default(0),
108
- lineHeight: import_joi.default.number().min(0).max(10).default(1.2),
109
- textTransform: import_joi.default.string().valid("none", "uppercase", "lowercase", "capitalize").default("none"),
110
- textDecoration: import_joi.default.string().valid("none", "underline", "line-through").default("none"),
111
- gradient: gradientSchema.optional()
112
- }).unknown(false);
113
- var alignmentSchema = import_joi.default.object({
114
- horizontal: import_joi.default.string().valid("left", "center", "right").default(CANVAS_CONFIG.DEFAULTS.textAlign),
115
- vertical: import_joi.default.string().valid("top", "middle", "bottom").default("middle")
116
- }).unknown(false);
117
- var animationSchema = import_joi.default.object({
118
- preset: import_joi.default.string().valid(...CANVAS_CONFIG.ANIMATION_TYPES),
119
- speed: import_joi.default.number().min(0.1).max(10).default(1),
120
- duration: import_joi.default.number().min(CANVAS_CONFIG.LIMITS.minDuration).max(CANVAS_CONFIG.LIMITS.maxDuration).optional(),
121
- style: import_joi.default.string().valid("character", "word").optional().when("preset", {
122
- is: import_joi.default.valid("typewriter", "shift"),
123
- then: import_joi.default.optional(),
124
- otherwise: import_joi.default.forbidden()
125
- }),
126
- direction: import_joi.default.string().optional().when("preset", {
127
- switch: [
128
- { is: "ascend", then: import_joi.default.valid("up", "down") },
129
- { is: "shift", then: import_joi.default.valid("left", "right", "up", "down") },
130
- { is: "slideIn", then: import_joi.default.valid("left", "right", "up", "down") },
131
- { is: "movingLetters", then: import_joi.default.valid("left", "right", "up", "down") }
132
- ],
133
- otherwise: import_joi.default.forbidden()
134
- })
135
- }).unknown(false);
136
- var backgroundSchema = import_joi.default.object({
137
- color: import_joi.default.string().pattern(HEX6).optional(),
138
- opacity: import_joi.default.number().min(0).max(1).default(1),
139
- borderRadius: import_joi.default.number().min(0).default(0)
140
- }).unknown(false);
141
- var customFontSchema = import_joi.default.object({
142
- src: import_joi.default.string().uri().required(),
143
- family: import_joi.default.string().required(),
144
- weight: import_joi.default.alternatives().try(import_joi.default.string(), import_joi.default.number()).optional(),
145
- style: import_joi.default.string().optional(),
146
- originalFamily: import_joi.default.string().optional()
147
- }).unknown(false);
148
- var RichTextAssetSchema = import_joi.default.object({
149
- type: import_joi.default.string().valid("rich-text").required(),
150
- text: import_joi.default.string().allow("").max(CANVAS_CONFIG.LIMITS.maxTextLength).default(""),
151
- width: import_joi.default.number().min(CANVAS_CONFIG.LIMITS.minWidth).max(CANVAS_CONFIG.LIMITS.maxWidth).default(CANVAS_CONFIG.DEFAULTS.width).optional(),
152
- height: import_joi.default.number().min(CANVAS_CONFIG.LIMITS.minHeight).max(CANVAS_CONFIG.LIMITS.maxHeight).default(CANVAS_CONFIG.DEFAULTS.height).optional(),
153
- font: fontSchema.optional(),
154
- style: styleSchema.optional(),
155
- stroke: strokeSchema.optional(),
156
- shadow: shadowSchema.optional(),
157
- background: backgroundSchema.optional(),
158
- align: alignmentSchema.optional(),
159
- animation: animationSchema.optional(),
160
- customFonts: import_joi.default.array().items(customFontSchema).optional(),
161
- cacheEnabled: import_joi.default.boolean().default(true),
162
- pixelRatio: import_joi.default.number().min(1).max(3).default(CANVAS_CONFIG.DEFAULTS.pixelRatio)
163
- }).unknown(false);
164
-
165
- // src/wasm/hb-loader.ts
166
- var hbSingleton = null;
167
- function isNode() {
168
- return typeof process !== "undefined" && process.versions != null && process.versions.node != null;
169
- }
170
- async function loadWasmWeb(wasmBaseURL) {
171
- try {
172
- if (wasmBaseURL) {
173
- const url = wasmBaseURL.endsWith(".wasm") ? wasmBaseURL : wasmBaseURL.endsWith("/") ? `${wasmBaseURL}hb.wasm` : `${wasmBaseURL}/hb.wasm`;
174
- console.log(`Fetching WASM from: ${url}`);
175
- const response = await fetch(url);
176
- if (response.ok) {
177
- const arrayBuffer = await response.arrayBuffer();
178
- const bytes = new Uint8Array(arrayBuffer);
179
- if (bytes.length >= 4 && bytes[0] === 0 && bytes[1] === 97 && bytes[2] === 115 && bytes[3] === 109) {
180
- console.log(`\u2705 Valid WASM binary loaded (${bytes.length} bytes)`);
181
- return arrayBuffer;
182
- }
183
- }
184
- }
185
- return void 0;
186
- } catch (err) {
187
- console.error("Error in loadWasmWeb:", err);
188
- return void 0;
189
- }
190
- }
191
- function setupWasmFetchInterceptor(wasmBinary) {
192
- const originalFetch = window.fetch;
193
- window.fetch = function(input, init) {
194
- const url = typeof input === "string" ? input : input instanceof URL ? input.href : input.url;
195
- if (url.includes("hb.wasm") || url.endsWith(".wasm")) {
196
- console.log(`\u{1F504} Intercepted fetch for: ${url}`);
197
- return Promise.resolve(
198
- new Response(wasmBinary, {
199
- status: 200,
200
- statusText: "OK",
201
- headers: {
202
- "Content-Type": "application/wasm",
203
- "Content-Length": wasmBinary.byteLength.toString()
204
- }
205
- })
206
- );
207
- }
208
- return originalFetch.apply(this, [input, init]);
209
- };
210
- }
211
- async function initHB(wasmBaseURL) {
212
- if (hbSingleton) return hbSingleton;
213
- try {
214
- let wasmBinary;
215
- wasmBinary = await loadWasmWeb(wasmBaseURL);
216
- if (!wasmBinary) {
217
- throw new Error("Failed to load WASM binary from any source");
218
- }
219
- console.log(`\u2705 WASM binary loaded successfully (${wasmBinary.byteLength} bytes)`);
220
- if (!isNode()) {
221
- setupWasmFetchInterceptor(wasmBinary);
222
- }
223
- const mod = await import("harfbuzzjs");
224
- const candidate = mod.default;
225
- let hb;
226
- if (typeof candidate === "function") {
227
- hb = await candidate();
228
- } else if (candidate && typeof candidate.then === "function") {
229
- hb = await candidate;
230
- } else {
231
- hb = candidate;
232
- }
233
- if (!hb || typeof hb.createBuffer !== "function" || typeof hb.createFont !== "function") {
234
- throw new Error("Failed to initialize HarfBuzz: unexpected export shape from 'harfbuzzjs'.");
235
- }
236
- hbSingleton = hb;
237
- console.log("\u2705 HarfBuzz initialized successfully");
238
- return hbSingleton;
239
- } catch (err) {
240
- console.error("Failed to initialize HarfBuzz:", err);
241
- throw new Error(
242
- `Failed to initialize HarfBuzz: ${err instanceof Error ? err.message : String(err)}`
243
- );
244
- }
245
- }
246
-
247
- // src/core/font-registry.ts
248
- var fontkit = __toESM(require("fontkit"), 1);
249
- var FontRegistry = class _FontRegistry {
250
- hb;
251
- faces = /* @__PURE__ */ new Map();
252
- fonts = /* @__PURE__ */ new Map();
253
- blobs = /* @__PURE__ */ new Map();
254
- fontkitFonts = /* @__PURE__ */ new Map();
255
- wasmBaseURL;
256
- initPromise;
257
- static fallbackLoader;
258
- static setFallbackLoader(loader) {
259
- _FontRegistry.fallbackLoader = loader;
260
- }
261
- constructor(wasmBaseURL) {
262
- this.wasmBaseURL = wasmBaseURL;
263
- }
264
- async init() {
265
- if (this.initPromise) {
266
- await this.initPromise;
267
- return;
268
- }
269
- if (this.hb) return;
270
- this.initPromise = this._doInit();
271
- try {
272
- await this.initPromise;
273
- } catch (err) {
274
- throw new Error(
275
- `Failed to initialize FontRegistry: ${err instanceof Error ? err.message : String(err)}`
276
- );
277
- }
278
- }
279
- async _doInit() {
280
- try {
281
- this.hb = await initHB(
282
- "https://shotstack-ingest-api-dev-sources.s3.ap-southeast-2.amazonaws.com/euo5r93oyr/zzz01k9h-yycyx-2x2y6-qx9bj-7n567b/source.wasm"
283
- );
284
- } catch (error) {
285
- this.initPromise = void 0;
286
- throw error;
287
- }
288
- }
289
- async getHB() {
290
- if (!this.hb) {
291
- try {
292
- await this.init();
293
- } catch (err) {
294
- throw new Error(
295
- `Failed to get HarfBuzz instance: ${err instanceof Error ? err.message : String(err)}`
296
- );
297
- }
298
- }
299
- return this.hb;
300
- }
301
- key(desc) {
302
- return `${desc.family}__${desc.weight ?? "400"}__${desc.style ?? "normal"}`;
303
- }
304
- async registerFromBytes(bytes, desc) {
305
- try {
306
- if (!this.hb) await this.init();
307
- const k = this.key(desc);
308
- if (this.fonts.has(k)) return;
309
- const blob = this.hb.createBlob(bytes);
310
- const face = this.hb.createFace(blob, 0);
311
- const font = this.hb.createFont(face);
312
- const upem = face.upem || 1e3;
313
- font.setScale(upem, upem);
314
- const weight = desc.weight ?? "400";
315
- const weightNum = typeof weight === "string" ? parseInt(weight, 10) : weight;
316
- if (weightNum !== 400 && typeof font.setVariations === "function") {
317
- try {
318
- font.setVariations(`wght=${weightNum}`);
319
- } catch (e) {
320
- }
321
- }
322
- this.blobs.set(k, blob);
323
- this.faces.set(k, face);
324
- this.fonts.set(k, font);
325
- try {
326
- const buffer = typeof Buffer !== "undefined" ? Buffer.from(bytes) : new Uint8Array(bytes);
327
- const fkFont = fontkit.create(buffer);
328
- if (fkFont.variationAxes && Object.keys(fkFont.variationAxes).length > 0) {
329
- const variationFont = fkFont.getVariation({ wght: weightNum });
330
- this.fontkitFonts.set(k, variationFont);
331
- console.log(`\u2705 Registered variable font: ${desc.family} weight=${weightNum}`);
332
- } else {
333
- this.fontkitFonts.set(k, fkFont);
334
- console.log(`\u2705 Registered static font: ${desc.family}`);
335
- }
336
- } catch (err) {
337
- console.warn(`\u26A0\uFE0F Fontkit failed for ${desc.family}:`, err);
338
- }
339
- } catch (err) {
340
- throw new Error(
341
- `Failed to register font "${desc.family}": ${err instanceof Error ? err.message : String(err)}`
342
- );
343
- }
344
- }
345
- async tryFallbackInstall(desc) {
346
- const loader = _FontRegistry.fallbackLoader;
347
- if (!loader) return false;
348
- try {
349
- const bytes = await loader({
350
- family: desc.family,
351
- weight: desc.weight ?? "400",
352
- style: desc.style ?? "normal"
353
- });
354
- if (!bytes) return false;
355
- await this.registerFromBytes(bytes, {
356
- family: desc.family,
357
- weight: desc.weight ?? "400",
358
- style: desc.style ?? "normal"
359
- });
360
- return true;
361
- } catch {
362
- return false;
363
- }
364
- }
365
- async getFont(desc) {
366
- try {
367
- if (!this.hb) await this.init();
368
- const k = this.key(desc);
369
- let f = this.fonts.get(k);
370
- if (!f) {
371
- const installed = await this.tryFallbackInstall(desc);
372
- f = installed ? this.fonts.get(k) : void 0;
373
- }
374
- if (!f) throw new Error(`Font not registered for ${k}`);
375
- return f;
376
- } catch (err) {
377
- if (err instanceof Error && err.message.includes("Font not registered")) {
378
- throw err;
379
- }
380
- throw new Error(
381
- `Failed to get font "${desc.family}": ${err instanceof Error ? err.message : String(err)}`
382
- );
383
- }
384
- }
385
- async getFace(desc) {
386
- try {
387
- if (!this.hb) await this.init();
388
- const k = this.key(desc);
389
- let face = this.faces.get(k);
390
- if (!face) {
391
- const installed = await this.tryFallbackInstall(desc);
392
- face = installed ? this.faces.get(k) : void 0;
393
- }
394
- return face;
395
- } catch (err) {
396
- throw new Error(
397
- `Failed to get face for "${desc.family}": ${err instanceof Error ? err.message : String(err)}`
398
- );
399
- }
400
- }
401
- async getUnitsPerEm(desc) {
402
- try {
403
- const face = await this.getFace(desc);
404
- return face?.upem || 1e3;
405
- } catch (err) {
406
- throw new Error(
407
- `Failed to get units per em for "${desc.family}": ${err instanceof Error ? err.message : String(err)}`
408
- );
409
- }
410
- }
411
- async glyphPath(desc, glyphId) {
412
- const k = this.key(desc);
413
- try {
414
- const fkFont = this.fontkitFonts.get(k);
415
- if (fkFont) {
416
- const glyph = fkFont.getGlyph(glyphId);
417
- if (glyph && glyph.path) {
418
- return glyph.path.toSVG();
419
- }
420
- }
421
- const font = await this.getFont(desc);
422
- const path = font.glyphToPath(glyphId);
423
- return path && path !== "" ? path : "M 0 0";
424
- } catch (err) {
425
- throw new Error(
426
- `Failed to get glyph path for glyph ${glyphId} in font "${desc.family}": ${err instanceof Error ? err.message : String(err)}`
427
- );
428
- }
429
- }
430
- destroy() {
431
- try {
432
- for (const [, f] of this.fonts) {
433
- try {
434
- f.destroy();
435
- } catch (err) {
436
- console.error(
437
- `Error destroying font: ${err instanceof Error ? err.message : String(err)}`
438
- );
439
- }
440
- }
441
- for (const [, f] of this.faces) {
442
- try {
443
- f.destroy();
444
- } catch (err) {
445
- console.error(
446
- `Error destroying face: ${err instanceof Error ? err.message : String(err)}`
447
- );
448
- }
449
- }
450
- for (const [, b] of this.blobs) {
451
- try {
452
- b.destroy();
453
- } catch (err) {
454
- console.error(
455
- `Error destroying blob: ${err instanceof Error ? err.message : String(err)}`
456
- );
457
- }
458
- }
459
- this.fonts.clear();
460
- this.faces.clear();
461
- this.blobs.clear();
462
- this.fontkitFonts.clear();
463
- this.hb = void 0;
464
- this.initPromise = void 0;
465
- } catch (err) {
466
- console.error(
467
- `Error during FontRegistry cleanup: ${err instanceof Error ? err.message : String(err)}`
468
- );
469
- }
470
- }
471
- };
472
-
473
- // src/core/layout.ts
474
- var LayoutEngine = class {
475
- constructor(fonts) {
476
- this.fonts = fonts;
477
- }
478
- transformText(t, tr) {
479
- switch (tr) {
480
- case "uppercase":
481
- return t.toUpperCase();
482
- case "lowercase":
483
- return t.toLowerCase();
484
- case "capitalize":
485
- return t.replace(/\b\w/g, (c) => c.toUpperCase());
486
- default:
487
- return t;
488
- }
489
- }
490
- async shapeFull(text, desc) {
491
- try {
492
- const hb = await this.fonts.getHB();
493
- const buffer = hb.createBuffer();
494
- try {
495
- buffer.addText(text);
496
- buffer.guessSegmentProperties();
497
- const font = await this.fonts.getFont(desc);
498
- const face = await this.fonts.getFace(desc);
499
- const upem = face?.upem || 1e3;
500
- font.setScale(upem, upem);
501
- hb.shape(font, buffer);
502
- const result = buffer.json();
503
- return result;
504
- } finally {
505
- try {
506
- buffer.destroy();
507
- } catch (err) {
508
- console.error(
509
- `Error destroying HarfBuzz buffer: ${err instanceof Error ? err.message : String(err)}`
510
- );
511
- }
512
- }
513
- } catch (err) {
514
- throw new Error(
515
- `Failed to shape text with font "${desc.family}": ${err instanceof Error ? err.message : String(err)}`
516
- );
517
- }
518
- }
519
- async layout(params) {
520
- try {
521
- const { textTransform, desc, fontSize, letterSpacing, width } = params;
522
- const input = this.transformText(params.text, textTransform);
523
- if (!input || input.length === 0) {
524
- return [];
525
- }
526
- let shaped;
527
- try {
528
- shaped = await this.shapeFull(input, desc);
529
- } catch (err) {
530
- throw new Error(`Text shaping failed: ${err instanceof Error ? err.message : String(err)}`);
531
- }
532
- let upem;
533
- try {
534
- const face = await this.fonts.getFace(desc);
535
- upem = face?.upem || 1e3;
536
- } catch (err) {
537
- throw new Error(
538
- `Failed to get font metrics: ${err instanceof Error ? err.message : String(err)}`
539
- );
540
- }
541
- const scale = fontSize / upem;
542
- const glyphs = shaped.map((g) => {
543
- const charIndex = g.cl;
544
- let char;
545
- if (charIndex >= 0 && charIndex < input.length) {
546
- char = input[charIndex];
547
- }
548
- return {
549
- id: g.g,
550
- xAdvance: g.ax * scale + letterSpacing,
551
- xOffset: g.dx * scale,
552
- yOffset: -g.dy * scale,
553
- cluster: g.cl,
554
- char
555
- };
556
- });
557
- const lines = [];
558
- let currentLine = [];
559
- let currentWidth = 0;
560
- const spaceIndices = /* @__PURE__ */ new Set();
561
- for (let i = 0; i < input.length; i++) {
562
- if (input[i] === " ") {
563
- spaceIndices.add(i);
564
- }
565
- }
566
- let lastBreakIndex = -1;
567
- for (let i = 0; i < glyphs.length; i++) {
568
- const glyph = glyphs[i];
569
- const glyphWidth = glyph.xAdvance;
570
- if (glyph.char === "\n") {
571
- if (currentLine.length > 0) {
572
- lines.push({
573
- glyphs: currentLine,
574
- width: currentWidth,
575
- y: 0
576
- });
577
- }
578
- currentLine = [];
579
- currentWidth = 0;
580
- lastBreakIndex = i;
581
- continue;
582
- }
583
- if (currentWidth + glyphWidth > width && currentLine.length > 0) {
584
- if (lastBreakIndex > -1) {
585
- const breakPoint = lastBreakIndex - (i - currentLine.length) + 1;
586
- const nextLine = currentLine.splice(breakPoint);
587
- const lineWidth = currentLine.reduce((sum, g) => sum + g.xAdvance, 0);
588
- lines.push({
589
- glyphs: currentLine,
590
- width: lineWidth,
591
- y: 0
592
- });
593
- currentLine = nextLine;
594
- currentWidth = nextLine.reduce((sum, g) => sum + g.xAdvance, 0);
595
- } else {
596
- lines.push({
597
- glyphs: currentLine,
598
- width: currentWidth,
599
- y: 0
600
- });
601
- currentLine = [];
602
- currentWidth = 0;
603
- }
604
- lastBreakIndex = -1;
605
- }
606
- currentLine.push(glyph);
607
- currentWidth += glyphWidth;
608
- if (spaceIndices.has(glyph.cluster)) {
609
- lastBreakIndex = i;
610
- }
611
- }
612
- if (currentLine.length > 0) {
613
- lines.push({
614
- glyphs: currentLine,
615
- width: currentWidth,
616
- y: 0
617
- });
618
- }
619
- const lineHeight = params.lineHeight * fontSize;
620
- for (let i = 0; i < lines.length; i++) {
621
- lines[i].y = (i + 1) * lineHeight;
622
- }
623
- return lines;
624
- } catch (err) {
625
- if (err instanceof Error) {
626
- throw err;
627
- }
628
- throw new Error(`Layout failed: ${String(err)}`);
629
- }
630
- }
631
- };
632
-
633
- // src/core/gradients.ts
634
- function gradientSpecFrom(g, opacity) {
635
- if (g.type === "linear") {
636
- return { kind: "linear", angle: g.angle, stops: g.stops, opacity };
637
- } else {
638
- return { kind: "radial", stops: g.stops, opacity };
639
- }
640
- }
641
-
642
- // src/core/decoration.ts
643
- function decorationGeometry(kind, p) {
644
- const thickness = Math.max(1, Math.round(p.fontSize * 0.05));
645
- let y = p.baselineY + Math.round(p.fontSize * 0.1);
646
- if (kind === "line-through") y = p.baselineY - Math.round(p.fontSize * 0.3);
647
- return { x1: p.xStart, x2: p.xStart + p.lineWidth, y, width: thickness };
648
- }
649
-
650
- // src/core/drawops.ts
651
- async function buildDrawOps(p) {
652
- const ops = [];
653
- ops.push({
654
- op: "BeginFrame",
655
- width: p.canvas.width,
656
- height: p.canvas.height,
657
- pixelRatio: p.canvas.pixelRatio,
658
- clear: true,
659
- bg: p.background && p.background.color ? { color: p.background.color, opacity: p.background.opacity, radius: p.background.borderRadius } : void 0
660
- });
661
- if (p.lines.length === 0) return ops;
662
- const upem = Math.max(1, await p.getUnitsPerEm());
663
- const scale = p.font.size / upem;
664
- const blockHeight = p.lines[p.lines.length - 1].y;
665
- let blockY;
666
- switch (p.align.vertical) {
667
- case "top":
668
- blockY = p.font.size;
669
- break;
670
- case "bottom":
671
- blockY = p.textRect.height - blockHeight + p.font.size;
672
- break;
673
- case "middle":
674
- default:
675
- blockY = (p.textRect.height - blockHeight) / 2 + p.font.size;
676
- break;
677
- }
678
- const fill = p.style.gradient ? gradientSpecFrom(p.style.gradient, 1) : { kind: "solid", color: p.font.color, opacity: p.font.opacity };
679
- const decoColor = p.style.gradient ? p.style.gradient.stops[p.style.gradient.stops.length - 1]?.color ?? p.font.color : p.font.color;
680
- let gMinX = Infinity, gMinY = Infinity, gMaxX = -Infinity, gMaxY = -Infinity;
681
- for (const line of p.lines) {
682
- let lineX;
683
- switch (p.align.horizontal) {
684
- case "left":
685
- lineX = 0;
686
- break;
687
- case "right":
688
- lineX = p.textRect.width - line.width;
689
- break;
690
- case "center":
691
- default:
692
- lineX = (p.textRect.width - line.width) / 2;
693
- break;
694
- }
695
- let xCursor = lineX;
696
- const baselineY = blockY + line.y - p.font.size;
697
- for (const glyph of line.glyphs) {
698
- const path = await p.glyphPathProvider(glyph.id);
699
- if (!path || path === "M 0 0") {
700
- xCursor += glyph.xAdvance;
701
- continue;
702
- }
703
- const glyphX = xCursor + glyph.xOffset;
704
- const glyphY = baselineY + glyph.yOffset;
705
- const pb = computePathBounds(path);
706
- const x1 = glyphX + scale * pb.x;
707
- const x2 = glyphX + scale * (pb.x + pb.w);
708
- const y1 = glyphY - scale * (pb.y + pb.h);
709
- const y2 = glyphY - scale * pb.y;
710
- if (x1 < gMinX) gMinX = x1;
711
- if (y1 < gMinY) gMinY = y1;
712
- if (x2 > gMaxX) gMaxX = x2;
713
- if (y2 > gMaxY) gMaxY = y2;
714
- if (p.shadow && p.shadow.blur > 0) {
715
- ops.push({
716
- isShadow: true,
717
- op: "FillPath",
718
- path,
719
- x: glyphX + p.shadow.offsetX,
720
- y: glyphY + p.shadow.offsetY,
721
- scale,
722
- fill: { kind: "solid", color: p.shadow.color, opacity: p.shadow.opacity }
723
- });
724
- }
725
- if (p.stroke && p.stroke.width > 0) {
726
- ops.push({
727
- op: "StrokePath",
728
- path,
729
- x: glyphX,
730
- y: glyphY,
731
- scale,
732
- width: p.stroke.width,
733
- color: p.stroke.color,
734
- opacity: p.stroke.opacity
735
- });
736
- }
737
- ops.push({
738
- op: "FillPath",
739
- path,
740
- x: glyphX,
741
- y: glyphY,
742
- scale,
743
- fill
744
- });
745
- xCursor += glyph.xAdvance;
746
- }
747
- if (p.style.textDecoration !== "none") {
748
- const deco = decorationGeometry(p.style.textDecoration, {
749
- baselineY,
750
- fontSize: p.font.size,
751
- lineWidth: line.width,
752
- xStart: lineX
753
- });
754
- ops.push({
755
- op: "DecorationLine",
756
- from: { x: deco.x1, y: deco.y },
757
- to: { x: deco.x2, y: deco.y },
758
- width: deco.width,
759
- color: decoColor,
760
- opacity: p.font.opacity
761
- });
762
- }
763
- }
764
- if (gMinX !== Infinity) {
765
- const gbox = { x: gMinX, y: gMinY, w: Math.max(1, gMaxX - gMinX), h: Math.max(1, gMaxY - gMinY) };
766
- for (const op of ops) {
767
- if (op.op === "FillPath" && !op.isShadow) {
768
- op.gradientBBox = gbox;
769
- }
770
- }
771
- }
772
- return ops;
773
- }
774
- function tokenizePath(d) {
775
- return d.match(/[MLCQZ]|-?\d*\.?\d+(?:e[-+]?\d+)?/gi) ?? [];
776
- }
777
- function computePathBounds(d) {
778
- const t = tokenizePath(d);
779
- let i = 0;
780
- let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;
781
- const touch = (x, y) => {
782
- if (x < minX) minX = x;
783
- if (y < minY) minY = y;
784
- if (x > maxX) maxX = x;
785
- if (y > maxY) maxY = y;
786
- };
787
- while (i < t.length) {
788
- const cmd = t[i++];
789
- switch (cmd) {
790
- case "M":
791
- case "L": {
792
- const x = parseFloat(t[i++]);
793
- const y = parseFloat(t[i++]);
794
- touch(x, y);
795
- break;
796
- }
797
- case "C": {
798
- const c1x = parseFloat(t[i++]);
799
- const c1y = parseFloat(t[i++]);
800
- const c2x = parseFloat(t[i++]);
801
- const c2y = parseFloat(t[i++]);
802
- const x = parseFloat(t[i++]);
803
- const y = parseFloat(t[i++]);
804
- touch(c1x, c1y);
805
- touch(c2x, c2y);
806
- touch(x, y);
807
- break;
808
- }
809
- case "Q": {
810
- const cx = parseFloat(t[i++]);
811
- const cy = parseFloat(t[i++]);
812
- const x = parseFloat(t[i++]);
813
- const y = parseFloat(t[i++]);
814
- touch(cx, cy);
815
- touch(x, y);
816
- break;
817
- }
818
- case "Z":
819
- break;
820
- }
821
- }
822
- if (minX === Infinity) return { x: 0, y: 0, w: 0, h: 0 };
823
- return { x: minX, y: minY, w: maxX - minX, h: maxY - minY };
824
- }
825
-
826
- // src/core/animations.ts
827
- var DECORATION_DONE_THRESHOLD = 0.999;
828
- function applyAnimation(ops, lines, p) {
829
- if (!p.anim || !p.anim.preset) return ops;
830
- const { preset } = p.anim;
831
- const totalGlyphs = lines.reduce((s, l) => s + l.glyphs.length, 0);
832
- const duration = p.anim.duration ?? Math.max(0.3, totalGlyphs / 30 / p.anim.speed);
833
- const progress = Math.max(0, Math.min(1, p.t / duration));
834
- switch (preset) {
835
- case "typewriter":
836
- return applyTypewriterAnimation(
837
- ops,
838
- lines,
839
- progress,
840
- p.anim.style,
841
- p.fontSize,
842
- p.t,
843
- duration
844
- );
845
- case "fadeIn":
846
- return applyFadeInAnimation(ops, progress);
847
- case "slideIn":
848
- return applySlideInAnimation(ops, progress, p.anim.direction ?? "left", p.fontSize);
849
- case "shift":
850
- return applyShiftAnimation(
851
- ops,
852
- lines,
853
- progress,
854
- p.anim.direction ?? "left",
855
- p.fontSize,
856
- p.anim.style,
857
- duration
858
- );
859
- case "ascend":
860
- return applyAscendAnimation(
861
- ops,
862
- lines,
863
- progress,
864
- p.anim.direction ?? "up",
865
- p.fontSize,
866
- duration
867
- );
868
- case "movingLetters":
869
- return applyMovingLettersAnimation(ops, progress, p.anim.direction ?? "up", p.fontSize);
870
- default:
871
- return ops;
872
- }
873
- }
874
- var isShadowFill = (op) => op.op === "FillPath" && op.isShadow === true;
875
- var isGlyphFill = (op) => op.op === "FillPath" && !op.isShadow === true;
876
- function getTextColorFromOps(ops) {
877
- for (const op of ops) {
878
- if (op.op === "FillPath") {
879
- const fill = op.fill;
880
- if (fill?.kind === "solid") return fill.color;
881
- if ((fill?.kind === "linear" || fill?.kind === "radial") && Array.isArray(fill.stops) && fill.stops.length) {
882
- return fill.stops[fill.stops.length - 1].color || "#000000";
883
- }
884
- }
885
- }
886
- return "#000000";
887
- }
888
- function applyTypewriterAnimation(ops, lines, progress, style, fontSize, time, duration) {
889
- const byWord = style === "word";
890
- if (byWord) {
891
- const wordSegments = getWordSegments(lines);
892
- const totalWords = wordSegments.length;
893
- const visibleWords = Math.floor(progress * totalWords);
894
- if (visibleWords === 0) return ops.filter((x) => x.op === "BeginFrame");
895
- let totalVisibleGlyphs = 0;
896
- for (let i = 0; i < Math.min(visibleWords, wordSegments.length); i++) {
897
- totalVisibleGlyphs += wordSegments[i].glyphCount;
898
- }
899
- const visibleOpsRaw = sliceGlyphOps(ops, totalVisibleGlyphs);
900
- const visibleOps = progress >= DECORATION_DONE_THRESHOLD ? visibleOpsRaw : visibleOpsRaw.filter((o) => o.op !== "DecorationLine");
901
- if (progress < 1 && totalVisibleGlyphs > 0) {
902
- return addTypewriterCursor(visibleOps, totalVisibleGlyphs, fontSize, time);
903
- }
904
- return visibleOps;
905
- } else {
906
- const totalGlyphs = lines.reduce((s, l) => s + l.glyphs.length, 0);
907
- const visibleGlyphs = Math.floor(progress * totalGlyphs);
908
- if (visibleGlyphs === 0) return ops.filter((x) => x.op === "BeginFrame");
909
- const visibleOpsRaw = sliceGlyphOps(ops, visibleGlyphs);
910
- const visibleOps = progress >= DECORATION_DONE_THRESHOLD ? visibleOpsRaw : visibleOpsRaw.filter((o) => o.op !== "DecorationLine");
911
- if (progress < 1 && visibleGlyphs > 0) {
912
- return addTypewriterCursor(visibleOps, visibleGlyphs, fontSize, time);
913
- }
914
- return visibleOps;
915
- }
916
- }
917
- function applyAscendAnimation(ops, lines, progress, direction, fontSize, duration) {
918
- const wordSegments = getWordSegments(lines);
919
- const totalWords = wordSegments.length;
920
- if (totalWords === 0) return ops;
921
- const result = [];
922
- let glyphIndex = 0;
923
- for (const op of ops) {
924
- if (op.op === "BeginFrame") {
925
- result.push(op);
926
- break;
927
- }
928
- }
929
- for (const op of ops) {
930
- if (op.op === "FillPath" || op.op === "StrokePath") {
931
- let wordIndex = -1, acc = 0;
932
- for (let i = 0; i < wordSegments.length; i++) {
933
- const gcount = wordSegments[i].glyphCount;
934
- if (glyphIndex >= acc && glyphIndex < acc + gcount) {
935
- wordIndex = i;
936
- break;
937
- }
938
- acc += gcount;
939
- }
940
- if (wordIndex >= 0) {
941
- const startF = wordIndex / Math.max(1, totalWords) * (duration / duration);
942
- const endF = Math.min(1, startF + 0.3);
943
- if (progress >= endF) {
944
- result.push(op);
945
- } else if (progress > startF) {
946
- const local = (progress - startF) / Math.max(1e-6, endF - startF);
947
- const ease = easeOutCubic(Math.min(1, local));
948
- const startOffset = direction === "up" ? fontSize * 0.4 : -fontSize * 0.4;
949
- const animated = { ...op, y: op.y + startOffset * (1 - ease) };
950
- if (op.op === "FillPath") {
951
- if (animated.fill.kind === "solid")
952
- animated.fill = { ...animated.fill, opacity: animated.fill.opacity * ease };
953
- else animated.fill = { ...animated.fill, opacity: (animated.fill.opacity ?? 1) * ease };
954
- } else {
955
- animated.opacity = animated.opacity * ease;
956
- }
957
- result.push(animated);
958
- }
959
- }
960
- if (isGlyphFill(op)) glyphIndex++;
961
- } else if (op.op === "DecorationLine") {
962
- if (progress >= DECORATION_DONE_THRESHOLD) {
963
- result.push(op);
964
- }
965
- }
966
- }
967
- return result;
968
- }
969
- function applyShiftAnimation(ops, lines, progress, direction, fontSize, style, duration) {
970
- const byWord = style === "word";
971
- const startOffsets = {
972
- left: { x: fontSize * 0.6, y: 0 },
973
- right: { x: -fontSize * 0.6, y: 0 },
974
- up: { x: 0, y: fontSize * 0.6 },
975
- down: { x: 0, y: -fontSize * 0.6 }
976
- };
977
- const offset = startOffsets[direction];
978
- const wordSegments = byWord ? getWordSegments(lines) : [];
979
- const totalGlyphs = lines.reduce((s, l) => s + l.glyphs.length, 0);
980
- const totalUnits = byWord ? wordSegments.length : totalGlyphs;
981
- if (totalUnits === 0) return ops;
982
- const result = [];
983
- for (const op of ops) {
984
- if (op.op === "BeginFrame") {
985
- result.push(op);
986
- break;
987
- }
988
- }
989
- const windowDuration = 0.3;
990
- const overlapFactor = 0.7;
991
- const staggerDelay = duration * overlapFactor / Math.max(1, totalUnits - 1);
992
- const windowFor = (unitIdx) => {
993
- const startTime = unitIdx * staggerDelay;
994
- const startF = startTime / duration;
995
- const endF = Math.min(1, (startTime + windowDuration) / duration);
996
- return { startF, endF };
997
- };
998
- let glyphIndex = 0;
999
- for (const op of ops) {
1000
- if (op.op !== "FillPath" && op.op !== "StrokePath") {
1001
- if (op.op === "DecorationLine" && progress > 0.8) result.push(op);
1002
- continue;
1003
- }
1004
- let unitIndex;
1005
- if (!byWord) {
1006
- unitIndex = glyphIndex;
1007
- } else {
1008
- let wordIndex = -1, acc = 0;
1009
- for (let i = 0; i < wordSegments.length; i++) {
1010
- const gcount = wordSegments[i].glyphCount;
1011
- if (glyphIndex >= acc && glyphIndex < acc + gcount) {
1012
- wordIndex = i;
1013
- break;
1014
- }
1015
- acc += gcount;
1016
- }
1017
- unitIndex = Math.max(0, wordIndex);
1018
- }
1019
- const { startF, endF } = windowFor(unitIndex);
1020
- if (progress <= startF) {
1021
- const animated = { ...op, x: op.x + offset.x, y: op.y + offset.y };
1022
- if (op.op === "FillPath") {
1023
- if (animated.fill.kind === "solid") animated.fill = { ...animated.fill, opacity: 0 };
1024
- else animated.fill = { ...animated.fill, opacity: 0 };
1025
- } else {
1026
- animated.opacity = 0;
1027
- }
1028
- result.push(animated);
1029
- } else if (progress >= endF) {
1030
- result.push(op);
1031
- } else {
1032
- const local = (progress - startF) / Math.max(1e-6, endF - startF);
1033
- const ease = easeOutCubic(Math.min(1, local));
1034
- const dx = offset.x * (1 - ease);
1035
- const dy = offset.y * (1 - ease);
1036
- const animated = { ...op, x: op.x + dx, y: op.y + dy };
1037
- if (op.op === "FillPath") {
1038
- const targetOpacity = animated.fill.kind === "solid" ? animated.fill.opacity : animated.fill.opacity ?? 1;
1039
- if (animated.fill.kind === "solid")
1040
- animated.fill = { ...animated.fill, opacity: targetOpacity * ease };
1041
- else animated.fill = { ...animated.fill, opacity: targetOpacity * ease };
1042
- } else {
1043
- animated.opacity = animated.opacity * ease;
1044
- }
1045
- result.push(animated);
1046
- }
1047
- if (isGlyphFill(op)) glyphIndex++;
1048
- }
1049
- return result;
1050
- }
1051
- function applyFadeInAnimation(ops, progress) {
1052
- const alpha = easeOutQuad(progress);
1053
- const scale = 0.95 + 0.05 * alpha;
1054
- return scaleAndFade(ops, alpha, scale);
1055
- }
1056
- function applySlideInAnimation(ops, progress, direction, fontSize) {
1057
- const easeProgress = easeOutCubic(progress);
1058
- const shift = shiftFor(1 - easeProgress, direction, fontSize * 2);
1059
- const alpha = easeOutQuad(progress);
1060
- return translateGlyphOps(ops, shift.dx, shift.dy, alpha);
1061
- }
1062
- function applyMovingLettersAnimation(ops, progress, direction, fontSize) {
1063
- const amp = fontSize * 0.3;
1064
- return waveTransform(ops, direction, amp, progress);
1065
- }
1066
- function getWordSegments(lines) {
1067
- const segments = [];
1068
- let totalGlyphIndex = 0;
1069
- for (let lineIndex = 0; lineIndex < lines.length; lineIndex++) {
1070
- const line = lines[lineIndex];
1071
- const words = segmentLineBySpaces(line);
1072
- for (const word of words) {
1073
- if (word.length > 0)
1074
- segments.push({ startGlyph: totalGlyphIndex, glyphCount: word.length, lineIndex });
1075
- totalGlyphIndex += word.length;
1076
- }
1077
- }
1078
- return segments;
1079
- }
1080
- function segmentLineBySpaces(line) {
1081
- const words = [];
1082
- let current = [];
1083
- for (const g of line.glyphs) {
1084
- const isSpace = g.char === " " || g.char === " " || g.char === "\n";
1085
- if (isSpace) {
1086
- if (current.length) {
1087
- words.push([...current]);
1088
- current = [];
1089
- }
1090
- } else {
1091
- current.push(g);
1092
- }
1093
- }
1094
- if (current.length) words.push(current);
1095
- return words;
1096
- }
1097
- function sliceGlyphOps(ops, maxGlyphs) {
1098
- const result = [];
1099
- let glyphCount = 0;
1100
- let foundGlyphs = false;
1101
- for (const op of ops) {
1102
- if (op.op === "BeginFrame") {
1103
- result.push(op);
1104
- continue;
1105
- }
1106
- if (op.op === "FillPath" && !isShadowFill(op)) {
1107
- if (glyphCount < maxGlyphs) {
1108
- result.push(op);
1109
- foundGlyphs = true;
1110
- }
1111
- glyphCount++;
1112
- continue;
1113
- }
1114
- if (op.op === "StrokePath") {
1115
- if (glyphCount < maxGlyphs) result.push(op);
1116
- continue;
1117
- }
1118
- if (op.op === "FillPath" && isShadowFill(op)) {
1119
- if (glyphCount < maxGlyphs) result.push(op);
1120
- continue;
1121
- }
1122
- if (op.op === "DecorationLine" && foundGlyphs) {
1123
- result.push(op);
1124
- continue;
1125
- }
1126
- }
1127
- return result;
1128
- }
1129
- function addTypewriterCursor(ops, glyphCount, fontSize, time) {
1130
- const blinkRate = 2;
1131
- const cursorVisible = Math.floor(time * blinkRate * 2) % 2 === 0;
1132
- if (!cursorVisible || glyphCount === 0) return ops;
1133
- let last = null;
1134
- let count = 0;
1135
- for (const op of ops) {
1136
- if (op.op === "FillPath" && !isShadowFill(op)) {
1137
- count++;
1138
- if (count === glyphCount) {
1139
- last = op;
1140
- break;
1141
- }
1142
- }
1143
- }
1144
- if (last && last.op === "FillPath") {
1145
- const color = getTextColorFromOps(ops);
1146
- const cursorX = last.x + fontSize * 0.5;
1147
- const cursorY = last.y;
1148
- const cursorOp = {
1149
- op: "DecorationLine",
1150
- from: { x: cursorX, y: cursorY - fontSize * 0.7 },
1151
- to: { x: cursorX, y: cursorY + fontSize * 0.1 },
1152
- width: Math.max(2, fontSize / 25),
1153
- color,
1154
- opacity: 1
1155
- };
1156
- return [...ops, cursorOp];
1157
- }
1158
- return ops;
1159
- }
1160
- function scaleAndFade(ops, alpha, scale) {
1161
- let cx = 0, cy = 0, n = 0;
1162
- ops.forEach((op) => {
1163
- if (op.op === "FillPath") {
1164
- cx += op.x;
1165
- cy += op.y;
1166
- n++;
1167
- }
1168
- });
1169
- if (n > 0) {
1170
- cx /= n;
1171
- cy /= n;
1172
- }
1173
- return ops.map((op) => {
1174
- if (op.op === "FillPath") {
1175
- const out = { ...op };
1176
- if (out.fill.kind === "solid") out.fill = { ...out.fill, opacity: out.fill.opacity * alpha };
1177
- else out.fill = { ...out.fill, opacity: (out.fill.opacity ?? 1) * alpha };
1178
- if (scale !== 1 && n > 0) {
1179
- const dx = op.x - cx, dy = op.y - cy;
1180
- out.x = cx + dx * scale;
1181
- out.y = cy + dy * scale;
1182
- }
1183
- return out;
1184
- }
1185
- if (op.op === "StrokePath") {
1186
- const out = { ...op, opacity: op.opacity * alpha };
1187
- if (scale !== 1 && n > 0) {
1188
- const dx = op.x - cx, dy = op.y - cy;
1189
- out.x = cx + dx * scale;
1190
- out.y = cy + dy * scale;
1191
- }
1192
- return out;
1193
- }
1194
- if (op.op === "DecorationLine") return { ...op, opacity: op.opacity * alpha };
1195
- return op;
1196
- });
1197
- }
1198
- function translateGlyphOps(ops, dx, dy, alpha = 1) {
1199
- return ops.map((op) => {
1200
- if (op.op === "FillPath") {
1201
- const out = { ...op, x: op.x + dx, y: op.y + dy };
1202
- if (alpha < 1) {
1203
- if (out.fill.kind === "solid")
1204
- out.fill = { ...out.fill, opacity: out.fill.opacity * alpha };
1205
- else out.fill = { ...out.fill, opacity: (out.fill.opacity ?? 1) * alpha };
1206
- }
1207
- return out;
1208
- }
1209
- if (op.op === "StrokePath")
1210
- return { ...op, x: op.x + dx, y: op.y + dy, opacity: op.opacity * alpha };
1211
- if (op.op === "DecorationLine") {
1212
- return {
1213
- ...op,
1214
- from: { x: op.from.x + dx, y: op.from.y + dy },
1215
- to: { x: op.to.x + dx, y: op.to.y + dy },
1216
- opacity: op.opacity * alpha
1217
- };
1218
- }
1219
- return op;
1220
- });
1221
- }
1222
- function waveTransform(ops, dir, amp, p) {
1223
- let glyphIndex = 0;
1224
- return ops.map((op) => {
1225
- if (op.op === "FillPath" || op.op === "StrokePath") {
1226
- const phase = Math.sin(glyphIndex / 5 * Math.PI + p * Math.PI * 4);
1227
- const dx = dir === "left" || dir === "right" ? phase * amp * (dir === "left" ? -1 : 1) : 0;
1228
- const dy = dir === "up" || dir === "down" ? phase * amp * (dir === "up" ? -1 : 1) : 0;
1229
- const waveAlpha = Math.min(1, p * 2);
1230
- if (op.op === "FillPath") {
1231
- if (!isShadowFill(op)) glyphIndex++;
1232
- const out = { ...op, x: op.x + dx, y: op.y + dy };
1233
- if (out.fill.kind === "solid")
1234
- out.fill = { ...out.fill, opacity: out.fill.opacity * waveAlpha };
1235
- else out.fill = { ...out.fill, opacity: (out.fill.opacity ?? 1) * waveAlpha };
1236
- return out;
1237
- }
1238
- return { ...op, x: op.x + dx, y: op.y + dy, opacity: op.opacity * waveAlpha };
1239
- }
1240
- return op;
1241
- });
1242
- }
1243
- function shiftFor(progress, dir, dist) {
1244
- const d = progress * dist;
1245
- switch (dir) {
1246
- case "left":
1247
- return { dx: -d, dy: 0 };
1248
- case "right":
1249
- return { dx: d, dy: 0 };
1250
- case "up":
1251
- return { dx: 0, dy: -d };
1252
- case "down":
1253
- return { dx: 0, dy: d };
1254
- }
1255
- }
1256
- function easeOutQuad(t) {
1257
- return t * (2 - t);
1258
- }
1259
- function easeOutCubic(t) {
1260
- return 1 - Math.pow(1 - t, 3);
1261
- }
1262
-
1263
- // src/core/colors.ts
1264
- function parseHex6(hex, alpha = 1) {
1265
- const m = /^#?([a-f0-9]{6})$/i.exec(hex);
1266
- if (!m) throw new Error(`Invalid color ${hex}`);
1267
- const n = parseInt(m[1], 16);
1268
- const r = n >> 16 & 255;
1269
- const g = n >> 8 & 255;
1270
- const b = n & 255;
1271
- return { r, g, b, a: alpha };
1272
- }
1273
-
1274
- // src/painters/node.ts
1275
- async function createNodePainter(opts) {
1276
- const canvasMod = await import("canvas");
1277
- const { createCanvas } = canvasMod;
1278
- const canvas = createCanvas(
1279
- Math.floor(opts.width * opts.pixelRatio),
1280
- Math.floor(opts.height * opts.pixelRatio)
1281
- );
1282
- const ctx = canvas.getContext("2d");
1283
- if (!ctx) throw new Error("2D context unavailable in Node (canvas).");
1284
- const offscreenCanvas = createCanvas(canvas.width, canvas.height);
1285
- const offscreenCtx = offscreenCanvas.getContext("2d");
1286
- const gradientCache = /* @__PURE__ */ new Map();
1287
- const api = {
1288
- async render(ops) {
1289
- const globalBox = computeGlobalTextBounds(ops);
1290
- let needsAlphaExtraction = false;
1291
- for (const op of ops) {
1292
- if (op.op === "BeginFrame") {
1293
- const dpr = op.pixelRatio ?? opts.pixelRatio;
1294
- const wantW = Math.floor(op.width * dpr);
1295
- const wantH = Math.floor(op.height * dpr);
1296
- if (canvas.width !== wantW || canvas.height !== wantH) {
1297
- canvas.width = wantW;
1298
- canvas.height = wantH;
1299
- offscreenCanvas.width = wantW;
1300
- offscreenCanvas.height = wantH;
1301
- }
1302
- ctx.setTransform(dpr, 0, 0, dpr, 0, 0);
1303
- offscreenCtx.setTransform(dpr, 0, 0, dpr, 0, 0);
1304
- const hasBackground = !!(op.bg && op.bg.color);
1305
- needsAlphaExtraction = !hasBackground;
1306
- if (op.bg && op.bg.color) {
1307
- ctx.clearRect(0, 0, op.width, op.height);
1308
- const { color, opacity, radius } = op.bg;
1309
- const c = parseHex6(color, opacity);
1310
- ctx.fillStyle = `rgba(${c.r},${c.g},${c.b},${c.a})`;
1311
- if (radius && radius > 0) {
1312
- ctx.save();
1313
- ctx.beginPath();
1314
- roundRectPath(ctx, 0, 0, op.width, op.height, radius);
1315
- ctx.fill();
1316
- ctx.restore();
1317
- } else {
1318
- ctx.fillRect(0, 0, op.width, op.height);
1319
- }
1320
- } else {
1321
- ctx.clearRect(0, 0, op.width, op.height);
1322
- ctx.save();
1323
- ctx.fillStyle = "rgb(255, 255, 255)";
1324
- ctx.fillRect(0, 0, op.width, op.height);
1325
- ctx.restore();
1326
- offscreenCtx.save();
1327
- offscreenCtx.fillStyle = "rgb(0, 0, 0)";
1328
- offscreenCtx.fillRect(0, 0, op.width, op.height);
1329
- offscreenCtx.restore();
1330
- }
1331
- continue;
1332
- }
1333
- const renderToBoth = (renderFn) => {
1334
- if (needsAlphaExtraction) {
1335
- renderFn(ctx);
1336
- renderFn(offscreenCtx);
1337
- } else {
1338
- renderFn(ctx);
1339
- }
1340
- };
1341
- if (op.op === "FillPath") {
1342
- const fillOp = op;
1343
- renderToBoth((context) => {
1344
- context.save();
1345
- context.translate(fillOp.x, fillOp.y);
1346
- const s = fillOp.scale ?? 1;
1347
- context.scale(s, -s);
1348
- const bbox = fillOp.gradientBBox ?? globalBox;
1349
- const localBBox = {
1350
- x: (bbox.x - fillOp.x) / s,
1351
- y: -(bbox.y - fillOp.y) / s,
1352
- w: bbox.w / s,
1353
- h: bbox.h / s
1354
- };
1355
- const cacheKey = JSON.stringify({ fill: fillOp.fill, bbox: localBBox });
1356
- let fill = gradientCache.get(cacheKey);
1357
- if (!fill) {
1358
- fill = makeGradientFromBBox(context, fillOp.fill, localBBox);
1359
- gradientCache.set(cacheKey, fill);
1360
- }
1361
- context.fillStyle = fill;
1362
- context.beginPath();
1363
- drawSvgPathOnCtx(context, fillOp.path);
1364
- context.fill();
1365
- context.restore();
1366
- });
1367
- continue;
1368
- }
1369
- if (op.op === "StrokePath") {
1370
- const strokeOp = op;
1371
- renderToBoth((context) => {
1372
- context.save();
1373
- context.translate(strokeOp.x, strokeOp.y);
1374
- const s = strokeOp.scale ?? 1;
1375
- context.scale(s, -s);
1376
- const invAbs = 1 / Math.abs(s);
1377
- context.beginPath();
1378
- drawSvgPathOnCtx(context, strokeOp.path);
1379
- const c = parseHex6(strokeOp.color, strokeOp.opacity);
1380
- context.strokeStyle = `rgba(${c.r},${c.g},${c.b},${c.a})`;
1381
- context.lineWidth = strokeOp.width * invAbs;
1382
- context.lineJoin = "round";
1383
- context.lineCap = "round";
1384
- context.stroke();
1385
- context.restore();
1386
- });
1387
- continue;
1388
- }
1389
- if (op.op === "DecorationLine") {
1390
- renderToBoth((context) => {
1391
- context.save();
1392
- const c = parseHex6(op.color, op.opacity);
1393
- context.strokeStyle = `rgba(${c.r},${c.g},${c.b},${c.a})`;
1394
- context.lineWidth = op.width;
1395
- context.beginPath();
1396
- context.moveTo(op.from.x, op.from.y);
1397
- context.lineTo(op.to.x, op.to.y);
1398
- context.stroke();
1399
- context.restore();
1400
- });
1401
- continue;
1402
- }
1403
- }
1404
- if (needsAlphaExtraction) {
1405
- const whiteData = ctx.getImageData(0, 0, canvas.width, canvas.height);
1406
- const blackData = offscreenCtx.getImageData(0, 0, canvas.width, canvas.height);
1407
- const white = whiteData.data;
1408
- const black = blackData.data;
1409
- for (let i = 0; i < white.length; i += 4) {
1410
- const wr = white[i];
1411
- const wg = white[i + 1];
1412
- const wb = white[i + 2];
1413
- const br = black[i];
1414
- const bg = black[i + 1];
1415
- const bb = black[i + 2];
1416
- const alpha = 255 - Math.max(wr - br, wg - bg, wb - bb);
1417
- if (alpha <= 2) {
1418
- white[i] = 0;
1419
- white[i + 1] = 0;
1420
- white[i + 2] = 0;
1421
- white[i + 3] = 0;
1422
- } else if (alpha >= 253) {
1423
- white[i] = br;
1424
- white[i + 1] = bg;
1425
- white[i + 2] = bb;
1426
- white[i + 3] = 255;
1427
- } else {
1428
- const alphaFactor = 255 / alpha;
1429
- white[i] = Math.min(255, Math.max(0, Math.round(br * alphaFactor)));
1430
- white[i + 1] = Math.min(255, Math.max(0, Math.round(bg * alphaFactor)));
1431
- white[i + 2] = Math.min(255, Math.max(0, Math.round(bb * alphaFactor)));
1432
- white[i + 3] = alpha;
1433
- }
1434
- }
1435
- ctx.putImageData(whiteData, 0, 0);
1436
- }
1437
- },
1438
- async toPNG() {
1439
- return canvas.toBuffer("image/png");
1440
- }
1441
- };
1442
- return api;
1443
- }
1444
- function makeGradientFromBBox(ctx, spec, box) {
1445
- if (spec.kind === "solid") {
1446
- const c = parseHex6(spec.color, spec.opacity);
1447
- return `rgba(${c.r},${c.g},${c.b},${c.a})`;
1448
- }
1449
- const cx = box.x + box.w / 2;
1450
- const cy = box.y + box.h / 2;
1451
- const r = Math.max(box.w, box.h) / 2;
1452
- const addStops = (g) => {
1453
- const opacity = spec.kind === "linear" || spec.kind === "radial" ? spec.opacity : 1;
1454
- const stops = spec.kind === "linear" || spec.kind === "radial" ? spec.stops : [];
1455
- for (const s of stops) {
1456
- const c = parseHex6(s.color, opacity);
1457
- g.addColorStop(s.offset, `rgba(${c.r},${c.g},${c.b},${c.a})`);
1458
- }
1459
- return g;
1460
- };
1461
- if (spec.kind === "linear") {
1462
- const rad = spec.angle * Math.PI / 180;
1463
- const x1 = cx + Math.cos(rad + Math.PI) * r;
1464
- const y1 = cy + Math.sin(rad + Math.PI) * r;
1465
- const x2 = cx + Math.cos(rad) * r;
1466
- const y2 = cy + Math.sin(rad) * r;
1467
- return addStops(ctx.createLinearGradient(x1, y1, x2, y2));
1468
- } else {
1469
- return addStops(ctx.createRadialGradient(cx, cy, 0, cx, cy, r));
1470
- }
1471
- }
1472
- function computeGlobalTextBounds(ops) {
1473
- let minX = Infinity;
1474
- let minY = Infinity;
1475
- let maxX = -Infinity;
1476
- let maxY = -Infinity;
1477
- for (const op of ops) {
1478
- if (op.op !== "FillPath") continue;
1479
- const fillOp = op;
1480
- if (fillOp.isShadow) continue;
1481
- const b = computePathBounds2(fillOp.path);
1482
- const s = fillOp.scale ?? 1;
1483
- const x1 = fillOp.x + s * b.x;
1484
- const x2 = fillOp.x + s * (b.x + b.w);
1485
- const y1 = fillOp.y - s * (b.y + b.h);
1486
- const y2 = fillOp.y - s * b.y;
1487
- if (x1 < minX) minX = x1;
1488
- if (y1 < minY) minY = y1;
1489
- if (x2 > maxX) maxX = x2;
1490
- if (y2 > maxY) maxY = y2;
1491
- }
1492
- if (minX === Infinity) {
1493
- return { x: 0, y: 0, w: 1, h: 1 };
1494
- }
1495
- return {
1496
- x: minX,
1497
- y: minY,
1498
- w: Math.max(1, maxX - minX),
1499
- h: Math.max(1, maxY - minY)
1500
- };
1501
- }
1502
- function drawSvgPathOnCtx(ctx, d) {
1503
- const t = tokenizePath2(d);
1504
- let i = 0;
1505
- while (i < t.length) {
1506
- const cmd = t[i++];
1507
- switch (cmd) {
1508
- case "M": {
1509
- const x = parseFloat(t[i++]);
1510
- const y = parseFloat(t[i++]);
1511
- ctx.moveTo(x, y);
1512
- break;
1513
- }
1514
- case "L": {
1515
- const x = parseFloat(t[i++]);
1516
- const y = parseFloat(t[i++]);
1517
- ctx.lineTo(x, y);
1518
- break;
1519
- }
1520
- case "C": {
1521
- const c1x = parseFloat(t[i++]);
1522
- const c1y = parseFloat(t[i++]);
1523
- const c2x = parseFloat(t[i++]);
1524
- const c2y = parseFloat(t[i++]);
1525
- const x = parseFloat(t[i++]);
1526
- const y = parseFloat(t[i++]);
1527
- ctx.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);
1528
- break;
1529
- }
1530
- case "Q": {
1531
- const cx = parseFloat(t[i++]);
1532
- const cy = parseFloat(t[i++]);
1533
- const x = parseFloat(t[i++]);
1534
- const y = parseFloat(t[i++]);
1535
- ctx.quadraticCurveTo(cx, cy, x, y);
1536
- break;
1537
- }
1538
- case "Z": {
1539
- ctx.closePath();
1540
- break;
1541
- }
1542
- default:
1543
- break;
1544
- }
1545
- }
1546
- }
1547
- function computePathBounds2(d) {
1548
- const t = tokenizePath2(d);
1549
- let i = 0;
1550
- let minX = Infinity;
1551
- let minY = Infinity;
1552
- let maxX = -Infinity;
1553
- let maxY = -Infinity;
1554
- const touch = (x, y) => {
1555
- if (x < minX) minX = x;
1556
- if (y < minY) minY = y;
1557
- if (x > maxX) maxX = x;
1558
- if (y > maxY) maxY = y;
1559
- };
1560
- while (i < t.length) {
1561
- const cmd = t[i++];
1562
- switch (cmd) {
1563
- case "M":
1564
- case "L": {
1565
- const x = parseFloat(t[i++]);
1566
- const y = parseFloat(t[i++]);
1567
- touch(x, y);
1568
- break;
1569
- }
1570
- case "C": {
1571
- const c1x = parseFloat(t[i++]);
1572
- const c1y = parseFloat(t[i++]);
1573
- const c2x = parseFloat(t[i++]);
1574
- const c2y = parseFloat(t[i++]);
1575
- const x = parseFloat(t[i++]);
1576
- const y = parseFloat(t[i++]);
1577
- touch(c1x, c1y);
1578
- touch(c2x, c2y);
1579
- touch(x, y);
1580
- break;
1581
- }
1582
- case "Q": {
1583
- const cx = parseFloat(t[i++]);
1584
- const cy = parseFloat(t[i++]);
1585
- const x = parseFloat(t[i++]);
1586
- const y = parseFloat(t[i++]);
1587
- touch(cx, cy);
1588
- touch(x, y);
1589
- break;
1590
- }
1591
- case "Z":
1592
- break;
1593
- default:
1594
- break;
1595
- }
1596
- }
1597
- if (minX === Infinity) {
1598
- return { x: 0, y: 0, w: 0, h: 0 };
1599
- }
1600
- return {
1601
- x: minX,
1602
- y: minY,
1603
- w: maxX - minX,
1604
- h: maxY - minY
1605
- };
1606
- }
1607
- function roundRectPath(ctx, x, y, w, h, r) {
1608
- ctx.moveTo(x + r, y);
1609
- ctx.arcTo(x + w, y, x + w, y + h, r);
1610
- ctx.arcTo(x + w, y + h, x, y + h, r);
1611
- ctx.arcTo(x, y + h, x, y, r);
1612
- ctx.arcTo(x, y, x + w, y, r);
1613
- ctx.closePath();
1614
- }
1615
- function tokenizePath2(d) {
1616
- return d.match(/[MLCQZ]|-?\d*\.?\d+(?:e[-+]?\d+)?/gi) ?? [];
1617
- }
1618
-
1619
- // src/io/node.ts
1620
- var import_promises = require("fs/promises");
1621
- var http = __toESM(require("http"), 1);
1622
- var https = __toESM(require("https"), 1);
1623
- function bufferToArrayBuffer(buf) {
1624
- const { buffer, byteOffset, byteLength } = buf;
1625
- if (typeof SharedArrayBuffer !== "undefined" && buffer instanceof SharedArrayBuffer) {
1626
- const ab2 = new ArrayBuffer(byteLength);
1627
- new Uint8Array(ab2).set(buf);
1628
- return ab2;
1629
- }
1630
- const ab = buffer;
1631
- return ab.slice(byteOffset, byteOffset + byteLength);
1632
- }
1633
- async function loadFileOrHttpToArrayBuffer(pathOrUrl) {
1634
- try {
1635
- if (/^https?:\/\//.test(pathOrUrl)) {
1636
- const client = pathOrUrl.startsWith("https:") ? https : http;
1637
- const buf2 = await new Promise((resolve, reject) => {
1638
- const request = client.get(pathOrUrl, (res) => {
1639
- const { statusCode } = res;
1640
- if (statusCode && (statusCode < 200 || statusCode >= 300)) {
1641
- reject(new Error(`HTTP request failed with status ${statusCode} for ${pathOrUrl}`));
1642
- res.resume();
1643
- return;
1644
- }
1645
- const chunks = [];
1646
- res.on("data", (chunk) => {
1647
- chunks.push(chunk);
1648
- });
1649
- res.on("end", () => {
1650
- try {
1651
- resolve(Buffer.concat(chunks));
1652
- } catch (err) {
1653
- reject(
1654
- new Error(
1655
- `Failed to concatenate response chunks: ${err instanceof Error ? err.message : String(err)}`
1656
- )
1657
- );
1658
- }
1659
- });
1660
- res.on("error", (err) => {
1661
- reject(new Error(`Response error for ${pathOrUrl}: ${err.message}`));
1662
- });
1663
- });
1664
- request.on("error", (err) => {
1665
- reject(new Error(`Request error for ${pathOrUrl}: ${err.message}`));
1666
- });
1667
- request.setTimeout(3e4, () => {
1668
- request.destroy();
1669
- reject(new Error(`Request timeout after 30s for ${pathOrUrl}`));
1670
- });
1671
- });
1672
- return bufferToArrayBuffer(buf2);
1673
- }
1674
- const buf = await (0, import_promises.readFile)(pathOrUrl);
1675
- return bufferToArrayBuffer(buf);
1676
- } catch (err) {
1677
- if (err instanceof Error) {
1678
- throw new Error(`Failed to load ${pathOrUrl}: ${err.message}`);
1679
- }
1680
- throw new Error(`Failed to load ${pathOrUrl}: ${String(err)}`);
1681
- }
1682
- }
1683
-
1684
- // src/core/video-generator.ts
1685
- var import_child_process = require("child_process");
1686
- var import_node_fs = __toESM(require("fs"), 1);
1687
- var VideoGenerator = class {
1688
- ffmpegPath = null;
1689
- trySetPath(p) {
1690
- if (p && import_node_fs.default.existsSync(p)) {
1691
- this.ffmpegPath = p;
1692
- return true;
1693
- }
1694
- return false;
1695
- }
1696
- async init(opts) {
1697
- if (typeof window !== "undefined") {
1698
- throw new Error("VideoGenerator is only available in Node.js environment");
1699
- }
1700
- if (this.trySetPath(opts?.ffmpegPath)) return;
1701
- if (this.trySetPath(process.env.FFMPEG_PATH)) return;
1702
- if (this.trySetPath(process.env.FFMPEG_BIN)) return;
1703
- if (this.trySetPath("/opt/bin/ffmpeg")) return;
1704
- try {
1705
- const ffmpegStatic = await import("ffmpeg-static");
1706
- const p = ffmpegStatic.default;
1707
- if (this.trySetPath(p)) return;
1708
- } catch {
1709
- }
1710
- throw new Error("FFmpeg not available. Please install ffmpeg-static or provide FFMPEG_PATH.");
1711
- }
1712
- async generateVideo(frameGenerator, options) {
1713
- if (!this.ffmpegPath) await this.init({ ffmpegPath: options.ffmpegPath });
1714
- const {
1715
- width,
1716
- height,
1717
- fps,
1718
- duration,
1719
- outputPath,
1720
- pixelRatio = 1,
1721
- crf = 17,
1722
- preset = "slow",
1723
- tune = "animation",
1724
- profile = "high",
1725
- level = "4.2",
1726
- pixFmt = "yuv420p",
1727
- hasAlpha = false
1728
- } = options;
1729
- const totalFrames = Math.max(2, Math.round(duration * fps) + 1);
1730
- const finalOutputPath = hasAlpha ? outputPath.replace(/\.mp4$/, ".mov") : outputPath;
1731
- console.log(
1732
- `\u{1F3AC} Generating video: ${width}x${height} @ ${fps}fps, ${duration}s (${totalFrames} frames)` + (hasAlpha ? " (MOV with alpha)" : "")
1733
- );
1734
- return new Promise(async (resolve, reject) => {
1735
- let args;
1736
- if (hasAlpha) {
1737
- args = [
1738
- "-y",
1739
- "-f",
1740
- "image2pipe",
1741
- "-vcodec",
1742
- "png",
1743
- "-framerate",
1744
- String(fps),
1745
- "-i",
1746
- "-",
1747
- "-c:v",
1748
- "prores_ks",
1749
- "-profile:v",
1750
- "4444",
1751
- "-pix_fmt",
1752
- "yuva444p10le",
1753
- "-vendor",
1754
- "apl0",
1755
- "-r",
1756
- String(fps),
1757
- finalOutputPath
1758
- ];
1759
- console.log(` Output: ${finalOutputPath} (ProRes 4444 with alpha)`);
1760
- } else {
1761
- args = [
1762
- "-y",
1763
- "-f",
1764
- "image2pipe",
1765
- "-vcodec",
1766
- "png",
1767
- "-framerate",
1768
- String(fps),
1769
- "-i",
1770
- "-",
1771
- "-c:v",
1772
- "libx264",
1773
- "-preset",
1774
- preset,
1775
- "-crf",
1776
- String(crf),
1777
- "-tune",
1778
- tune,
1779
- "-profile:v",
1780
- profile,
1781
- "-level",
1782
- level,
1783
- "-pix_fmt",
1784
- pixFmt,
1785
- "-r",
1786
- String(fps),
1787
- "-movflags",
1788
- "+faststart",
1789
- outputPath
1790
- ];
1791
- }
1792
- const ffmpeg = (0, import_child_process.spawn)(this.ffmpegPath, args, { stdio: ["pipe", "inherit", "pipe"] });
1793
- let ffmpegError = "";
1794
- ffmpeg.stderr.on("data", (data) => {
1795
- const message = data.toString();
1796
- const m = message.match(/time=(\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?/);
1797
- if (m) {
1798
- const hh = parseInt(m[1], 10);
1799
- const mm = parseInt(m[2], 10);
1800
- const ss = parseInt(m[3], 10);
1801
- const ff = m[4] ? parseFloat(`0.${m[4]}`) : 0;
1802
- const currentTime = hh * 3600 + mm * 60 + ss + ff;
1803
- const pct = Math.min(100, Math.round(currentTime / duration * 100));
1804
- if (pct % 10 === 0) console.log(`\u{1F4F9} Encoding: ${pct}%`);
1805
- }
1806
- ffmpegError += message;
1807
- });
1808
- ffmpeg.on("close", (code) => {
1809
- if (code === 0) {
1810
- console.log("\u2705 Video generation complete!");
1811
- resolve();
1812
- } else {
1813
- console.error("FFmpeg stderr:", ffmpegError);
1814
- reject(new Error(`FFmpeg exited with code ${code}`));
1815
- }
1816
- });
1817
- ffmpeg.on("error", (err) => {
1818
- console.error("\u274C FFmpeg spawn error:", err);
1819
- reject(err);
1820
- });
1821
- try {
1822
- const painter = await createNodePainter({ width, height, pixelRatio });
1823
- for (let frame = 0; frame < totalFrames; frame++) {
1824
- const t = frame / (totalFrames - 1) * duration;
1825
- const ops = await frameGenerator(t);
1826
- await painter.render(ops);
1827
- const png = await painter.toPNG();
1828
- const ok = ffmpeg.stdin.write(png);
1829
- if (!ok) await new Promise((r) => ffmpeg.stdin.once("drain", r));
1830
- if (frame % Math.max(1, Math.floor(fps / 2)) === 0) {
1831
- const pct = Math.round((frame + 1) / totalFrames * 100);
1832
- console.log(`\u{1F39E}\uFE0F Rendering frames: ${pct}%`);
1833
- }
1834
- }
1835
- ffmpeg.stdin.end();
1836
- } catch (err) {
1837
- console.error("Frame generation error:", err);
1838
- ffmpeg.kill("SIGKILL");
1839
- reject(err);
1840
- }
1841
- });
1842
- }
1843
- };
1844
-
1845
- // src/types.ts
1846
- var isShadowFill2 = (op) => {
1847
- return op.op === "FillPath" && op.isShadow === true;
1848
- };
1849
- var isGlyphFill2 = (op) => {
1850
- return op.op === "FillPath" && op.isShadow !== true;
1851
- };
1852
-
1853
- // src/env/entry.node.ts
1854
- async function createTextEngine(opts = {}) {
1855
- const width = opts.width ?? CANVAS_CONFIG.DEFAULTS.width;
1856
- const height = opts.height ?? CANVAS_CONFIG.DEFAULTS.height;
1857
- const pixelRatio = opts.pixelRatio ?? CANVAS_CONFIG.DEFAULTS.pixelRatio;
1858
- const fps = opts.fps ?? 30;
1859
- const wasmBaseURL = opts.wasmBaseURL;
1860
- const fonts = new FontRegistry(wasmBaseURL);
1861
- const layout = new LayoutEngine(fonts);
1862
- const videoGenerator = new VideoGenerator();
1863
- try {
1864
- await fonts.init();
1865
- } catch (err) {
1866
- throw new Error(
1867
- `Failed to initialize font registry: ${err instanceof Error ? err.message : String(err)}`
1868
- );
1869
- }
1870
- async function ensureFonts(asset) {
1871
- try {
1872
- if (asset.customFonts) {
1873
- for (const cf of asset.customFonts) {
1874
- try {
1875
- const bytes = await loadFileOrHttpToArrayBuffer(cf.src);
1876
- await fonts.registerFromBytes(bytes, {
1877
- family: cf.family,
1878
- weight: cf.weight ?? "400",
1879
- style: cf.style ?? "normal"
1880
- });
1881
- } catch (err) {
1882
- throw new Error(
1883
- `Failed to load custom font "${cf.family}" from ${cf.src}: ${err instanceof Error ? err.message : String(err)}`
1884
- );
1885
- }
1886
- }
1887
- }
1888
- const main = asset.font ?? {
1889
- family: "Roboto",
1890
- weight: "400",
1891
- style: "normal",
1892
- size: 48,
1893
- color: "#000000",
1894
- opacity: 1
1895
- };
1896
- return main;
1897
- } catch (err) {
1898
- if (err instanceof Error) {
1899
- throw err;
1900
- }
1901
- throw new Error(`Failed to ensure fonts: ${String(err)}`);
1902
- }
1903
- }
1904
- return {
1905
- validate(input) {
1906
- try {
1907
- const { value, error } = RichTextAssetSchema.validate(input, {
1908
- abortEarly: false,
1909
- convert: true
1910
- });
1911
- if (error) throw error;
1912
- return { value };
1913
- } catch (err) {
1914
- if (err instanceof Error) {
1915
- throw new Error(`Validation failed: ${err.message}`);
1916
- }
1917
- throw new Error(`Validation failed: ${String(err)}`);
1918
- }
1919
- },
1920
- async registerFontFromFile(path, desc) {
1921
- try {
1922
- const bytes = await loadFileOrHttpToArrayBuffer(path);
1923
- await fonts.registerFromBytes(bytes, desc);
1924
- } catch (err) {
1925
- throw new Error(
1926
- `Failed to register font "${desc.family}" from file ${path}: ${err instanceof Error ? err.message : String(err)}`
1927
- );
1928
- }
1929
- },
1930
- async registerFontFromUrl(url, desc) {
1931
- try {
1932
- const bytes = await loadFileOrHttpToArrayBuffer(url);
1933
- await fonts.registerFromBytes(bytes, desc);
1934
- } catch (err) {
1935
- throw new Error(
1936
- `Failed to register font "${desc.family}" from URL ${url}: ${err instanceof Error ? err.message : String(err)}`
1937
- );
1938
- }
1939
- },
1940
- async renderFrame(asset, tSeconds) {
1941
- try {
1942
- const main = await ensureFonts(asset);
1943
- const desc = { family: main.family, weight: `${main.weight}`, style: main.style };
1944
- let lines;
1945
- try {
1946
- lines = await layout.layout({
1947
- text: asset.text,
1948
- width: asset.width ?? width,
1949
- letterSpacing: asset.style?.letterSpacing ?? 0,
1950
- fontSize: main.size,
1951
- lineHeight: asset.style?.lineHeight ?? 1.2,
1952
- desc,
1953
- textTransform: asset.style?.textTransform ?? "none"
1954
- });
1955
- } catch (err) {
1956
- throw new Error(
1957
- `Failed to layout text: ${err instanceof Error ? err.message : String(err)}`
1958
- );
1959
- }
1960
- const textRect = {
1961
- x: 0,
1962
- y: 0,
1963
- width: asset.width ?? width,
1964
- height: asset.height ?? height
1965
- };
1966
- const canvasW = asset.width ?? width;
1967
- const canvasH = asset.height ?? height;
1968
- const canvasPR = asset.pixelRatio ?? pixelRatio;
1969
- let ops0;
1970
- try {
1971
- ops0 = await buildDrawOps({
1972
- canvas: { width: canvasW, height: canvasH, pixelRatio: canvasPR },
1973
- textRect,
1974
- lines,
1975
- font: {
1976
- family: main.family,
1977
- size: main.size,
1978
- weight: `${main.weight}`,
1979
- style: main.style,
1980
- color: main.color,
1981
- opacity: main.opacity
1982
- },
1983
- style: {
1984
- lineHeight: asset.style?.lineHeight ?? 1.2,
1985
- textDecoration: asset.style?.textDecoration ?? "none",
1986
- gradient: asset.style?.gradient
1987
- },
1988
- stroke: asset.stroke,
1989
- shadow: asset.shadow,
1990
- align: asset.align ?? { horizontal: "left", vertical: "middle" },
1991
- background: asset.background,
1992
- glyphPathProvider: (gid) => fonts.glyphPath(desc, gid),
1993
- getUnitsPerEm: () => fonts.getUnitsPerEm(desc)
1994
- });
1995
- } catch (err) {
1996
- throw new Error(
1997
- `Failed to build draw operations: ${err instanceof Error ? err.message : String(err)}`
1998
- );
1999
- }
2000
- try {
2001
- const ops = applyAnimation(ops0, lines, {
2002
- t: tSeconds,
2003
- fontSize: main.size,
2004
- anim: asset.animation ? {
2005
- preset: asset.animation.preset,
2006
- speed: asset.animation.speed,
2007
- duration: asset.animation.duration,
2008
- style: asset.animation.style,
2009
- direction: asset.animation.direction
2010
- } : void 0
2011
- });
2012
- return ops;
2013
- } catch (err) {
2014
- throw new Error(
2015
- `Failed to apply animation: ${err instanceof Error ? err.message : String(err)}`
2016
- );
2017
- }
2018
- } catch (err) {
2019
- if (err instanceof Error) {
2020
- throw err;
2021
- }
2022
- throw new Error(`Failed to render frame at time ${tSeconds}s: ${String(err)}`);
2023
- }
2024
- },
2025
- async createRenderer(p) {
2026
- try {
2027
- return await createNodePainter({
2028
- width: p.width ?? width,
2029
- height: p.height ?? height,
2030
- pixelRatio: p.pixelRatio ?? pixelRatio
2031
- });
2032
- } catch (err) {
2033
- throw new Error(
2034
- `Failed to create renderer: ${err instanceof Error ? err.message : String(err)}`
2035
- );
2036
- }
2037
- },
2038
- async generateVideo(asset, options) {
2039
- try {
2040
- const hasBackground = !!asset.background?.color;
2041
- const hasAnimation = !!asset.animation?.preset;
2042
- const needsAlpha = !hasBackground && hasAnimation;
2043
- console.log(
2044
- `\u{1F3A8} Video settings: Animation=${hasAnimation}, Background=${hasBackground}, Alpha=${needsAlpha}`
2045
- );
2046
- const finalOptions = {
2047
- width: asset.width ?? width,
2048
- height: asset.height ?? height,
2049
- fps,
2050
- duration: asset.animation?.duration ?? 3,
2051
- outputPath: options.outputPath ?? "output.mp4",
2052
- pixelRatio: asset.pixelRatio ?? pixelRatio,
2053
- hasAlpha: needsAlpha,
2054
- ...options
2055
- };
2056
- const frameGenerator = async (time) => {
2057
- return this.renderFrame(asset, time);
2058
- };
2059
- await videoGenerator.generateVideo(frameGenerator, finalOptions);
2060
- } catch (err) {
2061
- throw new Error(
2062
- `Failed to generate video: ${err instanceof Error ? err.message : String(err)}`
2063
- );
2064
- }
2065
- },
2066
- destroy() {
2067
- try {
2068
- fonts.destroy();
2069
- } catch (err) {
2070
- console.error(`Error during cleanup: ${err instanceof Error ? err.message : String(err)}`);
2071
- }
2072
- }
2073
- };
2074
- }
2075
- // Annotate the CommonJS export names for ESM import in node:
2076
- 0 && (module.exports = {
2077
- createTextEngine,
2078
- isGlyphFill,
2079
- isShadowFill
2080
- });
2081
- //# sourceMappingURL=entry.node.cjs.map
1
+ 'use strict';var Di=require('fs'),promises=require('fs/promises'),I8=require('http'),E8=require('https'),child_process=require('child_process');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var Di__default=/*#__PURE__*/_interopDefault(Di);var I8__namespace=/*#__PURE__*/_interopNamespace(I8);var E8__namespace=/*#__PURE__*/_interopNamespace(E8);var E5=Object.create;var s2=Object.defineProperty;var O5=Object.getOwnPropertyDescriptor;var T5=Object.getOwnPropertyNames;var R5=Object.getPrototypeOf,k5=Object.prototype.hasOwnProperty;var i2=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(x,t)=>(typeof require<"u"?require:x)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var N=(e,x)=>()=>(x||e((x={exports:{}}).exports,x),x.exports);var P5=(e,x,t,a)=>{if(x&&typeof x=="object"||typeof x=="function")for(let r of T5(x))!k5.call(e,r)&&r!==t&&s2(e,r,{get:()=>x[r],enumerable:!(a=O5(x,r))||a.enumerable});return e};var Rx=(e,x,t)=>(t=e!=null?E5(R5(e)):{},P5(s2(t,"default",{value:e,enumerable:true}),e));var c2=N((k8,f2)=>{f2.exports=function(...e){try{return JSON.stringify(...e)}catch(x){return "[Cannot display object: "+x.message+"]"}};});var Lt=N((d2,o2)=>{var D5=c2();o2.exports=class extends Error{constructor(e){let x=e.filter(t=>t!=="").map(t=>typeof t=="string"?t:t instanceof Error?t.message:D5(t));super(x.join(" ")||"Unknown error"),typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,d2.assert);}};});var i0=N((D8,l2)=>{var F5=Lt();l2.exports=function(e,...x){if(!e)throw x.length===1&&x[0]instanceof Error?x[0]:new F5(x)};});var N6=N((F8,b2)=>{var Bt=i0(),u2={};b2.exports=function(e,x,t){if(x===false||x===null||x===void 0)return e;t=t||{},typeof t=="string"&&(t={separator:t});let a=Array.isArray(x);Bt(!a||!t.separator,"Separator option is not valid for array-based chain");let r=a?x:x.split(t.separator||"."),n=e;for(let s=0;s<r.length;++s){let i=r[s],f=t.iterables&&u2.iterables(n);if(Array.isArray(n)||f==="set"){let c=Number(i);Number.isInteger(c)&&(i=c<0?n.length+c:c);}if(!n||typeof n=="function"&&t.functions===false||!f&&n[i]===void 0){Bt(!t.strict||s+1===r.length,"Missing segment",i,"in reach path ",x),Bt(typeof n=="object"||t.functions===true||typeof n!="function","Invalid segment",i,"in reach path ",x),n=t.default;break}f?f==="set"?n=[...n][i]:n=n.get(i):n=n[i];}return n};u2.iterables=function(e){if(e instanceof Set)return "set";if(e instanceof Map)return "map"};});var Mt=N((K0,p2)=>{var h2={};K0=p2.exports={array:Array.prototype,buffer:Buffer&&Buffer.prototype,date:Date.prototype,error:Error.prototype,generic:Object.prototype,map:Map.prototype,promise:Promise.prototype,regex:RegExp.prototype,set:Set.prototype,weakMap:WeakMap.prototype,weakSet:WeakSet.prototype};h2.typeMap=new Map([["[object Error]",K0.error],["[object Map]",K0.map],["[object Promise]",K0.promise],["[object Set]",K0.set],["[object WeakMap]",K0.weakMap],["[object WeakSet]",K0.weakSet]]);K0.getInternalProto=function(e){if(Array.isArray(e))return K0.array;if(Buffer&&e instanceof Buffer)return K0.buffer;if(e instanceof Date)return K0.date;if(e instanceof RegExp)return K0.regex;if(e instanceof Error)return K0.error;let x=Object.prototype.toString.call(e);return h2.typeMap.get(x)||K0.generic};});var Gt=N(m2=>{m2.keys=function(e,x={}){return x.symbols!==false?Reflect.ownKeys(e):Object.getOwnPropertyNames(e)};});var Y0=N((L8,g2)=>{var N5=N6(),ix=Mt(),L5=Gt(),e6={needsProtoHack:new Set([ix.set,ix.map,ix.weakSet,ix.weakMap])};g2.exports=e6.clone=function(e,x={},t=null){if(typeof e!="object"||e===null)return e;let a=e6.clone,r=t;if(x.shallow){if(x.shallow!==true)return e6.cloneWithShallow(e,x);a=f=>f;}else if(r){let f=r.get(e);if(f)return f}else r=new Map;let n=ix.getInternalProto(e);if(n===ix.buffer)return Buffer&&Buffer.from(e);if(n===ix.date)return new Date(e.getTime());if(n===ix.regex)return new RegExp(e);let s=e6.base(e,n,x);if(s===e)return e;if(r&&r.set(e,s),n===ix.set)for(let f of e)s.add(a(f,x,r));else if(n===ix.map)for(let[f,c]of e)s.set(f,a(c,x,r));let i=L5.keys(e,x);for(let f of i){if(f==="__proto__")continue;if(n===ix.array&&f==="length"){s.length=e.length;continue}let c=Object.getOwnPropertyDescriptor(e,f);c?c.get||c.set?Object.defineProperty(s,f,c):c.enumerable?s[f]=a(e[f],x,r):Object.defineProperty(s,f,{enumerable:false,writable:true,configurable:true,value:a(e[f],x,r)}):Object.defineProperty(s,f,{enumerable:true,writable:true,configurable:true,value:a(e[f],x,r)});}return s};e6.cloneWithShallow=function(e,x){let t=x.shallow;x=Object.assign({},x),x.shallow=false;let a=new Map;for(let r of t){let n=N5(e,r);(typeof n=="object"||typeof n=="function")&&a.set(n,n);}return e6.clone(e,x,a)};e6.base=function(e,x,t){if(t.prototype===false)return e6.needsProtoHack.has(x)?new x.constructor:x===ix.array?[]:{};let a=Object.getPrototypeOf(e);if(a&&a.isImmutable)return e;if(x===ix.array){let r=[];return a!==x&&Object.setPrototypeOf(r,a),r}if(e6.needsProtoHack.has(x)){let r=new a.constructor;return a!==x&&Object.setPrototypeOf(r,a),r}return Object.create(a)};});var y2=N((B8,B5)=>{B5.exports={name:"joi",description:"Object schema validation",version:"17.13.3",repository:"git://github.com/hapijs/joi",main:"lib/index.js",types:"lib/index.d.ts",browser:"dist/joi-browser.min.js",files:["lib/**/*","dist/*"],keywords:["schema","validation"],dependencies:{"@hapi/hoek":"^9.3.0","@hapi/topo":"^5.1.0","@sideway/address":"^4.1.5","@sideway/formula":"^3.0.1","@sideway/pinpoint":"^2.0.0"},devDependencies:{"@hapi/bourne":"2.x.x","@hapi/code":"8.x.x","@hapi/joi-legacy-test":"npm:@hapi/joi@15.x.x","@hapi/lab":"^25.1.3","@types/node":"^14.18.63",typescript:"4.3.x"},scripts:{prepublishOnly:"cd browser && npm install && npm run build",test:"lab -t 100 -a @hapi/code -L -Y","test-cov-html":"lab -r html -o coverage.html -a @hapi/code"},license:"BSD-3-Clause"};});var u7=N(Ne=>{var A=Ut(),H={};H.wrap=A.string().min(1).max(2).allow(false);Ne.preferences=A.object({allowUnknown:A.boolean(),abortEarly:A.boolean(),artifacts:A.boolean(),cache:A.boolean(),context:A.object(),convert:A.boolean(),dateFormat:A.valid("date","iso","string","time","utc"),debug:A.boolean(),errors:{escapeHtml:A.boolean(),label:A.valid("path","key",false),language:[A.string(),A.object().ref()],render:A.boolean(),stack:A.boolean(),wrap:{label:H.wrap,array:H.wrap,string:H.wrap}},externals:A.boolean(),messages:A.object(),noDefaults:A.boolean(),nonEnumerables:A.boolean(),presence:A.valid("required","optional","forbidden"),skipFunctions:A.boolean(),stripUnknown:A.object({arrays:A.boolean(),objects:A.boolean()}).or("arrays","objects").allow(true,false),warnings:A.boolean()}).strict();H.nameRx=/^[a-zA-Z0-9]\w*$/;H.rule=A.object({alias:A.array().items(A.string().pattern(H.nameRx)).single(),args:A.array().items(A.string(),A.object({name:A.string().pattern(H.nameRx).required(),ref:A.boolean(),assert:A.alternatives([A.function(),A.object().schema()]).conditional("ref",{is:true,then:A.required()}),normalize:A.function(),message:A.string().when("assert",{is:A.function(),then:A.required()})})),convert:A.boolean(),manifest:A.boolean(),method:A.function().allow(false),multi:A.boolean(),validate:A.function()});Ne.extension=A.object({type:A.alternatives([A.string(),A.object().regex()]).required(),args:A.function(),cast:A.object().pattern(H.nameRx,A.object({from:A.function().maxArity(1).required(),to:A.function().minArity(1).maxArity(2).required()})),base:A.object().schema().when("type",{is:A.object().regex(),then:A.forbidden()}),coerce:[A.function().maxArity(3),A.object({method:A.function().maxArity(3).required(),from:A.array().items(A.string()).single()})],flags:A.object().pattern(H.nameRx,A.object({setter:A.string(),default:A.any()})),manifest:{build:A.function().arity(2)},messages:[A.object(),A.string()],modifiers:A.object().pattern(H.nameRx,A.function().minArity(1).maxArity(2)),overrides:A.object().pattern(H.nameRx,A.function()),prepare:A.function().maxArity(3),rebuild:A.function().arity(1),rules:A.object().pattern(H.nameRx,H.rule),terms:A.object().pattern(H.nameRx,A.object({init:A.array().allow(null).required(),manifest:A.object().pattern(/.+/,[A.valid("schema","single"),A.object({mapped:A.object({from:A.string().required(),to:A.string().required()}).required()})])})),validate:A.function().maxArity(3)}).strict();Ne.extensions=A.array().items(A.object(),A.function().arity(1)).strict();H.desc={buffer:A.object({buffer:A.string()}),func:A.object({function:A.function().required(),options:{literal:true}}),override:A.object({override:true}),ref:A.object({ref:A.object({type:A.valid("value","global","local"),path:A.array().required(),separator:A.string().length(1).allow(false),ancestor:A.number().min(0).integer().allow("root"),map:A.array().items(A.array().length(2)).min(1),adjust:A.function(),iterables:A.boolean(),in:A.boolean(),render:A.boolean()}).required()}),regex:A.object({regex:A.string().min(3)}),special:A.object({special:A.valid("deep").required()}),template:A.object({template:A.string().required(),options:A.object()}),value:A.object({value:A.alternatives([A.object(),A.array()]).required()})};H.desc.entity=A.alternatives([A.array().items(A.link("...")),A.boolean(),A.function(),A.number(),A.string(),H.desc.buffer,H.desc.func,H.desc.ref,H.desc.regex,H.desc.special,H.desc.template,H.desc.value,A.link("/")]);H.desc.values=A.array().items(null,A.boolean(),A.function(),A.number().allow(1/0,-1/0),A.string().allow(""),A.symbol(),H.desc.buffer,H.desc.func,H.desc.override,H.desc.ref,H.desc.regex,H.desc.template,H.desc.value);H.desc.messages=A.object().pattern(/.+/,[A.string(),H.desc.template,A.object().pattern(/.+/,[A.string(),H.desc.template])]);Ne.description=A.object({type:A.string().required(),flags:A.object({cast:A.string(),default:A.any(),description:A.string(),empty:A.link("/"),failover:H.desc.entity,id:A.string(),label:A.string(),only:true,presence:["optional","required","forbidden"],result:["raw","strip"],strip:A.boolean(),unit:A.string()}).unknown(),preferences:{allowUnknown:A.boolean(),abortEarly:A.boolean(),artifacts:A.boolean(),cache:A.boolean(),convert:A.boolean(),dateFormat:["date","iso","string","time","utc"],errors:{escapeHtml:A.boolean(),label:["path","key"],language:[A.string(),H.desc.ref],wrap:{label:H.wrap,array:H.wrap}},externals:A.boolean(),messages:H.desc.messages,noDefaults:A.boolean(),nonEnumerables:A.boolean(),presence:["required","optional","forbidden"],skipFunctions:A.boolean(),stripUnknown:A.object({arrays:A.boolean(),objects:A.boolean()}).or("arrays","objects").allow(true,false),warnings:A.boolean()},allow:H.desc.values,invalid:H.desc.values,rules:A.array().min(1).items({name:A.string().required(),args:A.object().min(1),keep:A.boolean(),message:[A.string(),H.desc.messages],warn:A.boolean()}),keys:A.object().pattern(/.*/,A.link("/")),link:H.desc.ref}).pattern(/^[a-z]\w*$/,A.any());});var v2=N((G8,w2)=>{var p6={};w2.exports=function(e){if(!e)return "";let x="";for(let t=0;t<e.length;++t){let a=e.charCodeAt(t);p6.isSafe(a)?x+=e[t]:x+=p6.escapeHtmlChar(a);}return x};p6.escapeHtmlChar=function(e){let x=p6.namedHtml.get(e);return x||(e>=256?"&#"+e+";":`&#x${e.toString(16).padStart(2,"0")};`)};p6.isSafe=function(e){return p6.safeCharCodes.has(e)};p6.namedHtml=new Map([[38,"&amp;"],[60,"&lt;"],[62,"&gt;"],[34,"&quot;"],[160,"&nbsp;"],[162,"&cent;"],[163,"&pound;"],[164,"&curren;"],[169,"&copy;"],[174,"&reg;"]]);p6.safeCharCodes=(function(){let e=new Set;for(let x=32;x<123;++x)(x>=97||x>=65&&x<=90||x>=48&&x<=57||x===32||x===46||x===44||x===45||x===58||x===95)&&e.add(x);return e})();});var _2=N(Le=>{var a0={operators:["!","^","*","/","%","+","-","<","<=",">",">=","==","!=","&&","||","??"],operatorCharacters:["!","^","*","/","%","+","-","<","=",">","&","|","?"],operatorsOrder:[["^"],["*","/","%"],["+","-"],["<","<=",">",">="],["==","!="],["&&"],["||","??"]],operatorsPrefix:["!","n"],literals:{'"':'"',"`":"`","'":"'","[":"]"},numberRx:/^(?:[0-9]*(\.[0-9]*)?){1}$/,tokenRx:/^[\w\$\#\.\@\:\{\}]+$/,symbol:Symbol("formula"),settings:Symbol("settings")};Le.Parser=class{constructor(e,x={}){if(!x[a0.settings]&&x.constants)for(let t in x.constants){let a=x.constants[t];if(a!==null&&!["boolean","number","string"].includes(typeof a))throw new Error(`Formula constant ${t} contains invalid ${typeof a} value type`)}this.settings=x[a0.settings]?x:Object.assign({[a0.settings]:true,constants:{},functions:{}},x),this.single=null,this._parts=null,this._parse(e);}_parse(e){let x=[],t="",a=0,r=false,n=i=>{if(a)throw new Error("Formula missing closing parenthesis");let f=x.length?x[x.length-1]:null;if(!(!r&&!t&&!i)){if(f&&f.type==="reference"&&i===")"){f.type="function",f.value=this._subFormula(t,f.value),t="";return}if(i===")"){let c=new Le.Parser(t,this.settings);x.push({type:"segment",value:c});}else if(r){if(r==="]"){x.push({type:"reference",value:t}),t="";return}x.push({type:"literal",value:t});}else if(a0.operatorCharacters.includes(t))f&&f.type==="operator"&&a0.operators.includes(f.value+t)?f.value+=t:x.push({type:"operator",value:t});else if(t.match(a0.numberRx))x.push({type:"constant",value:parseFloat(t)});else if(this.settings.constants[t]!==void 0)x.push({type:"constant",value:this.settings.constants[t]});else {if(!t.match(a0.tokenRx))throw new Error(`Formula contains invalid token: ${t}`);x.push({type:"reference",value:t});}t="";}};for(let i of e)r?i===r?(n(),r=false):t+=i:a?i==="("?(t+=i,++a):i===")"?(--a,a?t+=i:n(i)):t+=i:i in a0.literals?r=a0.literals[i]:i==="("?(n(),++a):a0.operatorCharacters.includes(i)?(n(),t=i,n()):i!==" "?t+=i:n();n(),x=x.map((i,f)=>i.type!=="operator"||i.value!=="-"||f&&x[f-1].type!=="operator"?i:{type:"operator",value:"n"});let s=false;for(let i of x){if(i.type==="operator"){if(a0.operatorsPrefix.includes(i.value))continue;if(!s)throw new Error("Formula contains an operator in invalid position");if(!a0.operators.includes(i.value))throw new Error(`Formula contains an unknown operator ${i.value}`)}else if(s)throw new Error("Formula missing expected operator");s=!s;}if(!s)throw new Error("Formula contains invalid trailing operator");x.length===1&&["reference","literal","constant"].includes(x[0].type)&&(this.single={type:x[0].type==="reference"?"reference":"value",value:x[0].value}),this._parts=x.map(i=>{if(i.type==="operator")return a0.operatorsPrefix.includes(i.value)?i:i.value;if(i.type!=="reference")return i.value;if(this.settings.tokenRx&&!this.settings.tokenRx.test(i.value))throw new Error(`Formula contains invalid reference ${i.value}`);return this.settings.reference?this.settings.reference(i.value):a0.reference(i.value)});}_subFormula(e,x){let t=this.settings.functions[x];if(typeof t!="function")throw new Error(`Formula contains unknown function ${x}`);let a=[];if(e){let r="",n=0,s=false,i=()=>{if(!r)throw new Error(`Formula contains function ${x} with invalid arguments ${e}`);a.push(r),r="";};for(let f=0;f<e.length;++f){let c=e[f];s?(r+=c,c===s&&(s=false)):c in a0.literals&&!n?(r+=c,s=a0.literals[c]):c===","&&!n?i():(r+=c,c==="("?++n:c===")"&&--n);}i();}return a=a.map(r=>new Le.Parser(r,this.settings)),function(r){let n=[];for(let s of a)n.push(s.evaluate(r));return t.call(r,...n)}}evaluate(e){let x=this._parts.slice();for(let t=x.length-2;t>=0;--t){let a=x[t];if(a&&a.type==="operator"){let r=x[t+1];x.splice(t+1,1);let n=a0.evaluate(r,e);x[t]=a0.single(a.value,n);}}return a0.operatorsOrder.forEach(t=>{for(let a=1;a<x.length-1;)if(t.includes(x[a])){let r=x[a],n=a0.evaluate(x[a-1],e),s=a0.evaluate(x[a+1],e);x.splice(a,2);let i=a0.calculate(r,n,s);x[a-1]=i===0?0:i;}else a+=2;}),a0.evaluate(x[0],e)}};Le.Parser.prototype[a0.symbol]=true;a0.reference=function(e){return function(x){return x&&x[e]!==void 0?x[e]:null}};a0.evaluate=function(e,x){return e===null?null:typeof e=="function"?e(x):e[a0.symbol]?e.evaluate(x):e};a0.single=function(e,x){if(e==="!")return !x;let t=-x;return t===0?0:t};a0.calculate=function(e,x,t){if(e==="??")return a0.exists(x)?x:t;if(typeof x=="string"||typeof t=="string"){if(e==="+")return x=a0.exists(x)?x:"",t=a0.exists(t)?t:"",x+t}else switch(e){case "^":return Math.pow(x,t);case "*":return x*t;case "/":return x/t;case "%":return x%t;case "+":return x+t;case "-":return x-t}switch(e){case "<":return x<t;case "<=":return x<=t;case ">":return x>t;case ">=":return x>=t;case "==":return x===t;case "!=":return x!==t;case "&&":return x&&t;case "||":return x||t}return null};a0.exists=function(e){return e!=null};});var C2=N(A2=>{var M5=Y0(),G5=g0(),L6={annotations:Symbol("annotations")};A2.error=function(e){if(!this._original||typeof this._original!="object")return this.details[0].message;let x=e?"":"\x1B[31m",t=e?"":"\x1B[41m",a=e?"":"\x1B[0m",r=M5(this._original);for(let i=this.details.length-1;i>=0;--i){let f=i+1,c=this.details[i],d=c.path,o=r;for(let u=0;;++u){let p=d[u];if(G5.isSchema(o)&&(o=o.clone()),u+1<d.length&&typeof o[p]!="string")o=o[p];else {let b=o[L6.annotations]||{errors:{},missing:{}};o[L6.annotations]=b;let m=p||c.context.key;o[p]!==void 0?(b.errors[m]=b.errors[m]||[],b.errors[m].push(f)):b.missing[m]=f;break}}}let n={key:/_\$key\$_([, \d]+)_\$end\$_"/g,missing:/"_\$miss\$_([^|]+)\|(\d+)_\$end\$_": "__missing__"/g,arrayIndex:/\s*"_\$idx\$_([, \d]+)_\$end\$_",?\n(.*)/g,specials:/"\[(NaN|Symbol.*|-?Infinity|function.*|\(.*)]"/g},s=L6.safeStringify(r,2).replace(n.key,(i,f)=>`" ${x}[${f}]${a}`).replace(n.missing,(i,f,c)=>`${t}"${f}"${a}${x} [${c}]: -- missing --${a}`).replace(n.arrayIndex,(i,f,c)=>`
2
+ ${c} ${x}[${f}]${a}`).replace(n.specials,(i,f)=>f);s=`${s}
3
+ ${x}`;for(let i=0;i<this.details.length;++i){let f=i+1;s=`${s}
4
+ [${f}] ${this.details[i].message}`;}return s=s+a,s};L6.safeStringify=function(e,x){return JSON.stringify(e,L6.serializer(),x)};L6.serializer=function(){let e=[],x=[],t=(a,r)=>x[0]===r?"[Circular ~]":"[Circular ~."+e.slice(0,x.indexOf(r)).join(".")+"]";return function(a,r){if(x.length>0){let n=x.indexOf(this);~n?(x.length=n+1,e.length=n+1,e[n]=a):(x.push(this),e.push(a)),~x.indexOf(r)&&(r=t.call(this,a,r));}else x.push(r);if(r){let n=r[L6.annotations];if(n){if(Array.isArray(r)){let s=[];for(let i=0;i<r.length;++i)n.errors[i]&&s.push(`_$idx$_${n.errors[i].sort().join(", ")}_$end$_`),s.push(r[i]);r=s;}else {for(let s in n.errors)r[`${s}_$key$_${n.errors[s].sort().join(", ")}_$end$_`]=r[s],r[s]=void 0;for(let s in n.missing)r[`_$miss$_${s}|${n.missing[s]}_$end$_`]="__missing__";}return r}}return r===1/0||r===-1/0||Number.isNaN(r)||typeof r=="function"||typeof r=="symbol"?"["+r.toString()+"]":r}};});var t6=N(k0=>{var U5=C2(),j5=g0(),q5=m6();k0.Report=class{constructor(e,x,t,a,r,n,s){if(this.code=e,this.flags=a,this.messages=r,this.path=n.path,this.prefs=s,this.state=n,this.value=x,this.message=null,this.template=null,this.local=t||{},this.local.label=k0.label(this.flags,this.state,this.prefs,this.messages),this.value!==void 0&&!this.local.hasOwnProperty("value")&&(this.local.value=this.value),this.path.length){let i=this.path[this.path.length-1];typeof i!="object"&&(this.local.key=i);}}_setTemplate(e){if(this.template=e,!this.flags.label&&this.path.length===0){let x=this._template(this.template,"root");x&&(this.local.label=x);}}toString(){if(this.message)return this.message;let e=this.code;if(!this.prefs.errors.render)return this.code;let x=this._template(this.template)||this._template(this.prefs.messages)||this._template(this.messages);return x===void 0?`Error code "${e}" is not defined, your custom type is missing the correct messages definition`:(this.message=x.render(this.value,this.state,this.prefs,this.local,{errors:this.prefs.errors,messages:[this.prefs.messages,this.messages]}),this.prefs.errors.label||(this.message=this.message.replace(/^"" /,"").trim()),this.message)}_template(e,x){return k0.template(this.value,e,x||this.code,this.state,this.prefs)}};k0.path=function(e){let x="";for(let t of e)typeof t!="object"&&(typeof t=="string"?(x&&(x+="."),x+=t):x+=`[${t}]`);return x};k0.template=function(e,x,t,a,r){if(!x)return;if(q5.isTemplate(x))return t!=="root"?x:null;let n=r.errors.language;if(j5.isResolvable(n)&&(n=n.resolve(e,a,r)),n&&x[n]){if(x[n][t]!==void 0)return x[n][t];if(x[n]["*"]!==void 0)return x[n]["*"]}return x[t]?x[t]:x["*"]};k0.label=function(e,x,t,a){if(!t.errors.label)return "";if(e.label)return e.label;let r=x.path;t.errors.label==="key"&&x.path.length>1&&(r=x.path.slice(-1));let n=k0.path(r);return n||k0.template(null,t.messages,"root",x,t)||a&&k0.template(null,a,"root",x,t)||"value"};k0.process=function(e,x,t){if(!e)return null;let{override:a,message:r,details:n}=k0.details(e);if(a)return a;if(t.errors.stack)return new k0.ValidationError(r,n,x);let s=Error.stackTraceLimit;Error.stackTraceLimit=0;let i=new k0.ValidationError(r,n,x);return Error.stackTraceLimit=s,i};k0.details=function(e,x={}){let t=[],a=[];for(let r of e){if(r instanceof Error){if(x.override!==false)return {override:r};let s=r.toString();t.push(s),a.push({message:s,type:"override",context:{error:r}});continue}let n=r.toString();t.push(n),a.push({message:n,path:r.path.filter(s=>typeof s!="object"),type:r.code,context:r.local});}return t.length>1&&(t=[...new Set(t)]),{message:t.join(". "),details:a}};k0.ValidationError=class extends Error{constructor(e,x,t){super(e),this._original=t,this.details=x;}static isError(e){return e instanceof k0.ValidationError}};k0.ValidationError.prototype.isJoi=true;k0.ValidationError.prototype.name="ValidationError";k0.ValidationError.prototype.annotate=U5.error;});var a6=N(bx=>{var lx=i0(),z5=Y0(),H5=N6(),Be=g0(),jt,ux={symbol:Symbol("ref"),defaults:{adjust:null,in:false,iterables:null,map:null,separator:".",type:"value"}};bx.create=function(e,x={}){lx(typeof e=="string","Invalid reference key:",e),Be.assertOptions(x,["adjust","ancestor","in","iterables","map","prefix","render","separator"]),lx(!x.prefix||typeof x.prefix=="object","options.prefix must be of type object");let t=Object.assign({},ux.defaults,x);delete t.prefix;let a=t.separator,r=ux.context(e,a,x.prefix);if(t.type=r.type,e=r.key,t.type==="value")if(r.root&&(lx(!a||e[0]!==a,"Cannot specify relative path with root prefix"),t.ancestor="root",e||(e=null)),a&&a===e)e=null,t.ancestor=0;else if(t.ancestor!==void 0)lx(!a||!e||e[0]!==a,"Cannot combine prefix with ancestor option");else {let[n,s]=ux.ancestor(e,a);s&&(e=e.slice(s),e===""&&(e=null)),t.ancestor=n;}return t.path=a?e===null?[]:e.split(a):[e],new ux.Ref(t)};bx.in=function(e,x={}){return bx.create(e,{...x,in:true})};bx.isRef=function(e){return e?!!e[Be.symbols.ref]:false};ux.Ref=class{constructor(e){lx(typeof e=="object","Invalid reference construction"),Be.assertOptions(e,["adjust","ancestor","in","iterables","map","path","render","separator","type","depth","key","root","display"]),lx([false,void 0].includes(e.separator)||typeof e.separator=="string"&&e.separator.length===1,"Invalid separator"),lx(!e.adjust||typeof e.adjust=="function","options.adjust must be a function"),lx(!e.map||Array.isArray(e.map),"options.map must be an array"),lx(!e.map||!e.adjust,"Cannot set both map and adjust options"),Object.assign(this,ux.defaults,e),lx(this.type==="value"||this.ancestor===void 0,"Non-value references cannot reference ancestors"),Array.isArray(this.map)&&(this.map=new Map(this.map)),this.depth=this.path.length,this.key=this.path.length?this.path.join(this.separator):null,this.root=this.path[0],this.updateDisplay();}resolve(e,x,t,a,r={}){return lx(!this.in||r.in,"Invalid in() reference usage"),this.type==="global"?this._resolve(t.context,x,r):this.type==="local"?this._resolve(a,x,r):this.ancestor?this.ancestor==="root"?this._resolve(x.ancestors[x.ancestors.length-1],x,r):(lx(this.ancestor<=x.ancestors.length,"Invalid reference exceeds the schema root:",this.display),this._resolve(x.ancestors[this.ancestor-1],x,r)):this._resolve(e,x,r)}_resolve(e,x,t){let a;if(this.type==="value"&&x.mainstay.shadow&&t.shadow!==false&&(a=x.mainstay.shadow.get(this.absolute(x))),a===void 0&&(a=H5(e,this.path,{iterables:this.iterables,functions:true})),this.adjust&&(a=this.adjust(a)),this.map){let r=this.map.get(a);r!==void 0&&(a=r);}return x.mainstay&&x.mainstay.tracer.resolve(x,this,a),a}toString(){return this.display}absolute(e){return [...e.path.slice(0,-this.ancestor),...this.path]}clone(){return new ux.Ref(this)}describe(){let e={path:this.path};this.type!=="value"&&(e.type=this.type),this.separator!=="."&&(e.separator=this.separator),this.type==="value"&&this.ancestor!==1&&(e.ancestor=this.ancestor),this.map&&(e.map=[...this.map]);for(let x of ["adjust","iterables","render"])this[x]!==null&&this[x]!==void 0&&(e[x]=this[x]);return this.in!==false&&(e.in=true),{ref:e}}updateDisplay(){let e=this.key!==null?this.key:"";if(this.type!=="value"){this.display=`ref:${this.type}:${e}`;return}if(!this.separator){this.display=`ref:${e}`;return}if(!this.ancestor){this.display=`ref:${this.separator}${e}`;return}if(this.ancestor==="root"){this.display=`ref:root:${e}`;return}if(this.ancestor===1){this.display=`ref:${e||".."}`;return}let x=new Array(this.ancestor+1).fill(this.separator).join("");this.display=`ref:${x}${e||""}`;}};ux.Ref.prototype[Be.symbols.ref]=true;bx.build=function(e){return e=Object.assign({},ux.defaults,e),e.type==="value"&&e.ancestor===void 0&&(e.ancestor=1),new ux.Ref(e)};ux.context=function(e,x,t={}){if(e=e.trim(),t){let a=t.global===void 0?"$":t.global;if(a!==x&&e.startsWith(a))return {key:e.slice(a.length),type:"global"};let r=t.local===void 0?"#":t.local;if(r!==x&&e.startsWith(r))return {key:e.slice(r.length),type:"local"};let n=t.root===void 0?"/":t.root;if(n!==x&&e.startsWith(n))return {key:e.slice(n.length),type:"value",root:true}}return {key:e,type:"value"}};ux.ancestor=function(e,x){if(!x)return [1,0];if(e[0]!==x)return [1,0];if(e[1]!==x)return [0,1];let t=2;for(;e[t]===x;)++t;return [t-1,t]};bx.toSibling=0;bx.toParent=1;bx.Manager=class{constructor(){this.refs=[];}register(e,x){if(e){if(x=x===void 0?bx.toParent:x,Array.isArray(e)){for(let t of e)this.register(t,x);return}if(Be.isSchema(e)){for(let t of e._refs.refs)t.ancestor-x>=0&&this.refs.push({ancestor:t.ancestor-x,root:t.root});return}bx.isRef(e)&&e.type==="value"&&e.ancestor-x>=0&&this.refs.push({ancestor:e.ancestor-x,root:e.root}),jt=jt||m6(),jt.isTemplate(e)&&this.register(e.refs(),x);}}get length(){return this.refs.length}clone(){let e=new bx.Manager;return e.refs=z5(this.refs),e}reset(){this.refs=[];}roots(){return this.refs.filter(e=>!e.ancestor).map(e=>e.root)}};});var m6=N((E2,O2)=>{var b7=i0(),V5=Y0(),X5=v2(),W5=_2(),$2=g0(),S2=t6(),I2=a6(),u0={symbol:Symbol("template"),opens:new Array(1e3).join("\0"),closes:new Array(1e3).join(""),dateFormat:{date:Date.prototype.toDateString,iso:Date.prototype.toISOString,string:Date.prototype.toString,time:Date.prototype.toTimeString,utc:Date.prototype.toUTCString}};O2.exports=u0.Template=class{constructor(e,x){if(b7(typeof e=="string","Template source must be a string"),b7(!e.includes("\0")&&!e.includes(""),"Template source cannot contain reserved control characters"),this.source=e,this.rendered=e,this._template=null,x){let{functions:t,...a}=x;this._settings=Object.keys(a).length?V5(a):void 0,this._functions=t,this._functions&&(b7(Object.keys(this._functions).every(r=>typeof r=="string"),"Functions keys must be strings"),b7(Object.values(this._functions).every(r=>typeof r=="function"),"Functions values must be functions"));}else this._settings=void 0,this._functions=void 0;this._parse();}_parse(){if(!this.source.includes("{"))return;let e=u0.encode(this.source),x=u0.split(e),t=false,a=[],r=x.shift();r&&a.push(r);for(let n of x){let s=n[0]!=="{",i=s?"}":"}}",f=n.indexOf(i);if(f===-1||n[1]==="{"){a.push(`{${u0.decode(n)}`);continue}let c=n.slice(s?0:1,f),d=c[0]===":";d&&(c=c.slice(1));let o=this._ref(u0.decode(c),{raw:s,wrapped:d});a.push(o),typeof o!="string"&&(t=true);let u=n.slice(f+i.length);u&&a.push(u0.decode(u));}if(!t){this.rendered=a.join("");return}this._template=a;}static date(e,x){return u0.dateFormat[x.dateFormat].call(e)}describe(e={}){if(!this._settings&&e.compact)return this.source;let x={template:this.source};return this._settings&&(x.options=this._settings),this._functions&&(x.functions=this._functions),x}static build(e){return new u0.Template(e.template,e.options||e.functions?{...e.options,functions:e.functions}:void 0)}isDynamic(){return !!this._template}static isTemplate(e){return e?!!e[$2.symbols.template]:false}refs(){if(!this._template)return;let e=[];for(let x of this._template)typeof x!="string"&&e.push(...x.refs);return e}resolve(e,x,t,a){return this._template&&this._template.length===1?this._part(this._template[0],e,x,t,a,{}):this.render(e,x,t,a)}_part(e,...x){return e.ref?e.ref.resolve(...x):e.formula.evaluate(x)}render(e,x,t,a,r={}){if(!this.isDynamic())return this.rendered;let n=[];for(let s of this._template)if(typeof s=="string")n.push(s);else {let i=this._part(s,e,x,t,a,r),f=u0.stringify(i,e,x,t,a,r);if(f!==void 0){let c=s.raw||(r.errors&&r.errors.escapeHtml)===false?f:X5(f);n.push(u0.wrap(c,s.wrapped&&t.errors.wrap.label));}}return n.join("")}_ref(e,{raw:x,wrapped:t}){let a=[],r=s=>{let i=I2.create(s,this._settings);return a.push(i),f=>{let c=i.resolve(...f);return c!==void 0?c:null}};try{let s=this._functions?{...u0.functions,...this._functions}:u0.functions;var n=new W5.Parser(e,{reference:r,functions:s,constants:u0.constants});}catch(s){throw s.message=`Invalid template variable "${e}" fails due to: ${s.message}`,s}if(n.single){if(n.single.type==="reference"){let s=a[0];return {ref:s,raw:x,refs:a,wrapped:t||s.type==="local"&&s.key==="label"}}return u0.stringify(n.single.value)}return {formula:n,raw:x,refs:a}}toString(){return this.source}};u0.Template.prototype[$2.symbols.template]=true;u0.Template.prototype.isImmutable=true;u0.encode=function(e){return e.replace(/\\(\{+)/g,(x,t)=>u0.opens.slice(0,t.length)).replace(/\\(\}+)/g,(x,t)=>u0.closes.slice(0,t.length))};u0.decode=function(e){return e.replace(/\u0000/g,"{").replace(/\u0001/g,"}")};u0.split=function(e){let x=[],t="";for(let a=0;a<e.length;++a){let r=e[a];if(r==="{"){let n="";for(;a+1<e.length&&e[a+1]==="{";)n+="{",++a;x.push(t),t=n;}else t+=r;}return x.push(t),x};u0.wrap=function(e,x){return x?x.length===1?`${x}${e}${x}`:`${x[0]}${e}${x[1]}`:e};u0.stringify=function(e,x,t,a,r,n={}){let s=typeof e,i=a&&a.errors&&a.errors.wrap||{},f=false;if(I2.isRef(e)&&e.render&&(f=e.in,e=e.resolve(x,t,a,r,{in:e.in,...n})),e===null)return "null";if(s==="string")return u0.wrap(e,n.arrayItems&&i.string);if(s==="number"||s==="function"||s==="symbol")return e.toString();if(s!=="object")return JSON.stringify(e);if(e instanceof Date)return u0.Template.date(e,a);if(e instanceof Map){let d=[];for(let[o,u]of e.entries())d.push(`${o.toString()} -> ${u.toString()}`);e=d;}if(!Array.isArray(e))return e.toString();let c=[];for(let d of e)c.push(u0.stringify(d,x,t,a,r,{arrayItems:true,...n}));return u0.wrap(c.join(", "),!f&&i.array)};u0.constants={true:true,false:false,null:null,second:1e3,minute:60*1e3,hour:3600*1e3,day:1440*60*1e3};u0.functions={if(e,x,t){return e?x:t},length(e){return typeof e=="string"?e.length:!e||typeof e!="object"?null:Array.isArray(e)?e.length:Object.keys(e).length},msg(e){let[x,t,a,r,n]=this,s=n.messages;if(!s)return "";let i=S2.template(x,s[0],e,t,a)||S2.template(x,s[1],e,t,a);return i?i.render(x,t,a,r,n):""},number(e){return typeof e=="number"?e:typeof e=="string"?parseFloat(e):typeof e=="boolean"?e?1:0:e instanceof Date?e.getTime():null}};});var se=N(Me=>{var B6=i0(),T2=Y0(),fx=m6();Me.compile=function(e,x){if(typeof e=="string")return B6(!x,"Cannot set single message string"),new fx(e);if(fx.isTemplate(e))return B6(!x,"Cannot set single message template"),e;B6(typeof e=="object"&&!Array.isArray(e),"Invalid message options"),x=x?T2(x):{};for(let t in e){let a=e[t];if(t==="root"||fx.isTemplate(a)){x[t]=a;continue}if(typeof a=="string"){x[t]=new fx(a);continue}B6(typeof a=="object"&&!Array.isArray(a),"Invalid message for",t);let r=t;x[r]=x[r]||{};for(t in a){let n=a[t];if(t==="root"||fx.isTemplate(n)){x[r][t]=n;continue}B6(typeof n=="string","Invalid message for",t,"in",r),x[r][t]=new fx(n);}}return x};Me.decompile=function(e){let x={};for(let t in e){let a=e[t];if(t==="root"){x.root=a;continue}if(fx.isTemplate(a)){x[t]=a.describe({compact:true});continue}let r=t;x[r]={};for(t in a){let n=a[t];if(t==="root"){x[r].root=n;continue}x[r][t]=n.describe({compact:true});}}return x};Me.merge=function(e,x){if(!e)return Me.compile(x);if(!x)return e;if(typeof x=="string")return new fx(x);if(fx.isTemplate(x))return x;let t=T2(e);for(let a in x){let r=x[a];if(a==="root"||fx.isTemplate(r)){t[a]=r;continue}if(typeof r=="string"){t[a]=new fx(r);continue}B6(typeof r=="object"&&!Array.isArray(r),"Invalid message for",a);let n=a;t[n]=t[n]||{};for(a in r){let s=r[a];if(a==="root"||fx.isTemplate(s)){t[n][a]=s;continue}B6(typeof s=="string","Invalid message for",a,"in",n),t[n][a]=new fx(s);}}return t};});var g0=N(y0=>{var h7=i0(),K5=Lt(),Y5=y2(),qt,zt,Z5={isoDate:/^(?:[-+]\d{2})?(?:\d{4}(?!\d{2}\b))(?:(-?)(?:(?:0[1-9]|1[0-2])(?:\1(?:[12]\d|0[1-9]|3[01]))?|W(?:[0-4]\d|5[0-2])(?:-?[1-7])?|(?:00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[1-6])))(?![T]$|[T][\d]+Z$)(?:[T\s](?:(?:(?:[01]\d|2[0-3])(?:(:?)[0-5]\d)?|24\:?00)(?:[.,]\d+(?!:))?)(?:\2[0-5]\d(?:[.,]\d+)?)?(?:[Z]|(?:[+-])(?:[01]\d|2[0-3])(?::?[0-5]\d)?)?)?)?$/};y0.version=Y5.version;y0.defaults={abortEarly:true,allowUnknown:false,artifacts:false,cache:true,context:null,convert:true,dateFormat:"iso",errors:{escapeHtml:false,label:"path",language:null,render:true,stack:false,wrap:{label:'"',array:"[]"}},externals:true,messages:{},nonEnumerables:false,noDefaults:false,presence:"optional",skipFunctions:false,stripUnknown:false,warnings:false};y0.symbols={any:Symbol.for("@hapi/joi/schema"),arraySingle:Symbol("arraySingle"),deepDefault:Symbol("deepDefault"),errors:Symbol("errors"),literal:Symbol("literal"),override:Symbol("override"),parent:Symbol("parent"),prefs:Symbol("prefs"),ref:Symbol("ref"),template:Symbol("template"),values:Symbol("values")};y0.assertOptions=function(e,x,t="Options"){h7(e&&typeof e=="object"&&!Array.isArray(e),"Options must be of type object");let a=Object.keys(e).filter(r=>!x.includes(r));h7(a.length===0,`${t} contain unknown keys: ${a}`);};y0.checkPreferences=function(e){zt=zt||u7();let x=zt.preferences.validate(e);if(x.error)throw new K5([x.error.details[0].message])};y0.compare=function(e,x,t){switch(t){case "=":return e===x;case ">":return e>x;case "<":return e<x;case ">=":return e>=x;case "<=":return e<=x}};y0.default=function(e,x){return e===void 0?x:e};y0.isIsoDate=function(e){return Z5.isoDate.test(e)};y0.isNumber=function(e){return typeof e=="number"&&!isNaN(e)};y0.isResolvable=function(e){return e?e[y0.symbols.ref]||e[y0.symbols.template]:false};y0.isSchema=function(e,x={}){let t=e&&e[y0.symbols.any];return t?(h7(x.legacy||t.version===y0.version,"Cannot mix different versions of joi schemas"),true):false};y0.isValues=function(e){return e[y0.symbols.values]};y0.limit=function(e){return Number.isSafeInteger(e)&&e>=0};y0.preferences=function(e,x){qt=qt||se(),e=e||{},x=x||{};let t=Object.assign({},e,x);return x.errors&&e.errors&&(t.errors=Object.assign({},e.errors,x.errors),t.errors.wrap=Object.assign({},e.errors.wrap,x.errors.wrap)),x.messages&&(t.messages=qt.compile(x.messages,e.messages)),delete t[y0.symbols.prefs],t};y0.tryWithPath=function(e,x,t={}){try{return e()}catch(a){throw a.path!==void 0?a.path=x+"."+a.path:a.path=x,t.append&&(a.message=`${a.message} (${a.path})`),a}};y0.validateArg=function(e,x,{assert:t,message:a}){if(y0.isSchema(t)){let r=t.validate(e);return r.error?r.error.message:void 0}else if(!t(e))return x?`${x} ${a}`:a};y0.verifyFlat=function(e,x){for(let t of e)h7(!Array.isArray(t),"Method no longer accepts array arguments:",x);};});var Ht=N(R2=>{var J5=i0(),Q5=Y0(),xf=g0(),ie={max:1e3,supported:new Set(["undefined","boolean","number","string"])};R2.provider={provision(e){return new ie.Cache(e)}};ie.Cache=class{constructor(e={}){xf.assertOptions(e,["max"]),J5(e.max===void 0||e.max&&e.max>0&&isFinite(e.max),"Invalid max cache size"),this._max=e.max||ie.max,this._map=new Map,this._list=new ie.List;}get length(){return this._map.size}set(e,x){if(e!==null&&!ie.supported.has(typeof e))return;let t=this._map.get(e);if(t){t.value=x,this._list.first(t);return}t=this._list.unshift({key:e,value:x}),this._map.set(e,t),this._compact();}get(e){let x=this._map.get(e);if(x)return this._list.first(x),Q5(x.value)}_compact(){if(this._map.size>this._max){let e=this._list.pop();this._map.delete(e.key);}}};ie.List=class{constructor(){this.tail=null,this.head=null;}unshift(e){return e.next=null,e.prev=this.head,this.head&&(this.head.next=e),this.head=e,this.tail||(this.tail=e),e}first(e){e!==this.head&&(this._remove(e),this.unshift(e));}pop(){return this._remove(this.tail)}_remove(e){let{next:x,prev:t}=e;return x.prev=t,t&&(t.next=x),e===this.tail&&(this.tail=x),e.prev=null,e.next=null,e}};});var M6=N(r6=>{var I0=i0(),cx=g0(),fe=a6(),hx={};r6.schema=function(e,x,t={}){cx.assertOptions(t,["appendPath","override"]);try{return hx.schema(e,x,t)}catch(a){throw t.appendPath&&a.path!==void 0&&(a.message=`${a.message} (${a.path})`),a}};hx.schema=function(e,x,t){I0(x!==void 0,"Invalid undefined schema"),Array.isArray(x)&&(I0(x.length,"Invalid empty array schema"),x.length===1&&(x=x[0]));let a=(r,...n)=>t.override!==false?r.valid(e.override,...n):r.valid(...n);if(hx.simple(x))return a(e,x);if(typeof x=="function")return e.custom(x);if(I0(typeof x=="object","Invalid schema content:",typeof x),cx.isResolvable(x))return a(e,x);if(cx.isSchema(x))return x;if(Array.isArray(x)){for(let r of x)if(!hx.simple(r))return e.alternatives().try(...x);return a(e,...x)}return x instanceof RegExp?e.string().regex(x):x instanceof Date?a(e.date(),x):(I0(Object.getPrototypeOf(x)===Object.getPrototypeOf({}),"Schema can only contain plain objects"),e.object().keys(x))};r6.ref=function(e,x){return fe.isRef(e)?e:fe.create(e,x)};r6.compile=function(e,x,t={}){cx.assertOptions(t,["legacy"]);let a=x&&x[cx.symbols.any];if(a)return I0(t.legacy||a.version===cx.version,"Cannot mix different versions of joi schemas:",a.version,cx.version),x;if(typeof x!="object"||!t.legacy)return r6.schema(e,x,{appendPath:true});let r=hx.walk(x);return r?r.compile(r.root,x):r6.schema(e,x,{appendPath:true})};hx.walk=function(e){if(typeof e!="object")return null;if(Array.isArray(e)){for(let t of e){let a=hx.walk(t);if(a)return a}return null}let x=e[cx.symbols.any];if(x)return {root:e[x.root],compile:x.compile};I0(Object.getPrototypeOf(e)===Object.getPrototypeOf({}),"Schema can only contain plain objects");for(let t in e){let a=hx.walk(e[t]);if(a)return a}return null};hx.simple=function(e){return e===null||["boolean","string","number"].includes(typeof e)};r6.when=function(e,x,t){if(t===void 0&&(I0(x&&typeof x=="object","Missing options"),t=x,x=fe.create(".")),Array.isArray(t)&&(t={switch:t}),cx.assertOptions(t,["is","not","then","otherwise","switch","break"]),cx.isSchema(x))return I0(t.is===void 0,'"is" can not be used with a schema condition'),I0(t.not===void 0,'"not" can not be used with a schema condition'),I0(t.switch===void 0,'"switch" can not be used with a schema condition'),hx.condition(e,{is:x,then:t.then,otherwise:t.otherwise,break:t.break});if(I0(fe.isRef(x)||typeof x=="string","Invalid condition:",x),I0(t.not===void 0||t.is===void 0,'Cannot combine "is" with "not"'),t.switch===void 0){let r=t;t.not!==void 0&&(r={is:t.not,then:t.otherwise,otherwise:t.then,break:t.break});let n=r.is!==void 0?e.$_compile(r.is):e.$_root.invalid(null,false,0,"").required();return I0(r.then!==void 0||r.otherwise!==void 0,'options must have at least one of "then", "otherwise", or "switch"'),I0(r.break===void 0||r.then===void 0||r.otherwise===void 0,"Cannot specify then, otherwise, and break all together"),t.is!==void 0&&!fe.isRef(t.is)&&!cx.isSchema(t.is)&&(n=n.required()),hx.condition(e,{ref:r6.ref(x),is:n,then:r.then,otherwise:r.otherwise,break:r.break})}I0(Array.isArray(t.switch),'"switch" must be an array'),I0(t.is===void 0,'Cannot combine "switch" with "is"'),I0(t.not===void 0,'Cannot combine "switch" with "not"'),I0(t.then===void 0,'Cannot combine "switch" with "then"');let a={ref:r6.ref(x),switch:[],break:t.break};for(let r=0;r<t.switch.length;++r){let n=t.switch[r],s=r===t.switch.length-1;cx.assertOptions(n,s?["is","then","otherwise"]:["is","then"]),I0(n.is!==void 0,'Switch statement missing "is"'),I0(n.then!==void 0,'Switch statement missing "then"');let i={is:e.$_compile(n.is),then:e.$_compile(n.then)};if(!fe.isRef(n.is)&&!cx.isSchema(n.is)&&(i.is=i.is.required()),s){I0(t.otherwise===void 0||n.otherwise===void 0,'Cannot specify "otherwise" inside and outside a "switch"');let f=t.otherwise!==void 0?t.otherwise:n.otherwise;f!==void 0&&(I0(a.break===void 0,"Cannot specify both otherwise and break"),i.otherwise=e.$_compile(f));}a.switch.push(i);}return a};hx.condition=function(e,x){for(let t of ["then","otherwise"])x[t]===void 0?delete x[t]:x[t]=e.$_compile(x[t]);return x};});var Vt=N(P2=>{var g6=i0(),ef=Y0(),k2=g0(),tf=se(),kx={};P2.type=function(e,x){let t=Object.getPrototypeOf(e),a=ef(t),r=e._assign(Object.create(a)),n=Object.assign({},x);delete n.base,a._definition=n;let s=t._definition||{};n.messages=tf.merge(s.messages,n.messages),n.properties=Object.assign({},s.properties,n.properties),r.type=n.type,n.flags=Object.assign({},s.flags,n.flags);let i=Object.assign({},s.terms);if(n.terms)for(let o in n.terms){let u=n.terms[o];g6(r.$_terms[o]===void 0,"Invalid term override for",n.type,o),r.$_terms[o]=u.init,i[o]=u;}n.terms=i,n.args||(n.args=s.args),n.prepare=kx.prepare(n.prepare,s.prepare),n.coerce&&(typeof n.coerce=="function"&&(n.coerce={method:n.coerce}),n.coerce.from&&!Array.isArray(n.coerce.from)&&(n.coerce={method:n.coerce.method,from:[].concat(n.coerce.from)})),n.coerce=kx.coerce(n.coerce,s.coerce),n.validate=kx.validate(n.validate,s.validate);let f=Object.assign({},s.rules);if(n.rules)for(let o in n.rules){let u=n.rules[o];g6(typeof u=="object","Invalid rule definition for",n.type,o);let p=u.method;if(p===void 0&&(p=function(){return this.$_addRule(o)}),p&&(g6(!a[o],"Rule conflict in",n.type,o),a[o]=p),g6(!f[o],"Rule conflict in",n.type,o),f[o]=u,u.alias){let b=[].concat(u.alias);for(let m of b)a[m]=u.method;}u.args&&(u.argsByName=new Map,u.args=u.args.map(b=>(typeof b=="string"&&(b={name:b}),g6(!u.argsByName.has(b.name),"Duplicated argument name",b.name),k2.isSchema(b.assert)&&(b.assert=b.assert.strict().label(b.name)),u.argsByName.set(b.name,b),b)));}n.rules=f;let c=Object.assign({},s.modifiers);if(n.modifiers)for(let o in n.modifiers){g6(!a[o],"Rule conflict in",n.type,o);let u=n.modifiers[o];g6(typeof u=="function","Invalid modifier definition for",n.type,o);let p=function(b){return this.rule({[o]:b})};a[o]=p,c[o]=u;}if(n.modifiers=c,n.overrides){a._super=t,r.$_super={};for(let o in n.overrides)g6(t[o],"Cannot override missing",o),n.overrides[o][k2.symbols.parent]=t[o],r.$_super[o]=t[o].bind(r);Object.assign(a,n.overrides);}n.cast=Object.assign({},s.cast,n.cast);let d=Object.assign({},s.manifest,n.manifest);return d.build=kx.build(n.manifest&&n.manifest.build,s.manifest&&s.manifest.build),n.manifest=d,n.rebuild=kx.rebuild(n.rebuild,s.rebuild),r};kx.build=function(e,x){return !e||!x?e||x:function(t,a){return x(e(t,a),a)}};kx.coerce=function(e,x){return !e||!x?e||x:{from:e.from&&x.from?[...new Set([...e.from,...x.from])]:null,method(t,a){let r;if((!x.from||x.from.includes(typeof t))&&(r=x.method(t,a),r)){if(r.errors||r.value===void 0)return r;t=r.value;}if(!e.from||e.from.includes(typeof t)){let n=e.method(t,a);if(n)return n}return r}}};kx.prepare=function(e,x){return !e||!x?e||x:function(t,a){let r=e(t,a);if(r){if(r.errors||r.value===void 0)return r;t=r.value;}return x(t,a)||r}};kx.rebuild=function(e,x){return !e||!x?e||x:function(t){x(t),e(t);}};kx.validate=function(e,x){return !e||!x?e||x:function(t,a){let r=x(t,a);if(r){if(r.errors&&(!Array.isArray(r.errors)||r.errors.length))return r;t=r.value;}return e(t,a)||r}};});var Kt=N(Wt=>{var Px=i0(),p7=Y0(),G6=g0(),af=se(),D2=a6(),rf=m6(),Xt,Z0={};Wt.describe=function(e){let x=e._definition,t={type:e.type,flags:{},rules:[]};for(let a in e._flags)a[0]!=="_"&&(t.flags[a]=Z0.describe(e._flags[a]));Object.keys(t.flags).length||delete t.flags,e._preferences&&(t.preferences=p7(e._preferences,{shallow:["messages"]}),delete t.preferences[G6.symbols.prefs],t.preferences.messages&&(t.preferences.messages=af.decompile(t.preferences.messages))),e._valids&&(t.allow=e._valids.describe()),e._invalids&&(t.invalid=e._invalids.describe());for(let a of e._rules){if(x.rules[a.name].manifest===false)continue;let n={name:a.name};for(let s in x.modifiers)a[s]!==void 0&&(n[s]=Z0.describe(a[s]));if(a.args){n.args={};for(let s in a.args){let i=a.args[s];s==="options"&&!Object.keys(i).length||(n.args[s]=Z0.describe(i,{assign:s}));}Object.keys(n.args).length||delete n.args;}t.rules.push(n);}t.rules.length||delete t.rules;for(let a in e.$_terms){if(a[0]==="_")continue;Px(!t[a],"Cannot describe schema due to internal name conflict with",a);let r=e.$_terms[a];if(!r)continue;if(r instanceof Map){r.size&&(t[a]=[...r.entries()]);continue}if(G6.isValues(r)){t[a]=r.describe();continue}Px(x.terms[a],"Term",a,"missing configuration");let n=x.terms[a].manifest,s=typeof n=="object";if(!r.length&&!s)continue;let i=[];for(let f of r)i.push(Z0.describe(f));if(s){let{from:f,to:c}=n.mapped;t[a]={};for(let d of i)t[a][d[c]]=d[f];continue}if(n==="single"){Px(i.length===1,"Term",a,"contains more than one item"),t[a]=i[0];continue}t[a]=i;}return Z0.validate(e.$_root,t),t};Z0.describe=function(e,x={}){if(Array.isArray(e))return e.map(Z0.describe);if(e===G6.symbols.deepDefault)return {special:"deep"};if(typeof e!="object"||e===null)return e;if(x.assign==="options")return p7(e);if(Buffer&&Buffer.isBuffer(e))return {buffer:e.toString("binary")};if(e instanceof Date)return e.toISOString();if(e instanceof Error)return e;if(e instanceof RegExp)return x.assign==="regex"?e.toString():{regex:e.toString()};if(e[G6.symbols.literal])return {function:e.literal};if(typeof e.describe=="function")return x.assign==="ref"?e.describe().ref:e.describe();let t={};for(let a in e){let r=e[a];r!==void 0&&(t[a]=Z0.describe(r,{assign:a}));}return t};Wt.build=function(e,x){return new Z0.Builder(e).parse(x)};Z0.Builder=class{constructor(e){this.joi=e;}parse(e){Z0.validate(this.joi,e);let x=this.joi[e.type]()._bare(),t=x._definition;if(e.flags)for(let r in e.flags){let n=t.flags[r]&&t.flags[r].setter||r;Px(typeof x[n]=="function","Invalid flag",r,"for type",e.type),x=x[n](this.build(e.flags[r]));}if(e.preferences&&(x=x.preferences(this.build(e.preferences))),e.allow&&(x=x.allow(...this.build(e.allow))),e.invalid&&(x=x.invalid(...this.build(e.invalid))),e.rules)for(let r of e.rules){Px(typeof x[r.name]=="function","Invalid rule",r.name,"for type",e.type);let n=[];if(r.args){let i={};for(let d in r.args)i[d]=this.build(r.args[d],{assign:d});let f=Object.keys(i),c=t.rules[r.name].args;if(c){Px(f.length<=c.length,"Invalid number of arguments for",e.type,r.name,"(expected up to",c.length,", found",f.length,")");for(let{name:d}of c)n.push(i[d]);}else Px(f.length===1,"Invalid number of arguments for",e.type,r.name,"(expected up to 1, found",f.length,")"),n.push(i[f[0]]);}x=x[r.name](...n);let s={};for(let i in t.modifiers)r[i]!==void 0&&(s[i]=this.build(r[i]));Object.keys(s).length&&(x=x.rule(s));}let a={};for(let r in e){if(["allow","flags","invalid","whens","preferences","rules","type"].includes(r))continue;Px(t.terms[r],"Term",r,"missing configuration");let n=t.terms[r].manifest;if(n==="schema"){a[r]=e[r].map(s=>this.parse(s));continue}if(n==="values"){a[r]=e[r].map(s=>this.build(s));continue}if(n==="single"){a[r]=this.build(e[r]);continue}if(typeof n=="object"){a[r]={};for(let s in e[r]){let i=e[r][s];a[r][s]=this.parse(i);}continue}a[r]=this.build(e[r]);}return e.whens&&(a.whens=e.whens.map(r=>this.build(r))),x=t.manifest.build(x,a),x.$_temp.ruleset=false,x}build(e,x={}){if(e===null)return null;if(Array.isArray(e))return e.map(a=>this.build(a));if(e instanceof Error)return e;if(x.assign==="options")return p7(e);if(x.assign==="regex")return Z0.regex(e);if(x.assign==="ref")return D2.build(e);if(typeof e!="object")return e;if(Object.keys(e).length===1){if(e.buffer)return Px(Buffer,"Buffers are not supported"),Buffer&&Buffer.from(e.buffer,"binary");if(e.function)return {[G6.symbols.literal]:true,literal:e.function};if(e.override)return G6.symbols.override;if(e.ref)return D2.build(e.ref);if(e.regex)return Z0.regex(e.regex);if(e.special)return Px(["deep"].includes(e.special),"Unknown special value",e.special),G6.symbols.deepDefault;if(e.value)return p7(e.value)}if(e.type)return this.parse(e);if(e.template)return rf.build(e);let t={};for(let a in e)t[a]=this.build(e[a],{assign:a});return t}};Z0.regex=function(e){let x=e.lastIndexOf("/"),t=e.slice(1,x),a=e.slice(x+1);return new RegExp(t,a)};Z0.validate=function(e,x){Xt=Xt||u7(),e.assert(x,Xt.description);};});var Ge=N((su,F2)=>{var Dx=Mt(),q0={mismatched:null};F2.exports=function(e,x,t){return t=Object.assign({prototype:true},t),!!q0.isDeepEqual(e,x,t,[])};q0.isDeepEqual=function(e,x,t,a){if(e===x)return e!==0||1/e===1/x;let r=typeof e;if(r!==typeof x||e===null||x===null)return false;if(r==="function"){if(!t.deepFunction||e.toString()!==x.toString())return false}else if(r!=="object")return e!==e&&x!==x;let n=q0.getSharedType(e,x,!!t.prototype);switch(n){case Dx.buffer:return Buffer&&Buffer.prototype.equals.call(e,x);case Dx.promise:return e===x;case Dx.regex:return e.toString()===x.toString();case q0.mismatched:return false}for(let s=a.length-1;s>=0;--s)if(a[s].isSame(e,x))return true;a.push(new q0.SeenEntry(e,x));try{return !!q0.isDeepEqualObj(n,e,x,t,a)}finally{a.pop();}};q0.getSharedType=function(e,x,t){if(t)return Object.getPrototypeOf(e)!==Object.getPrototypeOf(x)?q0.mismatched:Dx.getInternalProto(e);let a=Dx.getInternalProto(e);return a!==Dx.getInternalProto(x)?q0.mismatched:a};q0.valueOf=function(e){let x=e.valueOf;if(x===void 0)return e;try{return x.call(e)}catch(t){return t}};q0.hasOwnEnumerableProperty=function(e,x){return Object.prototype.propertyIsEnumerable.call(e,x)};q0.isSetSimpleEqual=function(e,x){for(let t of Set.prototype.values.call(e))if(!Set.prototype.has.call(x,t))return false;return true};q0.isDeepEqualObj=function(e,x,t,a,r){let{isDeepEqual:n,valueOf:s,hasOwnEnumerableProperty:i}=q0,{keys:f,getOwnPropertySymbols:c}=Object;if(e===Dx.array)if(a.part){for(let b of x)for(let m of t)if(n(b,m,a,r))return true}else {if(x.length!==t.length)return false;for(let b=0;b<x.length;++b)if(!n(x[b],t[b],a,r))return false;return true}else if(e===Dx.set){if(x.size!==t.size)return false;if(!q0.isSetSimpleEqual(x,t)){let b=new Set(Set.prototype.values.call(t));for(let m of Set.prototype.values.call(x)){if(b.delete(m))continue;let v=false;for(let $ of b)if(n(m,$,a,r)){b.delete($),v=true;break}if(!v)return false}}}else if(e===Dx.map){if(x.size!==t.size)return false;for(let[b,m]of Map.prototype.entries.call(x))if(m===void 0&&!Map.prototype.has.call(t,b)||!n(m,Map.prototype.get.call(t,b),a,r))return false}else if(e===Dx.error&&(x.name!==t.name||x.message!==t.message))return false;let d=s(x),o=s(t);if((x!==d||t!==o)&&!n(d,o,a,r))return false;let u=f(x);if(!a.part&&u.length!==f(t).length&&!a.skip)return false;let p=0;for(let b of u){if(a.skip&&a.skip.includes(b)){t[b]===void 0&&++p;continue}if(!i(t,b)||!n(x[b],t[b],a,r))return false}if(!a.part&&u.length-p!==f(t).length)return false;if(a.symbols!==false){let b=c(x),m=new Set(c(t));for(let v of b){if(!a.skip||!a.skip.includes(v)){if(i(x,v)){if(!i(t,v)||!n(x[v],t[v],a,r))return false}else if(i(t,v))return false}m.delete(v);}for(let v of m)if(i(t,v))return false}return true};q0.SeenEntry=class{constructor(e,x){this.obj=e,this.ref=x;}isSame(e,x){return this.obj===e&&this.ref===x}};});var L2=N(N2=>{N2.location=function(e=0){let x=Error.prepareStackTrace;Error.prepareStackTrace=(r,n)=>n;let t={};Error.captureStackTrace(t,this);let a=t.stack[e+1];return Error.prepareStackTrace=x,{filename:a.getFileName(),line:a.getLineNumber()}};});var Zt=N(Yt=>{var B2=Ge(),M2=L2(),nf=t6(),z0={codes:{error:1,pass:2,full:3},labels:{0:"never used",1:"always error",2:"always pass"}};Yt.setup=function(e){let x=function(){return e._tracer=e._tracer||new z0.Tracer,e._tracer};e.trace=x,e[Symbol.for("@hapi/lab/coverage/initialize")]=x,e.untrace=()=>{e._tracer=null;};};Yt.location=function(e){return e.$_setFlag("_tracerLocation",M2.location(2))};z0.Tracer=class{constructor(){this.name="Joi",this._schemas=new Map;}_register(e){let x=this._schemas.get(e);if(x)return x.store;let t=new z0.Store(e),{filename:a,line:r}=e._flags._tracerLocation||M2.location(5);return this._schemas.set(e,{filename:a,line:r,store:t}),t}_combine(e,x){for(let{store:t}of this._schemas.values())t._combine(e,x);}report(e){let x=[];for(let{filename:t,line:a,store:r}of this._schemas.values()){if(e&&e!==t)continue;let n=[],s=[];for(let[i,f]of r._sources.entries()){if(z0.sub(f.paths,s))continue;if(!f.entry){n.push({status:"never reached",paths:[...f.paths]}),s.push(...f.paths);continue}for(let d of ["valid","invalid"]){let o=i[`_${d}s`];if(!o)continue;let u=new Set(o._values),p=new Set(o._refs);for(let{value:b,ref:m}of f[d])u.delete(b),p.delete(m);(u.size||p.size)&&n.push({status:[...u,...[...p].map(b=>b.display)],rule:`${d}s`});}let c=i._rules.map(d=>d.name);for(let d of ["default","failover"])i._flags[d]!==void 0&&c.push(d);for(let d of c){let o=z0.labels[f.rule[d]||0];if(o){let u={rule:d,status:o};f.paths.size&&(u.paths=[...f.paths]),n.push(u);}}}n.length&&x.push({filename:t,line:a,missing:n,severity:"error",message:`Schema missing tests for ${n.map(z0.message).join(", ")}`});}return x.length?x:null}};z0.Store=class{constructor(e){this.active=true,this._sources=new Map,this._combos=new Map,this._scan(e);}debug(e,x,t,a){e.mainstay.debug&&e.mainstay.debug.push({type:x,name:t,result:a,path:e.path});}entry(e,x){z0.debug(x,{type:"entry"}),this._record(e,t=>{t.entry=true;});}filter(e,x,t,a){z0.debug(x,{type:t,...a}),this._record(e,r=>{r[t].add(a);});}log(e,x,t,a,r){z0.debug(x,{type:t,name:a,result:r==="full"?"pass":r}),this._record(e,n=>{n[t][a]=n[t][a]||0,n[t][a]|=z0.codes[r];});}resolve(e,x,t){if(!e.mainstay.debug)return;let a={type:"resolve",ref:x.display,to:t,path:e.path};e.mainstay.debug.push(a);}value(e,x,t,a,r){if(!e.mainstay.debug||B2(t,a))return;let n={type:"value",by:x,from:t,to:a,path:e.path};r&&(n.name=r),e.mainstay.debug.push(n);}_record(e,x){let t=this._sources.get(e);if(t){x(t);return}let a=this._combos.get(e);for(let r of a)this._record(r,x);}_scan(e,x){let t=x||[],a=this._sources.get(e);a||(a={paths:new Set,entry:false,rule:{},valid:new Set,invalid:new Set},this._sources.set(e,a)),t.length&&a.paths.add(t);let r=(n,s)=>{let i=z0.id(n,s);this._scan(n,t.concat(i));};e.$_modify({each:r,ref:false});}_combine(e,x){this._combos.set(e,x);}};z0.message=function(e){return `${e.paths?nf.path(e.paths[0])+(e.rule?":":""):""}${e.rule||""} (${e.status})`};z0.id=function(e,{source:x,name:t,path:a,key:r}){return e._flags.id?e._flags.id:r||(t=`@${t}`,x==="terms"?[t,a[Math.min(a.length-1,1)]]:t)};z0.sub=function(e,x){for(let t of e)for(let a of x)if(B2(t.slice(0,a.length),a))return true;return false};z0.debug=function(e,x){e.mainstay.debug&&(x.path=e.debug?[...e.path,e.debug]:e.path,e.mainstay.debug.push(x));};});var m7=N((lu,j2)=>{var Jt=i0(),G2=Y0(),sf=Gt(),U2={};j2.exports=U2.merge=function(e,x,t){if(Jt(e&&typeof e=="object","Invalid target value: must be an object"),Jt(x==null||typeof x=="object","Invalid source value: must be null, undefined, or an object"),!x)return e;if(t=Object.assign({nullOverride:true,mergeArrays:true},t),Array.isArray(x)){Jt(Array.isArray(e),"Cannot merge array onto an object"),t.mergeArrays||(e.length=0);for(let r=0;r<x.length;++r)e.push(G2(x[r],{symbols:t.symbols}));return e}let a=sf.keys(x,t);for(let r=0;r<a.length;++r){let n=a[r];if(n==="__proto__"||!Object.prototype.propertyIsEnumerable.call(x,n))continue;let s=x[n];if(s&&typeof s=="object"){if(e[n]===s)continue;!e[n]||typeof e[n]!="object"||Array.isArray(e[n])!==Array.isArray(s)||s instanceof Date||Buffer&&Buffer.isBuffer(s)||s instanceof RegExp?e[n]=G2(s,{symbols:t.symbols}):U2.merge(e[n],s,t);}else (s!=null||t.nullOverride)&&(e[n]=s);}return e};});var q2=N(g7=>{var n6=i0(),Qt=g0(),ff=a6(),Fx={};g7.Ids=Fx.Ids=class{constructor(){this._byId=new Map,this._byKey=new Map,this._schemaChain=false;}clone(){let e=new Fx.Ids;return e._byId=new Map(this._byId),e._byKey=new Map(this._byKey),e._schemaChain=this._schemaChain,e}concat(e){e._schemaChain&&(this._schemaChain=true);for(let[x,t]of e._byId.entries())n6(!this._byKey.has(x),"Schema id conflicts with existing key:",x),this._byId.set(x,t);for(let[x,t]of e._byKey.entries())n6(!this._byId.has(x),"Schema key conflicts with existing id:",x),this._byKey.set(x,t);}fork(e,x,t){let a=this._collect(e);a.push({schema:t});let r=a.shift(),n={id:r.id,schema:x(r.schema)};n6(Qt.isSchema(n.schema),"adjuster function failed to return a joi schema type");for(let s of a)n={id:s.id,schema:Fx.fork(s.schema,n.id,n.schema)};return n.schema}labels(e,x=[]){let t=e[0],a=this._get(t);if(!a)return [...x,...e].join(".");let r=e.slice(1);return x=[...x,a.schema._flags.label||t],r.length?a.schema._ids.labels(r,x):x.join(".")}reach(e,x=[]){let t=e[0],a=this._get(t);n6(a,"Schema does not contain path",[...x,...e].join("."));let r=e.slice(1);return r.length?a.schema._ids.reach(r,[...x,t]):a.schema}register(e,{key:x}={}){if(!e||!Qt.isSchema(e))return;(e.$_property("schemaChain")||e._ids._schemaChain)&&(this._schemaChain=true);let t=e._flags.id;if(t){let a=this._byId.get(t);n6(!a||a.schema===e,"Cannot add different schemas with the same id:",t),n6(!this._byKey.has(t),"Schema id conflicts with existing key:",t),this._byId.set(t,{schema:e,id:t});}x&&(n6(!this._byKey.has(x),"Schema already contains key:",x),n6(!this._byId.has(x),"Schema key conflicts with existing id:",x),this._byKey.set(x,{schema:e,id:x}));}reset(){this._byId=new Map,this._byKey=new Map,this._schemaChain=false;}_collect(e,x=[],t=[]){let a=e[0],r=this._get(a);n6(r,"Schema does not contain path",[...x,...e].join(".")),t=[r,...t];let n=e.slice(1);return n.length?r.schema._ids._collect(n,[...x,a],t):t}_get(e){return this._byId.get(e)||this._byKey.get(e)}};Fx.fork=function(e,x,t){let a=(n,{key:s})=>{if(x===(n._flags.id||s))return t},r=g7.schema(e,{each:a,ref:false});return r?r.$_mutateRebuild():e};g7.schema=function(e,x){let t;for(let a in e._flags){if(a[0]==="_")continue;let r=Fx.scan(e._flags[a],{source:"flags",name:a},x);r!==void 0&&(t=t||e.clone(),t._flags[a]=r);}for(let a=0;a<e._rules.length;++a){let r=e._rules[a],n=Fx.scan(r.args,{source:"rules",name:r.name},x);if(n!==void 0){t=t||e.clone();let s=Object.assign({},r);s.args=n,t._rules[a]=s,t._singleRules.get(r.name)===r&&t._singleRules.set(r.name,s);}}for(let a in e.$_terms){if(a[0]==="_")continue;let r=Fx.scan(e.$_terms[a],{source:"terms",name:a},x);r!==void 0&&(t=t||e.clone(),t.$_terms[a]=r);}return t};Fx.scan=function(e,x,t,a,r){let n=a||[];if(e===null||typeof e!="object")return;let s;if(Array.isArray(e)){for(let i=0;i<e.length;++i){let f=x.source==="terms"&&x.name==="keys"&&e[i].key,c=Fx.scan(e[i],x,t,[i,...n],f);c!==void 0&&(s=s||e.slice(),s[i]=c);}return s}if(t.schema!==false&&Qt.isSchema(e)||t.ref!==false&&ff.isRef(e)){let i=t.each(e,{...x,path:n,key:r});return i===e?void 0:i}for(let i in e){if(i[0]==="_")continue;let f=Fx.scan(e[i],x,t,[i,...n],r);f!==void 0&&(s=s||Object.assign({},e),s[i]=f);}return s};});var H2=N((hu,z2)=>{z2.exports=function(){};});var W2=N((pu,X2)=>{var cf=Y0(),V2=N6(),df=g0(),Nx={value:Symbol("value")};X2.exports=Nx.State=class{constructor(e,x,t){this.path=e,this.ancestors=x,this.mainstay=t.mainstay,this.schemas=t.schemas,this.debug=null;}localize(e,x=null,t=null){let a=new Nx.State(e,x,this);return t&&a.schemas&&(a.schemas=[Nx.schemas(t),...a.schemas]),a}nest(e,x){let t=new Nx.State(this.path,this.ancestors,this);return t.schemas=t.schemas&&[Nx.schemas(e),...t.schemas],t.debug=x,t}shadow(e,x){this.mainstay.shadow=this.mainstay.shadow||new Nx.Shadow,this.mainstay.shadow.set(this.path,e,x);}snapshot(){this.mainstay.shadow&&(this._snapshot=cf(this.mainstay.shadow.node(this.path))),this.mainstay.snapshot();}restore(){this.mainstay.shadow&&(this.mainstay.shadow.override(this.path,this._snapshot),this._snapshot=void 0),this.mainstay.restore();}commit(){this.mainstay.shadow&&(this.mainstay.shadow.override(this.path,this._snapshot),this._snapshot=void 0),this.mainstay.commit();}};Nx.schemas=function(e){return df.isSchema(e)?{schema:e}:e};Nx.Shadow=class{constructor(){this._values=null;}set(e,x,t){if(!e.length||t==="strip"&&typeof e[e.length-1]=="number")return;this._values=this._values||new Map;let a=this._values;for(let r=0;r<e.length;++r){let n=e[r],s=a.get(n);s||(s=new Map,a.set(n,s)),a=s;}a[Nx.value]=x;}get(e){let x=this.node(e);if(x)return x[Nx.value]}node(e){if(this._values)return V2(this._values,e,{iterables:true})}override(e,x){if(!this._values)return;let t=e.slice(0,-1),a=e[e.length-1],r=V2(this._values,t,{iterables:true});if(x){r.set(a,x);return}r&&r.delete(a);}};});var Y2=N(je=>{var Ue=i0(),K2=Y0(),ce=H2(),of=N6(),N0=g0(),y6=t6(),lf=W2(),X={result:Symbol("result")};je.entry=function(e,x,t){let a=N0.defaults;t&&(Ue(t.warnings===void 0,"Cannot override warnings preference in synchronous validation"),Ue(t.artifacts===void 0,"Cannot override artifacts preference in synchronous validation"),a=N0.preferences(N0.defaults,t));let r=X.entry(e,x,a);Ue(!r.mainstay.externals.length,"Schema with external rules must use validateAsync()");let n={value:r.value};return r.error&&(n.error=r.error),r.mainstay.warnings.length&&(n.warning=y6.details(r.mainstay.warnings)),r.mainstay.debug&&(n.debug=r.mainstay.debug),r.mainstay.artifacts&&(n.artifacts=r.mainstay.artifacts),n};je.entryAsync=async function(e,x,t){let a=N0.defaults;t&&(a=N0.preferences(N0.defaults,t));let r=X.entry(e,x,a),n=r.mainstay;if(r.error)throw n.debug&&(r.error.debug=n.debug),r.error;if(n.externals.length){let i=r.value,f=[];for(let c of n.externals){let d=c.state.path,o=c.schema.type==="link"?n.links.get(c.schema):null,u=i,p,b,m=d.length?[i]:[],v=d.length?of(e,d):e;if(d.length){p=d[d.length-1];let $=i;for(let y of d.slice(0,-1))$=$[y],m.unshift($);b=m[0],u=b[p];}try{let $=(h,S)=>(o||c.schema).$_createError(h,u,S,c.state,a),y=await c.method(u,{schema:c.schema,linked:o,state:c.state,prefs:t,original:v,error:$,errorsArray:X.errorsArray,warn:(h,S)=>n.warnings.push((o||c.schema).$_createError(h,u,S,c.state,a)),message:(h,S)=>(o||c.schema).$_createError("external",u,S,c.state,a,{messages:h})});if(y===void 0||y===u)continue;if(y instanceof y6.Report){if(n.tracer.log(c.schema,c.state,"rule","external","error"),f.push(y),a.abortEarly)break;continue}if(Array.isArray(y)&&y[N0.symbols.errors]){if(n.tracer.log(c.schema,c.state,"rule","external","error"),f.push(...y),a.abortEarly)break;continue}b?(n.tracer.value(c.state,"rule",u,y,"external"),b[p]=y):(n.tracer.value(c.state,"rule",i,y,"external"),i=y);}catch($){throw a.errors.label&&($.message+=` (${c.label})`),$}}if(r.value=i,f.length)throw r.error=y6.process(f,e,a),n.debug&&(r.error.debug=n.debug),r.error}if(!a.warnings&&!a.debug&&!a.artifacts)return r.value;let s={value:r.value};return n.warnings.length&&(s.warning=y6.details(n.warnings)),n.debug&&(s.debug=n.debug),n.artifacts&&(s.artifacts=n.artifacts),s};X.Mainstay=class{constructor(e,x,t){this.externals=[],this.warnings=[],this.tracer=e,this.debug=x,this.links=t,this.shadow=null,this.artifacts=null,this._snapshots=[];}snapshot(){this._snapshots.push({externals:this.externals.slice(),warnings:this.warnings.slice()});}restore(){let e=this._snapshots.pop();this.externals=e.externals,this.warnings=e.warnings;}commit(){this._snapshots.pop();}};X.entry=function(e,x,t){let{tracer:a,cleanup:r}=X.tracer(x,t),n=t.debug?[]:null,s=x._ids._schemaChain?new Map:null,i=new X.Mainstay(a,n,s),f=x._ids._schemaChain?[{schema:x}]:null,c=new lf([],[],{mainstay:i,schemas:f}),d=je.validate(e,x,c,t);r&&x.$_root.untrace();let o=y6.process(d.errors,e,t);return {value:d.value,error:o,mainstay:i}};X.tracer=function(e,x){return e.$_root._tracer?{tracer:e.$_root._tracer._register(e)}:x.debug?(Ue(e.$_root.trace,"Debug mode not supported"),{tracer:e.$_root.trace()._register(e),cleanup:true}):{tracer:X.ignore}};je.validate=function(e,x,t,a,r={}){if(x.$_terms.whens&&(x=x._generate(e,t,a).schema),x._preferences&&(a=X.prefs(x,a)),x._cache&&a.cache){let o=x._cache.get(e);if(t.mainstay.tracer.debug(t,"validate","cached",!!o),o)return o}let n=(o,u,p)=>x.$_createError(o,e,u,p||t,a),s={original:e,prefs:a,schema:x,state:t,error:n,errorsArray:X.errorsArray,warn:(o,u,p)=>t.mainstay.warnings.push(n(o,u,p)),message:(o,u)=>x.$_createError("custom",e,u,t,a,{messages:o})};t.mainstay.tracer.entry(x,t);let i=x._definition;if(i.prepare&&e!==void 0&&a.convert){let o=i.prepare(e,s);if(o){if(t.mainstay.tracer.value(t,"prepare",e,o.value),o.errors)return X.finalize(o.value,[].concat(o.errors),s);e=o.value;}}if(i.coerce&&e!==void 0&&a.convert&&(!i.coerce.from||i.coerce.from.includes(typeof e))){let o=i.coerce.method(e,s);if(o){if(t.mainstay.tracer.value(t,"coerced",e,o.value),o.errors)return X.finalize(o.value,[].concat(o.errors),s);e=o.value;}}let f=x._flags.empty;f&&f.$_match(X.trim(e,x),t.nest(f),N0.defaults)&&(t.mainstay.tracer.value(t,"empty",e,void 0),e=void 0);let c=r.presence||x._flags.presence||(x._flags._endedSwitch?null:a.presence);if(e===void 0){if(c==="forbidden")return X.finalize(e,null,s);if(c==="required")return X.finalize(e,[x.$_createError("any.required",e,null,t,a)],s);if(c==="optional"){if(x._flags.default!==N0.symbols.deepDefault)return X.finalize(e,null,s);t.mainstay.tracer.value(t,"default",e,{}),e={};}}else if(c==="forbidden")return X.finalize(e,[x.$_createError("any.unknown",e,null,t,a)],s);let d=[];if(x._valids){let o=x._valids.get(e,t,a,x._flags.insensitive);if(o)return a.convert&&(t.mainstay.tracer.value(t,"valids",e,o.value),e=o.value),t.mainstay.tracer.filter(x,t,"valid",o),X.finalize(e,null,s);if(x._flags.only){let u=x.$_createError("any.only",e,{valids:x._valids.values({display:true})},t,a);if(a.abortEarly)return X.finalize(e,[u],s);d.push(u);}}if(x._invalids){let o=x._invalids.get(e,t,a,x._flags.insensitive);if(o){t.mainstay.tracer.filter(x,t,"invalid",o);let u=x.$_createError("any.invalid",e,{invalids:x._invalids.values({display:true})},t,a);if(a.abortEarly)return X.finalize(e,[u],s);d.push(u);}}if(i.validate){let o=i.validate(e,s);if(o&&(t.mainstay.tracer.value(t,"base",e,o.value),e=o.value,o.errors)){if(!Array.isArray(o.errors))return d.push(o.errors),X.finalize(e,d,s);if(o.errors.length)return d.push(...o.errors),X.finalize(e,d,s)}}return x._rules.length?X.rules(e,d,s):X.finalize(e,d,s)};X.rules=function(e,x,t){let{schema:a,state:r,prefs:n}=t;for(let s of a._rules){let i=a._definition.rules[s.method];if(i.convert&&n.convert){r.mainstay.tracer.log(a,r,"rule",s.name,"full");continue}let f,c=s.args;if(s._resolve.length){c=Object.assign({},c);for(let o of s._resolve){let u=i.argsByName.get(o),p=c[o].resolve(e,r,n),b=u.normalize?u.normalize(p):p,m=N0.validateArg(b,null,u);if(m){f=a.$_createError("any.ref",p,{arg:o,ref:c[o],reason:m},r,n);break}c[o]=b;}}f=f||i.validate(e,t,c,s);let d=X.rule(f,s);if(d.errors){if(r.mainstay.tracer.log(a,r,"rule",s.name,"error"),s.warn){r.mainstay.warnings.push(...d.errors);continue}if(n.abortEarly)return X.finalize(e,d.errors,t);x.push(...d.errors);}else r.mainstay.tracer.log(a,r,"rule",s.name,"pass"),r.mainstay.tracer.value(r,"rule",e,d.value,s.name),e=d.value;}return X.finalize(e,x,t)};X.rule=function(e,x){return e instanceof y6.Report?(X.error(e,x),{errors:[e],value:null}):Array.isArray(e)&&e[N0.symbols.errors]?(e.forEach(t=>X.error(t,x)),{errors:e,value:null}):{errors:null,value:e}};X.error=function(e,x){return x.message&&e._setTemplate(x.message),e};X.finalize=function(e,x,t){x=x||[];let{schema:a,state:r,prefs:n}=t;if(x.length){let i=X.default("failover",void 0,x,t);i!==void 0&&(r.mainstay.tracer.value(r,"failover",e,i),e=i,x=[]);}if(x.length&&a._flags.error)if(typeof a._flags.error=="function"){x=a._flags.error(x),Array.isArray(x)||(x=[x]);for(let i of x)Ue(i instanceof Error||i instanceof y6.Report,"error() must return an Error object");}else x=[a._flags.error];if(e===void 0){let i=X.default("default",e,x,t);r.mainstay.tracer.value(r,"default",e,i),e=i;}if(a._flags.cast&&e!==void 0){let i=a._definition.cast[a._flags.cast];if(i.from(e)){let f=i.to(e,t);r.mainstay.tracer.value(r,"cast",e,f,a._flags.cast),e=f;}}if(a.$_terms.externals&&n.externals&&n._externals!==false)for(let{method:i}of a.$_terms.externals)r.mainstay.externals.push({method:i,schema:a,state:r,label:y6.label(a._flags,r,n)});let s={value:e,errors:x.length?x:null};return a._flags.result&&(s.value=a._flags.result==="strip"?void 0:t.original,r.mainstay.tracer.value(r,a._flags.result,e,s.value),r.shadow(e,a._flags.result)),a._cache&&n.cache!==false&&!a._refs.length&&a._cache.set(t.original,s),e!==void 0&&!s.errors&&a._flags.artifact!==void 0&&(r.mainstay.artifacts=r.mainstay.artifacts||new Map,r.mainstay.artifacts.has(a._flags.artifact)||r.mainstay.artifacts.set(a._flags.artifact,[]),r.mainstay.artifacts.get(a._flags.artifact).push(r.path)),s};X.prefs=function(e,x){let t=x===N0.defaults;return t&&e._preferences[N0.symbols.prefs]?e._preferences[N0.symbols.prefs]:(x=N0.preferences(x,e._preferences),t&&(e._preferences[N0.symbols.prefs]=x),x)};X.default=function(e,x,t,a){let{schema:r,state:n,prefs:s}=a,i=r._flags[e];if(s.noDefaults||i===void 0)return x;if(n.mainstay.tracer.log(r,n,"rule",e,"full"),!i)return i;if(typeof i=="function"){let f=i.length?[K2(n.ancestors[0]),a]:[];try{return i(...f)}catch(c){t.push(r.$_createError(`any.${e}`,null,{error:c},n,s));return}}return typeof i!="object"?i:i[N0.symbols.literal]?i.literal:N0.isResolvable(i)?i.resolve(x,n,s):K2(i)};X.trim=function(e,x){if(typeof e!="string")return e;let t=x.$_getRule("trim");return !t||!t.args.enabled?e:e.trim()};X.ignore={active:false,debug:ce,entry:ce,filter:ce,log:ce,resolve:ce,value:ce};X.errorsArray=function(){let e=[];return e[N0.symbols.errors]=true,e};});var ea=N((vu,J2)=>{var uf=i0(),Z2=Ge(),xa=g0(),s6={};J2.exports=s6.Values=class{constructor(e,x){this._values=new Set(e),this._refs=new Set(x),this._lowercase=s6.lowercases(e),this._override=false;}get length(){return this._values.size+this._refs.size}add(e,x){if(xa.isResolvable(e)){this._refs.has(e)||(this._refs.add(e),x&&x.register(e));return}this.has(e,null,null,false)||(this._values.add(e),typeof e=="string"&&this._lowercase.set(e.toLowerCase(),e));}static merge(e,x,t){if(e=e||new s6.Values,x){if(x._override)return x.clone();for(let a of [...x._values,...x._refs])e.add(a);}if(t)for(let a of [...t._values,...t._refs])e.remove(a);return e.length?e:null}remove(e){if(xa.isResolvable(e)){this._refs.delete(e);return}this._values.delete(e),typeof e=="string"&&this._lowercase.delete(e.toLowerCase());}has(e,x,t,a){return !!this.get(e,x,t,a)}get(e,x,t,a){if(!this.length)return false;if(this._values.has(e))return {value:e};if(typeof e=="string"&&e&&a){let r=this._lowercase.get(e.toLowerCase());if(r)return {value:r}}if(!this._refs.size&&typeof e!="object")return false;if(typeof e=="object"){for(let r of this._values)if(Z2(r,e))return {value:r}}if(x)for(let r of this._refs){let n=r.resolve(e,x,t,null,{in:true});if(n===void 0)continue;let s=!r.in||typeof n!="object"?[n]:Array.isArray(n)?n:Object.keys(n);for(let i of s)if(typeof i==typeof e){if(a&&e&&typeof e=="string"){if(i.toLowerCase()===e.toLowerCase())return {value:i,ref:r}}else if(Z2(i,e))return {value:i,ref:r}}}return false}override(){this._override=true;}values(e){if(e&&e.display){let x=[];for(let t of [...this._values,...this._refs])t!==void 0&&x.push(t);return x}return Array.from([...this._values,...this._refs])}clone(){let e=new s6.Values(this._values,this._refs);return e._override=this._override,e}concat(e){uf(!e._override,"Cannot concat override set of values");let x=new s6.Values([...this._values,...e._values],[...this._refs,...e._refs]);return x._override=this._override,x}describe(){let e=[];this._override&&e.push({override:true});for(let x of this._values.values())e.push(x&&typeof x=="object"?{value:x}:x);for(let x of this._refs.values())e.push(x.describe());return e}};s6.Values.prototype[xa.symbols.values]=true;s6.Values.prototype.slice=s6.Values.prototype.clone;s6.lowercases=function(e){let x=new Map;if(e)for(let t of e)typeof t=="string"&&x.set(t.toLowerCase(),t);return x};});var sn=N((Au,nn)=>{var M=i0(),Q2=Y0(),xn=Ge(),ta=m7(),bf=Ht(),T0=g0(),aa=M6(),hf=t6(),pf=Vt(),en=Kt(),mf=se(),tn=q2(),an=a6(),rn=Zt(),y7=Y2(),w7=ea(),M0={};M0.Base=class{constructor(e){this.type=e,this.$_root=null,this._definition={},this._reset();}_reset(){this._ids=new tn.Ids,this._preferences=null,this._refs=new an.Manager,this._cache=null,this._valids=null,this._invalids=null,this._flags={},this._rules=[],this._singleRules=new Map,this.$_terms={},this.$_temp={ruleset:null,whens:{}};}describe(){return M(typeof en.describe=="function","Manifest functionality disabled"),en.describe(this)}allow(...e){return T0.verifyFlat(e,"allow"),this._values(e,"_valids")}alter(e){M(e&&typeof e=="object"&&!Array.isArray(e),"Invalid targets argument"),M(!this._inRuleset(),"Cannot set alterations inside a ruleset");let x=this.clone();x.$_terms.alterations=x.$_terms.alterations||[];for(let t in e){let a=e[t];M(typeof a=="function","Alteration adjuster for",t,"must be a function"),x.$_terms.alterations.push({target:t,adjuster:a});}return x.$_temp.ruleset=false,x}artifact(e){return M(e!==void 0,"Artifact cannot be undefined"),M(!this._cache,"Cannot set an artifact with a rule cache"),this.$_setFlag("artifact",e)}cast(e){return M(e===false||typeof e=="string","Invalid to value"),M(e===false||this._definition.cast[e],"Type",this.type,"does not support casting to",e),this.$_setFlag("cast",e===false?void 0:e)}default(e,x){return this._default("default",e,x)}description(e){return M(e&&typeof e=="string","Description must be a non-empty string"),this.$_setFlag("description",e)}empty(e){let x=this.clone();return e!==void 0&&(e=x.$_compile(e,{override:false})),x.$_setFlag("empty",e,{clone:false})}error(e){return M(e,"Missing error"),M(e instanceof Error||typeof e=="function","Must provide a valid Error object or a function"),this.$_setFlag("error",e)}example(e,x={}){return M(e!==void 0,"Missing example"),T0.assertOptions(x,["override"]),this._inner("examples",e,{single:true,override:x.override})}external(e,x){return typeof e=="object"&&(M(!x,"Cannot combine options with description"),x=e.description,e=e.method),M(typeof e=="function","Method must be a function"),M(x===void 0||x&&typeof x=="string","Description must be a non-empty string"),this._inner("externals",{method:e,description:x},{single:true})}failover(e,x){return this._default("failover",e,x)}forbidden(){return this.presence("forbidden")}id(e){return e?(M(typeof e=="string","id must be a non-empty string"),M(/^[^\.]+$/.test(e),"id cannot contain period character"),this.$_setFlag("id",e)):this.$_setFlag("id",void 0)}invalid(...e){return this._values(e,"_invalids")}label(e){return M(e&&typeof e=="string","Label name must be a non-empty string"),this.$_setFlag("label",e)}meta(e){return M(e!==void 0,"Meta cannot be undefined"),this._inner("metas",e,{single:true})}note(...e){M(e.length,"Missing notes");for(let x of e)M(x&&typeof x=="string","Notes must be non-empty strings");return this._inner("notes",e)}only(e=true){return M(typeof e=="boolean","Invalid mode:",e),this.$_setFlag("only",e)}optional(){return this.presence("optional")}prefs(e){M(e,"Missing preferences"),M(e.context===void 0,"Cannot override context"),M(e.externals===void 0,"Cannot override externals"),M(e.warnings===void 0,"Cannot override warnings"),M(e.debug===void 0,"Cannot override debug"),T0.checkPreferences(e);let x=this.clone();return x._preferences=T0.preferences(x._preferences,e),x}presence(e){return M(["optional","required","forbidden"].includes(e),"Unknown presence mode",e),this.$_setFlag("presence",e)}raw(e=true){return this.$_setFlag("result",e?"raw":void 0)}result(e){return M(["raw","strip"].includes(e),"Unknown result mode",e),this.$_setFlag("result",e)}required(){return this.presence("required")}strict(e){let x=this.clone(),t=e===void 0?false:!e;return x._preferences=T0.preferences(x._preferences,{convert:t}),x}strip(e=true){return this.$_setFlag("result",e?"strip":void 0)}tag(...e){M(e.length,"Missing tags");for(let x of e)M(x&&typeof x=="string","Tags must be non-empty strings");return this._inner("tags",e)}unit(e){return M(e&&typeof e=="string","Unit name must be a non-empty string"),this.$_setFlag("unit",e)}valid(...e){T0.verifyFlat(e,"valid");let x=this.allow(...e);return x.$_setFlag("only",!!x._valids,{clone:false}),x}when(e,x){let t=this.clone();t.$_terms.whens||(t.$_terms.whens=[]);let a=aa.when(t,e,x);if(!["any","link"].includes(t.type)){let r=a.is?[a]:a.switch;for(let n of r)M(!n.then||n.then.type==="any"||n.then.type===t.type,"Cannot combine",t.type,"with",n.then&&n.then.type),M(!n.otherwise||n.otherwise.type==="any"||n.otherwise.type===t.type,"Cannot combine",t.type,"with",n.otherwise&&n.otherwise.type);}return t.$_terms.whens.push(a),t.$_mutateRebuild()}cache(e){M(!this._inRuleset(),"Cannot set caching inside a ruleset"),M(!this._cache,"Cannot override schema cache"),M(this._flags.artifact===void 0,"Cannot cache a rule with an artifact");let x=this.clone();return x._cache=e||bf.provider.provision(),x.$_temp.ruleset=false,x}clone(){let e=Object.create(Object.getPrototypeOf(this));return this._assign(e)}concat(e){M(T0.isSchema(e),"Invalid schema object"),M(this.type==="any"||e.type==="any"||e.type===this.type,"Cannot merge type",this.type,"with another type:",e.type),M(!this._inRuleset(),"Cannot concatenate onto a schema with open ruleset"),M(!e._inRuleset(),"Cannot concatenate a schema with open ruleset");let x=this.clone();if(this.type==="any"&&e.type!=="any"){let t=e.clone();for(let a of Object.keys(x))a!=="type"&&(t[a]=x[a]);x=t;}x._ids.concat(e._ids),x._refs.register(e,an.toSibling),x._preferences=x._preferences?T0.preferences(x._preferences,e._preferences):e._preferences,x._valids=w7.merge(x._valids,e._valids,e._invalids),x._invalids=w7.merge(x._invalids,e._invalids,e._valids);for(let t of e._singleRules.keys())x._singleRules.has(t)&&(x._rules=x._rules.filter(a=>a.keep||a.name!==t),x._singleRules.delete(t));for(let t of e._rules)e._definition.rules[t.method].multi||x._singleRules.set(t.name,t),x._rules.push(t);if(x._flags.empty&&e._flags.empty){x._flags.empty=x._flags.empty.concat(e._flags.empty);let t=Object.assign({},e._flags);delete t.empty,ta(x._flags,t);}else if(e._flags.empty){x._flags.empty=e._flags.empty;let t=Object.assign({},e._flags);delete t.empty,ta(x._flags,t);}else ta(x._flags,e._flags);for(let t in e.$_terms){let a=e.$_terms[t];if(!a){x.$_terms[t]||(x.$_terms[t]=a);continue}if(!x.$_terms[t]){x.$_terms[t]=a.slice();continue}x.$_terms[t]=x.$_terms[t].concat(a);}return this.$_root._tracer&&this.$_root._tracer._combine(x,[this,e]),x.$_mutateRebuild()}extend(e){return M(!e.base,"Cannot extend type with another base"),pf.type(this,e)}extract(e){return e=Array.isArray(e)?e:e.split("."),this._ids.reach(e)}fork(e,x){M(!this._inRuleset(),"Cannot fork inside a ruleset");let t=this;for(let a of [].concat(e))a=Array.isArray(a)?a:a.split("."),t=t._ids.fork(a,x,t);return t.$_temp.ruleset=false,t}rule(e){let x=this._definition;T0.assertOptions(e,Object.keys(x.modifiers)),M(this.$_temp.ruleset!==false,"Cannot apply rules to empty ruleset or the last rule added does not support rule properties");let t=this.$_temp.ruleset===null?this._rules.length-1:this.$_temp.ruleset;M(t>=0&&t<this._rules.length,"Cannot apply rules to empty ruleset");let a=this.clone();for(let r=t;r<a._rules.length;++r){let n=a._rules[r],s=Q2(n);for(let i in e)x.modifiers[i](s,e[i]),M(s.name===n.name,"Cannot change rule name");a._rules[r]=s,a._singleRules.get(s.name)===n&&a._singleRules.set(s.name,s);}return a.$_temp.ruleset=false,a.$_mutateRebuild()}get ruleset(){M(!this._inRuleset(),"Cannot start a new ruleset without closing the previous one");let e=this.clone();return e.$_temp.ruleset=e._rules.length,e}get $(){return this.ruleset}tailor(e){e=[].concat(e),M(!this._inRuleset(),"Cannot tailor inside a ruleset");let x=this;if(this.$_terms.alterations)for(let{target:t,adjuster:a}of this.$_terms.alterations)e.includes(t)&&(x=a(x),M(T0.isSchema(x),"Alteration adjuster for",t,"failed to return a schema object"));return x=x.$_modify({each:t=>t.tailor(e),ref:false}),x.$_temp.ruleset=false,x.$_mutateRebuild()}tracer(){return rn.location?rn.location(this):this}validate(e,x){return y7.entry(e,this,x)}validateAsync(e,x){return y7.entryAsync(e,this,x)}$_addRule(e){typeof e=="string"&&(e={name:e}),M(e&&typeof e=="object","Invalid options"),M(e.name&&typeof e.name=="string","Invalid rule name");for(let n in e)M(n[0]!=="_","Cannot set private rule properties");let x=Object.assign({},e);x._resolve=[],x.method=x.method||x.name;let t=this._definition.rules[x.method],a=x.args;M(t,"Unknown rule",x.method);let r=this.clone();if(a){M(Object.keys(a).length===1||Object.keys(a).length===this._definition.rules[x.name].args.length,"Invalid rule definition for",this.type,x.name);for(let n in a){let s=a[n];if(t.argsByName){let i=t.argsByName.get(n);if(i.ref&&T0.isResolvable(s))x._resolve.push(n),r.$_mutateRegister(s);else if(i.normalize&&(s=i.normalize(s),a[n]=s),i.assert){let f=T0.validateArg(s,n,i);M(!f,f,"or reference");}}if(s===void 0){delete a[n];continue}a[n]=s;}}return t.multi||(r._ruleRemove(x.name,{clone:false}),r._singleRules.set(x.name,x)),r.$_temp.ruleset===false&&(r.$_temp.ruleset=null),t.priority?r._rules.unshift(x):r._rules.push(x),r}$_compile(e,x){return aa.schema(this.$_root,e,x)}$_createError(e,x,t,a,r,n={}){let s=n.flags!==false?this._flags:{},i=n.messages?mf.merge(this._definition.messages,n.messages):this._definition.messages;return new hf.Report(e,x,t,s,i,a,r)}$_getFlag(e){return this._flags[e]}$_getRule(e){return this._singleRules.get(e)}$_mapLabels(e){return e=Array.isArray(e)?e:e.split("."),this._ids.labels(e)}$_match(e,x,t,a){t=Object.assign({},t),t.abortEarly=true,t._externals=false,x.snapshot();let r=!y7.validate(e,this,x,t,a).errors;return x.restore(),r}$_modify(e){return T0.assertOptions(e,["each","once","ref","schema"]),tn.schema(this,e)||this}$_mutateRebuild(){M(!this._inRuleset(),"Cannot add this rule inside a ruleset"),this._refs.reset(),this._ids.reset();let e=(x,{source:t,name:a,path:r,key:n})=>{let s=this._definition[t][a]&&this._definition[t][a].register;s!==false&&this.$_mutateRegister(x,{family:s,key:n});};return this.$_modify({each:e}),this._definition.rebuild&&this._definition.rebuild(this),this.$_temp.ruleset=false,this}$_mutateRegister(e,{family:x,key:t}={}){this._refs.register(e,x),this._ids.register(e,{key:t});}$_property(e){return this._definition.properties[e]}$_reach(e){return this._ids.reach(e)}$_rootReferences(){return this._refs.roots()}$_setFlag(e,x,t={}){M(e[0]==="_"||!this._inRuleset(),"Cannot set flag inside a ruleset");let a=this._definition.flags[e]||{};if(xn(x,a.default)&&(x=void 0),xn(x,this._flags[e]))return this;let r=t.clone!==false?this.clone():this;return x!==void 0?(r._flags[e]=x,r.$_mutateRegister(x)):delete r._flags[e],e[0]!=="_"&&(r.$_temp.ruleset=false),r}$_parent(e,...x){return this[e][T0.symbols.parent].call(this,...x)}$_validate(e,x,t){return y7.validate(e,this,x,t)}_assign(e){e.type=this.type,e.$_root=this.$_root,e.$_temp=Object.assign({},this.$_temp),e.$_temp.whens={},e._ids=this._ids.clone(),e._preferences=this._preferences,e._valids=this._valids&&this._valids.clone(),e._invalids=this._invalids&&this._invalids.clone(),e._rules=this._rules.slice(),e._singleRules=Q2(this._singleRules,{shallow:true}),e._refs=this._refs.clone(),e._flags=Object.assign({},this._flags),e._cache=null,e.$_terms={};for(let x in this.$_terms)e.$_terms[x]=this.$_terms[x]?this.$_terms[x].slice():null;e.$_super={};for(let x in this.$_super)e.$_super[x]=this._super[x].bind(e);return e}_bare(){let e=this.clone();e._reset();let x=e._definition.terms;for(let t in x){let a=x[t];e.$_terms[t]=a.init;}return e.$_mutateRebuild()}_default(e,x,t={}){return T0.assertOptions(t,"literal"),M(x!==void 0,"Missing",e,"value"),M(typeof x=="function"||!t.literal,"Only function value supports literal option"),typeof x=="function"&&t.literal&&(x={[T0.symbols.literal]:true,literal:x}),this.$_setFlag(e,x)}_generate(e,x,t){if(!this.$_terms.whens)return {schema:this};let a=[],r=[];for(let i=0;i<this.$_terms.whens.length;++i){let f=this.$_terms.whens[i];if(f.concat){a.push(f.concat),r.push(`${i}.concat`);continue}let c=f.ref?f.ref.resolve(e,x,t):e,d=f.is?[f]:f.switch,o=r.length;for(let u=0;u<d.length;++u){let{is:p,then:b,otherwise:m}=d[u],v=`${i}${f.switch?"."+u:""}`;if(p.$_match(c,x.nest(p,`${v}.is`),t)){if(b){let $=x.localize([...x.path,`${v}.then`],x.ancestors,x.schemas),{schema:y,id:h}=b._generate(e,$,t);a.push(y),r.push(`${v}.then${h?`(${h})`:""}`);break}}else if(m){let $=x.localize([...x.path,`${v}.otherwise`],x.ancestors,x.schemas),{schema:y,id:h}=m._generate(e,$,t);a.push(y),r.push(`${v}.otherwise${h?`(${h})`:""}`);break}}if(f.break&&r.length>o)break}let n=r.join(", ");if(x.mainstay.tracer.debug(x,"rule","when",n),!n)return {schema:this};if(!x.mainstay.tracer.active&&this.$_temp.whens[n])return {schema:this.$_temp.whens[n],id:n};let s=this;this._definition.generate&&(s=this._definition.generate(this,e,x,t));for(let i of a)s=s.concat(i);return this.$_root._tracer&&this.$_root._tracer._combine(s,[this,...a]),this.$_temp.whens[n]=s,{schema:s,id:n}}_inner(e,x,t={}){M(!this._inRuleset(),`Cannot set ${e} inside a ruleset`);let a=this.clone();return (!a.$_terms[e]||t.override)&&(a.$_terms[e]=[]),t.single?a.$_terms[e].push(x):a.$_terms[e].push(...x),a.$_temp.ruleset=false,a}_inRuleset(){return this.$_temp.ruleset!==null&&this.$_temp.ruleset!==false}_ruleRemove(e,x={}){if(!this._singleRules.has(e))return this;let t=x.clone!==false?this.clone():this;t._singleRules.delete(e);let a=[];for(let r=0;r<t._rules.length;++r){let n=t._rules[r];if(n.name===e&&!n.keep){t._inRuleset()&&r<t.$_temp.ruleset&&--t.$_temp.ruleset;continue}a.push(n);}return t._rules=a,t}_values(e,x){T0.verifyFlat(e,x.slice(1,-1));let t=this.clone(),a=e[0]===T0.symbols.override;if(a&&(e=e.slice(1)),!t[x]&&e.length?t[x]=new w7:a&&(t[x]=e.length?new w7:null,t.$_mutateRebuild()),!t[x])return t;a&&t[x].override();for(let r of e){M(r!==void 0,"Cannot call allow/valid/invalid with undefined"),M(r!==T0.symbols.override,"Override must be the first value");let n=x==="_invalids"?"_valids":"_invalids";t[n]&&(t[n].remove(r),t[n].length||(M(x==="_valids"||!t._flags.only,"Setting invalid value",r,"leaves schema rejecting all values due to previous valid rule"),t[n]=null)),t[x].add(r,t._refs);}return t}};M0.Base.prototype[T0.symbols.any]={version:T0.version,compile:aa.compile,root:"$_root"};M0.Base.prototype.isImmutable=true;M0.Base.prototype.deny=M0.Base.prototype.invalid;M0.Base.prototype.disallow=M0.Base.prototype.invalid;M0.Base.prototype.equal=M0.Base.prototype.valid;M0.Base.prototype.exist=M0.Base.prototype.required;M0.Base.prototype.not=M0.Base.prototype.invalid;M0.Base.prototype.options=M0.Base.prototype.prefs;M0.Base.prototype.preferences=M0.Base.prototype.prefs;nn.exports=new M0.Base;});var px=N((Su,fn)=>{var v7=i0(),gf=sn(),yf=g0(),wf=se();fn.exports=gf.extend({type:"any",flags:{only:{default:false}},terms:{alterations:{init:null},examples:{init:null},externals:{init:null},metas:{init:[]},notes:{init:[]},shared:{init:null},tags:{init:[]},whens:{init:null}},rules:{custom:{method(e,x){return v7(typeof e=="function","Method must be a function"),v7(x===void 0||x&&typeof x=="string","Description must be a non-empty string"),this.$_addRule({name:"custom",args:{method:e,description:x}})},validate(e,x,{method:t}){try{return t(e,x)}catch(a){return x.error("any.custom",{error:a})}},args:["method","description"],multi:true},messages:{method(e){return this.prefs({messages:e})}},shared:{method(e){v7(yf.isSchema(e)&&e._flags.id,"Schema must be a schema with an id");let x=this.clone();return x.$_terms.shared=x.$_terms.shared||[],x.$_terms.shared.push(e),x.$_mutateRegister(e),x}},warning:{method(e,x){return v7(e&&typeof e=="string","Invalid warning code"),this.$_addRule({name:"warning",args:{code:e,local:x},warn:true})},validate(e,x,{code:t,local:a}){return x.error(t,a)},args:["code","local"],multi:true}},modifiers:{keep(e,x=true){e.keep=x;},message(e,x){e.message=wf.compile(x);},warn(e,x=true){e.warn=x;}},manifest:{build(e,x){for(let t in x){let a=x[t];if(["examples","externals","metas","notes","tags"].includes(t)){for(let r of a)e=e[t.slice(0,-1)](r);continue}if(t==="alterations"){let r={};for(let{target:n,adjuster:s}of a)r[n]=s;e=e.alter(r);continue}if(t==="whens"){for(let r of a){let{ref:n,is:s,not:i,then:f,otherwise:c,concat:d}=r;d?e=e.concat(d):n?e=e.when(n,{is:s,not:i,then:f,otherwise:c,switch:r.switch,break:r.break}):e=e.when(s,{then:f,otherwise:c,break:r.break});}continue}if(t==="shared")for(let r of a)e=e.shared(r);}return e}},messages:{"any.custom":"{{#label}} failed custom validation because {{#error.message}}","any.default":"{{#label}} threw an error when running default method","any.failover":"{{#label}} threw an error when running failover method","any.invalid":"{{#label}} contains an invalid value","any.only":'{{#label}} must be {if(#valids.length == 1, "", "one of ")}{{#valids}}',"any.ref":"{{#label}} {{#arg}} references {{:#ref}} which {{#reason}}","any.required":"{{#label}} is required","any.unknown":"{{#label}} is not allowed"}});});var on=N(($u,dn)=>{var U6=i0(),vf=m7(),_f=px(),cn=g0(),Af=M6(),_7=t6(),Cf=a6(),de={};dn.exports=_f.extend({type:"alternatives",flags:{match:{default:"any"}},terms:{matches:{init:[],register:Cf.toSibling}},args(e,...x){return x.length===1&&Array.isArray(x[0])?e.try(...x[0]):e.try(...x)},validate(e,x){let{schema:t,error:a,state:r,prefs:n}=x;if(t._flags.match){let i=[],f=[];for(let d=0;d<t.$_terms.matches.length;++d){let o=t.$_terms.matches[d],u=r.nest(o.schema,`match.${d}`);u.snapshot();let p=o.schema.$_validate(e,u,n);p.errors?(f.push(p.errors),u.restore()):(i.push(p.value),u.commit());}if(i.length===0){let d={details:f.map(o=>_7.details(o,{override:false}))};return {errors:a("alternatives.any",d)}}if(t._flags.match==="one")return i.length===1?{value:i[0]}:{errors:a("alternatives.one")};if(i.length!==t.$_terms.matches.length){let d={details:f.map(o=>_7.details(o,{override:false}))};return {errors:a("alternatives.all",d)}}let c=d=>d.$_terms.matches.some(o=>o.schema.type==="object"||o.schema.type==="alternatives"&&c(o.schema));return c(t)?{value:i.reduce((d,o)=>vf(d,o,{mergeArrays:false}))}:{value:i[i.length-1]}}let s=[];for(let i=0;i<t.$_terms.matches.length;++i){let f=t.$_terms.matches[i];if(f.schema){let o=r.nest(f.schema,`match.${i}`);o.snapshot();let u=f.schema.$_validate(e,o,n);if(!u.errors)return o.commit(),u;o.restore(),s.push({schema:f.schema,reports:u.errors});continue}let c=f.ref?f.ref.resolve(e,r,n):e,d=f.is?[f]:f.switch;for(let o=0;o<d.length;++o){let u=d[o],{is:p,then:b,otherwise:m}=u,v=`match.${i}${f.switch?"."+o:""}`;if(p.$_match(c,r.nest(p,`${v}.is`),n)){if(b)return b.$_validate(e,r.nest(b,`${v}.then`),n)}else if(m)return m.$_validate(e,r.nest(m,`${v}.otherwise`),n)}}return de.errors(s,x)},rules:{conditional:{method(e,x){U6(!this._flags._endedSwitch,"Unreachable condition"),U6(!this._flags.match,"Cannot combine match mode",this._flags.match,"with conditional rule"),U6(x.break===void 0,"Cannot use break option with alternatives conditional");let t=this.clone(),a=Af.when(t,e,x),r=a.is?[a]:a.switch;for(let n of r)if(n.then&&n.otherwise){t.$_setFlag("_endedSwitch",true,{clone:false});break}return t.$_terms.matches.push(a),t.$_mutateRebuild()}},match:{method(e){if(U6(["any","one","all"].includes(e),"Invalid alternatives match mode",e),e!=="any")for(let x of this.$_terms.matches)U6(x.schema,"Cannot combine match mode",e,"with conditional rules");return this.$_setFlag("match",e)}},try:{method(...e){U6(e.length,"Missing alternative schemas"),cn.verifyFlat(e,"try"),U6(!this._flags._endedSwitch,"Unreachable condition");let x=this.clone();for(let t of e)x.$_terms.matches.push({schema:x.$_compile(t)});return x.$_mutateRebuild()}}},overrides:{label(e){let x=this.$_parent("label",e),t=(a,r)=>r.path[0]!=="is"&&typeof a._flags.label!="string"?a.label(e):void 0;return x.$_modify({each:t,ref:false})}},rebuild(e){let x=t=>{cn.isSchema(t)&&t.type==="array"&&e.$_setFlag("_arrayItems",true,{clone:false});};e.$_modify({each:x});},manifest:{build(e,x){if(x.matches)for(let t of x.matches){let{schema:a,ref:r,is:n,not:s,then:i,otherwise:f}=t;a?e=e.try(a):r?e=e.conditional(r,{is:n,then:i,not:s,otherwise:f,switch:t.switch}):e=e.conditional(n,{then:i,otherwise:f});}return e}},messages:{"alternatives.all":"{{#label}} does not match all of the required types","alternatives.any":"{{#label}} does not match any of the allowed types","alternatives.match":"{{#label}} does not match any of the allowed types","alternatives.one":"{{#label}} matches more than one allowed type","alternatives.types":"{{#label}} must be one of {{#types}}"}});de.errors=function(e,{error:x,state:t}){if(!e.length)return {errors:x("alternatives.any")};if(e.length===1)return {errors:e[0].reports};let a=new Set,r=[];for(let{reports:n,schema:s}of e){if(n.length>1)return de.unmatched(e,x);let i=n[0];if(!(i instanceof _7.Report))return de.unmatched(e,x);if(i.state.path.length!==t.path.length){r.push({type:s.type,report:i});continue}if(i.code==="any.only"){for(let d of i.local.valids)a.add(d);continue}let[f,c]=i.code.split(".");c!=="base"?r.push({type:s.type,report:i}):i.code==="object.base"?a.add(i.local.type):a.add(f);}return r.length?r.length===1?{errors:r[0].report}:de.unmatched(e,x):{errors:x("alternatives.types",{types:[...a]})}};de.unmatched=function(e,x){let t=[];for(let a of e)t.push(...a.reports);return {errors:x("alternatives.match",_7.details(t,{override:false}))}};});var un=N((Iu,ln)=>{var qe=i0(),Sf=Ge(),$f=N6(),If=px(),mx=g0(),Ef=M6(),_0={};ln.exports=If.extend({type:"array",flags:{single:{default:false},sparse:{default:false}},terms:{items:{init:[],manifest:"schema"},ordered:{init:[],manifest:"schema"},_exclusions:{init:[]},_inclusions:{init:[]},_requireds:{init:[]}},coerce:{from:"object",method(e,{schema:x,state:t,prefs:a}){if(!Array.isArray(e))return;let r=x.$_getRule("sort");if(r)return _0.sort(x,e,r.args.options,t,a)}},validate(e,{schema:x,error:t}){if(!Array.isArray(e)){if(x._flags.single){let a=[e];return a[mx.symbols.arraySingle]=true,{value:a}}return {errors:t("array.base")}}if(!(!x.$_getRule("items")&&!x.$_terms.externals))return {value:e.slice()}},rules:{has:{method(e){e=this.$_compile(e,{appendPath:true});let x=this.$_addRule({name:"has",args:{schema:e}});return x.$_mutateRegister(e),x},validate(e,{state:x,prefs:t,error:a},{schema:r}){let n=[e,...x.ancestors];for(let i=0;i<e.length;++i){let f=x.localize([...x.path,i],n,r);if(r.$_match(e[i],f,t))return e}let s=r._flags.label;return s?a("array.hasKnown",{patternLabel:s}):a("array.hasUnknown",null)},multi:true},items:{method(...e){mx.verifyFlat(e,"items");let x=this.$_addRule("items");for(let t=0;t<e.length;++t){let a=mx.tryWithPath(()=>this.$_compile(e[t]),t,{append:true});x.$_terms.items.push(a);}return x.$_mutateRebuild()},validate(e,{schema:x,error:t,state:a,prefs:r,errorsArray:n}){let s=x.$_terms._requireds.slice(),i=x.$_terms.ordered.slice(),f=[...x.$_terms._inclusions,...s],c=!e[mx.symbols.arraySingle];delete e[mx.symbols.arraySingle];let d=n(),o=e.length;for(let u=0;u<o;++u){let p=e[u],b=false,m=false,v=c?u:new Number(u),$=[...a.path,v];if(!x._flags.sparse&&p===void 0){if(d.push(t("array.sparse",{key:v,path:$,pos:u,value:void 0},a.localize($))),r.abortEarly)return d;i.shift();continue}let y=[e,...a.ancestors];for(let T of x.$_terms._exclusions)if(T.$_match(p,a.localize($,y,T),r,{presence:"ignore"})){if(d.push(t("array.excludes",{pos:u,value:p},a.localize($))),r.abortEarly)return d;b=true,i.shift();break}if(b)continue;if(x.$_terms.ordered.length){if(i.length){let T=i.shift(),D=T.$_validate(p,a.localize($,y,T),r);if(D.errors){if(d.push(...D.errors),r.abortEarly)return d}else if(T._flags.result==="strip")_0.fastSplice(e,u),--u,--o;else if(!x._flags.sparse&&D.value===void 0){if(d.push(t("array.sparse",{key:v,path:$,pos:u,value:void 0},a.localize($))),r.abortEarly)return d;continue}else e[u]=D.value;continue}else if(!x.$_terms.items.length){if(d.push(t("array.orderedLength",{pos:u,limit:x.$_terms.ordered.length})),r.abortEarly)return d;break}}let h=[],S=s.length;for(let T=0;T<S;++T){let D=a.localize($,y,s[T]);D.snapshot();let R=s[T].$_validate(p,D,r);if(h[T]=R,!R.errors){if(D.commit(),e[u]=R.value,m=true,_0.fastSplice(s,T),--T,--S,!x._flags.sparse&&R.value===void 0&&(d.push(t("array.sparse",{key:v,path:$,pos:u,value:void 0},a.localize($))),r.abortEarly))return d;break}D.restore();}if(m)continue;let E=r.stripUnknown&&!!r.stripUnknown.arrays||false;S=f.length;for(let T of f){let D,R=s.indexOf(T);if(R!==-1)D=h[R];else {let G=a.localize($,y,T);if(G.snapshot(),D=T.$_validate(p,G,r),!D.errors){G.commit(),T._flags.result==="strip"?(_0.fastSplice(e,u),--u,--o):!x._flags.sparse&&D.value===void 0?(d.push(t("array.sparse",{key:v,path:$,pos:u,value:void 0},a.localize($))),b=true):e[u]=D.value,m=true;break}G.restore();}if(S===1){if(E){_0.fastSplice(e,u),--u,--o,m=true;break}if(d.push(...D.errors),r.abortEarly)return d;b=true;break}}if(!b&&(x.$_terms._inclusions.length||x.$_terms._requireds.length)&&!m){if(E){_0.fastSplice(e,u),--u,--o;continue}if(d.push(t("array.includes",{pos:u,value:p},a.localize($))),r.abortEarly)return d}}return s.length&&_0.fillMissedErrors(x,d,s,e,a,r),i.length&&(_0.fillOrderedErrors(x,d,i,e,a,r),d.length||_0.fillDefault(i,e,a,r)),d.length?d:e},priority:true,manifest:false},length:{method(e){return this.$_addRule({name:"length",args:{limit:e},operator:"="})},validate(e,x,{limit:t},{name:a,operator:r,args:n}){return mx.compare(e.length,t,r)?e:x.error("array."+a,{limit:n.limit,value:e})},args:[{name:"limit",ref:true,assert:mx.limit,message:"must be a positive integer"}]},max:{method(e){return this.$_addRule({name:"max",method:"length",args:{limit:e},operator:"<="})}},min:{method(e){return this.$_addRule({name:"min",method:"length",args:{limit:e},operator:">="})}},ordered:{method(...e){mx.verifyFlat(e,"ordered");let x=this.$_addRule("items");for(let t=0;t<e.length;++t){let a=mx.tryWithPath(()=>this.$_compile(e[t]),t,{append:true});_0.validateSingle(a,x),x.$_mutateRegister(a),x.$_terms.ordered.push(a);}return x.$_mutateRebuild()}},single:{method(e){let x=e===void 0?true:!!e;return qe(!x||!this._flags._arrayItems,"Cannot specify single rule when array has array items"),this.$_setFlag("single",x)}},sort:{method(e={}){mx.assertOptions(e,["by","order"]);let x={order:e.order||"ascending"};return e.by&&(x.by=Ef.ref(e.by,{ancestor:0}),qe(!x.by.ancestor,"Cannot sort by ancestor")),this.$_addRule({name:"sort",args:{options:x}})},validate(e,{error:x,state:t,prefs:a,schema:r},{options:n}){let{value:s,errors:i}=_0.sort(r,e,n,t,a);if(i)return i;for(let f=0;f<e.length;++f)if(e[f]!==s[f])return x("array.sort",{order:n.order,by:n.by?n.by.key:"value"});return e},convert:true},sparse:{method(e){let x=e===void 0?true:!!e;return this._flags.sparse===x?this:(x?this.clone():this.$_addRule("items")).$_setFlag("sparse",x,{clone:false})}},unique:{method(e,x={}){qe(!e||typeof e=="function"||typeof e=="string","comparator must be a function or a string"),mx.assertOptions(x,["ignoreUndefined","separator"]);let t={name:"unique",args:{options:x,comparator:e}};if(e)if(typeof e=="string"){let a=mx.default(x.separator,".");t.path=a?e.split(a):[e];}else t.comparator=e;return this.$_addRule(t)},validate(e,{state:x,error:t,schema:a},{comparator:r,options:n},{comparator:s,path:i}){let f={string:Object.create(null),number:Object.create(null),undefined:Object.create(null),boolean:Object.create(null),bigint:Object.create(null),object:new Map,function:new Map,custom:new Map},c=s||Sf,d=n.ignoreUndefined;for(let o=0;o<e.length;++o){let u=i?$f(e[o],i):e[o],p=s?f.custom:f[typeof u];if(qe(p,"Failed to find unique map container for type",typeof u),p instanceof Map){let b=p.entries(),m;for(;!(m=b.next()).done;)if(c(m.value[0],u)){let v=x.localize([...x.path,o],[e,...x.ancestors]),$={pos:o,value:e[o],dupePos:m.value[1],dupeValue:e[m.value[1]]};return i&&($.path=r),t("array.unique",$,v)}p.set(u,o);}else {if((!d||u!==void 0)&&p[u]!==void 0){let b={pos:o,value:e[o],dupePos:p[u],dupeValue:e[p[u]]};i&&(b.path=r);let m=x.localize([...x.path,o],[e,...x.ancestors]);return t("array.unique",b,m)}p[u]=o;}}return e},args:["comparator","options"],multi:true}},cast:{set:{from:Array.isArray,to(e,x){return new Set(e)}}},rebuild(e){e.$_terms._inclusions=[],e.$_terms._exclusions=[],e.$_terms._requireds=[];for(let x of e.$_terms.items)_0.validateSingle(x,e),x._flags.presence==="required"?e.$_terms._requireds.push(x):x._flags.presence==="forbidden"?e.$_terms._exclusions.push(x):e.$_terms._inclusions.push(x);for(let x of e.$_terms.ordered)_0.validateSingle(x,e);},manifest:{build(e,x){return x.items&&(e=e.items(...x.items)),x.ordered&&(e=e.ordered(...x.ordered)),e}},messages:{"array.base":"{{#label}} must be an array","array.excludes":"{{#label}} contains an excluded value","array.hasKnown":"{{#label}} does not contain at least one required match for type {:#patternLabel}","array.hasUnknown":"{{#label}} does not contain at least one required match","array.includes":"{{#label}} does not match any of the allowed types","array.includesRequiredBoth":"{{#label}} does not contain {{#knownMisses}} and {{#unknownMisses}} other required value(s)","array.includesRequiredKnowns":"{{#label}} does not contain {{#knownMisses}}","array.includesRequiredUnknowns":"{{#label}} does not contain {{#unknownMisses}} required value(s)","array.length":"{{#label}} must contain {{#limit}} items","array.max":"{{#label}} must contain less than or equal to {{#limit}} items","array.min":"{{#label}} must contain at least {{#limit}} items","array.orderedLength":"{{#label}} must contain at most {{#limit}} items","array.sort":"{{#label}} must be sorted in {#order} order by {{#by}}","array.sort.mismatching":"{{#label}} cannot be sorted due to mismatching types","array.sort.unsupported":"{{#label}} cannot be sorted due to unsupported type {#type}","array.sparse":"{{#label}} must not be a sparse array item","array.unique":"{{#label}} contains a duplicate value"}});_0.fillMissedErrors=function(e,x,t,a,r,n){let s=[],i=0;for(let f of t){let c=f._flags.label;c?s.push(c):++i;}s.length?i?x.push(e.$_createError("array.includesRequiredBoth",a,{knownMisses:s,unknownMisses:i},r,n)):x.push(e.$_createError("array.includesRequiredKnowns",a,{knownMisses:s},r,n)):x.push(e.$_createError("array.includesRequiredUnknowns",a,{unknownMisses:i},r,n));};_0.fillOrderedErrors=function(e,x,t,a,r,n){let s=[];for(let i of t)i._flags.presence==="required"&&s.push(i);s.length&&_0.fillMissedErrors(e,x,s,a,r,n);};_0.fillDefault=function(e,x,t,a){let r=[],n=true;for(let s=e.length-1;s>=0;--s){let i=e[s],f=[x,...t.ancestors],c=i.$_validate(void 0,t.localize(t.path,f,i),a).value;if(n){if(c===void 0)continue;n=false;}r.unshift(c);}r.length&&x.push(...r);};_0.fastSplice=function(e,x){let t=x;for(;t<e.length;)e[t++]=e[t];--e.length;};_0.validateSingle=function(e,x){(e.type==="array"||e._flags._arrayItems)&&(qe(!x._flags.single,"Cannot specify array item with single rule enabled"),x.$_setFlag("_arrayItems",true,{clone:false}));};_0.sort=function(e,x,t,a,r){let n=t.order==="ascending"?1:-1,s=-1*n,i=n,f=(c,d)=>{let o=_0.compare(c,d,s,i);if(o!==null||(t.by&&(c=t.by.resolve(c,a,r),d=t.by.resolve(d,a,r)),o=_0.compare(c,d,s,i),o!==null))return o;let u=typeof c;if(u!==typeof d)throw e.$_createError("array.sort.mismatching",x,null,a,r);if(u!=="number"&&u!=="string")throw e.$_createError("array.sort.unsupported",x,{type:u},a,r);return u==="number"?(c-d)*n:c<d?s:i};try{return {value:x.slice().sort(f)}}catch(c){return {errors:c}}};_0.compare=function(e,x,t,a){return e===x?0:e===void 0?1:x===void 0?-1:e===null?a:x===null?t:null};});var gn=N((Eu,mn)=>{var bn=i0(),Of=px(),hn=g0(),pn=ea(),ra={};ra.isBool=function(e){return typeof e=="boolean"};mn.exports=Of.extend({type:"boolean",flags:{sensitive:{default:false}},terms:{falsy:{init:null,manifest:"values"},truthy:{init:null,manifest:"values"}},coerce(e,{schema:x}){if(typeof e!="boolean"){if(typeof e=="string"){let t=x._flags.sensitive?e:e.toLowerCase();e=t==="true"?true:t==="false"?false:e;}return typeof e!="boolean"&&(e=x.$_terms.truthy&&x.$_terms.truthy.has(e,null,null,!x._flags.sensitive)||(x.$_terms.falsy&&x.$_terms.falsy.has(e,null,null,!x._flags.sensitive)?false:e)),{value:e}}},validate(e,{error:x}){if(typeof e!="boolean")return {value:e,errors:x("boolean.base")}},rules:{truthy:{method(...e){hn.verifyFlat(e,"truthy");let x=this.clone();x.$_terms.truthy=x.$_terms.truthy||new pn;for(let t=0;t<e.length;++t){let a=e[t];bn(a!==void 0,"Cannot call truthy with undefined"),x.$_terms.truthy.add(a);}return x}},falsy:{method(...e){hn.verifyFlat(e,"falsy");let x=this.clone();x.$_terms.falsy=x.$_terms.falsy||new pn;for(let t=0;t<e.length;++t){let a=e[t];bn(a!==void 0,"Cannot call falsy with undefined"),x.$_terms.falsy.add(a);}return x}},sensitive:{method(e=true){return this.$_setFlag("sensitive",e)}}},cast:{number:{from:ra.isBool,to(e,x){return e?1:0}},string:{from:ra.isBool,to(e,x){return e?"true":"false"}}},manifest:{build(e,x){return x.truthy&&(e=e.truthy(...x.truthy)),x.falsy&&(e=e.falsy(...x.falsy)),e}},messages:{"boolean.base":"{{#label}} must be a boolean"}});});var _n=N((Ou,vn)=>{var yn=i0(),Tf=px(),wn=g0(),Rf=m6(),Cx={};Cx.isDate=function(e){return e instanceof Date};vn.exports=Tf.extend({type:"date",coerce:{from:["number","string"],method(e,{schema:x}){return {value:Cx.parse(e,x._flags.format)||e}}},validate(e,{schema:x,error:t,prefs:a}){if(e instanceof Date&&!isNaN(e.getTime()))return;let r=x._flags.format;return !a.convert||!r||typeof e!="string"?{value:e,errors:t("date.base")}:{value:e,errors:t("date.format",{format:r})}},rules:{compare:{method:false,validate(e,x,{date:t},{name:a,operator:r,args:n}){let s=t==="now"?Date.now():t.getTime();return wn.compare(e.getTime(),s,r)?e:x.error("date."+a,{limit:n.date,value:e})},args:[{name:"date",ref:true,normalize:e=>e==="now"?e:Cx.parse(e),assert:e=>e!==null,message:"must have a valid date format"}]},format:{method(e){return yn(["iso","javascript","unix"].includes(e),"Unknown date format",e),this.$_setFlag("format",e)}},greater:{method(e){return this.$_addRule({name:"greater",method:"compare",args:{date:e},operator:">"})}},iso:{method(){return this.format("iso")}},less:{method(e){return this.$_addRule({name:"less",method:"compare",args:{date:e},operator:"<"})}},max:{method(e){return this.$_addRule({name:"max",method:"compare",args:{date:e},operator:"<="})}},min:{method(e){return this.$_addRule({name:"min",method:"compare",args:{date:e},operator:">="})}},timestamp:{method(e="javascript"){return yn(["javascript","unix"].includes(e),'"type" must be one of "javascript, unix"'),this.format(e)}}},cast:{number:{from:Cx.isDate,to(e,x){return e.getTime()}},string:{from:Cx.isDate,to(e,{prefs:x}){return Rf.date(e,x)}}},messages:{"date.base":"{{#label}} must be a valid date","date.format":'{{#label}} must be in {msg("date.format." + #format) || #format} format',"date.greater":"{{#label}} must be greater than {{:#limit}}","date.less":"{{#label}} must be less than {{:#limit}}","date.max":"{{#label}} must be less than or equal to {{:#limit}}","date.min":"{{#label}} must be greater than or equal to {{:#limit}}","date.format.iso":"ISO 8601 date","date.format.javascript":"timestamp or number of milliseconds","date.format.unix":"timestamp or number of seconds"}});Cx.parse=function(e,x){if(e instanceof Date)return e;if(typeof e!="string"&&(isNaN(e)||!isFinite(e))||/^\s*$/.test(e))return null;if(x==="iso")return wn.isIsoDate(e)?Cx.date(e.toString()):null;let t=e;if(typeof e=="string"&&/^[+-]?\d+(\.\d+)?$/.test(e)&&(e=parseFloat(e)),x){if(x==="javascript")return Cx.date(1*e);if(x==="unix")return Cx.date(1e3*e);if(typeof t=="string")return null}return Cx.date(e)};Cx.date=function(e){let x=new Date(e);return isNaN(x.getTime())?null:x};});var In=N((Tu,$n)=>{var A7=i0(),Cn=Y0(),Sn=m7(),An=N6(),C7={};$n.exports=function(e,x,t={}){if(A7(e&&typeof e=="object","Invalid defaults value: must be an object"),A7(!x||x===true||typeof x=="object","Invalid source value: must be true, falsy or an object"),A7(typeof t=="object","Invalid options: must be an object"),!x)return null;if(t.shallow)return C7.applyToDefaultsWithShallow(e,x,t);let a=Cn(e);if(x===true)return a;let r=t.nullOverride!==void 0?t.nullOverride:false;return Sn(a,x,{nullOverride:r,mergeArrays:false})};C7.applyToDefaultsWithShallow=function(e,x,t){let a=t.shallow;A7(Array.isArray(a),"Invalid keys");let r=new Map,n=x===true?null:new Set;for(let f of a){f=Array.isArray(f)?f:f.split(".");let c=An(e,f);c&&typeof c=="object"?r.set(c,n&&An(x,f)||c):n&&n.add(f);}let s=Cn(e,{},r);if(!n)return s;for(let f of n)C7.reachCopy(s,x,f);let i=t.nullOverride!==void 0?t.nullOverride:false;return Sn(s,x,{nullOverride:i,mergeArrays:false})};C7.reachCopy=function(e,x,t){for(let n of t){if(!(n in x))return;let s=x[n];if(typeof s!="object"||s===null)return;x=s;}let a=x,r=e;for(let n=0;n<t.length-1;++n){let s=t[n];typeof r[s]!="object"&&(r[s]={}),r=r[s];}r[t[t.length-1]]=a;};});var Tn=N(On=>{var j6=i0(),En={};On.Sorter=class{constructor(){this._items=[],this.nodes=[];}add(e,x){x=x||{};let t=[].concat(x.before||[]),a=[].concat(x.after||[]),r=x.group||"?",n=x.sort||0;j6(!t.includes(r),`Item cannot come before itself: ${r}`),j6(!t.includes("?"),"Item cannot come before unassociated items"),j6(!a.includes(r),`Item cannot come after itself: ${r}`),j6(!a.includes("?"),"Item cannot come after unassociated items"),Array.isArray(e)||(e=[e]);for(let s of e){let i={seq:this._items.length,sort:n,before:t,after:a,group:r,node:s};this._items.push(i);}if(!x.manual){let s=this._sort();j6(s,"item",r!=="?"?`added into group ${r}`:"","created a dependencies error");}return this.nodes}merge(e){Array.isArray(e)||(e=[e]);for(let t of e)if(t)for(let a of t._items)this._items.push(Object.assign({},a));this._items.sort(En.mergeSort);for(let t=0;t<this._items.length;++t)this._items[t].seq=t;let x=this._sort();return j6(x,"merge created a dependencies error"),this.nodes}sort(){let e=this._sort();return j6(e,"sort created a dependencies error"),this.nodes}_sort(){let e={},x=Object.create(null),t=Object.create(null);for(let i of this._items){let f=i.seq,c=i.group;t[c]=t[c]||[],t[c].push(f),e[f]=i.before;for(let d of i.after)x[d]=x[d]||[],x[d].push(f);}for(let i in e){let f=[];for(let c in e[i]){let d=e[i][c];t[d]=t[d]||[],f.push(...t[d]);}e[i]=f;}for(let i in x)if(t[i])for(let f of t[i])e[f].push(...x[i]);let a={};for(let i in e){let f=e[i];for(let c of f)a[c]=a[c]||[],a[c].push(i);}let r={},n=[];for(let i=0;i<this._items.length;++i){let f=i;if(a[i]){f=null;for(let c=0;c<this._items.length;++c){if(r[c]===true)continue;a[c]||(a[c]=[]);let d=a[c].length,o=0;for(let u=0;u<d;++u)r[a[c][u]]&&++o;if(o===d){f=c;break}}}f!==null&&(r[f]=true,n.push(f));}if(n.length!==this._items.length)return false;let s={};for(let i of this._items)s[i.seq]=i;this._items=[],this.nodes=[];for(let i of n){let f=s[i];this.nodes.push(f.node),this._items.push(f);}return true}};En.mergeSort=(e,x)=>e.sort===x.sort?0:e.sort<x.sort?-1:1;});var sa=N((Pu,Pn)=>{var kf=In(),gx=i0(),Rn=Y0(),Pf=Tn(),Df=px(),H0=g0(),na=M6(),Ff=t6(),kn=a6(),S7=m6(),q={renameDefaults:{alias:false,multiple:false,override:false}};Pn.exports=Df.extend({type:"_keys",properties:{typeof:"object"},flags:{unknown:{default:void 0}},terms:{dependencies:{init:null},keys:{init:null,manifest:{mapped:{from:"schema",to:"key"}}},patterns:{init:null},renames:{init:null}},args(e,x){return e.keys(x)},validate(e,{schema:x,error:t,state:a,prefs:r}){if(!e||typeof e!==x.$_property("typeof")||Array.isArray(e))return {value:e,errors:t("object.base",{type:x.$_property("typeof")})};if(!x.$_terms.renames&&!x.$_terms.dependencies&&!x.$_terms.keys&&!x.$_terms.patterns&&!x.$_terms.externals)return;e=q.clone(e,r);let n=[];if(x.$_terms.renames&&!q.rename(x,e,a,r,n))return {value:e,errors:n};if(!x.$_terms.keys&&!x.$_terms.patterns&&!x.$_terms.dependencies)return {value:e,errors:n};let s=new Set(Object.keys(e));if(x.$_terms.keys){let i=[e,...a.ancestors];for(let f of x.$_terms.keys){let c=f.key,d=e[c];s.delete(c);let o=a.localize([...a.path,c],i,f),u=f.schema.$_validate(d,o,r);if(u.errors){if(r.abortEarly)return {value:e,errors:u.errors};u.value!==void 0&&(e[c]=u.value),n.push(...u.errors);}else f.schema._flags.result==="strip"||u.value===void 0&&d!==void 0?delete e[c]:u.value!==void 0&&(e[c]=u.value);}}if(s.size||x._flags._hasPatternMatch){let i=q.unknown(x,e,s,n,a,r);if(i)return i}if(x.$_terms.dependencies)for(let i of x.$_terms.dependencies){if(i.key!==null&&q.isPresent(i.options)(i.key.resolve(e,a,r,null,{shadow:false}))===false)continue;let f=q.dependencies[i.rel](x,i,e,a,r);if(f){let c=x.$_createError(f.code,e,f.context,a,r);if(r.abortEarly)return {value:e,errors:c};n.push(c);}}return {value:e,errors:n}},rules:{and:{method(...e){return H0.verifyFlat(e,"and"),q.dependency(this,"and",null,e)}},append:{method(e){return e==null||Object.keys(e).length===0?this:this.keys(e)}},assert:{method(e,x,t){S7.isTemplate(e)||(e=na.ref(e)),gx(t===void 0||typeof t=="string","Message must be a string"),x=this.$_compile(x,{appendPath:true});let a=this.$_addRule({name:"assert",args:{subject:e,schema:x,message:t}});return a.$_mutateRegister(e),a.$_mutateRegister(x),a},validate(e,{error:x,prefs:t,state:a},{subject:r,schema:n,message:s}){let i=r.resolve(e,a,t),f=kn.isRef(r)?r.absolute(a):[];return n.$_match(i,a.localize(f,[e,...a.ancestors],n),t)?e:x("object.assert",{subject:r,message:s})},args:["subject","schema","message"],multi:true},instance:{method(e,x){return gx(typeof e=="function","constructor must be a function"),x=x||e.name,this.$_addRule({name:"instance",args:{constructor:e,name:x}})},validate(e,x,{constructor:t,name:a}){return e instanceof t?e:x.error("object.instance",{type:a,value:e})},args:["constructor","name"]},keys:{method(e){gx(e===void 0||typeof e=="object","Object schema must be a valid object"),gx(!H0.isSchema(e),"Object schema cannot be a joi schema");let x=this.clone();if(!e)x.$_terms.keys=null;else if(!Object.keys(e).length)x.$_terms.keys=new q.Keys;else {x.$_terms.keys=x.$_terms.keys?x.$_terms.keys.filter(t=>!e.hasOwnProperty(t.key)):new q.Keys;for(let t in e)H0.tryWithPath(()=>x.$_terms.keys.push({key:t,schema:this.$_compile(e[t])}),t);}return x.$_mutateRebuild()}},length:{method(e){return this.$_addRule({name:"length",args:{limit:e},operator:"="})},validate(e,x,{limit:t},{name:a,operator:r,args:n}){return H0.compare(Object.keys(e).length,t,r)?e:x.error("object."+a,{limit:n.limit,value:e})},args:[{name:"limit",ref:true,assert:H0.limit,message:"must be a positive integer"}]},max:{method(e){return this.$_addRule({name:"max",method:"length",args:{limit:e},operator:"<="})}},min:{method(e){return this.$_addRule({name:"min",method:"length",args:{limit:e},operator:">="})}},nand:{method(...e){return H0.verifyFlat(e,"nand"),q.dependency(this,"nand",null,e)}},or:{method(...e){return H0.verifyFlat(e,"or"),q.dependency(this,"or",null,e)}},oxor:{method(...e){return q.dependency(this,"oxor",null,e)}},pattern:{method(e,x,t={}){let a=e instanceof RegExp;a||(e=this.$_compile(e,{appendPath:true})),gx(x!==void 0,"Invalid rule"),H0.assertOptions(t,["fallthrough","matches"]),a&&gx(!e.flags.includes("g")&&!e.flags.includes("y"),"pattern should not use global or sticky mode"),x=this.$_compile(x,{appendPath:true});let r=this.clone();r.$_terms.patterns=r.$_terms.patterns||[];let n={[a?"regex":"schema"]:e,rule:x};return t.matches&&(n.matches=this.$_compile(t.matches),n.matches.type!=="array"&&(n.matches=n.matches.$_root.array().items(n.matches)),r.$_mutateRegister(n.matches),r.$_setFlag("_hasPatternMatch",true,{clone:false})),t.fallthrough&&(n.fallthrough=true),r.$_terms.patterns.push(n),r.$_mutateRegister(x),r}},ref:{method(){return this.$_addRule("ref")},validate(e,x){return kn.isRef(e)?e:x.error("object.refType",{value:e})}},regex:{method(){return this.$_addRule("regex")},validate(e,x){return e instanceof RegExp?e:x.error("object.regex",{value:e})}},rename:{method(e,x,t={}){gx(typeof e=="string"||e instanceof RegExp,"Rename missing the from argument"),gx(typeof x=="string"||x instanceof S7,"Invalid rename to argument"),gx(x!==e,"Cannot rename key to same name:",e),H0.assertOptions(t,["alias","ignoreUndefined","override","multiple"]);let a=this.clone();a.$_terms.renames=a.$_terms.renames||[];for(let r of a.$_terms.renames)gx(r.from!==e,"Cannot rename the same key multiple times");return x instanceof S7&&a.$_mutateRegister(x),a.$_terms.renames.push({from:e,to:x,options:kf(q.renameDefaults,t)}),a}},schema:{method(e="any"){return this.$_addRule({name:"schema",args:{type:e}})},validate(e,x,{type:t}){return H0.isSchema(e)&&(t==="any"||e.type===t)?e:x.error("object.schema",{type:t})}},unknown:{method(e){return this.$_setFlag("unknown",e!==false)}},with:{method(e,x,t={}){return q.dependency(this,"with",e,x,t)}},without:{method(e,x,t={}){return q.dependency(this,"without",e,x,t)}},xor:{method(...e){return H0.verifyFlat(e,"xor"),q.dependency(this,"xor",null,e)}}},overrides:{default(e,x){return e===void 0&&(e=H0.symbols.deepDefault),this.$_parent("default",e,x)}},rebuild(e){if(e.$_terms.keys){let x=new Pf.Sorter;for(let t of e.$_terms.keys)H0.tryWithPath(()=>x.add(t,{after:t.schema.$_rootReferences(),group:t.key}),t.key);e.$_terms.keys=new q.Keys(...x.nodes);}},manifest:{build(e,x){if(x.keys&&(e=e.keys(x.keys)),x.dependencies)for(let{rel:t,key:a=null,peers:r,options:n}of x.dependencies)e=q.dependency(e,t,a,r,n);if(x.patterns)for(let{regex:t,schema:a,rule:r,fallthrough:n,matches:s}of x.patterns)e=e.pattern(t||a,r,{fallthrough:n,matches:s});if(x.renames)for(let{from:t,to:a,options:r}of x.renames)e=e.rename(t,a,r);return e}},messages:{"object.and":"{{#label}} contains {{#presentWithLabels}} without its required peers {{#missingWithLabels}}","object.assert":'{{#label}} is invalid because {if(#subject.key, `"` + #subject.key + `" failed to ` + (#message || "pass the assertion test"), #message || "the assertion failed")}',"object.base":"{{#label}} must be of type {{#type}}","object.instance":"{{#label}} must be an instance of {{:#type}}","object.length":'{{#label}} must have {{#limit}} key{if(#limit == 1, "", "s")}',"object.max":'{{#label}} must have less than or equal to {{#limit}} key{if(#limit == 1, "", "s")}',"object.min":'{{#label}} must have at least {{#limit}} key{if(#limit == 1, "", "s")}',"object.missing":"{{#label}} must contain at least one of {{#peersWithLabels}}","object.nand":"{{:#mainWithLabel}} must not exist simultaneously with {{#peersWithLabels}}","object.oxor":"{{#label}} contains a conflict between optional exclusive peers {{#peersWithLabels}}","object.pattern.match":"{{#label}} keys failed to match pattern requirements","object.refType":"{{#label}} must be a Joi reference","object.regex":"{{#label}} must be a RegExp object","object.rename.multiple":"{{#label}} cannot rename {{:#from}} because multiple renames are disabled and another key was already renamed to {{:#to}}","object.rename.override":"{{#label}} cannot rename {{:#from}} because override is disabled and target {{:#to}} exists","object.schema":"{{#label}} must be a Joi schema of {{#type}} type","object.unknown":"{{#label}} is not allowed","object.with":"{{:#mainWithLabel}} missing required peer {{:#peerWithLabel}}","object.without":"{{:#mainWithLabel}} conflict with forbidden peer {{:#peerWithLabel}}","object.xor":"{{#label}} contains a conflict between exclusive peers {{#peersWithLabels}}"}});q.clone=function(e,x){if(typeof e=="object"){if(x.nonEnumerables)return Rn(e,{shallow:true});let a=Object.create(Object.getPrototypeOf(e));return Object.assign(a,e),a}let t=function(...a){return e.apply(this,a)};return t.prototype=Rn(e.prototype),Object.defineProperty(t,"name",{value:e.name,writable:false}),Object.defineProperty(t,"length",{value:e.length,writable:false}),Object.assign(t,e),t};q.dependency=function(e,x,t,a,r){gx(t===null||typeof t=="string",x,"key must be a strings"),r||(r=a.length>1&&typeof a[a.length-1]=="object"?a.pop():{}),H0.assertOptions(r,["separator","isPresent"]),a=[].concat(a);let n=H0.default(r.separator,"."),s=[];for(let f of a)gx(typeof f=="string",x,"peers must be strings"),s.push(na.ref(f,{separator:n,ancestor:0,prefix:false}));t!==null&&(t=na.ref(t,{separator:n,ancestor:0,prefix:false}));let i=e.clone();return i.$_terms.dependencies=i.$_terms.dependencies||[],i.$_terms.dependencies.push(new q.Dependency(x,t,s,a,r)),i};q.dependencies={and(e,x,t,a,r){let n=[],s=[],i=x.peers.length,f=q.isPresent(x.options);for(let c of x.peers)f(c.resolve(t,a,r,null,{shadow:false}))===false?n.push(c.key):s.push(c.key);if(n.length!==i&&s.length!==i)return {code:"object.and",context:{present:s,presentWithLabels:q.keysToLabels(e,s),missing:n,missingWithLabels:q.keysToLabels(e,n)}}},nand(e,x,t,a,r){let n=[],s=q.isPresent(x.options);for(let c of x.peers)s(c.resolve(t,a,r,null,{shadow:false}))&&n.push(c.key);if(n.length!==x.peers.length)return;let i=x.paths[0],f=x.paths.slice(1);return {code:"object.nand",context:{main:i,mainWithLabel:q.keysToLabels(e,i),peers:f,peersWithLabels:q.keysToLabels(e,f)}}},or(e,x,t,a,r){let n=q.isPresent(x.options);for(let s of x.peers)if(n(s.resolve(t,a,r,null,{shadow:false})))return;return {code:"object.missing",context:{peers:x.paths,peersWithLabels:q.keysToLabels(e,x.paths)}}},oxor(e,x,t,a,r){let n=[],s=q.isPresent(x.options);for(let f of x.peers)s(f.resolve(t,a,r,null,{shadow:false}))&&n.push(f.key);if(!n.length||n.length===1)return;let i={peers:x.paths,peersWithLabels:q.keysToLabels(e,x.paths)};return i.present=n,i.presentWithLabels=q.keysToLabels(e,n),{code:"object.oxor",context:i}},with(e,x,t,a,r){let n=q.isPresent(x.options);for(let s of x.peers)if(n(s.resolve(t,a,r,null,{shadow:false}))===false)return {code:"object.with",context:{main:x.key.key,mainWithLabel:q.keysToLabels(e,x.key.key),peer:s.key,peerWithLabel:q.keysToLabels(e,s.key)}}},without(e,x,t,a,r){let n=q.isPresent(x.options);for(let s of x.peers)if(n(s.resolve(t,a,r,null,{shadow:false})))return {code:"object.without",context:{main:x.key.key,mainWithLabel:q.keysToLabels(e,x.key.key),peer:s.key,peerWithLabel:q.keysToLabels(e,s.key)}}},xor(e,x,t,a,r){let n=[],s=q.isPresent(x.options);for(let f of x.peers)s(f.resolve(t,a,r,null,{shadow:false}))&&n.push(f.key);if(n.length===1)return;let i={peers:x.paths,peersWithLabels:q.keysToLabels(e,x.paths)};return n.length===0?{code:"object.missing",context:i}:(i.present=n,i.presentWithLabels=q.keysToLabels(e,n),{code:"object.xor",context:i})}};q.keysToLabels=function(e,x){return Array.isArray(x)?x.map(t=>e.$_mapLabels(t)):e.$_mapLabels(x)};q.isPresent=function(e){return typeof e.isPresent=="function"?e.isPresent:x=>x!==void 0};q.rename=function(e,x,t,a,r){let n={};for(let s of e.$_terms.renames){let i=[],f=typeof s.from!="string";if(!f)Object.prototype.hasOwnProperty.call(x,s.from)&&(x[s.from]!==void 0||!s.options.ignoreUndefined)&&i.push(s);else for(let c in x){if(x[c]===void 0&&s.options.ignoreUndefined||c===s.to)continue;let d=s.from.exec(c);d&&i.push({from:c,to:s.to,match:d});}for(let c of i){let d=c.from,o=c.to;if(o instanceof S7&&(o=o.render(x,t,a,c.match)),d!==o){if(!s.options.multiple&&n[o]&&(r.push(e.$_createError("object.rename.multiple",x,{from:d,to:o,pattern:f},t,a)),a.abortEarly)||Object.prototype.hasOwnProperty.call(x,o)&&!s.options.override&&!n[o]&&(r.push(e.$_createError("object.rename.override",x,{from:d,to:o,pattern:f},t,a)),a.abortEarly))return false;x[d]===void 0?delete x[o]:x[o]=x[d],n[o]=true,s.options.alias||delete x[d];}}}return true};q.unknown=function(e,x,t,a,r,n){if(e.$_terms.patterns){let i=false,f=e.$_terms.patterns.map(d=>{if(d.matches)return i=true,[]}),c=[x,...r.ancestors];for(let d of t){let o=x[d],u=[...r.path,d];for(let p=0;p<e.$_terms.patterns.length;++p){let b=e.$_terms.patterns[p];if(b.regex){let $=b.regex.test(d);if(r.mainstay.tracer.debug(r,"rule",`pattern.${p}`,$?"pass":"error"),!$)continue}else if(!b.schema.$_match(d,r.nest(b.schema,`pattern.${p}`),n))continue;t.delete(d);let m=r.localize(u,c,{schema:b.rule,key:d}),v=b.rule.$_validate(o,m,n);if(v.errors){if(n.abortEarly)return {value:x,errors:v.errors};a.push(...v.errors);}if(b.matches&&f[p].push(d),x[d]=v.value,!b.fallthrough)break}}if(i)for(let d=0;d<f.length;++d){let o=f[d];if(!o)continue;let u=e.$_terms.patterns[d].matches,p=r.localize(r.path,c,u),b=u.$_validate(o,p,n);if(b.errors){let m=Ff.details(b.errors,{override:false});m.matches=o;let v=e.$_createError("object.pattern.match",x,m,r,n);if(n.abortEarly)return {value:x,errors:v};a.push(v);}}}if(!t.size||!e.$_terms.keys&&!e.$_terms.patterns)return;if(n.stripUnknown&&typeof e._flags.unknown>"u"||n.skipFunctions){let i=n.stripUnknown?n.stripUnknown===true?true:!!n.stripUnknown.objects:false;for(let f of t)i?(delete x[f],t.delete(f)):typeof x[f]=="function"&&t.delete(f);}if(!H0.default(e._flags.unknown,n.allowUnknown))for(let i of t){let f=r.localize([...r.path,i],[]),c=e.$_createError("object.unknown",x[i],{child:i},f,n,{flags:false});if(n.abortEarly)return {value:x,errors:c};a.push(c);}};q.Dependency=class{constructor(e,x,t,a,r){this.rel=e,this.key=x,this.peers=t,this.paths=a,this.options=r;}describe(){let e={rel:this.rel,peers:this.paths};return this.key!==null&&(e.key=this.key.key),this.peers[0].separator!=="."&&(e.options={...e.options,separator:this.peers[0].separator}),this.options.isPresent&&(e.options={...e.options,isPresent:this.options.isPresent}),e}};q.Keys=class extends Array{concat(e){let x=this.slice(),t=new Map;for(let a=0;a<x.length;++a)t.set(x[a].key,a);for(let a of e){let r=a.key,n=t.get(r);n!==void 0?x[n]={key:r,schema:x[n].schema.concat(a.schema)}:x.push(a);}return x}};});var Fn=N((Nu,Dn)=>{var ia=i0(),Nf=sa();Dn.exports=Nf.extend({type:"function",properties:{typeof:"function"},rules:{arity:{method(e){return ia(Number.isSafeInteger(e)&&e>=0,"n must be a positive integer"),this.$_addRule({name:"arity",args:{n:e}})},validate(e,x,{n:t}){return e.length===t?e:x.error("function.arity",{n:t})}},class:{method(){return this.$_addRule("class")},validate(e,x){return /^\s*class\s/.test(e.toString())?e:x.error("function.class",{value:e})}},minArity:{method(e){return ia(Number.isSafeInteger(e)&&e>0,"n must be a strict positive integer"),this.$_addRule({name:"minArity",args:{n:e}})},validate(e,x,{n:t}){return e.length>=t?e:x.error("function.minArity",{n:t})}},maxArity:{method(e){return ia(Number.isSafeInteger(e)&&e>=0,"n must be a positive integer"),this.$_addRule({name:"maxArity",args:{n:e}})},validate(e,x,{n:t}){return e.length<=t?e:x.error("function.maxArity",{n:t})}}},messages:{"function.arity":"{{#label}} must have an arity of {{#n}}","function.class":"{{#label}} must be a class","function.maxArity":"{{#label}} must have an arity lesser or equal to {{#n}}","function.minArity":"{{#label}} must have an arity greater or equal to {{#n}}"}});});var Ln=N((Lu,Nn)=>{var i6=i0(),Lf=px(),Bf=g0(),Mf=M6(),Gf=t6(),f6={};Nn.exports=Lf.extend({type:"link",properties:{schemaChain:true},terms:{link:{init:null,manifest:"single",register:false}},args(e,x){return e.ref(x)},validate(e,{schema:x,state:t,prefs:a}){i6(x.$_terms.link,"Uninitialized link schema");let r=f6.generate(x,e,t,a),n=x.$_terms.link[0].ref;return r.$_validate(e,t.nest(r,`link:${n.display}:${r.type}`),a)},generate(e,x,t,a){return f6.generate(e,x,t,a)},rules:{ref:{method(e){i6(!this.$_terms.link,"Cannot reinitialize schema"),e=Mf.ref(e),i6(e.type==="value"||e.type==="local","Invalid reference type:",e.type),i6(e.type==="local"||e.ancestor==="root"||e.ancestor>0,"Link cannot reference itself");let x=this.clone();return x.$_terms.link=[{ref:e}],x}},relative:{method(e=true){return this.$_setFlag("relative",e)}}},overrides:{concat(e){i6(this.$_terms.link,"Uninitialized link schema"),i6(Bf.isSchema(e),"Invalid schema object"),i6(e.type!=="link","Cannot merge type link with another link");let x=this.clone();return x.$_terms.whens||(x.$_terms.whens=[]),x.$_terms.whens.push({concat:e}),x.$_mutateRebuild()}},manifest:{build(e,x){return i6(x.link,"Invalid link description missing link"),e.ref(x.link)}}});f6.generate=function(e,x,t,a){let r=t.mainstay.links.get(e);if(r)return r._generate(x,t,a).schema;let n=e.$_terms.link[0].ref,{perspective:s,path:i}=f6.perspective(n,t);f6.assert(s,"which is outside of schema boundaries",n,e,t,a);try{r=i.length?s.$_reach(i):s;}catch{f6.assert(false,"to non-existing schema",n,e,t,a);}return f6.assert(r.type!=="link","which is another link",n,e,t,a),e._flags.relative||t.mainstay.links.set(e,r),r._generate(x,t,a).schema};f6.perspective=function(e,x){if(e.type==="local"){for(let{schema:t,key:a}of x.schemas){if((t._flags.id||a)===e.path[0])return {perspective:t,path:e.path.slice(1)};if(t.$_terms.shared){for(let n of t.$_terms.shared)if(n._flags.id===e.path[0])return {perspective:n,path:e.path.slice(1)}}}return {perspective:null,path:null}}return e.ancestor==="root"?{perspective:x.schemas[x.schemas.length-1].schema,path:e.path}:{perspective:x.schemas[e.ancestor]&&x.schemas[e.ancestor].schema,path:e.path}};f6.assert=function(e,x,t,a,r,n){e||i6(false,`"${Gf.label(a._flags,r,n)}" contains link reference "${t.display}" ${x}`);};});var Mn=N((Bu,Bn)=>{var fa=i0(),Uf=px(),ca=g0(),dx={numberRx:/^\s*[+-]?(?:(?:\d+(?:\.\d*)?)|(?:\.\d+))(?:e([+-]?\d+))?\s*$/i,precisionRx:/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/,exponentialPartRegex:/[eE][+-]?\d+$/,leadingSignAndZerosRegex:/^[+-]?(0*)?/,dotRegex:/\./,trailingZerosRegex:/0+$/,decimalPlaces(e){let x=e.toString(),t=x.indexOf("."),a=x.indexOf("e");return (t<0?0:(a<0?x.length:a)-t-1)+(a<0?0:Math.max(0,-parseInt(x.slice(a+1))))}};Bn.exports=Uf.extend({type:"number",flags:{unsafe:{default:false}},coerce:{from:"string",method(e,{schema:x,error:t}){if(!e.match(dx.numberRx))return;e=e.trim();let r={value:parseFloat(e)};if(r.value===0&&(r.value=0),!x._flags.unsafe)if(e.match(/e/i)){if(dx.extractSignificantDigits(e)!==dx.extractSignificantDigits(String(r.value)))return r.errors=t("number.unsafe"),r}else {let n=r.value.toString();if(n.match(/e/i))return r;if(n!==dx.normalizeDecimal(e))return r.errors=t("number.unsafe"),r}return r}},validate(e,{schema:x,error:t,prefs:a}){if(e===1/0||e===-1/0)return {value:e,errors:t("number.infinity")};if(!ca.isNumber(e))return {value:e,errors:t("number.base")};let r={value:e};if(a.convert){let n=x.$_getRule("precision");if(n){let s=Math.pow(10,n.args.limit);r.value=Math.round(r.value*s)/s;}}return r.value===0&&(r.value=0),!x._flags.unsafe&&(e>Number.MAX_SAFE_INTEGER||e<Number.MIN_SAFE_INTEGER)&&(r.errors=t("number.unsafe")),r},rules:{compare:{method:false,validate(e,x,{limit:t},{name:a,operator:r,args:n}){return ca.compare(e,t,r)?e:x.error("number."+a,{limit:n.limit,value:e})},args:[{name:"limit",ref:true,assert:ca.isNumber,message:"must be a number"}]},greater:{method(e){return this.$_addRule({name:"greater",method:"compare",args:{limit:e},operator:">"})}},integer:{method(){return this.$_addRule("integer")},validate(e,x){return Math.trunc(e)-e===0?e:x.error("number.integer")}},less:{method(e){return this.$_addRule({name:"less",method:"compare",args:{limit:e},operator:"<"})}},max:{method(e){return this.$_addRule({name:"max",method:"compare",args:{limit:e},operator:"<="})}},min:{method(e){return this.$_addRule({name:"min",method:"compare",args:{limit:e},operator:">="})}},multiple:{method(e){let x=typeof e=="number"?dx.decimalPlaces(e):null,t=Math.pow(10,x);return this.$_addRule({name:"multiple",args:{base:e,baseDecimalPlace:x,pfactor:t}})},validate(e,x,{base:t,baseDecimalPlace:a,pfactor:r},n){return dx.decimalPlaces(e)>a?x.error("number.multiple",{multiple:n.args.base,value:e}):Math.round(r*e)%Math.round(r*t)===0?e:x.error("number.multiple",{multiple:n.args.base,value:e})},args:[{name:"base",ref:true,assert:e=>typeof e=="number"&&isFinite(e)&&e>0,message:"must be a positive number"},"baseDecimalPlace","pfactor"],multi:true},negative:{method(){return this.sign("negative")}},port:{method(){return this.$_addRule("port")},validate(e,x){return Number.isSafeInteger(e)&&e>=0&&e<=65535?e:x.error("number.port")}},positive:{method(){return this.sign("positive")}},precision:{method(e){return fa(Number.isSafeInteger(e),"limit must be an integer"),this.$_addRule({name:"precision",args:{limit:e}})},validate(e,x,{limit:t}){let a=e.toString().match(dx.precisionRx);return Math.max((a[1]?a[1].length:0)-(a[2]?parseInt(a[2],10):0),0)<=t?e:x.error("number.precision",{limit:t,value:e})},convert:true},sign:{method(e){return fa(["negative","positive"].includes(e),"Invalid sign",e),this.$_addRule({name:"sign",args:{sign:e}})},validate(e,x,{sign:t}){return t==="negative"&&e<0||t==="positive"&&e>0?e:x.error(`number.${t}`)}},unsafe:{method(e=true){return fa(typeof e=="boolean","enabled must be a boolean"),this.$_setFlag("unsafe",e)}}},cast:{string:{from:e=>typeof e=="number",to(e,x){return e.toString()}}},messages:{"number.base":"{{#label}} must be a number","number.greater":"{{#label}} must be greater than {{#limit}}","number.infinity":"{{#label}} cannot be infinity","number.integer":"{{#label}} must be an integer","number.less":"{{#label}} must be less than {{#limit}}","number.max":"{{#label}} must be less than or equal to {{#limit}}","number.min":"{{#label}} must be greater than or equal to {{#limit}}","number.multiple":"{{#label}} must be a multiple of {{#multiple}}","number.negative":"{{#label}} must be a negative number","number.port":"{{#label}} must be a valid port","number.positive":"{{#label}} must be a positive number","number.precision":"{{#label}} must have no more than {{#limit}} decimal places","number.unsafe":"{{#label}} must be a safe number"}});dx.extractSignificantDigits=function(e){return e.replace(dx.exponentialPartRegex,"").replace(dx.dotRegex,"").replace(dx.trailingZerosRegex,"").replace(dx.leadingSignAndZerosRegex,"")};dx.normalizeDecimal=function(e){return e=e.replace(/^\+/,"").replace(/\.0*$/,"").replace(/^(-?)\.([^\.]*)$/,"$10.$2").replace(/^(-?)0+([0-9])/,"$1$2"),e.includes(".")&&e.endsWith("0")&&(e=e.replace(/0+$/,"")),e==="-0"?"0":e};});var Un=N((Mu,Gn)=>{var jf=sa();Gn.exports=jf.extend({type:"object",cast:{map:{from:e=>e&&typeof e=="object",to(e,x){return new Map(Object.entries(e))}}}});});var da=N($7=>{$7.codes={EMPTY_STRING:"Address must be a non-empty string",FORBIDDEN_UNICODE:"Address contains forbidden Unicode characters",MULTIPLE_AT_CHAR:"Address cannot contain more than one @ character",MISSING_AT_CHAR:"Address must contain one @ character",EMPTY_LOCAL:"Address local part cannot be empty",ADDRESS_TOO_LONG:"Address too long",LOCAL_TOO_LONG:"Address local part too long",EMPTY_LOCAL_SEGMENT:"Address local part contains empty dot-separated segment",INVALID_LOCAL_CHARS:"Address local part contains invalid character",DOMAIN_NON_EMPTY_STRING:"Domain must be a non-empty string",DOMAIN_TOO_LONG:"Domain too long",DOMAIN_INVALID_UNICODE_CHARS:"Domain contains forbidden Unicode characters",DOMAIN_INVALID_CHARS:"Domain contains invalid character",DOMAIN_INVALID_TLDS_CHARS:"Domain contains invalid tld character",DOMAIN_SEGMENTS_COUNT:"Domain lacks the minimum required number of segments",DOMAIN_SEGMENTS_COUNT_MAX:"Domain contains too many segments",DOMAIN_FORBIDDEN_TLDS:"Domain uses forbidden TLD",DOMAIN_EMPTY_SEGMENT:"Domain contains empty dot-separated segment",DOMAIN_LONG_SEGMENT:"Domain contains dot-separated segment that is too long"};$7.code=function(e){return {code:e,error:$7.codes[e]}};});var oa=N(I7=>{var qf=i2("url"),Sx=da(),w6={minDomainSegments:2,nonAsciiRx:/[^\x00-\x7f]/,domainControlRx:/[\x00-\x20@\:\/\\#!\$&\'\(\)\*\+,;=\?]/,tldSegmentRx:/^[a-zA-Z](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?$/,domainSegmentRx:/^[a-zA-Z0-9](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?$/,URL:qf.URL||URL};I7.analyze=function(e,x={}){if(!e)return Sx.code("DOMAIN_NON_EMPTY_STRING");if(typeof e!="string")throw new Error("Invalid input: domain must be a string");if(e.length>256)return Sx.code("DOMAIN_TOO_LONG");if(!!w6.nonAsciiRx.test(e)){if(x.allowUnicode===false)return Sx.code("DOMAIN_INVALID_UNICODE_CHARS");e=e.normalize("NFC");}if(w6.domainControlRx.test(e))return Sx.code("DOMAIN_INVALID_CHARS");e=w6.punycode(e),x.allowFullyQualified&&e[e.length-1]==="."&&(e=e.slice(0,-1));let a=x.minDomainSegments||w6.minDomainSegments,r=e.split(".");if(r.length<a)return Sx.code("DOMAIN_SEGMENTS_COUNT");if(x.maxDomainSegments&&r.length>x.maxDomainSegments)return Sx.code("DOMAIN_SEGMENTS_COUNT_MAX");let n=x.tlds;if(n){let s=r[r.length-1].toLowerCase();if(n.deny&&n.deny.has(s)||n.allow&&!n.allow.has(s))return Sx.code("DOMAIN_FORBIDDEN_TLDS")}for(let s=0;s<r.length;++s){let i=r[s];if(!i.length)return Sx.code("DOMAIN_EMPTY_SEGMENT");if(i.length>63)return Sx.code("DOMAIN_LONG_SEGMENT");if(s<r.length-1){if(!w6.domainSegmentRx.test(i))return Sx.code("DOMAIN_INVALID_CHARS")}else if(!w6.tldSegmentRx.test(i))return Sx.code("DOMAIN_INVALID_TLDS_CHARS")}return null};I7.isValid=function(e,x){return !I7.analyze(e,x)};w6.punycode=function(e){e.includes("%")&&(e=e.replace(/%/g,"%25"));try{return new w6.URL(`http://${e}`).host}catch{return e}};});var jn=N(la=>{var zf=i2("util"),Hf=oa(),Lx=da(),J0={nonAsciiRx:/[^\x00-\x7f]/,encoder:new(zf.TextEncoder||TextEncoder)};la.analyze=function(e,x){return J0.email(e,x)};la.isValid=function(e,x){return !J0.email(e,x)};J0.email=function(e,x={}){if(typeof e!="string")throw new Error("Invalid input: email must be a string");if(!e)return Lx.code("EMPTY_STRING");let t=!J0.nonAsciiRx.test(e);if(!t){if(x.allowUnicode===false)return Lx.code("FORBIDDEN_UNICODE");e=e.normalize("NFC");}let a=e.split("@");if(a.length!==2)return a.length>2?Lx.code("MULTIPLE_AT_CHAR"):Lx.code("MISSING_AT_CHAR");let[r,n]=a;if(!r)return Lx.code("EMPTY_LOCAL");if(!x.ignoreLength){if(e.length>254)return Lx.code("ADDRESS_TOO_LONG");if(J0.encoder.encode(r).length>64)return Lx.code("LOCAL_TOO_LONG")}return J0.local(r,t)||Hf.analyze(n,x)};J0.local=function(e,x){let t=e.split(".");for(let a of t){if(!a.length)return Lx.code("EMPTY_LOCAL_SEGMENT");if(x){if(!J0.atextRx.test(a))return Lx.code("INVALID_LOCAL_CHARS");continue}for(let r of a){if(J0.atextRx.test(r))continue;let n=J0.binary(r);if(!J0.atomRx.test(n))return Lx.code("INVALID_LOCAL_CHARS")}}};J0.binary=function(e){return Array.from(J0.encoder.encode(e)).map(x=>String.fromCharCode(x)).join("")};J0.atextRx=/^[\w!#\$%&'\*\+\-/=\?\^`\{\|\}~]+$/;J0.atomRx=new RegExp(["(?:[\\xc2-\\xdf][\\x80-\\xbf])","(?:\\xe0[\\xa0-\\xbf][\\x80-\\xbf])|(?:[\\xe1-\\xec][\\x80-\\xbf]{2})|(?:\\xed[\\x80-\\x9f][\\x80-\\xbf])|(?:[\\xee-\\xef][\\x80-\\xbf]{2})","(?:\\xf0[\\x90-\\xbf][\\x80-\\xbf]{2})|(?:[\\xf1-\\xf3][\\x80-\\xbf]{3})|(?:\\xf4[\\x80-\\x8f][\\x80-\\xbf]{2})"].join("|"));});var ua=N((qu,qn)=>{qn.exports=function(e){return e.replace(/[\^\$\.\*\+\-\?\=\!\:\|\\\/\(\)\[\]\{\}\,]/g,"\\$&")};});var ha=N(ba=>{var E7=i0(),Vf=ua(),U0={};U0.generate=function(){let e={},x="\\dA-Fa-f",t="["+x+"]",a="\\w-\\.~",r="!\\$&'\\(\\)\\*\\+,;=",n="%"+x,s=a+n+r+":@",i="["+s+"]",f="(?:0{0,2}\\d|0?[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])";e.ipv4address="(?:"+f+"\\.){3}"+f;let c=t+"{1,4}",d="(?:"+c+":"+c+"|"+e.ipv4address+")",o="(?:"+c+":){6}"+d,u="::(?:"+c+":){5}"+d,p="(?:"+c+")?::(?:"+c+":){4}"+d,b="(?:(?:"+c+":){0,1}"+c+")?::(?:"+c+":){3}"+d,m="(?:(?:"+c+":){0,2}"+c+")?::(?:"+c+":){2}"+d,v="(?:(?:"+c+":){0,3}"+c+")?::"+c+":"+d,$="(?:(?:"+c+":){0,4}"+c+")?::"+d,y="(?:(?:"+c+":){0,5}"+c+")?::"+c,h="(?:(?:"+c+":){0,6}"+c+")?::";e.ipv4Cidr="(?:\\d|[1-2]\\d|3[0-2])",e.ipv6Cidr="(?:0{0,2}\\d|0?[1-9]\\d|1[01]\\d|12[0-8])",e.ipv6address="(?:"+o+"|"+u+"|"+p+"|"+b+"|"+m+"|"+v+"|"+$+"|"+y+"|"+h+")",e.ipvFuture="v"+t+"+\\.["+a+r+":]+",e.scheme="[a-zA-Z][a-zA-Z\\d+-\\.]*",e.schemeRegex=new RegExp(e.scheme);let S="["+a+n+r+":]*",E="\\[(?:"+e.ipv6address+"|"+e.ipvFuture+")\\]",T="["+a+n+r+"]{1,255}",D="(?:"+E+"|"+e.ipv4address+"|"+T+")",R="\\d*",G="(?:"+S+"@)?"+D+"(?::"+R+")?",U="(?:"+S+"@)?("+D+")(?::"+R+")?",Y=i+"*",f0=i+"+",s0="["+a+n+r+"@]+",S0="",c0="(?:\\/"+Y+")*",$0="\\/(?:"+f0+c0+")?",J=f0+c0,x0=s0+c0,d0="(?:\\/\\/\\/"+Y+c0+")";return e.hierPart="(?:(?:\\/\\/"+G+c0+")|"+$0+"|"+J+"|"+d0+")",e.hierPartCapture="(?:(?:\\/\\/"+U+c0+")|"+$0+"|"+J+")",e.relativeRef="(?:(?:\\/\\/"+G+c0+")|"+$0+"|"+x0+"|"+S0+")",e.relativeRefCapture="(?:(?:\\/\\/"+U+c0+")|"+$0+"|"+x0+"|"+S0+")",e.query="["+s+"\\/\\?]*(?=#|$)",e.queryWithSquareBrackets="["+s+"\\[\\]\\/\\?]*(?=#|$)",e.fragment="["+s+"\\/\\?]*",e};U0.rfc3986=U0.generate();ba.ip={v4Cidr:U0.rfc3986.ipv4Cidr,v6Cidr:U0.rfc3986.ipv6Cidr,ipv4:U0.rfc3986.ipv4address,ipv6:U0.rfc3986.ipv6address,ipvfuture:U0.rfc3986.ipvFuture};U0.createRegex=function(e){let x=U0.rfc3986,a="(?:\\?"+(e.allowQuerySquareBrackets?x.queryWithSquareBrackets:x.query)+")?(?:#"+x.fragment+")?",r=e.domain?x.relativeRefCapture:x.relativeRef;if(e.relativeOnly)return U0.wrap(r+a);let n="";if(e.scheme){E7(e.scheme instanceof RegExp||typeof e.scheme=="string"||Array.isArray(e.scheme),"scheme must be a RegExp, String, or Array");let c=[].concat(e.scheme);E7(c.length>=1,"scheme must have at least 1 scheme specified");let d=[];for(let o=0;o<c.length;++o){let u=c[o];E7(u instanceof RegExp||typeof u=="string","scheme at position "+o+" must be a RegExp or String"),u instanceof RegExp?d.push(u.source.toString()):(E7(x.schemeRegex.test(u),"scheme at position "+o+" must be a valid scheme"),d.push(Vf(u)));}n=d.join("|");}let i="(?:"+(n?"(?:"+n+")":x.scheme)+":"+(e.domain?x.hierPartCapture:x.hierPart)+")",f=e.allowRelative?"(?:"+i+"|"+r+")":i;return U0.wrap(f+a,n)};U0.wrap=function(e,x){return e=`(?=.)(?!https?:/(?:$|[^/]))(?!https?:///)(?!https?:[^/])${e}`,{raw:e,regex:new RegExp(`^${e}$`),scheme:x}};U0.uriRegex=U0.createRegex({});ba.regex=function(e={}){return e.scheme||e.allowRelative||e.relativeOnly||e.allowQuerySquareBrackets||e.domain?U0.createRegex(e):U0.uriRegex};});var Hn=N(zn=>{var oe=i0(),ze=ha();zn.regex=function(e={}){oe(e.cidr===void 0||typeof e.cidr=="string","options.cidr must be a string");let x=e.cidr?e.cidr.toLowerCase():"optional";oe(["required","optional","forbidden"].includes(x),"options.cidr must be one of required, optional, forbidden"),oe(e.version===void 0||typeof e.version=="string"||Array.isArray(e.version),"options.version must be a string or an array of string");let t=e.version||["ipv4","ipv6","ipvfuture"];Array.isArray(t)||(t=[t]),oe(t.length>=1,"options.version must have at least 1 version specified");for(let s=0;s<t.length;++s)oe(typeof t[s]=="string","options.version must only contain strings"),t[s]=t[s].toLowerCase(),oe(["ipv4","ipv6","ipvfuture"].includes(t[s]),"options.version contains unknown version "+t[s]+" - must be one of ipv4, ipv6, ipvfuture");t=Array.from(new Set(t));let r=`(?:${t.map(s=>{if(x==="forbidden")return ze.ip[s];let i=`\\/${s==="ipv4"?ze.ip.v4Cidr:ze.ip.v6Cidr}`;return x==="required"?`${ze.ip[s]}${i}`:`${ze.ip[s]}(?:${i})?`}).join("|")})`,n=new RegExp(`^${r}$`);return {cidr:x,versions:t,regex:n,raw:r}};});var Wn=N((Vu,Xn)=>{var Vn={};Vn.tlds=["AAA","AARP","ABB","ABBOTT","ABBVIE","ABC","ABLE","ABOGADO","ABUDHABI","AC","ACADEMY","ACCENTURE","ACCOUNTANT","ACCOUNTANTS","ACO","ACTOR","AD","ADS","ADULT","AE","AEG","AERO","AETNA","AF","AFL","AFRICA","AG","AGAKHAN","AGENCY","AI","AIG","AIRBUS","AIRFORCE","AIRTEL","AKDN","AL","ALIBABA","ALIPAY","ALLFINANZ","ALLSTATE","ALLY","ALSACE","ALSTOM","AM","AMAZON","AMERICANEXPRESS","AMERICANFAMILY","AMEX","AMFAM","AMICA","AMSTERDAM","ANALYTICS","ANDROID","ANQUAN","ANZ","AO","AOL","APARTMENTS","APP","APPLE","AQ","AQUARELLE","AR","ARAB","ARAMCO","ARCHI","ARMY","ARPA","ART","ARTE","AS","ASDA","ASIA","ASSOCIATES","AT","ATHLETA","ATTORNEY","AU","AUCTION","AUDI","AUDIBLE","AUDIO","AUSPOST","AUTHOR","AUTO","AUTOS","AVIANCA","AW","AWS","AX","AXA","AZ","AZURE","BA","BABY","BAIDU","BANAMEX","BAND","BANK","BAR","BARCELONA","BARCLAYCARD","BARCLAYS","BAREFOOT","BARGAINS","BASEBALL","BASKETBALL","BAUHAUS","BAYERN","BB","BBC","BBT","BBVA","BCG","BCN","BD","BE","BEATS","BEAUTY","BEER","BENTLEY","BERLIN","BEST","BESTBUY","BET","BF","BG","BH","BHARTI","BI","BIBLE","BID","BIKE","BING","BINGO","BIO","BIZ","BJ","BLACK","BLACKFRIDAY","BLOCKBUSTER","BLOG","BLOOMBERG","BLUE","BM","BMS","BMW","BN","BNPPARIBAS","BO","BOATS","BOEHRINGER","BOFA","BOM","BOND","BOO","BOOK","BOOKING","BOSCH","BOSTIK","BOSTON","BOT","BOUTIQUE","BOX","BR","BRADESCO","BRIDGESTONE","BROADWAY","BROKER","BROTHER","BRUSSELS","BS","BT","BUILD","BUILDERS","BUSINESS","BUY","BUZZ","BV","BW","BY","BZ","BZH","CA","CAB","CAFE","CAL","CALL","CALVINKLEIN","CAM","CAMERA","CAMP","CANON","CAPETOWN","CAPITAL","CAPITALONE","CAR","CARAVAN","CARDS","CARE","CAREER","CAREERS","CARS","CASA","CASE","CASH","CASINO","CAT","CATERING","CATHOLIC","CBA","CBN","CBRE","CC","CD","CENTER","CEO","CERN","CF","CFA","CFD","CG","CH","CHANEL","CHANNEL","CHARITY","CHASE","CHAT","CHEAP","CHINTAI","CHRISTMAS","CHROME","CHURCH","CI","CIPRIANI","CIRCLE","CISCO","CITADEL","CITI","CITIC","CITY","CK","CL","CLAIMS","CLEANING","CLICK","CLINIC","CLINIQUE","CLOTHING","CLOUD","CLUB","CLUBMED","CM","CN","CO","COACH","CODES","COFFEE","COLLEGE","COLOGNE","COM","COMCAST","COMMBANK","COMMUNITY","COMPANY","COMPARE","COMPUTER","COMSEC","CONDOS","CONSTRUCTION","CONSULTING","CONTACT","CONTRACTORS","COOKING","COOL","COOP","CORSICA","COUNTRY","COUPON","COUPONS","COURSES","CPA","CR","CREDIT","CREDITCARD","CREDITUNION","CRICKET","CROWN","CRS","CRUISE","CRUISES","CU","CUISINELLA","CV","CW","CX","CY","CYMRU","CYOU","CZ","DABUR","DAD","DANCE","DATA","DATE","DATING","DATSUN","DAY","DCLK","DDS","DE","DEAL","DEALER","DEALS","DEGREE","DELIVERY","DELL","DELOITTE","DELTA","DEMOCRAT","DENTAL","DENTIST","DESI","DESIGN","DEV","DHL","DIAMONDS","DIET","DIGITAL","DIRECT","DIRECTORY","DISCOUNT","DISCOVER","DISH","DIY","DJ","DK","DM","DNP","DO","DOCS","DOCTOR","DOG","DOMAINS","DOT","DOWNLOAD","DRIVE","DTV","DUBAI","DUNLOP","DUPONT","DURBAN","DVAG","DVR","DZ","EARTH","EAT","EC","ECO","EDEKA","EDU","EDUCATION","EE","EG","EMAIL","EMERCK","ENERGY","ENGINEER","ENGINEERING","ENTERPRISES","EPSON","EQUIPMENT","ER","ERICSSON","ERNI","ES","ESQ","ESTATE","ET","EU","EUROVISION","EUS","EVENTS","EXCHANGE","EXPERT","EXPOSED","EXPRESS","EXTRASPACE","FAGE","FAIL","FAIRWINDS","FAITH","FAMILY","FAN","FANS","FARM","FARMERS","FASHION","FAST","FEDEX","FEEDBACK","FERRARI","FERRERO","FI","FIDELITY","FIDO","FILM","FINAL","FINANCE","FINANCIAL","FIRE","FIRESTONE","FIRMDALE","FISH","FISHING","FIT","FITNESS","FJ","FK","FLICKR","FLIGHTS","FLIR","FLORIST","FLOWERS","FLY","FM","FO","FOO","FOOD","FOOTBALL","FORD","FOREX","FORSALE","FORUM","FOUNDATION","FOX","FR","FREE","FRESENIUS","FRL","FROGANS","FRONTIER","FTR","FUJITSU","FUN","FUND","FURNITURE","FUTBOL","FYI","GA","GAL","GALLERY","GALLO","GALLUP","GAME","GAMES","GAP","GARDEN","GAY","GB","GBIZ","GD","GDN","GE","GEA","GENT","GENTING","GEORGE","GF","GG","GGEE","GH","GI","GIFT","GIFTS","GIVES","GIVING","GL","GLASS","GLE","GLOBAL","GLOBO","GM","GMAIL","GMBH","GMO","GMX","GN","GODADDY","GOLD","GOLDPOINT","GOLF","GOO","GOODYEAR","GOOG","GOOGLE","GOP","GOT","GOV","GP","GQ","GR","GRAINGER","GRAPHICS","GRATIS","GREEN","GRIPE","GROCERY","GROUP","GS","GT","GU","GUARDIAN","GUCCI","GUGE","GUIDE","GUITARS","GURU","GW","GY","HAIR","HAMBURG","HANGOUT","HAUS","HBO","HDFC","HDFCBANK","HEALTH","HEALTHCARE","HELP","HELSINKI","HERE","HERMES","HIPHOP","HISAMITSU","HITACHI","HIV","HK","HKT","HM","HN","HOCKEY","HOLDINGS","HOLIDAY","HOMEDEPOT","HOMEGOODS","HOMES","HOMESENSE","HONDA","HORSE","HOSPITAL","HOST","HOSTING","HOT","HOTELS","HOTMAIL","HOUSE","HOW","HR","HSBC","HT","HU","HUGHES","HYATT","HYUNDAI","IBM","ICBC","ICE","ICU","ID","IE","IEEE","IFM","IKANO","IL","IM","IMAMAT","IMDB","IMMO","IMMOBILIEN","IN","INC","INDUSTRIES","INFINITI","INFO","ING","INK","INSTITUTE","INSURANCE","INSURE","INT","INTERNATIONAL","INTUIT","INVESTMENTS","IO","IPIRANGA","IQ","IR","IRISH","IS","ISMAILI","IST","ISTANBUL","IT","ITAU","ITV","JAGUAR","JAVA","JCB","JE","JEEP","JETZT","JEWELRY","JIO","JLL","JM","JMP","JNJ","JO","JOBS","JOBURG","JOT","JOY","JP","JPMORGAN","JPRS","JUEGOS","JUNIPER","KAUFEN","KDDI","KE","KERRYHOTELS","KERRYLOGISTICS","KERRYPROPERTIES","KFH","KG","KH","KI","KIA","KIDS","KIM","KINDLE","KITCHEN","KIWI","KM","KN","KOELN","KOMATSU","KOSHER","KP","KPMG","KPN","KR","KRD","KRED","KUOKGROUP","KW","KY","KYOTO","KZ","LA","LACAIXA","LAMBORGHINI","LAMER","LANCASTER","LAND","LANDROVER","LANXESS","LASALLE","LAT","LATINO","LATROBE","LAW","LAWYER","LB","LC","LDS","LEASE","LECLERC","LEFRAK","LEGAL","LEGO","LEXUS","LGBT","LI","LIDL","LIFE","LIFEINSURANCE","LIFESTYLE","LIGHTING","LIKE","LILLY","LIMITED","LIMO","LINCOLN","LINK","LIPSY","LIVE","LIVING","LK","LLC","LLP","LOAN","LOANS","LOCKER","LOCUS","LOL","LONDON","LOTTE","LOTTO","LOVE","LPL","LPLFINANCIAL","LR","LS","LT","LTD","LTDA","LU","LUNDBECK","LUXE","LUXURY","LV","LY","MA","MADRID","MAIF","MAISON","MAKEUP","MAN","MANAGEMENT","MANGO","MAP","MARKET","MARKETING","MARKETS","MARRIOTT","MARSHALLS","MATTEL","MBA","MC","MCKINSEY","MD","ME","MED","MEDIA","MEET","MELBOURNE","MEME","MEMORIAL","MEN","MENU","MERCKMSD","MG","MH","MIAMI","MICROSOFT","MIL","MINI","MINT","MIT","MITSUBISHI","MK","ML","MLB","MLS","MM","MMA","MN","MO","MOBI","MOBILE","MODA","MOE","MOI","MOM","MONASH","MONEY","MONSTER","MORMON","MORTGAGE","MOSCOW","MOTO","MOTORCYCLES","MOV","MOVIE","MP","MQ","MR","MS","MSD","MT","MTN","MTR","MU","MUSEUM","MUSIC","MV","MW","MX","MY","MZ","NA","NAB","NAGOYA","NAME","NATURA","NAVY","NBA","NC","NE","NEC","NET","NETBANK","NETFLIX","NETWORK","NEUSTAR","NEW","NEWS","NEXT","NEXTDIRECT","NEXUS","NF","NFL","NG","NGO","NHK","NI","NICO","NIKE","NIKON","NINJA","NISSAN","NISSAY","NL","NO","NOKIA","NORTON","NOW","NOWRUZ","NOWTV","NP","NR","NRA","NRW","NTT","NU","NYC","NZ","OBI","OBSERVER","OFFICE","OKINAWA","OLAYAN","OLAYANGROUP","OLLO","OM","OMEGA","ONE","ONG","ONL","ONLINE","OOO","OPEN","ORACLE","ORANGE","ORG","ORGANIC","ORIGINS","OSAKA","OTSUKA","OTT","OVH","PA","PAGE","PANASONIC","PARIS","PARS","PARTNERS","PARTS","PARTY","PAY","PCCW","PE","PET","PF","PFIZER","PG","PH","PHARMACY","PHD","PHILIPS","PHONE","PHOTO","PHOTOGRAPHY","PHOTOS","PHYSIO","PICS","PICTET","PICTURES","PID","PIN","PING","PINK","PIONEER","PIZZA","PK","PL","PLACE","PLAY","PLAYSTATION","PLUMBING","PLUS","PM","PN","PNC","POHL","POKER","POLITIE","PORN","POST","PR","PRAMERICA","PRAXI","PRESS","PRIME","PRO","PROD","PRODUCTIONS","PROF","PROGRESSIVE","PROMO","PROPERTIES","PROPERTY","PROTECTION","PRU","PRUDENTIAL","PS","PT","PUB","PW","PWC","PY","QA","QPON","QUEBEC","QUEST","RACING","RADIO","RE","READ","REALESTATE","REALTOR","REALTY","RECIPES","RED","REDSTONE","REDUMBRELLA","REHAB","REISE","REISEN","REIT","RELIANCE","REN","RENT","RENTALS","REPAIR","REPORT","REPUBLICAN","REST","RESTAURANT","REVIEW","REVIEWS","REXROTH","RICH","RICHARDLI","RICOH","RIL","RIO","RIP","RO","ROCKS","RODEO","ROGERS","ROOM","RS","RSVP","RU","RUGBY","RUHR","RUN","RW","RWE","RYUKYU","SA","SAARLAND","SAFE","SAFETY","SAKURA","SALE","SALON","SAMSCLUB","SAMSUNG","SANDVIK","SANDVIKCOROMANT","SANOFI","SAP","SARL","SAS","SAVE","SAXO","SB","SBI","SBS","SC","SCB","SCHAEFFLER","SCHMIDT","SCHOLARSHIPS","SCHOOL","SCHULE","SCHWARZ","SCIENCE","SCOT","SD","SE","SEARCH","SEAT","SECURE","SECURITY","SEEK","SELECT","SENER","SERVICES","SEVEN","SEW","SEX","SEXY","SFR","SG","SH","SHANGRILA","SHARP","SHAW","SHELL","SHIA","SHIKSHA","SHOES","SHOP","SHOPPING","SHOUJI","SHOW","SI","SILK","SINA","SINGLES","SITE","SJ","SK","SKI","SKIN","SKY","SKYPE","SL","SLING","SM","SMART","SMILE","SN","SNCF","SO","SOCCER","SOCIAL","SOFTBANK","SOFTWARE","SOHU","SOLAR","SOLUTIONS","SONG","SONY","SOY","SPA","SPACE","SPORT","SPOT","SR","SRL","SS","ST","STADA","STAPLES","STAR","STATEBANK","STATEFARM","STC","STCGROUP","STOCKHOLM","STORAGE","STORE","STREAM","STUDIO","STUDY","STYLE","SU","SUCKS","SUPPLIES","SUPPLY","SUPPORT","SURF","SURGERY","SUZUKI","SV","SWATCH","SWISS","SX","SY","SYDNEY","SYSTEMS","SZ","TAB","TAIPEI","TALK","TAOBAO","TARGET","TATAMOTORS","TATAR","TATTOO","TAX","TAXI","TC","TCI","TD","TDK","TEAM","TECH","TECHNOLOGY","TEL","TEMASEK","TENNIS","TEVA","TF","TG","TH","THD","THEATER","THEATRE","TIAA","TICKETS","TIENDA","TIPS","TIRES","TIROL","TJ","TJMAXX","TJX","TK","TKMAXX","TL","TM","TMALL","TN","TO","TODAY","TOKYO","TOOLS","TOP","TORAY","TOSHIBA","TOTAL","TOURS","TOWN","TOYOTA","TOYS","TR","TRADE","TRADING","TRAINING","TRAVEL","TRAVELERS","TRAVELERSINSURANCE","TRUST","TRV","TT","TUBE","TUI","TUNES","TUSHU","TV","TVS","TW","TZ","UA","UBANK","UBS","UG","UK","UNICOM","UNIVERSITY","UNO","UOL","UPS","US","UY","UZ","VA","VACATIONS","VANA","VANGUARD","VC","VE","VEGAS","VENTURES","VERISIGN","VERSICHERUNG","VET","VG","VI","VIAJES","VIDEO","VIG","VIKING","VILLAS","VIN","VIP","VIRGIN","VISA","VISION","VIVA","VIVO","VLAANDEREN","VN","VODKA","VOLVO","VOTE","VOTING","VOTO","VOYAGE","VU","WALES","WALMART","WALTER","WANG","WANGGOU","WATCH","WATCHES","WEATHER","WEATHERCHANNEL","WEBCAM","WEBER","WEBSITE","WED","WEDDING","WEIBO","WEIR","WF","WHOSWHO","WIEN","WIKI","WILLIAMHILL","WIN","WINDOWS","WINE","WINNERS","WME","WOLTERSKLUWER","WOODSIDE","WORK","WORKS","WORLD","WOW","WS","WTC","WTF","XBOX","XEROX","XFINITY","XIHUAN","XIN","XN--11B4C3D","XN--1CK2E1B","XN--1QQW23A","XN--2SCRJ9C","XN--30RR7Y","XN--3BST00M","XN--3DS443G","XN--3E0B707E","XN--3HCRJ9C","XN--3PXU8K","XN--42C2D9A","XN--45BR5CYL","XN--45BRJ9C","XN--45Q11C","XN--4DBRK0CE","XN--4GBRIM","XN--54B7FTA0CC","XN--55QW42G","XN--55QX5D","XN--5SU34J936BGSG","XN--5TZM5G","XN--6FRZ82G","XN--6QQ986B3XL","XN--80ADXHKS","XN--80AO21A","XN--80AQECDR1A","XN--80ASEHDB","XN--80ASWG","XN--8Y0A063A","XN--90A3AC","XN--90AE","XN--90AIS","XN--9DBQ2A","XN--9ET52U","XN--9KRT00A","XN--B4W605FERD","XN--BCK1B9A5DRE4C","XN--C1AVG","XN--C2BR7G","XN--CCK2B3B","XN--CCKWCXETD","XN--CG4BKI","XN--CLCHC0EA0B2G2A9GCD","XN--CZR694B","XN--CZRS0T","XN--CZRU2D","XN--D1ACJ3B","XN--D1ALF","XN--E1A4C","XN--ECKVDTC9D","XN--EFVY88H","XN--FCT429K","XN--FHBEI","XN--FIQ228C5HS","XN--FIQ64B","XN--FIQS8S","XN--FIQZ9S","XN--FJQ720A","XN--FLW351E","XN--FPCRJ9C3D","XN--FZC2C9E2C","XN--FZYS8D69UVGM","XN--G2XX48C","XN--GCKR3F0F","XN--GECRJ9C","XN--GK3AT1E","XN--H2BREG3EVE","XN--H2BRJ9C","XN--H2BRJ9C8C","XN--HXT814E","XN--I1B6B1A6A2E","XN--IMR513N","XN--IO0A7I","XN--J1AEF","XN--J1AMH","XN--J6W193G","XN--JLQ480N2RG","XN--JVR189M","XN--KCRX77D1X4A","XN--KPRW13D","XN--KPRY57D","XN--KPUT3I","XN--L1ACC","XN--LGBBAT1AD8J","XN--MGB9AWBF","XN--MGBA3A3EJT","XN--MGBA3A4F16A","XN--MGBA7C0BBN0A","XN--MGBAAM7A8H","XN--MGBAB2BD","XN--MGBAH1A3HJKRD","XN--MGBAI9AZGQP6J","XN--MGBAYH7GPA","XN--MGBBH1A","XN--MGBBH1A71E","XN--MGBC0A9AZCG","XN--MGBCA7DZDO","XN--MGBCPQ6GPA1A","XN--MGBERP4A5D4AR","XN--MGBGU82A","XN--MGBI4ECEXP","XN--MGBPL2FH","XN--MGBT3DHD","XN--MGBTX2B","XN--MGBX4CD0AB","XN--MIX891F","XN--MK1BU44C","XN--MXTQ1M","XN--NGBC5AZD","XN--NGBE9E0A","XN--NGBRX","XN--NODE","XN--NQV7F","XN--NQV7FS00EMA","XN--NYQY26A","XN--O3CW4H","XN--OGBPF8FL","XN--OTU796D","XN--P1ACF","XN--P1AI","XN--PGBS0DH","XN--PSSY2U","XN--Q7CE6A","XN--Q9JYB4C","XN--QCKA1PMC","XN--QXA6A","XN--QXAM","XN--RHQV96G","XN--ROVU88B","XN--RVC1E0AM3E","XN--S9BRJ9C","XN--SES554G","XN--T60B56A","XN--TCKWE","XN--TIQ49XQYJ","XN--UNUP4Y","XN--VERMGENSBERATER-CTB","XN--VERMGENSBERATUNG-PWB","XN--VHQUV","XN--VUQ861B","XN--W4R85EL8FHU5DNRA","XN--W4RS40L","XN--WGBH1C","XN--WGBL6A","XN--XHQ521B","XN--XKC2AL3HYE2A","XN--XKC2DL3A5EE0H","XN--Y9A3AQ","XN--YFRO4I67O","XN--YGBI2AMMX","XN--ZFR164B","XXX","XYZ","YACHTS","YAHOO","YAMAXUN","YANDEX","YE","YODOBASHI","YOGA","YOKOHAMA","YOU","YOUTUBE","YT","YUN","ZA","ZAPPOS","ZARA","ZERO","ZIP","ZM","ZONE","ZUERICH","ZW"];Xn.exports=new Set(Vn.tlds.map(e=>e.toLowerCase()));});var Qn=N((Xu,Jn)=>{var b0=i0(),O7=oa(),Xf=jn(),Zn=Hn(),Kn=ua(),Yn=Wn(),Wf=ha(),Kf=px(),Q0=g0(),r0={tlds:Yn instanceof Set?{tlds:{allow:Yn,deny:null}}:false,base64Regex:{true:{true:/^(?:[\w\-]{2}[\w\-]{2})*(?:[\w\-]{2}==|[\w\-]{3}=)?$/,false:/^(?:[A-Za-z0-9+\/]{2}[A-Za-z0-9+\/]{2})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/},false:{true:/^(?:[\w\-]{2}[\w\-]{2})*(?:[\w\-]{2}(==)?|[\w\-]{3}=?)?$/,false:/^(?:[A-Za-z0-9+\/]{2}[A-Za-z0-9+\/]{2})*(?:[A-Za-z0-9+\/]{2}(==)?|[A-Za-z0-9+\/]{3}=?)?$/}},dataUriRegex:/^data:[\w+.-]+\/[\w+.-]+;((charset=[\w-]+|base64),)?(.*)$/,hexRegex:{withPrefix:/^0x[0-9a-f]+$/i,withOptionalPrefix:/^(?:0x)?[0-9a-f]+$/i,withoutPrefix:/^[0-9a-f]+$/i},ipRegex:Zn.regex({cidr:"forbidden"}).regex,isoDurationRegex:/^P(?!$)(\d+Y)?(\d+M)?(\d+W)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?$/,guidBrackets:{"{":"}","[":"]","(":")","":""},guidVersions:{uuidv1:"1",uuidv2:"2",uuidv3:"3",uuidv4:"4",uuidv5:"5",uuidv6:"6",uuidv7:"7",uuidv8:"8"},guidSeparators:new Set([void 0,true,false,"-",":"]),normalizationForms:["NFC","NFD","NFKC","NFKD"]};Jn.exports=Kf.extend({type:"string",flags:{insensitive:{default:false},truncate:{default:false}},terms:{replacements:{init:null}},coerce:{from:"string",method(e,{schema:x,state:t,prefs:a}){let r=x.$_getRule("normalize");r&&(e=e.normalize(r.args.form));let n=x.$_getRule("case");n&&(e=n.args.direction==="upper"?e.toLocaleUpperCase():e.toLocaleLowerCase());let s=x.$_getRule("trim");if(s&&s.args.enabled&&(e=e.trim()),x.$_terms.replacements)for(let f of x.$_terms.replacements)e=e.replace(f.pattern,f.replacement);let i=x.$_getRule("hex");if(i&&i.args.options.byteAligned&&e.length%2!==0&&(e=`0${e}`),x.$_getRule("isoDate")){let f=r0.isoDate(e);f&&(e=f);}if(x._flags.truncate){let f=x.$_getRule("max");if(f){let c=f.args.limit;if(Q0.isResolvable(c)&&(c=c.resolve(e,t,a),!Q0.limit(c)))return {value:e,errors:x.$_createError("any.ref",c,{ref:f.args.limit,arg:"limit",reason:"must be a positive integer"},t,a)};e=e.slice(0,c);}}return {value:e}}},validate(e,{schema:x,error:t}){if(typeof e!="string")return {value:e,errors:t("string.base")};if(e===""){let a=x.$_getRule("min");return a&&a.args.limit===0?void 0:{value:e,errors:t("string.empty")}}},rules:{alphanum:{method(){return this.$_addRule("alphanum")},validate(e,x){return /^[a-zA-Z0-9]+$/.test(e)?e:x.error("string.alphanum")}},base64:{method(e={}){return Q0.assertOptions(e,["paddingRequired","urlSafe"]),e={urlSafe:false,paddingRequired:true,...e},b0(typeof e.paddingRequired=="boolean","paddingRequired must be boolean"),b0(typeof e.urlSafe=="boolean","urlSafe must be boolean"),this.$_addRule({name:"base64",args:{options:e}})},validate(e,x,{options:t}){return r0.base64Regex[t.paddingRequired][t.urlSafe].test(e)?e:x.error("string.base64")}},case:{method(e){return b0(["lower","upper"].includes(e),"Invalid case:",e),this.$_addRule({name:"case",args:{direction:e}})},validate(e,x,{direction:t}){return t==="lower"&&e===e.toLocaleLowerCase()||t==="upper"&&e===e.toLocaleUpperCase()?e:x.error(`string.${t}case`)},convert:true},creditCard:{method(){return this.$_addRule("creditCard")},validate(e,x){let t=e.length,a=0,r=1;for(;t--;){let n=e.charAt(t)*r;a=a+(n-(n>9)*9),r=r^3;}return a>0&&a%10===0?e:x.error("string.creditCard")}},dataUri:{method(e={}){return Q0.assertOptions(e,["paddingRequired"]),e={paddingRequired:true,...e},b0(typeof e.paddingRequired=="boolean","paddingRequired must be boolean"),this.$_addRule({name:"dataUri",args:{options:e}})},validate(e,x,{options:t}){let a=e.match(r0.dataUriRegex);return a&&(!a[2]||a[2]!=="base64"||r0.base64Regex[t.paddingRequired].false.test(a[3]))?e:x.error("string.dataUri")}},domain:{method(e){e&&Q0.assertOptions(e,["allowFullyQualified","allowUnicode","maxDomainSegments","minDomainSegments","tlds"]);let x=r0.addressOptions(e);return this.$_addRule({name:"domain",args:{options:e},address:x})},validate(e,x,t,{address:a}){return O7.isValid(e,a)?e:x.error("string.domain")}},email:{method(e={}){Q0.assertOptions(e,["allowFullyQualified","allowUnicode","ignoreLength","maxDomainSegments","minDomainSegments","multiple","separator","tlds"]),b0(e.multiple===void 0||typeof e.multiple=="boolean","multiple option must be an boolean");let x=r0.addressOptions(e),t=new RegExp(`\\s*[${e.separator?Kn(e.separator):","}]\\s*`);return this.$_addRule({name:"email",args:{options:e},regex:t,address:x})},validate(e,x,{options:t},{regex:a,address:r}){let n=t.multiple?e.split(a):[e],s=[];for(let i of n)Xf.isValid(i,r)||s.push(i);return s.length?x.error("string.email",{value:e,invalids:s}):e}},guid:{alias:"uuid",method(e={}){Q0.assertOptions(e,["version","separator"]);let x="";if(e.version){let r=[].concat(e.version);b0(r.length>=1,"version must have at least 1 valid version specified");let n=new Set;for(let s=0;s<r.length;++s){let i=r[s];b0(typeof i=="string","version at position "+s+" must be a string");let f=r0.guidVersions[i.toLowerCase()];b0(f,"version at position "+s+" must be one of "+Object.keys(r0.guidVersions).join(", ")),b0(!n.has(f),"version at position "+s+" must not be a duplicate"),x+=f,n.add(f);}}b0(r0.guidSeparators.has(e.separator),'separator must be one of true, false, "-", or ":"');let t=e.separator===void 0?"[:-]?":e.separator===true?"[:-]":e.separator===false?"[]?":`\\${e.separator}`,a=new RegExp(`^([\\[{\\(]?)[0-9A-F]{8}(${t})[0-9A-F]{4}\\2?[${x||"0-9A-F"}][0-9A-F]{3}\\2?[${x?"89AB":"0-9A-F"}][0-9A-F]{3}\\2?[0-9A-F]{12}([\\]}\\)]?)$`,"i");return this.$_addRule({name:"guid",args:{options:e},regex:a})},validate(e,x,t,{regex:a}){let r=a.exec(e);return !r||r0.guidBrackets[r[1]]!==r[r.length-1]?x.error("string.guid"):e}},hex:{method(e={}){return Q0.assertOptions(e,["byteAligned","prefix"]),e={byteAligned:false,prefix:false,...e},b0(typeof e.byteAligned=="boolean","byteAligned must be boolean"),b0(typeof e.prefix=="boolean"||e.prefix==="optional",'prefix must be boolean or "optional"'),this.$_addRule({name:"hex",args:{options:e}})},validate(e,x,{options:t}){return (t.prefix==="optional"?r0.hexRegex.withOptionalPrefix:t.prefix===true?r0.hexRegex.withPrefix:r0.hexRegex.withoutPrefix).test(e)?t.byteAligned&&e.length%2!==0?x.error("string.hexAlign"):e:x.error("string.hex")}},hostname:{method(){return this.$_addRule("hostname")},validate(e,x){return O7.isValid(e,{minDomainSegments:1})||r0.ipRegex.test(e)?e:x.error("string.hostname")}},insensitive:{method(){return this.$_setFlag("insensitive",true)}},ip:{method(e={}){Q0.assertOptions(e,["cidr","version"]);let{cidr:x,versions:t,regex:a}=Zn.regex(e),r=e.version?t:void 0;return this.$_addRule({name:"ip",args:{options:{cidr:x,version:r}},regex:a})},validate(e,x,{options:t},{regex:a}){return a.test(e)?e:t.version?x.error("string.ipVersion",{value:e,cidr:t.cidr,version:t.version}):x.error("string.ip",{value:e,cidr:t.cidr})}},isoDate:{method(){return this.$_addRule("isoDate")},validate(e,{error:x}){return r0.isoDate(e)?e:x("string.isoDate")}},isoDuration:{method(){return this.$_addRule("isoDuration")},validate(e,x){return r0.isoDurationRegex.test(e)?e:x.error("string.isoDuration")}},length:{method(e,x){return r0.length(this,"length",e,"=",x)},validate(e,x,{limit:t,encoding:a},{name:r,operator:n,args:s}){let i=a?Buffer&&Buffer.byteLength(e,a):e.length;return Q0.compare(i,t,n)?e:x.error("string."+r,{limit:s.limit,value:e,encoding:a})},args:[{name:"limit",ref:true,assert:Q0.limit,message:"must be a positive integer"},"encoding"]},lowercase:{method(){return this.case("lower")}},max:{method(e,x){return r0.length(this,"max",e,"<=",x)},args:["limit","encoding"]},min:{method(e,x){return r0.length(this,"min",e,">=",x)},args:["limit","encoding"]},normalize:{method(e="NFC"){return b0(r0.normalizationForms.includes(e),"normalization form must be one of "+r0.normalizationForms.join(", ")),this.$_addRule({name:"normalize",args:{form:e}})},validate(e,{error:x},{form:t}){return e===e.normalize(t)?e:x("string.normalize",{value:e,form:t})},convert:true},pattern:{alias:"regex",method(e,x={}){b0(e instanceof RegExp,"regex must be a RegExp"),b0(!e.flags.includes("g")&&!e.flags.includes("y"),"regex should not use global or sticky mode"),typeof x=="string"&&(x={name:x}),Q0.assertOptions(x,["invert","name"]);let t=["string.pattern",x.invert?".invert":"",x.name?".name":".base"].join("");return this.$_addRule({name:"pattern",args:{regex:e,options:x},errorCode:t})},validate(e,x,{regex:t,options:a},{errorCode:r}){return t.test(e)^a.invert?e:x.error(r,{name:a.name,regex:t,value:e})},args:["regex","options"],multi:true},replace:{method(e,x){typeof e=="string"&&(e=new RegExp(Kn(e),"g")),b0(e instanceof RegExp,"pattern must be a RegExp"),b0(typeof x=="string","replacement must be a String");let t=this.clone();return t.$_terms.replacements||(t.$_terms.replacements=[]),t.$_terms.replacements.push({pattern:e,replacement:x}),t}},token:{method(){return this.$_addRule("token")},validate(e,x){return /^\w+$/.test(e)?e:x.error("string.token")}},trim:{method(e=true){return b0(typeof e=="boolean","enabled must be a boolean"),this.$_addRule({name:"trim",args:{enabled:e}})},validate(e,x,{enabled:t}){return !t||e===e.trim()?e:x.error("string.trim")},convert:true},truncate:{method(e=true){return b0(typeof e=="boolean","enabled must be a boolean"),this.$_setFlag("truncate",e)}},uppercase:{method(){return this.case("upper")}},uri:{method(e={}){Q0.assertOptions(e,["allowRelative","allowQuerySquareBrackets","domain","relativeOnly","scheme","encodeUri"]),e.domain&&Q0.assertOptions(e.domain,["allowFullyQualified","allowUnicode","maxDomainSegments","minDomainSegments","tlds"]);let{regex:x,scheme:t}=Wf.regex(e),a=e.domain?r0.addressOptions(e.domain):null;return this.$_addRule({name:"uri",args:{options:e},regex:x,domain:a,scheme:t})},validate(e,x,{options:t},{regex:a,domain:r,scheme:n}){if(["http:/","https:/"].includes(e))return x.error("string.uri");let s=a.exec(e);if(!s&&x.prefs.convert&&t.encodeUri){let i=encodeURI(e);s=a.exec(i),s&&(e=i);}if(s){let i=s[1]||s[2];return r&&(!t.allowRelative||i)&&!O7.isValid(i,r)?x.error("string.domain",{value:i}):e}return t.relativeOnly?x.error("string.uriRelativeOnly"):t.scheme?x.error("string.uriCustomScheme",{scheme:n,value:e}):x.error("string.uri")}}},manifest:{build(e,x){if(x.replacements)for(let{pattern:t,replacement:a}of x.replacements)e=e.replace(t,a);return e}},messages:{"string.alphanum":"{{#label}} must only contain alpha-numeric characters","string.base":"{{#label}} must be a string","string.base64":"{{#label}} must be a valid base64 string","string.creditCard":"{{#label}} must be a credit card","string.dataUri":"{{#label}} must be a valid dataUri string","string.domain":"{{#label}} must contain a valid domain name","string.email":"{{#label}} must be a valid email","string.empty":"{{#label}} is not allowed to be empty","string.guid":"{{#label}} must be a valid GUID","string.hex":"{{#label}} must only contain hexadecimal characters","string.hexAlign":"{{#label}} hex decoded representation must be byte aligned","string.hostname":"{{#label}} must be a valid hostname","string.ip":"{{#label}} must be a valid ip address with a {{#cidr}} CIDR","string.ipVersion":"{{#label}} must be a valid ip address of one of the following versions {{#version}} with a {{#cidr}} CIDR","string.isoDate":"{{#label}} must be in iso format","string.isoDuration":"{{#label}} must be a valid ISO 8601 duration","string.length":"{{#label}} length must be {{#limit}} characters long","string.lowercase":"{{#label}} must only contain lowercase characters","string.max":"{{#label}} length must be less than or equal to {{#limit}} characters long","string.min":"{{#label}} length must be at least {{#limit}} characters long","string.normalize":"{{#label}} must be unicode normalized in the {{#form}} form","string.token":"{{#label}} must only contain alpha-numeric and underscore characters","string.pattern.base":"{{#label}} with value {:[.]} fails to match the required pattern: {{#regex}}","string.pattern.name":"{{#label}} with value {:[.]} fails to match the {{#name}} pattern","string.pattern.invert.base":"{{#label}} with value {:[.]} matches the inverted pattern: {{#regex}}","string.pattern.invert.name":"{{#label}} with value {:[.]} matches the inverted {{#name}} pattern","string.trim":"{{#label}} must not have leading or trailing whitespace","string.uri":"{{#label}} must be a valid uri","string.uriCustomScheme":"{{#label}} must be a valid uri with a scheme matching the {{#scheme}} pattern","string.uriRelativeOnly":"{{#label}} must be a valid relative uri","string.uppercase":"{{#label}} must only contain uppercase characters"}});r0.addressOptions=function(e){if(!e)return r0.tlds||e;if(b0(e.minDomainSegments===void 0||Number.isSafeInteger(e.minDomainSegments)&&e.minDomainSegments>0,"minDomainSegments must be a positive integer"),b0(e.maxDomainSegments===void 0||Number.isSafeInteger(e.maxDomainSegments)&&e.maxDomainSegments>0,"maxDomainSegments must be a positive integer"),e.tlds===false)return e;if(e.tlds===true||e.tlds===void 0)return b0(r0.tlds,"Built-in TLD list disabled"),Object.assign({},e,r0.tlds);b0(typeof e.tlds=="object","tlds must be true, false, or an object");let x=e.tlds.deny;if(x)return Array.isArray(x)&&(e=Object.assign({},e,{tlds:{deny:new Set(x)}})),b0(e.tlds.deny instanceof Set,"tlds.deny must be an array, Set, or boolean"),b0(!e.tlds.allow,"Cannot specify both tlds.allow and tlds.deny lists"),r0.validateTlds(e.tlds.deny,"tlds.deny"),e;let t=e.tlds.allow;return t?t===true?(b0(r0.tlds,"Built-in TLD list disabled"),Object.assign({},e,r0.tlds)):(Array.isArray(t)&&(e=Object.assign({},e,{tlds:{allow:new Set(t)}})),b0(e.tlds.allow instanceof Set,"tlds.allow must be an array, Set, or boolean"),r0.validateTlds(e.tlds.allow,"tlds.allow"),e):e};r0.validateTlds=function(e,x){for(let t of e)b0(O7.isValid(t,{minDomainSegments:1,maxDomainSegments:1}),`${x} must contain valid top level domain names`);};r0.isoDate=function(e){if(!Q0.isIsoDate(e))return null;/.*T.*[+-]\d\d$/.test(e)&&(e+="00");let x=new Date(e);return isNaN(x.getTime())?null:x.toISOString()};r0.length=function(e,x,t,a,r){return b0(!r||Buffer&&Buffer.isEncoding(r),"Invalid encoding:",r),e.$_addRule({name:x,method:"length",args:{limit:t,encoding:r},operator:a})};});var es=N((Wu,xs)=>{var T7=i0(),Yf=px(),pa={};pa.Map=class extends Map{slice(){return new pa.Map(this)}};xs.exports=Yf.extend({type:"symbol",terms:{map:{init:new pa.Map}},coerce:{method(e,{schema:x,error:t}){let a=x.$_terms.map.get(e);return a&&(e=a),!x._flags.only||typeof e=="symbol"?{value:e}:{value:e,errors:t("symbol.map",{map:x.$_terms.map})}}},validate(e,{error:x}){if(typeof e!="symbol")return {value:e,errors:x("symbol.base")}},rules:{map:{method(e){e&&!e[Symbol.iterator]&&typeof e=="object"&&(e=Object.entries(e)),T7(e&&e[Symbol.iterator],"Iterable must be an iterable or object");let x=this.clone(),t=[];for(let a of e){T7(a&&a[Symbol.iterator],"Entry must be an iterable");let[r,n]=a;T7(typeof r!="object"&&typeof r!="function"&&typeof r!="symbol","Key must not be of type object, function, or Symbol"),T7(typeof n=="symbol","Value must be a Symbol"),x.$_terms.map.set(r,n),t.push(n);}return x.valid(...t)}}},manifest:{build(e,x){return x.map&&(e=e.map(x.map)),e}},messages:{"symbol.base":"{{#label}} must be a symbol","symbol.map":"{{#label}} must be one of {{#map}}"}});});var rs=N((Yu,as)=>{var Zf=i0(),Jf=px(),ts=g0();as.exports=Jf.extend({type:"binary",coerce:{from:["string","object"],method(e,{schema:x}){if(typeof e=="string"||e!==null&&e.type==="Buffer")try{return {value:Buffer.from(e,x._flags.encoding)}}catch{}}},validate(e,{error:x}){if(!Buffer.isBuffer(e))return {value:e,errors:x("binary.base")}},rules:{encoding:{method(e){return Zf(Buffer.isEncoding(e),"Invalid encoding:",e),this.$_setFlag("encoding",e)}},length:{method(e){return this.$_addRule({name:"length",method:"length",args:{limit:e},operator:"="})},validate(e,x,{limit:t},{name:a,operator:r,args:n}){return ts.compare(e.length,t,r)?e:x.error("binary."+a,{limit:n.limit,value:e})},args:[{name:"limit",ref:true,assert:ts.limit,message:"must be a positive integer"}]},max:{method(e){return this.$_addRule({name:"max",method:"length",args:{limit:e},operator:"<="})}},min:{method(e){return this.$_addRule({name:"min",method:"length",args:{limit:e},operator:">="})}}},cast:{string:{from:e=>Buffer.isBuffer(e),to(e,x){return e.toString()}}},messages:{"binary.base":"{{#label}} must be a buffer or a string","binary.length":"{{#label}} must be {{#limit}} bytes","binary.max":"{{#label}} must be less than or equal to {{#limit}} bytes","binary.min":"{{#label}} must be at least {{#limit}} bytes"}});});var Ut=N((Zu,fs)=>{var z6=i0(),Qf=Y0(),x3=Ht(),q6=g0(),e3=M6(),ga=t6(),t3=Vt(),ns=Kt(),ma=a6(),ss=m6(),is=Zt(),R7,L0={types:{alternatives:on(),any:px(),array:un(),boolean:gn(),date:_n(),function:Fn(),link:Ln(),number:Mn(),object:Un(),string:Qn(),symbol:es()},aliases:{alt:"alternatives",bool:"boolean",func:"function"}};Buffer&&(L0.types.binary=rs());L0.root=function(){let e={_types:new Set(Object.keys(L0.types))};for(let x of e._types)e[x]=function(...t){return z6(!t.length||["alternatives","link","object"].includes(x),"The",x,"type does not allow arguments"),L0.generate(this,L0.types[x],t)};for(let x of ["allow","custom","disallow","equal","exist","forbidden","invalid","not","only","optional","options","prefs","preferences","required","strip","valid","when"])e[x]=function(...t){return this.any()[x](...t)};Object.assign(e,L0.methods);for(let x in L0.aliases){let t=L0.aliases[x];e[x]=e[t];}return e.x=e.expression,is.setup&&is.setup(e),e};L0.methods={ValidationError:ga.ValidationError,version:q6.version,cache:x3.provider,assert(e,x,...t){L0.assert(e,x,true,t);},attempt(e,x,...t){return L0.assert(e,x,false,t)},build(e){return z6(typeof ns.build=="function","Manifest functionality disabled"),ns.build(this,e)},checkPreferences(e){q6.checkPreferences(e);},compile(e,x){return e3.compile(this,e,x)},defaults(e){z6(typeof e=="function","modifier must be a function");let x=Object.assign({},this);for(let t of x._types){let a=e(x[t]());z6(q6.isSchema(a),"modifier must return a valid schema object"),x[t]=function(...r){return L0.generate(this,a,r)};}return x},expression(...e){return new ss(...e)},extend(...e){q6.verifyFlat(e,"extend"),R7=R7||u7(),z6(e.length,"You need to provide at least one extension"),this.assert(e,R7.extensions);let x=Object.assign({},this);x._types=new Set(x._types);for(let t of e){typeof t=="function"&&(t=t(x)),this.assert(t,R7.extension);let a=L0.expandExtension(t,x);for(let r of a){z6(x[r.type]===void 0||x._types.has(r.type),"Cannot override name",r.type);let n=r.base||this.any(),s=t3.type(n,r);x._types.add(r.type),x[r.type]=function(...i){return L0.generate(this,s,i)};}}return x},isError:ga.ValidationError.isError,isExpression:ss.isTemplate,isRef:ma.isRef,isSchema:q6.isSchema,in(...e){return ma.in(...e)},override:q6.symbols.override,ref(...e){return ma.create(...e)},types(){let e={};for(let x of this._types)e[x]=this[x]();for(let x in L0.aliases)e[x]=this[x]();return e}};L0.assert=function(e,x,t,a){let r=a[0]instanceof Error||typeof a[0]=="string"?a[0]:null,n=r!==null?a[1]:a[0],s=x.validate(e,q6.preferences({errors:{stack:true}},n||{})),i=s.error;if(!i)return s.value;if(r instanceof Error)throw r;let f=t&&typeof i.annotate=="function"?i.annotate():i.message;throw i instanceof ga.ValidationError||(i=Qf(i)),i.message=r?`${r} ${f}`:f,i};L0.generate=function(e,x,t){return z6(e,"Must be invoked on a Joi instance."),x.$_root=e,!x._definition.args||!t.length?x:x._definition.args(x,...t)};L0.expandExtension=function(e,x){if(typeof e.type=="string")return [e];let t=[];for(let a of x._types)if(e.type.test(a)){let r=Object.assign({},e);r.type=a,r.base=x[a](),t.push(r);}return t};fs.exports=L0.root();});var qs=N((yh,F7)=>{var hs,ps,ms,gs,ys,ws,vs,_s,As,Cs,Ss,$s,Is,P7,wa,Es,Os,Ts,ue,Rs,ks,Ps,Ds,Fs,Ns,Ls,Bs,Ms,D7,Gs,Us,js;(function(e){var x=typeof global=="object"?global:typeof self=="object"?self:typeof this=="object"?this:{};typeof define=="function"&&define.amd?define("tslib",["exports"],function(a){e(t(x,t(a)));}):typeof F7=="object"&&typeof F7.exports=="object"?e(t(x,t(F7.exports))):e(t(x));function t(a,r){return a!==x&&(typeof Object.create=="function"?Object.defineProperty(a,"__esModule",{value:true}):a.__esModule=true),function(n,s){return a[n]=r?r(n,s):s}}})(function(e){var x=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,s){n.__proto__=s;}||function(n,s){for(var i in s)Object.prototype.hasOwnProperty.call(s,i)&&(n[i]=s[i]);};hs=function(n,s){if(typeof s!="function"&&s!==null)throw new TypeError("Class extends value "+String(s)+" is not a constructor or null");x(n,s);function i(){this.constructor=n;}n.prototype=s===null?Object.create(s):(i.prototype=s.prototype,new i);},ps=Object.assign||function(n){for(var s,i=1,f=arguments.length;i<f;i++){s=arguments[i];for(var c in s)Object.prototype.hasOwnProperty.call(s,c)&&(n[c]=s[c]);}return n},ms=function(n,s){var i={};for(var f in n)Object.prototype.hasOwnProperty.call(n,f)&&s.indexOf(f)<0&&(i[f]=n[f]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var c=0,f=Object.getOwnPropertySymbols(n);c<f.length;c++)s.indexOf(f[c])<0&&Object.prototype.propertyIsEnumerable.call(n,f[c])&&(i[f[c]]=n[f[c]]);return i},gs=function(n,s,i,f){var c=arguments.length,d=c<3?s:f===null?f=Object.getOwnPropertyDescriptor(s,i):f,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")d=Reflect.decorate(n,s,i,f);else for(var u=n.length-1;u>=0;u--)(o=n[u])&&(d=(c<3?o(d):c>3?o(s,i,d):o(s,i))||d);return c>3&&d&&Object.defineProperty(s,i,d),d},ys=function(n,s){return function(i,f){s(i,f,n);}},ws=function(n,s,i,f,c,d){function o(T){if(T!==void 0&&typeof T!="function")throw new TypeError("Function expected");return T}for(var u=f.kind,p=u==="getter"?"get":u==="setter"?"set":"value",b=!s&&n?f.static?n:n.prototype:null,m=s||(b?Object.getOwnPropertyDescriptor(b,f.name):{}),v,$=false,y=i.length-1;y>=0;y--){var h={};for(var S in f)h[S]=S==="access"?{}:f[S];for(var S in f.access)h.access[S]=f.access[S];h.addInitializer=function(T){if($)throw new TypeError("Cannot add initializers after decoration has completed");d.push(o(T||null));};var E=(0, i[y])(u==="accessor"?{get:m.get,set:m.set}:m[p],h);if(u==="accessor"){if(E===void 0)continue;if(E===null||typeof E!="object")throw new TypeError("Object expected");(v=o(E.get))&&(m.get=v),(v=o(E.set))&&(m.set=v),(v=o(E.init))&&c.unshift(v);}else (v=o(E))&&(u==="field"?c.unshift(v):m[p]=v);}b&&Object.defineProperty(b,f.name,m),$=true;},vs=function(n,s,i){for(var f=arguments.length>2,c=0;c<s.length;c++)i=f?s[c].call(n,i):s[c].call(n);return f?i:void 0},_s=function(n){return typeof n=="symbol"?n:"".concat(n)},As=function(n,s,i){return typeof s=="symbol"&&(s=s.description?"[".concat(s.description,"]"):""),Object.defineProperty(n,"name",{configurable:true,value:i?"".concat(i," ",s):s})},Cs=function(n,s){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,s)},Ss=function(n,s,i,f){function c(d){return d instanceof i?d:new i(function(o){o(d);})}return new(i||(i=Promise))(function(d,o){function u(m){try{b(f.next(m));}catch(v){o(v);}}function p(m){try{b(f.throw(m));}catch(v){o(v);}}function b(m){m.done?d(m.value):c(m.value).then(u,p);}b((f=f.apply(n,s||[])).next());})},$s=function(n,s){var i={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},f,c,d,o=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return o.next=u(0),o.throw=u(1),o.return=u(2),typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function u(b){return function(m){return p([b,m])}}function p(b){if(f)throw new TypeError("Generator is already executing.");for(;o&&(o=0,b[0]&&(i=0)),i;)try{if(f=1,c&&(d=b[0]&2?c.return:b[0]?c.throw||((d=c.return)&&d.call(c),0):c.next)&&!(d=d.call(c,b[1])).done)return d;switch(c=0,d&&(b=[b[0]&2,d.value]),b[0]){case 0:case 1:d=b;break;case 4:return i.label++,{value:b[1],done:!1};case 5:i.label++,c=b[1],b=[0];continue;case 7:b=i.ops.pop(),i.trys.pop();continue;default:if(d=i.trys,!(d=d.length>0&&d[d.length-1])&&(b[0]===6||b[0]===2)){i=0;continue}if(b[0]===3&&(!d||b[1]>d[0]&&b[1]<d[3])){i.label=b[1];break}if(b[0]===6&&i.label<d[1]){i.label=d[1],d=b;break}if(d&&i.label<d[2]){i.label=d[2],i.ops.push(b);break}d[2]&&i.ops.pop(),i.trys.pop();continue}b=s.call(n,i);}catch(m){b=[6,m],c=0;}finally{f=d=0;}if(b[0]&5)throw b[1];return {value:b[0]?b[1]:void 0,done:true}}},Is=function(n,s){for(var i in n)i!=="default"&&!Object.prototype.hasOwnProperty.call(s,i)&&D7(s,n,i);},D7=Object.create?(function(n,s,i,f){f===void 0&&(f=i);var c=Object.getOwnPropertyDescriptor(s,i);(!c||("get"in c?!s.__esModule:c.writable||c.configurable))&&(c={enumerable:true,get:function(){return s[i]}}),Object.defineProperty(n,f,c);}):(function(n,s,i,f){f===void 0&&(f=i),n[f]=s[i];}),P7=function(n){var s=typeof Symbol=="function"&&Symbol.iterator,i=s&&n[s],f=0;if(i)return i.call(n);if(n&&typeof n.length=="number")return {next:function(){return n&&f>=n.length&&(n=void 0),{value:n&&n[f++],done:!n}}};throw new TypeError(s?"Object is not iterable.":"Symbol.iterator is not defined.")},wa=function(n,s){var i=typeof Symbol=="function"&&n[Symbol.iterator];if(!i)return n;var f=i.call(n),c,d=[],o;try{for(;(s===void 0||s-- >0)&&!(c=f.next()).done;)d.push(c.value);}catch(u){o={error:u};}finally{try{c&&!c.done&&(i=f.return)&&i.call(f);}finally{if(o)throw o.error}}return d},Es=function(){for(var n=[],s=0;s<arguments.length;s++)n=n.concat(wa(arguments[s]));return n},Os=function(){for(var n=0,s=0,i=arguments.length;s<i;s++)n+=arguments[s].length;for(var f=Array(n),c=0,s=0;s<i;s++)for(var d=arguments[s],o=0,u=d.length;o<u;o++,c++)f[c]=d[o];return f},Ts=function(n,s,i){if(i||arguments.length===2)for(var f=0,c=s.length,d;f<c;f++)(d||!(f in s))&&(d||(d=Array.prototype.slice.call(s,0,f)),d[f]=s[f]);return n.concat(d||Array.prototype.slice.call(s))},ue=function(n){return this instanceof ue?(this.v=n,this):new ue(n)},Rs=function(n,s,i){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var f=i.apply(n,s||[]),c,d=[];return c=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),u("next"),u("throw"),u("return",o),c[Symbol.asyncIterator]=function(){return this},c;function o(y){return function(h){return Promise.resolve(h).then(y,v)}}function u(y,h){f[y]&&(c[y]=function(S){return new Promise(function(E,T){d.push([y,S,E,T])>1||p(y,S);})},h&&(c[y]=h(c[y])));}function p(y,h){try{b(f[y](h));}catch(S){$(d[0][3],S);}}function b(y){y.value instanceof ue?Promise.resolve(y.value.v).then(m,v):$(d[0][2],y);}function m(y){p("next",y);}function v(y){p("throw",y);}function $(y,h){y(h),d.shift(),d.length&&p(d[0][0],d[0][1]);}},ks=function(n){var s,i;return s={},f("next"),f("throw",function(c){throw c}),f("return"),s[Symbol.iterator]=function(){return this},s;function f(c,d){s[c]=n[c]?function(o){return (i=!i)?{value:ue(n[c](o)),done:false}:d?d(o):o}:d;}},Ps=function(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var s=n[Symbol.asyncIterator],i;return s?s.call(n):(n=typeof P7=="function"?P7(n):n[Symbol.iterator](),i={},f("next"),f("throw"),f("return"),i[Symbol.asyncIterator]=function(){return this},i);function f(d){i[d]=n[d]&&function(o){return new Promise(function(u,p){o=n[d](o),c(u,p,o.done,o.value);})};}function c(d,o,u,p){Promise.resolve(p).then(function(b){d({value:b,done:u});},o);}},Ds=function(n,s){return Object.defineProperty?Object.defineProperty(n,"raw",{value:s}):n.raw=s,n};var t=Object.create?(function(n,s){Object.defineProperty(n,"default",{enumerable:true,value:s});}):function(n,s){n.default=s;},a=function(n){return a=Object.getOwnPropertyNames||function(s){var i=[];for(var f in s)Object.prototype.hasOwnProperty.call(s,f)&&(i[i.length]=f);return i},a(n)};Fs=function(n){if(n&&n.__esModule)return n;var s={};if(n!=null)for(var i=a(n),f=0;f<i.length;f++)i[f]!=="default"&&D7(s,n,i[f]);return t(s,n),s},Ns=function(n){return n&&n.__esModule?n:{default:n}},Ls=function(n,s,i,f){if(i==="a"&&!f)throw new TypeError("Private accessor was defined without a getter");if(typeof s=="function"?n!==s||!f:!s.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return i==="m"?f:i==="a"?f.call(n):f?f.value:s.get(n)},Bs=function(n,s,i,f,c){if(f==="m")throw new TypeError("Private method is not writable");if(f==="a"&&!c)throw new TypeError("Private accessor was defined without a setter");if(typeof s=="function"?n!==s||!c:!s.has(n))throw new TypeError("Cannot write private member to an object whose class did not declare it");return f==="a"?c.call(n,i):c?c.value=i:s.set(n,i),i},Ms=function(n,s){if(s===null||typeof s!="object"&&typeof s!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof n=="function"?s===n:n.has(s)},Gs=function(n,s,i){if(s!=null){if(typeof s!="object"&&typeof s!="function")throw new TypeError("Object expected.");var f,c;if(i){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");f=s[Symbol.asyncDispose];}if(f===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");f=s[Symbol.dispose],i&&(c=f);}if(typeof f!="function")throw new TypeError("Object not disposable.");c&&(f=function(){try{c.call(this);}catch(d){return Promise.reject(d)}}),n.stack.push({value:s,dispose:f,async:i});}else i&&n.stack.push({async:true});return s};var r=typeof SuppressedError=="function"?SuppressedError:function(n,s,i){var f=new Error(i);return f.name="SuppressedError",f.error=n,f.suppressed=s,f};Us=function(n){function s(d){n.error=n.hasError?new r(d,n.error,"An error was suppressed during disposal."):d,n.hasError=true;}var i,f=0;function c(){for(;i=n.stack.pop();)try{if(!i.async&&f===1)return f=0,n.stack.push(i),Promise.resolve().then(c);if(i.dispose){var d=i.dispose.call(i.value);if(i.async)return f|=2,Promise.resolve(d).then(c,function(o){return s(o),c()})}else f|=1;}catch(o){s(o);}if(f===1)return n.hasError?Promise.reject(n.error):Promise.resolve();if(n.hasError)throw n.error}return c()},js=function(n,s){return typeof n=="string"&&/^\.\.?\//.test(n)?n.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(i,f,c,d,o){return f?s?".jsx":".js":c&&(!d||!o)?i:c+d+"."+o.toLowerCase()+"js"}):n},e("__extends",hs),e("__assign",ps),e("__rest",ms),e("__decorate",gs),e("__param",ys),e("__esDecorate",ws),e("__runInitializers",vs),e("__propKey",_s),e("__setFunctionName",As),e("__metadata",Cs),e("__awaiter",Ss),e("__generator",$s),e("__exportStar",Is),e("__createBinding",D7),e("__values",P7),e("__read",wa),e("__spread",Es),e("__spreadArrays",Os),e("__spreadArray",Ts),e("__await",ue),e("__asyncGenerator",Rs),e("__asyncDelegator",ks),e("__asyncValues",Ps),e("__makeTemplateObject",Ds),e("__importStar",Fs),e("__importDefault",Ns),e("__classPrivateFieldGet",Ls),e("__classPrivateFieldSet",Bs),e("__classPrivateFieldIn",Ms),e("__addDisposableResource",Gs),e("__disposeResources",Us),e("__rewriteRelativeImportExtension",js);});});var Vs=N((xp,Hs)=>{Hs.exports=function e(x,t){if(x===t)return true;if(x&&t&&typeof x=="object"&&typeof t=="object"){if(x.constructor!==t.constructor)return false;var a,r,n;if(Array.isArray(x)){if(a=x.length,a!=t.length)return false;for(r=a;r--!==0;)if(!e(x[r],t[r]))return false;return true}if(x.constructor===RegExp)return x.source===t.source&&x.flags===t.flags;if(x.valueOf!==Object.prototype.valueOf)return x.valueOf()===t.valueOf();if(x.toString!==Object.prototype.toString)return x.toString()===t.toString();if(n=Object.keys(x),a=n.length,a!==Object.keys(t).length)return false;for(r=a;r--!==0;)if(!Object.prototype.hasOwnProperty.call(t,n[r]))return false;for(r=a;r--!==0;){var s=n[r];if(!e(x[s],t[s]))return false}return true}return x!==x&&t!==t};});var Ks=N(N7=>{N7.byteLength=I3;N7.toByteArray=O3;N7.fromByteArray=k3;var Mx=[],yx=[],$3=typeof Uint8Array<"u"?Uint8Array:Array,va="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(V6=0,Xs=va.length;V6<Xs;++V6)Mx[V6]=va[V6],yx[va.charCodeAt(V6)]=V6;var V6,Xs;yx[45]=62;yx[95]=63;function Ws(e){var x=e.length;if(x%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var t=e.indexOf("=");t===-1&&(t=x);var a=t===x?0:4-t%4;return [t,a]}function I3(e){var x=Ws(e),t=x[0],a=x[1];return (t+a)*3/4-a}function E3(e,x,t){return (x+t)*3/4-t}function O3(e){var x,t=Ws(e),a=t[0],r=t[1],n=new $3(E3(e,a,r)),s=0,i=r>0?a-4:a,f;for(f=0;f<i;f+=4)x=yx[e.charCodeAt(f)]<<18|yx[e.charCodeAt(f+1)]<<12|yx[e.charCodeAt(f+2)]<<6|yx[e.charCodeAt(f+3)],n[s++]=x>>16&255,n[s++]=x>>8&255,n[s++]=x&255;return r===2&&(x=yx[e.charCodeAt(f)]<<2|yx[e.charCodeAt(f+1)]>>4,n[s++]=x&255),r===1&&(x=yx[e.charCodeAt(f)]<<10|yx[e.charCodeAt(f+1)]<<4|yx[e.charCodeAt(f+2)]>>2,n[s++]=x>>8&255,n[s++]=x&255),n}function T3(e){return Mx[e>>18&63]+Mx[e>>12&63]+Mx[e>>6&63]+Mx[e&63]}function R3(e,x,t){for(var a,r=[],n=x;n<t;n+=3)a=(e[n]<<16&16711680)+(e[n+1]<<8&65280)+(e[n+2]&255),r.push(T3(a));return r.join("")}function k3(e){for(var x,t=e.length,a=t%3,r=[],n=16383,s=0,i=t-a;s<i;s+=n)r.push(R3(e,s,s+n>i?i:s+n));return a===1?(x=e[t-1],r.push(Mx[x>>2]+Mx[x<<4&63]+"==")):a===2&&(x=(e[t-2]<<8)+e[t-1],r.push(Mx[x>>10]+Mx[x>>4&63]+Mx[x<<2&63]+"=")),r.join("")}});var Ia=N((tp,n4)=>{var Ca=0,Qs=-3;function Xe(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288);}function P3(e,x){this.source=e,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=x,this.destLen=0,this.ltree=new Xe,this.dtree=new Xe;}var x4=new Xe,e4=new Xe,Sa=new Uint8Array(30),$a=new Uint16Array(30),t4=new Uint8Array(30),a4=new Uint16Array(30),D3=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Ys=new Xe,Gx=new Uint8Array(320);function r4(e,x,t,a){var r,n;for(r=0;r<t;++r)e[r]=0;for(r=0;r<30-t;++r)e[r+t]=r/t|0;for(n=a,r=0;r<30;++r)x[r]=n,n+=1<<e[r];}function F3(e,x){var t;for(t=0;t<7;++t)e.table[t]=0;for(e.table[7]=24,e.table[8]=152,e.table[9]=112,t=0;t<24;++t)e.trans[t]=256+t;for(t=0;t<144;++t)e.trans[24+t]=t;for(t=0;t<8;++t)e.trans[168+t]=280+t;for(t=0;t<112;++t)e.trans[176+t]=144+t;for(t=0;t<5;++t)x.table[t]=0;for(x.table[5]=32,t=0;t<32;++t)x.trans[t]=t;}var Zs=new Uint16Array(16);function _a(e,x,t,a){var r,n;for(r=0;r<16;++r)e.table[r]=0;for(r=0;r<a;++r)e.table[x[t+r]]++;for(e.table[0]=0,n=0,r=0;r<16;++r)Zs[r]=n,n+=e.table[r];for(r=0;r<a;++r)x[t+r]&&(e.trans[Zs[x[t+r]]++]=r);}function N3(e){e.bitcount--||(e.tag=e.source[e.sourceIndex++],e.bitcount=7);var x=e.tag&1;return e.tag>>>=1,x}function Ux(e,x,t){if(!x)return t;for(;e.bitcount<24;)e.tag|=e.source[e.sourceIndex++]<<e.bitcount,e.bitcount+=8;var a=e.tag&65535>>>16-x;return e.tag>>>=x,e.bitcount-=x,a+t}function Aa(e,x){for(;e.bitcount<24;)e.tag|=e.source[e.sourceIndex++]<<e.bitcount,e.bitcount+=8;var t=0,a=0,r=0,n=e.tag;do a=2*a+(n&1),n>>>=1,++r,t+=x.table[r],a-=x.table[r];while(a>=0);return e.tag=n,e.bitcount-=r,x.trans[t+a]}function L3(e,x,t){var a,r,n,s,i,f;for(a=Ux(e,5,257),r=Ux(e,5,1),n=Ux(e,4,4),s=0;s<19;++s)Gx[s]=0;for(s=0;s<n;++s){var c=Ux(e,3,0);Gx[D3[s]]=c;}for(_a(Ys,Gx,0,19),i=0;i<a+r;){var d=Aa(e,Ys);switch(d){case 16:var o=Gx[i-1];for(f=Ux(e,2,3);f;--f)Gx[i++]=o;break;case 17:for(f=Ux(e,3,3);f;--f)Gx[i++]=0;break;case 18:for(f=Ux(e,7,11);f;--f)Gx[i++]=0;break;default:Gx[i++]=d;break}}_a(x,Gx,0,a),_a(t,Gx,a,r);}function Js(e,x,t){for(;;){var a=Aa(e,x);if(a===256)return Ca;if(a<256)e.dest[e.destLen++]=a;else {var r,n,s,i;for(a-=257,r=Ux(e,Sa[a],$a[a]),n=Aa(e,t),s=e.destLen-Ux(e,t4[n],a4[n]),i=s;i<s+r;++i)e.dest[e.destLen++]=e.dest[i];}}}function B3(e){for(var x,t,a;e.bitcount>8;)e.sourceIndex--,e.bitcount-=8;if(x=e.source[e.sourceIndex+1],x=256*x+e.source[e.sourceIndex],t=e.source[e.sourceIndex+3],t=256*t+e.source[e.sourceIndex+2],x!==(~t&65535))return Qs;for(e.sourceIndex+=4,a=x;a;--a)e.dest[e.destLen++]=e.source[e.sourceIndex++];return e.bitcount=0,Ca}function M3(e,x){var t=new P3(e,x),a,r,n;do{switch(a=N3(t),r=Ux(t,2,0),r){case 0:n=B3(t);break;case 1:n=Js(t,x4,e4);break;case 2:L3(t,t.ltree,t.dtree),n=Js(t,t.ltree,t.dtree);break;default:n=Qs;}if(n!==Ca)throw new Error("Data error")}while(!a);return t.destLen<t.dest.length?typeof t.dest.slice=="function"?t.dest.slice(0,t.destLen):t.dest.subarray(0,t.destLen):t.dest}F3(x4,e4);r4(Sa,$a,4,3);r4(t4,a4,2,1);Sa[28]=0;$a[28]=258;n4.exports=M3;});var f4=N((ap,i4)=>{var G3=new Uint8Array(new Uint32Array([305419896]).buffer)[0]===18,s4=(e,x,t)=>{let a=e[x];e[x]=e[t],e[t]=a;},U3=e=>{let x=e.length;for(let t=0;t<x;t+=4)s4(e,t,t+3),s4(e,t+1,t+2);},j3=e=>{G3&&U3(e);};i4.exports={swap32LE:j3};});var Ra=N((rp,o4)=>{var c4=Ia(),{swap32LE:q3}=f4(),Ta=11,X6=5,z3=Ta-X6,H3=65536>>Ta,V3=1<<z3,X3=V3-1,L7=2,W3=1<<X6,Ea=W3-1,d4=65536>>X6,K3=1024>>X6,Y3=d4+K3,Z3=Y3,J3=32,Q3=Z3+J3,xc=1<<L7,Oa=class{constructor(x){let t=typeof x.readUInt32BE=="function"&&typeof x.slice=="function";if(t||x instanceof Uint8Array){let a;if(t)this.highStart=x.readUInt32LE(0),this.errorValue=x.readUInt32LE(4),a=x.readUInt32LE(8),x=x.slice(12);else {let r=new DataView(x.buffer);this.highStart=r.getUint32(0,true),this.errorValue=r.getUint32(4,true),a=r.getUint32(8,true),x=x.subarray(12);}x=c4(x,new Uint8Array(a)),x=c4(x,new Uint8Array(a)),q3(x),this.data=new Uint32Array(x.buffer);}else ({data:this.data,highStart:this.highStart,errorValue:this.errorValue}=x);}get(x){let t;return x<0||x>1114111?this.errorValue:x<55296||x>56319&&x<=65535?(t=(this.data[x>>X6]<<L7)+(x&Ea),this.data[t]):x<=65535?(t=(this.data[d4+(x-55296>>X6)]<<L7)+(x&Ea),this.data[t]):x<this.highStart?(t=this.data[Q3-H3+(x>>Ta)],t=this.data[t+(x>>X6&X3)],t=(t<<L7)+(x&Ea),this.data[t]):this.data[this.data.length-xc]}};o4.exports=Oa;});var m4=N((fp,p4)=>{var La=1,Ba=0,Ma=class{constructor(x){this.stateTable=x.stateTable,this.accepting=x.accepting,this.tags=x.tags;}match(x){var t=this;return {*[Symbol.iterator](){for(var a=La,r=null,n=null,s=null,i=0;i<x.length;i++){var f=x[i];s=a,a=t.stateTable[a][f],a===Ba&&(r!=null&&n!=null&&n>=r&&(yield [r,n,t.tags[s]]),a=t.stateTable[La][f],r=null),a!==Ba&&r==null&&(r=i),t.accepting[a]&&(n=i),a===Ba&&(a=La);}r!=null&&n!=null&&n>=r&&(yield [r,n,t.tags[a]]);}}}apply(x,t){for(var[a,r,n]of this.match(x))for(var s of n)typeof t[s]=="function"&&t[s](a,r,x.slice(a,r+1));}};p4.exports=Ma;});var g4=N((cp,U7)=>{var cc=(function(){function e(d,o){return o!=null&&d instanceof o}var x;try{x=Map;}catch{x=function(){};}var t;try{t=Set;}catch{t=function(){};}var a;try{a=Promise;}catch{a=function(){};}function r(d,o,u,p,b){typeof o=="object"&&(u=o.depth,p=o.prototype,b=o.includeNonEnumerable,o=o.circular);var m=[],v=[],$=typeof Buffer<"u";typeof o>"u"&&(o=true),typeof u>"u"&&(u=1/0);function y(h,S){if(h===null)return null;if(S===0)return h;var E,T;if(typeof h!="object")return h;if(e(h,x))E=new x;else if(e(h,t))E=new t;else if(e(h,a))E=new a(function(c0,$0){h.then(function(J){c0(y(J,S-1));},function(J){$0(y(J,S-1));});});else if(r.__isArray(h))E=[];else if(r.__isRegExp(h))E=new RegExp(h.source,c(h)),h.lastIndex&&(E.lastIndex=h.lastIndex);else if(r.__isDate(h))E=new Date(h.getTime());else {if($&&Buffer.isBuffer(h))return Buffer.allocUnsafe?E=Buffer.allocUnsafe(h.length):E=new Buffer(h.length),h.copy(E),E;e(h,Error)?E=Object.create(h):typeof p>"u"?(T=Object.getPrototypeOf(h),E=Object.create(T)):(E=Object.create(p),T=p);}if(o){var D=m.indexOf(h);if(D!=-1)return v[D];m.push(h),v.push(E);}e(h,x)&&h.forEach(function(c0,$0){var J=y($0,S-1),x0=y(c0,S-1);E.set(J,x0);}),e(h,t)&&h.forEach(function(c0){var $0=y(c0,S-1);E.add($0);});for(var R in h){var G;T&&(G=Object.getOwnPropertyDescriptor(T,R)),!(G&&G.set==null)&&(E[R]=y(h[R],S-1));}if(Object.getOwnPropertySymbols)for(var U=Object.getOwnPropertySymbols(h),R=0;R<U.length;R++){var Y=U[R],f0=Object.getOwnPropertyDescriptor(h,Y);f0&&!f0.enumerable&&!b||(E[Y]=y(h[Y],S-1),f0.enumerable||Object.defineProperty(E,Y,{enumerable:false}));}if(b)for(var s0=Object.getOwnPropertyNames(h),R=0;R<s0.length;R++){var S0=s0[R],f0=Object.getOwnPropertyDescriptor(h,S0);f0&&f0.enumerable||(E[S0]=y(h[S0],S-1),Object.defineProperty(E,S0,{enumerable:false}));}return E}return y(d,u)}r.clonePrototype=function(o){if(o===null)return null;var u=function(){};return u.prototype=o,new u};function n(d){return Object.prototype.toString.call(d)}r.__objToStr=n;function s(d){return typeof d=="object"&&n(d)==="[object Date]"}r.__isDate=s;function i(d){return typeof d=="object"&&n(d)==="[object Array]"}r.__isArray=i;function f(d){return typeof d=="object"&&n(d)==="[object RegExp]"}r.__isRegExp=f;function c(d){var o="";return d.global&&(o+="g"),d.ignoreCase&&(o+="i"),d.multiline&&(o+="m"),o}return r.__getRegExpFlags=c,r})();typeof U7=="object"&&U7.exports&&(U7.exports=cc);});var Ua=N(Ga=>{function y4(e){this.buffer=e,this.pos=0;}y4.prototype.read=function(e,x,t){this.pos+t>this.buffer.length&&(t=this.buffer.length-this.pos);for(var a=0;a<t;a++)e[x+a]=this.buffer[this.pos+a];return this.pos+=t,t};Ga.BrotliInput=y4;function w4(e){this.buffer=e,this.pos=0;}w4.prototype.write=function(e,x){if(this.pos+x>this.buffer.length)throw new Error("Output buffer is not large enough");return this.buffer.set(e.subarray(0,x),this.pos),this.pos+=x,x};Ga.BrotliOutput=w4;});var A4=N((op,_4)=>{var K6=4096,dc=2*K6+32,v4=2*K6-1,oc=new Uint32Array([0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535,131071,262143,524287,1048575,2097151,4194303,8388607,16777215]);function Y6(e){this.buf_=new Uint8Array(dc),this.input_=e,this.reset();}Y6.READ_SIZE=K6;Y6.IBUF_MASK=v4;Y6.prototype.reset=function(){this.buf_ptr_=0,this.val_=0,this.pos_=0,this.bit_pos_=0,this.bit_end_pos_=0,this.eos_=0,this.readMoreInput();for(var e=0;e<4;e++)this.val_|=this.buf_[this.pos_]<<8*e,++this.pos_;return this.bit_end_pos_>0};Y6.prototype.readMoreInput=function(){if(!(this.bit_end_pos_>256))if(this.eos_){if(this.bit_pos_>this.bit_end_pos_)throw new Error("Unexpected end of input "+this.bit_pos_+" "+this.bit_end_pos_)}else {var e=this.buf_ptr_,x=this.input_.read(this.buf_,e,K6);if(x<0)throw new Error("Unexpected end of input");if(x<K6){this.eos_=1;for(var t=0;t<32;t++)this.buf_[e+x+t]=0;}if(e===0){for(var t=0;t<32;t++)this.buf_[(K6<<1)+t]=this.buf_[t];this.buf_ptr_=K6;}else this.buf_ptr_=0;this.bit_end_pos_+=x<<3;}};Y6.prototype.fillBitWindow=function(){for(;this.bit_pos_>=8;)this.val_>>>=8,this.val_|=this.buf_[this.pos_&v4]<<24,++this.pos_,this.bit_pos_=this.bit_pos_-8>>>0,this.bit_end_pos_=this.bit_end_pos_-8>>>0;};Y6.prototype.readBits=function(e){32-this.bit_pos_<e&&this.fillBitWindow();var x=this.val_>>>this.bit_pos_&oc[e];return this.bit_pos_+=e,x};_4.exports=Y6;});var C4=N(j7=>{j7.dictionary=new Uint8Array([116,105,109,101,100,111,119,110,108,105,102,101,108,101,102,116,98,97,99,107,99,111,100,101,100,97,116,97,115,104,111,119,111,110,108,121,115,105,116,101,99,105,116,121,111,112,101,110,106,117,115,116,108,105,107,101,102,114,101,101,119,111,114,107,116,101,120,116,121,101,97,114,111,118,101,114,98,111,100,121,108,111,118,101,102,111,114,109,98,111,111,107,112,108,97,121,108,105,118,101,108,105,110,101,104,101,108,112,104,111,109,101,115,105,100,101,109,111,114,101,119,111,114,100,108,111,110,103,116,104,101,109,118,105,101,119,102,105,110,100,112,97,103,101,100,97,121,115,102,117,108,108,104,101,97,100,116,101,114,109,101,97,99,104,97,114,101,97,102,114,111,109,116,114,117,101,109,97,114,107,97,98,108,101,117,112,111,110,104,105,103,104,100,97,116,101,108,97,110,100,110,101,119,115,101,118,101,110,110,101,120,116,99,97,115,101,98,111,116,104,112,111,115,116,117,115,101,100,109,97,100,101,104,97,110,100,104,101,114,101,119,104,97,116,110,97,109,101,76,105,110,107,98,108,111,103,115,105,122,101,98,97,115,101,104,101,108,100,109,97,107,101,109,97,105,110,117,115,101,114,39,41,32,43,104,111,108,100,101,110,100,115,119,105,116,104,78,101,119,115,114,101,97,100,119,101,114,101,115,105,103,110,116,97,107,101,104,97,118,101,103,97,109,101,115,101,101,110,99,97,108,108,112,97,116,104,119,101,108,108,112,108,117,115,109,101,110,117,102,105,108,109,112,97,114,116,106,111,105,110,116,104,105,115,108,105,115,116,103,111,111,100,110,101,101,100,119,97,121,115,119,101,115,116,106,111,98,115,109,105,110,100,97,108,115,111,108,111,103,111,114,105,99,104,117,115,101,115,108,97,115,116,116,101,97,109,97,114,109,121,102,111,111,100,107,105,110,103,119,105,108,108,101,97,115,116,119,97,114,100,98,101,115,116,102,105,114,101,80,97,103,101,107,110,111,119,97,119,97,121,46,112,110,103,109,111,118,101,116,104,97,110,108,111,97,100,103,105,118,101,115,101,108,102,110,111,116,101,109,117,99,104,102,101,101,100,109,97,110,121,114,111,99,107,105,99,111,110,111,110,99,101,108,111,111,107,104,105,100,101,100,105,101,100,72,111,109,101,114,117,108,101,104,111,115,116,97,106,97,120,105,110,102,111,99,108,117,98,108,97,119,115,108,101,115,115,104,97,108,102,115,111,109,101,115,117,99,104,122,111,110,101,49,48,48,37,111,110,101,115,99,97,114,101,84,105,109,101,114,97,99,101,98,108,117,101,102,111,117,114,119,101,101,107,102,97,99,101,104,111,112,101,103,97,118,101,104,97,114,100,108,111,115,116,119,104,101,110,112,97,114,107,107,101,112,116,112,97,115,115,115,104,105,112,114,111,111,109,72,84,77,76,112,108,97,110,84,121,112,101,100,111,110,101,115,97,118,101,107,101,101,112,102,108,97,103,108,105,110,107,115,111,108,100,102,105,118,101,116,111,111,107,114,97,116,101,116,111,119,110,106,117,109,112,116,104,117,115,100,97,114,107,99,97,114,100,102,105,108,101,102,101,97,114,115,116,97,121,107,105,108,108,116,104,97,116,102,97,108,108,97,117,116,111,101,118,101,114,46,99,111,109,116,97,108,107,115,104,111,112,118,111,116,101,100,101,101,112,109,111,100,101,114,101,115,116,116,117,114,110,98,111,114,110,98,97,110,100,102,101,108,108,114,111,115,101,117,114,108,40,115,107,105,110,114,111,108,101,99,111,109,101,97,99,116,115,97,103,101,115,109,101,101,116,103,111,108,100,46,106,112,103,105,116,101,109,118,97,114,121,102,101,108,116,116,104,101,110,115,101,110,100,100,114,111,112,86,105,101,119,99,111,112,121,49,46,48,34,60,47,97,62,115,116,111,112,101,108,115,101,108,105,101,115,116,111,117,114,112,97,99,107,46,103,105,102,112,97,115,116,99,115,115,63,103,114,97,121,109,101,97,110,38,103,116,59,114,105,100,101,115,104,111,116,108,97,116,101,115,97,105,100,114,111,97,100,118,97,114,32,102,101,101,108,106,111,104,110,114,105,99,107,112,111,114,116,102,97,115,116,39,85,65,45,100,101,97,100,60,47,98,62,112,111,111,114,98,105,108,108,116,121,112,101,85,46,83,46,119,111,111,100,109,117,115,116,50,112,120,59,73,110,102,111,114,97,110,107,119,105,100,101,119,97,110,116,119,97,108,108,108,101,97,100,91,48,93,59,112,97,117,108,119,97,118,101,115,117,114,101,36,40,39,35,119,97,105,116,109,97,115,115,97,114,109,115,103,111,101,115,103,97,105,110,108,97,110,103,112,97,105,100,33,45,45,32,108,111,99,107,117,110,105,116,114,111,111,116,119,97,108,107,102,105,114,109,119,105,102,101,120,109,108,34,115,111,110,103,116,101,115,116,50,48,112,120,107,105,110,100,114,111,119,115,116,111,111,108,102,111,110,116,109,97,105,108,115,97,102,101,115,116,97,114,109,97,112,115,99,111,114,101,114,97,105,110,102,108,111,119,98,97,98,121,115,112,97,110,115,97,121,115,52,112,120,59,54,112,120,59,97,114,116,115,102,111,111,116,114,101,97,108,119,105,107,105,104,101,97,116,115,116,101,112,116,114,105,112,111,114,103,47,108,97,107,101,119,101,97,107,116,111,108,100,70,111,114,109,99,97,115,116,102,97,110,115,98,97,110,107,118,101,114,121,114,117,110,115,106,117,108,121,116,97,115,107,49,112,120,59,103,111,97,108,103,114,101,119,115,108,111,119,101,100,103,101,105,100,61,34,115,101,116,115,53,112,120,59,46,106,115,63,52,48,112,120,105,102,32,40,115,111,111,110,115,101,97,116,110,111,110,101,116,117,98,101,122,101,114,111,115,101,110,116,114,101,101,100,102,97,99,116,105,110,116,111,103,105,102,116,104,97,114,109,49,56,112,120,99,97,109,101,104,105,108,108,98,111,108,100,122,111,111,109,118,111,105,100,101,97,115,121,114,105,110,103,102,105,108,108,112,101,97,107,105,110,105,116,99,111,115,116,51,112,120,59,106,97,99,107,116,97,103,115,98,105,116,115,114,111,108,108,101,100,105,116,107,110,101,119,110,101,97,114,60,33,45,45,103,114,111,119,74,83,79,78,100,117,116,121,78,97,109,101,115,97,108,101,121,111,117,32,108,111,116,115,112,97,105,110,106,97,122,122,99,111,108,100,101,121,101,115,102,105,115,104,119,119,119,46,114,105,115,107,116,97,98,115,112,114,101,118,49,48,112,120,114,105,115,101,50,53,112,120,66,108,117,101,100,105,110,103,51,48,48,44,98,97,108,108,102,111,114,100,101,97,114,110,119,105,108,100,98,111,120,46,102,97,105,114,108,97,99,107,118,101,114,115,112,97,105,114,106,117,110,101,116,101,99,104,105,102,40,33,112,105,99,107,101,118,105,108,36,40,34,35,119,97,114,109,108,111,114,100,100,111,101,115,112,117,108,108,44,48,48,48,105,100,101,97,100,114,97,119,104,117,103,101,115,112,111,116,102,117,110,100,98,117,114,110,104,114,101,102,99,101,108,108,107,101,121,115,116,105,99,107,104,111,117,114,108,111,115,115,102,117,101,108,49,50,112,120,115,117,105,116,100,101,97,108,82,83,83,34,97,103,101,100,103,114,101,121,71,69,84,34,101,97,115,101,97,105,109,115,103,105,114,108,97,105,100,115,56,112,120,59,110,97,118,121,103,114,105,100,116,105,112,115,35,57,57,57,119,97,114,115,108,97,100,121,99,97,114,115,41,59,32,125,112,104,112,63,104,101,108,108,116,97,108,108,119,104,111,109,122,104,58,229,42,47,13,10,32,49,48,48,104,97,108,108,46,10,10,65,55,112,120,59,112,117,115,104,99,104,97,116,48,112,120,59,99,114,101,119,42,47,60,47,104,97,115,104,55,53,112,120,102,108,97,116,114,97,114,101,32,38,38,32,116,101,108,108,99,97,109,112,111,110,116,111,108,97,105,100,109,105,115,115,115,107,105,112,116,101,110,116,102,105,110,101,109,97,108,101,103,101,116,115,112,108,111,116,52,48,48,44,13,10,13,10,99,111,111,108,102,101,101,116,46,112,104,112,60,98,114,62,101,114,105,99,109,111,115,116,103,117,105,100,98,101,108,108,100,101,115,99,104,97,105,114,109,97,116,104,97,116,111,109,47,105,109,103,38,35,56,50,108,117,99,107,99,101,110,116,48,48,48,59,116,105,110,121,103,111,110,101,104,116,109,108,115,101,108,108,100,114,117,103,70,82,69,69,110,111,100,101,110,105,99,107,63,105,100,61,108,111,115,101,110,117,108,108,118,97,115,116,119,105,110,100,82,83,83,32,119,101,97,114,114,101,108,121,98,101,101,110,115,97,109,101,100,117,107,101,110,97,115,97,99,97,112,101,119,105,115,104,103,117,108,102,84,50,51,58,104,105,116,115,115,108,111,116,103,97,116,101,107,105,99,107,98,108,117,114,116,104,101,121,49,53,112,120,39,39,41,59,41,59,34,62,109,115,105,101,119,105,110,115,98,105,114,100,115,111,114,116,98,101,116,97,115,101,101,107,84,49,56,58,111,114,100,115,116,114,101,101,109,97,108,108,54,48,112,120,102,97,114,109,226,128,153,115,98,111,121,115,91,48,93,46,39,41,59,34,80,79,83,84,98,101,97,114,107,105,100,115,41,59,125,125,109,97,114,121,116,101,110,100,40,85,75,41,113,117,97,100,122,104,58,230,45,115,105,122,45,45,45,45,112,114,111,112,39,41,59,13,108,105,102,116,84,49,57,58,118,105,99,101,97,110,100,121,100,101,98,116,62,82,83,83,112,111,111,108,110,101,99,107,98,108,111,119,84,49,54,58,100,111,111,114,101,118,97,108,84,49,55,58,108,101,116,115,102,97,105,108,111,114,97,108,112,111,108,108,110,111,118,97,99,111,108,115,103,101,110,101,32,226,128,148,115,111,102,116,114,111,109,101,116,105,108,108,114,111,115,115,60,104,51,62,112,111,117,114,102,97,100,101,112,105,110,107,60,116,114,62,109,105,110,105,41,124,33,40,109,105,110,101,122,104,58,232,98,97,114,115,104,101,97,114,48,48,41,59,109,105,108,107,32,45,45,62,105,114,111,110,102,114,101,100,100,105,115,107,119,101,110,116,115,111,105,108,112,117,116,115,47,106,115,47,104,111,108,121,84,50,50,58,73,83,66,78,84,50,48,58,97,100,97,109,115,101,101,115,60,104,50,62,106,115,111,110,39,44,32,39,99,111,110,116,84,50,49,58,32,82,83,83,108,111,111,112,97,115,105,97,109,111,111,110,60,47,112,62,115,111,117,108,76,73,78,69,102,111,114,116,99,97,114,116,84,49,52,58,60,104,49,62,56,48,112,120,33,45,45,60,57,112,120,59,84,48,52,58,109,105,107,101,58,52,54,90,110,105,99,101,105,110,99,104,89,111,114,107,114,105,99,101,122,104,58,228,39,41,41,59,112,117,114,101,109,97,103,101,112,97,114,97,116,111,110,101,98,111,110,100,58,51,55,90,95,111,102,95,39,93,41,59,48,48,48,44,122,104,58,231,116,97,110,107,121,97,114,100,98,111,119,108,98,117,115,104,58,53,54,90,74,97,118,97,51,48,112,120,10,124,125,10,37,67,51,37,58,51,52,90,106,101,102,102,69,88,80,73,99,97,115,104,118,105,115,97,103,111,108,102,115,110,111,119,122,104,58,233,113,117,101,114,46,99,115,115,115,105,99,107,109,101,97,116,109,105,110,46,98,105,110,100,100,101,108,108,104,105,114,101,112,105,99,115,114,101,110,116,58,51,54,90,72,84,84,80,45,50,48,49,102,111,116,111,119,111,108,102,69,78,68,32,120,98,111,120,58,53,52,90,66,79,68,89,100,105,99,107,59,10,125,10,101,120,105,116,58,51,53,90,118,97,114,115,98,101,97,116,39,125,41,59,100,105,101,116,57,57,57,59,97,110,110,101,125,125,60,47,91,105,93,46,76,97,110,103,107,109,194,178,119,105,114,101,116,111,121,115,97,100,100,115,115,101,97,108,97,108,101,120,59,10,9,125,101,99,104,111,110,105,110,101,46,111,114,103,48,48,53,41,116,111,110,121,106,101,119,115,115,97,110,100,108,101,103,115,114,111,111,102,48,48,48,41,32,50,48,48,119,105,110,101,103,101,97,114,100,111,103,115,98,111,111,116,103,97,114,121,99,117,116,115,116,121,108,101,116,101,109,112,116,105,111,110,46,120,109,108,99,111,99,107,103,97,110,103,36,40,39,46,53,48,112,120,80,104,46,68,109,105,115,99,97,108,97,110,108,111,97,110,100,101,115,107,109,105,108,101,114,121,97,110,117,110,105,120,100,105,115,99,41,59,125,10,100,117,115,116,99,108,105,112,41,46,10,10,55,48,112,120,45,50,48,48,68,86,68,115,55,93,62,60,116,97,112,101,100,101,109,111,105,43,43,41,119,97,103,101,101,117,114,111,112,104,105,108,111,112,116,115,104,111,108,101,70,65,81,115,97,115,105,110,45,50,54,84,108,97,98,115,112,101,116,115,85,82,76,32,98,117,108,107,99,111,111,107,59,125,13,10,72,69,65,68,91,48,93,41,97,98,98,114,106,117,97,110,40,49,57,56,108,101,115,104,116,119,105,110,60,47,105,62,115,111,110,121,103,117,121,115,102,117,99,107,112,105,112,101,124,45,10,33,48,48,50,41,110,100,111,119,91,49,93,59,91,93,59,10,76,111,103,32,115,97,108,116,13,10,9,9,98,97,110,103,116,114,105,109,98,97,116,104,41,123,13,10,48,48,112,120,10,125,41,59,107,111,58,236,102,101,101,115,97,100,62,13,115,58,47,47,32,91,93,59,116,111,108,108,112,108,117,103,40,41,123,10,123,13,10,32,46,106,115,39,50,48,48,112,100,117,97,108,98,111,97,116,46,74,80,71,41,59,10,125,113,117,111,116,41,59,10,10,39,41,59,10,13,10,125,13,50,48,49,52,50,48,49,53,50,48,49,54,50,48,49,55,50,48,49,56,50,48,49,57,50,48,50,48,50,48,50,49,50,48,50,50,50,48,50,51,50,48,50,52,50,48,50,53,50,48,50,54,50,48,50,55,50,48,50,56,50,48,50,57,50,48,51,48,50,48,51,49,50,48,51,50,50,48,51,51,50,48,51,52,50,48,51,53,50,48,51,54,50,48,51,55,50,48,49,51,50,48,49,50,50,48,49,49,50,48,49,48,50,48,48,57,50,48,48,56,50,48,48,55,50,48,48,54,50,48,48,53,50,48,48,52,50,48,48,51,50,48,48,50,50,48,48,49,50,48,48,48,49,57,57,57,49,57,57,56,49,57,57,55,49,57,57,54,49,57,57,53,49,57,57,52,49,57,57,51,49,57,57,50,49,57,57,49,49,57,57,48,49,57,56,57,49,57,56,56,49,57,56,55,49,57,56,54,49,57,56,53,49,57,56,52,49,57,56,51,49,57,56,50,49,57,56,49,49,57,56,48,49,57,55,57,49,57,55,56,49,57,55,55,49,57,55,54,49,57,55,53,49,57,55,52,49,57,55,51,49,57,55,50,49,57,55,49,49,57,55,48,49,57,54,57,49,57,54,56,49,57,54,55,49,57,54,54,49,57,54,53,49,57,54,52,49,57,54,51,49,57,54,50,49,57,54,49,49,57,54,48,49,57,53,57,49,57,53,56,49,57,53,55,49,57,53,54,49,57,53,53,49,57,53,52,49,57,53,51,49,57,53,50,49,57,53,49,49,57,53,48,49,48,48,48,49,48,50,52,49,51,57,52,48,48,48,48,57,57,57,57,99,111,109,111,109,195,161,115,101,115,116,101,101,115,116,97,112,101,114,111,116,111,100,111,104,97,99,101,99,97,100,97,97,195,177,111,98,105,101,110,100,195,173,97,97,115,195,173,118,105,100,97,99,97,115,111,111,116,114,111,102,111,114,111,115,111,108,111,111,116,114,97,99,117,97,108,100,105,106,111,115,105,100,111,103,114,97,110,116,105,112,111,116,101,109,97,100,101,98,101,97,108,103,111,113,117,195,169,101,115,116,111,110,97,100,97,116,114,101,115,112,111,99,111,99,97,115,97,98,97,106,111,116,111,100,97,115,105,110,111,97,103,117,97,112,117,101,115,117,110,111,115,97,110,116,101,100,105,99,101,108,117,105,115,101,108,108,97,109,97,121,111,122,111,110,97,97,109,111,114,112,105,115,111,111,98,114,97,99,108,105,99,101,108,108,111,100,105,111,115,104,111,114,97,99,97,115,105,208,183,208,176,208,189,208,176,208,190,208,188,209,128,208,176,209,128,209,131,209,130,208,176,208,189,208,181,208,191,208,190,208,190,209,130,208,184,208,183,208,189,208,190,208,180,208,190,209,130,208,190,208,182,208,181,208,190,208,189,208,184,209,133,208,157,208,176,208,181,208,181,208,177,209,139,208,188,209,139,208,146,209,139,209,129,208,190,208,178,209,139,208,178,208,190,208,157,208,190,208,190,208,177,208,159,208,190,208,187,208,184,208,189,208,184,208,160,208,164,208,157,208,181,208,156,209,139,209,130,209,139,208,158,208,189,208,184,208,188,208,180,208,176,208,151,208,176,208,148,208,176,208,157,209,131,208,158,208,177,209,130,208,181,208,152,208,183,208,181,208,185,208,189,209,131,208,188,208,188,208,162,209,139,209,131,208,182,217,129,217,138,216,163,217,134,217,133,216,167,217,133,216,185,217,131,217,132,216,163,217,136,216,177,216,175,217,138,216,167,217,129,217,137,217,135,217,136,217,132,217,133,217,132,217,131,216,167,217,136,217,132,217,135,216,168,216,179,216,167,217,132,216,165,217,134,217,135,217,138,216,163,217,138,217,130,216,175,217,135,217,132,216,171,217,133,216,168,217,135,217,132,217,136,217,132,217,138,216,168,217,132,216,167,217,138,216,168,217,131,216,180,217,138,216,167,217,133,216,163,217,133,217,134,216,170,216,168,217,138,217,132,217,134,216,173,216,168,217,135,217,133,217,133,216,180,217,136,216,180,102,105,114,115,116,118,105,100,101,111,108,105,103,104,116,119,111,114,108,100,109,101,100,105,97,119,104,105,116,101,99,108,111,115,101,98,108,97,99,107,114,105,103,104,116,115,109,97,108,108,98,111,111,107,115,112,108,97,99,101,109,117,115,105,99,102,105,101,108,100,111,114,100,101,114,112,111,105,110,116,118,97,108,117,101,108,101,118,101,108,116,97,98,108,101,98,111,97,114,100,104,111,117,115,101,103,114,111,117,112,119,111,114,107,115,121,101,97,114,115,115,116,97,116,101,116,111,100,97,121,119,97,116,101,114,115,116,97,114,116,115,116,121,108,101,100,101,97,116,104,112,111,119,101,114,112,104,111,110,101,110,105,103,104,116,101,114,114,111,114,105,110,112,117,116,97,98,111,117,116,116,101,114,109,115,116,105,116,108,101,116,111,111,108,115,101,118,101,110,116,108,111,99,97,108,116,105,109,101,115,108,97,114,103,101,119,111,114,100,115,103,97,109,101,115,115,104,111,114,116,115,112,97,99,101,102,111,99,117,115,99,108,101,97,114,109,111,100,101,108,98,108,111,99,107,103,117,105,100,101,114,97,100,105,111,115,104,97,114,101,119,111,109,101,110,97,103,97,105,110,109,111,110,101,121,105,109,97,103,101,110,97,109,101,115,121,111,117,110,103,108,105,110,101,115,108,97,116,101,114,99,111,108,111,114,103,114,101,101,110,102,114,111,110,116,38,97,109,112,59,119,97,116,99,104,102,111,114,99,101,112,114,105,99,101,114,117,108,101,115,98,101,103,105,110,97,102,116,101,114,118,105,115,105,116,105,115,115,117,101,97,114,101,97,115,98,101,108,111,119,105,110,100,101,120,116,111,116,97,108,104,111,117,114,115,108,97,98,101,108,112,114,105,110,116,112,114,101,115,115,98,117,105,108,116,108,105,110,107,115,115,112,101,101,100,115,116,117,100,121,116,114,97,100,101,102,111,117,110,100,115,101,110,115,101,117,110,100,101,114,115,104,111,119,110,102,111,114,109,115,114,97,110,103,101,97,100,100,101,100,115,116,105,108,108,109,111,118,101,100,116,97,107,101,110,97,98,111,118,101,102,108,97,115,104,102,105,120,101,100,111,102,116,101,110,111,116,104,101,114,118,105,101,119,115,99,104,101,99,107,108,101,103,97,108,114,105,118,101,114,105,116,101,109,115,113,117,105,99,107,115,104,97,112,101,104,117,109,97,110,101,120,105,115,116,103,111,105,110,103,109,111,118,105,101,116,104,105,114,100,98,97,115,105,99,112,101,97,99,101,115,116,97,103,101,119,105,100,116,104,108,111,103,105,110,105,100,101,97,115,119,114,111,116,101,112,97,103,101,115,117,115,101,114,115,100,114,105,118,101,115,116,111,114,101,98,114,101,97,107,115,111,117,116,104,118,111,105,99,101,115,105,116,101,115,109,111,110,116,104,119,104,101,114,101,98,117,105,108,100,119,104,105,99,104,101,97,114,116,104,102,111,114,117,109,116,104,114,101,101,115,112,111,114,116,112,97,114,116,121,67,108,105,99,107,108,111,119,101,114,108,105,118,101,115,99,108,97,115,115,108,97,121,101,114,101,110,116,114,121,115,116,111,114,121,117,115,97,103,101,115,111,117,110,100,99,111,117,114,116,121,111,117,114,32,98,105,114,116,104,112,111,112,117,112,116,121,112,101,115,97,112,112,108,121,73,109,97,103,101,98,101,105,110,103,117,112,112,101,114,110,111,116,101,115,101,118,101,114,121,115,104,111,119,115,109,101,97,110,115,101,120,116,114,97,109,97,116,99,104,116,114,97,99,107,107,110,111,119,110,101,97,114,108,121,98,101,103,97,110,115,117,112,101,114,112,97,112,101,114,110,111,114,116,104,108,101,97,114,110,103,105,118,101,110,110,97,109,101,100,101,110,100,101,100,84,101,114,109,115,112,97,114,116,115,71,114,111,117,112,98,114,97,110,100,117,115,105,110,103,119,111,109,97,110,102,97,108,115,101,114,101,97,100,121,97,117,100,105,111,116,97,107,101,115,119,104,105,108,101,46,99,111,109,47,108,105,118,101,100,99,97,115,101,115,100,97,105,108,121,99,104,105,108,100,103,114,101,97,116,106,117,100,103,101,116,104,111,115,101,117,110,105,116,115,110,101,118,101,114,98,114,111,97,100,99,111,97,115,116,99,111,118,101,114,97,112,112,108,101,102,105,108,101,115,99,121,99,108,101,115,99,101,110,101,112,108,97,110,115,99,108,105,99,107,119,114,105,116,101,113,117,101,101,110,112,105,101,99,101,101,109,97,105,108,102,114,97,109,101,111,108,100,101,114,112,104,111,116,111,108,105,109,105,116,99,97,99,104,101,99,105,118,105,108,115,99,97,108,101,101,110,116,101,114,116,104,101,109,101,116,104,101,114,101,116,111,117,99,104,98,111,117,110,100,114,111,121,97,108,97,115,107,101,100,119,104,111,108,101,115,105,110,99,101,115,116,111,99,107,32,110,97,109,101,102,97,105,116,104,104,101,97,114,116,101,109,112,116,121,111,102,102,101,114,115,99,111,112,101,111,119,110,101,100,109,105,103,104,116,97,108,98,117,109,116,104,105,110,107,98,108,111,111,100,97,114,114,97,121,109,97,106,111,114,116,114,117,115,116,99,97,110,111,110,117,110,105,111,110,99,111,117,110,116,118,97,108,105,100,115,116,111,110,101,83,116,121,108,101,76,111,103,105,110,104,97,112,112,121,111,99,99,117,114,108,101,102,116,58,102,114,101,115,104,113,117,105,116,101,102,105,108,109,115,103,114,97,100,101,110,101,101,100,115,117,114,98,97,110,102,105,103,104,116,98,97,115,105,115,104,111,118,101,114,97,117,116,111,59,114,111,117,116,101,46,104,116,109,108,109,105,120,101,100,102,105,110,97,108,89,111,117,114,32,115,108,105,100,101,116,111,112,105,99,98,114,111,119,110,97,108,111,110,101,100,114,97,119,110,115,112,108,105,116,114,101,97,99,104,82,105,103,104,116,100,97,116,101,115,109,97,114,99,104,113,117,111,116,101,103,111,111,100,115,76,105,110,107,115,100,111,117,98,116,97,115,121,110,99,116,104,117,109,98,97,108,108,111,119,99,104,105,101,102,121,111,117,116,104,110,111,118,101,108,49,48,112,120,59,115,101,114,118,101,117,110,116,105,108,104,97,110,100,115,67,104,101,99,107,83,112,97,99,101,113,117,101,114,121,106,97,109,101,115,101,113,117,97,108,116,119,105,99,101,48,44,48,48,48,83,116,97,114,116,112,97,110,101,108,115,111,110,103,115,114,111,117,110,100,101,105,103,104,116,115,104,105,102,116,119,111,114,116,104,112,111,115,116,115,108,101,97,100,115,119,101,101,107,115,97,118,111,105,100,116,104,101,115,101,109,105,108,101,115,112,108,97,110,101,115,109,97,114,116,97,108,112,104,97,112,108,97,110,116,109,97,114,107,115,114,97,116,101,115,112,108,97,121,115,99,108,97,105,109,115,97,108,101,115,116,101,120,116,115,115,116,97,114,115,119,114,111,110,103,60,47,104,51,62,116,104,105,110,103,46,111,114,103,47,109,117,108,116,105,104,101,97,114,100,80,111,119,101,114,115,116,97,110,100,116,111,107,101,110,115,111,108,105,100,40,116,104,105,115,98,114,105,110,103,115,104,105,112,115,115,116,97,102,102,116,114,105,101,100,99,97,108,108,115,102,117,108,108,121,102,97,99,116,115,97,103,101,110,116,84,104,105,115,32,47,47,45,45,62,97,100,109,105,110,101,103,121,112,116,69,118,101,110,116,49,53,112,120,59,69,109,97,105,108,116,114,117,101,34,99,114,111,115,115,115,112,101,110,116,98,108,111,103,115,98,111,120,34,62,110,111,116,101,100,108,101,97,118,101,99,104,105,110,97,115,105,122,101,115,103,117,101,115,116,60,47,104,52,62,114,111,98,111,116,104,101,97,118,121,116,114,117,101,44,115,101,118,101,110,103,114,97,110,100,99,114,105,109,101,115,105,103,110,115,97,119,97,114,101,100,97,110,99,101,112,104,97,115,101,62,60,33,45,45,101,110,95,85,83,38,35,51,57,59,50,48,48,112,120,95,110,97,109,101,108,97,116,105,110,101,110,106,111,121,97,106,97,120,46,97,116,105,111,110,115,109,105,116,104,85,46,83,46,32,104,111,108,100,115,112,101,116,101,114,105,110,100,105,97,110,97,118,34,62,99,104,97,105,110,115,99,111,114,101,99,111,109,101,115,100,111,105,110,103,112,114,105,111,114,83,104,97,114,101,49,57,57,48,115,114,111,109,97,110,108,105,115,116,115,106,97,112,97,110,102,97,108,108,115,116,114,105,97,108,111,119,110,101,114,97,103,114,101,101,60,47,104,50,62,97,98,117,115,101,97,108,101,114,116,111,112,101,114,97,34,45,47,47,87,99,97,114,100,115,104,105,108,108,115,116,101,97,109,115,80,104,111,116,111,116,114,117,116,104,99,108,101,97,110,46,112,104,112,63,115,97,105,110,116,109,101,116,97,108,108,111,117,105,115,109,101,97,110,116,112,114,111,111,102,98,114,105,101,102,114,111,119,34,62,103,101,110,114,101,116,114,117,99,107,108,111,111,107,115,86,97,108,117,101,70,114,97,109,101,46,110,101,116,47,45,45,62,10,60,116,114,121,32,123,10,118,97,114,32,109,97,107,101,115,99,111,115,116,115,112,108,97,105,110,97,100,117,108,116,113,117,101,115,116,116,114,97,105,110,108,97,98,111,114,104,101,108,112,115,99,97,117,115,101,109,97,103,105,99,109,111,116,111,114,116,104,101,105,114,50,53,48,112,120,108,101,97,115,116,115,116,101,112,115,67,111,117,110,116,99,111,117,108,100,103,108,97,115,115,115,105,100,101,115,102,117,110,100,115,104,111,116,101,108,97,119,97,114,100,109,111,117,116,104,109,111,118,101,115,112,97,114,105,115,103,105,118,101,115,100,117,116,99,104,116,101,120,97,115,102,114,117,105,116,110,117,108,108,44,124,124,91,93,59,116,111,112,34,62,10,60,33,45,45,80,79,83,84,34,111,99,101,97,110,60,98,114,47,62,102,108,111,111,114,115,112,101,97,107,100,101,112,116,104,32,115,105,122,101,98,97,110,107,115,99,97,116,99,104,99,104,97,114,116,50,48,112,120,59,97,108,105,103,110,100,101,97,108,115,119,111,117,108,100,53,48,112,120,59,117,114,108,61,34,112,97,114,107,115,109,111,117,115,101,77,111,115,116,32,46,46,46,60,47,97,109,111,110,103,98,114,97,105,110,98,111,100,121,32,110,111,110,101,59,98,97,115,101,100,99,97,114,114,121,100,114,97,102,116,114,101,102,101,114,112,97,103,101,95,104,111,109,101,46,109,101,116,101,114,100,101,108,97,121,100,114,101,97,109,112,114,111,118,101,106,111,105,110,116,60,47,116,114,62,100,114,117,103,115,60,33,45,45,32,97,112,114,105,108,105,100,101,97,108,97,108,108,101,110,101,120,97,99,116,102,111,114,116,104,99,111,100,101,115,108,111,103,105,99,86,105,101,119,32,115,101,101,109,115,98,108,97,110,107,112,111,114,116,115,32,40,50,48,48,115,97,118,101,100,95,108,105,110,107,103,111,97,108,115,103,114,97,110,116,103,114,101,101,107,104,111,109,101,115,114,105,110,103,115,114,97,116,101,100,51,48,112,120,59,119,104,111,115,101,112,97,114,115,101,40,41,59,34,32,66,108,111,99,107,108,105,110,117,120,106,111,110,101,115,112,105,120,101,108,39,41,59,34,62,41,59,105,102,40,45,108,101,102,116,100,97,118,105,100,104,111,114,115,101,70,111,99,117,115,114,97,105,115,101,98,111,120,101,115,84,114,97,99,107,101,109,101,110,116,60,47,101,109,62,98,97,114,34,62,46,115,114,99,61,116,111,119,101,114,97,108,116,61,34,99,97,98,108,101,104,101,110,114,121,50,52,112,120,59,115,101,116,117,112,105,116,97,108,121,115,104,97,114,112,109,105,110,111,114,116,97,115,116,101,119,97,110,116,115,116,104,105,115,46,114,101,115,101,116,119,104,101,101,108,103,105,114,108,115,47,99,115,115,47,49,48,48,37,59,99,108,117,98,115,115,116,117,102,102,98,105,98,108,101,118,111,116,101,115,32,49,48,48,48,107,111,114,101,97,125,41,59,13,10,98,97,110,100,115,113,117,101,117,101,61,32,123,125,59,56,48,112,120,59,99,107,105,110,103,123,13,10,9,9,97,104,101,97,100,99,108,111,99,107,105,114,105,115,104,108,105,107,101,32,114,97,116,105,111,115,116,97,116,115,70,111,114,109,34,121,97,104,111,111,41,91,48,93,59,65,98,111,117,116,102,105,110,100,115,60,47,104,49,62,100,101,98,117,103,116,97,115,107,115,85,82,76,32,61,99,101,108,108,115,125,41,40,41,59,49,50,112,120,59,112,114,105,109,101,116,101,108,108,115,116,117,114,110,115,48,120,54,48,48,46,106,112,103,34,115,112,97,105,110,98,101,97,99,104,116,97,120,101,115,109,105,99,114,111,97,110,103,101,108,45,45,62,60,47,103,105,102,116,115,115,116,101,118,101,45,108,105,110,107,98,111,100,121,46,125,41,59,10,9,109,111,117,110,116,32,40,49,57,57,70,65,81,60,47,114,111,103,101,114,102,114,97,110,107,67,108,97,115,115,50,56,112,120,59,102,101,101,100,115,60,104,49,62,60,115,99,111,116,116,116,101,115,116,115,50,50,112,120,59,100,114,105,110,107,41,32,124,124,32,108,101,119,105,115,115,104,97,108,108,35,48,51,57,59,32,102,111,114,32,108,111,118,101,100,119,97,115,116,101,48,48,112,120,59,106,97,58,227,130,115,105,109,111,110,60,102,111,110,116,114,101,112,108,121,109,101,101,116,115,117,110,116,101,114,99,104,101,97,112,116,105,103,104,116,66,114,97,110,100,41,32,33,61,32,100,114,101,115,115,99,108,105,112,115,114,111,111,109,115,111,110,107,101,121,109,111,98,105,108,109,97,105,110,46,78,97,109,101,32,112,108,97,116,101,102,117,110,110,121,116,114,101,101,115,99,111,109,47,34,49,46,106,112,103,119,109,111,100,101,112,97,114,97,109,83,84,65,82,84,108,101,102,116,32,105,100,100,101,110,44,32,50,48,49,41,59,10,125,10,102,111,114,109,46,118,105,114,117,115,99,104,97,105,114,116,114,97,110,115,119,111,114,115,116,80,97,103,101,115,105,116,105,111,110,112,97,116,99,104,60,33,45,45,10,111,45,99,97,99,102,105,114,109,115,116,111,117,114,115,44,48,48,48,32,97,115,105,97,110,105,43,43,41,123,97,100,111,98,101,39,41,91,48,93,105,100,61,49,48,98,111,116,104,59,109,101,110,117,32,46,50,46,109,105,46,112,110,103,34,107,101,118,105,110,99,111,97,99,104,67,104,105,108,100,98,114,117,99,101,50,46,106,112,103,85,82,76,41,43,46,106,112,103,124,115,117,105,116,101,115,108,105,99,101,104,97,114,114,121,49,50,48,34,32,115,119,101,101,116,116,114,62,13,10,110,97,109,101,61,100,105,101,103,111,112,97,103,101,32,115,119,105,115,115,45,45,62,10,10,35,102,102,102,59,34,62,76,111,103,46,99,111,109,34,116,114,101,97,116,115,104,101,101,116,41,32,38,38,32,49,52,112,120,59,115,108,101,101,112,110,116,101,110,116,102,105,108,101,100,106,97,58,227,131,105,100,61,34,99,78,97,109,101,34,119,111,114,115,101,115,104,111,116,115,45,98,111,120,45,100,101,108,116,97,10,38,108,116,59,98,101,97,114,115,58,52,56,90,60,100,97,116,97,45,114,117,114,97,108,60,47,97,62,32,115,112,101,110,100,98,97,107,101,114,115,104,111,112,115,61,32,34,34,59,112,104,112,34,62,99,116,105,111,110,49,51,112,120,59,98,114,105,97,110,104,101,108,108,111,115,105,122,101,61,111,61,37,50,70,32,106,111,105,110,109,97,121,98,101,60,105,109,103,32,105,109,103,34,62,44,32,102,106,115,105,109,103,34,32,34,41,91,48,93,77,84,111,112,66,84,121,112,101,34,110,101,119,108,121,68,97,110,115,107,99,122,101,99,104,116,114,97,105,108,107,110,111,119,115,60,47,104,53,62,102,97,113,34,62,122,104,45,99,110,49,48,41,59,10,45,49,34,41,59,116,121,112,101,61,98,108,117,101,115,116,114,117,108,121,100,97,118,105,115,46,106,115,39,59,62,13,10,60,33,115,116,101,101,108,32,121,111,117,32,104,50,62,13,10,102,111,114,109,32,106,101,115,117,115,49,48,48,37,32,109,101,110,117,46,13,10,9,13,10,119,97,108,101,115,114,105,115,107,115,117,109,101,110,116,100,100,105,110,103,98,45,108,105,107,116,101,97,99,104,103,105,102,34,32,118,101,103,97,115,100,97,110,115,107,101,101,115,116,105,115,104,113,105,112,115,117,111,109,105,115,111,98,114,101,100,101,115,100,101,101,110,116,114,101,116,111,100,111,115,112,117,101,100,101,97,195,177,111,115,101,115,116,195,161,116,105,101,110,101,104,97,115,116,97,111,116,114,111,115,112,97,114,116,101,100,111,110,100,101,110,117,101,118,111,104,97,99,101,114,102,111,114,109,97,109,105,115,109,111,109,101,106,111,114,109,117,110,100,111,97,113,117,195,173,100,195,173,97,115,115,195,179,108,111,97,121,117,100,97,102,101,99,104,97,116,111,100,97,115,116,97,110,116,111,109,101,110,111,115,100,97,116,111,115,111,116,114,97,115,115,105,116,105,111,109,117,99,104,111,97,104,111,114,97,108,117,103,97,114,109,97,121,111,114,101,115,116,111,115,104,111,114,97,115,116,101,110,101,114,97,110,116,101,115,102,111,116,111,115,101,115,116,97,115,112,97,195,173,115,110,117,101,118,97,115,97,108,117,100,102,111,114,111,115,109,101,100,105,111,113,117,105,101,110,109,101,115,101,115,112,111,100,101,114,99,104,105,108,101,115,101,114,195,161,118,101,99,101,115,100,101,99,105,114,106,111,115,195,169,101,115,116,97,114,118,101,110,116,97,103,114,117,112,111,104,101,99,104,111,101,108,108,111,115,116,101,110,103,111,97,109,105,103,111,99,111,115,97,115,110,105,118,101,108,103,101,110,116,101,109,105,115,109,97,97,105,114,101,115,106,117,108,105,111,116,101,109,97,115,104,97,99,105,97,102,97,118,111,114,106,117,110,105,111,108,105,98,114,101,112,117,110,116,111,98,117,101,110,111,97,117,116,111,114,97,98,114,105,108,98,117,101,110,97,116,101,120,116,111,109,97,114,122,111,115,97,98,101,114,108,105,115,116,97,108,117,101,103,111,99,195,179,109,111,101,110,101,114,111,106,117,101,103,111,112,101,114,195,186,104,97,98,101,114,101,115,116,111,121,110,117,110,99,97,109,117,106,101,114,118,97,108,111,114,102,117,101,114,97,108,105,98,114,111,103,117,115,116,97,105,103,117,97,108,118,111,116,111,115,99,97,115,111,115,103,117,195,173,97,112,117,101,100,111,115,111,109,111,115,97,118,105,115,111,117,115,116,101,100,100,101,98,101,110,110,111,99,104,101,98,117,115,99,97,102,97,108,116,97,101,117,114,111,115,115,101,114,105,101,100,105,99,104,111,99,117,114,115,111,99,108,97,118,101,99,97,115,97,115,108,101,195,179,110,112,108,97,122,111,108,97,114,103,111,111,98,114,97,115,118,105,115,116,97,97,112,111,121,111,106,117,110,116,111,116,114,97,116,97,118,105,115,116,111,99,114,101,97,114,99,97,109,112,111,104,101,109,111,115,99,105,110,99,111,99,97,114,103,111,112,105,115,111,115,111,114,100,101,110,104,97,99,101,110,195,161,114,101,97,100,105,115,99,111,112,101,100,114,111,99,101,114,99,97,112,117,101,100,97,112,97,112,101,108,109,101,110,111,114,195,186,116,105,108,99,108,97,114,111,106,111,114,103,101,99,97,108,108,101,112,111,110,101,114,116,97,114,100,101,110,97,100,105,101,109,97,114,99,97,115,105,103,117,101,101,108,108,97,115,115,105,103,108,111,99,111,99,104,101,109,111,116,111,115,109,97,100,114,101,99,108,97,115,101,114,101,115,116,111,110,105,195,177,111,113,117,101,100,97,112,97,115,97,114,98,97,110,99,111,104,105,106,111,115,118,105,97,106,101,112,97,98,108,111,195,169,115,116,101,118,105,101,110,101,114,101,105,110,111,100,101,106,97,114,102,111,110,100,111,99,97,110,97,108,110,111,114,116,101,108,101,116,114,97,99,97,117,115,97,116,111,109,97,114,109,97,110,111,115,108,117,110,101,115,97,117,116,111,115,118,105,108,108,97,118,101,110,100,111,112,101,115,97,114,116,105,112,111,115,116,101,110,103,97,109,97,114,99,111,108,108,101,118,97,112,97,100,114,101,117,110,105,100,111,118,97,109,111,115,122,111,110,97,115,97,109,98,111,115,98,97,110,100,97,109,97,114,105,97,97,98,117,115,111,109,117,99,104,97,115,117,98,105,114,114,105,111,106,97,118,105,118,105,114,103,114,97,100,111,99,104,105,99,97,97,108,108,195,173,106,111,118,101,110,100,105,99,104,97,101,115,116,97,110,116,97,108,101,115,115,97,108,105,114,115,117,101,108,111,112,101,115,111,115,102,105,110,101,115,108,108,97,109,97,98,117,115,99,111,195,169,115,116,97,108,108,101,103,97,110,101,103,114,111,112,108,97,122,97,104,117,109,111,114,112,97,103,97,114,106,117,110,116,97,100,111,98,108,101,105,115,108,97,115,98,111,108,115,97,98,97,195,177,111,104,97,98,108,97,108,117,99,104,97,195,129,114,101,97,100,105,99,101,110,106,117,103,97,114,110,111,116,97,115,118,97,108,108,101,97,108,108,195,161,99,97,114,103,97,100,111,108,111,114,97,98,97,106,111,101,115,116,195,169,103,117,115,116,111,109,101,110,116,101,109,97,114,105,111,102,105,114,109,97,99,111,115,116,111,102,105,99,104,97,112,108,97,116,97,104,111,103,97,114,97,114,116,101,115,108,101,121,101,115,97,113,117,101,108,109,117,115,101,111,98,97,115,101,115,112,111,99,111,115,109,105,116,97,100,99,105,101,108,111,99,104,105,99,111,109,105,101,100,111,103,97,110,97,114,115,97,110,116,111,101,116,97,112,97,100,101,98,101,115,112,108,97,121,97,114,101,100,101,115,115,105,101,116,101,99,111,114,116,101,99,111,114,101,97,100,117,100,97,115,100,101,115,101,111,118,105,101,106,111,100,101,115,101,97,97,103,117,97,115,38,113,117,111,116,59,100,111,109,97,105,110,99,111,109,109,111,110,115,116,97,116,117,115,101,118,101,110,116,115,109,97,115,116,101,114,115,121,115,116,101,109,97,99,116,105,111,110,98,97,110,110,101,114,114,101,109,111,118,101,115,99,114,111,108,108,117,112,100,97,116,101,103,108,111,98,97,108,109,101,100,105,117,109,102,105,108,116,101,114,110,117,109,98,101,114,99,104,97,110,103,101,114,101,115,117,108,116,112,117,98,108,105,99,115,99,114,101,101,110,99,104,111,111,115,101,110,111,114,109,97,108,116,114,97,118,101,108,105,115,115,117,101,115,115,111,117,114,99,101,116,97,114,103,101,116,115,112,114,105,110,103,109,111,100,117,108,101,109,111,98,105,108,101,115,119,105,116,99,104,112,104,111,116,111,115,98,111,114,100,101,114,114,101,103,105,111,110,105,116,115,101,108,102,115,111,99,105,97,108,97,99,116,105,118,101,99,111,108,117,109,110,114,101,99,111,114,100,102,111,108,108,111,119,116,105,116,108,101,62,101,105,116,104,101,114,108,101,110,103,116,104,102,97,109,105,108,121,102,114,105,101,110,100,108,97,121,111,117,116,97,117,116,104,111,114,99,114,101,97,116,101,114,101,118,105,101,119,115,117,109,109,101,114,115,101,114,118,101,114,112,108,97,121,101,100,112,108,97,121,101,114,101,120,112,97,110,100,112,111,108,105,99,121,102,111,114,109,97,116,100,111,117,98,108,101,112,111,105,110,116,115,115,101,114,105,101,115,112,101,114,115,111,110,108,105,118,105,110,103,100,101,115,105,103,110,109,111,110,116,104,115,102,111,114,99,101,115,117,110,105,113,117,101,119,101,105,103,104,116,112,101,111,112,108,101,101,110,101,114,103,121,110,97,116,117,114,101,115,101,97,114,99,104,102,105,103,117,114,101,104,97,118,105,110,103,99,117,115,116,111,109,111,102,102,115,101,116,108,101,116,116,101,114,119,105,110,100,111,119,115,117,98,109,105,116,114,101,110,100,101,114,103,114,111,117,112,115,117,112,108,111,97,100,104,101,97,108,116,104,109,101,116,104,111,100,118,105,100,101,111,115,115,99,104,111,111,108,102,117,116,117,114,101,115,104,97,100,111,119,100,101,98,97,116,101,118,97,108,117,101,115,79,98,106,101,99,116,111,116,104,101,114,115,114,105,103,104,116,115,108,101,97,103,117,101,99,104,114,111,109,101,115,105,109,112,108,101,110,111,116,105,99,101,115,104,97,114,101,100,101,110,100,105,110,103,115,101,97,115,111,110,114,101,112,111,114,116,111,110,108,105,110,101,115,113,117,97,114,101,98,117,116,116,111,110,105,109,97,103,101,115,101,110,97,98,108,101,109,111,118,105,110,103,108,97,116,101,115,116,119,105,110,116,101,114,70,114,97,110,99,101,112,101,114,105,111,100,115,116,114,111,110,103,114,101,112,101,97,116,76,111,110,100,111,110,100,101,116,97,105,108,102,111,114,109,101,100,100,101,109,97,110,100,115,101,99,117,114,101,112,97,115,115,101,100,116,111,103,103,108,101,112,108,97,99,101,115,100,101,118,105,99,101,115,116,97,116,105,99,99,105,116,105,101,115,115,116,114,101,97,109,121,101,108,108,111,119,97,116,116,97,99,107,115,116,114,101,101,116,102,108,105,103,104,116,104,105,100,100,101,110,105,110,102,111,34,62,111,112,101,110,101,100,117,115,101,102,117,108,118,97,108,108,101,121,99,97,117,115,101,115,108,101,97,100,101,114,115,101,99,114,101,116,115,101,99,111,110,100,100,97,109,97,103,101,115,112,111,114,116,115,101,120,99,101,112,116,114,97,116,105,110,103,115,105,103,110,101,100,116,104,105,110,103,115,101,102,102,101,99,116,102,105,101,108,100,115,115,116,97,116,101,115,111,102,102,105,99,101,118,105,115,117,97,108,101,100,105,116,111,114,118,111,108,117,109,101,82,101,112,111,114,116,109,117,115,101,117,109,109,111,118,105,101,115,112,97,114,101,110,116,97,99,99,101,115,115,109,111,115,116,108,121,109,111,116,104,101,114,34,32,105,100,61,34,109,97,114,107,101,116,103,114,111,117,110,100,99,104,97,110,99,101,115,117,114,118,101,121,98,101,102,111,114,101,115,121,109,98,111,108,109,111,109,101,110,116,115,112,101,101,99,104,109,111,116,105,111,110,105,110,115,105,100,101,109,97,116,116,101,114,67,101,110,116,101,114,111,98,106,101,99,116,101,120,105,115,116,115,109,105,100,100,108,101,69,117,114,111,112,101,103,114,111,119,116,104,108,101,103,97,99,121,109,97,110,110,101,114,101,110,111,117,103,104,99,97,114,101,101,114,97,110,115,119,101,114,111,114,105,103,105,110,112,111,114,116,97,108,99,108,105,101,110,116,115,101,108,101,99,116,114,97,110,100,111,109,99,108,111,115,101,100,116,111,112,105,99,115,99,111,109,105,110,103,102,97,116,104,101,114,111,112,116,105,111,110,115,105,109,112,108,121,114,97,105,115,101,100,101,115,99,97,112,101,99,104,111,115,101,110,99,104,117,114,99,104,100,101,102,105,110,101,114,101,97,115,111,110,99,111,114,110,101,114,111,117,116,112,117,116,109,101,109,111,114,121,105,102,114,97,109,101,112,111,108,105,99,101,109,111,100,101,108,115,78,117,109,98,101,114,100,117,114,105,110,103,111,102,102,101,114,115,115,116,121,108,101,115,107,105,108,108,101,100,108,105,115,116,101,100,99,97,108,108,101,100,115,105,108,118,101,114,109,97,114,103,105,110,100,101,108,101,116,101,98,101,116,116,101,114,98,114,111,119,115,101,108,105,109,105,116,115,71,108,111,98,97,108,115,105,110,103,108,101,119,105,100,103,101,116,99,101,110,116,101,114,98,117,100,103,101,116,110,111,119,114,97,112,99,114,101,100,105,116,99,108,97,105,109,115,101,110,103,105,110,101,115,97,102,101,116,121,99,104,111,105,99,101,115,112,105,114,105,116,45,115,116,121,108,101,115,112,114,101,97,100,109,97,107,105,110,103,110,101,101,100,101,100,114,117,115,115,105,97,112,108,101,97,115,101,101,120,116,101,110,116,83,99,114,105,112,116,98,114,111,107,101,110,97,108,108,111,119,115,99,104,97,114,103,101,100,105,118,105,100,101,102,97,99,116,111,114,109,101,109,98,101,114,45,98,97,115,101,100,116,104,101,111,114,121,99,111,110,102,105,103,97,114,111,117,110,100,119,111,114,107,101,100,104,101,108,112,101,100,67,104,117,114,99,104,105,109,112,97,99,116,115,104,111,117,108,100,97,108,119,97,121,115,108,111,103,111,34,32,98,111,116,116,111,109,108,105,115,116,34,62,41,123,118,97,114,32,112,114,101,102,105,120,111,114,97,110,103,101,72,101,97,100,101,114,46,112,117,115,104,40,99,111,117,112,108,101,103,97,114,100,101,110,98,114,105,100,103,101,108,97,117,110,99,104,82,101,118,105,101,119,116,97,107,105,110,103,118,105,115,105,111,110,108,105,116,116,108,101,100,97,116,105,110,103,66,117,116,116,111,110,98,101,97,117,116,121,116,104,101,109,101,115,102,111,114,103,111,116,83,101,97,114,99,104,97,110,99,104,111,114,97,108,109,111,115,116,108,111,97,100,101,100,67,104,97,110,103,101,114,101,116,117,114,110,115,116,114,105,110,103,114,101,108,111,97,100,77,111,98,105,108,101,105,110,99,111,109,101,115,117,112,112,108,121,83,111,117,114,99,101,111,114,100,101,114,115,118,105,101,119,101,100,38,110,98,115,112,59,99,111,117,114,115,101,65,98,111,117,116,32,105,115,108,97,110,100,60,104,116,109,108,32,99,111,111,107,105,101,110,97,109,101,61,34,97,109,97,122,111,110,109,111,100,101,114,110,97,100,118,105,99,101,105,110,60,47,97,62,58,32,84,104,101,32,100,105,97,108,111,103,104,111,117,115,101,115,66,69,71,73,78,32,77,101,120,105,99,111,115,116,97,114,116,115,99,101,110,116,114,101,104,101,105,103,104,116,97,100,100,105,110,103,73,115,108,97,110,100,97,115,115,101,116,115,69,109,112,105,114,101,83,99,104,111,111,108,101,102,102,111,114,116,100,105,114,101,99,116,110,101,97,114,108,121,109,97,110,117,97,108,83,101,108,101,99,116,46,10,10,79,110,101,106,111,105,110,101,100,109,101,110,117,34,62,80,104,105,108,105,112,97,119,97,114,100,115,104,97,110,100,108,101,105,109,112,111,114,116,79,102,102,105,99,101,114,101,103,97,114,100,115,107,105,108,108,115,110,97,116,105,111,110,83,112,111,114,116,115,100,101,103,114,101,101,119,101,101,107,108,121,32,40,101,46,103,46,98,101,104,105,110,100,100,111,99,116,111,114,108,111,103,103,101,100,117,110,105,116,101,100,60,47,98,62,60,47,98,101,103,105,110,115,112,108,97,110,116,115,97,115,115,105,115,116,97,114,116,105,115,116,105,115,115,117,101,100,51,48,48,112,120,124,99,97,110,97,100,97,97,103,101,110,99,121,115,99,104,101,109,101,114,101,109,97,105,110,66,114,97,122,105,108,115,97,109,112,108,101,108,111,103,111,34,62,98,101,121,111,110,100,45,115,99,97,108,101,97,99,99,101,112,116,115,101,114,118,101,100,109,97,114,105,110,101,70,111,111,116,101,114,99,97,109,101,114,97,60,47,104,49,62,10,95,102,111,114,109,34,108,101,97,118,101,115,115,116,114,101,115,115,34,32,47,62,13,10,46,103,105,102,34,32,111,110,108,111,97,100,108,111,97,100,101,114,79,120,102,111,114,100,115,105,115,116,101,114,115,117,114,118,105,118,108,105,115,116,101,110,102,101,109,97,108,101,68,101,115,105,103,110,115,105,122,101,61,34,97,112,112,101,97,108,116,101,120,116,34,62,108,101,118,101,108,115,116,104,97,110,107,115,104,105,103,104,101,114,102,111,114,99,101,100,97,110,105,109,97,108,97,110,121,111,110,101,65,102,114,105,99,97,97,103,114,101,101,100,114,101,99,101,110,116,80,101,111,112,108,101,60,98,114,32,47,62,119,111,110,100,101,114,112,114,105,99,101,115,116,117,114,110,101,100,124,124,32,123,125,59,109,97,105,110,34,62,105,110,108,105,110,101,115,117,110,100,97,121,119,114,97,112,34,62,102,97,105,108,101,100,99,101,110,115,117,115,109,105,110,117,116,101,98,101,97,99,111,110,113,117,111,116,101,115,49,53,48,112,120,124,101,115,116,97,116,101,114,101,109,111,116,101,101,109,97,105,108,34,108,105,110,107,101,100,114,105,103,104,116,59,115,105,103,110,97,108,102,111,114,109,97,108,49,46,104,116,109,108,115,105,103,110,117,112,112,114,105,110,99,101,102,108,111,97,116,58,46,112,110,103,34,32,102,111,114,117,109,46,65,99,99,101,115,115,112,97,112,101,114,115,115,111,117,110,100,115,101,120,116,101,110,100,72,101,105,103,104,116,115,108,105,100,101,114,85,84,70,45,56,34,38,97,109,112,59,32,66,101,102,111,114,101,46,32,87,105,116,104,115,116,117,100,105,111,111,119,110,101,114,115,109,97,110,97,103,101,112,114,111,102,105,116,106,81,117,101,114,121,97,110,110,117,97,108,112,97,114,97,109,115,98,111,117,103,104,116,102,97,109,111,117,115,103,111,111,103,108,101,108,111,110,103,101,114,105,43,43,41,32,123,105,115,114,97,101,108,115,97,121,105,110,103,100,101,99,105,100,101,104,111,109,101,34,62,104,101,97,100,101,114,101,110,115,117,114,101,98,114,97,110,99,104,112,105,101,99,101,115,98,108,111,99,107,59,115,116,97,116,101,100,116,111,112,34,62,60,114,97,99,105,110,103,114,101,115,105,122,101,45,45,38,103,116,59,112,97,99,105,116,121,115,101,120,117,97,108,98,117,114,101,97,117,46,106,112,103,34,32,49,48,44,48,48,48,111,98,116,97,105,110,116,105,116,108,101,115,97,109,111,117,110,116,44,32,73,110,99,46,99,111,109,101,100,121,109,101,110,117,34,32,108,121,114,105,99,115,116,111,100,97,121,46,105,110,100,101,101,100,99,111,117,110,116,121,95,108,111,103,111,46,70,97,109,105,108,121,108,111,111,107,101,100,77,97,114,107,101,116,108,115,101,32,105,102,80,108,97,121,101,114,116,117,114,107,101,121,41,59,118,97,114,32,102,111,114,101,115,116,103,105,118,105,110,103,101,114,114,111,114,115,68,111,109,97,105,110,125,101,108,115,101,123,105,110,115,101,114,116,66,108,111,103,60,47,102,111,111,116,101,114,108,111,103,105,110,46,102,97,115,116,101,114,97,103,101,110,116,115,60,98,111,100,121,32,49,48,112,120,32,48,112,114,97,103,109,97,102,114,105,100,97,121,106,117,110,105,111,114,100,111,108,108,97,114,112,108,97,99,101,100,99,111,118,101,114,115,112,108,117,103,105,110,53,44,48,48,48,32,112,97,103,101,34,62,98,111,115,116,111,110,46,116,101,115,116,40,97,118,97,116,97,114,116,101,115,116,101,100,95,99,111,117,110,116,102,111,114,117,109,115,115,99,104,101,109,97,105,110,100,101,120,44,102,105,108,108,101,100,115,104,97,114,101,115,114,101,97,100,101,114,97,108,101,114,116,40,97,112,112,101,97,114,83,117,98,109,105,116,108,105,110,101,34,62,98,111,100,121,34,62,10,42,32,84,104,101,84,104,111,117,103,104,115,101,101,105,110,103,106,101,114,115,101,121,78,101,119,115,60,47,118,101,114,105,102,121,101,120,112,101,114,116,105,110,106,117,114,121,119,105,100,116,104,61,67,111,111,107,105,101,83,84,65,82,84,32,97,99,114,111,115,115,95,105,109,97,103,101,116,104,114,101,97,100,110,97,116,105,118,101,112,111,99,107,101,116,98,111,120,34,62,10,83,121,115,116,101,109,32,68,97,118,105,100,99,97,110,99,101,114,116,97,98,108,101,115,112,114,111,118,101,100,65,112,114,105,108,32,114,101,97,108,108,121,100,114,105,118,101,114,105,116,101,109,34,62,109,111,114,101,34,62,98,111,97,114,100,115,99,111,108,111,114,115,99,97,109,112,117,115,102,105,114,115,116,32,124,124,32,91,93,59,109,101,100,105,97,46,103,117,105,116,97,114,102,105,110,105,115,104,119,105,100,116,104,58,115,104,111,119,101,100,79,116,104,101,114,32,46,112,104,112,34,32,97,115,115,117,109,101,108,97,121,101,114,115,119,105,108,115,111,110,115,116,111,114,101,115,114,101,108,105,101,102,115,119,101,100,101,110,67,117,115,116,111,109,101,97,115,105,108,121,32,121,111,117,114,32,83,116,114,105,110,103,10,10,87,104,105,108,116,97,121,108,111,114,99,108,101,97,114,58,114,101,115,111,114,116,102,114,101,110,99,104,116,104,111,117,103,104,34,41,32,43,32,34,60,98,111,100,121,62,98,117,121,105,110,103,98,114,97,110,100,115,77,101,109,98,101,114,110,97,109,101,34,62,111,112,112,105,110,103,115,101,99,116,111,114,53,112,120,59,34,62,118,115,112,97,99,101,112,111,115,116,101,114,109,97,106,111,114,32,99,111,102,102,101,101,109,97,114,116,105,110,109,97,116,117,114,101,104,97,112,112,101,110,60,47,110,97,118,62,107,97,110,115,97,115,108,105,110,107,34,62,73,109,97,103,101,115,61,102,97,108,115,101,119,104,105,108,101,32,104,115,112,97,99,101,48,38,97,109,112,59,32,10,10,73,110,32,32,112,111,119,101,114,80,111,108,115,107,105,45,99,111,108,111,114,106,111,114,100,97,110,66,111,116,116,111,109,83,116,97,114,116,32,45,99,111,117,110,116,50,46,104,116,109,108,110,101,119,115,34,62,48,49,46,106,112,103,79,110,108,105,110,101,45,114,105,103,104,116,109,105,108,108,101,114,115,101,110,105,111,114,73,83,66,78,32,48,48,44,48,48,48,32,103,117,105,100,101,115,118,97,108,117,101,41,101,99,116,105,111,110,114,101,112,97,105,114,46,120,109,108,34,32,32,114,105,103,104,116,115,46,104,116,109,108,45,98,108,111,99,107,114,101,103,69,120,112,58,104,111,118,101,114,119,105,116,104,105,110,118,105,114,103,105,110,112,104,111,110,101,115,60,47,116,114,62,13,117,115,105,110,103,32,10,9,118,97,114,32,62,39,41,59,10,9,60,47,116,100,62,10,60,47,116,114,62,10,98,97,104,97,115,97,98,114,97,115,105,108,103,97,108,101,103,111,109,97,103,121,97,114,112,111,108,115,107,105,115,114,112,115,107,105,216,177,216,175,217,136,228,184,173,230,150,135,231,174,128,228,189,147,231,185,129,233,171,148,228,191,161,230,129,175,228,184,173,229,155,189,230,136,145,228,187,172,228,184,128,228,184,170,229,133,172,229,143,184,231,174,161,231,144,134,232,174,186,229,157,155,229,143,175,228,187,165,230,156,141,229,138,161,230,151,182,233,151,180,228,184,170,228,186,186,228,186,167,229,147,129,232,135,170,229,183,177,228,188,129,228,184,154,230,159,165,231,156,139,229,183,165,228,189,156,232,129,148,231,179,187,230,178,161,230,156,137,231,189,145,231,171,153,230,137,128,230,156,137,232,175,132,232,174,186,228,184,173,229,191,131,230,150,135,231,171,160,231,148,168,230,136,183,233,166,150,233,161,181,228,189,156,232,128,133,230,138,128,230,156,175,233,151,174,233,162,152,231,155,184,229,133,179,228,184,139,232,189,189,230,144,156,231,180,162,228,189,191,231,148,168,232,189,175,228,187,182,229,156,168,231,186,191,228,184,187,233,162,152,232,181,132,230,150,153,232,167,134,233,162,145,229,155,158,229,164,141,230,179,168,229,134,140,231,189,145,231,187,156,230,148,182,232,151,143,229,134,133,229,174,185,230,142,168,232,141,144,229,184,130,229,156,186,230,182,136,230,129,175,231,169,186,233,151,180,229,143,145,229,184,131,228,187,128,228,185,136,229,165,189,229,143,139,231,148,159,230,180,187,229,155,190,231,137,135,229,143,145,229,177,149,229,166,130,230,158,156,230,137,139,230,156,186,230,150,176,233,151,187,230,156,128,230,150,176,230,150,185,229,188,143,229,140,151,228,186,172,230,143,144,228,190,155,229,133,179,228,186,142,230,155,180,229,164,154,232,191,153,228,184,170,231,179,187,231,187,159,231,159,165,233,129,147,230,184,184,230,136,143,229,185,191,229,145,138,229,133,182,228,187,150,229,143,145,232,161,168,229,174,137,229,133,168,231,172,172,228,184,128,228,188,154,229,145,152,232,191,155,232,161,140,231,130,185,229,135,187,231,137,136,230,157,131,231,148,181,229,173,144,228,184,150,231,149,140,232,174,190,232,174,161,229,133,141,232,180,185,230,149,153,232,130,178,229,138,160,229,133,165,230,180,187,229,138,168,228,187,150,228,187,172,229,149,134,229,147,129,229,141,154,229,174,162,231,142,176,229,156,168,228,184,138,230,181,183,229,166,130,228,189,149,229,183,178,231,187,143,231,149,153,232,168,128,232,175,166,231,187,134,231,164,190,229,140,186,231,153,187,229,189,149,230,156,172,231,171,153,233,156,128,232,166,129,228,187,183,230,160,188,230,148,175,230,140,129,229,155,189,233,153,133,233,147,190,230,142,165,229,155,189,229,174,182,229,187,186,232,174,190,230,156,139,229,143,139,233,152,133,232,175,187,230,179,149,229,190,139,228,189,141,231,189,174,231,187,143,230,181,142,233,128,137,230,139,169,232,191,153,230,160,183,229,189,147,229,137,141,229,136,134,231,177,187,230,142,146,232,161,140,229,155,160,228,184,186,228,186,164,230,152,147,230,156,128,229,144,142,233,159,179,228,185,144,228,184,141,232,131,189,233,128,154,232,191,135,232,161,140,228,184,154,231,167,145,230,138,128,229,143,175,232,131,189,232,174,190,229,164,135,229,144,136,228,189,156,229,164,167,229,174,182,231,164,190,228,188,154,231,160,148,231,169,182,228,184,147,228,184,154,229,133,168,233,131,168,233,161,185,231,155,174,232,191,153,233,135,140,232,191,152,230,152,175,229,188,128,229,167,139,230,131,133,229,134,181,231,148,181,232,132,145,230,150,135,228,187,182,229,147,129,231,137,140,229,184,174,229,138,169,230,150,135,229,140,150,232,181,132,230,186,144,229,164,167,229,173,166,229,173,166,228,185,160,229,156,176,229,157,128,230,181,143,232,167,136,230,138,149,232,181,132,229,183,165,231,168,139,232,166,129,230,177,130,230,128,142,228,185,136,230,151,182,229,128,153,229,138,159,232,131,189,228,184,187,232,166,129,231,155,174,229,137,141,232,181,132,232,174,175,229,159,142,229,184,130,230,150,185,230,179,149,231,148,181,229,189,177,230,139,155,232,129,152,229,163,176,230,152,142,228,187,187,228,189,149,229,129,165,229,186,183,230,149,176,230,141,174,231,190,142,229,155,189,230,177,189,232,189,166,228,187,139,231,187,141,228,189,134,230,152,175,228,186,164,230,181,129,231,148,159,228,186,167,230,137,128,228,187,165,231,148,181,232,175,157,230,152,190,231,164,186,228,184,128,228,186,155,229,141,149,228,189,141,228,186,186,229,145,152,229,136,134,230,158,144,229,156,176,229,155,190,230,151,133,230,184,184,229,183,165,229,133,183,229,173,166,231,148,159,231,179,187,229,136,151,231,189,145,229,143,139,229,184,150,229,173,144,229,175,134,231,160,129,233,162,145,233,129,147,230,142,167,229,136,182,229,156,176,229,140,186,229,159,186,230,156,172,229,133,168,229,155,189,231,189,145,228,184,138,233,135,141,232,166,129,231,172,172,228,186,140,229,150,156,230,172,162,232,191,155,229,133,165,229,143,139,230,131,133,232,191,153,228,186,155,232,128,131,232,175,149,229,143,145,231,142,176,229,159,185,232,174,173,228,187,165,228,184,138,230,148,191,229,186,156,230,136,144,228,184,186,231,142,175,229,162,131,233,166,153,230,184,175,229,144,140,230,151,182,229,168,177,228,185,144,229,143,145,233,128,129,228,184,128,229,174,154,229,188,128,229,143,145,228,189,156,229,147,129,230,160,135,229,135,134,230,172,162,232,191,142,232,167,163,229,134,179,229,156,176,230,150,185,228,184,128,228,184,139,228,187,165,229,143,138,232,180,163,228,187,187,230,136,150,232,128,133,229,174,162,230,136,183,228,187,163,232,161,168,231,167,175,229,136,134,229,165,179,228,186,186,230,149,176,231,160,129,233,148,128,229,148,174,229,135,186,231,142,176,231,166,187,231,186,191,229,186,148,231,148,168,229,136,151,232,161,168,228,184,141,229,144,140,231,188,150,232,190,145,231,187,159,232,174,161,230,159,165,232,175,162,228,184,141,232,166,129,230,156,137,229,133,179,230,156,186,230,158,132,229,190,136,229,164,154,230,146,173,230,148,190,231,187,132,231,187,135,230,148,191,231,173,150,231,155,180,230,142,165,232,131,189,229,138,155,230,157,165,230,186,144,230,153,130,233,150,147,231,156,139,229,136,176,231,131,173,233,151,168,229,133,179,233,148,174,228,184,147,229,140,186,233,157,158,229,184,184,232,139,177,232,175,173,231,153,190,229,186,166,229,184,140,230,156,155,231,190,142,229,165,179,230,175,148,232,190,131,231,159,165,232,175,134,232,167,132,229,174,154,229,187,186,232,174,174,233,131,168,233,151,168,230,132,143,232,167,129,231,178,190,229,189,169,230,151,165,230,156,172,230,143,144,233,171,152,229,143,145,232,168,128,230,150,185,233,157,162,229,159,186,233,135,145,229,164,132,231,144,134,230,157,131,233,153,144,229,189,177,231,137,135,233,147,182,232,161,140,232,191,152,230,156,137,229,136,134,228,186,171,231,137,169,229,147,129,231,187,143,232,144,165,230,183,187,229,138,160,228,184,147,229,174,182,232,191,153,231,167,141,232,175,157,233,162,152,232,181,183,230,157,165,228,184,154,229,138,161,229,133,172,229,145,138,232,174,176,229,189,149,231,174,128,228,187,139,232,180,168,233,135,143,231,148,183,228,186,186,229,189,177,229,147,141,229,188,149,231,148,168,230,138,165,229,145,138,233,131,168,229,136,134,229,191,171,233,128,159,229,146,168,232,175,162,230,151,182,229,176,154,230,179,168,230,132,143,231,148,179,232,175,183,229,173,166,230,160,161,229,186,148,232,175,165,229,142,134,229,143,178,229,143,170,230,152,175,232,191,148,229,155,158,232,180,173,228,185,176,229,144,141,231,167,176,228,184,186,228,186,134,230,136,144,229,138,159,232,175,180,230,152,142,228,190,155,229,186,148,229,173,169,229,173,144,228,184,147,233,162,152,231,168,139,229,186,143,228,184,128,232,136,172,230,156,131,229,147,161,229,143,170,230,156,137,229,133,182,229,174,131,228,191,157,230,138,164,232,128,140,228,184,148,228,187,138,229,164,169,231,170,151,229,143,163,229,138,168,230,128,129,231,138,182,230,128,129,231,137,185,229,136,171,232,174,164,228,184,186,229,191,133,233,161,187,230,155,180,230,150,176,229,176,143,232,175,180,230,136,145,229,128,145,228,189,156,228,184,186,229,170,146,228,189,147,229,140,133,230,139,172,233,130,163,228,185,136,228,184,128,230,160,183,229,155,189,229,134,133,230,152,175,229,144,166,230,160,185,230,141,174,231,148,181,232,167,134,229,173,166,233,153,162,229,133,183,230,156,137,232,191,135,231,168,139,231,148,177,228,186,142,228,186,186,230,137,141,229,135,186,230,157,165,228,184,141,232,191,135,230,173,163,229,156,168,230,152,142,230,152,159,230,149,133,228,186,139,229,133,179,231,179,187,230,160,135,233,162,152,229,149,134,229,138,161,232,190,147,229,133,165,228,184,128,231,155,180,229,159,186,231,161,128,230,149,153,229,173,166,228,186,134,232,167,163,229,187,186,231,173,145,231,187,147,230,158,156,229,133,168,231,144,131,233,128,154,231,159,165,232,174,161,229,136,146,229,175,185,228,186,142,232,137,186,230,156,175,231,155,184,229,134,140,229,143,145,231,148,159,231,156,159,231,154,132,229,187,186,231,171,139,231,173,137,231,186,167,231,177,187,229,158,139,231,187,143,233,170,140,229,174,158,231,142,176,229,136,182,228,189,156,230,157,165,232,135,170,230,160,135,231,173,190,228,187,165,228,184,139,229,142,159,229,136,155,230,151,160,230,179,149,229,133,182,228,184,173,229,128,139,228,186,186,228,184,128,229,136,135,230,140,135,229,141,151,229,133,179,233,151,173,233,155,134,229,155,162,231,172,172,228,184,137,229,133,179,230,179,168,229,155,160,230,173,164,231,133,167,231,137,135,230,183,177,229,156,179,229,149,134,228,184,154,229,185,191,229,183,158,230,151,165,230,156,159,233,171,152,231,186,167,230,156,128,232,191,145,231,187,188,229,144,136,232,161,168,231,164,186,228,184,147,232,190,145,232,161,140,228,184,186,228,186,164,233,128,154,232,175,132,228,187,183,232,167,137,229,190,151,231,178,190,229,141,142,229,174,182,229,186,173,229,174,140,230,136,144,230,132,159,232,167,137,229,174,137,232,163,133,229,190,151,229,136,176,233,130,174,228,187,182,229,136,182,229,186,166,233,163,159,229,147,129,232,153,189,231,132,182,232,189,172,232,189,189,230,138,165,228,187,183,232,174,176,232,128,133,230,150,185,230,161,136,232,161,140,230,148,191,228,186,186,230,176,145,231,148,168,229,147,129,228,184,156,232,165,191,230,143,144,229,135,186,233,133,146,229,186,151,231,132,182,229,144,142,228,187,152,230,172,190,231,131,173,231,130,185,228,187,165,229,137,141,229,174,140,229,133,168,229,143,145,229,184,150,232,174,190,231,189,174,233,162,134,229,175,188,229,183,165,228,184,154,229,140,187,233,153,162,231,156,139,231,156,139,231,187,143,229,133,184,229,142,159,229,155,160,229,185,179,229,143,176,229,144,132,231,167,141,229,162,158,229,138,160,230,157,144,230,150,153,230,150,176,229,162,158,228,185,139,229,144,142,232,129,140,228,184,154,230,149,136,230,158,156,228,187,138,229,185,180,232,174,186,230,150,135,230,136,145,229,155,189,229,145,138,232,175,137,231,137,136,228,184,187,228,191,174,230,148,185,229,143,130,228,184,142,230,137,147,229,141,176,229,191,171,228,185,144,230,156,186,230,162,176,232,167,130,231,130,185,229,173,152,229,156,168,231,178,190,231,165,158,232,142,183,229,190,151,229,136,169,231,148,168,231,187,167,231,187,173,228,189,160,228,187,172,232,191,153,228,185,136,230,168,161,229,188,143,232,175,173,232,168,128,232,131,189,229,164,159,233,155,133,232,153,142,230,147,141,228,189,156,233,163,142,230,160,188,228,184,128,232,181,183,231,167,145,229,173,166,228,189,147,232,130,178,231,159,173,228,191,161,230,157,161,228,187,182,230,178,187,231,150,151,232,191,144,229,138,168,228,186,167,228,184,154,228,188,154,232,174,174,229,175,188,232,136,170,229,133,136,231,148,159,232,129,148,231,155,159,229,143,175,230,152,175,229,149,143,233,161,140,231,187,147,230,158,132,228,189,156,231,148,168,232,176,131,230,159,165,232,179,135,230,150,153,232,135,170,229,138,168,232,180,159,232,180,163,229,134,156,228,184,154,232,174,191,233,151,174,229,174,158,230,150,189,230,142,165,229,143,151,232,174,168,232,174,186,233,130,163,228,184,170,229,143,141,233,166,136,229,138,160,229,188,186,229,165,179,230,128,167,232,140,131,229,155,180,230,156,141,229,139,153,228,188,145,233,151,178,228,187,138,230,151,165,229,174,162,230,156,141,232,167,128,231,156,139,229,143,130,229,138,160,231,154,132,232,175,157,228,184,128,231,130,185,228,191,157,232,175,129,229,155,190,228,185,166,230,156,137,230,149,136,230,181,139,232,175,149,231,167,187,229,138,168,230,137,141,232,131,189,229,134,179,229,174,154,232,130,161,231,165,168,228,184,141,230,150,173,233,156,128,230,177,130,228,184,141,229,190,151,229,138,158,230,179,149,228,185,139,233,151,180,233,135,135,231,148,168,232,144,165,233,148,128,230,138,149,232,175,137,231,155,174,230,160,135,231,136,177,230,131,133,230,145,132,229,189,177,230,156,137,228,186,155,232,164,135,232,163,189,230,150,135,229,173,166,230,156,186,228,188,154,230,149,176,229,173,151,232,163,133,228,191,174,232,180,173,231,137,169,229,134,156,230,157,145,229,133,168,233,157,162,231,178,190,229,147,129,229,133,182,229,174,158,228,186,139,230,131,133,230,176,180,229,185,179,230,143,144,231,164,186,228,184,138,229,184,130,232,176,162,232,176,162,230,153,174,233,128,154,230,149,153,229,184,136,228,184,138,228,188,160,231,177,187,229,136,171,230,173,140,230,155,178,230,139,165,230,156,137,229,136,155,230,150,176,233,133,141,228,187,182,229,143,170,232,166,129,230,151,182,228,187,163,232,179,135,232,168,138,232,190,190,229,136,176,228,186,186,231,148,159,232,174,162,233,152,133,232,128,129,229,184,136,229,177,149,231,164,186,229,191,131,231,144,134,232,180,180,229,173,144,231,182,178,231,171,153,228,184,187,233,161,140,232,135,170,231,132,182,231,186,167,229,136,171,231,174,128,229,141,149,230,148,185,233,157,169,233,130,163,228,186,155,230,157,165,232,175,180,230,137,147,229,188,128,228,187,163,231,160,129,229,136,160,233,153,164,232,175,129,229,136,184,232,138,130,231,155,174,233,135,141,231,130,185,230,172,161,230,149,184,229,164,154,229,176,145,232,167,132,229,136,146,232,181,132,233,135,145,230,137,190,229,136,176,228,187,165,229,144,142,229,164,167,229,133,168,228,184,187,233,161,181,230,156,128,228,189,179,229,155,158,231,173,148,229,164,169,228,184,139,228,191,157,233,154,156,231,142,176,228,187,163,230,163,128,230,159,165,230,138,149,231,165,168,229,176,143,230,151,182,230,178,146,230,156,137,230,173,163,229,184,184,231,148,154,232,135,179,228,187,163,231,144,134,231,155,174,229,189,149,229,133,172,229,188,128,229,164,141,229,136,182,233,135,145,232,158,141,229,185,184,231,166,143,231,137,136,230,156,172,229,189,162,230,136,144,229,135,134,229,164,135,232,161,140,230,131,133,229,155,158,229,136,176,230,128,157,230,131,179,230,128,142,230,160,183,229,141,143,232,174,174,232,174,164,232,175,129,230,156,128,229,165,189,228,186,167,231,148,159,230,140,137,231,133,167,230,156,141,232,163,133,229,185,191,228,184,156,229,138,168,230,188,171,233,135,135,232,180,173,230,150,176,230,137,139,231,187,132,229,155,190,233,157,162,230,157,191,229,143,130,232,128,131,230,148,191,230,178,187,229,174,185,230,152,147,229,164,169,229,156,176,229,138,170,229,138,155,228,186,186,228,187,172,229,141,135,231,186,167,233,128,159,229,186,166,228,186,186,231,137,169,232,176,131,230,149,180,230,181,129,232,161,140,233,128,160,230,136,144,230,150,135,229,173,151,233,159,169,229,155,189,232,180,184,230,152,147,229,188,128,229,177,149,231,155,184,233,151,156,232,161,168,231,142,176,229,189,177,232,167,134,229,166,130,230,173,164,231,190,142,229,174,185,229,164,167,229,176,143,230,138,165,233,129,147,230,157,161,230,172,190,229,191,131,230,131,133,232,174,184,229,164,154,230,179,149,232,167,132,229,174,182,229,177,133,228,185,166,229,186,151,232,191,158,230,142,165,231,171,139,229,141,179,228,184,190,230,138,165,230,138,128,229,183,167,229,165,165,232,191,144,231,153,187,229,133,165,228,187,165,230,157,165,231,144,134,232,174,186,228,186,139,228,187,182,232,135,170,231,148,177,228,184,173,229,141,142,229,138,158,229,133,172,229,166,136,229,166,136,231,156,159,230,173,163,228,184,141,233,148,153,229,133,168,230,150,135,229,144,136,229,144,140,228,187,183,229,128,188,229,136,171,228,186,186,231,155,145,231,157,163,229,133,183,228,189,147,228,184,150,231,186,170,229,155,162,233,152,159,229,136,155,228,184,154,230,137,191,230,139,133,229,162,158,233,149,191,230,156,137,228,186,186,228,191,157,230,140,129,229,149,134,229,174,182,231,187,180,228,191,174,229,143,176,230,185,190,229,183,166,229,143,179,232,130,161,228,187,189,231,173,148,230,161,136,229,174,158,233,153,133,231,148,181,228,191,161,231,187,143,231,144,134,231,148,159,229,145,189,229,174,163,228,188,160,228,187,187,229,138,161,230,173,163,229,188,143,231,137,185,232,137,178,228,184,139,230,157,165,229,141,143,228,188,154,229,143,170,232,131,189,229,189,147,231,132,182,233,135,141,230,150,176,229,133,167,229,174,185,230,140,135,229,175,188,232,191,144,232,161,140,230,151,165,229,191,151,232,179,163,229,174,182,232,182,133,232,191,135,229,156,159,229,156,176,230,181,153,230,177,159,230,148,175,228,187,152,230,142,168,229,135,186,231,171,153,233,149,191,230,157,173,229,183,158,230,137,167,232,161,140,229,136,182,233,128,160,228,185,139,228,184,128,230,142,168,229,185,191,231,142,176,229,156,186,230,143,143,232,191,176,229,143,152,229,140,150,228,188,160,231,187,159,230,173,140,230,137,139,228,191,157,233,153,169,232,175,190,231,168,139,229,140,187,231,150,151,231,187,143,232,191,135,232,191,135,229,142,187,228,185,139,229,137,141,230,148,182,229,133,165,229,185,180,229,186,166,230,157,130,229,191,151,231,190,142,228,184,189,230,156,128,233,171,152,231,153,187,233,153,134,230,156,170,230,157,165,229,138,160,229,183,165,229,133,141,232,180,163,230,149,153,231,168,139,231,137,136,229,157,151,232,186,171,228,189,147,233,135,141,229,186,134,229,135,186,229,148,174,230,136,144,230,156,172,229,189,162,229,188,143,229,156,159,232,177,134,229,135,186,229,131,185,228,184,156,230,150,185,233,130,174,231,174,177,229,141,151,228,186,172,230,177,130,232,129,140,229,143,150,229,190,151,232,129,140,228,189,141,231,155,184,228,191,161,233,161,181,233,157,162,229,136,134,233,146,159,231,189,145,233,161,181,231,161,174,229,174,154,229,155,190,228,190,139,231,189,145,229,157,128,231,167,175,230,158,129,233,148,153,232,175,175,231,155,174,231,154,132,229,174,157,232,180,157,230,156,186,229,133,179,233,163,142,233,153,169,230,142,136,230,157,131,231,151,133,230,175,146,229,174,160,231,137,169,233,153,164,228,186,134,232,169,149,232,171,150,231,150,190,231,151,133,229,143,138,230,151,182,230,177,130,232,180,173,231,171,153,231,130,185,229,132,191,231,171,165,230,175,143,229,164,169,228,184,173,229,164,174,232,174,164,232,175,134,230,175,143,228,184,170,229,164,169,230,180,165,229,173,151,228,189,147,229,143,176,231,129,163,231,187,180,230,138,164,230,156,172,233,161,181,228,184,170,230,128,167,229,174,152,230,150,185,229,184,184,232,167,129,231,155,184,230,156,186,230,136,152,231,149,165,229,186,148,229,189,147,229,190,139,229,184,136,230,150,185,228,190,191,230,160,161,229,155,173,232,130,161,229,184,130,230,136,191,229,177,139,230,160,143,231,155,174,229,145,152,229,183,165,229,175,188,232,135,180,231,170,129,231,132,182,233,129,147,229,133,183,230,156,172,231,189,145,231,187,147,229,144,136,230,161,163,230,161,136,229,138,179,229,138,168,229,143,166,229,164,150,231,190,142,229,133,131,229,188,149,232,181,183,230,148,185,229,143,152,231,172,172,229,155,155,228,188,154,232,174,161,232,170,170,230,152,142,233,154,144,231,167,129,229,174,157,229,174,157,232,167,132,232,140,131,230,182,136,232,180,185,229,133,177,229,144,140,229,191,152,232,174,176,228,189,147,231,179,187,229,184,166,230,157,165,229,144,141,229,173,151,231,153,188,232,161,168,229,188,128,230,148,190,229,138,160,231,155,159,229,143,151,229,136,176,228,186,140,230,137,139,229,164,167,233,135,143,230,136,144,228,186,186,230,149,176,233,135,143,229,133,177,228,186,171,229,140,186,229,159,159,229,165,179,229,173,169,229,142,159,229,136,153,230,137,128,229,156,168,231,187,147,230,157,159,233,128,154,228,191,161,232,182,133,231,186,167,233,133,141,231,189,174,229,189,147,230,151,182,228,188,152,231,167,128,230,128,167,230,132,159,230,136,191,228,186,167,233,129,138,230,136,178,229,135,186,229,143,163,230,143,144,228,186,164,229,176,177,228,184,154,228,191,157,229,129,165,231,168,139,229,186,166,229,143,130,230,149,176,228,186,139,228,184,154,230,149,180,228,184,170,229,177,177,228,184,156,230,131,133,230,132,159,231,137,185,230,174,138,229,136,134,233,161,158,230,144,156,229,176,139,229,177,158,228,186,142,233,151,168,230,136,183,232,180,162,229,138,161,229,163,176,233,159,179,229,143,138,229,133,182,232,180,162,231,187,143,229,157,154,230,140,129,229,185,178,233,131,168,230,136,144,231,171,139,229,136,169,231,155,138,232,128,131,232,153,145,230,136,144,233,131,189,229,140,133,232,163,133,231,148,168,230,136,182,230,175,148,232,181,155,230,150,135,230,152,142,230,139,155,229,149,134,229,174,140,230,149,180,231,156,159,230,152,175,231,156,188,231,157,155,228,188,153,228,188,180,229,168,129,230,156,155,233,162,134,229,159,159,229,141,171,231,148,159,228,188,152,230,131,160,232,171,150,229,163,135,229,133,172,229,133,177,232,137,175,229,165,189,229,133,133,229,136,134,231,172,166,229,144,136,233,153,132,228,187,182,231,137,185,231,130,185,228,184,141,229,143,175,232,139,177,230,150,135,232,181,132,228,186,167,230,160,185,230,156,172,230,152,142,230,152,190,229,175,134,231,162,188,229,133,172,228,188,151,230,176,145,230,151,143,230,155,180,229,138,160,228,186,171,229,143,151,229,144,140,229,173,166,229,144,175,229,138,168,233,128,130,229,144,136,229,142,159,230,157,165,233,151,174,231,173,148,230,156,172,230,150,135,231,190,142,233,163,159,231,187,191,232,137,178,231,168,179,229,174,154,231,187,136,228,186,142,231,148,159,231,137,169,228,190,155,230,177,130,230,144,156,231,139,144,229,138,155,233,135,143,228,184,165,233,135,141,230,176,184,232,191,156,229,134,153,231,156,159,230,156,137,233,153,144,231,171,158,228,186,137,229,175,185,232,177,161,232,180,185,231,148,168,228,184,141,229,165,189,231,187,157,229,175,185,229,141,129,229,136,134,228,191,131,232,191,155,231,130,185,232,175,132,229,189,177,233,159,179,228,188,152,229,138,191,228,184,141,229,176,145,230,172,163,232,181,143,229,185,182,228,184,148,230,156,137,231,130,185,230,150,185,229,144,145,229,133,168,230,150,176,228,191,161,231,148,168,232,174,190,230,150,189,229,189,162,232,177,161,232,181,132,230,160,188,231,170,129,231,160,180,233,154,143,231,157,128,233,135,141,229,164,167,228,186,142,230,152,175,230,175,149,228,184,154,230,153,186,232,131,189,229,140,150,229,183,165,229,174,140,231,190,142,229,149,134,229,159,142,231,187,159,228,184,128,229,135,186,231,137,136,230,137,147,233,128,160,231,148,162,229,147,129,230,166,130,229,134,181,231,148,168,228,186,142,228,191,157,231,149,153,229,155,160,231,180,160,228,184,173,229,156,139,229,173,152,229,130,168,232,180,180,229,155,190,230,156,128,230,132,155,233,149,191,230,156,159,229,143,163,228,187,183,231,144,134,232,180,162,229,159,186,229,156,176,229,174,137,230,142,146,230,173,166,230,177,137,233,135,140,233,157,162,229,136,155,229,187,186,229,164,169,231,169,186,233,166,150,229,133,136,229,174,140,229,150,132,233,169,177,229,138,168,228,184,139,233,157,162,228,184,141,229,134,141,232,175,154,228,191,161,230,132,143,228,185,137,233,152,179,229,133,137,232,139,177,229,155,189,230,188,130,228,186,174,229,134,155,228,186,139,231,142,169,229,174,182,231,190,164,228,188,151,229,134,156,230,176,145,229,141,179,229,143,175,229,144,141,231,168,177,229,174,182,229,133,183,229,138,168,231,148,187,230,131,179,229,136,176,230,179,168,230,152,142,229,176,143,229,173,166,230,128,167,232,131,189,232,128,131,231,160,148,231,161,172,228,187,182,232,167,130,231,156,139,230,184,133,230,165,154,230,144,158,231,172,145,233,166,150,233,160,129,233,187,132,233,135,145,233,128,130,231,148,168,230,177,159,232,139,143,231,156,159,229,174,158,228,184,187,231,174,161,233,152,182,230,174,181,232,168,187,229,134,138,231,191,187,232,175,145,230,157,131,229,136,169,229,129,154,229,165,189,228,188,188,228,185,142,233,128,154,232,174,175,230,150,189,229,183,165,231,139,128,230,133,139,228,185,159,232,174,184,231,142,175,228,191,157,229,159,185,229,133,187,230,166,130,229,191,181,229,164,167,229,158,139,230,156,186,231,165,168,231,144,134,232,167,163,229,140,191,229,144,141,99,117,97,110,100,111,101,110,118,105,97,114,109,97,100,114,105,100,98,117,115,99,97,114,105,110,105,99,105,111,116,105,101,109,112,111,112,111,114,113,117,101,99,117,101,110,116,97,101,115,116,97,100,111,112,117,101,100,101,110,106,117,101,103,111,115,99,111,110,116,114,97,101,115,116,195,161,110,110,111,109,98,114,101,116,105,101,110,101,110,112,101,114,102,105,108,109,97,110,101,114,97,97,109,105,103,111,115,99,105,117,100,97,100,99,101,110,116,114,111,97,117,110,113,117,101,112,117,101,100,101,115,100,101,110,116,114,111,112,114,105,109,101,114,112,114,101,99,105,111,115,101,103,195,186,110,98,117,101,110,111,115,118,111,108,118,101,114,112,117,110,116,111,115,115,101,109,97,110,97,104,97,98,195,173,97,97,103,111,115,116,111,110,117,101,118,111,115,117,110,105,100,111,115,99,97,114,108,111,115,101,113,117,105,112,111,110,105,195,177,111,115,109,117,99,104,111,115,97,108,103,117,110,97,99,111,114,114,101,111,105,109,97,103,101,110,112,97,114,116,105,114,97,114,114,105,98,97,109,97,114,195,173,97,104,111,109,98,114,101,101,109,112,108,101,111,118,101,114,100,97,100,99,97,109,98,105,111,109,117,99,104,97,115,102,117,101,114,111,110,112,97,115,97,100,111,108,195,173,110,101,97,112,97,114,101,99,101,110,117,101,118,97,115,99,117,114,115,111,115,101,115,116,97,98,97,113,117,105,101,114,111,108,105,98,114,111,115,99,117,97,110,116,111,97,99,99,101,115,111,109,105,103,117,101,108,118,97,114,105,111,115,99,117,97,116,114,111,116,105,101,110,101,115,103,114,117,112,111,115,115,101,114,195,161,110,101,117,114,111,112,97,109,101,100,105,111,115,102,114,101,110,116,101,97,99,101,114,99,97,100,101,109,195,161,115,111,102,101,114,116,97,99,111,99,104,101,115,109,111,100,101,108,111,105,116,97,108,105,97,108,101,116,114,97,115,97,108,103,195,186,110,99,111,109,112,114,97,99,117,97,108,101,115,101,120,105,115,116,101,99,117,101,114,112,111,115,105,101,110,100,111,112,114,101,110,115,97,108,108,101,103,97,114,118,105,97,106,101,115,100,105,110,101,114,111,109,117,114,99,105,97,112,111,100,114,195,161,112,117,101,115,116,111,100,105,97,114,105,111,112,117,101,98,108,111,113,117,105,101,114,101,109,97,110,117,101,108,112,114,111,112,105,111,99,114,105,115,105,115,99,105,101,114,116,111,115,101,103,117,114,111,109,117,101,114,116,101,102,117,101,110,116,101,99,101,114,114,97,114,103,114,97,110,100,101,101,102,101,99,116,111,112,97,114,116,101,115,109,101,100,105,100,97,112,114,111,112,105,97,111,102,114,101,99,101,116,105,101,114,114,97,101,45,109,97,105,108,118,97,114,105,97,115,102,111,114,109,97,115,102,117,116,117,114,111,111,98,106,101,116,111,115,101,103,117,105,114,114,105,101,115,103,111,110,111,114,109,97,115,109,105,115,109,111,115,195,186,110,105,99,111,99,97,109,105,110,111,115,105,116,105,111,115,114,97,122,195,179,110,100,101,98,105,100,111,112,114,117,101,98,97,116,111,108,101,100,111,116,101,110,195,173,97,106,101,115,195,186,115,101,115,112,101,114,111,99,111,99,105,110,97,111,114,105,103,101,110,116,105,101,110,100,97,99,105,101,110,116,111,99,195,161,100,105,122,104,97,98,108,97,114,115,101,114,195,173,97,108,97,116,105,110,97,102,117,101,114,122,97,101,115,116,105,108,111,103,117,101,114,114,97,101,110,116,114,97,114,195,169,120,105,116,111,108,195,179,112,101,122,97,103,101,110,100,97,118,195,173,100,101,111,101,118,105,116,97,114,112,97,103,105,110,97,109,101,116,114,111,115,106,97,118,105,101,114,112,97,100,114,101,115,102,195,161,99,105,108,99,97,98,101,122,97,195,161,114,101,97,115,115,97,108,105,100,97,101,110,118,195,173,111,106,97,112,195,179,110,97,98,117,115,111,115,98,105,101,110,101,115,116,101,120,116,111,115,108,108,101,118,97,114,112,117,101,100,97,110,102,117,101,114,116,101,99,111,109,195,186,110,99,108,97,115,101,115,104,117,109,97,110,111,116,101,110,105,100,111,98,105,108,98,97,111,117,110,105,100,97,100,101,115,116,195,161,115,101,100,105,116,97,114,99,114,101,97,100,111,208,180,208,187,209,143,209,135,209,130,208,190,208,186,208,176,208,186,208,184,208,187,208,184,209,141,209,130,208,190,208,178,209,129,208,181,208,181,208,179,208,190,208,191,209,128,208,184,209,130,208,176,208,186,208,181,209,137,208,181,209,131,208,182,208,181,208,154,208,176,208,186,208,177,208,181,208,183,208,177,209,139,208,187,208,190,208,189,208,184,208,146,209,129,208,181,208,191,208,190,208,180,208,173,209,130,208,190,209,130,208,190,208,188,209,135,208,181,208,188,208,189,208,181,209,130,208,187,208,181,209,130,209,128,208,176,208,183,208,190,208,189,208,176,208,179,208,180,208,181,208,188,208,189,208,181,208,148,208,187,209,143,208,159,209,128,208,184,208,189,208,176,209,129,208,189,208,184,209,133,209,130,208,181,208,188,208,186,209,130,208,190,208,179,208,190,208,180,208,178,208,190,209,130,209,130,208,176,208,188,208,161,208,168,208,144,208,188,208,176,209,143,208,167,209,130,208,190,208,178,208,176,209,129,208,178,208,176,208,188,208,181,208,188,209,131,208,162,208,176,208,186,208,180,208,178,208,176,208,189,208,176,208,188,209,141,209,130,208,184,209,141,209,130,209,131,208,146,208,176,208,188,209,130,208,181,209,133,208,191,209,128,208,190,209,130,209,131,209,130,208,189,208,176,208,180,208,180,208,189,209,143,208,146,208,190,209,130,209,130,209,128,208,184,208,189,208,181,208,185,208,146,208,176,209,129,208,189,208,184,208,188,209,129,208,176,208,188,209,130,208,190,209,130,209,128,209,131,208,177,208,158,208,189,208,184,208,188,208,184,209,128,208,189,208,181,208,181,208,158,208,158,208,158,208,187,208,184,209,134,209,141,209,130,208,176,208,158,208,189,208,176,208,189,208,181,208,188,208,180,208,190,208,188,208,188,208,190,208,185,208,180,208,178,208,181,208,190,208,189,208,190,209,129,209,131,208,180,224,164,149,224,165,135,224,164,185,224,165,136,224,164,149,224,165,128,224,164,184,224,165,135,224,164,149,224,164,190,224,164,149,224,165,139,224,164,148,224,164,176,224,164,170,224,164,176,224,164,168,224,165,135,224,164,143,224,164,149,224,164,149,224,164,191,224,164,173,224,165,128,224,164,135,224,164,184,224,164,149,224,164,176,224,164,164,224,165,139,224,164,185,224,165,139,224,164,134,224,164,170,224,164,185,224,165,128,224,164,175,224,164,185,224,164,175,224,164,190,224,164,164,224,164,149,224,164,165,224,164,190,106,97,103,114,97,110,224,164,134,224,164,156,224,164,156,224,165,139,224,164,133,224,164,172,224,164,166,224,165,139,224,164,151,224,164,136,224,164,156,224,164,190,224,164,151,224,164,143,224,164,185,224,164,174,224,164,135,224,164,168,224,164,181,224,164,185,224,164,175,224,165,135,224,164,165,224,165,135,224,164,165,224,165,128,224,164,152,224,164,176,224,164,156,224,164,172,224,164,166,224,165,128,224,164,149,224,164,136,224,164,156,224,165,128,224,164,181,224,165,135,224,164,168,224,164,136,224,164,168,224,164,143,224,164,185,224,164,176,224,164,137,224,164,184,224,164,174,224,165,135,224,164,149,224,164,174,224,164,181,224,165,139,224,164,178,224,165,135,224,164,184,224,164,172,224,164,174,224,164,136,224,164,166,224,165,135,224,164,147,224,164,176,224,164,134,224,164,174,224,164,172,224,164,184,224,164,173,224,164,176,224,164,172,224,164,168,224,164,154,224,164,178,224,164,174,224,164,168,224,164,134,224,164,151,224,164,184,224,165,128,224,164,178,224,165,128,216,185,217,132,217,137,216,165,217,132,217,137,217,135,216,176,216,167,216,162,216,174,216,177,216,185,216,175,216,175,216,167,217,132,217,137,217,135,216,176,217,135,216,181,217,136,216,177,216,186,217,138,216,177,217,131,216,167,217,134,217,136,217,132,216,167,216,168,217,138,217,134,216,185,216,177,216,182,216,176,217,132,217,131,217,135,217,134,216,167,217,138,217,136,217,133,217,130,216,167,217,132,216,185,217,132,217,138,216,167,217,134,216,167,217,132,217,131,217,134,216,173,216,170,217,137,217,130,216,168,217,132,217,136,216,173,216,169,216,167,216,174,216,177,217,129,217,130,216,183,216,185,216,168,216,175,216,177,217,131,217,134,216,165,216,176,216,167,217,131,217,133,216,167,216,167,216,173,216,175,216,165,217,132,216,167,217,129,217,138,217,135,216,168,216,185,216,182,217,131,217,138,217,129,216,168,216,173,216,171,217,136,217,133,217,134,217,136,217,135,217,136,216,163,217,134,216,167,216,172,216,175,216,167,217,132,217,135,216,167,216,179,217,132,217,133,216,185,217,134,216,175,217,132,217,138,216,179,216,185,216,168,216,177,216,181,217,132,217,137,217,133,217,134,216,176,216,168,217,135,216,167,216,163,217,134,217,135,217,133,216,171,217,132,217,131,217,134,216,170,216,167,217,132,216,167,216,173,217,138,216,171,217,133,216,181,216,177,216,180,216,177,216,173,216,173,217,136,217,132,217,136,217,129,217,138,216,167,216,176,216,167,217,132,217,131,217,132,217,133,216,177,216,169,216,167,217,134,216,170,216,167,217,132,217,129,216,163,216,168,217,136,216,174,216,167,216,181,216,163,217,134,216,170,216,167,217,134,217,135,216,167,217,132,217,138,216,185,216,182,217,136,217,136,217,130,216,175,216,167,216,168,217,134,216,174,217,138,216,177,216,168,217,134,216,170,217,132,217,131,217,133,216,180,216,167,216,161,217,136,217,135,217,138,216,167,216,168,217,136,217,130,216,181,216,181,217,136,217,133,216,167,216,177,217,130,217,133,216,163,216,173,216,175,217,134,216,173,217,134,216,185,216,175,217,133,216,177,216,163,217,138,216,167,216,173,216,169,217,131,216,170,216,168,216,175,217,136,217,134,217,138,216,172,216,168,217,133,217,134,217,135,216,170,216,173,216,170,216,172,217,135,216,169,216,179,217,134,216,169,217,138,216,170,217,133,217,131,216,177,216,169,216,186,216,178,216,169,217,134,217,129,216,179,216,168,217,138,216,170,217,132,217,132,217,135,217,132,217,134,216,167,216,170,217,132,217,131,217,130,217,132,216,168,217,132,217,133,216,167,216,185,217,134,217,135,216,163,217,136,217,132,216,180,217,138,216,161,217,134,217,136,216,177,216,163,217,133,216,167,217,129,217,138,217,131,216,168,217,131,217,132,216,176,216,167,216,170,216,177,216,170,216,168,216,168,216,163,217,134,217,135,217,133,216,179,216,167,217,134,217,131,216,168,217,138,216,185,217,129,217,130,216,175,216,173,216,179,217,134,217,132,217,135,217,133,216,180,216,185,216,177,216,163,217,135,217,132,216,180,217,135,216,177,217,130,216,183,216,177,216,183,217,132,216,168,112,114,111,102,105,108,101,115,101,114,118,105,99,101,100,101,102,97,117,108,116,104,105,109,115,101,108,102,100,101,116,97,105,108,115,99,111,110,116,101,110,116,115,117,112,112,111,114,116,115,116,97,114,116,101,100,109,101,115,115,97,103,101,115,117,99,99,101,115,115,102,97,115,104,105,111,110,60,116,105,116,108,101,62,99,111,117,110,116,114,121,97,99,99,111,117,110,116,99,114,101,97,116,101,100,115,116,111,114,105,101,115,114,101,115,117,108,116,115,114,117,110,110,105,110,103,112,114,111,99,101,115,115,119,114,105,116,105,110,103,111,98,106,101,99,116,115,118,105,115,105,98,108,101,119,101,108,99,111,109,101,97,114,116,105,99,108,101,117,110,107,110,111,119,110,110,101,116,119,111,114,107,99,111,109,112,97,110,121,100,121,110,97,109,105,99,98,114,111,119,115,101,114,112,114,105,118,97,99,121,112,114,111,98,108,101,109,83,101,114,118,105,99,101,114,101,115,112,101,99,116,100,105,115,112,108,97,121,114,101,113,117,101,115,116,114,101,115,101,114,118,101,119,101,98,115,105,116,101,104,105,115,116,111,114,121,102,114,105,101,110,100,115,111,112,116,105,111,110,115,119,111,114,107,105,110,103,118,101,114,115,105,111,110,109,105,108,108,105,111,110,99,104,97,110,110,101,108,119,105,110,100,111,119,46,97,100,100,114,101,115,115,118,105,115,105,116,101,100,119,101,97,116,104,101,114,99,111,114,114,101,99,116,112,114,111,100,117,99,116,101,100,105,114,101,99,116,102,111,114,119,97,114,100,121,111,117,32,99,97,110,114,101,109,111,118,101,100,115,117,98,106,101,99,116,99,111,110,116,114,111,108,97,114,99,104,105,118,101,99,117,114,114,101,110,116,114,101,97,100,105,110,103,108,105,98,114,97,114,121,108,105,109,105,116,101,100,109,97,110,97,103,101,114,102,117,114,116,104,101,114,115,117,109,109,97,114,121,109,97,99,104,105,110,101,109,105,110,117,116,101,115,112,114,105,118,97,116,101,99,111,110,116,101,120,116,112,114,111,103,114,97,109,115,111,99,105,101,116,121,110,117,109,98,101,114,115,119,114,105,116,116,101,110,101,110,97,98,108,101,100,116,114,105,103,103,101,114,115,111,117,114,99,101,115,108,111,97,100,105,110,103,101,108,101,109,101,110,116,112,97,114,116,110,101,114,102,105,110,97,108,108,121,112,101,114,102,101,99,116,109,101,97,110,105,110,103,115,121,115,116,101,109,115,107,101,101,112,105,110,103,99,117,108,116,117,114,101,38,113,117,111,116,59,44,106,111,117,114,110,97,108,112,114,111,106,101,99,116,115,117,114,102,97,99,101,115,38,113,117,111,116,59,101,120,112,105,114,101,115,114,101,118,105,101,119,115,98,97,108,97,110,99,101,69,110,103,108,105,115,104,67,111,110,116,101,110,116,116,104,114,111,117,103,104,80,108,101,97,115,101,32,111,112,105,110,105,111,110,99,111,110,116,97,99,116,97,118,101,114,97,103,101,112,114,105,109,97,114,121,118,105,108,108,97,103,101,83,112,97,110,105,115,104,103,97,108,108,101,114,121,100,101,99,108,105,110,101,109,101,101,116,105,110,103,109,105,115,115,105,111,110,112,111,112,117,108,97,114,113,117,97,108,105,116,121,109,101,97,115,117,114,101,103,101,110,101,114,97,108,115,112,101,99,105,101,115,115,101,115,115,105,111,110,115,101,99,116,105,111,110,119,114,105,116,101,114,115,99,111,117,110,116,101,114,105,110,105,116,105,97,108,114,101,112,111,114,116,115,102,105,103,117,114,101,115,109,101,109,98,101,114,115,104,111,108,100,105,110,103,100,105,115,112,117,116,101,101,97,114,108,105,101,114,101,120,112,114,101,115,115,100,105,103,105,116,97,108,112,105,99,116,117,114,101,65,110,111,116,104,101,114,109,97,114,114,105,101,100,116,114,97,102,102,105,99,108,101,97,100,105,110,103,99,104,97,110,103,101,100,99,101,110,116,114,97,108,118,105,99,116,111,114,121,105,109,97,103,101,115,47,114,101,97,115,111,110,115,115,116,117,100,105,101,115,102,101,97,116,117,114,101,108,105,115,116,105,110,103,109,117,115,116,32,98,101,115,99,104,111,111,108,115,86,101,114,115,105,111,110,117,115,117,97,108,108,121,101,112,105,115,111,100,101,112,108,97,121,105,110,103,103,114,111,119,105,110,103,111,98,118,105,111,117,115,111,118,101,114,108,97,121,112,114,101,115,101,110,116,97,99,116,105,111,110,115,60,47,117,108,62,13,10,119,114,97,112,112,101,114,97,108,114,101,97,100,121,99,101,114,116,97,105,110,114,101,97,108,105,116,121,115,116,111,114,97,103,101,97,110,111,116,104,101,114,100,101,115,107,116,111,112,111,102,102,101,114,101,100,112,97,116,116,101,114,110,117,110,117,115,117,97,108,68,105,103,105,116,97,108,99,97,112,105,116,97,108,87,101,98,115,105,116,101,102,97,105,108,117,114,101,99,111,110,110,101,99,116,114,101,100,117,99,101,100,65,110,100,114,111,105,100,100,101,99,97,100,101,115,114,101,103,117,108,97,114,32,38,97,109,112,59,32,97,110,105,109,97,108,115,114,101,108,101,97,115,101,65,117,116,111,109,97,116,103,101,116,116,105,110,103,109,101,116,104,111,100,115,110,111,116,104,105,110,103,80,111,112,117,108,97,114,99,97,112,116,105,111,110,108,101,116,116,101,114,115,99,97,112,116,117,114,101,115,99,105,101,110,99,101,108,105,99,101,110,115,101,99,104,97,110,103,101,115,69,110,103,108,97,110,100,61,49,38,97,109,112,59,72,105,115,116,111,114,121,32,61,32,110,101,119,32,67,101,110,116,114,97,108,117,112,100,97,116,101,100,83,112,101,99,105,97,108,78,101,116,119,111,114,107,114,101,113,117,105,114,101,99,111,109,109,101,110,116,119,97,114,110,105,110,103,67,111,108,108,101,103,101,116,111,111,108,98,97,114,114,101,109,97,105,110,115,98,101,99,97,117,115,101,101,108,101,99,116,101,100,68,101,117,116,115,99,104,102,105,110,97,110,99,101,119,111,114,107,101,114,115,113,117,105,99,107,108,121,98,101,116,119,101,101,110,101,120,97,99,116,108,121,115,101,116,116,105,110,103,100,105,115,101,97,115,101,83,111,99,105,101,116,121,119,101,97,112,111,110,115,101,120,104,105,98,105,116,38,108,116,59,33,45,45,67,111,110,116,114,111,108,99,108,97,115,115,101,115,99,111,118,101,114,101,100,111,117,116,108,105,110,101,97,116,116,97,99,107,115,100,101,118,105,99,101,115,40,119,105,110,100,111,119,112,117,114,112,111,115,101,116,105,116,108,101,61,34,77,111,98,105,108,101,32,107,105,108,108,105,110,103,115,104,111,119,105,110,103,73,116,97,108,105,97,110,100,114,111,112,112,101,100,104,101,97,118,105,108,121,101,102,102,101,99,116,115,45,49,39,93,41,59,10,99,111,110,102,105,114,109,67,117,114,114,101,110,116,97,100,118,97,110,99,101,115,104,97,114,105,110,103,111,112,101,110,105,110,103,100,114,97,119,105,110,103,98,105,108,108,105,111,110,111,114,100,101,114,101,100,71,101,114,109,97,110,121,114,101,108,97,116,101,100,60,47,102,111,114,109,62,105,110,99,108,117,100,101,119,104,101,116,104,101,114,100,101,102,105,110,101,100,83,99,105,101,110,99,101,99,97,116,97,108,111,103,65,114,116,105,99,108,101,98,117,116,116,111,110,115,108,97,114,103,101,115,116,117,110,105,102,111,114,109,106,111,117,114,110,101,121,115,105,100,101,98,97,114,67,104,105,99,97,103,111,104,111,108,105,100,97,121,71,101,110,101,114,97,108,112,97,115,115,97,103,101,44,38,113,117,111,116,59,97,110,105,109,97,116,101,102,101,101,108,105,110,103,97,114,114,105,118,101,100,112,97,115,115,105,110,103,110,97,116,117,114,97,108,114,111,117,103,104,108,121,46,10,10,84,104,101,32,98,117,116,32,110,111,116,100,101,110,115,105,116,121,66,114,105,116,97,105,110,67,104,105,110,101,115,101,108,97,99,107,32,111,102,116,114,105,98,117,116,101,73,114,101,108,97,110,100,34,32,100,97,116,97,45,102,97,99,116,111,114,115,114,101,99,101,105,118,101,116,104,97,116,32,105,115,76,105,98,114,97,114,121,104,117,115,98,97,110,100,105,110,32,102,97,99,116,97,102,102,97,105,114,115,67,104,97,114,108,101,115,114,97,100,105,99,97,108,98,114,111,117,103,104,116,102,105,110,100,105,110,103,108,97,110,100,105,110,103,58,108,97,110,103,61,34,114,101,116,117,114,110,32,108,101,97,100,101,114,115,112,108,97,110,110,101,100,112,114,101,109,105,117,109,112,97,99,107,97,103,101,65,109,101,114,105,99,97,69,100,105,116,105,111,110,93,38,113,117,111,116,59,77,101,115,115,97,103,101,110,101,101,100,32,116,111,118,97,108,117,101,61,34,99,111,109,112,108,101,120,108,111,111,107,105,110,103,115,116,97,116,105,111,110,98,101,108,105,101,118,101,115,109,97,108,108,101,114,45,109,111,98,105,108,101,114,101,99,111,114,100,115,119,97,110,116,32,116,111,107,105,110,100,32,111,102,70,105,114,101,102,111,120,121,111,117,32,97,114,101,115,105,109,105,108,97,114,115,116,117,100,105,101,100,109,97,120,105,109,117,109,104,101,97,100,105,110,103,114,97,112,105,100,108,121,99,108,105,109,97,116,101,107,105,110,103,100,111,109,101,109,101,114,103,101,100,97,109,111,117,110,116,115,102,111,117,110,100,101,100,112,105,111,110,101,101,114,102,111,114,109,117,108,97,100,121,110,97,115,116,121,104,111,119,32,116,111,32,83,117,112,112,111,114,116,114,101,118,101,110,117,101,101,99,111,110,111,109,121,82,101,115,117,108,116,115,98,114,111,116,104,101,114,115,111,108,100,105,101,114,108,97,114,103,101,108,121,99,97,108,108,105,110,103,46,38,113,117,111,116,59,65,99,99,111,117,110,116,69,100,119,97,114,100,32,115,101,103,109,101,110,116,82,111,98,101,114,116,32,101,102,102,111,114,116,115,80,97,99,105,102,105,99,108,101,97,114,110,101,100,117,112,32,119,105,116,104,104,101,105,103,104,116,58,119,101,32,104,97,118,101,65,110,103,101,108,101,115,110,97,116,105,111,110,115,95,115,101,97,114,99,104,97,112,112,108,105,101,100,97,99,113,117,105,114,101,109,97,115,115,105,118,101,103,114,97,110,116,101,100,58,32,102,97,108,115,101,116,114,101,97,116,101,100,98,105,103,103,101,115,116,98,101,110,101,102,105,116,100,114,105,118,105,110,103,83,116,117,100,105,101,115,109,105,110,105,109,117,109,112,101,114,104,97,112,115,109,111,114,110,105,110,103,115,101,108,108,105,110,103,105,115,32,117,115,101,100,114,101,118,101,114,115,101,118,97,114,105,97,110,116,32,114,111,108,101,61,34,109,105,115,115,105,110,103,97,99,104,105,101,118,101,112,114,111,109,111,116,101,115,116,117,100,101,110,116,115,111,109,101,111,110,101,101,120,116,114,101,109,101,114,101,115,116,111,114,101,98,111,116,116,111,109,58,101,118,111,108,118,101,100,97,108,108,32,116,104,101,115,105,116,101,109,97,112,101,110,103,108,105,115,104,119,97,121,32,116,111,32,32,65,117,103,117,115,116,115,121,109,98,111,108,115,67,111,109,112,97,110,121,109,97,116,116,101,114,115,109,117,115,105,99,97,108,97,103,97,105,110,115,116,115,101,114,118,105,110,103,125,41,40,41,59,13,10,112,97,121,109,101,110,116,116,114,111,117,98,108,101,99,111,110,99,101,112,116,99,111,109,112,97,114,101,112,97,114,101,110,116,115,112,108,97,121,101,114,115,114,101,103,105,111,110,115,109,111,110,105,116,111,114,32,39,39,84,104,101,32,119,105,110,110,105,110,103,101,120,112,108,111,114,101,97,100,97,112,116,101,100,71,97,108,108,101,114,121,112,114,111,100,117,99,101,97,98,105,108,105,116,121,101,110,104,97,110,99,101,99,97,114,101,101,114,115,41,46,32,84,104,101,32,99,111,108,108,101,99,116,83,101,97,114,99,104,32,97,110,99,105,101,110,116,101,120,105,115,116,101,100,102,111,111,116,101,114,32,104,97,110,100,108,101,114,112,114,105,110,116,101,100,99,111,110,115,111,108,101,69,97,115,116,101,114,110,101,120,112,111,114,116,115,119,105,110,100,111,119,115,67,104,97,110,110,101,108,105,108,108,101,103,97,108,110,101,117,116,114,97,108,115,117,103,103,101,115,116,95,104,101,97,100,101,114,115,105,103,110,105,110,103,46,104,116,109,108,34,62,115,101,116,116,108,101,100,119,101,115,116,101,114,110,99,97,117,115,105,110,103,45,119,101,98,107,105,116,99,108,97,105,109,101,100,74,117,115,116,105,99,101,99,104,97,112,116,101,114,118,105,99,116,105,109,115,84,104,111,109,97,115,32,109,111,122,105,108,108,97,112,114,111,109,105,115,101,112,97,114,116,105,101,115,101,100,105,116,105,111,110,111,117,116,115,105,100,101,58,102,97,108,115,101,44,104,117,110,100,114,101,100,79,108,121,109,112,105,99,95,98,117,116,116,111,110,97,117,116,104,111,114,115,114,101,97,99,104,101,100,99,104,114,111,110,105,99,100,101,109,97,110,100,115,115,101,99,111,110,100,115,112,114,111,116,101,99,116,97,100,111,112,116,101,100,112,114,101,112,97,114,101,110,101,105,116,104,101,114,103,114,101,97,116,108,121,103,114,101,97,116,101,114,111,118,101,114,97,108,108,105,109,112,114,111,118,101,99,111,109,109,97,110,100,115,112,101,99,105,97,108,115,101,97,114,99,104,46,119,111,114,115,104,105,112,102,117,110,100,105,110,103,116,104,111,117,103,104,116,104,105,103,104,101,115,116,105,110,115,116,101,97,100,117,116,105,108,105,116,121,113,117,97,114,116,101,114,67,117,108,116,117,114,101,116,101,115,116,105,110,103,99,108,101,97,114,108,121,101,120,112,111,115,101,100,66,114,111,119,115,101,114,108,105,98,101,114,97,108,125,32,99,97,116,99,104,80,114,111,106,101,99,116,101,120,97,109,112,108,101,104,105,100,101,40,41,59,70,108,111,114,105,100,97,97,110,115,119,101,114,115,97,108,108,111,119,101,100,69,109,112,101,114,111,114,100,101,102,101,110,115,101,115,101,114,105,111,117,115,102,114,101,101,100,111,109,83,101,118,101,114,97,108,45,98,117,116,116,111,110,70,117,114,116,104,101,114,111,117,116,32,111,102,32,33,61,32,110,117,108,108,116,114,97,105,110,101,100,68,101,110,109,97,114,107,118,111,105,100,40,48,41,47,97,108,108,46,106,115,112,114,101,118,101,110,116,82,101,113,117,101,115,116,83,116,101,112,104,101,110,10,10,87,104,101,110,32,111,98,115,101,114,118,101,60,47,104,50,62,13,10,77,111,100,101,114,110,32,112,114,111,118,105,100,101,34,32,97,108,116,61,34,98,111,114,100,101,114,115,46,10,10,70,111,114,32,10,10,77,97,110,121,32,97,114,116,105,115,116,115,112,111,119,101,114,101,100,112,101,114,102,111,114,109,102,105,99,116,105,111,110,116,121,112,101,32,111,102,109,101,100,105,99,97,108,116,105,99,107,101,116,115,111,112,112,111,115,101,100,67,111,117,110,99,105,108,119,105,116,110,101,115,115,106,117,115,116,105,99,101,71,101,111,114,103,101,32,66,101,108,103,105,117,109,46,46,46,60,47,97,62,116,119,105,116,116,101,114,110,111,116,97,98,108,121,119,97,105,116,105,110,103,119,97,114,102,97,114,101,32,79,116,104,101,114,32,114,97,110,107,105,110,103,112,104,114,97,115,101,115,109,101,110,116,105,111,110,115,117,114,118,105,118,101,115,99,104,111,108,97,114,60,47,112,62,13,10,32,67,111,117,110,116,114,121,105,103,110,111,114,101,100,108,111,115,115,32,111,102,106,117,115,116,32,97,115,71,101,111,114,103,105,97,115,116,114,97,110,103,101,60,104,101,97,100,62,60,115,116,111,112,112,101,100,49,39,93,41,59,13,10,105,115,108,97,110,100,115,110,111,116,97,98,108,101,98,111,114,100,101,114,58,108,105,115,116,32,111,102,99,97,114,114,105,101,100,49,48,48,44,48,48,48,60,47,104,51,62,10,32,115,101,118,101,114,97,108,98,101,99,111,109,101,115,115,101,108,101,99,116,32,119,101,100,100,105,110,103,48,48,46,104,116,109,108,109,111,110,97,114,99,104,111,102,102,32,116,104,101,116,101,97,99,104,101,114,104,105,103,104,108,121,32,98,105,111,108,111,103,121,108,105,102,101,32,111,102,111,114,32,101,118,101,110,114,105,115,101,32,111,102,38,114,97,113,117,111,59,112,108,117,115,111,110,101,104,117,110,116,105,110,103,40,116,104,111,117,103,104,68,111,117,103,108,97,115,106,111,105,110,105,110,103,99,105,114,99,108,101,115,70,111,114,32,116,104,101,65,110,99,105,101,110,116,86,105,101,116,110,97,109,118,101,104,105,99,108,101,115,117,99,104,32,97,115,99,114,121,115,116,97,108,118,97,108,117,101,32,61,87,105,110,100,111,119,115,101,110,106,111,121,101,100,97,32,115,109,97,108,108,97,115,115,117,109,101,100,60,97,32,105,100,61,34,102,111,114,101,105,103,110,32,65,108,108,32,114,105,104,111,119,32,116,104,101,68,105,115,112,108,97,121,114,101,116,105,114,101,100,104,111,119,101,118,101,114,104,105,100,100,101,110,59,98,97,116,116,108,101,115,115,101,101,107,105,110,103,99,97,98,105,110,101,116,119,97,115,32,110,111,116,108,111,111,107,32,97,116,99,111,110,100,117,99,116,103,101,116,32,116,104,101,74,97,110,117,97,114,121,104,97,112,112,101,110,115,116,117,114,110,105,110,103,97,58,104,111,118,101,114,79,110,108,105,110,101,32,70,114,101,110,99,104,32,108,97,99,107,105,110,103,116,121,112,105,99,97,108,101,120,116,114,97,99,116,101,110,101,109,105,101,115,101,118,101,110,32,105,102,103,101,110,101,114,97,116,100,101,99,105,100,101,100,97,114,101,32,110,111,116,47,115,101,97,114,99,104,98,101,108,105,101,102,115,45,105,109,97,103,101,58,108,111,99,97,116,101,100,115,116,97,116,105,99,46,108,111,103,105,110,34,62,99,111,110,118,101,114,116,118,105,111,108,101,110,116,101,110,116,101,114,101,100,102,105,114,115,116,34,62,99,105,114,99,117,105,116,70,105,110,108,97,110,100,99,104,101,109,105,115,116,115,104,101,32,119,97,115,49,48,112,120,59,34,62,97,115,32,115,117,99,104,100,105,118,105,100,101,100,60,47,115,112,97,110,62,119,105,108,108,32,98,101,108,105,110,101,32,111,102,97,32,103,114,101,97,116,109,121,115,116,101,114,121,47,105,110,100,101,120,46,102,97,108,108,105,110,103,100,117,101,32,116,111,32,114,97,105,108,119,97,121,99,111,108,108,101,103,101,109,111,110,115,116,101,114,100,101,115,99,101,110,116,105,116,32,119,105,116,104,110,117,99,108,101,97,114,74,101,119,105,115,104,32,112,114,111,116,101,115,116,66,114,105,116,105,115,104,102,108,111,119,101,114,115,112,114,101,100,105,99,116,114,101,102,111,114,109,115,98,117,116,116,111,110,32,119,104,111,32,119,97,115,108,101,99,116,117,114,101,105,110,115,116,97,110,116,115,117,105,99,105,100,101,103,101,110,101,114,105,99,112,101,114,105,111,100,115,109,97,114,107,101,116,115,83,111,99,105,97,108,32,102,105,115,104,105,110,103,99,111,109,98,105,110,101,103,114,97,112,104,105,99,119,105,110,110,101,114,115,60,98,114,32,47,62,60,98,121,32,116,104,101,32,78,97,116,117,114,97,108,80,114,105,118,97,99,121,99,111,111,107,105,101,115,111,117,116,99,111,109,101,114,101,115,111,108,118,101,83,119,101,100,105,115,104,98,114,105,101,102,108,121,80,101,114,115,105,97,110,115,111,32,109,117,99,104,67,101,110,116,117,114,121,100,101,112,105,99,116,115,99,111,108,117,109,110,115,104,111,117,115,105,110,103,115,99,114,105,112,116,115,110,101,120,116,32,116,111,98,101,97,114,105,110,103,109,97,112,112,105,110,103,114,101,118,105,115,101,100,106,81,117,101,114,121,40,45,119,105,100,116,104,58,116,105,116,108,101,34,62,116,111,111,108,116,105,112,83,101,99,116,105,111,110,100,101,115,105,103,110,115,84,117,114,107,105,115,104,121,111,117,110,103,101,114,46,109,97,116,99,104,40,125,41,40,41,59,10,10,98,117,114,110,105,110,103,111,112,101,114,97,116,101,100,101,103,114,101,101,115,115,111,117,114,99,101,61,82,105,99,104,97,114,100,99,108,111,115,101,108,121,112,108,97,115,116,105,99,101,110,116,114,105,101,115,60,47,116,114,62,13,10,99,111,108,111,114,58,35,117,108,32,105,100,61,34,112,111,115,115,101,115,115,114,111,108,108,105,110,103,112,104,121,115,105,99,115,102,97,105,108,105,110,103,101,120,101,99,117,116,101,99,111,110,116,101,115,116,108,105,110,107,32,116,111,68,101,102,97,117,108,116,60,98,114,32,47,62,10,58,32,116,114,117,101,44,99,104,97,114,116,101,114,116,111,117,114,105,115,109,99,108,97,115,115,105,99,112,114,111,99,101,101,100,101,120,112,108,97,105,110,60,47,104,49,62,13,10,111,110,108,105,110,101,46,63,120,109,108,32,118,101,104,101,108,112,105,110,103,100,105,97,109,111,110,100,117,115,101,32,116,104,101,97,105,114,108,105,110,101,101,110,100,32,45,45,62,41,46,97,116,116,114,40,114,101,97,100,101,114,115,104,111,115,116,105,110,103,35,102,102,102,102,102,102,114,101,97,108,105,122,101,86,105,110,99,101,110,116,115,105,103,110,97,108,115,32,115,114,99,61,34,47,80,114,111,100,117,99,116,100,101,115,112,105,116,101,100,105,118,101,114,115,101,116,101,108,108,105,110,103,80,117,98,108,105,99,32,104,101,108,100,32,105,110,74,111,115,101,112,104,32,116,104,101,97,116,114,101,97,102,102,101,99,116,115,60,115,116,121,108,101,62,97,32,108,97,114,103,101,100,111,101,115,110,39,116,108,97,116,101,114,44,32,69,108,101,109,101,110,116,102,97,118,105,99,111,110,99,114,101,97,116,111,114,72,117,110,103,97,114,121,65,105,114,112,111,114,116,115,101,101,32,116,104,101,115,111,32,116,104,97,116,77,105,99,104,97,101,108,83,121,115,116,101,109,115,80,114,111,103,114,97,109,115,44,32,97,110,100,32,32,119,105,100,116,104,61,101,38,113,117,111,116,59,116,114,97,100,105,110,103,108,101,102,116,34,62,10,112,101,114,115,111,110,115,71,111,108,100,101,110,32,65,102,102,97,105,114,115,103,114,97,109,109,97,114,102,111,114,109,105,110,103,100,101,115,116,114,111,121,105,100,101,97,32,111,102,99,97,115,101,32,111,102,111,108,100,101,115,116,32,116,104,105,115,32,105,115,46,115,114,99,32,61,32,99,97,114,116,111,111,110,114,101,103,105,115,116,114,67,111,109,109,111,110,115,77,117,115,108,105,109,115,87,104,97,116,32,105,115,105,110,32,109,97,110,121,109,97,114,107,105,110,103,114,101,118,101,97,108,115,73,110,100,101,101,100,44,101,113,117,97,108,108,121,47,115,104,111,119,95,97,111,117,116,100,111,111,114,101,115,99,97,112,101,40,65,117,115,116,114,105,97,103,101,110,101,116,105,99,115,121,115,116,101,109,44,73,110,32,116,104,101,32,115,105,116,116,105,110,103,72,101,32,97,108,115,111,73,115,108,97,110,100,115,65,99,97,100,101,109,121,10,9,9,60,33,45,45,68,97,110,105,101,108,32,98,105,110,100,105,110,103,98,108,111,99,107,34,62,105,109,112,111,115,101,100,117,116,105,108,105,122,101,65,98,114,97,104,97,109,40,101,120,99,101,112,116,123,119,105,100,116,104,58,112,117,116,116,105,110,103,41,46,104,116,109,108,40,124,124,32,91,93,59,10,68,65,84,65,91,32,42,107,105,116,99,104,101,110,109,111,117,110,116,101,100,97,99,116,117,97,108,32,100,105,97,108,101,99,116,109,97,105,110,108,121,32,95,98,108,97,110,107,39,105,110,115,116,97,108,108,101,120,112,101,114,116,115,105,102,40,116,121,112,101,73,116,32,97,108,115,111,38,99,111,112,121,59,32,34,62,84,101,114,109,115,98,111,114,110,32,105,110,79,112,116,105,111,110,115,101,97,115,116,101,114,110,116,97,108,107,105,110,103,99,111,110,99,101,114,110,103,97,105,110,101,100,32,111,110,103,111,105,110,103,106,117,115,116,105,102,121,99,114,105,116,105,99,115,102,97,99,116,111,114,121,105,116,115,32,111,119,110,97,115,115,97,117,108,116,105,110,118,105,116,101,100,108,97,115,116,105,110,103,104,105,115,32,111,119,110,104,114,101,102,61,34,47,34,32,114,101,108,61,34,100,101,118,101,108,111,112,99,111,110,99,101,114,116,100,105,97,103,114,97,109,100,111,108,108,97,114,115,99,108,117,115,116,101,114,112,104,112,63,105,100,61,97,108,99,111,104,111,108,41,59,125,41,40,41,59,117,115,105,110,103,32,97,62,60,115,112,97,110,62,118,101,115,115,101,108,115,114,101,118,105,118,97,108,65,100,100,114,101,115,115,97,109,97,116,101,117,114,97,110,100,114,111,105,100,97,108,108,101,103,101,100,105,108,108,110,101,115,115,119,97,108,107,105,110,103,99,101,110,116,101,114,115,113,117,97,108,105,102,121,109,97,116,99,104,101,115,117,110,105,102,105,101,100,101,120,116,105,110,99,116,68,101,102,101,110,115,101,100,105,101,100,32,105,110,10,9,60,33,45,45,32,99,117,115,116,111,109,115,108,105,110,107,105,110,103,76,105,116,116,108,101,32,66,111,111,107,32,111,102,101,118,101,110,105,110,103,109,105,110,46,106,115,63,97,114,101,32,116,104,101,107,111,110,116,97,107,116,116,111,100,97,121,39,115,46,104,116,109,108,34,32,116,97,114,103,101,116,61,119,101,97,114,105,110,103,65,108,108,32,82,105,103,59,10,125,41,40,41,59,114,97,105,115,105,110,103,32,65,108,115,111,44,32,99,114,117,99,105,97,108,97,98,111,117,116,34,62,100,101,99,108,97,114,101,45,45,62,10,60,115,99,102,105,114,101,102,111,120,97,115,32,109,117,99,104,97,112,112,108,105,101,115,105,110,100,101,120,44,32,115,44,32,98,117,116,32,116,121,112,101,32,61,32,10,13,10,60,33,45,45,116,111,119,97,114,100,115,82,101,99,111,114,100,115,80,114,105,118,97,116,101,70,111,114,101,105,103,110,80,114,101,109,105,101,114,99,104,111,105,99,101,115,86,105,114,116,117,97,108,114,101,116,117,114,110,115,67,111,109,109,101,110,116,80,111,119,101,114,101,100,105,110,108,105,110,101,59,112,111,118,101,114,116,121,99,104,97,109,98,101,114,76,105,118,105,110,103,32,118,111,108,117,109,101,115,65,110,116,104,111,110,121,108,111,103,105,110,34,32,82,101,108,97,116,101,100,69,99,111,110,111,109,121,114,101,97,99,104,101,115,99,117,116,116,105,110,103,103,114,97,118,105,116,121,108,105,102,101,32,105,110,67,104,97,112,116,101,114,45,115,104,97,100,111,119,78,111,116,97,98,108,101,60,47,116,100,62,13,10,32,114,101,116,117,114,110,115,116,97,100,105,117,109,119,105,100,103,101,116,115,118,97,114,121,105,110,103,116,114,97,118,101,108,115,104,101,108,100,32,98,121,119,104,111,32,97,114,101,119,111,114,107,32,105,110,102,97,99,117,108,116,121,97,110,103,117,108,97,114,119,104,111,32,104,97,100,97,105,114,112,111,114,116,116,111,119,110,32,111,102,10,10,83,111,109,101,32,39,99,108,105,99,107,39,99,104,97,114,103,101,115,107,101,121,119,111,114,100,105,116,32,119,105,108,108,99,105,116,121,32,111,102,40,116,104,105,115,41,59,65,110,100,114,101,119,32,117,110,105,113,117,101,32,99,104,101,99,107,101,100,111,114,32,109,111,114,101,51,48,48,112,120,59,32,114,101,116,117,114,110,59,114,115,105,111,110,61,34,112,108,117,103,105,110,115,119,105,116,104,105,110,32,104,101,114,115,101,108,102,83,116,97,116,105,111,110,70,101,100,101,114,97,108,118,101,110,116,117,114,101,112,117,98,108,105,115,104,115,101,110,116,32,116,111,116,101,110,115,105,111,110,97,99,116,114,101,115,115,99,111,109,101,32,116,111,102,105,110,103,101,114,115,68,117,107,101,32,111,102,112,101,111,112,108,101,44,101,120,112,108,111,105,116,119,104,97,116,32,105,115,104,97,114,109,111,110,121,97,32,109,97,106,111,114,34,58,34,104,116,116,112,105,110,32,104,105,115,32,109,101,110,117,34,62,10,109,111,110,116,104,108,121,111,102,102,105,99,101,114,99,111,117,110,99,105,108,103,97,105,110,105,110,103,101,118,101,110,32,105,110,83,117,109,109,97,114,121,100,97,116,101,32,111,102,108,111,121,97,108,116,121,102,105,116,110,101,115,115,97,110,100,32,119,97,115,101,109,112,101,114,111,114,115,117,112,114,101,109,101,83,101,99,111,110,100,32,104,101,97,114,105,110,103,82,117,115,115,105,97,110,108,111,110,103,101,115,116,65,108,98,101,114,116,97,108,97,116,101,114,97,108,115,101,116,32,111,102,32,115,109,97,108,108,34,62,46,97,112,112,101,110,100,100,111,32,119,105,116,104,102,101,100,101,114,97,108,98,97,110,107,32,111,102,98,101,110,101,97,116,104,68,101,115,112,105,116,101,67,97,112,105,116,97,108,103,114,111,117,110,100,115,41,44,32,97,110,100,32,112,101,114,99,101,110,116,105,116,32,102,114,111,109,99,108,111,115,105,110,103,99,111,110,116,97,105,110,73,110,115,116,101,97,100,102,105,102,116,101,101,110,97,115,32,119,101,108,108,46,121,97,104,111,111,46,114,101,115,112,111,110,100,102,105,103,104,116,101,114,111,98,115,99,117,114,101,114,101,102,108,101,99,116,111,114,103,97,110,105,99,61,32,77,97,116,104,46,101,100,105,116,105,110,103,111,110,108,105,110,101,32,112,97,100,100,105,110,103,97,32,119,104,111,108,101,111,110,101,114,114,111,114,121,101,97,114,32,111,102,101,110,100,32,111,102,32,98,97,114,114,105,101,114,119,104,101,110,32,105,116,104,101,97,100,101,114,32,104,111,109,101,32,111,102,114,101,115,117,109,101,100,114,101,110,97,109,101,100,115,116,114,111,110,103,62,104,101,97,116,105,110,103,114,101,116,97,105,110,115,99,108,111,117,100,102,114,119,97,121,32,111,102,32,77,97,114,99,104,32,49,107,110,111,119,105,110,103,105,110,32,112,97,114,116,66,101,116,119,101,101,110,108,101,115,115,111,110,115,99,108,111,115,101,115,116,118,105,114,116,117,97,108,108,105,110,107,115,34,62,99,114,111,115,115,101,100,69,78,68,32,45,45,62,102,97,109,111,117,115,32,97,119,97,114,100,101,100,76,105,99,101,110,115,101,72,101,97,108,116,104,32,102,97,105,114,108,121,32,119,101,97,108,116,104,121,109,105,110,105,109,97,108,65,102,114,105,99,97,110,99,111,109,112,101,116,101,108,97,98,101,108,34,62,115,105,110,103,105,110,103,102,97,114,109,101,114,115,66,114,97,115,105,108,41,100,105,115,99,117,115,115,114,101,112,108,97,99,101,71,114,101,103,111,114,121,102,111,110,116,32,99,111,112,117,114,115,117,101,100,97,112,112,101,97,114,115,109,97,107,101,32,117,112,114,111,117,110,100,101,100,98,111,116,104,32,111,102,98,108,111,99,107,101,100,115,97,119,32,116,104,101,111,102,102,105,99,101,115,99,111,108,111,117,114,115,105,102,40,100,111,99,117,119,104,101,110,32,104,101,101,110,102,111,114,99,101,112,117,115,104,40,102,117,65,117,103,117,115,116,32,85,84,70,45,56,34,62,70,97,110,116,97,115,121,105,110,32,109,111,115,116,105,110,106,117,114,101,100,85,115,117,97,108,108,121,102,97,114,109,105,110,103,99,108,111,115,117,114,101,111,98,106,101,99,116,32,100,101,102,101,110,99,101,117,115,101,32,111,102,32,77,101,100,105,99,97,108,60,98,111,100,121,62,10,101,118,105,100,101,110,116,98,101,32,117,115,101,100,107,101,121,67,111,100,101,115,105,120,116,101,101,110,73,115,108,97,109,105,99,35,48,48,48,48,48,48,101,110,116,105,114,101,32,119,105,100,101,108,121,32,97,99,116,105,118,101,32,40,116,121,112,101,111,102,111,110,101,32,99,97,110,99,111,108,111,114,32,61,115,112,101,97,107,101,114,101,120,116,101,110,100,115,80,104,121,115,105,99,115,116,101,114,114,97,105,110,60,116,98,111,100,121,62,102,117,110,101,114,97,108,118,105,101,119,105,110,103,109,105,100,100,108,101,32,99,114,105,99,107,101,116,112,114,111,112,104,101,116,115,104,105,102,116,101,100,100,111,99,116,111,114,115,82,117,115,115,101,108,108,32,116,97,114,103,101,116,99,111,109,112,97,99,116,97,108,103,101,98,114,97,115,111,99,105,97,108,45,98,117,108,107,32,111,102,109,97,110,32,97,110,100,60,47,116,100,62,10,32,104,101,32,108,101,102,116,41,46,118,97,108,40,41,102,97,108,115,101,41,59,108,111,103,105,99,97,108,98,97,110,107,105,110,103,104,111,109,101,32,116,111,110,97,109,105,110,103,32,65,114,105,122,111,110,97,99,114,101,100,105,116,115,41,59,10,125,41,59,10,102,111,117,110,100,101,114,105,110,32,116,117,114,110,67,111,108,108,105,110,115,98,101,102,111,114,101,32,66,117,116,32,116,104,101,99,104,97,114,103,101,100,84,105,116,108,101,34,62,67,97,112,116,97,105,110,115,112,101,108,108,101,100,103,111,100,100,101,115,115,84,97,103,32,45,45,62,65,100,100,105,110,103,58,98,117,116,32,119,97,115,82,101,99,101,110,116,32,112,97,116,105,101,110,116,98,97,99,107,32,105,110,61,102,97,108,115,101,38,76,105,110,99,111,108,110,119,101,32,107,110,111,119,67,111,117,110,116,101,114,74,117,100,97,105,115,109,115,99,114,105,112,116,32,97,108,116,101,114,101,100,39,93,41,59,10,32,32,104,97,115,32,116,104,101,117,110,99,108,101,97,114,69,118,101,110,116,39,44,98,111,116,104,32,105,110,110,111,116,32,97,108,108,10,10,60,33,45,45,32,112,108,97,99,105,110,103,104,97,114,100,32,116,111,32,99,101,110,116,101,114,115,111,114,116,32,111,102,99,108,105,101,110,116,115,115,116,114,101,101,116,115,66,101,114,110,97,114,100,97,115,115,101,114,116,115,116,101,110,100,32,116,111,102,97,110,116,97,115,121,100,111,119,110,32,105,110,104,97,114,98,111,117,114,70,114,101,101,100,111,109,106,101,119,101,108,114,121,47,97,98,111,117,116,46,46,115,101,97,114,99,104,108,101,103,101,110,100,115,105,115,32,109,97,100,101,109,111,100,101,114,110,32,111,110,108,121,32,111,110,111,110,108,121,32,116,111,105,109,97,103,101,34,32,108,105,110,101,97,114,32,112,97,105,110,116,101,114,97,110,100,32,110,111,116,114,97,114,101,108,121,32,97,99,114,111,110,121,109,100,101,108,105,118,101,114,115,104,111,114,116,101,114,48,48,38,97,109,112,59,97,115,32,109,97,110,121,119,105,100,116,104,61,34,47,42,32,60,33,91,67,116,105,116,108,101,32,61,111,102,32,116,104,101,32,108,111,119,101,115,116,32,112,105,99,107,101,100,32,101,115,99,97,112,101,100,117,115,101,115,32,111,102,112,101,111,112,108,101,115,32,80,117,98,108,105,99,77,97,116,116,104,101,119,116,97,99,116,105,99,115,100,97,109,97,103,101,100,119,97,121,32,102,111,114,108,97,119,115,32,111,102,101,97,115,121,32,116,111,32,119,105,110,100,111,119,115,116,114,111,110,103,32,32,115,105,109,112,108,101,125,99,97,116,99,104,40,115,101,118,101,110,116,104,105,110,102,111,98,111,120,119,101,110,116,32,116,111,112,97,105,110,116,101,100,99,105,116,105,122,101,110,73,32,100,111,110,39,116,114,101,116,114,101,97,116,46,32,83,111,109,101,32,119,119,46,34,41,59,10,98,111,109,98,105,110,103,109,97,105,108,116,111,58,109,97,100,101,32,105,110,46,32,77,97,110,121,32,99,97,114,114,105,101,115,124,124,123,125,59,119,105,119,111,114,107,32,111,102,115,121,110,111,110,121,109,100,101,102,101,97,116,115,102,97,118,111,114,101,100,111,112,116,105,99,97,108,112,97,103,101,84,114,97,117,110,108,101,115,115,32,115,101,110,100,105,110,103,108,101,102,116,34,62,60,99,111,109,83,99,111,114,65,108,108,32,116,104,101,106,81,117,101,114,121,46,116,111,117,114,105,115,116,67,108,97,115,115,105,99,102,97,108,115,101,34,32,87,105,108,104,101,108,109,115,117,98,117,114,98,115,103,101,110,117,105,110,101,98,105,115,104,111,112,115,46,115,112,108,105,116,40,103,108,111,98,97,108,32,102,111,108,108,111,119,115,98,111,100,121,32,111,102,110,111,109,105,110,97,108,67,111,110,116,97,99,116,115,101,99,117,108,97,114,108,101,102,116,32,116,111,99,104,105,101,102,108,121,45,104,105,100,100,101,110,45,98,97,110,110,101,114,60,47,108,105,62,10,10,46,32,87,104,101,110,32,105,110,32,98,111,116,104,100,105,115,109,105,115,115,69,120,112,108,111,114,101,97,108,119,97,121,115,32,118,105,97,32,116,104,101,115,112,97,195,177,111,108,119,101,108,102,97,114,101,114,117,108,105,110,103,32,97,114,114,97,110,103,101,99,97,112,116,97,105,110,104,105,115,32,115,111,110,114,117,108,101,32,111,102,104,101,32,116,111,111,107,105,116,115,101,108,102,44,61,48,38,97,109,112,59,40,99,97,108,108,101,100,115,97,109,112,108,101,115,116,111,32,109,97,107,101,99,111,109,47,112,97,103,77,97,114,116,105,110,32,75,101,110,110,101,100,121,97,99,99,101,112,116,115,102,117,108,108,32,111,102,104,97,110,100,108,101,100,66,101,115,105,100,101,115,47,47,45,45,62,60,47,97,98,108,101,32,116,111,116,97,114,103,101,116,115,101,115,115,101,110,99,101,104,105,109,32,116,111,32,105,116,115,32,98,121,32,99,111,109,109,111,110,46,109,105,110,101,114,97,108,116,111,32,116,97,107,101,119,97,121,115,32,116,111,115,46,111,114,103,47,108,97,100,118,105,115,101,100,112,101,110,97,108,116,121,115,105,109,112,108,101,58,105,102,32,116,104,101,121,76,101,116,116,101,114,115,97,32,115,104,111,114,116,72,101,114,98,101,114,116,115,116,114,105,107,101,115,32,103,114,111,117,112,115,46,108,101,110,103,116,104,102,108,105,103,104,116,115,111,118,101,114,108,97,112,115,108,111,119,108,121,32,108,101,115,115,101,114,32,115,111,99,105,97,108,32,60,47,112,62,10,9,9,105,116,32,105,110,116,111,114,97,110,107,101,100,32,114,97,116,101,32,111,102,117,108,62,13,10,32,32,97,116,116,101,109,112,116,112,97,105,114,32,111,102,109,97,107,101,32,105,116,75,111,110,116,97,107,116,65,110,116,111,110,105,111,104,97,118,105,110,103,32,114,97,116,105,110,103,115,32,97,99,116,105,118,101,115,116,114,101,97,109,115,116,114,97,112,112,101,100,34,41,46,99,115,115,40,104,111,115,116,105,108,101,108,101,97,100,32,116,111,108,105,116,116,108,101,32,103,114,111,117,112,115,44,80,105,99,116,117,114,101,45,45,62,13,10,13,10,32,114,111,119,115,61,34,32,111,98,106,101,99,116,105,110,118,101,114,115,101,60,102,111,111,116,101,114,67,117,115,116,111,109,86,62,60,92,47,115,99,114,115,111,108,118,105,110,103,67,104,97,109,98,101,114,115,108,97,118,101,114,121,119,111,117,110,100,101,100,119,104,101,114,101,97,115,33,61,32,39,117,110,100,102,111,114,32,97,108,108,112,97,114,116,108,121,32,45,114,105,103,104,116,58,65,114,97,98,105,97,110,98,97,99,107,101,100,32,99,101,110,116,117,114,121,117,110,105,116,32,111,102,109,111,98,105,108,101,45,69,117,114,111,112,101,44,105,115,32,104,111,109,101,114,105,115,107,32,111,102,100,101,115,105,114,101,100,67,108,105,110,116,111,110,99,111,115,116,32,111,102,97,103,101,32,111,102,32,98,101,99,111,109,101,32,110,111,110,101,32,111,102,112,38,113,117,111,116,59,77,105,100,100,108,101,32,101,97,100,39,41,91,48,67,114,105,116,105,99,115,115,116,117,100,105,111,115,62,38,99,111,112,121,59,103,114,111,117,112,34,62,97,115,115,101,109,98,108,109,97,107,105,110,103,32,112,114,101,115,115,101,100,119,105,100,103,101,116,46,112,115,58,34,32,63,32,114,101,98,117,105,108,116,98,121,32,115,111,109,101,70,111,114,109,101,114,32,101,100,105,116,111,114,115,100,101,108,97,121,101,100,67,97,110,111,110,105,99,104,97,100,32,116,104,101,112,117,115,104,105,110,103,99,108,97,115,115,61,34,98,117,116,32,97,114,101,112,97,114,116,105,97,108,66,97,98,121,108,111,110,98,111,116,116,111,109,32,99,97,114,114,105,101,114,67,111,109,109,97,110,100,105,116,115,32,117,115,101,65,115,32,119,105,116,104,99,111,117,114,115,101,115,97,32,116,104,105,114,100,100,101,110,111,116,101,115,97,108,115,111,32,105,110,72,111,117,115,116,111,110,50,48,112,120,59,34,62,97,99,99,117,115,101,100,100,111,117,98,108,101,32,103,111,97,108,32,111,102,70,97,109,111,117,115,32,41,46,98,105,110,100,40,112,114,105,101,115,116,115,32,79,110,108,105,110,101,105,110,32,74,117,108,121,115,116,32,43,32,34,103,99,111,110,115,117,108,116,100,101,99,105,109,97,108,104,101,108,112,102,117,108,114,101,118,105,118,101,100,105,115,32,118,101,114,121,114,39,43,39,105,112,116,108,111,115,105,110,103,32,102,101,109,97,108,101,115,105,115,32,97,108,115,111,115,116,114,105,110,103,115,100,97,121,115,32,111,102,97,114,114,105,118,97,108,102,117,116,117,114,101,32,60,111,98,106,101,99,116,102,111,114,99,105,110,103,83,116,114,105,110,103,40,34,32,47,62,10,9,9,104,101,114,101,32,105,115,101,110,99,111,100,101,100,46,32,32,84,104,101,32,98,97,108,108,111,111,110,100,111,110,101,32,98,121,47,99,111,109,109,111,110,98,103,99,111,108,111,114,108,97,119,32,111,102,32,73,110,100,105,97,110,97,97,118,111,105,100,101,100,98,117,116,32,116,104,101,50,112,120,32,51,112,120,106,113,117,101,114,121,46,97,102,116,101,114,32,97,112,111,108,105,99,121,46,109,101,110,32,97,110,100,102,111,111,116,101,114,45,61,32,116,114,117,101,59,102,111,114,32,117,115,101,115,99,114,101,101,110,46,73,110,100,105,97,110,32,105,109,97,103,101,32,61,102,97,109,105,108,121,44,104,116,116,112,58,47,47,32,38,110,98,115,112,59,100,114,105,118,101,114,115,101,116,101,114,110,97,108,115,97,109,101,32,97,115,110,111,116,105,99,101,100,118,105,101,119,101,114,115,125,41,40,41,59,10,32,105,115,32,109,111,114,101,115,101,97,115,111,110,115,102,111,114,109,101,114,32,116,104,101,32,110,101,119,105,115,32,106,117,115,116,99,111,110,115,101,110,116,32,83,101,97,114,99,104,119,97,115,32,116,104,101,119,104,121,32,116,104,101,115,104,105,112,112,101,100,98,114,62,60,98,114,62,119,105,100,116,104,58,32,104,101,105,103,104,116,61,109,97,100,101,32,111,102,99,117,105,115,105,110,101,105,115,32,116,104,97,116,97,32,118,101,114,121,32,65,100,109,105,114,97,108,32,102,105,120,101,100,59,110,111,114,109,97,108,32,77,105,115,115,105,111,110,80,114,101,115,115,44,32,111,110,116,97,114,105,111,99,104,97,114,115,101,116,116,114,121,32,116,111,32,105,110,118,97,100,101,100,61,34,116,114,117,101,34,115,112,97,99,105,110,103,105,115,32,109,111,115,116,97,32,109,111,114,101,32,116,111,116,97,108,108,121,102,97,108,108,32,111,102,125,41,59,13,10,32,32,105,109,109,101,110,115,101,116,105,109,101,32,105,110,115,101,116,32,111,117,116,115,97,116,105,115,102,121,116,111,32,102,105,110,100,100,111,119,110,32,116,111,108,111,116,32,111,102,32,80,108,97,121,101,114,115,105,110,32,74,117,110,101,113,117,97,110,116,117,109,110,111,116,32,116,104,101,116,105,109,101,32,116,111,100,105,115,116,97,110,116,70,105,110,110,105,115,104,115,114,99,32,61,32,40,115,105,110,103,108,101,32,104,101,108,112,32,111,102,71,101,114,109,97,110,32,108,97,119,32,97,110,100,108,97,98,101,108,101,100,102,111,114,101,115,116,115,99,111,111,107,105,110,103,115,112,97,99,101,34,62,104,101,97,100,101,114,45,119,101,108,108,32,97,115,83,116,97,110,108,101,121,98,114,105,100,103,101,115,47,103,108,111,98,97,108,67,114,111,97,116,105,97,32,65,98,111,117,116,32,91,48,93,59,10,32,32,105,116,44,32,97,110,100,103,114,111,117,112,101,100,98,101,105,110,103,32,97,41,123,116,104,114,111,119,104,101,32,109,97,100,101,108,105,103,104,116,101,114,101,116,104,105,99,97,108,70,70,70,70,70,70,34,98,111,116,116,111,109,34,108,105,107,101,32,97,32,101,109,112,108,111,121,115,108,105,118,101,32,105,110,97,115,32,115,101,101,110,112,114,105,110,116,101,114,109,111,115,116,32,111,102,117,98,45,108,105,110,107,114,101,106,101,99,116,115,97,110,100,32,117,115,101,105,109,97,103,101,34,62,115,117,99,99,101,101,100,102,101,101,100,105,110,103,78,117,99,108,101,97,114,105,110,102,111,114,109,97,116,111,32,104,101,108,112,87,111,109,101,110,39,115,78,101,105,116,104,101,114,77,101,120,105,99,97,110,112,114,111,116,101,105,110,60,116,97,98,108,101,32,98,121,32,109,97,110,121,104,101,97,108,116,104,121,108,97,119,115,117,105,116,100,101,118,105,115,101,100,46,112,117,115,104,40,123,115,101,108,108,101,114,115,115,105,109,112,108,121,32,84,104,114,111,117,103,104,46,99,111,111,107,105,101,32,73,109,97,103,101,40,111,108,100,101,114,34,62,117,115,46,106,115,34,62,32,83,105,110,99,101,32,117,110,105,118,101,114,115,108,97,114,103,101,114,32,111,112,101,110,32,116,111,33,45,45,32,101,110,100,108,105,101,115,32,105,110,39,93,41,59,13,10,32,32,109,97,114,107,101,116,119,104,111,32,105,115,32,40,34,68,79,77,67,111,109,97,110,97,103,101,100,111,110,101,32,102,111,114,116,121,112,101,111,102,32,75,105,110,103,100,111,109,112,114,111,102,105,116,115,112,114,111,112,111,115,101,116,111,32,115,104,111,119,99,101,110,116,101,114,59,109,97,100,101,32,105,116,100,114,101,115,115,101,100,119,101,114,101,32,105,110,109,105,120,116,117,114,101,112,114,101,99,105,115,101,97,114,105,115,105,110,103,115,114,99,32,61,32,39,109,97,107,101,32,97,32,115,101,99,117,114,101,100,66,97,112,116,105,115,116,118,111,116,105,110,103,32,10,9,9,118,97,114,32,77,97,114,99,104,32,50,103,114,101,119,32,117,112,67,108,105,109,97,116,101,46,114,101,109,111,118,101,115,107,105,108,108,101,100,119,97,121,32,116,104,101,60,47,104,101,97,100,62,102,97,99,101,32,111,102,97,99,116,105,110,103,32,114,105,103,104,116,34,62,116,111,32,119,111,114,107,114,101,100,117,99,101,115,104,97,115,32,104,97,100,101,114,101,99,116,101,100,115,104,111,119,40,41,59,97,99,116,105,111,110,61,98,111,111,107,32,111,102,97,110,32,97,114,101,97,61,61,32,34,104,116,116,60,104,101,97,100,101,114,10,60,104,116,109,108,62,99,111,110,102,111,114,109,102,97,99,105,110,103,32,99,111,111,107,105,101,46,114,101,108,121,32,111,110,104,111,115,116,101,100,32,46,99,117,115,116,111,109,104,101,32,119,101,110,116,98,117,116,32,102,111,114,115,112,114,101,97,100,32,70,97,109,105,108,121,32,97,32,109,101,97,110,115,111,117,116,32,116,104,101,102,111,114,117,109,115,46,102,111,111,116,97,103,101,34,62,77,111,98,105,108,67,108,101,109,101,110,116,115,34,32,105,100,61,34,97,115,32,104,105,103,104,105,110,116,101,110,115,101,45,45,62,60,33,45,45,102,101,109,97,108,101,32,105,115,32,115,101,101,110,105,109,112,108,105,101,100,115,101,116,32,116,104,101,97,32,115,116,97,116,101,97,110,100,32,104,105,115,102,97,115,116,101,115,116,98,101,115,105,100,101,115,98,117,116,116,111,110,95,98,111,117,110,100,101,100,34,62,60,105,109,103,32,73,110,102,111,98,111,120,101,118,101,110,116,115,44,97,32,121,111,117,110,103,97,110,100,32,97,114,101,78,97,116,105,118,101,32,99,104,101,97,112,101,114,84,105,109,101,111,117,116,97,110,100,32,104,97,115,101,110,103,105,110,101,115,119,111,110,32,116,104,101,40,109,111,115,116,108,121,114,105,103,104,116,58,32,102,105,110,100,32,97,32,45,98,111,116,116,111,109,80,114,105,110,99,101,32,97,114,101,97,32,111,102,109,111,114,101,32,111,102,115,101,97,114,99,104,95,110,97,116,117,114,101,44,108,101,103,97,108,108,121,112,101,114,105,111,100,44,108,97,110,100,32,111,102,111,114,32,119,105,116,104,105,110,100,117,99,101,100,112,114,111,118,105,110,103,109,105,115,115,105,108,101,108,111,99,97,108,108,121,65,103,97,105,110,115,116,116,104,101,32,119,97,121,107,38,113,117,111,116,59,112,120,59,34,62,13,10,112,117,115,104,101,100,32,97,98,97,110,100,111,110,110,117,109,101,114,97,108,67,101,114,116,97,105,110,73,110,32,116,104,105,115,109,111,114,101,32,105,110,111,114,32,115,111,109,101,110,97,109,101,32,105,115,97,110,100,44,32,105,110,99,114,111,119,110,101,100,73,83,66,78,32,48,45,99,114,101,97,116,101,115,79,99,116,111,98,101,114,109,97,121,32,110,111,116,99,101,110,116,101,114,32,108,97,116,101,32,105,110,68,101,102,101,110,99,101,101,110,97,99,116,101,100,119,105,115,104,32,116,111,98,114,111,97,100,108,121,99,111,111,108,105,110,103,111,110,108,111,97,100,61,105,116,46,32,84,104,101,114,101,99,111,118,101,114,77,101,109,98,101,114,115,104,101,105,103,104,116,32,97,115,115,117,109,101,115,60,104,116,109,108,62,10,112,101,111,112,108,101,46,105,110,32,111,110,101,32,61,119,105,110,100,111,119,102,111,111,116,101,114,95,97,32,103,111,111,100,32,114,101,107,108,97,109,97,111,116,104,101,114,115,44,116,111,32,116,104,105,115,95,99,111,111,107,105,101,112,97,110,101,108,34,62,76,111,110,100,111,110,44,100,101,102,105,110,101,115,99,114,117,115,104,101,100,98,97,112,116,105,115,109,99,111,97,115,116,97,108,115,116,97,116,117,115,32,116,105,116,108,101,34,32,109,111,118,101,32,116,111,108,111,115,116,32,105,110,98,101,116,116,101,114,32,105,109,112,108,105,101,115,114,105,118,97,108,114,121,115,101,114,118,101,114,115,32,83,121,115,116,101,109,80,101,114,104,97,112,115,101,115,32,97,110,100,32,99,111,110,116,101,110,100,102,108,111,119,105,110,103,108,97,115,116,101,100,32,114,105,115,101,32,105,110,71,101,110,101,115,105,115,118,105,101,119,32,111,102,114,105,115,105,110,103,32,115,101,101,109,32,116,111,98,117,116,32,105,110,32,98,97,99,107,105,110,103,104,101,32,119,105,108,108,103,105,118,101,110,32,97,103,105,118,105,110,103,32,99,105,116,105,101,115,46,102,108,111,119,32,111,102,32,76,97,116,101,114,32,97,108,108,32,98,117,116,72,105,103,104,119,97,121,111,110,108,121,32,98,121,115,105,103,110,32,111,102,104,101,32,100,111,101,115,100,105,102,102,101,114,115,98,97,116,116,101,114,121,38,97,109,112,59,108,97,115,105,110,103,108,101,115,116,104,114,101,97,116,115,105,110,116,101,103,101,114,116,97,107,101,32,111,110,114,101,102,117,115,101,100,99,97,108,108,101,100,32,61,85,83,38,97,109,112,83,101,101,32,116,104,101,110,97,116,105,118,101,115,98,121,32,116,104,105,115,115,121,115,116,101,109,46,104,101,97,100,32,111,102,58,104,111,118,101,114,44,108,101,115,98,105,97,110,115,117,114,110,97,109,101,97,110,100,32,97,108,108,99,111,109,109,111,110,47,104,101,97,100,101,114,95,95,112,97,114,97,109,115,72,97,114,118,97,114,100,47,112,105,120,101,108,46,114,101,109,111,118,97,108,115,111,32,108,111,110,103,114,111,108,101,32,111,102,106,111,105,110,116,108,121,115,107,121,115,99,114,97,85,110,105,99,111,100,101,98,114,32,47,62,13,10,65,116,108,97,110,116,97,110,117,99,108,101,117,115,67,111,117,110,116,121,44,112,117,114,101,108,121,32,99,111,117,110,116,34,62,101,97,115,105,108,121,32,98,117,105,108,100,32,97,111,110,99,108,105,99,107,97,32,103,105,118,101,110,112,111,105,110,116,101,114,104,38,113,117,111,116,59,101,118,101,110,116,115,32,101,108,115,101,32,123,10,100,105,116,105,111,110,115,110,111,119,32,116,104,101,44,32,119,105,116,104,32,109,97,110,32,119,104,111,111,114,103,47,87,101,98,111,110,101,32,97,110,100,99,97,118,97,108,114,121,72,101,32,100,105,101,100,115,101,97,116,116,108,101,48,48,44,48,48,48,32,123,119,105,110,100,111,119,104,97,118,101,32,116,111,105,102,40,119,105,110,100,97,110,100,32,105,116,115,115,111,108,101,108,121,32,109,38,113,117,111,116,59,114,101,110,101,119,101,100,68,101,116,114,111,105,116,97,109,111,110,103,115,116,101,105,116,104,101,114,32,116,104,101,109,32,105,110,83,101,110,97,116,111,114,85,115,60,47,97,62,60,75,105,110,103,32,111,102,70,114,97,110,99,105,115,45,112,114,111,100,117,99,104,101,32,117,115,101,100,97,114,116,32,97,110,100,104,105,109,32,97,110,100,117,115,101,100,32,98,121,115,99,111,114,105,110,103,97,116,32,104,111,109,101,116,111,32,104,97,118,101,114,101,108,97,116,101,115,105,98,105,108,105,116,121,102,97,99,116,105,111,110,66,117,102,102,97,108,111,108,105,110,107,34,62,60,119,104,97,116,32,104,101,102,114,101,101,32,116,111,67,105,116,121,32,111,102,99,111,109,101,32,105,110,115,101,99,116,111,114,115,99,111,117,110,116,101,100,111,110,101,32,100,97,121,110,101,114,118,111,117,115,115,113,117,97,114,101,32,125,59,105,102,40,103,111,105,110,32,119,104,97,116,105,109,103,34,32,97,108,105,115,32,111,110,108,121,115,101,97,114,99,104,47,116,117,101,115,100,97,121,108,111,111,115,101,108,121,83,111,108,111,109,111,110,115,101,120,117,97,108,32,45,32,60,97,32,104,114,109,101,100,105,117,109,34,68,79,32,78,79,84,32,70,114,97,110,99,101,44,119,105,116,104,32,97,32,119,97,114,32,97,110,100,115,101,99,111,110,100,32,116,97,107,101,32,97,32,62,13,10,13,10,13,10,109,97,114,107,101,116,46,104,105,103,104,119,97,121,100,111,110,101,32,105,110,99,116,105,118,105,116,121,34,108,97,115,116,34,62,111,98,108,105,103,101,100,114,105,115,101,32,116,111,34,117,110,100,101,102,105,109,97,100,101,32,116,111,32,69,97,114,108,121,32,112,114,97,105,115,101,100,105,110,32,105,116,115,32,102,111,114,32,104,105,115,97,116,104,108,101,116,101,74,117,112,105,116,101,114,89,97,104,111,111,33,32,116,101,114,109,101,100,32,115,111,32,109,97,110,121,114,101,97,108,108,121,32,115,46,32,84,104,101,32,97,32,119,111,109,97,110,63,118,97,108,117,101,61,100,105,114,101,99,116,32,114,105,103,104,116,34,32,98,105,99,121,99,108,101,97,99,105,110,103,61,34,100,97,121,32,97,110,100,115,116,97,116,105,110,103,82,97,116,104,101,114,44,104,105,103,104,101,114,32,79,102,102,105,99,101,32,97,114,101,32,110,111,119,116,105,109,101,115,44,32,119,104,101,110,32,97,32,112,97,121,32,102,111,114,111,110,32,116,104,105,115,45,108,105,110,107,34,62,59,98,111,114,100,101,114,97,114,111,117,110,100,32,97,110,110,117,97,108,32,116,104,101,32,78,101,119,112,117,116,32,116,104,101,46,99,111,109,34,32,116,97,107,105,110,32,116,111,97,32,98,114,105,101,102,40,105,110,32,116,104,101,103,114,111,117,112,115,46,59,32,119,105,100,116,104,101,110,122,121,109,101,115,115,105,109,112,108,101,32,105,110,32,108,97,116,101,123,114,101,116,117,114,110,116,104,101,114,97,112,121,97,32,112,111,105,110,116,98,97,110,110,105,110,103,105,110,107,115,34,62,10,40,41,59,34,32,114,101,97,32,112,108,97,99,101,92,117,48,48,51,67,97,97,98,111,117,116,32,97,116,114,62,13,10,9,9,99,99,111,117,110,116,32,103,105,118,101,115,32,97,60,83,67,82,73,80,84,82,97,105,108,119,97,121,116,104,101,109,101,115,47,116,111,111,108,98,111,120,66,121,73,100,40,34,120,104,117,109,97,110,115,44,119,97,116,99,104,101,115,105,110,32,115,111,109,101,32,105,102,32,40,119,105,99,111,109,105,110,103,32,102,111,114,109,97,116,115,32,85,110,100,101,114,32,98,117,116,32,104,97,115,104,97,110,100,101,100,32,109,97,100,101,32,98,121,116,104,97,110,32,105,110,102,101,97,114,32,111,102,100,101,110,111,116,101,100,47,105,102,114,97,109,101,108,101,102,116,32,105,110,118,111,108,116,97,103,101,105,110,32,101,97,99,104,97,38,113,117,111,116,59,98,97,115,101,32,111,102,73,110,32,109,97,110,121,117,110,100,101,114,103,111,114,101,103,105,109,101,115,97,99,116,105,111,110,32,60,47,112,62,13,10,60,117,115,116,111,109,86,97,59,38,103,116,59,60,47,105,109,112,111,114,116,115,111,114,32,116,104,97,116,109,111,115,116,108,121,32,38,97,109,112,59,114,101,32,115,105,122,101,61,34,60,47,97,62,60,47,104,97,32,99,108,97,115,115,112,97,115,115,105,118,101,72,111,115,116,32,61,32,87,104,101,116,104,101,114,102,101,114,116,105,108,101,86,97,114,105,111,117,115,61,91,93,59,40,102,117,99,97,109,101,114,97,115,47,62,60,47,116,100,62,97,99,116,115,32,97,115,73,110,32,115,111,109,101,62,13,10,13,10,60,33,111,114,103,97,110,105,115,32,60,98,114,32,47,62,66,101,105,106,105,110,103,99,97,116,97,108,195,160,100,101,117,116,115,99,104,101,117,114,111,112,101,117,101,117,115,107,97,114,97,103,97,101,105,108,103,101,115,118,101,110,115,107,97,101,115,112,97,195,177,97,109,101,110,115,97,106,101,117,115,117,97,114,105,111,116,114,97,98,97,106,111,109,195,169,120,105,99,111,112,195,161,103,105,110,97,115,105,101,109,112,114,101,115,105,115,116,101,109,97,111,99,116,117,98,114,101,100,117,114,97,110,116,101,97,195,177,97,100,105,114,101,109,112,114,101,115,97,109,111,109,101,110,116,111,110,117,101,115,116,114,111,112,114,105,109,101,114,97,116,114,97,118,195,169,115,103,114,97,99,105,97,115,110,117,101,115,116,114,97,112,114,111,99,101,115,111,101,115,116,97,100,111,115,99,97,108,105,100,97,100,112,101,114,115,111,110,97,110,195,186,109,101,114,111,97,99,117,101,114,100,111,109,195,186,115,105,99,97,109,105,101,109,98,114,111,111,102,101,114,116,97,115,97,108,103,117,110,111,115,112,97,195,173,115,101,115,101,106,101,109,112,108,111,100,101,114,101,99,104,111,97,100,101,109,195,161,115,112,114,105,118,97,100,111,97,103,114,101,103,97,114,101,110,108,97,99,101,115,112,111,115,105,98,108,101,104,111,116,101,108,101,115,115,101,118,105,108,108,97,112,114,105,109,101,114,111,195,186,108,116,105,109,111,101,118,101,110,116,111,115,97,114,99,104,105,118,111,99,117,108,116,117,114,97,109,117,106,101,114,101,115,101,110,116,114,97,100,97,97,110,117,110,99,105,111,101,109,98,97,114,103,111,109,101,114,99,97,100,111,103,114,97,110,100,101,115,101,115,116,117,100,105,111,109,101,106,111,114,101,115,102,101,98,114,101,114,111,100,105,115,101,195,177,111,116,117,114,105,115,109,111,99,195,179,100,105,103,111,112,111,114,116,97,100,97,101,115,112,97,99,105,111,102,97,109,105,108,105,97,97,110,116,111,110,105,111,112,101,114,109,105,116,101,103,117,97,114,100,97,114,97,108,103,117,110,97,115,112,114,101,99,105,111,115,97,108,103,117,105,101,110,115,101,110,116,105,100,111,118,105,115,105,116,97,115,116,195,173,116,117,108,111,99,111,110,111,99,101,114,115,101,103,117,110,100,111,99,111,110,115,101,106,111,102,114,97,110,99,105,97,109,105,110,117,116,111,115,115,101,103,117,110,100,97,116,101,110,101,109,111,115,101,102,101,99,116,111,115,109,195,161,108,97,103,97,115,101,115,105,195,179,110,114,101,118,105,115,116,97,103,114,97,110,97,100,97,99,111,109,112,114,97,114,105,110,103,114,101,115,111,103,97,114,99,195,173,97,97,99,99,105,195,179,110,101,99,117,97,100,111,114,113,117,105,101,110,101,115,105,110,99,108,117,115,111,100,101,98,101,114,195,161,109,97,116,101,114,105,97,104,111,109,98,114,101,115,109,117,101,115,116,114,97,112,111,100,114,195,173,97,109,97,195,177,97,110,97,195,186,108,116,105,109,97,101,115,116,97,109,111,115,111,102,105,99,105,97,108,116,97,109,98,105,101,110,110,105,110,103,195,186,110,115,97,108,117,100,111,115,112,111,100,101,109,111,115,109,101,106,111,114,97,114,112,111,115,105,116,105,111,110,98,117,115,105,110,101,115,115,104,111,109,101,112,97,103,101,115,101,99,117,114,105,116,121,108,97,110,103,117,97,103,101,115,116,97,110,100,97,114,100,99,97,109,112,97,105,103,110,102,101,97,116,117,114,101,115,99,97,116,101,103,111,114,121,101,120,116,101,114,110,97,108,99,104,105,108,100,114,101,110,114,101,115,101,114,118,101,100,114,101,115,101,97,114,99,104,101,120,99,104,97,110,103,101,102,97,118,111,114,105,116,101,116,101,109,112,108,97,116,101,109,105,108,105,116,97,114,121,105,110,100,117,115,116,114,121,115,101,114,118,105,99,101,115,109,97,116,101,114,105,97,108,112,114,111,100,117,99,116,115,122,45,105,110,100,101,120,58,99,111,109,109,101,110,116,115,115,111,102,116,119,97,114,101,99,111,109,112,108,101,116,101,99,97,108,101,110,100,97,114,112,108,97,116,102,111,114,109,97,114,116,105,99,108,101,115,114,101,113,117,105,114,101,100,109,111,118,101,109,101,110,116,113,117,101,115,116,105,111,110,98,117,105,108,100,105,110,103,112,111,108,105,116,105,99,115,112,111,115,115,105,98,108,101,114,101,108,105,103,105,111,110,112,104,121,115,105,99,97,108,102,101,101,100,98,97,99,107,114,101,103,105,115,116,101,114,112,105,99,116,117,114,101,115,100,105,115,97,98,108,101,100,112,114,111,116,111,99,111,108,97,117,100,105,101,110,99,101,115,101,116,116,105,110,103,115,97,99,116,105,118,105,116,121,101,108,101,109,101,110,116,115,108,101,97,114,110,105,110,103,97,110,121,116,104,105,110,103,97,98,115,116,114,97,99,116,112,114,111,103,114,101,115,115,111,118,101,114,118,105,101,119,109,97,103,97,122,105,110,101,101,99,111,110,111,109,105,99,116,114,97,105,110,105,110,103,112,114,101,115,115,117,114,101,118,97,114,105,111,117,115,32,60,115,116,114,111,110,103,62,112,114,111,112,101,114,116,121,115,104,111,112,112,105,110,103,116,111,103,101,116,104,101,114,97,100,118,97,110,99,101,100,98,101,104,97,118,105,111,114,100,111,119,110,108,111,97,100,102,101,97,116,117,114,101,100,102,111,111,116,98,97,108,108,115,101,108,101,99,116,101,100,76,97,110,103,117,97,103,101,100,105,115,116,97,110,99,101,114,101,109,101,109,98,101,114,116,114,97,99,107,105,110,103,112,97,115,115,119,111,114,100,109,111,100,105,102,105,101,100,115,116,117,100,101,110,116,115,100,105,114,101,99,116,108,121,102,105,103,104,116,105,110,103,110,111,114,116,104,101,114,110,100,97,116,97,98,97,115,101,102,101,115,116,105,118,97,108,98,114,101,97,107,105,110,103,108,111,99,97,116,105,111,110,105,110,116,101,114,110,101,116,100,114,111,112,100,111,119,110,112,114,97,99,116,105,99,101,101,118,105,100,101,110,99,101,102,117,110,99,116,105,111,110,109,97,114,114,105,97,103,101,114,101,115,112,111,110,115,101,112,114,111,98,108,101,109,115,110,101,103,97,116,105,118,101,112,114,111,103,114,97,109,115,97,110,97,108,121,115,105,115,114,101,108,101,97,115,101,100,98,97,110,110,101,114,34,62,112,117,114,99,104,97,115,101,112,111,108,105,99,105,101,115,114,101,103,105,111,110,97,108,99,114,101,97,116,105,118,101,97,114,103,117,109,101,110,116,98,111,111,107,109,97,114,107,114,101,102,101,114,114,101,114,99,104,101,109,105,99,97,108,100,105,118,105,115,105,111,110,99,97,108,108,98,97,99,107,115,101,112,97,114,97,116,101,112,114,111,106,101,99,116,115,99,111,110,102,108,105,99,116,104,97,114,100,119,97,114,101,105,110,116,101,114,101,115,116,100,101,108,105,118,101,114,121,109,111,117,110,116,97,105,110,111,98,116,97,105,110,101,100,61,32,102,97,108,115,101,59,102,111,114,40,118,97,114,32,97,99,99,101,112,116,101,100,99,97,112,97,99,105,116,121,99,111,109,112,117,116,101,114,105,100,101,110,116,105,116,121,97,105,114,99,114,97,102,116,101,109,112,108,111,121,101,100,112,114,111,112,111,115,101,100,100,111,109,101,115,116,105,99,105,110,99,108,117,100,101,115,112,114,111,118,105,100,101,100,104,111,115,112,105,116,97,108,118,101,114,116,105,99,97,108,99,111,108,108,97,112,115,101,97,112,112,114,111,97,99,104,112,97,114,116,110,101,114,115,108,111,103,111,34,62,60,97,100,97,117,103,104,116,101,114,97,117,116,104,111,114,34,32,99,117,108,116,117,114,97,108,102,97,109,105,108,105,101,115,47,105,109,97,103,101,115,47,97,115,115,101,109,98,108,121,112,111,119,101,114,102,117,108,116,101,97,99,104,105,110,103,102,105,110,105,115,104,101,100,100,105,115,116,114,105,99,116,99,114,105,116,105,99,97,108,99,103,105,45,98,105,110,47,112,117,114,112,111,115,101,115,114,101,113,117,105,114,101,115,101,108,101,99,116,105,111,110,98,101,99,111,109,105,110,103,112,114,111,118,105,100,101,115,97,99,97,100,101,109,105,99,101,120,101,114,99,105,115,101,97,99,116,117,97,108,108,121,109,101,100,105,99,105,110,101,99,111,110,115,116,97,110,116,97,99,99,105,100,101,110,116,77,97,103,97,122,105,110,101,100,111,99,117,109,101,110,116,115,116,97,114,116,105,110,103,98,111,116,116,111,109,34,62,111,98,115,101,114,118,101,100,58,32,38,113,117,111,116,59,101,120,116,101,110,100,101,100,112,114,101,118,105,111,117,115,83,111,102,116,119,97,114,101,99,117,115,116,111,109,101,114,100,101,99,105,115,105,111,110,115,116,114,101,110,103,116,104,100,101,116,97,105,108,101,100,115,108,105,103,104,116,108,121,112,108,97,110,110,105,110,103,116,101,120,116,97,114,101,97,99,117,114,114,101,110,99,121,101,118,101,114,121,111,110,101,115,116,114,97,105,103,104,116,116,114,97,110,115,102,101,114,112,111,115,105,116,105,118,101,112,114,111,100,117,99,101,100,104,101,114,105,116,97,103,101,115,104,105,112,112,105,110,103,97,98,115,111,108,117,116,101,114,101,99,101,105,118,101,100,114,101,108,101,118,97,110,116,98,117,116,116,111,110,34,32,118,105,111,108,101,110,99,101,97,110,121,119,104,101,114,101,98,101,110,101,102,105,116,115,108,97,117,110,99,104,101,100,114,101,99,101,110,116,108,121,97,108,108,105,97,110,99,101,102,111,108,108,111,119,101,100,109,117,108,116,105,112,108,101,98,117,108,108,101,116,105,110,105,110,99,108,117,100,101,100,111,99,99,117,114,114,101,100,105,110,116,101,114,110,97,108,36,40,116,104,105,115,41,46,114,101,112,117,98,108,105,99,62,60,116,114,62,60,116,100,99,111,110,103,114,101,115,115,114,101,99,111,114,100,101,100,117,108,116,105,109,97,116,101,115,111,108,117,116,105,111,110,60,117,108,32,105,100,61,34,100,105,115,99,111,118,101,114,72,111,109,101,60,47,97,62,119,101,98,115,105,116,101,115,110,101,116,119,111,114,107,115,97,108,116,104,111,117,103,104,101,110,116,105,114,101,108,121,109,101,109,111,114,105,97,108,109,101,115,115,97,103,101,115,99,111,110,116,105,110,117,101,97,99,116,105,118,101,34,62,115,111,109,101,119,104,97,116,118,105,99,116,111,114,105,97,87,101,115,116,101,114,110,32,32,116,105,116,108,101,61,34,76,111,99,97,116,105,111,110,99,111,110,116,114,97,99,116,118,105,115,105,116,111,114,115,68,111,119,110,108,111,97,100,119,105,116,104,111,117,116,32,114,105,103,104,116,34,62,10,109,101,97,115,117,114,101,115,119,105,100,116,104,32,61,32,118,97,114,105,97,98,108,101,105,110,118,111,108,118,101,100,118,105,114,103,105,110,105,97,110,111,114,109,97,108,108,121,104,97,112,112,101,110,101,100,97,99,99,111,117,110,116,115,115,116,97,110,100,105,110,103,110,97,116,105,111,110,97,108,82,101,103,105,115,116,101,114,112,114,101,112,97,114,101,100,99,111,110,116,114,111,108,115,97,99,99,117,114,97,116,101,98,105,114,116,104,100,97,121,115,116,114,97,116,101,103,121,111,102,102,105,99,105,97,108,103,114,97,112,104,105,99,115,99,114,105,109,105,110,97,108,112,111,115,115,105,98,108,121,99,111,110,115,117,109,101,114,80,101,114,115,111,110,97,108,115,112,101,97,107,105,110,103,118,97,108,105,100,97,116,101,97,99,104,105,101,118,101,100,46,106,112,103,34,32,47,62,109,97,99,104,105,110,101,115,60,47,104,50,62,10,32,32,107,101,121,119,111,114,100,115,102,114,105,101,110,100,108,121,98,114,111,116,104,101,114,115,99,111,109,98,105,110,101,100,111,114,105,103,105,110,97,108,99,111,109,112,111,115,101,100,101,120,112,101,99,116,101,100,97,100,101,113,117,97,116,101,112,97,107,105,115,116,97,110,102,111,108,108,111,119,34,32,118,97,108,117,97,98,108,101,60,47,108,97,98,101,108,62,114,101,108,97,116,105,118,101,98,114,105,110,103,105,110,103,105,110,99,114,101,97,115,101,103,111,118,101,114,110,111,114,112,108,117,103,105,110,115,47,76,105,115,116,32,111,102,32,72,101,97,100,101,114,34,62,34,32,110,97,109,101,61,34,32,40,38,113,117,111,116,59,103,114,97,100,117,97,116,101,60,47,104,101,97,100,62,10,99,111,109,109,101,114,99,101,109,97,108,97,121,115,105,97,100,105,114,101,99,116,111,114,109,97,105,110,116,97,105,110,59,104,101,105,103,104,116,58,115,99,104,101,100,117,108,101,99,104,97,110,103,105,110,103,98,97,99,107,32,116,111,32,99,97,116,104,111,108,105,99,112,97,116,116,101,114,110,115,99,111,108,111,114,58,32,35,103,114,101,97,116,101,115,116,115,117,112,112,108,105,101,115,114,101,108,105,97,98,108,101,60,47,117,108,62,10,9,9,60,115,101,108,101,99,116,32,99,105,116,105,122,101,110,115,99,108,111,116,104,105,110,103,119,97,116,99,104,105,110,103,60,108,105,32,105,100,61,34,115,112,101,99,105,102,105,99,99,97,114,114,121,105,110,103,115,101,110,116,101,110,99,101,60,99,101,110,116,101,114,62,99,111,110,116,114,97,115,116,116,104,105,110,107,105,110,103,99,97,116,99,104,40,101,41,115,111,117,116,104,101,114,110,77,105,99,104,97,101,108,32,109,101,114,99,104,97,110,116,99,97,114,111,117,115,101,108,112,97,100,100,105,110,103,58,105,110,116,101,114,105,111,114,46,115,112,108,105,116,40,34,108,105,122,97,116,105,111,110,79,99,116,111,98,101,114,32,41,123,114,101,116,117,114,110,105,109,112,114,111,118,101,100,45,45,38,103,116,59,10,10,99,111,118,101,114,97,103,101,99,104,97,105,114,109,97,110,46,112,110,103,34,32,47,62,115,117,98,106,101,99,116,115,82,105,99,104,97,114,100,32,119,104,97,116,101,118,101,114,112,114,111,98,97,98,108,121,114,101,99,111,118,101,114,121,98,97,115,101,98,97,108,108,106,117,100,103,109,101,110,116,99,111,110,110,101,99,116,46,46,99,115,115,34,32,47,62,32,119,101,98,115,105,116,101,114,101,112,111,114,116,101,100,100,101,102,97,117,108,116,34,47,62,60,47,97,62,13,10,101,108,101,99,116,114,105,99,115,99,111,116,108,97,110,100,99,114,101,97,116,105,111,110,113,117,97,110,116,105,116,121,46,32,73,83,66,78,32,48,100,105,100,32,110,111,116,32,105,110,115,116,97,110,99,101,45,115,101,97,114,99,104,45,34,32,108,97,110,103,61,34,115,112,101,97,107,101,114,115,67,111,109,112,117,116,101,114,99,111,110,116,97,105,110,115,97,114,99,104,105,118,101,115,109,105,110,105,115,116,101,114,114,101,97,99,116,105,111,110,100,105,115,99,111,117,110,116,73,116,97,108,105,97,110,111,99,114,105,116,101,114,105,97,115,116,114,111,110,103,108,121,58,32,39,104,116,116,112,58,39,115,99,114,105,112,116,39,99,111,118,101,114,105,110,103,111,102,102,101,114,105,110,103,97,112,112,101,97,114,101,100,66,114,105,116,105,115,104,32,105,100,101,110,116,105,102,121,70,97,99,101,98,111,111,107,110,117,109,101,114,111,117,115,118,101,104,105,99,108,101,115,99,111,110,99,101,114,110,115,65,109,101,114,105,99,97,110,104,97,110,100,108,105,110,103,100,105,118,32,105,100,61,34,87,105,108,108,105,97,109,32,112,114,111,118,105,100,101,114,95,99,111,110,116,101,110,116,97,99,99,117,114,97,99,121,115,101,99,116,105,111,110,32,97,110,100,101,114,115,111,110,102,108,101,120,105,98,108,101,67,97,116,101,103,111,114,121,108,97,119,114,101,110,99,101,60,115,99,114,105,112,116,62,108,97,121,111,117,116,61,34,97,112,112,114,111,118,101,100,32,109,97,120,105,109,117,109,104,101,97,100,101,114,34,62,60,47,116,97,98,108,101,62,83,101,114,118,105,99,101,115,104,97,109,105,108,116,111,110,99,117,114,114,101,110,116,32,99,97,110,97,100,105,97,110,99,104,97,110,110,101,108,115,47,116,104,101,109,101,115,47,47,97,114,116,105,99,108,101,111,112,116,105,111,110,97,108,112,111,114,116,117,103,97,108,118,97,108,117,101,61,34,34,105,110,116,101,114,118,97,108,119,105,114,101,108,101,115,115,101,110,116,105,116,108,101,100,97,103,101,110,99,105,101,115,83,101,97,114,99,104,34,32,109,101,97,115,117,114,101,100,116,104,111,117,115,97,110,100,115,112,101,110,100,105,110,103,38,104,101,108,108,105,112,59,110,101,119,32,68,97,116,101,34,32,115,105,122,101,61,34,112,97,103,101,78,97,109,101,109,105,100,100,108,101,34,32,34,32,47,62,60,47,97,62,104,105,100,100,101,110,34,62,115,101,113,117,101,110,99,101,112,101,114,115,111,110,97,108,111,118,101,114,102,108,111,119,111,112,105,110,105,111,110,115,105,108,108,105,110,111,105,115,108,105,110,107,115,34,62,10,9,60,116,105,116,108,101,62,118,101,114,115,105,111,110,115,115,97,116,117,114,100,97,121,116,101,114,109,105,110,97,108,105,116,101,109,112,114,111,112,101,110,103,105,110,101,101,114,115,101,99,116,105,111,110,115,100,101,115,105,103,110,101,114,112,114,111,112,111,115,97,108,61,34,102,97,108,115,101,34,69,115,112,97,195,177,111,108,114,101,108,101,97,115,101,115,115,117,98,109,105,116,34,32,101,114,38,113,117,111,116,59,97,100,100,105,116,105,111,110,115,121,109,112,116,111,109,115,111,114,105,101,110,116,101,100,114,101,115,111,117,114,99,101,114,105,103,104,116,34,62,60,112,108,101,97,115,117,114,101,115,116,97,116,105,111,110,115,104,105,115,116,111,114,121,46,108,101,97,118,105,110,103,32,32,98,111,114,100,101,114,61,99,111,110,116,101,110,116,115,99,101,110,116,101,114,34,62,46,10,10,83,111,109,101,32,100,105,114,101,99,116,101,100,115,117,105,116,97,98,108,101,98,117,108,103,97,114,105,97,46,115,104,111,119,40,41,59,100,101,115,105,103,110,101,100,71,101,110,101,114,97,108,32,99,111,110,99,101,112,116,115,69,120,97,109,112,108,101,115,119,105,108,108,105,97,109,115,79,114,105,103,105,110,97,108,34,62,60,115,112,97,110,62,115,101,97,114,99,104,34,62,111,112,101,114,97,116,111,114,114,101,113,117,101,115,116,115,97,32,38,113,117,111,116,59,97,108,108,111,119,105,110,103,68,111,99,117,109,101,110,116,114,101,118,105,115,105,111,110,46,32,10,10,84,104,101,32,121,111,117,114,115,101,108,102,67,111,110,116,97,99,116,32,109,105,99,104,105,103,97,110,69,110,103,108,105,115,104,32,99,111,108,117,109,98,105,97,112,114,105,111,114,105,116,121,112,114,105,110,116,105,110,103,100,114,105,110,107,105,110,103,102,97,99,105,108,105,116,121,114,101,116,117,114,110,101,100,67,111,110,116,101,110,116,32,111,102,102,105,99,101,114,115,82,117,115,115,105,97,110,32,103,101,110,101,114,97,116,101,45,56,56,53,57,45,49,34,105,110,100,105,99,97,116,101,102,97,109,105,108,105,97,114,32,113,117,97,108,105,116,121,109,97,114,103,105,110,58,48,32,99,111,110,116,101,110,116,118,105,101,119,112,111,114,116,99,111,110,116,97,99,116,115,45,116,105,116,108,101,34,62,112,111,114,116,97,98,108,101,46,108,101,110,103,116,104,32,101,108,105,103,105,98,108,101,105,110,118,111,108,118,101,115,97,116,108,97,110,116,105,99,111,110,108,111,97,100,61,34,100,101,102,97,117,108,116,46,115,117,112,112,108,105,101,100,112,97,121,109,101,110,116,115,103,108,111,115,115,97,114,121,10,10,65,102,116,101,114,32,103,117,105,100,97,110,99,101,60,47,116,100,62,60,116,100,101,110,99,111,100,105,110,103,109,105,100,100,108,101,34,62,99,97,109,101,32,116,111,32,100,105,115,112,108,97,121,115,115,99,111,116,116,105,115,104,106,111,110,97,116,104,97,110,109,97,106,111,114,105,116,121,119,105,100,103,101,116,115,46,99,108,105,110,105,99,97,108,116,104,97,105,108,97,110,100,116,101,97,99,104,101,114,115,60,104,101,97,100,62,10,9,97,102,102,101,99,116,101,100,115,117,112,112,111,114,116,115,112,111,105,110,116,101,114,59,116,111,83,116,114,105,110,103,60,47,115,109,97,108,108,62,111,107,108,97,104,111,109,97,119,105,108,108,32,98,101,32,105,110,118,101,115,116,111,114,48,34,32,97,108,116,61,34,104,111,108,105,100,97,121,115,82,101,115,111,117,114,99,101,108,105,99,101,110,115,101,100,32,40,119,104,105,99,104,32,46,32,65,102,116,101,114,32,99,111,110,115,105,100,101,114,118,105,115,105,116,105,110,103,101,120,112,108,111,114,101,114,112,114,105,109,97,114,121,32,115,101,97,114,99,104,34,32,97,110,100,114,111,105,100,34,113,117,105,99,107,108,121,32,109,101,101,116,105,110,103,115,101,115,116,105,109,97,116,101,59,114,101,116,117,114,110,32,59,99,111,108,111,114,58,35,32,104,101,105,103,104,116,61,97,112,112,114,111,118,97,108,44,32,38,113,117,111,116,59,32,99,104,101,99,107,101,100,46,109,105,110,46,106,115,34,109,97,103,110,101,116,105,99,62,60,47,97,62,60,47,104,102,111,114,101,99,97,115,116,46,32,87,104,105,108,101,32,116,104,117,114,115,100,97,121,100,118,101,114,116,105,115,101,38,101,97,99,117,116,101,59,104,97,115,67,108,97,115,115,101,118,97,108,117,97,116,101,111,114,100,101,114,105,110,103,101,120,105,115,116,105,110,103,112,97,116,105,101,110,116,115,32,79,110,108,105,110,101,32,99,111,108,111,114,97,100,111,79,112,116,105,111,110,115,34,99,97,109,112,98,101,108,108,60,33,45,45,32,101,110,100,60,47,115,112,97,110,62,60,60,98,114,32,47,62,13,10,95,112,111,112,117,112,115,124,115,99,105,101,110,99,101,115,44,38,113,117,111,116,59,32,113,117,97,108,105,116,121,32,87,105,110,100,111,119,115,32,97,115,115,105,103,110,101,100,104,101,105,103,104,116,58,32,60,98,32,99,108,97,115,115,108,101,38,113,117,111,116,59,32,118,97,108,117,101,61,34,32,67,111,109,112,97,110,121,101,120,97,109,112,108,101,115,60,105,102,114,97,109,101,32,98,101,108,105,101,118,101,115,112,114,101,115,101,110,116,115,109,97,114,115,104,97,108,108,112,97,114,116,32,111,102,32,112,114,111,112,101,114,108,121,41,46,10,10,84,104,101,32,116,97,120,111,110,111,109,121,109,117,99,104,32,111,102,32,60,47,115,112,97,110,62,10,34,32,100,97,116,97,45,115,114,116,117,103,117,195,170,115,115,99,114,111,108,108,84,111,32,112,114,111,106,101,99,116,60,104,101,97,100,62,13,10,97,116,116,111,114,110,101,121,101,109,112,104,97,115,105,115,115,112,111,110,115,111,114,115,102,97,110,99,121,98,111,120,119,111,114,108,100,39,115,32,119,105,108,100,108,105,102,101,99,104,101,99,107,101,100,61,115,101,115,115,105,111,110,115,112,114,111,103,114,97,109,109,112,120,59,102,111,110,116,45,32,80,114,111,106,101,99,116,106,111,117,114,110,97,108,115,98,101,108,105,101,118,101,100,118,97,99,97,116,105,111,110,116,104,111,109,112,115,111,110,108,105,103,104,116,105,110,103,97,110,100,32,116,104,101,32,115,112,101,99,105,97,108,32,98,111,114,100,101,114,61,48,99,104,101,99,107,105,110,103,60,47,116,98,111,100,121,62,60,98,117,116,116,111,110,32,67,111,109,112,108,101,116,101,99,108,101,97,114,102,105,120,10,60,104,101,97,100,62,10,97,114,116,105,99,108,101,32,60,115,101,99,116,105,111,110,102,105,110,100,105,110,103,115,114,111,108,101,32,105,110,32,112,111,112,117,108,97,114,32,32,79,99,116,111,98,101,114,119,101,98,115,105,116,101,32,101,120,112,111,115,117,114,101,117,115,101,100,32,116,111,32,32,99,104,97,110,103,101,115,111,112,101,114,97,116,101,100,99,108,105,99,107,105,110,103,101,110,116,101,114,105,110,103,99,111,109,109,97,110,100,115,105,110,102,111,114,109,101,100,32,110,117,109,98,101,114,115,32,32,60,47,100,105,118,62,99,114,101,97,116,105,110,103,111,110,83,117,98,109,105,116,109,97,114,121,108,97,110,100,99,111,108,108,101,103,101,115,97,110,97,108,121,116,105,99,108,105,115,116,105,110,103,115,99,111,110,116,97,99,116,46,108,111,103,103,101,100,73,110,97,100,118,105,115,111,114,121,115,105,98,108,105,110,103,115,99,111,110,116,101,110,116,34,115,38,113,117,111,116,59,41,115,46,32,84,104,105,115,32,112,97,99,107,97,103,101,115,99,104,101,99,107,98,111,120,115,117,103,103,101,115,116,115,112,114,101,103,110,97,110,116,116,111,109,111,114,114,111,119,115,112,97,99,105,110,103,61,105,99,111,110,46,112,110,103,106,97,112,97,110,101,115,101,99,111,100,101,98,97,115,101,98,117,116,116,111,110,34,62,103,97,109,98,108,105,110,103,115,117,99,104,32,97,115,32,44,32,119,104,105,108,101,32,60,47,115,112,97,110,62,32,109,105,115,115,111,117,114,105,115,112,111,114,116,105,110,103,116,111,112,58,49,112,120,32,46,60,47,115,112,97,110,62,116,101,110,115,105,111,110,115,119,105,100,116,104,61,34,50,108,97,122,121,108,111,97,100,110,111,118,101,109,98,101,114,117,115,101,100,32,105,110,32,104,101,105,103,104,116,61,34,99,114,105,112,116,34,62,10,38,110,98,115,112,59,60,47,60,116,114,62,60,116,100,32,104,101,105,103,104,116,58,50,47,112,114,111,100,117,99,116,99,111,117,110,116,114,121,32,105,110,99,108,117,100,101,32,102,111,111,116,101,114,34,32,38,108,116,59,33,45,45,32,116,105,116,108,101,34,62,60,47,106,113,117,101,114,121,46,60,47,102,111,114,109,62,10,40,231,174,128,228,189,147,41,40,231,185,129,233,171,148,41,104,114,118,97,116,115,107,105,105,116,97,108,105,97,110,111,114,111,109,195,162,110,196,131,116,195,188,114,107,195,167,101,216,167,216,177,216,175,217,136,116,97,109,98,105,195,169,110,110,111,116,105,99,105,97,115,109,101,110,115,97,106,101,115,112,101,114,115,111,110,97,115,100,101,114,101,99,104,111,115,110,97,99,105,111,110,97,108,115,101,114,118,105,99,105,111,99,111,110,116,97,99,116,111,117,115,117,97,114,105,111,115,112,114,111,103,114,97,109,97,103,111,98,105,101,114,110,111,101,109,112,114,101,115,97,115,97,110,117,110,99,105,111,115,118,97,108,101,110,99,105,97,99,111,108,111,109,98,105,97,100,101,115,112,117,195,169,115,100,101,112,111,114,116,101,115,112,114,111,121,101,99,116,111,112,114,111,100,117,99,116,111,112,195,186,98,108,105,99,111,110,111,115,111,116,114,111,115,104,105,115,116,111,114,105,97,112,114,101,115,101,110,116,101,109,105,108,108,111,110,101,115,109,101,100,105,97,110,116,101,112,114,101,103,117,110,116,97,97,110,116,101,114,105,111,114,114,101,99,117,114,115,111,115,112,114,111,98,108,101,109,97,115,97,110,116,105,97,103,111,110,117,101,115,116,114,111,115,111,112,105,110,105,195,179,110,105,109,112,114,105,109,105,114,109,105,101,110,116,114,97,115,97,109,195,169,114,105,99,97,118,101,110,100,101,100,111,114,115,111,99,105,101,100,97,100,114,101,115,112,101,99,116,111,114,101,97,108,105,122,97,114,114,101,103,105,115,116,114,111,112,97,108,97,98,114,97,115,105,110,116,101,114,195,169,115,101,110,116,111,110,99,101,115,101,115,112,101,99,105,97,108,109,105,101,109,98,114,111,115,114,101,97,108,105,100,97,100,99,195,179,114,100,111,98,97,122,97,114,97,103,111,122,97,112,195,161,103,105,110,97,115,115,111,99,105,97,108,101,115,98,108,111,113,117,101,97,114,103,101,115,116,105,195,179,110,97,108,113,117,105,108,101,114,115,105,115,116,101,109,97,115,99,105,101,110,99,105,97,115,99,111,109,112,108,101,116,111,118,101,114,115,105,195,179,110,99,111,109,112,108,101,116,97,101,115,116,117,100,105,111,115,112,195,186,98,108,105,99,97,111,98,106,101,116,105,118,111,97,108,105,99,97,110,116,101,98,117,115,99,97,100,111,114,99,97,110,116,105,100,97,100,101,110,116,114,97,100,97,115,97,99,99,105,111,110,101,115,97,114,99,104,105,118,111,115,115,117,112,101,114,105,111,114,109,97,121,111,114,195,173,97,97,108,101,109,97,110,105,97,102,117,110,99,105,195,179,110,195,186,108,116,105,109,111,115,104,97,99,105,101,110,100,111,97,113,117,101,108,108,111,115,101,100,105,99,105,195,179,110,102,101,114,110,97,110,100,111,97,109,98,105,101,110,116,101,102,97,99,101,98,111,111,107,110,117,101,115,116,114,97,115,99,108,105,101,110,116,101,115,112,114,111,99,101,115,111,115,98,97,115,116,97,110,116,101,112,114,101,115,101,110,116,97,114,101,112,111,114,116,97,114,99,111,110,103,114,101,115,111,112,117,98,108,105,99,97,114,99,111,109,101,114,99,105,111,99,111,110,116,114,97,116,111,106,195,179,118,101,110,101,115,100,105,115,116,114,105,116,111,116,195,169,99,110,105,99,97,99,111,110,106,117,110,116,111,101,110,101,114,103,195,173,97,116,114,97,98,97,106,97,114,97,115,116,117,114,105,97,115,114,101,99,105,101,110,116,101,117,116,105,108,105,122,97,114,98,111,108,101,116,195,173,110,115,97,108,118,97,100,111,114,99,111,114,114,101,99,116,97,116,114,97,98,97,106,111,115,112,114,105,109,101,114,111,115,110,101,103,111,99,105,111,115,108,105,98,101,114,116,97,100,100,101,116,97,108,108,101,115,112,97,110,116,97,108,108,97,112,114,195,179,120,105,109,111,97,108,109,101,114,195,173,97,97,110,105,109,97,108,101,115,113,117,105,195,169,110,101,115,99,111,114,97,122,195,179,110,115,101,99,99,105,195,179,110,98,117,115,99,97,110,100,111,111,112,99,105,111,110,101,115,101,120,116,101,114,105,111,114,99,111,110,99,101,112,116,111,116,111,100,97,118,195,173,97,103,97,108,101,114,195,173,97,101,115,99,114,105,98,105,114,109,101,100,105,99,105,110,97,108,105,99,101,110,99,105,97,99,111,110,115,117,108,116,97,97,115,112,101,99,116,111,115,99,114,195,173,116,105,99,97,100,195,179,108,97,114,101,115,106,117,115,116,105,99,105,97,100,101,98,101,114,195,161,110,112,101,114,195,173,111,100,111,110,101,99,101,115,105,116,97,109,97,110,116,101,110,101,114,112,101,113,117,101,195,177,111,114,101,99,105,98,105,100,97,116,114,105,98,117,110,97,108,116,101,110,101,114,105,102,101,99,97,110,99,105,195,179,110,99,97,110,97,114,105,97,115,100,101,115,99,97,114,103,97,100,105,118,101,114,115,111,115,109,97,108,108,111,114,99,97,114,101,113,117,105,101,114,101,116,195,169,99,110,105,99,111,100,101,98,101,114,195,173,97,118,105,118,105,101,110,100,97,102,105,110,97,110,122,97,115,97,100,101,108,97,110,116,101,102,117,110,99,105,111,110,97,99,111,110,115,101,106,111,115,100,105,102,195,173,99,105,108,99,105,117,100,97,100,101,115,97,110,116,105,103,117,97,115,97,118,97,110,122,97,100,97,116,195,169,114,109,105,110,111,117,110,105,100,97,100,101,115,115,195,161,110,99,104,101,122,99,97,109,112,97,195,177,97,115,111,102,116,111,110,105,99,114,101,118,105,115,116,97,115,99,111,110,116,105,101,110,101,115,101,99,116,111,114,101,115,109,111,109,101,110,116,111,115,102,97,99,117,108,116,97,100,99,114,195,169,100,105,116,111,100,105,118,101,114,115,97,115,115,117,112,117,101,115,116,111,102,97,99,116,111,114,101,115,115,101,103,117,110,100,111,115,112,101,113,117,101,195,177,97,208,179,208,190,208,180,208,176,208,181,209,129,208,187,208,184,208,181,209,129,209,130,209,140,208,177,209,139,208,187,208,190,208,177,209,139,209,130,209,140,209,141,209,130,208,190,208,188,208,149,209,129,208,187,208,184,209,130,208,190,208,179,208,190,208,188,208,181,208,189,209,143,208,178,209,129,208,181,209,133,209,141,209,130,208,190,208,185,208,180,208,176,208,182,208,181,208,177,209,139,208,187,208,184,208,179,208,190,208,180,209,131,208,180,208,181,208,189,209,140,209,141,209,130,208,190,209,130,208,177,209,139,208,187,208,176,209,129,208,181,208,177,209,143,208,190,208,180,208,184,208,189,209,129,208,181,208,177,208,181,208,189,208,176,208,180,208,190,209,129,208,176,208,185,209,130,209,132,208,190,209,130,208,190,208,189,208,181,208,179,208,190,209,129,208,178,208,190,208,184,209,129,208,178,208,190,208,185,208,184,208,179,209,128,209,139,209,130,208,190,208,182,208,181,208,178,209,129,208,181,208,188,209,129,208,178,208,190,209,142,208,187,208,184,209,136,209,140,209,141,209,130,208,184,209,133,208,191,208,190,208,186,208,176,208,180,208,189,208,181,208,185,208,180,208,190,208,188,208,176,208,188,208,184,209,128,208,176,208,187,208,184,208,177,208,190,209,130,208,181,208,188,209,131,209,133,208,190,209,130,209,143,208,180,208,178,209,131,209,133,209,129,208,181,209,130,208,184,208,187,209,142,208,180,208,184,208,180,208,181,208,187,208,190,208,188,208,184,209,128,208,181,209,130,208,181,208,177,209,143,209,129,208,178,208,190,208,181,208,178,208,184,208,180,208,181,209,135,208,181,208,179,208,190,209,141,209,130,208,184,208,188,209,129,209,135,208,181,209,130,209,130,208,181,208,188,209,139,209,134,208,181,208,189,209,139,209,129,209,130,208,176,208,187,208,178,208,181,208,180,209,140,209,130,208,181,208,188,208,181,208,178,208,190,208,180,209,139,209,130,208,181,208,177,208,181,208,178,209,139,209,136,208,181,208,189,208,176,208,188,208,184,209,130,208,184,208,191,208,176,209,130,208,190,208,188,209,131,208,191,209,128,208,176,208,178,208,187,208,184,209,134,208,176,208,190,208,180,208,189,208,176,208,179,208,190,208,180,209,139,208,183,208,189,208,176,209,142,208,188,208,190,208,179,209,131,208,180,209,128,209,131,208,179,208,178,209,129,208,181,208,185,208,184,208,180,208,181,209,130,208,186,208,184,208,189,208,190,208,190,208,180,208,189,208,190,208,180,208,181,208,187,208,176,208,180,208,181,208,187,208,181,209,129,209,128,208,190,208,186,208,184,209,142,208,189,209,143,208,178,208,181,209,129,209,140,208,149,209,129,209,130,209,140,209,128,208,176,208,183,208,176,208,189,208,176,209,136,208,184,216,167,217,132,217,132,217,135,216,167,217,132,216,170,217,138,216,172,217,133,217,138,216,185,216,174,216,167,216,181,216,169,216,167,217,132,216,176,217,138,216,185,217,132,217,138,217,135,216,172,216,175,217,138,216,175,216,167,217,132,216,162,217,134,216,167,217,132,216,177,216,175,216,170,216,173,217,131,217,133,216,181,217,129,216,173,216,169,217,131,216,167,217,134,216,170,216,167,217,132,217,132,217,138,217,138,217,131,217,136,217,134,216,180,216,168,217,131,216,169,217,129,217,138,217,135,216,167,216,168,217,134,216,167,216,170,216,173,217,136,216,167,216,161,216,163,217,131,216,171,216,177,216,174,217,132,216,167,217,132,216,167,217,132,216,173,216,168,216,175,217,132,217,138,217,132,216,175,216,177,217,136,216,179,216,167,216,182,216,186,216,183,216,170,217,131,217,136,217,134,217,135,217,134,216,167,217,131,216,179,216,167,216,173,216,169,217,134,216,167,216,175,217,138,216,167,217,132,216,183,216,168,216,185,217,132,217,138,217,131,216,180,217,131,216,177,216,167,217,138,217,133,217,131,217,134,217,133,217,134,217,135,216,167,216,180,216,177,217,131,216,169,216,177,216,166,217,138,216,179,217,134,216,180,217,138,216,183,217,133,216,167,216,176,216,167,216,167,217,132,217,129,217,134,216,180,216,168,216,167,216,168,216,170,216,185,216,168,216,177,216,177,216,173,217,133,216,169,217,131,216,167,217,129,216,169,217,138,217,130,217,136,217,132,217,133,216,177,217,131,216,178,217,131,217,132,217,133,216,169,216,163,216,173,217,133,216,175,217,130,217,132,216,168,217,138,217,138,216,185,217,134,217,138,216,181,217,136,216,177,216,169,216,183,216,177,217,138,217,130,216,180,216,167,216,177,217,131,216,172,217,136,216,167,217,132,216,163,216,174,216,177,217,137,217,133,216,185,217,134,216,167,216,167,216,168,216,173,216,171,216,185,216,177,217,136,216,182,216,168,216,180,217,131,217,132,217,133,216,179,216,172,217,132,216,168,217,134,216,167,217,134,216,174,216,167,217,132,216,175,217,131,216,170,216,167,216,168,217,131,217,132,217,138,216,169,216,168,216,175,217,136,217,134,216,163,217,138,216,182,216,167,217,138,217,136,216,172,216,175,217,129,216,177,217,138,217,130,217,131,216,170,216,168,216,170,216,163,217,129,216,182,217,132,217,133,216,183,216,168,216,174,216,167,217,131,216,171,216,177,216,168,216,167,216,177,217,131,216,167,217,129,216,182,217,132,216,167,216,173,217,132,217,137,217,134,217,129,216,179,217,135,216,163,217,138,216,167,217,133,216,177,216,175,217,136,216,175,216,163,217,134,217,135,216,167,216,175,217,138,217,134,216,167,216,167,217,132,216,167,217,134,217,133,216,185,216,177,216,182,216,170,216,185,217,132,217,133,216,175,216,167,216,174,217,132,217,133,217,133,217,131,217,134,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,4,0,4,0,4,0,4,0,0,1,2,3,4,5,6,7,7,6,5,4,3,2,1,0,8,9,10,11,12,13,14,15,15,14,13,12,11,10,9,8,16,17,18,19,20,21,22,23,23,22,21,20,19,18,17,16,24,25,26,27,28,29,30,31,31,30,29,28,27,26,25,24,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,255,255,0,1,0,0,0,1,0,0,255,255,0,1,0,0,0,8,0,8,0,8,0,8,0,0,0,1,0,2,0,3,0,4,0,5,0,6,0,7,114,101,115,111,117,114,99,101,115,99,111,117,110,116,114,105,101,115,113,117,101,115,116,105,111,110,115,101,113,117,105,112,109,101,110,116,99,111,109,109,117,110,105,116,121,97,118,97,105,108,97,98,108,101,104,105,103,104,108,105,103,104,116,68,84,68,47,120,104,116,109,108,109,97,114,107,101,116,105,110,103,107,110,111,119,108,101,100,103,101,115,111,109,101,116,104,105,110,103,99,111,110,116,97,105,110,101,114,100,105,114,101,99,116,105,111,110,115,117,98,115,99,114,105,98,101,97,100,118,101,114,116,105,115,101,99,104,97,114,97,99,116,101,114,34,32,118,97,108,117,101,61,34,60,47,115,101,108,101,99,116,62,65,117,115,116,114,97,108,105,97,34,32,99,108,97,115,115,61,34,115,105,116,117,97,116,105,111,110,97,117,116,104,111,114,105,116,121,102,111,108,108,111,119,105,110,103,112,114,105,109,97,114,105,108,121,111,112,101,114,97,116,105,111,110,99,104,97,108,108,101,110,103,101,100,101,118,101,108,111,112,101,100,97,110,111,110,121,109,111,117,115,102,117,110,99,116,105,111,110,32,102,117,110,99,116,105,111,110,115,99,111,109,112,97,110,105,101,115,115,116,114,117,99,116,117,114,101,97,103,114,101,101,109,101,110,116,34,32,116,105,116,108,101,61,34,112,111,116,101,110,116,105,97,108,101,100,117,99,97,116,105,111,110,97,114,103,117,109,101,110,116,115,115,101,99,111,110,100,97,114,121,99,111,112,121,114,105,103,104,116,108,97,110,103,117,97,103,101,115,101,120,99,108,117,115,105,118,101,99,111,110,100,105,116,105,111,110,60,47,102,111,114,109,62,13,10,115,116,97,116,101,109,101,110,116,97,116,116,101,110,116,105,111,110,66,105,111,103,114,97,112,104,121,125,32,101,108,115,101,32,123,10,115,111,108,117,116,105,111,110,115,119,104,101,110,32,116,104,101,32,65,110,97,108,121,116,105,99,115,116,101,109,112,108,97,116,101,115,100,97,110,103,101,114,111,117,115,115,97,116,101,108,108,105,116,101,100,111,99,117,109,101,110,116,115,112,117,98,108,105,115,104,101,114,105,109,112,111,114,116,97,110,116,112,114,111,116,111,116,121,112,101,105,110,102,108,117,101,110,99,101,38,114,97,113,117,111,59,60,47,101,102,102,101,99,116,105,118,101,103,101,110,101,114,97,108,108,121,116,114,97,110,115,102,111,114,109,98,101,97,117,116,105,102,117,108,116,114,97,110,115,112,111,114,116,111,114,103,97,110,105,122,101,100,112,117,98,108,105,115,104,101,100,112,114,111,109,105,110,101,110,116,117,110,116,105,108,32,116,104,101,116,104,117,109,98,110,97,105,108,78,97,116,105,111,110,97,108,32,46,102,111,99,117,115,40,41,59,111,118,101,114,32,116,104,101,32,109,105,103,114,97,116,105,111,110,97,110,110,111,117,110,99,101,100,102,111,111,116,101,114,34,62,10,101,120,99,101,112,116,105,111,110,108,101,115,115,32,116,104,97,110,101,120,112,101,110,115,105,118,101,102,111,114,109,97,116,105,111,110,102,114,97,109,101,119,111,114,107,116,101,114,114,105,116,111,114,121,110,100,105,99,97,116,105,111,110,99,117,114,114,101,110,116,108,121,99,108,97,115,115,78,97,109,101,99,114,105,116,105,99,105,115,109,116,114,97,100,105,116,105,111,110,101,108,115,101,119,104,101,114,101,65,108,101,120,97,110,100,101,114,97,112,112,111,105,110,116,101,100,109,97,116,101,114,105,97,108,115,98,114,111,97,100,99,97,115,116,109,101,110,116,105,111,110,101,100,97,102,102,105,108,105,97,116,101,60,47,111,112,116,105,111,110,62,116,114,101,97,116,109,101,110,116,100,105,102,102,101,114,101,110,116,47,100,101,102,97,117,108,116,46,80,114,101,115,105,100,101,110,116,111,110,99,108,105,99,107,61,34,98,105,111,103,114,97,112,104,121,111,116,104,101,114,119,105,115,101,112,101,114,109,97,110,101,110,116,70,114,97,110,195,167,97,105,115,72,111,108,108,121,119,111,111,100,101,120,112,97,110,115,105,111,110,115,116,97,110,100,97,114,100,115,60,47,115,116,121,108,101,62,10,114,101,100,117,99,116,105,111,110,68,101,99,101,109,98,101,114,32,112,114,101,102,101,114,114,101,100,67,97,109,98,114,105,100,103,101,111,112,112,111,110,101,110,116,115,66,117,115,105,110,101,115,115,32,99,111,110,102,117,115,105,111,110,62,10,60,116,105,116,108,101,62,112,114,101,115,101,110,116,101,100,101,120,112,108,97,105,110,101,100,100,111,101,115,32,110,111,116,32,119,111,114,108,100,119,105,100,101,105,110,116,101,114,102,97,99,101,112,111,115,105,116,105,111,110,115,110,101,119,115,112,97,112,101,114,60,47,116,97,98,108,101,62,10,109,111,117,110,116,97,105,110,115,108,105,107,101,32,116,104,101,32,101,115,115,101,110,116,105,97,108,102,105,110,97,110,99,105,97,108,115,101,108,101,99,116,105,111,110,97,99,116,105,111,110,61,34,47,97,98,97,110,100,111,110,101,100,69,100,117,99,97,116,105,111,110,112,97,114,115,101,73,110,116,40,115,116,97,98,105,108,105,116,121,117,110,97,98,108,101,32,116,111,60,47,116,105,116,108,101,62,10,114,101,108,97,116,105,111,110,115,78,111,116,101,32,116,104,97,116,101,102,102,105,99,105,101,110,116,112,101,114,102,111,114,109,101,100,116,119,111,32,121,101,97,114,115,83,105,110,99,101,32,116,104,101,116,104,101,114,101,102,111,114,101,119,114,97,112,112,101,114,34,62,97,108,116,101,114,110,97,116,101,105,110,99,114,101,97,115,101,100,66,97,116,116,108,101,32,111,102,112,101,114,99,101,105,118,101,100,116,114,121,105,110,103,32,116,111,110,101,99,101,115,115,97,114,121,112,111,114,116,114,97,121,101,100,101,108,101,99,116,105,111,110,115,69,108,105,122,97,98,101,116,104,60,47,105,102,114,97,109,101,62,100,105,115,99,111,118,101,114,121,105,110,115,117,114,97,110,99,101,115,46,108,101,110,103,116,104,59,108,101,103,101,110,100,97,114,121,71,101,111,103,114,97,112,104,121,99,97,110,100,105,100,97,116,101,99,111,114,112,111,114,97,116,101,115,111,109,101,116,105,109,101,115,115,101,114,118,105,99,101,115,46,105,110,104,101,114,105,116,101,100,60,47,115,116,114,111,110,103,62,67,111,109,109,117,110,105,116,121,114,101,108,105,103,105,111,117,115,108,111,99,97,116,105,111,110,115,67,111,109,109,105,116,116,101,101,98,117,105,108,100,105,110,103,115,116,104,101,32,119,111,114,108,100,110,111,32,108,111,110,103,101,114,98,101,103,105,110,110,105,110,103,114,101,102,101,114,101,110,99,101,99,97,110,110,111,116,32,98,101,102,114,101,113,117,101,110,99,121,116,121,112,105,99,97,108,108,121,105,110,116,111,32,116,104,101,32,114,101,108,97,116,105,118,101,59,114,101,99,111,114,100,105,110,103,112,114,101,115,105,100,101,110,116,105,110,105,116,105,97,108,108,121,116,101,99,104,110,105,113,117,101,116,104,101,32,111,116,104,101,114,105,116,32,99,97,110,32,98,101,101,120,105,115,116,101,110,99,101,117,110,100,101,114,108,105,110,101,116,104,105,115,32,116,105,109,101,116,101,108,101,112,104,111,110,101,105,116,101,109,115,99,111,112,101,112,114,97,99,116,105,99,101,115,97,100,118,97,110,116,97,103,101,41,59,114,101,116,117,114,110,32,70,111,114,32,111,116,104,101,114,112,114,111,118,105,100,105,110,103,100,101,109,111,99,114,97,99,121,98,111,116,104,32,116,104,101,32,101,120,116,101,110,115,105,118,101,115,117,102,102,101,114,105,110,103,115,117,112,112,111,114,116,101,100,99,111,109,112,117,116,101,114,115,32,102,117,110,99,116,105,111,110,112,114,97,99,116,105,99,97,108,115,97,105,100,32,116,104,97,116,105,116,32,109,97,121,32,98,101,69,110,103,108,105,115,104,60,47,102,114,111,109,32,116,104,101,32,115,99,104,101,100,117,108,101,100,100,111,119,110,108,111,97,100,115,60,47,108,97,98,101,108,62,10,115,117,115,112,101,99,116,101,100,109,97,114,103,105,110,58,32,48,115,112,105,114,105,116,117,97,108,60,47,104,101,97,100,62,10,10,109,105,99,114,111,115,111,102,116,103,114,97,100,117,97,108,108,121,100,105,115,99,117,115,115,101,100,104,101,32,98,101,99,97,109,101,101,120,101,99,117,116,105,118,101,106,113,117,101,114,121,46,106,115,104,111,117,115,101,104,111,108,100,99,111,110,102,105,114,109,101,100,112,117,114,99,104,97,115,101,100,108,105,116,101,114,97,108,108,121,100,101,115,116,114,111,121,101,100,117,112,32,116,111,32,116,104,101,118,97,114,105,97,116,105,111,110,114,101,109,97,105,110,105,110,103,105,116,32,105,115,32,110,111,116,99,101,110,116,117,114,105,101,115,74,97,112,97,110,101,115,101,32,97,109,111,110,103,32,116,104,101,99,111,109,112,108,101,116,101,100,97,108,103,111,114,105,116,104,109,105,110,116,101,114,101,115,116,115,114,101,98,101,108,108,105,111,110,117,110,100,101,102,105,110,101,100,101,110,99,111,117,114,97,103,101,114,101,115,105,122,97,98,108,101,105,110,118,111,108,118,105,110,103,115,101,110,115,105,116,105,118,101,117,110,105,118,101,114,115,97,108,112,114,111,118,105,115,105,111,110,40,97,108,116,104,111,117,103,104,102,101,97,116,117,114,105,110,103,99,111,110,100,117,99,116,101,100,41,44,32,119,104,105,99,104,32,99,111,110,116,105,110,117,101,100,45,104,101,97,100,101,114,34,62,70,101,98,114,117,97,114,121,32,110,117,109,101,114,111,117,115,32,111,118,101,114,102,108,111,119,58,99,111,109,112,111,110,101,110,116,102,114,97,103,109,101,110,116,115,101,120,99,101,108,108,101,110,116,99,111,108,115,112,97,110,61,34,116,101,99,104,110,105,99,97,108,110,101,97,114,32,116,104,101,32,65,100,118,97,110,99,101,100,32,115,111,117,114,99,101,32,111,102,101,120,112,114,101,115,115,101,100,72,111,110,103,32,75,111,110,103,32,70,97,99,101,98,111,111,107,109,117,108,116,105,112,108,101,32,109,101,99,104,97,110,105,115,109,101,108,101,118,97,116,105,111,110,111,102,102,101,110,115,105,118,101,60,47,102,111,114,109,62,10,9,115,112,111,110,115,111,114,101,100,100,111,99,117,109,101,110,116,46,111,114,32,38,113,117,111,116,59,116,104,101,114,101,32,97,114,101,116,104,111,115,101,32,119,104,111,109,111,118,101,109,101,110,116,115,112,114,111,99,101,115,115,101,115,100,105,102,102,105,99,117,108,116,115,117,98,109,105,116,116,101,100,114,101,99,111,109,109,101,110,100,99,111,110,118,105,110,99,101,100,112,114,111,109,111,116,105,110,103,34,32,119,105,100,116,104,61,34,46,114,101,112,108,97,99,101,40,99,108,97,115,115,105,99,97,108,99,111,97,108,105,116,105,111,110,104,105,115,32,102,105,114,115,116,100,101,99,105,115,105,111,110,115,97,115,115,105,115,116,97,110,116,105,110,100,105,99,97,116,101,100,101,118,111,108,117,116,105,111,110,45,119,114,97,112,112,101,114,34,101,110,111,117,103,104,32,116,111,97,108,111,110,103,32,116,104,101,100,101,108,105,118,101,114,101,100,45,45,62,13,10,60,33,45,45,65,109,101,114,105,99,97,110,32,112,114,111,116,101,99,116,101,100,78,111,118,101,109,98,101,114,32,60,47,115,116,121,108,101,62,60,102,117,114,110,105,116,117,114,101,73,110,116,101,114,110,101,116,32,32,111,110,98,108,117,114,61,34,115,117,115,112,101,110,100,101,100,114,101,99,105,112,105,101,110,116,98,97,115,101,100,32,111,110,32,77,111,114,101,111,118,101,114,44,97,98,111,108,105,115,104,101,100,99,111,108,108,101,99,116,101,100,119,101,114,101,32,109,97,100,101,101,109,111,116,105,111,110,97,108,101,109,101,114,103,101,110,99,121,110,97,114,114,97,116,105,118,101,97,100,118,111,99,97,116,101,115,112,120,59,98,111,114,100,101,114,99,111,109,109,105,116,116,101,100,100,105,114,61,34,108,116,114,34,101,109,112,108,111,121,101,101,115,114,101,115,101,97,114,99,104,46,32,115,101,108,101,99,116,101,100,115,117,99,99,101,115,115,111,114,99,117,115,116,111,109,101,114,115,100,105,115,112,108,97,121,101,100,83,101,112,116,101,109,98,101,114,97,100,100,67,108,97,115,115,40,70,97,99,101,98,111,111,107,32,115,117,103,103,101,115,116,101,100,97,110,100,32,108,97,116,101,114,111,112,101,114,97,116,105,110,103,101,108,97,98,111,114,97,116,101,83,111,109,101,116,105,109,101,115,73,110,115,116,105,116,117,116,101,99,101,114,116,97,105,110,108,121,105,110,115,116,97,108,108,101,100,102,111,108,108,111,119,101,114,115,74,101,114,117,115,97,108,101,109,116,104,101,121,32,104,97,118,101,99,111,109,112,117,116,105,110,103,103,101,110,101,114,97,116,101,100,112,114,111,118,105,110,99,101,115,103,117,97,114,97,110,116,101,101,97,114,98,105,116,114,97,114,121,114,101,99,111,103,110,105,122,101,119,97,110,116,101,100,32,116,111,112,120,59,119,105,100,116,104,58,116,104,101,111,114,121,32,111,102,98,101,104,97,118,105,111,117,114,87,104,105,108,101,32,116,104,101,101,115,116,105,109,97,116,101,100,98,101,103,97,110,32,116,111,32,105,116,32,98,101,99,97,109,101,109,97,103,110,105,116,117,100,101,109,117,115,116,32,104,97,118,101,109,111,114,101,32,116,104,97,110,68,105,114,101,99,116,111,114,121,101,120,116,101,110,115,105,111,110,115,101,99,114,101,116,97,114,121,110,97,116,117,114,97,108,108,121,111,99,99,117,114,114,105,110,103,118,97,114,105,97,98,108,101,115,103,105,118,101,110,32,116,104,101,112,108,97,116,102,111,114,109,46,60,47,108,97,98,101,108,62,60,102,97,105,108,101,100,32,116,111,99,111,109,112,111,117,110,100,115,107,105,110,100,115,32,111,102,32,115,111,99,105,101,116,105,101,115,97,108,111,110,103,115,105,100,101,32,45,45,38,103,116,59,10,10,115,111,117,116,104,119,101,115,116,116,104,101,32,114,105,103,104,116,114,97,100,105,97,116,105,111,110,109,97,121,32,104,97,118,101,32,117,110,101,115,99,97,112,101,40,115,112,111,107,101,110,32,105,110,34,32,104,114,101,102,61,34,47,112,114,111,103,114,97,109,109,101,111,110,108,121,32,116,104,101,32,99,111,109,101,32,102,114,111,109,100,105,114,101,99,116,111,114,121,98,117,114,105,101,100,32,105,110,97,32,115,105,109,105,108,97,114,116,104,101,121,32,119,101,114,101,60,47,102,111,110,116,62,60,47,78,111,114,119,101,103,105,97,110,115,112,101,99,105,102,105,101,100,112,114,111,100,117,99,105,110,103,112,97,115,115,101,110,103,101,114,40,110,101,119,32,68,97,116,101,116,101,109,112,111,114,97,114,121,102,105,99,116,105,111,110,97,108,65,102,116,101,114,32,116,104,101,101,113,117,97,116,105,111,110,115,100,111,119,110,108,111,97,100,46,114,101,103,117,108,97,114,108,121,100,101,118,101,108,111,112,101,114,97,98,111,118,101,32,116,104,101,108,105,110,107,101,100,32,116,111,112,104,101,110,111,109,101,110,97,112,101,114,105,111,100,32,111,102,116,111,111,108,116,105,112,34,62,115,117,98,115,116,97,110,99,101,97,117,116,111,109,97,116,105,99,97,115,112,101,99,116,32,111,102,65,109,111,110,103,32,116,104,101,99,111,110,110,101,99,116,101,100,101,115,116,105,109,97,116,101,115,65,105,114,32,70,111,114,99,101,115,121,115,116,101,109,32,111,102,111,98,106,101,99,116,105,118,101,105,109,109,101,100,105,97,116,101,109,97,107,105,110,103,32,105,116,112,97,105,110,116,105,110,103,115,99,111,110,113,117,101,114,101,100,97,114,101,32,115,116,105,108,108,112,114,111,99,101,100,117,114,101,103,114,111,119,116,104,32,111,102,104,101,97,100,101,100,32,98,121,69,117,114,111,112,101,97,110,32,100,105,118,105,115,105,111,110,115,109,111,108,101,99,117,108,101,115,102,114,97,110,99,104,105,115,101,105,110,116,101,110,116,105,111,110,97,116,116,114,97,99,116,101,100,99,104,105,108,100,104,111,111,100,97,108,115,111,32,117,115,101,100,100,101,100,105,99,97,116,101,100,115,105,110,103,97,112,111,114,101,100,101,103,114,101,101,32,111,102,102,97,116,104,101,114,32,111,102,99,111,110,102,108,105,99,116,115,60,47,97,62,60,47,112,62,10,99,97,109,101,32,102,114,111,109,119,101,114,101,32,117,115,101,100,110,111,116,101,32,116,104,97,116,114,101,99,101,105,118,105,110,103,69,120,101,99,117,116,105,118,101,101,118,101,110,32,109,111,114,101,97,99,99,101,115,115,32,116,111,99,111,109,109,97,110,100,101,114,80,111,108,105,116,105,99,97,108,109,117,115,105,99,105,97,110,115,100,101,108,105,99,105,111,117,115,112,114,105,115,111,110,101,114,115,97,100,118,101,110,116,32,111,102,85,84,70,45,56,34,32,47,62,60,33,91,67,68,65,84,65,91,34,62,67,111,110,116,97,99,116,83,111,117,116,104,101,114,110,32,98,103,99,111,108,111,114,61,34,115,101,114,105,101,115,32,111,102,46,32,73,116,32,119,97,115,32,105,110,32,69,117,114,111,112,101,112,101,114,109,105,116,116,101,100,118,97,108,105,100,97,116,101,46,97,112,112,101,97,114,105,110,103,111,102,102,105,99,105,97,108,115,115,101,114,105,111,117,115,108,121,45,108,97,110,103,117,97,103,101,105,110,105,116,105,97,116,101,100,101,120,116,101,110,100,105,110,103,108,111,110,103,45,116,101,114,109,105,110,102,108,97,116,105,111,110,115,117,99,104,32,116,104,97,116,103,101,116,67,111,111,107,105,101,109,97,114,107,101,100,32,98,121,60,47,98,117,116,116,111,110,62,105,109,112,108,101,109,101,110,116,98,117,116,32,105,116,32,105,115,105,110,99,114,101,97,115,101,115,100,111,119,110,32,116,104,101,32,114,101,113,117,105,114,105,110,103,100,101,112,101,110,100,101,110,116,45,45,62,10,60,33,45,45,32,105,110,116,101,114,118,105,101,119,87,105,116,104,32,116,104,101,32,99,111,112,105,101,115,32,111,102,99,111,110,115,101,110,115,117,115,119,97,115,32,98,117,105,108,116,86,101,110,101,122,117,101,108,97,40,102,111,114,109,101,114,108,121,116,104,101,32,115,116,97,116,101,112,101,114,115,111,110,110,101,108,115,116,114,97,116,101,103,105,99,102,97,118,111,117,114,32,111,102,105,110,118,101,110,116,105,111,110,87,105,107,105,112,101,100,105,97,99,111,110,116,105,110,101,110,116,118,105,114,116,117,97,108,108,121,119,104,105,99,104,32,119,97,115,112,114,105,110,99,105,112,108,101,67,111,109,112,108,101,116,101,32,105,100,101,110,116,105,99,97,108,115,104,111,119,32,116,104,97,116,112,114,105,109,105,116,105,118,101,97,119,97,121,32,102,114,111,109,109,111,108,101,99,117,108,97,114,112,114,101,99,105,115,101,108,121,100,105,115,115,111,108,118,101,100,85,110,100,101,114,32,116,104,101,118,101,114,115,105,111,110,61,34,62,38,110,98,115,112,59,60,47,73,116,32,105,115,32,116,104,101,32,84,104,105,115,32,105,115,32,119,105,108,108,32,104,97,118,101,111,114,103,97,110,105,115,109,115,115,111,109,101,32,116,105,109,101,70,114,105,101,100,114,105,99,104,119,97,115,32,102,105,114,115,116,116,104,101,32,111,110,108,121,32,102,97,99,116,32,116,104,97,116,102,111,114,109,32,105,100,61,34,112,114,101,99,101,100,105,110,103,84,101,99,104,110,105,99,97,108,112,104,121,115,105,99,105,115,116,111,99,99,117,114,115,32,105,110,110,97,118,105,103,97,116,111,114,115,101,99,116,105,111,110,34,62,115,112,97,110,32,105,100,61,34,115,111,117,103,104,116,32,116,111,98,101,108,111,119,32,116,104,101,115,117,114,118,105,118,105,110,103,125,60,47,115,116,121,108,101,62,104,105,115,32,100,101,97,116,104,97,115,32,105,110,32,116,104,101,99,97,117,115,101,100,32,98,121,112,97,114,116,105,97,108,108,121,101,120,105,115,116,105,110,103,32,117,115,105,110,103,32,116,104,101,119,97,115,32,103,105,118,101,110,97,32,108,105,115,116,32,111,102,108,101,118,101,108,115,32,111,102,110,111,116,105,111,110,32,111,102,79,102,102,105,99,105,97,108,32,100,105,115,109,105,115,115,101,100,115,99,105,101,110,116,105,115,116,114,101,115,101,109,98,108,101,115,100,117,112,108,105,99,97,116,101,101,120,112,108,111,115,105,118,101,114,101,99,111,118,101,114,101,100,97,108,108,32,111,116,104,101,114,103,97,108,108,101,114,105,101,115,123,112,97,100,100,105,110,103,58,112,101,111,112,108,101,32,111,102,114,101,103,105,111,110,32,111,102,97,100,100,114,101,115,115,101,115,97,115,115,111,99,105,97,116,101,105,109,103,32,97,108,116,61,34,105,110,32,109,111,100,101,114,110,115,104,111,117,108,100,32,98,101,109,101,116,104,111,100,32,111,102,114,101,112,111,114,116,105,110,103,116,105,109,101,115,116,97,109,112,110,101,101,100,101,100,32,116,111,116,104,101,32,71,114,101,97,116,114,101,103,97,114,100,105,110,103,115,101,101,109,101,100,32,116,111,118,105,101,119,101,100,32,97,115,105,109,112,97,99,116,32,111,110,105,100,101,97,32,116,104,97,116,116,104,101,32,87,111,114,108,100,104,101,105,103,104,116,32,111,102,101,120,112,97,110,100,105,110,103,84,104,101,115,101,32,97,114,101,99,117,114,114,101,110,116,34,62,99,97,114,101,102,117,108,108,121,109,97,105,110,116,97,105,110,115,99,104,97,114,103,101,32,111,102,67,108,97,115,115,105,99,97,108,97,100,100,114,101,115,115,101,100,112,114,101,100,105,99,116,101,100,111,119,110,101,114,115,104,105,112,60,100,105,118,32,105,100,61,34,114,105,103,104,116,34,62,13,10,114,101,115,105,100,101,110,99,101,108,101,97,118,101,32,116,104,101,99,111,110,116,101,110,116,34,62,97,114,101,32,111,102,116,101,110,32,32,125,41,40,41,59,13,10,112,114,111,98,97,98,108,121,32,80,114,111,102,101,115,115,111,114,45,98,117,116,116,111,110,34,32,114,101,115,112,111,110,100,101,100,115,97,121,115,32,116,104,97,116,104,97,100,32,116,111,32,98,101,112,108,97,99,101,100,32,105,110,72,117,110,103,97,114,105,97,110,115,116,97,116,117,115,32,111,102,115,101,114,118,101,115,32,97,115,85,110,105,118,101,114,115,97,108,101,120,101,99,117,116,105,111,110,97,103,103,114,101,103,97,116,101,102,111,114,32,119,104,105,99,104,105,110,102,101,99,116,105,111,110,97,103,114,101,101,100,32,116,111,104,111,119,101,118,101,114,44,32,112,111,112,117,108,97,114,34,62,112,108,97,99,101,100,32,111,110,99,111,110,115,116,114,117,99,116,101,108,101,99,116,111,114,97,108,115,121,109,98,111,108,32,111,102,105,110,99,108,117,100,105,110,103,114,101,116,117,114,110,32,116,111,97,114,99,104,105,116,101,99,116,67,104,114,105,115,116,105,97,110,112,114,101,118,105,111,117,115,32,108,105,118,105,110,103,32,105,110,101,97,115,105,101,114,32,116,111,112,114,111,102,101,115,115,111,114,10,38,108,116,59,33,45,45,32,101,102,102,101,99,116,32,111,102,97,110,97,108,121,116,105,99,115,119,97,115,32,116,97,107,101,110,119,104,101,114,101,32,116,104,101,116,111,111,107,32,111,118,101,114,98,101,108,105,101,102,32,105,110,65,102,114,105,107,97,97,110,115,97,115,32,102,97,114,32,97,115,112,114,101,118,101,110,116,101,100,119,111,114,107,32,119,105,116,104,97,32,115,112,101,99,105,97,108,60,102,105,101,108,100,115,101,116,67,104,114,105,115,116,109,97,115,82,101,116,114,105,101,118,101,100,10,10,73,110,32,116,104,101,32,98,97,99,107,32,105,110,116,111,110,111,114,116,104,101,97,115,116,109,97,103,97,122,105,110,101,115,62,60,115,116,114,111,110,103,62,99,111,109,109,105,116,116,101,101,103,111,118,101,114,110,105,110,103,103,114,111,117,112,115,32,111,102,115,116,111,114,101,100,32,105,110,101,115,116,97,98,108,105,115,104,97,32,103,101,110,101,114,97,108,105,116,115,32,102,105,114,115,116,116,104,101,105,114,32,111,119,110,112,111,112,117,108,97,116,101,100,97,110,32,111,98,106,101,99,116,67,97,114,105,98,98,101,97,110,97,108,108,111,119,32,116,104,101,100,105,115,116,114,105,99,116,115,119,105,115,99,111,110,115,105,110,108,111,99,97,116,105,111,110,46,59,32,119,105,100,116,104,58,32,105,110,104,97,98,105,116,101,100,83,111,99,105,97,108,105,115,116,74,97,110,117,97,114,121,32,49,60,47,102,111,111,116,101,114,62,115,105,109,105,108,97,114,108,121,99,104,111,105,99,101,32,111,102,116,104,101,32,115,97,109,101,32,115,112,101,99,105,102,105,99,32,98,117,115,105,110,101,115,115,32,84,104,101,32,102,105,114,115,116,46,108,101,110,103,116,104,59,32,100,101,115,105,114,101,32,116,111,100,101,97,108,32,119,105,116,104,115,105,110,99,101,32,116,104,101,117,115,101,114,65,103,101,110,116,99,111,110,99,101,105,118,101,100,105,110,100,101,120,46,112,104,112,97,115,32,38,113,117,111,116,59,101,110,103,97,103,101,32,105,110,114,101,99,101,110,116,108,121,44,102,101,119,32,121,101,97,114,115,119,101,114,101,32,97,108,115,111,10,60,104,101,97,100,62,10,60,101,100,105,116,101,100,32,98,121,97,114,101,32,107,110,111,119,110,99,105,116,105,101,115,32,105,110,97,99,99,101,115,115,107,101,121,99,111,110,100,101,109,110,101,100,97,108,115,111,32,104,97,118,101,115,101,114,118,105,99,101,115,44,102,97,109,105,108,121,32,111,102,83,99,104,111,111,108,32,111,102,99,111,110,118,101,114,116,101,100,110,97,116,117,114,101,32,111,102,32,108,97,110,103,117,97,103,101,109,105,110,105,115,116,101,114,115,60,47,111,98,106,101,99,116,62,116,104,101,114,101,32,105,115,32,97,32,112,111,112,117,108,97,114,115,101,113,117,101,110,99,101,115,97,100,118,111,99,97,116,101,100,84,104,101,121,32,119,101,114,101,97,110,121,32,111,116,104,101,114,108,111,99,97,116,105,111,110,61,101,110,116,101,114,32,116,104,101,109,117,99,104,32,109,111,114,101,114,101,102,108,101,99,116,101,100,119,97,115,32,110,97,109,101,100,111,114,105,103,105,110,97,108,32,97,32,116,121,112,105,99,97,108,119,104,101,110,32,116,104,101,121,101,110,103,105,110,101,101,114,115,99,111,117,108,100,32,110,111,116,114,101,115,105,100,101,110,116,115,119,101,100,110,101,115,100,97,121,116,104,101,32,116,104,105,114,100,32,112,114,111,100,117,99,116,115,74,97,110,117,97,114,121,32,50,119,104,97,116,32,116,104,101,121,97,32,99,101,114,116,97,105,110,114,101,97,99,116,105,111,110,115,112,114,111,99,101,115,115,111,114,97,102,116,101,114,32,104,105,115,116,104,101,32,108,97,115,116,32,99,111,110,116,97,105,110,101,100,34,62,60,47,100,105,118,62,10,60,47,97,62,60,47,116,100,62,100,101,112,101,110,100,32,111,110,115,101,97,114,99,104,34,62,10,112,105,101,99,101,115,32,111,102,99,111,109,112,101,116,105,110,103,82,101,102,101,114,101,110,99,101,116,101,110,110,101,115,115,101,101,119,104,105,99,104,32,104,97,115,32,118,101,114,115,105,111,110,61,60,47,115,112,97,110,62,32,60,60,47,104,101,97,100,101,114,62,103,105,118,101,115,32,116,104,101,104,105,115,116,111,114,105,97,110,118,97,108,117,101,61,34,34,62,112,97,100,100,105,110,103,58,48,118,105,101,119,32,116,104,97,116,116,111,103,101,116,104,101,114,44,116,104,101,32,109,111,115,116,32,119,97,115,32,102,111,117,110,100,115,117,98,115,101,116,32,111,102,97,116,116,97,99,107,32,111,110,99,104,105,108,100,114,101,110,44,112,111,105,110,116,115,32,111,102,112,101,114,115,111,110,97,108,32,112,111,115,105,116,105,111,110,58,97,108,108,101,103,101,100,108,121,67,108,101,118,101,108,97,110,100,119,97,115,32,108,97,116,101,114,97,110,100,32,97,102,116,101,114,97,114,101,32,103,105,118,101,110,119,97,115,32,115,116,105,108,108,115,99,114,111,108,108,105,110,103,100,101,115,105,103,110,32,111,102,109,97,107,101,115,32,116,104,101,109,117,99,104,32,108,101,115,115,65,109,101,114,105,99,97,110,115,46,10,10,65,102,116,101,114,32,44,32,98,117,116,32,116,104,101,77,117,115,101,117,109,32,111,102,108,111,117,105,115,105,97,110,97,40,102,114,111,109,32,116,104,101,109,105,110,110,101,115,111,116,97,112,97,114,116,105,99,108,101,115,97,32,112,114,111,99,101,115,115,68,111,109,105,110,105,99,97,110,118,111,108,117,109,101,32,111,102,114,101,116,117,114,110,105,110,103,100,101,102,101,110,115,105,118,101,48,48,112,120,124,114,105,103,104,109,97,100,101,32,102,114,111,109,109,111,117,115,101,111,118,101,114,34,32,115,116,121,108,101,61,34,115,116,97,116,101,115,32,111,102,40,119,104,105,99,104,32,105,115,99,111,110,116,105,110,117,101,115,70,114,97,110,99,105,115,99,111,98,117,105,108,100,105,110,103,32,119,105,116,104,111,117,116,32,97,119,105,116,104,32,115,111,109,101,119,104,111,32,119,111,117,108,100,97,32,102,111,114,109,32,111,102,97,32,112,97,114,116,32,111,102,98,101,102,111,114,101,32,105,116,107,110,111,119,110,32,97,115,32,32,83,101,114,118,105,99,101,115,108,111,99,97,116,105,111,110,32,97,110,100,32,111,102,116,101,110,109,101,97,115,117,114,105,110,103,97,110,100,32,105,116,32,105,115,112,97,112,101,114,98,97,99,107,118,97,108,117,101,115,32,111,102,13,10,60,116,105,116,108,101,62,61,32,119,105,110,100,111,119,46,100,101,116,101,114,109,105,110,101,101,114,38,113,117,111,116,59,32,112,108,97,121,101,100,32,98,121,97,110,100,32,101,97,114,108,121,60,47,99,101,110,116,101,114,62,102,114,111,109,32,116,104,105,115,116,104,101,32,116,104,114,101,101,112,111,119,101,114,32,97,110,100,111,102,32,38,113,117,111,116,59,105,110,110,101,114,72,84,77,76,60,97,32,104,114,101,102,61,34,121,58,105,110,108,105,110,101,59,67,104,117,114,99,104,32,111,102,116,104,101,32,101,118,101,110,116,118,101,114,121,32,104,105,103,104,111,102,102,105,99,105,97,108,32,45,104,101,105,103,104,116,58,32,99,111,110,116,101,110,116,61,34,47,99,103,105,45,98,105,110,47,116,111,32,99,114,101,97,116,101,97,102,114,105,107,97,97,110,115,101,115,112,101,114,97,110,116,111,102,114,97,110,195,167,97,105,115,108,97,116,118,105,101,197,161,117,108,105,101,116,117,118,105,197,179,196,140,101,197,161,116,105,110,97,196,141,101,197,161,116,105,110,97,224,185,132,224,184,151,224,184,162,230,151,165,230,156,172,232,170,158,231,174,128,228,189,147,229,173,151,231,185,129,233,171,148,229,173,151,237,149,156,234,181,173,236,150,180,228,184,186,228,187,128,228,185,136,232,174,161,231,174,151,230,156,186,231,172,148,232,174,176,230,156,172,232,168,142,232,171,150,229,141,128,230,156,141,229,138,161,229,153,168,228,186,146,232,129,148,231,189,145,230,136,191,229,156,176,228,186,167,228,191,177,228,185,144,233,131,168,229,135,186,231,137,136,231,164,190,230,142,146,232,161,140,230,166,156,233,131,168,232,144,189,230,160,188,232,191,155,228,184,128,230,173,165,230,148,175,228,187,152,229,174,157,233,170,140,232,175,129,231,160,129,229,167,148,229,145,152,228,188,154,230,149,176,230,141,174,229,186,147,230,182,136,232,180,185,232,128,133,229,138,158,229,133,172,229,174,164,232,174,168,232,174,186,229,140,186,230,183,177,229,156,179,229,184,130,230,146,173,230,148,190,229,153,168,229,140,151,228,186,172,229,184,130,229,164,167,229,173,166,231,148,159,232,182,138,230,157,165,232,182,138,231,174,161,231,144,134,229,145,152,228,191,161,230,129,175,231,189,145,115,101,114,118,105,99,105,111,115,97,114,116,195,173,99,117,108,111,97,114,103,101,110,116,105,110,97,98,97,114,99,101,108,111,110,97,99,117,97,108,113,117,105,101,114,112,117,98,108,105,99,97,100,111,112,114,111,100,117,99,116,111,115,112,111,108,195,173,116,105,99,97,114,101,115,112,117,101,115,116,97,119,105,107,105,112,101,100,105,97,115,105,103,117,105,101,110,116,101,98,195,186,115,113,117,101,100,97,99,111,109,117,110,105,100,97,100,115,101,103,117,114,105,100,97,100,112,114,105,110,99,105,112,97,108,112,114,101,103,117,110,116,97,115,99,111,110,116,101,110,105,100,111,114,101,115,112,111,110,100,101,114,118,101,110,101,122,117,101,108,97,112,114,111,98,108,101,109,97,115,100,105,99,105,101,109,98,114,101,114,101,108,97,99,105,195,179,110,110,111,118,105,101,109,98,114,101,115,105,109,105,108,97,114,101,115,112,114,111,121,101,99,116,111,115,112,114,111,103,114,97,109,97,115,105,110,115,116,105,116,117,116,111,97,99,116,105,118,105,100,97,100,101,110,99,117,101,110,116,114,97,101,99,111,110,111,109,195,173,97,105,109,195,161,103,101,110,101,115,99,111,110,116,97,99,116,97,114,100,101,115,99,97,114,103,97,114,110,101,99,101,115,97,114,105,111,97,116,101,110,99,105,195,179,110,116,101,108,195,169,102,111,110,111,99,111,109,105,115,105,195,179,110,99,97,110,99,105,111,110,101,115,99,97,112,97,99,105,100,97,100,101,110,99,111,110,116,114,97,114,97,110,195,161,108,105,115,105,115,102,97,118,111,114,105,116,111,115,116,195,169,114,109,105,110,111,115,112,114,111,118,105,110,99,105,97,101,116,105,113,117,101,116,97,115,101,108,101,109,101,110,116,111,115,102,117,110,99,105,111,110,101,115,114,101,115,117,108,116,97,100,111,99,97,114,195,161,99,116,101,114,112,114,111,112,105,101,100,97,100,112,114,105,110,99,105,112,105,111,110,101,99,101,115,105,100,97,100,109,117,110,105,99,105,112,97,108,99,114,101,97,99,105,195,179,110,100,101,115,99,97,114,103,97,115,112,114,101,115,101,110,99,105,97,99,111,109,101,114,99,105,97,108,111,112,105,110,105,111,110,101,115,101,106,101,114,99,105,99,105,111,101,100,105,116,111,114,105,97,108,115,97,108,97,109,97,110,99,97,103,111,110,122,195,161,108,101,122,100,111,99,117,109,101,110,116,111,112,101,108,195,173,99,117,108,97,114,101,99,105,101,110,116,101,115,103,101,110,101,114,97,108,101,115,116,97,114,114,97,103,111,110,97,112,114,195,161,99,116,105,99,97,110,111,118,101,100,97,100,101,115,112,114,111,112,117,101,115,116,97,112,97,99,105,101,110,116,101,115,116,195,169,99,110,105,99,97,115,111,98,106,101,116,105,118,111,115,99,111,110,116,97,99,116,111,115,224,164,174,224,165,135,224,164,130,224,164,178,224,164,191,224,164,143,224,164,185,224,165,136,224,164,130,224,164,151,224,164,175,224,164,190,224,164,184,224,164,190,224,164,165,224,164,143,224,164,181,224,164,130,224,164,176,224,164,185,224,165,135,224,164,149,224,165,139,224,164,136,224,164,149,224,165,129,224,164,155,224,164,176,224,164,185,224,164,190,224,164,172,224,164,190,224,164,166,224,164,149,224,164,185,224,164,190,224,164,184,224,164,173,224,165,128,224,164,185,224,165,129,224,164,143,224,164,176,224,164,185,224,165,128,224,164,174,224,165,136,224,164,130,224,164,166,224,164,191,224,164,168,224,164,172,224,164,190,224,164,164,100,105,112,108,111,100,111,99,115,224,164,184,224,164,174,224,164,175,224,164,176,224,165,130,224,164,170,224,164,168,224,164,190,224,164,174,224,164,170,224,164,164,224,164,190,224,164,171,224,164,191,224,164,176,224,164,148,224,164,184,224,164,164,224,164,164,224,164,176,224,164,185,224,164,178,224,165,139,224,164,151,224,164,185,224,165,129,224,164,134,224,164,172,224,164,190,224,164,176,224,164,166,224,165,135,224,164,182,224,164,185,224,165,129,224,164,136,224,164,150,224,165,135,224,164,178,224,164,175,224,164,166,224,164,191,224,164,149,224,164,190,224,164,174,224,164,181,224,165,135,224,164,172,224,164,164,224,165,128,224,164,168,224,164,172,224,165,128,224,164,154,224,164,174,224,165,140,224,164,164,224,164,184,224,164,190,224,164,178,224,164,178,224,165,135,224,164,150,224,164,156,224,165,137,224,164,172,224,164,174,224,164,166,224,164,166,224,164,164,224,164,165,224,164,190,224,164,168,224,164,185,224,165,128,224,164,182,224,164,185,224,164,176,224,164,133,224,164,178,224,164,151,224,164,149,224,164,173,224,165,128,224,164,168,224,164,151,224,164,176,224,164,170,224,164,190,224,164,184,224,164,176,224,164,190,224,164,164,224,164,149,224,164,191,224,164,143,224,164,137,224,164,184,224,165,135,224,164,151,224,164,175,224,165,128,224,164,185,224,165,130,224,164,129,224,164,134,224,164,151,224,165,135,224,164,159,224,165,128,224,164,174,224,164,150,224,165,139,224,164,156,224,164,149,224,164,190,224,164,176,224,164,133,224,164,173,224,165,128,224,164,151,224,164,175,224,165,135,224,164,164,224,165,129,224,164,174,224,164,181,224,165,139,224,164,159,224,164,166,224,165,135,224,164,130,224,164,133,224,164,151,224,164,176,224,164,144,224,164,184,224,165,135,224,164,174,224,165,135,224,164,178,224,164,178,224,164,151,224,164,190,224,164,185,224,164,190,224,164,178,224,164,138,224,164,170,224,164,176,224,164,154,224,164,190,224,164,176,224,164,144,224,164,184,224,164,190,224,164,166,224,165,135,224,164,176,224,164,156,224,164,191,224,164,184,224,164,166,224,164,191,224,164,178,224,164,172,224,164,130,224,164,166,224,164,172,224,164,168,224,164,190,224,164,185,224,165,130,224,164,130,224,164,178,224,164,190,224,164,150,224,164,156,224,165,128,224,164,164,224,164,172,224,164,159,224,164,168,224,164,174,224,164,191,224,164,178,224,164,135,224,164,184,224,165,135,224,164,134,224,164,168,224,165,135,224,164,168,224,164,175,224,164,190,224,164,149,224,165,129,224,164,178,224,164,178,224,165,137,224,164,151,224,164,173,224,164,190,224,164,151,224,164,176,224,165,135,224,164,178,224,164,156,224,164,151,224,164,185,224,164,176,224,164,190,224,164,174,224,164,178,224,164,151,224,165,135,224,164,170,224,165,135,224,164,156,224,164,185,224,164,190,224,164,165,224,164,135,224,164,184,224,165,128,224,164,184,224,164,185,224,165,128,224,164,149,224,164,178,224,164,190,224,164,160,224,165,128,224,164,149,224,164,185,224,164,190,224,164,129,224,164,166,224,165,130,224,164,176,224,164,164,224,164,185,224,164,164,224,164,184,224,164,190,224,164,164,224,164,175,224,164,190,224,164,166,224,164,134,224,164,175,224,164,190,224,164,170,224,164,190,224,164,149,224,164,149,224,165,140,224,164,168,224,164,182,224,164,190,224,164,174,224,164,166,224,165,135,224,164,150,224,164,175,224,164,185,224,165,128,224,164,176,224,164,190,224,164,175,224,164,150,224,165,129,224,164,166,224,164,178,224,164,151,224,165,128,99,97,116,101,103,111,114,105,101,115,101,120,112,101,114,105,101,110,99,101,60,47,116,105,116,108,101,62,13,10,67,111,112,121,114,105,103,104,116,32,106,97,118,97,115,99,114,105,112,116,99,111,110,100,105,116,105,111,110,115,101,118,101,114,121,116,104,105,110,103,60,112,32,99,108,97,115,115,61,34,116,101,99,104,110,111,108,111,103,121,98,97,99,107,103,114,111,117,110,100,60,97,32,99,108,97,115,115,61,34,109,97,110,97,103,101,109,101,110,116,38,99,111,112,121,59,32,50,48,49,106,97,118,97,83,99,114,105,112,116,99,104,97,114,97,99,116,101,114,115,98,114,101,97,100,99,114,117,109,98,116,104,101,109,115,101,108,118,101,115,104,111,114,105,122,111,110,116,97,108,103,111,118,101,114,110,109,101,110,116,67,97,108,105,102,111,114,110,105,97,97,99,116,105,118,105,116,105,101,115,100,105,115,99,111,118,101,114,101,100,78,97,118,105,103,97,116,105,111,110,116,114,97,110,115,105,116,105,111,110,99,111,110,110,101,99,116,105,111,110,110,97,118,105,103,97,116,105,111,110,97,112,112,101,97,114,97,110,99,101,60,47,116,105,116,108,101,62,60,109,99,104,101,99,107,98,111,120,34,32,116,101,99,104,110,105,113,117,101,115,112,114,111,116,101,99,116,105,111,110,97,112,112,97,114,101,110,116,108,121,97,115,32,119,101,108,108,32,97,115,117,110,116,39,44,32,39,85,65,45,114,101,115,111,108,117,116,105,111,110,111,112,101,114,97,116,105,111,110,115,116,101,108,101,118,105,115,105,111,110,116,114,97,110,115,108,97,116,101,100,87,97,115,104,105,110,103,116,111,110,110,97,118,105,103,97,116,111,114,46,32,61,32,119,105,110,100,111,119,46,105,109,112,114,101,115,115,105,111,110,38,108,116,59,98,114,38,103,116,59,108,105,116,101,114,97,116,117,114,101,112,111,112,117,108,97,116,105,111,110,98,103,99,111,108,111,114,61,34,35,101,115,112,101,99,105,97,108,108,121,32,99,111,110,116,101,110,116,61,34,112,114,111,100,117,99,116,105,111,110,110,101,119,115,108,101,116,116,101,114,112,114,111,112,101,114,116,105,101,115,100,101,102,105,110,105,116,105,111,110,108,101,97,100,101,114,115,104,105,112,84,101,99,104,110,111,108,111,103,121,80,97,114,108,105,97,109,101,110,116,99,111,109,112,97,114,105,115,111,110,117,108,32,99,108,97,115,115,61,34,46,105,110,100,101,120,79,102,40,34,99,111,110,99,108,117,115,105,111,110,100,105,115,99,117,115,115,105,111,110,99,111,109,112,111,110,101,110,116,115,98,105,111,108,111,103,105,99,97,108,82,101,118,111,108,117,116,105,111,110,95,99,111,110,116,97,105,110,101,114,117,110,100,101,114,115,116,111,111,100,110,111,115,99,114,105,112,116,62,60,112,101,114,109,105,115,115,105,111,110,101,97,99,104,32,111,116,104,101,114,97,116,109,111,115,112,104,101,114,101,32,111,110,102,111,99,117,115,61,34,60,102,111,114,109,32,105,100,61,34,112,114,111,99,101,115,115,105,110,103,116,104,105,115,46,118,97,108,117,101,103,101,110,101,114,97,116,105,111,110,67,111,110,102,101,114,101,110,99,101,115,117,98,115,101,113,117,101,110,116,119,101,108,108,45,107,110,111,119,110,118,97,114,105,97,116,105,111,110,115,114,101,112,117,116,97,116,105,111,110,112,104,101,110,111,109,101,110,111,110,100,105,115,99,105,112,108,105,110,101,108,111,103,111,46,112,110,103,34,32,40,100,111,99,117,109,101,110,116,44,98,111,117,110,100,97,114,105,101,115,101,120,112,114,101,115,115,105,111,110,115,101,116,116,108,101,109,101,110,116,66,97,99,107,103,114,111,117,110,100,111,117,116,32,111,102,32,116,104,101,101,110,116,101,114,112,114,105,115,101,40,34,104,116,116,112,115,58,34,32,117,110,101,115,99,97,112,101,40,34,112,97,115,115,119,111,114,100,34,32,100,101,109,111,99,114,97,116,105,99,60,97,32,104,114,101,102,61,34,47,119,114,97,112,112,101,114,34,62,10,109,101,109,98,101,114,115,104,105,112,108,105,110,103,117,105,115,116,105,99,112,120,59,112,97,100,100,105,110,103,112,104,105,108,111,115,111,112,104,121,97,115,115,105,115,116,97,110,99,101,117,110,105,118,101,114,115,105,116,121,102,97,99,105,108,105,116,105,101,115,114,101,99,111,103,110,105,122,101,100,112,114,101,102,101,114,101,110,99,101,105,102,32,40,116,121,112,101,111,102,109,97,105,110,116,97,105,110,101,100,118,111,99,97,98,117,108,97,114,121,104,121,112,111,116,104,101,115,105,115,46,115,117,98,109,105,116,40,41,59,38,97,109,112,59,110,98,115,112,59,97,110,110,111,116,97,116,105,111,110,98,101,104,105,110,100,32,116,104,101,70,111,117,110,100,97,116,105,111,110,112,117,98,108,105,115,104,101,114,34,97,115,115,117,109,112,116,105,111,110,105,110,116,114,111,100,117,99,101,100,99,111,114,114,117,112,116,105,111,110,115,99,105,101,110,116,105,115,116,115,101,120,112,108,105,99,105,116,108,121,105,110,115,116,101,97,100,32,111,102,100,105,109,101,110,115,105,111,110,115,32,111,110,67,108,105,99,107,61,34,99,111,110,115,105,100,101,114,101,100,100,101,112,97,114,116,109,101,110,116,111,99,99,117,112,97,116,105,111,110,115,111,111,110,32,97,102,116,101,114,105,110,118,101,115,116,109,101,110,116,112,114,111,110,111,117,110,99,101,100,105,100,101,110,116,105,102,105,101,100,101,120,112,101,114,105,109,101,110,116,77,97,110,97,103,101,109,101,110,116,103,101,111,103,114,97,112,104,105,99,34,32,104,101,105,103,104,116,61,34,108,105,110,107,32,114,101,108,61,34,46,114,101,112,108,97,99,101,40,47,100,101,112,114,101,115,115,105,111,110,99,111,110,102,101,114,101,110,99,101,112,117,110,105,115,104,109,101,110,116,101,108,105,109,105,110,97,116,101,100,114,101,115,105,115,116,97,110,99,101,97,100,97,112,116,97,116,105,111,110,111,112,112,111,115,105,116,105,111,110,119,101,108,108,32,107,110,111,119,110,115,117,112,112,108,101,109,101,110,116,100,101,116,101,114,109,105,110,101,100,104,49,32,99,108,97,115,115,61,34,48,112,120,59,109,97,114,103,105,110,109,101,99,104,97,110,105,99,97,108,115,116,97,116,105,115,116,105,99,115,99,101,108,101,98,114,97,116,101,100,71,111,118,101,114,110,109,101,110,116,10,10,68,117,114,105,110,103,32,116,100,101,118,101,108,111,112,101,114,115,97,114,116,105,102,105,99,105,97,108,101,113,117,105,118,97,108,101,110,116,111,114,105,103,105,110,97,116,101,100,67,111,109,109,105,115,115,105,111,110,97,116,116,97,99,104,109,101,110,116,60,115,112,97,110,32,105,100,61,34,116,104,101,114,101,32,119,101,114,101,78,101,100,101,114,108,97,110,100,115,98,101,121,111,110,100,32,116,104,101,114,101,103,105,115,116,101,114,101,100,106,111,117,114,110,97,108,105,115,116,102,114,101,113,117,101,110,116,108,121,97,108,108,32,111,102,32,116,104,101,108,97,110,103,61,34,101,110,34,32,60,47,115,116,121,108,101,62,13,10,97,98,115,111,108,117,116,101,59,32,115,117,112,112,111,114,116,105,110,103,101,120,116,114,101,109,101,108,121,32,109,97,105,110,115,116,114,101,97,109,60,47,115,116,114,111,110,103,62,32,112,111,112,117,108,97,114,105,116,121,101,109,112,108,111,121,109,101,110,116,60,47,116,97,98,108,101,62,13,10,32,99,111,108,115,112,97,110,61,34,60,47,102,111,114,109,62,10,32,32,99,111,110,118,101,114,115,105,111,110,97,98,111,117,116,32,116,104,101,32,60,47,112,62,60,47,100,105,118,62,105,110,116,101,103,114,97,116,101,100,34,32,108,97,110,103,61,34,101,110,80,111,114,116,117,103,117,101,115,101,115,117,98,115,116,105,116,117,116,101,105,110,100,105,118,105,100,117,97,108,105,109,112,111,115,115,105,98,108,101,109,117,108,116,105,109,101,100,105,97,97,108,109,111,115,116,32,97,108,108,112,120,32,115,111,108,105,100,32,35,97,112,97,114,116,32,102,114,111,109,115,117,98,106,101,99,116,32,116,111,105,110,32,69,110,103,108,105,115,104,99,114,105,116,105,99,105,122,101,100,101,120,99,101,112,116,32,102,111,114,103,117,105,100,101,108,105,110,101,115,111,114,105,103,105,110,97,108,108,121,114,101,109,97,114,107,97,98,108,101,116,104,101,32,115,101,99,111,110,100,104,50,32,99,108,97,115,115,61,34,60,97,32,116,105,116,108,101,61,34,40,105,110,99,108,117,100,105,110,103,112,97,114,97,109,101,116,101,114,115,112,114,111,104,105,98,105,116,101,100,61,32,34,104,116,116,112,58,47,47,100,105,99,116,105,111,110,97,114,121,112,101,114,99,101,112,116,105,111,110,114,101,118,111,108,117,116,105,111,110,102,111,117,110,100,97,116,105,111,110,112,120,59,104,101,105,103,104,116,58,115,117,99,99,101,115,115,102,117,108,115,117,112,112,111,114,116,101,114,115,109,105,108,108,101,110,110,105,117,109,104,105,115,32,102,97,116,104,101,114,116,104,101,32,38,113,117,111,116,59,110,111,45,114,101,112,101,97,116,59,99,111,109,109,101,114,99,105,97,108,105,110,100,117,115,116,114,105,97,108,101,110,99,111,117,114,97,103,101,100,97,109,111,117,110,116,32,111,102,32,117,110,111,102,102,105,99,105,97,108,101,102,102,105,99,105,101,110,99,121,82,101,102,101,114,101,110,99,101,115,99,111,111,114,100,105,110,97,116,101,100,105,115,99,108,97,105,109,101,114,101,120,112,101,100,105,116,105,111,110,100,101,118,101,108,111,112,105,110,103,99,97,108,99,117,108,97,116,101,100,115,105,109,112,108,105,102,105,101,100,108,101,103,105,116,105,109,97,116,101,115,117,98,115,116,114,105,110,103,40,48,34,32,99,108,97,115,115,61,34,99,111,109,112,108,101,116,101,108,121,105,108,108,117,115,116,114,97,116,101,102,105,118,101,32,121,101,97,114,115,105,110,115,116,114,117,109,101,110,116,80,117,98,108,105,115,104,105,110,103,49,34,32,99,108,97,115,115,61,34,112,115,121,99,104,111,108,111,103,121,99,111,110,102,105,100,101,110,99,101,110,117,109,98,101,114,32,111,102,32,97,98,115,101,110,99,101,32,111,102,102,111,99,117,115,101,100,32,111,110,106,111,105,110,101,100,32,116,104,101,115,116,114,117,99,116,117,114,101,115,112,114,101,118,105,111,117,115,108,121,62,60,47,105,102,114,97,109,101,62,111,110,99,101,32,97,103,97,105,110,98,117,116,32,114,97,116,104,101,114,105,109,109,105,103,114,97,110,116,115,111,102,32,99,111,117,114,115,101,44,97,32,103,114,111,117,112,32,111,102,76,105,116,101,114,97,116,117,114,101,85,110,108,105,107,101,32,116,104,101,60,47,97,62,38,110,98,115,112,59,10,102,117,110,99,116,105,111,110,32,105,116,32,119,97,115,32,116,104,101,67,111,110,118,101,110,116,105,111,110,97,117,116,111,109,111,98,105,108,101,80,114,111,116,101,115,116,97,110,116,97,103,103,114,101,115,115,105,118,101,97,102,116,101,114,32,116,104,101,32,83,105,109,105,108,97,114,108,121,44,34,32,47,62,60,47,100,105,118,62,99,111,108,108,101,99,116,105,111,110,13,10,102,117,110,99,116,105,111,110,118,105,115,105,98,105,108,105,116,121,116,104,101,32,117,115,101,32,111,102,118,111,108,117,110,116,101,101,114,115,97,116,116,114,97,99,116,105,111,110,117,110,100,101,114,32,116,104,101,32,116,104,114,101,97,116,101,110,101,100,42,60,33,91,67,68,65,84,65,91,105,109,112,111,114,116,97,110,99,101,105,110,32,103,101,110,101,114,97,108,116,104,101,32,108,97,116,116,101,114,60,47,102,111,114,109,62,10,60,47,46,105,110,100,101,120,79,102,40,39,105,32,61,32,48,59,32,105,32,60,100,105,102,102,101,114,101,110,99,101,100,101,118,111,116,101,100,32,116,111,116,114,97,100,105,116,105,111,110,115,115,101,97,114,99,104,32,102,111,114,117,108,116,105,109,97,116,101,108,121,116,111,117,114,110,97,109,101,110,116,97,116,116,114,105,98,117,116,101,115,115,111,45,99,97,108,108,101,100,32,125,10,60,47,115,116,121,108,101,62,101,118,97,108,117,97,116,105,111,110,101,109,112,104,97,115,105,122,101,100,97,99,99,101,115,115,105,98,108,101,60,47,115,101,99,116,105,111,110,62,115,117,99,99,101,115,115,105,111,110,97,108,111,110,103,32,119,105,116,104,77,101,97,110,119,104,105,108,101,44,105,110,100,117,115,116,114,105,101,115,60,47,97,62,60,98,114,32,47,62,104,97,115,32,98,101,99,111,109,101,97,115,112,101,99,116,115,32,111,102,84,101,108,101,118,105,115,105,111,110,115,117,102,102,105,99,105,101,110,116,98,97,115,107,101,116,98,97,108,108,98,111,116,104,32,115,105,100,101,115,99,111,110,116,105,110,117,105,110,103,97,110,32,97,114,116,105,99,108,101,60,105,109,103,32,97,108,116,61,34,97,100,118,101,110,116,117,114,101,115,104,105,115,32,109,111,116,104,101,114,109,97,110,99,104,101,115,116,101,114,112,114,105,110,99,105,112,108,101,115,112,97,114,116,105,99,117,108,97,114,99,111,109,109,101,110,116,97,114,121,101,102,102,101,99,116,115,32,111,102,100,101,99,105,100,101,100,32,116,111,34,62,60,115,116,114,111,110,103,62,112,117,98,108,105,115,104,101,114,115,74,111,117,114,110,97,108,32,111,102,100,105,102,102,105,99,117,108,116,121,102,97,99,105,108,105,116,97,116,101,97,99,99,101,112,116,97,98,108,101,115,116,121,108,101,46,99,115,115,34,9,102,117,110,99,116,105,111,110,32,105,110,110,111,118,97,116,105,111,110,62,67,111,112,121,114,105,103,104,116,115,105,116,117,97,116,105,111,110,115,119,111,117,108,100,32,104,97,118,101,98,117,115,105,110,101,115,115,101,115,68,105,99,116,105,111,110,97,114,121,115,116,97,116,101,109,101,110,116,115,111,102,116,101,110,32,117,115,101,100,112,101,114,115,105,115,116,101,110,116,105,110,32,74,97,110,117,97,114,121,99,111,109,112,114,105,115,105,110,103,60,47,116,105,116,108,101,62,10,9,100,105,112,108,111,109,97,116,105,99,99,111,110,116,97,105,110,105,110,103,112,101,114,102,111,114,109,105,110,103,101,120,116,101,110,115,105,111,110,115,109,97,121,32,110,111,116,32,98,101,99,111,110,99,101,112,116,32,111,102,32,111,110,99,108,105,99,107,61,34,73,116,32,105,115,32,97,108,115,111,102,105,110,97,110,99,105,97,108,32,109,97,107,105,110,103,32,116,104,101,76,117,120,101,109,98,111,117,114,103,97,100,100,105,116,105,111,110,97,108,97,114,101,32,99,97,108,108,101,100,101,110,103,97,103,101,100,32,105,110,34,115,99,114,105,112,116,34,41,59,98,117,116,32,105,116,32,119,97,115,101,108,101,99,116,114,111,110,105,99,111,110,115,117,98,109,105,116,61,34,10,60,33,45,45,32,69,110,100,32,101,108,101,99,116,114,105,99,97,108,111,102,102,105,99,105,97,108,108,121,115,117,103,103,101,115,116,105,111,110,116,111,112,32,111,102,32,116,104,101,117,110,108,105,107,101,32,116,104,101,65,117,115,116,114,97,108,105,97,110,79,114,105,103,105,110,97,108,108,121,114,101,102,101,114,101,110,99,101,115,10,60,47,104,101,97,100,62,13,10,114,101,99,111,103,110,105,115,101,100,105,110,105,116,105,97,108,105,122,101,108,105,109,105,116,101,100,32,116,111,65,108,101,120,97,110,100,114,105,97,114,101,116,105,114,101,109,101,110,116,65,100,118,101,110,116,117,114,101,115,102,111,117,114,32,121,101,97,114,115,10,10,38,108,116,59,33,45,45,32,105,110,99,114,101,97,115,105,110,103,100,101,99,111,114,97,116,105,111,110,104,51,32,99,108,97,115,115,61,34,111,114,105,103,105,110,115,32,111,102,111,98,108,105,103,97,116,105,111,110,114,101,103,117,108,97,116,105,111,110,99,108,97,115,115,105,102,105,101,100,40,102,117,110,99,116,105,111,110,40,97,100,118,97,110,116,97,103,101,115,98,101,105,110,103,32,116,104,101,32,104,105,115,116,111,114,105,97,110,115,60,98,97,115,101,32,104,114,101,102,114,101,112,101,97,116,101,100,108,121,119,105,108,108,105,110,103,32,116,111,99,111,109,112,97,114,97,98,108,101,100,101,115,105,103,110,97,116,101,100,110,111,109,105,110,97,116,105,111,110,102,117,110,99,116,105,111,110,97,108,105,110,115,105,100,101,32,116,104,101,114,101,118,101,108,97,116,105,111,110,101,110,100,32,111,102,32,116,104,101,115,32,102,111,114,32,116,104,101,32,97,117,116,104,111,114,105,122,101,100,114,101,102,117,115,101,100,32,116,111,116,97,107,101,32,112,108,97,99,101,97,117,116,111,110,111,109,111,117,115,99,111,109,112,114,111,109,105,115,101,112,111,108,105,116,105,99,97,108,32,114,101,115,116,97,117,114,97,110,116,116,119,111,32,111,102,32,116,104,101,70,101,98,114,117,97,114,121,32,50,113,117,97,108,105,116,121,32,111,102,115,119,102,111,98,106,101,99,116,46,117,110,100,101,114,115,116,97,110,100,110,101,97,114,108,121,32,97,108,108,119,114,105,116,116,101,110,32,98,121,105,110,116,101,114,118,105,101,119,115,34,32,119,105,100,116,104,61,34,49,119,105,116,104,100,114,97,119,97,108,102,108,111,97,116,58,108,101,102,116,105,115,32,117,115,117,97,108,108,121,99,97,110,100,105,100,97,116,101,115,110,101,119,115,112,97,112,101,114,115,109,121,115,116,101,114,105,111,117,115,68,101,112,97,114,116,109,101,110,116,98,101,115,116,32,107,110,111,119,110,112,97,114,108,105,97,109,101,110,116,115,117,112,112,114,101,115,115,101,100,99,111,110,118,101,110,105,101,110,116,114,101,109,101,109,98,101,114,101,100,100,105,102,102,101,114,101,110,116,32,115,121,115,116,101,109,97,116,105,99,104,97,115,32,108,101,100,32,116,111,112,114,111,112,97,103,97,110,100,97,99,111,110,116,114,111,108,108,101,100,105,110,102,108,117,101,110,99,101,115,99,101,114,101,109,111,110,105,97,108,112,114,111,99,108,97,105,109,101,100,80,114,111,116,101,99,116,105,111,110,108,105,32,99,108,97,115,115,61,34,83,99,105,101,110,116,105,102,105,99,99,108,97,115,115,61,34,110,111,45,116,114,97,100,101,109,97,114,107,115,109,111,114,101,32,116,104,97,110,32,119,105,100,101,115,112,114,101,97,100,76,105,98,101,114,97,116,105,111,110,116,111,111,107,32,112,108,97,99,101,100,97,121,32,111,102,32,116,104,101,97,115,32,108,111,110,103,32,97,115,105,109,112,114,105,115,111,110,101,100,65,100,100,105,116,105,111,110,97,108,10,60,104,101,97,100,62,10,60,109,76,97,98,111,114,97,116,111,114,121,78,111,118,101,109,98,101,114,32,50,101,120,99,101,112,116,105,111,110,115,73,110,100,117,115,116,114,105,97,108,118,97,114,105,101,116,121,32,111,102,102,108,111,97,116,58,32,108,101,102,68,117,114,105,110,103,32,116,104,101,97,115,115,101,115,115,109,101,110,116,104,97,118,101,32,98,101,101,110,32,100,101,97,108,115,32,119,105,116,104,83,116,97,116,105,115,116,105,99,115,111,99,99,117,114,114,101,110,99,101,47,117,108,62,60,47,100,105,118,62,99,108,101,97,114,102,105,120,34,62,116,104,101,32,112,117,98,108,105,99,109,97,110,121,32,121,101,97,114,115,119,104,105,99,104,32,119,101,114,101,111,118,101,114,32,116,105,109,101,44,115,121,110,111,110,121,109,111,117,115,99,111,110,116,101,110,116,34,62,10,112,114,101,115,117,109,97,98,108,121,104,105,115,32,102,97,109,105,108,121,117,115,101,114,65,103,101,110,116,46,117,110,101,120,112,101,99,116,101,100,105,110,99,108,117,100,105,110,103,32,99,104,97,108,108,101,110,103,101,100,97,32,109,105,110,111,114,105,116,121,117,110,100,101,102,105,110,101,100,34,98,101,108,111,110,103,115,32,116,111,116,97,107,101,110,32,102,114,111,109,105,110,32,79,99,116,111,98,101,114,112,111,115,105,116,105,111,110,58,32,115,97,105,100,32,116,111,32,98,101,114,101,108,105,103,105,111,117,115,32,70,101,100,101,114,97,116,105,111,110,32,114,111,119,115,112,97,110,61,34,111,110,108,121,32,97,32,102,101,119,109,101,97,110,116,32,116,104,97,116,108,101,100,32,116,111,32,116,104,101,45,45,62,13,10,60,100,105,118,32,60,102,105,101,108,100,115,101,116,62,65,114,99,104,98,105,115,104,111,112,32,99,108,97,115,115,61,34,110,111,98,101,105,110,103,32,117,115,101,100,97,112,112,114,111,97,99,104,101,115,112,114,105,118,105,108,101,103,101,115,110,111,115,99,114,105,112,116,62,10,114,101,115,117,108,116,115,32,105,110,109,97,121,32,98,101,32,116,104,101,69,97,115,116,101,114,32,101,103,103,109,101,99,104,97,110,105,115,109,115,114,101,97,115,111,110,97,98,108,101,80,111,112,117,108,97,116,105,111,110,67,111,108,108,101,99,116,105,111,110,115,101,108,101,99,116,101,100,34,62,110,111,115,99,114,105,112,116,62,13,47,105,110,100,101,120,46,112,104,112,97,114,114,105,118,97,108,32,111,102,45,106,115,115,100,107,39,41,41,59,109,97,110,97,103,101,100,32,116,111,105,110,99,111,109,112,108,101,116,101,99,97,115,117,97,108,116,105,101,115,99,111,109,112,108,101,116,105,111,110,67,104,114,105,115,116,105,97,110,115,83,101,112,116,101,109,98,101,114,32,97,114,105,116,104,109,101,116,105,99,112,114,111,99,101,100,117,114,101,115,109,105,103,104,116,32,104,97,118,101,80,114,111,100,117,99,116,105,111,110,105,116,32,97,112,112,101,97,114,115,80,104,105,108,111,115,111,112,104,121,102,114,105,101,110,100,115,104,105,112,108,101,97,100,105,110,103,32,116,111,103,105,118,105,110,103,32,116,104,101,116,111,119,97,114,100,32,116,104,101,103,117,97,114,97,110,116,101,101,100,100,111,99,117,109,101,110,116,101,100,99,111,108,111,114,58,35,48,48,48,118,105,100,101,111,32,103,97,109,101,99,111,109,109,105,115,115,105,111,110,114,101,102,108,101,99,116,105,110,103,99,104,97,110,103,101,32,116,104,101,97,115,115,111,99,105,97,116,101,100,115,97,110,115,45,115,101,114,105,102,111,110,107,101,121,112,114,101,115,115,59,32,112,97,100,100,105,110,103,58,72,101,32,119,97,115,32,116,104,101,117,110,100,101,114,108,121,105,110,103,116,121,112,105,99,97,108,108,121,32,44,32,97,110,100,32,116,104,101,32,115,114,99,69,108,101,109,101,110,116,115,117,99,99,101,115,115,105,118,101,115,105,110,99,101,32,116,104,101,32,115,104,111,117,108,100,32,98,101,32,110,101,116,119,111,114,107,105,110,103,97,99,99,111,117,110,116,105,110,103,117,115,101,32,111,102,32,116,104,101,108,111,119,101,114,32,116,104,97,110,115,104,111,119,115,32,116,104,97,116,60,47,115,112,97,110,62,10,9,9,99,111,109,112,108,97,105,110,116,115,99,111,110,116,105,110,117,111,117,115,113,117,97,110,116,105,116,105,101,115,97,115,116,114,111,110,111,109,101,114,104,101,32,100,105,100,32,110,111,116,100,117,101,32,116,111,32,105,116,115,97,112,112,108,105,101,100,32,116,111,97,110,32,97,118,101,114,97,103,101,101,102,102,111,114,116,115,32,116,111,116,104,101,32,102,117,116,117,114,101,97,116,116,101,109,112,116,32,116,111,84,104,101,114,101,102,111,114,101,44,99,97,112,97,98,105,108,105,116,121,82,101,112,117,98,108,105,99,97,110,119,97,115,32,102,111,114,109,101,100,69,108,101,99,116,114,111,110,105,99,107,105,108,111,109,101,116,101,114,115,99,104,97,108,108,101,110,103,101,115,112,117,98,108,105,115,104,105,110,103,116,104,101,32,102,111,114,109,101,114,105,110,100,105,103,101,110,111,117,115,100,105,114,101,99,116,105,111,110,115,115,117,98,115,105,100,105,97,114,121,99,111,110,115,112,105,114,97,99,121,100,101,116,97,105,108,115,32,111,102,97,110,100,32,105,110,32,116,104,101,97,102,102,111,114,100,97,98,108,101,115,117,98,115,116,97,110,99,101,115,114,101,97,115,111,110,32,102,111,114,99,111,110,118,101,110,116,105,111,110,105,116,101,109,116,121,112,101,61,34,97,98,115,111,108,117,116,101,108,121,115,117,112,112,111,115,101,100,108,121,114,101,109,97,105,110,101,100,32,97,97,116,116,114,97,99,116,105,118,101,116,114,97,118,101,108,108,105,110,103,115,101,112,97,114,97,116,101,108,121,102,111,99,117,115,101,115,32,111,110,101,108,101,109,101,110,116,97,114,121,97,112,112,108,105,99,97,98,108,101,102,111,117,110,100,32,116,104,97,116,115,116,121,108,101,115,104,101,101,116,109,97,110,117,115,99,114,105,112,116,115,116,97,110,100,115,32,102,111,114,32,110,111,45,114,101,112,101,97,116,40,115,111,109,101,116,105,109,101,115,67,111,109,109,101,114,99,105,97,108,105,110,32,65,109,101,114,105,99,97,117,110,100,101,114,116,97,107,101,110,113,117,97,114,116,101,114,32,111,102,97,110,32,101,120,97,109,112,108,101,112,101,114,115,111,110,97,108,108,121,105,110,100,101,120,46,112,104,112,63,60,47,98,117,116,116,111,110,62,10,112,101,114,99,101,110,116,97,103,101,98,101,115,116,45,107,110,111,119,110,99,114,101,97,116,105,110,103,32,97,34,32,100,105,114,61,34,108,116,114,76,105,101,117,116,101,110,97,110,116,10,60,100,105,118,32,105,100,61,34,116,104,101,121,32,119,111,117,108,100,97,98,105,108,105,116,121,32,111,102,109,97,100,101,32,117,112,32,111,102,110,111,116,101,100,32,116,104,97,116,99,108,101,97,114,32,116,104,97,116,97,114,103,117,101,32,116,104,97,116,116,111,32,97,110,111,116,104,101,114,99,104,105,108,100,114,101,110,39,115,112,117,114,112,111,115,101,32,111,102,102,111,114,109,117,108,97,116,101,100,98,97,115,101,100,32,117,112,111,110,116,104,101,32,114,101,103,105,111,110,115,117,98,106,101,99,116,32,111,102,112,97,115,115,101,110,103,101,114,115,112,111,115,115,101,115,115,105,111,110,46,10,10,73,110,32,116,104,101,32,66,101,102,111,114,101,32,116,104,101,97,102,116,101,114,119,97,114,100,115,99,117,114,114,101,110,116,108,121,32,97,99,114,111,115,115,32,116,104,101,115,99,105,101,110,116,105,102,105,99,99,111,109,109,117,110,105,116,121,46,99,97,112,105,116,97,108,105,115,109,105,110,32,71,101,114,109,97,110,121,114,105,103,104,116,45,119,105,110,103,116,104,101,32,115,121,115,116,101,109,83,111,99,105,101,116,121,32,111,102,112,111,108,105,116,105,99,105,97,110,100,105,114,101,99,116,105,111,110,58,119,101,110,116,32,111,110,32,116,111,114,101,109,111,118,97,108,32,111,102,32,78,101,119,32,89,111,114,107,32,97,112,97,114,116,109,101,110,116,115,105,110,100,105,99,97,116,105,111,110,100,117,114,105,110,103,32,116,104,101,117,110,108,101,115,115,32,116,104,101,104,105,115,116,111,114,105,99,97,108,104,97,100,32,98,101,101,110,32,97,100,101,102,105,110,105,116,105,118,101,105,110,103,114,101,100,105,101,110,116,97,116,116,101,110,100,97,110,99,101,67,101,110,116,101,114,32,102,111,114,112,114,111,109,105,110,101,110,99,101,114,101,97,100,121,83,116,97,116,101,115,116,114,97,116,101,103,105,101,115,98,117,116,32,105,110,32,116,104,101,97,115,32,112,97,114,116,32,111,102,99,111,110,115,116,105,116,117,116,101,99,108,97,105,109,32,116,104,97,116,108,97,98,111,114,97,116,111,114,121,99,111,109,112,97,116,105,98,108,101,102,97,105,108,117,114,101,32,111,102,44,32,115,117,99,104,32,97,115,32,98,101,103,97,110,32,119,105,116,104,117,115,105,110,103,32,116,104,101,32,116,111,32,112,114,111,118,105,100,101,102,101,97,116,117,114,101,32,111,102,102,114,111,109,32,119,104,105,99,104,47,34,32,99,108,97,115,115,61,34,103,101,111,108,111,103,105,99,97,108,115,101,118,101,114,97,108,32,111,102,100,101,108,105,98,101,114,97,116,101,105,109,112,111,114,116,97,110,116,32,104,111,108,100,115,32,116,104,97,116,105,110,103,38,113,117,111,116,59,32,118,97,108,105,103,110,61,116,111,112,116,104,101,32,71,101,114,109,97,110,111,117,116,115,105,100,101,32,111,102,110,101,103,111,116,105,97,116,101,100,104,105,115,32,99,97,114,101,101,114,115,101,112,97,114,97,116,105,111,110,105,100,61,34,115,101,97,114,99,104,119,97,115,32,99,97,108,108,101,100,116,104,101,32,102,111,117,114,116,104,114,101,99,114,101,97,116,105,111,110,111,116,104,101,114,32,116,104,97,110,112,114,101,118,101,110,116,105,111,110,119,104,105,108,101,32,116,104,101,32,101,100,117,99,97,116,105,111,110,44,99,111,110,110,101,99,116,105,110,103,97,99,99,117,114,97,116,101,108,121,119,101,114,101,32,98,117,105,108,116,119,97,115,32,107,105,108,108,101,100,97,103,114,101,101,109,101,110,116,115,109,117,99,104,32,109,111,114,101,32,68,117,101,32,116,111,32,116,104,101,119,105,100,116,104,58,32,49,48,48,115,111,109,101,32,111,116,104,101,114,75,105,110,103,100,111,109,32,111,102,116,104,101,32,101,110,116,105,114,101,102,97,109,111,117,115,32,102,111,114,116,111,32,99,111,110,110,101,99,116,111,98,106,101,99,116,105,118,101,115,116,104,101,32,70,114,101,110,99,104,112,101,111,112,108,101,32,97,110,100,102,101,97,116,117,114,101,100,34,62,105,115,32,115,97,105,100,32,116,111,115,116,114,117,99,116,117,114,97,108,114,101,102,101,114,101,110,100,117,109,109,111,115,116,32,111,102,116,101,110,97,32,115,101,112,97,114,97,116,101,45,62,10,60,100,105,118,32,105,100,32,79,102,102,105,99,105,97,108,32,119,111,114,108,100,119,105,100,101,46,97,114,105,97,45,108,97,98,101,108,116,104,101,32,112,108,97,110,101,116,97,110,100,32,105,116,32,119,97,115,100,34,32,118,97,108,117,101,61,34,108,111,111,107,105,110,103,32,97,116,98,101,110,101,102,105,99,105,97,108,97,114,101,32,105,110,32,116,104,101,109,111,110,105,116,111,114,105,110,103,114,101,112,111,114,116,101,100,108,121,116,104,101,32,109,111,100,101,114,110,119,111,114,107,105,110,103,32,111,110,97,108,108,111,119,101,100,32,116,111,119,104,101,114,101,32,116,104,101,32,105,110,110,111,118,97,116,105,118,101,60,47,97,62,60,47,100,105,118,62,115,111,117,110,100,116,114,97,99,107,115,101,97,114,99,104,70,111,114,109,116,101,110,100,32,116,111,32,98,101,105,110,112,117,116,32,105,100,61,34,111,112,101,110,105,110,103,32,111,102,114,101,115,116,114,105,99,116,101,100,97,100,111,112,116,101,100,32,98,121,97,100,100,114,101,115,115,105,110,103,116,104,101,111,108,111,103,105,97,110,109,101,116,104,111,100,115,32,111,102,118,97,114,105,97,110,116,32,111,102,67,104,114,105,115,116,105,97,110,32,118,101,114,121,32,108,97,114,103,101,97,117,116,111,109,111,116,105,118,101,98,121,32,102,97,114,32,116,104,101,114,97,110,103,101,32,102,114,111,109,112,117,114,115,117,105,116,32,111,102,102,111,108,108,111,119,32,116,104,101,98,114,111,117,103,104,116,32,116,111,105,110,32,69,110,103,108,97,110,100,97,103,114,101,101,32,116,104,97,116,97,99,99,117,115,101,100,32,111,102,99,111,109,101,115,32,102,114,111,109,112,114,101,118,101,110,116,105,110,103,100,105,118,32,115,116,121,108,101,61,104,105,115,32,111,114,32,104,101,114,116,114,101,109,101,110,100,111,117,115,102,114,101,101,100,111,109,32,111,102,99,111,110,99,101,114,110,105,110,103,48,32,49,101,109,32,49,101,109,59,66,97,115,107,101,116,98,97,108,108,47,115,116,121,108,101,46,99,115,115,97,110,32,101,97,114,108,105,101,114,101,118,101,110,32,97,102,116,101,114,47,34,32,116,105,116,108,101,61,34,46,99,111,109,47,105,110,100,101,120,116,97,107,105,110,103,32,116,104,101,112,105,116,116,115,98,117,114,103,104,99,111,110,116,101,110,116,34,62,13,60,115,99,114,105,112,116,62,40,102,116,117,114,110,101,100,32,111,117,116,104,97,118,105,110,103,32,116,104,101,60,47,115,112,97,110,62,13,10,32,111,99,99,97,115,105,111,110,97,108,98,101,99,97,117,115,101,32,105,116,115,116,97,114,116,101,100,32,116,111,112,104,121,115,105,99,97,108,108,121,62,60,47,100,105,118,62,10,32,32,99,114,101,97,116,101,100,32,98,121,67,117,114,114,101,110,116,108,121,44,32,98,103,99,111,108,111,114,61,34,116,97,98,105,110,100,101,120,61,34,100,105,115,97,115,116,114,111,117,115,65,110,97,108,121,116,105,99,115,32,97,108,115,111,32,104,97,115,32,97,62,60,100,105,118,32,105,100,61,34,60,47,115,116,121,108,101,62,10,60,99,97,108,108,101,100,32,102,111,114,115,105,110,103,101,114,32,97,110,100,46,115,114,99,32,61,32,34,47,47,118,105,111,108,97,116,105,111,110,115,116,104,105,115,32,112,111,105,110,116,99,111,110,115,116,97,110,116,108,121,105,115,32,108,111,99,97,116,101,100,114,101,99,111,114,100,105,110,103,115,100,32,102,114,111,109,32,116,104,101,110,101,100,101,114,108,97,110,100,115,112,111,114,116,117,103,117,195,170,115,215,162,215,145,215,168,215,153,215,170,217,129,216,167,216,177,216,179,219,140,100,101,115,97,114,114,111,108,108,111,99,111,109,101,110,116,97,114,105,111,101,100,117,99,97,99,105,195,179,110,115,101,112,116,105,101,109,98,114,101,114,101,103,105,115,116,114,97,100,111,100,105,114,101,99,99,105,195,179,110,117,98,105,99,97,99,105,195,179,110,112,117,98,108,105,99,105,100,97,100,114,101,115,112,117,101,115,116,97,115,114,101,115,117,108,116,97,100,111,115,105,109,112,111,114,116,97,110,116,101,114,101,115,101,114,118,97,100,111,115,97,114,116,195,173,99,117,108,111,115,100,105,102,101,114,101,110,116,101,115,115,105,103,117,105,101,110,116,101,115,114,101,112,195,186,98,108,105,99,97,115,105,116,117,97,99,105,195,179,110,109,105,110,105,115,116,101,114,105,111,112,114,105,118,97,99,105,100,97,100,100,105,114,101,99,116,111,114,105,111,102,111,114,109,97,99,105,195,179,110,112,111,98,108,97,99,105,195,179,110,112,114,101,115,105,100,101,110,116,101,99,111,110,116,101,110,105,100,111,115,97,99,99,101,115,111,114,105,111,115,116,101,99,104,110,111,114,97,116,105,112,101,114,115,111,110,97,108,101,115,99,97,116,101,103,111,114,195,173,97,101,115,112,101,99,105,97,108,101,115,100,105,115,112,111,110,105,98,108,101,97,99,116,117,97,108,105,100,97,100,114,101,102,101,114,101,110,99,105,97,118,97,108,108,97,100,111,108,105,100,98,105,98,108,105,111,116,101,99,97,114,101,108,97,99,105,111,110,101,115,99,97,108,101,110,100,97,114,105,111,112,111,108,195,173,116,105,99,97,115,97,110,116,101,114,105,111,114,101,115,100,111,99,117,109,101,110,116,111,115,110,97,116,117,114,97,108,101,122,97,109,97,116,101,114,105,97,108,101,115,100,105,102,101,114,101,110,99,105,97,101,99,111,110,195,179,109,105,99,97,116,114,97,110,115,112,111,114,116,101,114,111,100,114,195,173,103,117,101,122,112,97,114,116,105,99,105,112,97,114,101,110,99,117,101,110,116,114,97,110,100,105,115,99,117,115,105,195,179,110,101,115,116,114,117,99,116,117,114,97,102,117,110,100,97,99,105,195,179,110,102,114,101,99,117,101,110,116,101,115,112,101,114,109,97,110,101,110,116,101,116,111,116,97,108,109,101,110,116,101,208,188,208,190,208,182,208,189,208,190,208,177,209,131,208,180,208,181,209,130,208,188,208,190,208,182,208,181,209,130,208,178,209,128,208,181,208,188,209,143,209,130,208,176,208,186,208,182,208,181,209,135,209,130,208,190,208,177,209,139,208,177,208,190,208,187,208,181,208,181,208,190,209,135,208,181,208,189,209,140,209,141,209,130,208,190,208,179,208,190,208,186,208,190,208,179,208,180,208,176,208,191,208,190,209,129,208,187,208,181,208,178,209,129,208,181,208,179,208,190,209,129,208,176,208,185,209,130,208,181,209,135,208,181,209,128,208,181,208,183,208,188,208,190,208,179,209,131,209,130,209,129,208,176,208,185,209,130,208,176,208,182,208,184,208,183,208,189,208,184,208,188,208,181,208,182,208,180,209,131,208,177,209,131,208,180,209,131,209,130,208,159,208,190,208,184,209,129,208,186,208,183,208,180,208,181,209,129,209,140,208,178,208,184,208,180,208,181,208,190,209,129,208,178,209,143,208,183,208,184,208,189,209,131,208,182,208,189,208,190,209,129,208,178,208,190,208,181,208,185,208,187,209,142,208,180,208,181,208,185,208,191,208,190,209,128,208,189,208,190,208,188,208,189,208,190,208,179,208,190,208,180,208,181,209,130,208,181,208,185,209,129,208,178,208,190,208,184,209,133,208,191,209,128,208,176,208,178,208,176,209,130,208,176,208,186,208,190,208,185,208,188,208,181,209,129,209,130,208,190,208,184,208,188,208,181,208,181,209,130,208,182,208,184,208,183,208,189,209,140,208,190,208,180,208,189,208,190,208,185,208,187,209,131,209,135,209,136,208,181,208,191,208,181,209,128,208,181,208,180,209,135,208,176,209,129,209,130,208,184,209,135,208,176,209,129,209,130,209,140,209,128,208,176,208,177,208,190,209,130,208,189,208,190,208,178,209,139,209,133,208,191,209,128,208,176,208,178,208,190,209,129,208,190,208,177,208,190,208,185,208,191,208,190,209,130,208,190,208,188,208,188,208,181,208,189,208,181,208,181,209,135,208,184,209,129,208,187,208,181,208,189,208,190,208,178,209,139,208,181,209,131,209,129,208,187,209,131,208,179,208,190,208,186,208,190,208,187,208,190,208,189,208,176,208,183,208,176,208,180,209,130,208,176,208,186,208,190,208,181,209,130,208,190,208,179,208,180,208,176,208,191,208,190,209,135,209,130,208,184,208,159,208,190,209,129,208,187,208,181,209,130,208,176,208,186,208,184,208,181,208,189,208,190,208,178,209,139,208,185,209,129,209,130,208,190,208,184,209,130,209,130,208,176,208,186,208,184,209,133,209,129,209,128,208,176,208,183,209,131,208,161,208,176,208,189,208,186,209,130,209,132,208,190,209,128,209,131,208,188,208,154,208,190,208,179,208,180,208,176,208,186,208,189,208,184,208,179,208,184,209,129,208,187,208,190,208,178,208,176,208,189,208,176,209,136,208,181,208,185,208,189,208,176,208,185,209,130,208,184,209,129,208,178,208,190,208,184,208,188,209,129,208,178,209,143,208,183,209,140,208,187,209,142,208,177,208,190,208,185,209,135,208,176,209,129,209,130,208,190,209,129,209,128,208,181,208,180,208,184,208,154,209,128,208,190,208,188,208,181,208,164,208,190,209,128,209,131,208,188,209,128,209,139,208,189,208,186,208,181,209,129,209,130,208,176,208,187,208,184,208,191,208,190,208,184,209,129,208,186,209,130,209,139,209,129,209,143,209,135,208,188,208,181,209,129,209,143,209,134,209,134,208,181,208,189,209,130,209,128,209,130,209,128,209,131,208,180,208,176,209,129,208,176,208,188,209,139,209,133,209,128,209,139,208,189,208,186,208,176,208,157,208,190,208,178,209,139,208,185,209,135,208,176,209,129,208,190,208,178,208,188,208,181,209,129,209,130,208,176,209,132,208,184,208,187,209,140,208,188,208,188,208,176,209,128,209,130,208,176,209,129,209,130,209,128,208,176,208,189,208,188,208,181,209,129,209,130,208,181,209,130,208,181,208,186,209,129,209,130,208,189,208,176,209,136,208,184,209,133,208,188,208,184,208,189,209,131,209,130,208,184,208,188,208,181,208,189,208,184,208,184,208,188,208,181,209,142,209,130,208,189,208,190,208,188,208,181,209,128,208,179,208,190,209,128,208,190,208,180,209,129,208,176,208,188,208,190,208,188,209,141,209,130,208,190,208,188,209,131,208,186,208,190,208,189,209,134,208,181,209,129,208,178,208,190,208,181,208,188,208,186,208,176,208,186,208,190,208,185,208,144,209,128,209,133,208,184,208,178,217,133,217,134,216,170,216,175,217,137,216,165,216,177,216,179,216,167,217,132,216,177,216,179,216,167,217,132,216,169,216,167,217,132,216,185,216,167,217,133,217,131,216,170,216,168,217,135,216,167,216,168,216,177,216,167,217,133,216,172,216,167,217,132,217,138,217,136,217,133,216,167,217,132,216,181,217,136,216,177,216,172,216,175,217,138,216,175,216,169,216,167,217,132,216,185,216,182,217,136,216,165,216,182,216,167,217,129,216,169,216,167,217,132,217,130,216,179,217,133,216,167,217,132,216,185,216,167,216,168,216,170,216,173,217,133,217,138,217,132,217,133,217,132,217,129,216,167,216,170,217,133,217,132,216,170,217,130,217,137,216,170,216,185,216,175,217,138,217,132,216,167,217,132,216,180,216,185,216,177,216,163,216,174,216,168,216,167,216,177,216,170,216,183,217,136,217,138,216,177,216,185,217,132,217,138,217,131,217,133,216,165,216,177,217,129,216,167,217,130,216,183,217,132,216,168,216,167,216,170,216,167,217,132,217,132,216,186,216,169,216,170,216,177,216,170,217,138,216,168,216,167,217,132,217,134,216,167,216,179,216,167,217,132,216,180,217,138,216,174,217,133,217,134,216,170,216,175,217,138,216,167,217,132,216,185,216,177,216,168,216,167,217,132,217,130,216,181,216,181,216,167,217,129,217,132,216,167,217,133,216,185,217,132,217,138,217,135,216,167,216,170,216,173,216,175,217,138,216,171,216,167,217,132,217,132,217,135,217,133,216,167,217,132,216,185,217,133,217,132,217,133,217,131,216,170,216,168,216,169,217,138,217,133,217,131,217,134,217,131,216,167,217,132,216,183,217,129,217,132,217,129,217,138,216,175,217,138,217,136,216,165,216,175,216,167,216,177,216,169,216,170,216,167,216,177,217,138,216,174,216,167,217,132,216,181,216,173,216,169,216,170,216,179,216,172,217,138,217,132,216,167,217,132,217,136,217,130,216,170,216,185,217,134,216,175,217,133,216,167,217,133,216,175,217,138,217,134,216,169,216,170,216,181,217,133,217,138,217,133,216,163,216,177,216,180,217,138,217,129,216,167,217,132,216,176,217,138,217,134,216,185,216,177,216,168,217,138,216,169,216,168,217,136,216,167,216,168,216,169,216,163,217,132,216,185,216,167,216,168,216,167,217,132,216,179,217,129,216,177,217,133,216,180,216,167,217,131,217,132,216,170,216,185,216,167,217,132,217,137,216,167,217,132,216,163,217,136,217,132,216,167,217,132,216,179,217,134,216,169,216,172,216,167,217,133,216,185,216,169,216,167,217,132,216,181,216,173,217,129,216,167,217,132,216,175,217,138,217,134,217,131,217,132,217,133,216,167,216,170,216,167,217,132,216,174,216,167,216,181,216,167,217,132,217,133,217,132,217,129,216,163,216,185,216,182,216,167,216,161,217,131,216,170,216,167,216,168,216,169,216,167,217,132,216,174,217,138,216,177,216,177,216,179,216,167,216,166,217,132,216,167,217,132,217,130,217,132,216,168,216,167,217,132,216,163,216,175,216,168,217,133,217,130,216,167,216,183,216,185,217,133,216,177,216,167,216,179,217,132,217,133,217,134,216,183,217,130,216,169,216,167,217,132,217,131,216,170,216,168,216,167,217,132,216,177,216,172,217,132,216,167,216,180,216,170,216,177,217,131,216,167,217,132,217,130,216,175,217,133,217,138,216,185,216,183,217,138,217,131,115,66,121,84,97,103,78,97,109,101,40,46,106,112,103,34,32,97,108,116,61,34,49,112,120,32,115,111,108,105,100,32,35,46,103,105,102,34,32,97,108,116,61,34,116,114,97,110,115,112,97,114,101,110,116,105,110,102,111,114,109,97,116,105,111,110,97,112,112,108,105,99,97,116,105,111,110,34,32,111,110,99,108,105,99,107,61,34,101,115,116,97,98,108,105,115,104,101,100,97,100,118,101,114,116,105,115,105,110,103,46,112,110,103,34,32,97,108,116,61,34,101,110,118,105,114,111,110,109,101,110,116,112,101,114,102,111,114,109,97,110,99,101,97,112,112,114,111,112,114,105,97,116,101,38,97,109,112,59,109,100,97,115,104,59,105,109,109,101,100,105,97,116,101,108,121,60,47,115,116,114,111,110,103,62,60,47,114,97,116,104,101,114,32,116,104,97,110,116,101,109,112,101,114,97,116,117,114,101,100,101,118,101,108,111,112,109,101,110,116,99,111,109,112,101,116,105,116,105,111,110,112,108,97,99,101,104,111,108,100,101,114,118,105,115,105,98,105,108,105,116,121,58,99,111,112,121,114,105,103,104,116,34,62,48,34,32,104,101,105,103,104,116,61,34,101,118,101,110,32,116,104,111,117,103,104,114,101,112,108,97,99,101,109,101,110,116,100,101,115,116,105,110,97,116,105,111,110,67,111,114,112,111,114,97,116,105,111,110,60,117,108,32,99,108,97,115,115,61,34,65,115,115,111,99,105,97,116,105,111,110,105,110,100,105,118,105,100,117,97,108,115,112,101,114,115,112,101,99,116,105,118,101,115,101,116,84,105,109,101,111,117,116,40,117,114,108,40,104,116,116,112,58,47,47,109,97,116,104,101,109,97,116,105,99,115,109,97,114,103,105,110,45,116,111,112,58,101,118,101,110,116,117,97,108,108,121,32,100,101,115,99,114,105,112,116,105,111,110,41,32,110,111,45,114,101,112,101,97,116,99,111,108,108,101,99,116,105,111,110,115,46,74,80,71,124,116,104,117,109,98,124,112,97,114,116,105,99,105,112,97,116,101,47,104,101,97,100,62,60,98,111,100,121,102,108,111,97,116,58,108,101,102,116,59,60,108,105,32,99,108,97,115,115,61,34,104,117,110,100,114,101,100,115,32,111,102,10,10,72,111,119,101,118,101,114,44,32,99,111,109,112,111,115,105,116,105,111,110,99,108,101,97,114,58,98,111,116,104,59,99,111,111,112,101,114,97,116,105,111,110,119,105,116,104,105,110,32,116,104,101,32,108,97,98,101,108,32,102,111,114,61,34,98,111,114,100,101,114,45,116,111,112,58,78,101,119,32,90,101,97,108,97,110,100,114,101,99,111,109,109,101,110,100,101,100,112,104,111,116,111,103,114,97,112,104,121,105,110,116,101,114,101,115,116,105,110,103,38,108,116,59,115,117,112,38,103,116,59,99,111,110,116,114,111,118,101,114,115,121,78,101,116,104,101,114,108,97,110,100,115,97,108,116,101,114,110,97,116,105,118,101,109,97,120,108,101,110,103,116,104,61,34,115,119,105,116,122,101,114,108,97,110,100,68,101,118,101,108,111,112,109,101,110,116,101,115,115,101,110,116,105,97,108,108,121,10,10,65,108,116,104,111,117,103,104,32,60,47,116,101,120,116,97,114,101,97,62,116,104,117,110,100,101,114,98,105,114,100,114,101,112,114,101,115,101,110,116,101,100,38,97,109,112,59,110,100,97,115,104,59,115,112,101,99,117,108,97,116,105,111,110,99,111,109,109,117,110,105,116,105,101,115,108,101,103,105,115,108,97,116,105,111,110,101,108,101,99,116,114,111,110,105,99,115,10,9,60,100,105,118,32,105,100,61,34,105,108,108,117,115,116,114,97,116,101,100,101,110,103,105,110,101,101,114,105,110,103,116,101,114,114,105,116,111,114,105,101,115,97,117,116,104,111,114,105,116,105,101,115,100,105,115,116,114,105,98,117,116,101,100,54,34,32,104,101,105,103,104,116,61,34,115,97,110,115,45,115,101,114,105,102,59,99,97,112,97,98,108,101,32,111,102,32,100,105,115,97,112,112,101,97,114,101,100,105,110,116,101,114,97,99,116,105,118,101,108,111,111,107,105,110,103,32,102,111,114,105,116,32,119,111,117,108,100,32,98,101,65,102,103,104,97,110,105,115,116,97,110,119,97,115,32,99,114,101,97,116,101,100,77,97,116,104,46,102,108,111,111,114,40,115,117,114,114,111,117,110,100,105,110,103,99,97,110,32,97,108,115,111,32,98,101,111,98,115,101,114,118,97,116,105,111,110,109,97,105,110,116,101,110,97,110,99,101,101,110,99,111,117,110,116,101,114,101,100,60,104,50,32,99,108,97,115,115,61,34,109,111,114,101,32,114,101,99,101,110,116,105,116,32,104,97,115,32,98,101,101,110,105,110,118,97,115,105,111,110,32,111,102,41,46,103,101,116,84,105,109,101,40,41,102,117,110,100,97,109,101,110,116,97,108,68,101,115,112,105,116,101,32,116,104,101,34,62,60,100,105,118,32,105,100,61,34,105,110,115,112,105,114,97,116,105,111,110,101,120,97,109,105,110,97,116,105,111,110,112,114,101,112,97,114,97,116,105,111,110,101,120,112,108,97,110,97,116,105,111,110,60,105,110,112,117,116,32,105,100,61,34,60,47,97,62,60,47,115,112,97,110,62,118,101,114,115,105,111,110,115,32,111,102,105,110,115,116,114,117,109,101,110,116,115,98,101,102,111,114,101,32,116,104,101,32,32,61,32,39,104,116,116,112,58,47,47,68,101,115,99,114,105,112,116,105,111,110,114,101,108,97,116,105,118,101,108,121,32,46,115,117,98,115,116,114,105,110,103,40,101,97,99,104,32,111,102,32,116,104,101,101,120,112,101,114,105,109,101,110,116,115,105,110,102,108,117,101,110,116,105,97,108,105,110,116,101,103,114,97,116,105,111,110,109,97,110,121,32,112,101,111,112,108,101,100,117,101,32,116,111,32,116,104,101,32,99,111,109,98,105,110,97,116,105,111,110,100,111,32,110,111,116,32,104,97,118,101,77,105,100,100,108,101,32,69,97,115,116,60,110,111,115,99,114,105,112,116,62,60,99,111,112,121,114,105,103,104,116,34,32,112,101,114,104,97,112,115,32,116,104,101,105,110,115,116,105,116,117,116,105,111,110,105,110,32,68,101,99,101,109,98,101,114,97,114,114,97,110,103,101,109,101,110,116,109,111,115,116,32,102,97,109,111,117,115,112,101,114,115,111,110,97,108,105,116,121,99,114,101,97,116,105,111,110,32,111,102,108,105,109,105,116,97,116,105,111,110,115,101,120,99,108,117,115,105,118,101,108,121,115,111,118,101,114,101,105,103,110,116,121,45,99,111,110,116,101,110,116,34,62,10,60,116,100,32,99,108,97,115,115,61,34,117,110,100,101,114,103,114,111,117,110,100,112,97,114,97,108,108,101,108,32,116,111,100,111,99,116,114,105,110,101,32,111,102,111,99,99,117,112,105,101,100,32,98,121,116,101,114,109,105,110,111,108,111,103,121,82,101,110,97,105,115,115,97,110,99,101,97,32,110,117,109,98,101,114,32,111,102,115,117,112,112,111,114,116,32,102,111,114,101,120,112,108,111,114,97,116,105,111,110,114,101,99,111,103,110,105,116,105,111,110,112,114,101,100,101,99,101,115,115,111,114,60,105,109,103,32,115,114,99,61,34,47,60,104,49,32,99,108,97,115,115,61,34,112,117,98,108,105,99,97,116,105,111,110,109,97,121,32,97,108,115,111,32,98,101,115,112,101,99,105,97,108,105,122,101,100,60,47,102,105,101,108,100,115,101,116,62,112,114,111,103,114,101,115,115,105,118,101,109,105,108,108,105,111,110,115,32,111,102,115,116,97,116,101,115,32,116,104,97,116,101,110,102,111,114,99,101,109,101,110,116,97,114,111,117,110,100,32,116,104,101,32,111,110,101,32,97,110,111,116,104,101,114,46,112,97,114,101,110,116,78,111,100,101,97,103,114,105,99,117,108,116,117,114,101,65,108,116,101,114,110,97,116,105,118,101,114,101,115,101,97,114,99,104,101,114,115,116,111,119,97,114,100,115,32,116,104,101,77,111,115,116,32,111,102,32,116,104,101,109,97,110,121,32,111,116,104,101,114,32,40,101,115,112,101,99,105,97,108,108,121,60,116,100,32,119,105,100,116,104,61,34,59,119,105,100,116,104,58,49,48,48,37,105,110,100,101,112,101,110,100,101,110,116,60,104,51,32,99,108,97,115,115,61,34,32,111,110,99,104,97,110,103,101,61,34,41,46,97,100,100,67,108,97,115,115,40,105,110,116,101,114,97,99,116,105,111,110,79,110,101,32,111,102,32,116,104,101,32,100,97,117,103,104,116,101,114,32,111,102,97,99,99,101,115,115,111,114,105,101,115,98,114,97,110,99,104,101,115,32,111,102,13,10,60,100,105,118,32,105,100,61,34,116,104,101,32,108,97,114,103,101,115,116,100,101,99,108,97,114,97,116,105,111,110,114,101,103,117,108,97,116,105,111,110,115,73,110,102,111,114,109,97,116,105,111,110,116,114,97,110,115,108,97,116,105,111,110,100,111,99,117,109,101,110,116,97,114,121,105,110,32,111,114,100,101,114,32,116,111,34,62,10,60,104,101,97,100,62,10,60,34,32,104,101,105,103,104,116,61,34,49,97,99,114,111,115,115,32,116,104,101,32,111,114,105,101,110,116,97,116,105,111,110,41,59,60,47,115,99,114,105,112,116,62,105,109,112,108,101,109,101,110,116,101,100,99,97,110,32,98,101,32,115,101,101,110,116,104,101,114,101,32,119,97,115,32,97,100,101,109,111,110,115,116,114,97,116,101,99,111,110,116,97,105,110,101,114,34,62,99,111,110,110,101,99,116,105,111,110,115,116,104,101,32,66,114,105,116,105,115,104,119,97,115,32,119,114,105,116,116,101,110,33,105,109,112,111,114,116,97,110,116,59,112,120,59,32,109,97,114,103,105,110,45,102,111,108,108,111,119,101,100,32,98,121,97,98,105,108,105,116,121,32,116,111,32,99,111,109,112,108,105,99,97,116,101,100,100,117,114,105,110,103,32,116,104,101,32,105,109,109,105,103,114,97,116,105,111,110,97,108,115,111,32,99,97,108,108,101,100,60,104,52,32,99,108,97,115,115,61,34,100,105,115,116,105,110,99,116,105,111,110,114,101,112,108,97,99,101,100,32,98,121,103,111,118,101,114,110,109,101,110,116,115,108,111,99,97,116,105,111,110,32,111,102,105,110,32,78,111,118,101,109,98,101,114,119,104,101,116,104,101,114,32,116,104,101,60,47,112,62,10,60,47,100,105,118,62,97,99,113,117,105,115,105,116,105,111,110,99,97,108,108,101,100,32,116,104,101,32,112,101,114,115,101,99,117,116,105,111,110,100,101,115,105,103,110,97,116,105,111,110,123,102,111,110,116,45,115,105,122,101,58,97,112,112,101,97,114,101,100,32,105,110,105,110,118,101,115,116,105,103,97,116,101,101,120,112,101,114,105,101,110,99,101,100,109,111,115,116,32,108,105,107,101,108,121,119,105,100,101,108,121,32,117,115,101,100,100,105,115,99,117,115,115,105,111,110,115,112,114,101,115,101,110,99,101,32,111,102,32,40,100,111,99,117,109,101,110,116,46,101,120,116,101,110,115,105,118,101,108,121,73,116,32,104,97,115,32,98,101,101,110,105,116,32,100,111,101,115,32,110,111,116,99,111,110,116,114,97,114,121,32,116,111,105,110,104,97,98,105,116,97,110,116,115,105,109,112,114,111,118,101,109,101,110,116,115,99,104,111,108,97,114,115,104,105,112,99,111,110,115,117,109,112,116,105,111,110,105,110,115,116,114,117,99,116,105,111,110,102,111,114,32,101,120,97,109,112,108,101,111,110,101,32,111,114,32,109,111,114,101,112,120,59,32,112,97,100,100,105,110,103,116,104,101,32,99,117,114,114,101,110,116,97,32,115,101,114,105,101,115,32,111,102,97,114,101,32,117,115,117,97,108,108,121,114,111,108,101,32,105,110,32,116,104,101,112,114,101,118,105,111,117,115,108,121,32,100,101,114,105,118,97,116,105,118,101,115,101,118,105,100,101,110,99,101,32,111,102,101,120,112,101,114,105,101,110,99,101,115,99,111,108,111,114,115,99,104,101,109,101,115,116,97,116,101,100,32,116,104,97,116,99,101,114,116,105,102,105,99,97,116,101,60,47,97,62,60,47,100,105,118,62,10,32,115,101,108,101,99,116,101,100,61,34,104,105,103,104,32,115,99,104,111,111,108,114,101,115,112,111,110,115,101,32,116,111,99,111,109,102,111,114,116,97,98,108,101,97,100,111,112,116,105,111,110,32,111,102,116,104,114,101,101,32,121,101,97,114,115,116,104,101,32,99,111,117,110,116,114,121,105,110,32,70,101,98,114,117,97,114,121,115,111,32,116,104,97,116,32,116,104,101,112,101,111,112,108,101,32,119,104,111,32,112,114,111,118,105,100,101,100,32,98,121,60,112,97,114,97,109,32,110,97,109,101,97,102,102,101,99,116,101,100,32,98,121,105,110,32,116,101,114,109,115,32,111,102,97,112,112,111,105,110,116,109,101,110,116,73,83,79,45,56,56,53,57,45,49,34,119,97,115,32,98,111,114,110,32,105,110,104,105,115,116,111,114,105,99,97,108,32,114,101,103,97,114,100,101,100,32,97,115,109,101,97,115,117,114,101,109,101,110,116,105,115,32,98,97,115,101,100,32,111,110,32,97,110,100,32,111,116,104,101,114,32,58,32,102,117,110,99,116,105,111,110,40,115,105,103,110,105,102,105,99,97,110,116,99,101,108,101,98,114,97,116,105,111,110,116,114,97,110,115,109,105,116,116,101,100,47,106,115,47,106,113,117,101,114,121,46,105,115,32,107,110,111,119,110,32,97,115,116,104,101,111,114,101,116,105,99,97,108,32,116,97,98,105,110,100,101,120,61,34,105,116,32,99,111,117,108,100,32,98,101,60,110,111,115,99,114,105,112,116,62,10,104,97,118,105,110,103,32,98,101,101,110,13,10,60,104,101,97,100,62,13,10,60,32,38,113,117,111,116,59,84,104,101,32,99,111,109,112,105,108,97,116,105,111,110,104,101,32,104,97,100,32,98,101,101,110,112,114,111,100,117,99,101,100,32,98,121,112,104,105,108,111,115,111,112,104,101,114,99,111,110,115,116,114,117,99,116,101,100,105,110,116,101,110,100,101,100,32,116,111,97,109,111,110,103,32,111,116,104,101,114,99,111,109,112,97,114,101,100,32,116,111,116,111,32,115,97,121,32,116,104,97,116,69,110,103,105,110,101,101,114,105,110,103,97,32,100,105,102,102,101,114,101,110,116,114,101,102,101,114,114,101,100,32,116,111,100,105,102,102,101,114,101,110,99,101,115,98,101,108,105,101,102,32,116,104,97,116,112,104,111,116,111,103,114,97,112,104,115,105,100,101,110,116,105,102,121,105,110,103,72,105,115,116,111,114,121,32,111,102,32,82,101,112,117,98,108,105,99,32,111,102,110,101,99,101,115,115,97,114,105,108,121,112,114,111,98,97,98,105,108,105,116,121,116,101,99,104,110,105,99,97,108,108,121,108,101,97,118,105,110,103,32,116,104,101,115,112,101,99,116,97,99,117,108,97,114,102,114,97,99,116,105,111,110,32,111,102,101,108,101,99,116,114,105,99,105,116,121,104,101,97,100,32,111,102,32,116,104,101,114,101,115,116,97,117,114,97,110,116,115,112,97,114,116,110,101,114,115,104,105,112,101,109,112,104,97,115,105,115,32,111,110,109,111,115,116,32,114,101,99,101,110,116,115,104,97,114,101,32,119,105,116,104,32,115,97,121,105,110,103,32,116,104,97,116,102,105,108,108,101,100,32,119,105,116,104,100,101,115,105,103,110,101,100,32,116,111,105,116,32,105,115,32,111,102,116,101,110,34,62,60,47,105,102,114,97,109,101,62,97,115,32,102,111,108,108,111,119,115,58,109,101,114,103,101,100,32,119,105,116,104,116,104,114,111,117,103,104,32,116,104,101,99,111,109,109,101,114,99,105,97,108,32,112,111,105,110,116,101,100,32,111,117,116,111,112,112,111,114,116,117,110,105,116,121,118,105,101,119,32,111,102,32,116,104,101,114,101,113,117,105,114,101,109,101,110,116,100,105,118,105,115,105,111,110,32,111,102,112,114,111,103,114,97,109,109,105,110,103,104,101,32,114,101,99,101,105,118,101,100,115,101,116,73,110,116,101,114,118,97,108,34,62,60,47,115,112,97,110,62,60,47,105,110,32,78,101,119,32,89,111,114,107,97,100,100,105,116,105,111,110,97,108,32,99,111,109,112,114,101,115,115,105,111,110,10,10,60,100,105,118,32,105,100,61,34,105,110,99,111,114,112,111,114,97,116,101,59,60,47,115,99,114,105,112,116,62,60,97,116,116,97,99,104,69,118,101,110,116,98,101,99,97,109,101,32,116,104,101,32,34,32,116,97,114,103,101,116,61,34,95,99,97,114,114,105,101,100,32,111,117,116,83,111,109,101,32,111,102,32,116,104,101,115,99,105,101,110,99,101,32,97,110,100,116,104,101,32,116,105,109,101,32,111,102,67,111,110,116,97,105,110,101,114,34,62,109,97,105,110,116,97,105,110,105,110,103,67,104,114,105,115,116,111,112,104,101,114,77,117,99,104,32,111,102,32,116,104,101,119,114,105,116,105,110,103,115,32,111,102,34,32,104,101,105,103,104,116,61,34,50,115,105,122,101,32,111,102,32,116,104,101,118,101,114,115,105,111,110,32,111,102,32,109,105,120,116,117,114,101,32,111,102,32,98,101,116,119,101,101,110,32,116,104,101,69,120,97,109,112,108,101,115,32,111,102,101,100,117,99,97,116,105,111,110,97,108,99,111,109,112,101,116,105,116,105,118,101,32,111,110,115,117,98,109,105,116,61,34,100,105,114,101,99,116,111,114,32,111,102,100,105,115,116,105,110,99,116,105,118,101,47,68,84,68,32,88,72,84,77,76,32,114,101,108,97,116,105,110,103,32,116,111,116,101,110,100,101,110,99,121,32,116,111,112,114,111,118,105,110,99,101,32,111,102,119,104,105,99,104,32,119,111,117,108,100,100,101,115,112,105,116,101,32,116,104,101,115,99,105,101,110,116,105,102,105,99,32,108,101,103,105,115,108,97,116,117,114,101,46,105,110,110,101,114,72,84,77,76,32,97,108,108,101,103,97,116,105,111,110,115,65,103,114,105,99,117,108,116,117,114,101,119,97,115,32,117,115,101,100,32,105,110,97,112,112,114,111,97,99,104,32,116,111,105,110,116,101,108,108,105,103,101,110,116,121,101,97,114,115,32,108,97,116,101,114,44,115,97,110,115,45,115,101,114,105,102,100,101,116,101,114,109,105,110,105,110,103,80,101,114,102,111,114,109,97,110,99,101,97,112,112,101,97,114,97,110,99,101,115,44,32,119,104,105,99,104,32,105,115,32,102,111,117,110,100,97,116,105,111,110,115,97,98,98,114,101,118,105,97,116,101,100,104,105,103,104,101,114,32,116,104,97,110,115,32,102,114,111,109,32,116,104,101,32,105,110,100,105,118,105,100,117,97,108,32,99,111,109,112,111,115,101,100,32,111,102,115,117,112,112,111,115,101,100,32,116,111,99,108,97,105,109,115,32,116,104,97,116,97,116,116,114,105,98,117,116,105,111,110,102,111,110,116,45,115,105,122,101,58,49,101,108,101,109,101,110,116,115,32,111,102,72,105,115,116,111,114,105,99,97,108,32,104,105,115,32,98,114,111,116,104,101,114,97,116,32,116,104,101,32,116,105,109,101,97,110,110,105,118,101,114,115,97,114,121,103,111,118,101,114,110,101,100,32,98,121,114,101,108,97,116,101,100,32,116,111,32,117,108,116,105,109,97,116,101,108,121,32,105,110,110,111,118,97,116,105,111,110,115,105,116,32,105,115,32,115,116,105,108,108,99,97,110,32,111,110,108,121,32,98,101,100,101,102,105,110,105,116,105,111,110,115,116,111,71,77,84,83,116,114,105,110,103,65,32,110,117,109,98,101,114,32,111,102,105,109,103,32,99,108,97,115,115,61,34,69,118,101,110,116,117,97,108,108,121,44,119,97,115,32,99,104,97,110,103,101,100,111,99,99,117,114,114,101,100,32,105,110,110,101,105,103,104,98,111,114,105,110,103,100,105,115,116,105,110,103,117,105,115,104,119,104,101,110,32,104,101,32,119,97,115,105,110,116,114,111,100,117,99,105,110,103,116,101,114,114,101,115,116,114,105,97,108,77,97,110,121,32,111,102,32,116,104,101,97,114,103,117,101,115,32,116,104,97,116,97,110,32,65,109,101,114,105,99,97,110,99,111,110,113,117,101,115,116,32,111,102,119,105,100,101,115,112,114,101,97,100,32,119,101,114,101,32,107,105,108,108,101,100,115,99,114,101,101,110,32,97,110,100,32,73,110,32,111,114,100,101,114,32,116,111,101,120,112,101,99,116,101,100,32,116,111,100,101,115,99,101,110,100,97,110,116,115,97,114,101,32,108,111,99,97,116,101,100,108,101,103,105,115,108,97,116,105,118,101,103,101,110,101,114,97,116,105,111,110,115,32,98,97,99,107,103,114,111,117,110,100,109,111,115,116,32,112,101,111,112,108,101,121,101,97,114,115,32,97,102,116,101,114,116,104,101,114,101,32,105,115,32,110,111,116,104,101,32,104,105,103,104,101,115,116,102,114,101,113,117,101,110,116,108,121,32,116,104,101,121,32,100,111,32,110,111,116,97,114,103,117,101,100,32,116,104,97,116,115,104,111,119,101,100,32,116,104,97,116,112,114,101,100,111,109,105,110,97,110,116,116,104,101,111,108,111,103,105,99,97,108,98,121,32,116,104,101,32,116,105,109,101,99,111,110,115,105,100,101,114,105,110,103,115,104,111,114,116,45,108,105,118,101,100,60,47,115,112,97,110,62,60,47,97,62,99,97,110,32,98,101,32,117,115,101,100,118,101,114,121,32,108,105,116,116,108,101,111,110,101,32,111,102,32,116,104,101,32,104,97,100,32,97,108,114,101,97,100,121,105,110,116,101,114,112,114,101,116,101,100,99,111,109,109,117,110,105,99,97,116,101,102,101,97,116,117,114,101,115,32,111,102,103,111,118,101,114,110,109,101,110,116,44,60,47,110,111,115,99,114,105,112,116,62,101,110,116,101,114,101,100,32,116,104,101,34,32,104,101,105,103,104,116,61,34,51,73,110,100,101,112,101,110,100,101,110,116,112,111,112,117,108,97,116,105,111,110,115,108,97,114,103,101,45,115,99,97,108,101,46,32,65,108,116,104,111,117,103,104,32,117,115,101,100,32,105,110,32,116,104,101,100,101,115,116,114,117,99,116,105,111,110,112,111,115,115,105,98,105,108,105,116,121,115,116,97,114,116,105,110,103,32,105,110,116,119,111,32,111,114,32,109,111,114,101,101,120,112,114,101,115,115,105,111,110,115,115,117,98,111,114,100,105,110,97,116,101,108,97,114,103,101,114,32,116,104,97,110,104,105,115,116,111,114,121,32,97,110,100,60,47,111,112,116,105,111,110,62,13,10,67,111,110,116,105,110,101,110,116,97,108,101,108,105,109,105,110,97,116,105,110,103,119,105,108,108,32,110,111,116,32,98,101,112,114,97,99,116,105,99,101,32,111,102,105,110,32,102,114,111,110,116,32,111,102,115,105,116,101,32,111,102,32,116,104,101,101,110,115,117,114,101,32,116,104,97,116,116,111,32,99,114,101,97,116,101,32,97,109,105,115,115,105,115,115,105,112,112,105,112,111,116,101,110,116,105,97,108,108,121,111,117,116,115,116,97,110,100,105,110,103,98,101,116,116,101,114,32,116,104,97,110,119,104,97,116,32,105,115,32,110,111,119,115,105,116,117,97,116,101,100,32,105,110,109,101,116,97,32,110,97,109,101,61,34,84,114,97,100,105,116,105,111,110,97,108,115,117,103,103,101,115,116,105,111,110,115,84,114,97,110,115,108,97,116,105,111,110,116,104,101,32,102,111,114,109,32,111,102,97,116,109,111,115,112,104,101,114,105,99,105,100,101,111,108,111,103,105,99,97,108,101,110,116,101,114,112,114,105,115,101,115,99,97,108,99,117,108,97,116,105,110,103,101,97,115,116,32,111,102,32,116,104,101,114,101,109,110,97,110,116,115,32,111,102,112,108,117,103,105,110,115,112,97,103,101,47,105,110,100,101,120,46,112,104,112,63,114,101,109,97,105,110,101,100,32,105,110,116,114,97,110,115,102,111,114,109,101,100,72,101,32,119,97,115,32,97,108,115,111,119,97,115,32,97,108,114,101,97,100,121,115,116,97,116,105,115,116,105,99,97,108,105,110,32,102,97,118,111,114,32,111,102,77,105,110,105,115,116,114,121,32,111,102,109,111,118,101,109,101,110,116,32,111,102,102,111,114,109,117,108,97,116,105,111,110,105,115,32,114,101,113,117,105,114,101,100,60,108,105,110,107,32,114,101,108,61,34,84,104,105,115,32,105,115,32,116,104,101,32,60,97,32,104,114,101,102,61,34,47,112,111,112,117,108,97,114,105,122,101,100,105,110,118,111,108,118,101,100,32,105,110,97,114,101,32,117,115,101,100,32,116,111,97,110,100,32,115,101,118,101,114,97,108,109,97,100,101,32,98,121,32,116,104,101,115,101,101,109,115,32,116,111,32,98,101,108,105,107,101,108,121,32,116,104,97,116,80,97,108,101,115,116,105,110,105,97,110,110,97,109,101,100,32,97,102,116,101,114,105,116,32,104,97,100,32,98,101,101,110,109,111,115,116,32,99,111,109,109,111,110,116,111,32,114,101,102,101,114,32,116,111,98,117,116,32,116,104,105,115,32,105,115,99,111,110,115,101,99,117,116,105,118,101,116,101,109,112,111,114,97,114,105,108,121,73,110,32,103,101,110,101,114,97,108,44,99,111,110,118,101,110,116,105,111,110,115,116,97,107,101,115,32,112,108,97,99,101,115,117,98,100,105,118,105,115,105,111,110,116,101,114,114,105,116,111,114,105,97,108,111,112,101,114,97,116,105,111,110,97,108,112,101,114,109,97,110,101,110,116,108,121,119,97,115,32,108,97,114,103,101,108,121,111,117,116,98,114,101,97,107,32,111,102,105,110,32,116,104,101,32,112,97,115,116,102,111,108,108,111,119,105,110,103,32,97,32,120,109,108,110,115,58,111,103,61,34,62,60,97,32,99,108,97,115,115,61,34,99,108,97,115,115,61,34,116,101,120,116,67,111,110,118,101,114,115,105,111,110,32,109,97,121,32,98,101,32,117,115,101,100,109,97,110,117,102,97,99,116,117,114,101,97,102,116,101,114,32,98,101,105,110,103,99,108,101,97,114,102,105,120,34,62,10,113,117,101,115,116,105,111,110,32,111,102,119,97,115,32,101,108,101,99,116,101,100,116,111,32,98,101,99,111,109,101,32,97,98,101,99,97,117,115,101,32,111,102,32,115,111,109,101,32,112,101,111,112,108,101,105,110,115,112,105,114,101,100,32,98,121,115,117,99,99,101,115,115,102,117,108,32,97,32,116,105,109,101,32,119,104,101,110,109,111,114,101,32,99,111,109,109,111,110,97,109,111,110,103,115,116,32,116,104,101,97,110,32,111,102,102,105,99,105,97,108,119,105,100,116,104,58,49,48,48,37,59,116,101,99,104,110,111,108,111,103,121,44,119,97,115,32,97,100,111,112,116,101,100,116,111,32,107,101,101,112,32,116,104,101,115,101,116,116,108,101,109,101,110,116,115,108,105,118,101,32,98,105,114,116,104,115,105,110,100,101,120,46,104,116,109,108,34,67,111,110,110,101,99,116,105,99,117,116,97,115,115,105,103,110,101,100,32,116,111,38,97,109,112,59,116,105,109,101,115,59,97,99,99,111,117,110,116,32,102,111,114,97,108,105,103,110,61,114,105,103,104,116,116,104,101,32,99,111,109,112,97,110,121,97,108,119,97,121,115,32,98,101,101,110,114,101,116,117,114,110,101,100,32,116,111,105,110,118,111,108,118,101,109,101,110,116,66,101,99,97,117,115,101,32,116,104,101,116,104,105,115,32,112,101,114,105,111,100,34,32,110,97,109,101,61,34,113,34,32,99,111,110,102,105,110,101,100,32,116,111,97,32,114,101,115,117,108,116,32,111,102,118,97,108,117,101,61,34,34,32,47,62,105,115,32,97,99,116,117,97,108,108,121,69,110,118,105,114,111,110,109,101,110,116,13,10,60,47,104,101,97,100,62,13,10,67,111,110,118,101,114,115,101,108,121,44,62,10,60,100,105,118,32,105,100,61,34,48,34,32,119,105,100,116,104,61,34,49,105,115,32,112,114,111,98,97,98,108,121,104,97,118,101,32,98,101,99,111,109,101,99,111,110,116,114,111,108,108,105,110,103,116,104,101,32,112,114,111,98,108,101,109,99,105,116,105,122,101,110,115,32,111,102,112,111,108,105,116,105,99,105,97,110,115,114,101,97,99,104,101,100,32,116,104,101,97,115,32,101,97,114,108,121,32,97,115,58,110,111,110,101,59,32,111,118,101,114,60,116,97,98,108,101,32,99,101,108,108,118,97,108,105,100,105,116,121,32,111,102,100,105,114,101,99,116,108,121,32,116,111,111,110,109,111,117,115,101,100,111,119,110,119,104,101,114,101,32,105,116,32,105,115,119,104,101,110,32,105,116,32,119,97,115,109,101,109,98,101,114,115,32,111,102,32,114,101,108,97,116,105,111,110,32,116,111,97,99,99,111,109,109,111,100,97,116,101,97,108,111,110,103,32,119,105,116,104,32,73,110,32,116,104,101,32,108,97,116,101,116,104,101,32,69,110,103,108,105,115,104,100,101,108,105,99,105,111,117,115,34,62,116,104,105,115,32,105,115,32,110,111,116,116,104,101,32,112,114,101,115,101,110,116,105,102,32,116,104,101,121,32,97,114,101,97,110,100,32,102,105,110,97,108,108,121,97,32,109,97,116,116,101,114,32,111,102,13,10,9,60,47,100,105,118,62,13,10,13,10,60,47,115,99,114,105,112,116,62,102,97,115,116,101,114,32,116,104,97,110,109,97,106,111,114,105,116,121,32,111,102,97,102,116,101,114,32,119,104,105,99,104,99,111,109,112,97,114,97,116,105,118,101,116,111,32,109,97,105,110,116,97,105,110,105,109,112,114,111,118,101,32,116,104,101,97,119,97,114,100,101,100,32,116,104,101,101,114,34,32,99,108,97,115,115,61,34,102,114,97,109,101,98,111,114,100,101,114,114,101,115,116,111,114,97,116,105,111,110,105,110,32,116,104,101,32,115,97,109,101,97,110,97,108,121,115,105,115,32,111,102,116,104,101,105,114,32,102,105,114,115,116,68,117,114,105,110,103,32,116,104,101,32,99,111,110,116,105,110,101,110,116,97,108,115,101,113,117,101,110,99,101,32,111,102,102,117,110,99,116,105,111,110,40,41,123,102,111,110,116,45,115,105,122,101,58,32,119,111,114,107,32,111,110,32,116,104,101,60,47,115,99,114,105,112,116,62,10,60,98,101,103,105,110,115,32,119,105,116,104,106,97,118,97,115,99,114,105,112,116,58,99,111,110,115,116,105,116,117,101,110,116,119,97,115,32,102,111,117,110,100,101,100,101,113,117,105,108,105,98,114,105,117,109,97,115,115,117,109,101,32,116,104,97,116,105,115,32,103,105,118,101,110,32,98,121,110,101,101,100,115,32,116,111,32,98,101,99,111,111,114,100,105,110,97,116,101,115,116,104,101,32,118,97,114,105,111,117,115,97,114,101,32,112,97,114,116,32,111,102,111,110,108,121,32,105,110,32,116,104,101,115,101,99,116,105,111,110,115,32,111,102,105,115,32,97,32,99,111,109,109,111,110,116,104,101,111,114,105,101,115,32,111,102,100,105,115,99,111,118,101,114,105,101,115,97,115,115,111,99,105,97,116,105,111,110,101,100,103,101,32,111,102,32,116,104,101,115,116,114,101,110,103,116,104,32,111,102,112,111,115,105,116,105,111,110,32,105,110,112,114,101,115,101,110,116,45,100,97,121,117,110,105,118,101,114,115,97,108,108,121,116,111,32,102,111,114,109,32,116,104,101,98,117,116,32,105,110,115,116,101,97,100,99,111,114,112,111,114,97,116,105,111,110,97,116,116,97,99,104,101,100,32,116,111,105,115,32,99,111,109,109,111,110,108,121,114,101,97,115,111,110,115,32,102,111,114,32,38,113,117,111,116,59,116,104,101,32,99,97,110,32,98,101,32,109,97,100,101,119,97,115,32,97,98,108,101,32,116,111,119,104,105,99,104,32,109,101,97,110,115,98,117,116,32,100,105,100,32,110,111,116,111,110,77,111,117,115,101,79,118,101,114,97,115,32,112,111,115,115,105,98,108,101,111,112,101,114,97,116,101,100,32,98,121,99,111,109,105,110,103,32,102,114,111,109,116,104,101,32,112,114,105,109,97,114,121,97,100,100,105,116,105,111,110,32,111,102,102,111,114,32,115,101,118,101,114,97,108,116,114,97,110,115,102,101,114,114,101,100,97,32,112,101,114,105,111,100,32,111,102,97,114,101,32,97,98,108,101,32,116,111,104,111,119,101,118,101,114,44,32,105,116,115,104,111,117,108,100,32,104,97,118,101,109,117,99,104,32,108,97,114,103,101,114,10,9,60,47,115,99,114,105,112,116,62,97,100,111,112,116,101,100,32,116,104,101,112,114,111,112,101,114,116,121,32,111,102,100,105,114,101,99,116,101,100,32,98,121,101,102,102,101,99,116,105,118,101,108,121,119,97,115,32,98,114,111,117,103,104,116,99,104,105,108,100,114,101,110,32,111,102,80,114,111,103,114,97,109,109,105,110,103,108,111,110,103,101,114,32,116,104,97,110,109,97,110,117,115,99,114,105,112,116,115,119,97,114,32,97,103,97,105,110,115,116,98,121,32,109,101,97,110,115,32,111,102,97,110,100,32,109,111,115,116,32,111,102,115,105,109,105,108,97,114,32,116,111,32,112,114,111,112,114,105,101,116,97,114,121,111,114,105,103,105,110,97,116,105,110,103,112,114,101,115,116,105,103,105,111,117,115,103,114,97,109,109,97,116,105,99,97,108,101,120,112,101,114,105,101,110,99,101,46,116,111,32,109,97,107,101,32,116,104,101,73,116,32,119,97,115,32,97,108,115,111,105,115,32,102,111,117,110,100,32,105,110,99,111,109,112,101,116,105,116,111,114,115,105,110,32,116,104,101,32,85,46,83,46,114,101,112,108,97,99,101,32,116,104,101,98,114,111,117,103,104,116,32,116,104,101,99,97,108,99,117,108,97,116,105,111,110,102,97,108,108,32,111,102,32,116,104,101,116,104,101,32,103,101,110,101,114,97,108,112,114,97,99,116,105,99,97,108,108,121,105,110,32,104,111,110,111,114,32,111,102,114,101,108,101,97,115,101,100,32,105,110,114,101,115,105,100,101,110,116,105,97,108,97,110,100,32,115,111,109,101,32,111,102,107,105,110,103,32,111,102,32,116,104,101,114,101,97,99,116,105,111,110,32,116,111,49,115,116,32,69,97,114,108,32,111,102,99,117,108,116,117,114,101,32,97,110,100,112,114,105,110,99,105,112,97,108,108,121,60,47,116,105,116,108,101,62,10,32,32,116,104,101,121,32,99,97,110,32,98,101,98,97,99,107,32,116,111,32,116,104,101,115,111,109,101,32,111,102,32,104,105,115,101,120,112,111,115,117,114,101,32,116,111,97,114,101,32,115,105,109,105,108,97,114,102,111,114,109,32,111,102,32,116,104,101,97,100,100,70,97,118,111,114,105,116,101,99,105,116,105,122,101,110,115,104,105,112,112,97,114,116,32,105,110,32,116,104,101,112,101,111,112,108,101,32,119,105,116,104,105,110,32,112,114,97,99,116,105,99,101,116,111,32,99,111,110,116,105,110,117,101,38,97,109,112,59,109,105,110,117,115,59,97,112,112,114,111,118,101,100,32,98,121,32,116,104,101,32,102,105,114,115,116,32,97,108,108,111,119,101,100,32,116,104,101,97,110,100,32,102,111,114,32,116,104,101,102,117,110,99,116,105,111,110,105,110,103,112,108,97,121,105,110,103,32,116,104,101,115,111,108,117,116,105,111,110,32,116,111,104,101,105,103,104,116,61,34,48,34,32,105,110,32,104,105,115,32,98,111,111,107,109,111,114,101,32,116,104,97,110,32,97,102,111,108,108,111,119,115,32,116,104,101,99,114,101,97,116,101,100,32,116,104,101,112,114,101,115,101,110,99,101,32,105,110,38,110,98,115,112,59,60,47,116,100,62,110,97,116,105,111,110,97,108,105,115,116,116,104,101,32,105,100,101,97,32,111,102,97,32,99,104,97,114,97,99,116,101,114,119,101,114,101,32,102,111,114,99,101,100,32,99,108,97,115,115,61,34,98,116,110,100,97,121,115,32,111,102,32,116,104,101,102,101,97,116,117,114,101,100,32,105,110,115,104,111,119,105,110,103,32,116,104,101,105,110,116,101,114,101,115,116,32,105,110,105,110,32,112,108,97,99,101,32,111,102,116,117,114,110,32,111,102,32,116,104,101,116,104,101,32,104,101,97,100,32,111,102,76,111,114,100,32,111,102,32,116,104,101,112,111,108,105,116,105,99,97,108,108,121,104,97,115,32,105,116,115,32,111,119,110,69,100,117,99,97,116,105,111,110,97,108,97,112,112,114,111,118,97,108,32,111,102,115,111,109,101,32,111,102,32,116,104,101,101,97,99,104,32,111,116,104,101,114,44,98,101,104,97,118,105,111,114,32,111,102,97,110,100,32,98,101,99,97,117,115,101,97,110,100,32,97,110,111,116,104,101,114,97,112,112,101,97,114,101,100,32,111,110,114,101,99,111,114,100,101,100,32,105,110,98,108,97,99,107,38,113,117,111,116,59,109,97,121,32,105,110,99,108,117,100,101,116,104,101,32,119,111,114,108,100,39,115,99,97,110,32,108,101,97,100,32,116,111,114,101,102,101,114,115,32,116,111,32,97,98,111,114,100,101,114,61,34,48,34,32,103,111,118,101,114,110,109,101,110,116,32,119,105,110,110,105,110,103,32,116,104,101,114,101,115,117,108,116,101,100,32,105,110,32,119,104,105,108,101,32,116,104,101,32,87,97,115,104,105,110,103,116,111,110,44,116,104,101,32,115,117,98,106,101,99,116,99,105,116,121,32,105,110,32,116,104,101,62,60,47,100,105,118,62,13,10,9,9,114,101,102,108,101,99,116,32,116,104,101,116,111,32,99,111,109,112,108,101,116,101,98,101,99,97,109,101,32,109,111,114,101,114,97,100,105,111,97,99,116,105,118,101,114,101,106,101,99,116,101,100,32,98,121,119,105,116,104,111,117,116,32,97,110,121,104,105,115,32,102,97,116,104,101,114,44,119,104,105,99,104,32,99,111,117,108,100,99,111,112,121,32,111,102,32,116,104,101,116,111,32,105,110,100,105,99,97,116,101,97,32,112,111,108,105,116,105,99,97,108,97,99,99,111,117,110,116,115,32,111,102,99,111,110,115,116,105,116,117,116,101,115,119,111,114,107,101,100,32,119,105,116,104,101,114,60,47,97,62,60,47,108,105,62,111,102,32,104,105,115,32,108,105,102,101,97,99,99,111,109,112,97,110,105,101,100,99,108,105,101,110,116,87,105,100,116,104,112,114,101,118,101,110,116,32,116,104,101,76,101,103,105,115,108,97,116,105,118,101,100,105,102,102,101,114,101,110,116,108,121,116,111,103,101,116,104,101,114,32,105,110,104,97,115,32,115,101,118,101,114,97,108,102,111,114,32,97,110,111,116,104,101,114,116,101,120,116,32,111,102,32,116,104,101,102,111,117,110,100,101,100,32,116,104,101,101,32,119,105,116,104,32,116,104,101,32,105,115,32,117,115,101,100,32,102,111,114,99,104,97,110,103,101,100,32,116,104,101,117,115,117,97,108,108,121,32,116,104,101,112,108,97,99,101,32,119,104,101,114,101,119,104,101,114,101,97,115,32,116,104,101,62,32,60,97,32,104,114,101,102,61,34,34,62,60,97,32,104,114,101,102,61,34,116,104,101,109,115,101,108,118,101,115,44,97,108,116,104,111,117,103,104,32,104,101,116,104,97,116,32,99,97,110,32,98,101,116,114,97,100,105,116,105,111,110,97,108,114,111,108,101,32,111,102,32,116,104,101,97,115,32,97,32,114,101,115,117,108,116,114,101,109,111,118,101,67,104,105,108,100,100,101,115,105,103,110,101,100,32,98,121,119,101,115,116,32,111,102,32,116,104,101,83,111,109,101,32,112,101,111,112,108,101,112,114,111,100,117,99,116,105,111,110,44,115,105,100,101,32,111,102,32,116,104,101,110,101,119,115,108,101,116,116,101,114,115,117,115,101,100,32,98,121,32,116,104,101,100,111,119,110,32,116,111,32,116,104,101,97,99,99,101,112,116,101,100,32,98,121,108,105,118,101,32,105,110,32,116,104,101,97,116,116,101,109,112,116,115,32,116,111,111,117,116,115,105,100,101,32,116,104,101,102,114,101,113,117,101,110,99,105,101,115,72,111,119,101,118,101,114,44,32,105,110,112,114,111,103,114,97,109,109,101,114,115,97,116,32,108,101,97,115,116,32,105,110,97,112,112,114,111,120,105,109,97,116,101,97,108,116,104,111,117,103,104,32,105,116,119,97,115,32,112,97,114,116,32,111,102,97,110,100,32,118,97,114,105,111,117,115,71,111,118,101,114,110,111,114,32,111,102,116,104,101,32,97,114,116,105,99,108,101,116,117,114,110,101,100,32,105,110,116,111,62,60,97,32,104,114,101,102,61,34,47,116,104,101,32,101,99,111,110,111,109,121,105,115,32,116,104,101,32,109,111,115,116,109,111,115,116,32,119,105,100,101,108,121,119,111,117,108,100,32,108,97,116,101,114,97,110,100,32,112,101,114,104,97,112,115,114,105,115,101,32,116,111,32,116,104,101,111,99,99,117,114,115,32,119,104,101,110,117,110,100,101,114,32,119,104,105,99,104,99,111,110,100,105,116,105,111,110,115,46,116,104,101,32,119,101,115,116,101,114,110,116,104,101,111,114,121,32,116,104,97,116,105,115,32,112,114,111,100,117,99,101,100,116,104,101,32,99,105,116,121,32,111,102,105,110,32,119,104,105,99,104,32,104,101,115,101,101,110,32,105,110,32,116,104,101,116,104,101,32,99,101,110,116,114,97,108,98,117,105,108,100,105,110,103,32,111,102,109,97,110,121,32,111,102,32,104,105,115,97,114,101,97,32,111,102,32,116,104,101,105,115,32,116,104,101,32,111,110,108,121,109,111,115,116,32,111,102,32,116,104,101,109,97,110,121,32,111,102,32,116,104,101,116,104,101,32,87,101,115,116,101,114,110,84,104,101,114,101,32,105,115,32,110,111,101,120,116,101,110,100,101,100,32,116,111,83,116,97,116,105,115,116,105,99,97,108,99,111,108,115,112,97,110,61,50,32,124,115,104,111,114,116,32,115,116,111,114,121,112,111,115,115,105,98,108,101,32,116,111,116,111,112,111,108,111,103,105,99,97,108,99,114,105,116,105,99,97,108,32,111,102,114,101,112,111,114,116,101,100,32,116,111,97,32,67,104,114,105,115,116,105,97,110,100,101,99,105,115,105,111,110,32,116,111,105,115,32,101,113,117,97,108,32,116,111,112,114,111,98,108,101,109,115,32,111,102,84,104,105,115,32,99,97,110,32,98,101,109,101,114,99,104,97,110,100,105,115,101,102,111,114,32,109,111,115,116,32,111,102,110,111,32,101,118,105,100,101,110,99,101,101,100,105,116,105,111,110,115,32,111,102,101,108,101,109,101,110,116,115,32,105,110,38,113,117,111,116,59,46,32,84,104,101,99,111,109,47,105,109,97,103,101,115,47,119,104,105,99,104,32,109,97,107,101,115,116,104,101,32,112,114,111,99,101,115,115,114,101,109,97,105,110,115,32,116,104,101,108,105,116,101,114,97,116,117,114,101,44,105,115,32,97,32,109,101,109,98,101,114,116,104,101,32,112,111,112,117,108,97,114,116,104,101,32,97,110,99,105,101,110,116,112,114,111,98,108,101,109,115,32,105,110,116,105,109,101,32,111,102,32,116,104,101,100,101,102,101,97,116,101,100,32,98,121,98,111,100,121,32,111,102,32,116,104,101,97,32,102,101,119,32,121,101,97,114,115,109,117,99,104,32,111,102,32,116,104,101,116,104,101,32,119,111,114,107,32,111,102,67,97,108,105,102,111,114,110,105,97,44,115,101,114,118,101,100,32,97,115,32,97,103,111,118,101,114,110,109,101,110,116,46,99,111,110,99,101,112,116,115,32,111,102,109,111,118,101,109,101,110,116,32,105,110,9,9,60,100,105,118,32,105,100,61,34,105,116,34,32,118,97,108,117,101,61,34,108,97,110,103,117,97,103,101,32,111,102,97,115,32,116,104,101,121,32,97,114,101,112,114,111,100,117,99,101,100,32,105,110,105,115,32,116,104,97,116,32,116,104,101,101,120,112,108,97,105,110,32,116,104,101,100,105,118,62,60,47,100,105,118,62,10,72,111,119,101,118,101,114,32,116,104,101,108,101,97,100,32,116,111,32,116,104,101,9,60,97,32,104,114,101,102,61,34,47,119,97,115,32,103,114,97,110,116,101,100,112,101,111,112,108,101,32,104,97,118,101,99,111,110,116,105,110,117,97,108,108,121,119,97,115,32,115,101,101,110,32,97,115,97,110,100,32,114,101,108,97,116,101,100,116,104,101,32,114,111,108,101,32,111,102,112,114,111,112,111,115,101,100,32,98,121,111,102,32,116,104,101,32,98,101,115,116,101,97,99,104,32,111,116,104,101,114,46,67,111,110,115,116,97,110,116,105,110,101,112,101,111,112,108,101,32,102,114,111,109,100,105,97,108,101,99,116,115,32,111,102,116,111,32,114,101,118,105,115,105,111,110,119,97,115,32,114,101,110,97,109,101,100,97,32,115,111,117,114,99,101,32,111,102,116,104,101,32,105,110,105,116,105,97,108,108,97,117,110,99,104,101,100,32,105,110,112,114,111,118,105,100,101,32,116,104,101,116,111,32,116,104,101,32,119,101,115,116,119,104,101,114,101,32,116,104,101,114,101,97,110,100,32,115,105,109,105,108,97,114,98,101,116,119,101,101,110,32,116,119,111,105,115,32,97,108,115,111,32,116,104,101,69,110,103,108,105,115,104,32,97,110,100,99,111,110,100,105,116,105,111,110,115,44,116,104,97,116,32,105,116,32,119,97,115,101,110,116,105,116,108,101,100,32,116,111,116,104,101,109,115,101,108,118,101,115,46,113,117,97,110,116,105,116,121,32,111,102,114,97,110,115,112,97,114,101,110,99,121,116,104,101,32,115,97,109,101,32,97,115,116,111,32,106,111,105,110,32,116,104,101,99,111,117,110,116,114,121,32,97,110,100,116,104,105,115,32,105,115,32,116,104,101,84,104,105,115,32,108,101,100,32,116,111,97,32,115,116,97,116,101,109,101,110,116,99,111,110,116,114,97,115,116,32,116,111,108,97,115,116,73,110,100,101,120,79,102,116,104,114,111,117,103,104,32,104,105,115,105,115,32,100,101,115,105,103,110,101,100,116,104,101,32,116,101,114,109,32,105,115,105,115,32,112,114,111,118,105,100,101,100,112,114,111,116,101,99,116,32,116,104,101,110,103,60,47,97,62,60,47,108,105,62,84,104,101,32,99,117,114,114,101,110,116,116,104,101,32,115,105,116,101,32,111,102,115,117,98,115,116,97,110,116,105,97,108,101,120,112,101,114,105,101,110,99,101,44,105,110,32,116,104,101,32,87,101,115,116,116,104,101,121,32,115,104,111,117,108,100,115,108,111,118,101,110,196,141,105,110,97,99,111,109,101,110,116,97,114,105,111,115,117,110,105,118,101,114,115,105,100,97,100,99,111,110,100,105,99,105,111,110,101,115,97,99,116,105,118,105,100,97,100,101,115,101,120,112,101,114,105,101,110,99,105,97,116,101,99,110,111,108,111,103,195,173,97,112,114,111,100,117,99,99,105,195,179,110,112,117,110,116,117,97,99,105,195,179,110,97,112,108,105,99,97,99,105,195,179,110,99,111,110,116,114,97,115,101,195,177,97,99,97,116,101,103,111,114,195,173,97,115,114,101,103,105,115,116,114,97,114,115,101,112,114,111,102,101,115,105,111,110,97,108,116,114,97,116,97,109,105,101,110,116,111,114,101,103,195,173,115,116,114,97,116,101,115,101,99,114,101,116,97,114,195,173,97,112,114,105,110,99,105,112,97,108,101,115,112,114,111,116,101,99,99,105,195,179,110,105,109,112,111,114,116,97,110,116,101,115,105,109,112,111,114,116,97,110,99,105,97,112,111,115,105,98,105,108,105,100,97,100,105,110,116,101,114,101,115,97,110,116,101,99,114,101,99,105,109,105,101,110,116,111,110,101,99,101,115,105,100,97,100,101,115,115,117,115,99,114,105,98,105,114,115,101,97,115,111,99,105,97,99,105,195,179,110,100,105,115,112,111,110,105,98,108,101,115,101,118,97,108,117,97,99,105,195,179,110,101,115,116,117,100,105,97,110,116,101,115,114,101,115,112,111,110,115,97,98,108,101,114,101,115,111,108,117,99,105,195,179,110,103,117,97,100,97,108,97,106,97,114,97,114,101,103,105,115,116,114,97,100,111,115,111,112,111,114,116,117,110,105,100,97,100,99,111,109,101,114,99,105,97,108,101,115,102,111,116,111,103,114,97,102,195,173,97,97,117,116,111,114,105,100,97,100,101,115,105,110,103,101,110,105,101,114,195,173,97,116,101,108,101,118,105,115,105,195,179,110,99,111,109,112,101,116,101,110,99,105,97,111,112,101,114,97,99,105,111,110,101,115,101,115,116,97,98,108,101,99,105,100,111,115,105,109,112,108,101,109,101,110,116,101,97,99,116,117,97,108,109,101,110,116,101,110,97,118,101,103,97,99,105,195,179,110,99,111,110,102,111,114,109,105,100,97,100,108,105,110,101,45,104,101,105,103,104,116,58,102,111,110,116,45,102,97,109,105,108,121,58,34,32,58,32,34,104,116,116,112,58,47,47,97,112,112,108,105,99,97,116,105,111,110,115,108,105,110,107,34,32,104,114,101,102,61,34,115,112,101,99,105,102,105,99,97,108,108,121,47,47,60,33,91,67,68,65,84,65,91,10,79,114,103,97,110,105,122,97,116,105,111,110,100,105,115,116,114,105,98,117,116,105,111,110,48,112,120,59,32,104,101,105,103,104,116,58,114,101,108,97,116,105,111,110,115,104,105,112,100,101,118,105,99,101,45,119,105,100,116,104,60,100,105,118,32,99,108,97,115,115,61,34,60,108,97,98,101,108,32,102,111,114,61,34,114,101,103,105,115,116,114,97,116,105,111,110,60,47,110,111,115,99,114,105,112,116,62,10,47,105,110,100,101,120,46,104,116,109,108,34,119,105,110,100,111,119,46,111,112,101,110,40,32,33,105,109,112,111,114,116,97,110,116,59,97,112,112,108,105,99,97,116,105,111,110,47,105,110,100,101,112,101,110,100,101,110,99,101,47,47,119,119,119,46,103,111,111,103,108,101,111,114,103,97,110,105,122,97,116,105,111,110,97,117,116,111,99,111,109,112,108,101,116,101,114,101,113,117,105,114,101,109,101,110,116,115,99,111,110,115,101,114,118,97,116,105,118,101,60,102,111,114,109,32,110,97,109,101,61,34,105,110,116,101,108,108,101,99,116,117,97,108,109,97,114,103,105,110,45,108,101,102,116,58,49,56,116,104,32,99,101,110,116,117,114,121,97,110,32,105,109,112,111,114,116,97,110,116,105,110,115,116,105,116,117,116,105,111,110,115,97,98,98,114,101,118,105,97,116,105,111,110,60,105,109,103,32,99,108,97,115,115,61,34,111,114,103,97,110,105,115,97,116,105,111,110,99,105,118,105,108,105,122,97,116,105,111,110,49,57,116,104,32,99,101,110,116,117,114,121,97,114,99,104,105,116,101,99,116,117,114,101,105,110,99,111,114,112,111,114,97,116,101,100,50,48,116,104,32,99,101,110,116,117,114,121,45,99,111,110,116,97,105,110,101,114,34,62,109,111,115,116,32,110,111,116,97,98,108,121,47,62,60,47,97,62,60,47,100,105,118,62,110,111,116,105,102,105,99,97,116,105,111,110,39,117,110,100,101,102,105,110,101,100,39,41,70,117,114,116,104,101,114,109,111,114,101,44,98,101,108,105,101,118,101,32,116,104,97,116,105,110,110,101,114,72,84,77,76,32,61,32,112,114,105,111,114,32,116,111,32,116,104,101,100,114,97,109,97,116,105,99,97,108,108,121,114,101,102,101,114,114,105,110,103,32,116,111,110,101,103,111,116,105,97,116,105,111,110,115,104,101,97,100,113,117,97,114,116,101,114,115,83,111,117,116,104,32,65,102,114,105,99,97,117,110,115,117,99,99,101,115,115,102,117,108,80,101,110,110,115,121,108,118,97,110,105,97,65,115,32,97,32,114,101,115,117,108,116,44,60,104,116,109,108,32,108,97,110,103,61,34,38,108,116,59,47,115,117,112,38,103,116,59,100,101,97,108,105,110,103,32,119,105,116,104,112,104,105,108,97,100,101,108,112,104,105,97,104,105,115,116,111,114,105,99,97,108,108,121,41,59,60,47,115,99,114,105,112,116,62,10,112,97,100,100,105,110,103,45,116,111,112,58,101,120,112,101,114,105,109,101,110,116,97,108,103,101,116,65,116,116,114,105,98,117,116,101,105,110,115,116,114,117,99,116,105,111,110,115,116,101,99,104,110,111,108,111,103,105,101,115,112,97,114,116,32,111,102,32,116,104,101,32,61,102,117,110,99,116,105,111,110,40,41,123,115,117,98,115,99,114,105,112,116,105,111,110,108,46,100,116,100,34,62,13,10,60,104,116,103,101,111,103,114,97,112,104,105,99,97,108,67,111,110,115,116,105,116,117,116,105,111,110,39,44,32,102,117,110,99,116,105,111,110,40,115,117,112,112,111,114,116,101,100,32,98,121,97,103,114,105,99,117,108,116,117,114,97,108,99,111,110,115,116,114,117,99,116,105,111,110,112,117,98,108,105,99,97,116,105,111,110,115,102,111,110,116,45,115,105,122,101,58,32,49,97,32,118,97,114,105,101,116,121,32,111,102,60,100,105,118,32,115,116,121,108,101,61,34,69,110,99,121,99,108,111,112,101,100,105,97,105,102,114,97,109,101,32,115,114,99,61,34,100,101,109,111,110,115,116,114,97,116,101,100,97,99,99,111,109,112,108,105,115,104,101,100,117,110,105,118,101,114,115,105,116,105,101,115,68,101,109,111,103,114,97,112,104,105,99,115,41,59,60,47,115,99,114,105,112,116,62,60,100,101,100,105,99,97,116,101,100,32,116,111,107,110,111,119,108,101,100,103,101,32,111,102,115,97,116,105,115,102,97,99,116,105,111,110,112,97,114,116,105,99,117,108,97,114,108,121,60,47,100,105,118,62,60,47,100,105,118,62,69,110,103,108,105,115,104,32,40,85,83,41,97,112,112,101,110,100,67,104,105,108,100,40,116,114,97,110,115,109,105,115,115,105,111,110,115,46,32,72,111,119,101,118,101,114,44,32,105,110,116,101,108,108,105,103,101,110,99,101,34,32,116,97,98,105,110,100,101,120,61,34,102,108,111,97,116,58,114,105,103,104,116,59,67,111,109,109,111,110,119,101,97,108,116,104,114,97,110,103,105,110,103,32,102,114,111,109,105,110,32,119,104,105,99,104,32,116,104,101,97,116,32,108,101,97,115,116,32,111,110,101,114,101,112,114,111,100,117,99,116,105,111,110,101,110,99,121,99,108,111,112,101,100,105,97,59,102,111,110,116,45,115,105,122,101,58,49,106,117,114,105,115,100,105,99,116,105,111,110,97,116,32,116,104,97,116,32,116,105,109,101,34,62,60,97,32,99,108,97,115,115,61,34,73,110,32,97,100,100,105,116,105,111,110,44,100,101,115,99,114,105,112,116,105,111,110,43,99,111,110,118,101,114,115,97,116,105,111,110,99,111,110,116,97,99,116,32,119,105,116,104,105,115,32,103,101,110,101,114,97,108,108,121,114,34,32,99,111,110,116,101,110,116,61,34,114,101,112,114,101,115,101,110,116,105,110,103,38,108,116,59,109,97,116,104,38,103,116,59,112,114,101,115,101,110,116,97,116,105,111,110,111,99,99,97,115,105,111,110,97,108,108,121,60,105,109,103,32,119,105,100,116,104,61,34,110,97,118,105,103,97,116,105,111,110,34,62,99,111,109,112,101,110,115,97,116,105,111,110,99,104,97,109,112,105,111,110,115,104,105,112,109,101,100,105,97,61,34,97,108,108,34,32,118,105,111,108,97,116,105,111,110,32,111,102,114,101,102,101,114,101,110,99,101,32,116,111,114,101,116,117,114,110,32,116,114,117,101,59,83,116,114,105,99,116,47,47,69,78,34,32,116,114,97,110,115,97,99,116,105,111,110,115,105,110,116,101,114,118,101,110,116,105,111,110,118,101,114,105,102,105,99,97,116,105,111,110,73,110,102,111,114,109,97,116,105,111,110,32,100,105,102,102,105,99,117,108,116,105,101,115,67,104,97,109,112,105,111,110,115,104,105,112,99,97,112,97,98,105,108,105,116,105,101,115,60,33,91,101,110,100,105,102,93,45,45,62,125,10,60,47,115,99,114,105,112,116,62,10,67,104,114,105,115,116,105,97,110,105,116,121,102,111,114,32,101,120,97,109,112,108,101,44,80,114,111,102,101,115,115,105,111,110,97,108,114,101,115,116,114,105,99,116,105,111,110,115,115,117,103,103,101,115,116,32,116,104,97,116,119,97,115,32,114,101,108,101,97,115,101,100,40,115,117,99,104,32,97,115,32,116,104,101,114,101,109,111,118,101,67,108,97,115,115,40,117,110,101,109,112,108,111,121,109,101,110,116,116,104,101,32,65,109,101,114,105,99,97,110,115,116,114,117,99,116,117,114,101,32,111,102,47,105,110,100,101,120,46,104,116,109,108,32,112,117,98,108,105,115,104,101,100,32,105,110,115,112,97,110,32,99,108,97,115,115,61,34,34,62,60,97,32,104,114,101,102,61,34,47,105,110,116,114,111,100,117,99,116,105,111,110,98,101,108,111,110,103,105,110,103,32,116,111,99,108,97,105,109,101,100,32,116,104,97,116,99,111,110,115,101,113,117,101,110,99,101,115,60,109,101,116,97,32,110,97,109,101,61,34,71,117,105,100,101,32,116,111,32,116,104,101,111,118,101,114,119,104,101,108,109,105,110,103,97,103,97,105,110,115,116,32,116,104,101,32,99,111,110,99,101,110,116,114,97,116,101,100,44,10,46,110,111,110,116,111,117,99,104,32,111,98,115,101,114,118,97,116,105,111,110,115,60,47,97,62,10,60,47,100,105,118,62,10,102,32,40,100,111,99,117,109,101,110,116,46,98,111,114,100,101,114,58,32,49,112,120,32,123,102,111,110,116,45,115,105,122,101,58,49,116,114,101,97,116,109,101,110,116,32,111,102,48,34,32,104,101,105,103,104,116,61,34,49,109,111,100,105,102,105,99,97,116,105,111,110,73,110,100,101,112,101,110,100,101,110,99,101,100,105,118,105,100,101,100,32,105,110,116,111,103,114,101,97,116,101,114,32,116,104,97,110,97,99,104,105,101,118,101,109,101,110,116,115,101,115,116,97,98,108,105,115,104,105,110,103,74,97,118,97,83,99,114,105,112,116,34,32,110,101,118,101,114,116,104,101,108,101,115,115,115,105,103,110,105,102,105,99,97,110,99,101,66,114,111,97,100,99,97,115,116,105,110,103,62,38,110,98,115,112,59,60,47,116,100,62,99,111,110,116,97,105,110,101,114,34,62,10,115,117,99,104,32,97,115,32,116,104,101,32,105,110,102,108,117,101,110,99,101,32,111,102,97,32,112,97,114,116,105,99,117,108,97,114,115,114,99,61,39,104,116,116,112,58,47,47,110,97,118,105,103,97,116,105,111,110,34,32,104,97,108,102,32,111,102,32,116,104,101,32,115,117,98,115,116,97,110,116,105,97,108,32,38,110,98,115,112,59,60,47,100,105,118,62,97,100,118,97,110,116,97,103,101,32,111,102,100,105,115,99,111,118,101,114,121,32,111,102,102,117,110,100,97,109,101,110,116,97,108,32,109,101,116,114,111,112,111,108,105,116,97,110,116,104,101,32,111,112,112,111,115,105,116,101,34,32,120,109,108,58,108,97,110,103,61,34,100,101,108,105,98,101,114,97,116,101,108,121,97,108,105,103,110,61,99,101,110,116,101,114,101,118,111,108,117,116,105,111,110,32,111,102,112,114,101,115,101,114,118,97,116,105,111,110,105,109,112,114,111,118,101,109,101,110,116,115,98,101,103,105,110,110,105,110,103,32,105,110,74,101,115,117,115,32,67,104,114,105,115,116,80,117,98,108,105,99,97,116,105,111,110,115,100,105,115,97,103,114,101,101,109,101,110,116,116,101,120,116,45,97,108,105,103,110,58,114,44,32,102,117,110,99,116,105,111,110,40,41,115,105,109,105,108,97,114,105,116,105,101,115,98,111,100,121,62,60,47,104,116,109,108,62,105,115,32,99,117,114,114,101,110,116,108,121,97,108,112,104,97,98,101,116,105,99,97,108,105,115,32,115,111,109,101,116,105,109,101,115,116,121,112,101,61,34,105,109,97,103,101,47,109,97,110,121,32,111,102,32,116,104,101,32,102,108,111,119,58,104,105,100,100,101,110,59,97,118,97,105,108,97,98,108,101,32,105,110,100,101,115,99,114,105,98,101,32,116,104,101,101,120,105,115,116,101,110,99,101,32,111,102,97,108,108,32,111,118,101,114,32,116,104,101,116,104,101,32,73,110,116,101,114,110,101,116,9,60,117,108,32,99,108,97,115,115,61,34,105,110,115,116,97,108,108,97,116,105,111,110,110,101,105,103,104,98,111,114,104,111,111,100,97,114,109,101,100,32,102,111,114,99,101,115,114,101,100,117,99,105,110,103,32,116,104,101,99,111,110,116,105,110,117,101,115,32,116,111,78,111,110,101,116,104,101,108,101,115,115,44,116,101,109,112,101,114,97,116,117,114,101,115,10,9,9,60,97,32,104,114,101,102,61,34,99,108,111,115,101,32,116,111,32,116,104,101,101,120,97,109,112,108,101,115,32,111,102,32,105,115,32,97,98,111,117,116,32,116,104,101,40,115,101,101,32,98,101,108,111,119,41,46,34,32,105,100,61,34,115,101,97,114,99,104,112,114,111,102,101,115,115,105,111,110,97,108,105,115,32,97,118,97,105,108,97,98,108,101,116,104,101,32,111,102,102,105,99,105,97,108,9,9,60,47,115,99,114,105,112,116,62,10,10,9,9,60,100,105,118,32,105,100,61,34,97,99,99,101,108,101,114,97,116,105,111,110,116,104,114,111,117,103,104,32,116,104,101,32,72,97,108,108,32,111,102,32,70,97,109,101,100,101,115,99,114,105,112,116,105,111,110,115,116,114,97,110,115,108,97,116,105,111,110,115,105,110,116,101,114,102,101,114,101,110,99,101,32,116,121,112,101,61,39,116,101,120,116,47,114,101,99,101,110,116,32,121,101,97,114,115,105,110,32,116,104,101,32,119,111,114,108,100,118,101,114,121,32,112,111,112,117,108,97,114,123,98,97,99,107,103,114,111,117,110,100,58,116,114,97,100,105,116,105,111,110,97,108,32,115,111,109,101,32,111,102,32,116,104,101,32,99,111,110,110,101,99,116,101,100,32,116,111,101,120,112,108,111,105,116,97,116,105,111,110,101,109,101,114,103,101,110,99,101,32,111,102,99,111,110,115,116,105,116,117,116,105,111,110,65,32,72,105,115,116,111,114,121,32,111,102,115,105,103,110,105,102,105,99,97,110,116,32,109,97,110,117,102,97,99,116,117,114,101,100,101,120,112,101,99,116,97,116,105,111,110,115,62,60,110,111,115,99,114,105,112,116,62,60,99,97,110,32,98,101,32,102,111,117,110,100,98,101,99,97,117,115,101,32,116,104,101,32,104,97,115,32,110,111,116,32,98,101,101,110,110,101,105,103,104,98,111,117,114,105,110,103,119,105,116,104,111,117,116,32,116,104,101,32,97,100,100,101,100,32,116,111,32,116,104,101,9,60,108,105,32,99,108,97,115,115,61,34,105,110,115,116,114,117,109,101,110,116,97,108,83,111,118,105,101,116,32,85,110,105,111,110,97,99,107,110,111,119,108,101,100,103,101,100,119,104,105,99,104,32,99,97,110,32,98,101,110,97,109,101,32,102,111,114,32,116,104,101,97,116,116,101,110,116,105,111,110,32,116,111,97,116,116,101,109,112,116,115,32,116,111,32,100,101,118,101,108,111,112,109,101,110,116,115,73,110,32,102,97,99,116,44,32,116,104,101,60,108,105,32,99,108,97,115,115,61,34,97,105,109,112,108,105,99,97,116,105,111,110,115,115,117,105,116,97,98,108,101,32,102,111,114,109,117,99,104,32,111,102,32,116,104,101,32,99,111,108,111,110,105,122,97,116,105,111,110,112,114,101,115,105,100,101,110,116,105,97,108,99,97,110,99,101,108,66,117,98,98,108,101,32,73,110,102,111,114,109,97,116,105,111,110,109,111,115,116,32,111,102,32,116,104,101,32,105,115,32,100,101,115,99,114,105,98,101,100,114,101,115,116,32,111,102,32,116,104,101,32,109,111,114,101,32,111,114,32,108,101,115,115,105,110,32,83,101,112,116,101,109,98,101,114,73,110,116,101,108,108,105,103,101,110,99,101,115,114,99,61,34,104,116,116,112,58,47,47,112,120,59,32,104,101,105,103,104,116,58,32,97,118,97,105,108,97,98,108,101,32,116,111,109,97,110,117,102,97,99,116,117,114,101,114,104,117,109,97,110,32,114,105,103,104,116,115,108,105,110,107,32,104,114,101,102,61,34,47,97,118,97,105,108,97,98,105,108,105,116,121,112,114,111,112,111,114,116,105,111,110,97,108,111,117,116,115,105,100,101,32,116,104,101,32,97,115,116,114,111,110,111,109,105,99,97,108,104,117,109,97,110,32,98,101,105,110,103,115,110,97,109,101,32,111,102,32,116,104,101,32,97,114,101,32,102,111,117,110,100,32,105,110,97,114,101,32,98,97,115,101,100,32,111,110,115,109,97,108,108,101,114,32,116,104,97,110,97,32,112,101,114,115,111,110,32,119,104,111,101,120,112,97,110,115,105,111,110,32,111,102,97,114,103,117,105,110,103,32,116,104,97,116,110,111,119,32,107,110,111,119,110,32,97,115,73,110,32,116,104,101,32,101,97,114,108,121,105,110,116,101,114,109,101,100,105,97,116,101,100,101,114,105,118,101,100,32,102,114,111,109,83,99,97,110,100,105,110,97,118,105,97,110,60,47,97,62,60,47,100,105,118,62,13,10,99,111,110,115,105,100,101,114,32,116,104,101,97,110,32,101,115,116,105,109,97,116,101,100,116,104,101,32,78,97,116,105,111,110,97,108,60,100,105,118,32,105,100,61,34,112,97,103,114,101,115,117,108,116,105,110,103,32,105,110,99,111,109,109,105,115,115,105,111,110,101,100,97,110,97,108,111,103,111,117,115,32,116,111,97,114,101,32,114,101,113,117,105,114,101,100,47,117,108,62,10,60,47,100,105,118,62,10,119,97,115,32,98,97,115,101,100,32,111,110,97,110,100,32,98,101,99,97,109,101,32,97,38,110,98,115,112,59,38,110,98,115,112,59,116,34,32,118,97,108,117,101,61,34,34,32,119,97,115,32,99,97,112,116,117,114,101,100,110,111,32,109,111,114,101,32,116,104,97,110,114,101,115,112,101,99,116,105,118,101,108,121,99,111,110,116,105,110,117,101,32,116,111,32,62,13,10,60,104,101,97,100,62,13,10,60,119,101,114,101,32,99,114,101,97,116,101,100,109,111,114,101,32,103,101,110,101,114,97,108,105,110,102,111,114,109,97,116,105,111,110,32,117,115,101,100,32,102,111,114,32,116,104,101,105,110,100,101,112,101,110,100,101,110,116,32,116,104,101,32,73,109,112,101,114,105,97,108,99,111,109,112,111,110,101,110,116,32,111,102,116,111,32,116,104,101,32,110,111,114,116,104,105,110,99,108,117,100,101,32,116,104,101,32,67,111,110,115,116,114,117,99,116,105,111,110,115,105,100,101,32,111,102,32,116,104,101,32,119,111,117,108,100,32,110,111,116,32,98,101,102,111,114,32,105,110,115,116,97,110,99,101,105,110,118,101,110,116,105,111,110,32,111,102,109,111,114,101,32,99,111,109,112,108,101,120,99,111,108,108,101,99,116,105,118,101,108,121,98,97,99,107,103,114,111,117,110,100,58,32,116,101,120,116,45,97,108,105,103,110,58,32,105,116,115,32,111,114,105,103,105,110,97,108,105,110,116,111,32,97,99,99,111,117,110,116,116,104,105,115,32,112,114,111,99,101,115,115,97,110,32,101,120,116,101,110,115,105,118,101,104,111,119,101,118,101,114,44,32,116,104,101,116,104,101,121,32,97,114,101,32,110,111,116,114,101,106,101,99,116,101,100,32,116,104,101,99,114,105,116,105,99,105,115,109,32,111,102,100,117,114,105,110,103,32,119,104,105,99,104,112,114,111,98,97,98,108,121,32,116,104,101,116,104,105,115,32,97,114,116,105,99,108,101,40,102,117,110,99,116,105,111,110,40,41,123,73,116,32,115,104,111,117,108,100,32,98,101,97,110,32,97,103,114,101,101,109,101,110,116,97,99,99,105,100,101,110,116,97,108,108,121,100,105,102,102,101,114,115,32,102,114,111,109,65,114,99,104,105,116,101,99,116,117,114,101,98,101,116,116,101,114,32,107,110,111,119,110,97,114,114,97,110,103,101,109,101,110,116,115,105,110,102,108,117,101,110,99,101,32,111,110,97,116,116,101,110,100,101,100,32,116,104,101,105,100,101,110,116,105,99,97,108,32,116,111,115,111,117,116,104,32,111,102,32,116,104,101,112,97,115,115,32,116,104,114,111,117,103,104,120,109,108,34,32,116,105,116,108,101,61,34,119,101,105,103,104,116,58,98,111,108,100,59,99,114,101,97,116,105,110,103,32,116,104,101,100,105,115,112,108,97,121,58,110,111,110,101,114,101,112,108,97,99,101,100,32,116,104,101,60,105,109,103,32,115,114,99,61,34,47,105,104,116,116,112,115,58,47,47,119,119,119,46,87,111,114,108,100,32,87,97,114,32,73,73,116,101,115,116,105,109,111,110,105,97,108,115,102,111,117,110,100,32,105,110,32,116,104,101,114,101,113,117,105,114,101,100,32,116,111,32,97,110,100,32,116,104,97,116,32,116,104,101,98,101,116,119,101,101,110,32,116,104,101,32,119,97,115,32,100,101,115,105,103,110,101,100,99,111,110,115,105,115,116,115,32,111,102,32,99,111,110,115,105,100,101,114,97,98,108,121,112,117,98,108,105,115,104,101,100,32,98,121,116,104,101,32,108,97,110,103,117,97,103,101,67,111,110,115,101,114,118,97,116,105,111,110,99,111,110,115,105,115,116,101,100,32,111,102,114,101,102,101,114,32,116,111,32,116,104,101,98,97,99,107,32,116,111,32,116,104,101,32,99,115,115,34,32,109,101,100,105,97,61,34,80,101,111,112,108,101,32,102,114,111,109,32,97,118,97,105,108,97,98,108,101,32,111,110,112,114,111,118,101,100,32,116,111,32,98,101,115,117,103,103,101,115,116,105,111,110,115,34,119,97,115,32,107,110,111,119,110,32,97,115,118,97,114,105,101,116,105,101,115,32,111,102,108,105,107,101,108,121,32,116,111,32,98,101,99,111,109,112,114,105,115,101,100,32,111,102,115,117,112,112,111,114,116,32,116,104,101,32,104,97,110,100,115,32,111,102,32,116,104,101,99,111,117,112,108,101,100,32,119,105,116,104,99,111,110,110,101,99,116,32,97,110,100,32,98,111,114,100,101,114,58,110,111,110,101,59,112,101,114,102,111,114,109,97,110,99,101,115,98,101,102,111,114,101,32,98,101,105,110,103,108,97,116,101,114,32,98,101,99,97,109,101,99,97,108,99,117,108,97,116,105,111,110,115,111,102,116,101,110,32,99,97,108,108,101,100,114,101,115,105,100,101,110,116,115,32,111,102,109,101,97,110,105,110,103,32,116,104,97,116,62,60,108,105,32,99,108,97,115,115,61,34,101,118,105,100,101,110,99,101,32,102,111,114,101,120,112,108,97,110,97,116,105,111,110,115,101,110,118,105,114,111,110,109,101,110,116,115,34,62,60,47,97,62,60,47,100,105,118,62,119,104,105,99,104,32,97,108,108,111,119,115,73,110,116,114,111,100,117,99,116,105,111,110,100,101,118,101,108,111,112,101,100,32,98,121,97,32,119,105,100,101,32,114,97,110,103,101,111,110,32,98,101,104,97,108,102,32,111,102,118,97,108,105,103,110,61,34,116,111,112,34,112,114,105,110,99,105,112,108,101,32,111,102,97,116,32,116,104,101,32,116,105,109,101,44,60,47,110,111,115,99,114,105,112,116,62,13,115,97,105,100,32,116,111,32,104,97,118,101,105,110,32,116,104,101,32,102,105,114,115,116,119,104,105,108,101,32,111,116,104,101,114,115,104,121,112,111,116,104,101,116,105,99,97,108,112,104,105,108,111,115,111,112,104,101,114,115,112,111,119,101,114,32,111,102,32,116,104,101,99,111,110,116,97,105,110,101,100,32,105,110,112,101,114,102,111,114,109,101,100,32,98,121,105,110,97,98,105,108,105,116,121,32,116,111,119,101,114,101,32,119,114,105,116,116,101,110,115,112,97,110,32,115,116,121,108,101,61,34,105,110,112,117,116,32,110,97,109,101,61,34,116,104,101,32,113,117,101,115,116,105,111,110,105,110,116,101,110,100,101,100,32,102,111,114,114,101,106,101,99,116,105,111,110,32,111,102,105,109,112,108,105,101,115,32,116,104,97,116,105,110,118,101,110,116,101,100,32,116,104,101,116,104,101,32,115,116,97,110,100,97,114,100,119,97,115,32,112,114,111,98,97,98,108,121,108,105,110,107,32,98,101,116,119,101,101,110,112,114,111,102,101,115,115,111,114,32,111,102,105,110,116,101,114,97,99,116,105,111,110,115,99,104,97,110,103,105,110,103,32,116,104,101,73,110,100,105,97,110,32,79,99,101,97,110,32,99,108,97,115,115,61,34,108,97,115,116,119,111,114,107,105,110,103,32,119,105,116,104,39,104,116,116,112,58,47,47,119,119,119,46,121,101,97,114,115,32,98,101,102,111,114,101,84,104,105,115,32,119,97,115,32,116,104,101,114,101,99,114,101,97,116,105,111,110,97,108,101,110,116,101,114,105,110,103,32,116,104,101,109,101,97,115,117,114,101,109,101,110,116,115,97,110,32,101,120,116,114,101,109,101,108,121,118,97,108,117,101,32,111,102,32,116,104,101,115,116,97,114,116,32,111,102,32,116,104,101,10,60,47,115,99,114,105,112,116,62,10,10,97,110,32,101,102,102,111,114,116,32,116,111,105,110,99,114,101,97,115,101,32,116,104,101,116,111,32,116,104,101,32,115,111,117,116,104,115,112,97,99,105,110,103,61,34,48,34,62,115,117,102,102,105,99,105,101,110,116,108,121,116,104,101,32,69,117,114,111,112,101,97,110,99,111,110,118,101,114,116,101,100,32,116,111,99,108,101,97,114,84,105,109,101,111,117,116,100,105,100,32,110,111,116,32,104,97,118,101,99,111,110,115,101,113,117,101,110,116,108,121,102,111,114,32,116,104,101,32,110,101,120,116,101,120,116,101,110,115,105,111,110,32,111,102,101,99,111,110,111,109,105,99,32,97,110,100,97,108,116,104,111,117,103,104,32,116,104,101,97,114,101,32,112,114,111,100,117,99,101,100,97,110,100,32,119,105,116,104,32,116,104,101,105,110,115,117,102,102,105,99,105,101,110,116,103,105,118,101,110,32,98,121,32,116,104,101,115,116,97,116,105,110,103,32,116,104,97,116,101,120,112,101,110,100,105,116,117,114,101,115,60,47,115,112,97,110,62,60,47,97,62,10,116,104,111,117,103,104,116,32,116,104,97,116,111,110,32,116,104,101,32,98,97,115,105,115,99,101,108,108,112,97,100,100,105,110,103,61,105,109,97,103,101,32,111,102,32,116,104,101,114,101,116,117,114,110,105,110,103,32,116,111,105,110,102,111,114,109,97,116,105,111,110,44,115,101,112,97,114,97,116,101,100,32,98,121,97,115,115,97,115,115,105,110,97,116,101,100,115,34,32,99,111,110,116,101,110,116,61,34,97,117,116,104,111,114,105,116,121,32,111,102,110,111,114,116,104,119,101,115,116,101,114,110,60,47,100,105,118,62,10,60,100,105,118,32,34,62,60,47,100,105,118,62,13,10,32,32,99,111,110,115,117,108,116,97,116,105,111,110,99,111,109,109,117,110,105,116,121,32,111,102,116,104,101,32,110,97,116,105,111,110,97,108,105,116,32,115,104,111,117,108,100,32,98,101,112,97,114,116,105,99,105,112,97,110,116,115,32,97,108,105,103,110,61,34,108,101,102,116,116,104,101,32,103,114,101,97,116,101,115,116,115,101,108,101,99,116,105,111,110,32,111,102,115,117,112,101,114,110,97,116,117,114,97,108,100,101,112,101,110,100,101,110,116,32,111,110,105,115,32,109,101,110,116,105,111,110,101,100,97,108,108,111,119,105,110,103,32,116,104,101,119,97,115,32,105,110,118,101,110,116,101,100,97,99,99,111,109,112,97,110,121,105,110,103,104,105,115,32,112,101,114,115,111,110,97,108,97,118,97,105,108,97,98,108,101,32,97,116,115,116,117,100,121,32,111,102,32,116,104,101,111,110,32,116,104,101,32,111,116,104,101,114,101,120,101,99,117,116,105,111,110,32,111,102,72,117,109,97,110,32,82,105,103,104,116,115,116,101,114,109,115,32,111,102,32,116,104,101,97,115,115,111,99,105,97,116,105,111,110,115,114,101,115,101,97,114,99,104,32,97,110,100,115,117,99,99,101,101,100,101,100,32,98,121,100,101,102,101,97,116,101,100,32,116,104,101,97,110,100,32,102,114,111,109,32,116,104,101,98,117,116,32,116,104,101,121,32,97,114,101,99,111,109,109,97,110,100,101,114,32,111,102,115,116,97,116,101,32,111,102,32,116,104,101,121,101,97,114,115,32,111,102,32,97,103,101,116,104,101,32,115,116,117,100,121,32,111,102,60,117,108,32,99,108,97,115,115,61,34,115,112,108,97,99,101,32,105,110,32,116,104,101,119,104,101,114,101,32,104,101,32,119,97,115,60,108,105,32,99,108,97,115,115,61,34,102,116,104,101,114,101,32,97,114,101,32,110,111,119,104,105,99,104,32,98,101,99,97,109,101,104,101,32,112,117,98,108,105,115,104,101,100,101,120,112,114,101,115,115,101,100,32,105,110,116,111,32,119,104,105,99,104,32,116,104,101,99,111,109,109,105,115,115,105,111,110,101,114,102,111,110,116,45,119,101,105,103,104,116,58,116,101,114,114,105,116,111,114,121,32,111,102,101,120,116,101,110,115,105,111,110,115,34,62,82,111,109,97,110,32,69,109,112,105,114,101,101,113,117,97,108,32,116,111,32,116,104,101,73,110,32,99,111,110,116,114,97,115,116,44,104,111,119,101,118,101,114,44,32,97,110,100,105,115,32,116,121,112,105,99,97,108,108,121,97,110,100,32,104,105,115,32,119,105,102,101,40,97,108,115,111,32,99,97,108,108,101,100,62,60,117,108,32,99,108,97,115,115,61,34,101,102,102,101,99,116,105,118,101,108,121,32,101,118,111,108,118,101,100,32,105,110,116,111,115,101,101,109,32,116,111,32,104,97,118,101,119,104,105,99,104,32,105,115,32,116,104,101,116,104,101,114,101,32,119,97,115,32,110,111,97,110,32,101,120,99,101,108,108,101,110,116,97,108,108,32,111,102,32,116,104,101,115,101,100,101,115,99,114,105,98,101,100,32,98,121,73,110,32,112,114,97,99,116,105,99,101,44,98,114,111,97,100,99,97,115,116,105,110,103,99,104,97,114,103,101,100,32,119,105,116,104,114,101,102,108,101,99,116,101,100,32,105,110,115,117,98,106,101,99,116,101,100,32,116,111,109,105,108,105,116,97,114,121,32,97,110,100,116,111,32,116,104,101,32,112,111,105,110,116,101,99,111,110,111,109,105,99,97,108,108,121,115,101,116,84,97,114,103,101,116,105,110,103,97,114,101,32,97,99,116,117,97,108,108,121,118,105,99,116,111,114,121,32,111,118,101,114,40,41,59,60,47,115,99,114,105,112,116,62,99,111,110,116,105,110,117,111,117,115,108,121,114,101,113,117,105,114,101,100,32,102,111,114,101,118,111,108,117,116,105,111,110,97,114,121,97,110,32,101,102,102,101,99,116,105,118,101,110,111,114,116,104,32,111,102,32,116,104,101,44,32,119,104,105,99,104,32,119,97,115,32,102,114,111,110,116,32,111,102,32,116,104,101,111,114,32,111,116,104,101,114,119,105,115,101,115,111,109,101,32,102,111,114,109,32,111,102,104,97,100,32,110,111,116,32,98,101,101,110,103,101,110,101,114,97,116,101,100,32,98,121,105,110,102,111,114,109,97,116,105,111,110,46,112,101,114,109,105,116,116,101,100,32,116,111,105,110,99,108,117,100,101,115,32,116,104,101,100,101,118,101,108,111,112,109,101,110,116,44,101,110,116,101,114,101,100,32,105,110,116,111,116,104,101,32,112,114,101,118,105,111,117,115,99,111,110,115,105,115,116,101,110,116,108,121,97,114,101,32,107,110,111,119,110,32,97,115,116,104,101,32,102,105,101,108,100,32,111,102,116,104,105,115,32,116,121,112,101,32,111,102,103,105,118,101,110,32,116,111,32,116,104,101,116,104,101,32,116,105,116,108,101,32,111,102,99,111,110,116,97,105,110,115,32,116,104,101,105,110,115,116,97,110,99,101,115,32,111,102,105,110,32,116,104,101,32,110,111,114,116,104,100,117,101,32,116,111,32,116,104,101,105,114,97,114,101,32,100,101,115,105,103,110,101,100,99,111,114,112,111,114,97,116,105,111,110,115,119,97,115,32,116,104,97,116,32,116,104,101,111,110,101,32,111,102,32,116,104,101,115,101,109,111,114,101,32,112,111,112,117,108,97,114,115,117,99,99,101,101,100,101,100,32,105,110,115,117,112,112,111,114,116,32,102,114,111,109,105,110,32,100,105,102,102,101,114,101,110,116,100,111,109,105,110,97,116,101,100,32,98,121,100,101,115,105,103,110,101,100,32,102,111,114,111,119,110,101,114,115,104,105,112,32,111,102,97,110,100,32,112,111,115,115,105,98,108,121,115,116,97,110,100,97,114,100,105,122,101,100,114,101,115,112,111,110,115,101,84,101,120,116,119,97,115,32,105,110,116,101,110,100,101,100,114,101,99,101,105,118,101,100,32,116,104,101,97,115,115,117,109,101,100,32,116,104,97,116,97,114,101,97,115,32,111,102,32,116,104,101,112,114,105,109,97,114,105,108,121,32,105,110,116,104,101,32,98,97,115,105,115,32,111,102,105,110,32,116,104,101,32,115,101,110,115,101,97,99,99,111,117,110,116,115,32,102,111,114,100,101,115,116,114,111,121,101,100,32,98,121,97,116,32,108,101,97,115,116,32,116,119,111,119,97,115,32,100,101,99,108,97,114,101,100,99,111,117,108,100,32,110,111,116,32,98,101,83,101,99,114,101,116,97,114,121,32,111,102,97,112,112,101,97,114,32,116,111,32,98,101,109,97,114,103,105,110,45,116,111,112,58,49,47,94,92,115,43,124,92,115,43,36,47,103,101,41,123,116,104,114,111,119,32,101,125,59,116,104,101,32,115,116,97,114,116,32,111,102,116,119,111,32,115,101,112,97,114,97,116,101,108,97,110,103,117,97,103,101,32,97,110,100,119,104,111,32,104,97,100,32,98,101,101,110,111,112,101,114,97,116,105,111,110,32,111,102,100,101,97,116,104,32,111,102,32,116,104,101,114,101,97,108,32,110,117,109,98,101,114,115,9,60,108,105,110,107,32,114,101,108,61,34,112,114,111,118,105,100,101,100,32,116,104,101,116,104,101,32,115,116,111,114,121,32,111,102,99,111,109,112,101,116,105,116,105,111,110,115,101,110,103,108,105,115,104,32,40,85,75,41,101,110,103,108,105,115,104,32,40,85,83,41,208,156,208,190,208,189,208,179,208,190,208,187,208,161,209,128,208,191,209,129,208,186,208,184,209,129,209,128,208,191,209,129,208,186,208,184,209,129,209,128,208,191,209,129,208,186,208,190,217,132,216,185,216,177,216,168,217,138,216,169,230,173,163,233,171,148,228,184,173,230,150,135,231,174,128,228,189,147,228,184,173,230,150,135,231,185,129,228,189,147,228,184,173,230,150,135,230,156,137,233,153,144,229,133,172,229,143,184,228,186,186,230,176,145,230,148,191,229,186,156,233,152,191,233,135,140,229,183,180,229,183,180,231,164,190,228,188,154,228,184,187,228,185,137,230,147,141,228,189,156,231,179,187,231,187,159,230,148,191,231,173,150,230,179,149,232,167,132,105,110,102,111,114,109,97,99,105,195,179,110,104,101,114,114,97,109,105,101,110,116,97,115,101,108,101,99,116,114,195,179,110,105,99,111,100,101,115,99,114,105,112,99,105,195,179,110,99,108,97,115,105,102,105,99,97,100,111,115,99,111,110,111,99,105,109,105,101,110,116,111,112,117,98,108,105,99,97,99,105,195,179,110,114,101,108,97,99,105,111,110,97,100,97,115,105,110,102,111,114,109,195,161,116,105,99,97,114,101,108,97,99,105,111,110,97,100,111,115,100,101,112,97,114,116,97,109,101,110,116,111,116,114,97,98,97,106,97,100,111,114,101,115,100,105,114,101,99,116,97,109,101,110,116,101,97,121,117,110,116,97,109,105,101,110,116,111,109,101,114,99,97,100,111,76,105,98,114,101,99,111,110,116,195,161,99,116,101,110,111,115,104,97,98,105,116,97,99,105,111,110,101,115,99,117,109,112,108,105,109,105,101,110,116,111,114,101,115,116,97,117,114,97,110,116,101,115,100,105,115,112,111,115,105,99,105,195,179,110,99,111,110,115,101,99,117,101,110,99,105,97,101,108,101,99,116,114,195,179,110,105,99,97,97,112,108,105,99,97,99,105,111,110,101,115,100,101,115,99,111,110,101,99,116,97,100,111,105,110,115,116,97,108,97,99,105,195,179,110,114,101,97,108,105,122,97,99,105,195,179,110,117,116,105,108,105,122,97,99,105,195,179,110,101,110,99,105,99,108,111,112,101,100,105,97,101,110,102,101,114,109,101,100,97,100,101,115,105,110,115,116,114,117,109,101,110,116,111,115,101,120,112,101,114,105,101,110,99,105,97,115,105,110,115,116,105,116,117,99,105,195,179,110,112,97,114,116,105,99,117,108,97,114,101,115,115,117,98,99,97,116,101,103,111,114,105,97,209,130,208,190,208,187,209,140,208,186,208,190,208,160,208,190,209,129,209,129,208,184,208,184,209,128,208,176,208,177,208,190,209,130,209,139,208,177,208,190,208,187,209,140,209,136,208,181,208,191,209,128,208,190,209,129,209,130,208,190,208,188,208,190,208,182,208,181,209,130,208,181,208,180,209,128,209,131,208,179,208,184,209,133,209,129,208,187,209,131,209,135,208,176,208,181,209,129,208,181,208,185,209,135,208,176,209,129,208,178,209,129,208,181,208,179,208,180,208,176,208,160,208,190,209,129,209,129,208,184,209,143,208,156,208,190,209,129,208,186,208,178,208,181,208,180,209,128,209,131,208,179,208,184,208,181,208,179,208,190,209,128,208,190,208,180,208,176,208,178,208,190,208,191,209,128,208,190,209,129,208,180,208,176,208,189,208,189,209,139,209,133,208,180,208,190,208,187,208,182,208,189,209,139,208,184,208,188,208,181,208,189,208,189,208,190,208,156,208,190,209,129,208,186,208,178,209,139,209,128,209,131,208,177,208,187,208,181,208,185,208,156,208,190,209,129,208,186,208,178,208,176,209,129,209,130,209,128,208,176,208,189,209,139,208,189,208,184,209,135,208,181,208,179,208,190,209,128,208,176,208,177,208,190,209,130,208,181,208,180,208,190,208,187,208,182,208,181,208,189,209,131,209,129,208,187,209,131,208,179,208,184,209,130,208,181,208,191,208,181,209,128,209,140,208,158,208,180,208,189,208,176,208,186,208,190,208,191,208,190,209,130,208,190,208,188,209,131,209,128,208,176,208,177,208,190,209,130,209,131,208,176,208,191,209,128,208,181,208,187,209,143,208,178,208,190,208,190,208,177,209,137,208,181,208,190,208,180,208,189,208,190,208,179,208,190,209,129,208,178,208,190,208,181,208,179,208,190,209,129,209,130,208,176,209,130,209,140,208,184,208,180,209,128,209,131,208,179,208,190,208,185,209,132,208,190,209,128,209,131,208,188,208,181,209,133,208,190,209,128,208,190,209,136,208,190,208,191,209,128,208,190,209,130,208,184,208,178,209,129,209,129,209,139,208,187,208,186,208,176,208,186,208,176,208,182,208,180,209,139,208,185,208,178,208,187,208,176,209,129,209,130,208,184,208,179,209,128,209,131,208,191,208,191,209,139,208,178,208,188,208,181,209,129,209,130,208,181,209,128,208,176,208,177,208,190,209,130,208,176,209,129,208,186,208,176,208,183,208,176,208,187,208,191,208,181,209,128,208,178,209,139,208,185,208,180,208,181,208,187,208,176,209,130,209,140,208,180,208,181,208,189,209,140,208,179,208,184,208,191,208,181,209,128,208,184,208,190,208,180,208,177,208,184,208,183,208,189,208,181,209,129,208,190,209,129,208,189,208,190,208,178,208,181,208,188,208,190,208,188,208,181,208,189,209,130,208,186,209,131,208,191,208,184,209,130,209,140,208,180,208,190,208,187,208,182,208,189,208,176,209,128,208,176,208,188,208,186,208,176,209,133,208,189,208,176,209,135,208,176,208,187,208,190,208,160,208,176,208,177,208,190,209,130,208,176,208,162,208,190,208,187,209,140,208,186,208,190,209,129,208,190,208,178,209,129,208,181,208,188,208,178,209,130,208,190,209,128,208,190,208,185,208,189,208,176,209,135,208,176,208,187,208,176,209,129,208,191,208,184,209,129,208,190,208,186,209,129,208,187,209,131,208,182,208,177,209,139,209,129,208,184,209,129,209,130,208,181,208,188,208,191,208,181,209,135,208,176,209,130,208,184,208,189,208,190,208,178,208,190,208,179,208,190,208,191,208,190,208,188,208,190,209,137,208,184,209,129,208,176,208,185,209,130,208,190,208,178,208,191,208,190,209,135,208,181,208,188,209,131,208,191,208,190,208,188,208,190,209,137,209,140,208,180,208,190,208,187,208,182,208,189,208,190,209,129,209,129,209,139,208,187,208,186,208,184,208,177,209,139,209,129,209,130,209,128,208,190,208,180,208,176,208,189,208,189,209,139,208,181,208,188,208,189,208,190,208,179,208,184,208,181,208,191,209,128,208,190,208,181,208,186,209,130,208,161,208,181,208,185,209,135,208,176,209,129,208,188,208,190,208,180,208,181,208,187,208,184,209,130,208,176,208,186,208,190,208,179,208,190,208,190,208,189,208,187,208,176,208,185,208,189,208,179,208,190,209,128,208,190,208,180,208,181,208,178,208,181,209,128,209,129,208,184,209,143,209,129,209,130,209,128,208,176,208,189,208,181,209,132,208,184,208,187,209,140,208,188,209,139,209,131,209,128,208,190,208,178,208,189,209,143,209,128,208,176,208,183,208,189,209,139,209,133,208,184,209,129,208,186,208,176,209,130,209,140,208,189,208,181,208,180,208,181,208,187,209,142,209,143,208,189,208,178,208,176,209,128,209,143,208,188,208,181,208,189,209,140,209,136,208,181,208,188,208,189,208,190,208,179,208,184,209,133,208,180,208,176,208,189,208,189,208,190,208,185,208,183,208,189,208,176,209,135,208,184,209,130,208,189,208,181,208,187,209,140,208,183,209,143,209,132,208,190,209,128,209,131,208,188,208,176,208,162,208,181,208,191,208,181,209,128,209,140,208,188,208,181,209,129,209,143,209,134,208,176,208,183,208,176,209,137,208,184,209,130,209,139,208,155,209,131,209,135,209,136,208,184,208,181,224,164,168,224,164,185,224,165,128,224,164,130,224,164,149,224,164,176,224,164,168,224,165,135,224,164,133,224,164,170,224,164,168,224,165,135,224,164,149,224,164,191,224,164,175,224,164,190,224,164,149,224,164,176,224,165,135,224,164,130,224,164,133,224,164,168,224,165,141,224,164,175,224,164,149,224,165,141,224,164,175,224,164,190,224,164,151,224,164,190,224,164,135,224,164,161,224,164,172,224,164,190,224,164,176,224,165,135,224,164,149,224,164,191,224,164,184,224,165,128,224,164,166,224,164,191,224,164,175,224,164,190,224,164,170,224,164,185,224,164,178,224,165,135,224,164,184,224,164,191,224,164,130,224,164,185,224,164,173,224,164,190,224,164,176,224,164,164,224,164,133,224,164,170,224,164,168,224,165,128,224,164,181,224,164,190,224,164,178,224,165,135,224,164,184,224,165,135,224,164,181,224,164,190,224,164,149,224,164,176,224,164,164,224,165,135,224,164,174,224,165,135,224,164,176,224,165,135,224,164,185,224,165,139,224,164,168,224,165,135,224,164,184,224,164,149,224,164,164,224,165,135,224,164,172,224,164,185,224,165,129,224,164,164,224,164,184,224,164,190,224,164,135,224,164,159,224,164,185,224,165,139,224,164,151,224,164,190,224,164,156,224,164,190,224,164,168,224,165,135,224,164,174,224,164,191,224,164,168,224,164,159,224,164,149,224,164,176,224,164,164,224,164,190,224,164,149,224,164,176,224,164,168,224,164,190,224,164,137,224,164,168,224,164,149,224,165,135,224,164,175,224,164,185,224,164,190,224,164,129,224,164,184,224,164,172,224,164,184,224,165,135,224,164,173,224,164,190,224,164,183,224,164,190,224,164,134,224,164,170,224,164,149,224,165,135,224,164,178,224,164,191,224,164,175,224,165,135,224,164,182,224,165,129,224,164,176,224,165,130,224,164,135,224,164,184,224,164,149,224,165,135,224,164,152,224,164,130,224,164,159,224,165,135,224,164,174,224,165,135,224,164,176,224,165,128,224,164,184,224,164,149,224,164,164,224,164,190,224,164,174,224,165,135,224,164,176,224,164,190,224,164,178,224,165,135,224,164,149,224,164,176,224,164,133,224,164,167,224,164,191,224,164,149,224,164,133,224,164,170,224,164,168,224,164,190,224,164,184,224,164,174,224,164,190,224,164,156,224,164,174,224,165,129,224,164,157,224,165,135,224,164,149,224,164,190,224,164,176,224,164,163,224,164,185,224,165,139,224,164,164,224,164,190,224,164,149,224,164,161,224,164,188,224,165,128,224,164,175,224,164,185,224,164,190,224,164,130,224,164,185,224,165,139,224,164,159,224,164,178,224,164,182,224,164,172,224,165,141,224,164,166,224,164,178,224,164,191,224,164,175,224,164,190,224,164,156,224,165,128,224,164,181,224,164,168,224,164,156,224,164,190,224,164,164,224,164,190,224,164,149,224,165,136,224,164,184,224,165,135,224,164,134,224,164,170,224,164,149,224,164,190,224,164,181,224,164,190,224,164,178,224,165,128,224,164,166,224,165,135,224,164,168,224,165,135,224,164,170,224,165,130,224,164,176,224,165,128,224,164,170,224,164,190,224,164,168,224,165,128,224,164,137,224,164,184,224,164,149,224,165,135,224,164,185,224,165,139,224,164,151,224,165,128,224,164,172,224,165,136,224,164,160,224,164,149,224,164,134,224,164,170,224,164,149,224,165,128,224,164,181,224,164,176,224,165,141,224,164,183,224,164,151,224,164,190,224,164,130,224,164,181,224,164,134,224,164,170,224,164,149,224,165,139,224,164,156,224,164,191,224,164,178,224,164,190,224,164,156,224,164,190,224,164,168,224,164,190,224,164,184,224,164,185,224,164,174,224,164,164,224,164,185,224,164,174,224,165,135,224,164,130,224,164,137,224,164,168,224,164,149,224,165,128,224,164,175,224,164,190,224,164,185,224,165,130,224,164,166,224,164,176,224,165,141,224,164,156,224,164,184,224,165,130,224,164,154,224,165,128,224,164,170,224,164,184,224,164,130,224,164,166,224,164,184,224,164,181,224,164,190,224,164,178,224,164,185,224,165,139,224,164,168,224,164,190,224,164,185,224,165,139,224,164,164,224,165,128,224,164,156,224,165,136,224,164,184,224,165,135,224,164,181,224,164,190,224,164,170,224,164,184,224,164,156,224,164,168,224,164,164,224,164,190,224,164,168,224,165,135,224,164,164,224,164,190,224,164,156,224,164,190,224,164,176,224,165,128,224,164,152,224,164,190,224,164,175,224,164,178,224,164,156,224,164,191,224,164,178,224,165,135,224,164,168,224,165,128,224,164,154,224,165,135,224,164,156,224,164,190,224,164,130,224,164,154,224,164,170,224,164,164,224,165,141,224,164,176,224,164,151,224,165,130,224,164,151,224,164,178,224,164,156,224,164,190,224,164,164,224,165,135,224,164,172,224,164,190,224,164,185,224,164,176,224,164,134,224,164,170,224,164,168,224,165,135,224,164,181,224,164,190,224,164,185,224,164,168,224,164,135,224,164,184,224,164,149,224,164,190,224,164,184,224,165,129,224,164,172,224,164,185,224,164,176,224,164,185,224,164,168,224,165,135,224,164,135,224,164,184,224,164,184,224,165,135,224,164,184,224,164,185,224,164,191,224,164,164,224,164,172,224,164,161,224,164,188,224,165,135,224,164,152,224,164,159,224,164,168,224,164,190,224,164,164,224,164,178,224,164,190,224,164,182,224,164,170,224,164,190,224,164,130,224,164,154,224,164,182,224,165,141,224,164,176,224,165,128,224,164,172,224,164,161,224,164,188,224,165,128,224,164,185,224,165,139,224,164,164,224,165,135,224,164,184,224,164,190,224,164,136,224,164,159,224,164,182,224,164,190,224,164,175,224,164,166,224,164,184,224,164,149,224,164,164,224,165,128,224,164,156,224,164,190,224,164,164,224,165,128,224,164,181,224,164,190,224,164,178,224,164,190,224,164,185,224,164,156,224,164,190,224,164,176,224,164,170,224,164,159,224,164,168,224,164,190,224,164,176,224,164,150,224,164,168,224,165,135,224,164,184,224,164,161,224,164,188,224,164,149,224,164,174,224,164,191,224,164,178,224,164,190,224,164,137,224,164,184,224,164,149,224,165,128,224,164,149,224,165,135,224,164,181,224,164,178,224,164,178,224,164,151,224,164,164,224,164,190,224,164,150,224,164,190,224,164,168,224,164,190,224,164,133,224,164,176,224,165,141,224,164,165,224,164,156,224,164,185,224,164,190,224,164,130,224,164,166,224,165,135,224,164,150,224,164,190,224,164,170,224,164,185,224,164,178,224,165,128,224,164,168,224,164,191,224,164,175,224,164,174,224,164,172,224,164,191,224,164,168,224,164,190,224,164,172,224,165,136,224,164,130,224,164,149,224,164,149,224,164,185,224,165,128,224,164,130,224,164,149,224,164,185,224,164,168,224,164,190,224,164,166,224,165,135,224,164,164,224,164,190,224,164,185,224,164,174,224,164,178,224,165,135,224,164,149,224,164,190,224,164,171,224,165,128,224,164,156,224,164,172,224,164,149,224,164,191,224,164,164,224,165,129,224,164,176,224,164,164,224,164,174,224,164,190,224,164,130,224,164,151,224,164,181,224,164,185,224,165,128,224,164,130,224,164,176,224,165,139,224,164,156,224,164,188,224,164,174,224,164,191,224,164,178,224,165,128,224,164,134,224,164,176,224,165,139,224,164,170,224,164,184,224,165,135,224,164,168,224,164,190,224,164,175,224,164,190,224,164,166,224,164,181,224,164,178,224,165,135,224,164,168,224,165,135,224,164,150,224,164,190,224,164,164,224,164,190,224,164,149,224,164,176,224,165,128,224,164,172,224,164,137,224,164,168,224,164,149,224,164,190,224,164,156,224,164,181,224,164,190,224,164,172,224,164,170,224,165,130,224,164,176,224,164,190,224,164,172,224,164,161,224,164,188,224,164,190,224,164,184,224,165,140,224,164,166,224,164,190,224,164,182,224,165,135,224,164,175,224,164,176,224,164,149,224,164,191,224,164,175,224,165,135,224,164,149,224,164,185,224,164,190,224,164,130,224,164,133,224,164,149,224,164,184,224,164,176,224,164,172,224,164,168,224,164,190,224,164,143,224,164,181,224,164,185,224,164,190,224,164,130,224,164,184,224,165,141,224,164,165,224,164,178,224,164,174,224,164,191,224,164,178,224,165,135,224,164,178,224,165,135,224,164,150,224,164,149,224,164,181,224,164,191,224,164,183,224,164,175,224,164,149,224,165,141,224,164,176,224,164,130,224,164,184,224,164,174,224,165,130,224,164,185,224,164,165,224,164,190,224,164,168,224,164,190,216,170,216,179,216,170,216,183,217,138,216,185,217,133,216,180,216,167,216,177,217,131,216,169,216,168,217,136,216,167,216,179,216,183,216,169,216,167,217,132,216,181,217,129,216,173,216,169,217,133,217,136,216,167,216,182,217,138,216,185,216,167,217,132,216,174,216,167,216,181,216,169,216,167,217,132,217,133,216,178,217,138,216,175,216,167,217,132,216,185,216,167,217,133,216,169,216,167,217,132,217,131,216,167,216,170,216,168,216,167,217,132,216,177,216,175,217,136,216,175,216,168,216,177,217,134,216,167,217,133,216,172,216,167,217,132,216,175,217,136,217,132,216,169,216,167,217,132,216,185,216,167,217,132,217,133,216,167,217,132,217,133,217,136,217,130,216,185,216,167,217,132,216,185,216,177,216,168,217,138,216,167,217,132,216,179,216,177,217,138,216,185,216,167,217,132,216,172,217,136,216,167,217,132,216,167,217,132,216,176,217,135,216,167,216,168,216,167,217,132,216,173,217,138,216,167,216,169,216,167,217,132,216,173,217,130,217,136,217,130,216,167,217,132,217,131,216,177,217,138,217,133,216,167,217,132,216,185,216,177,216,167,217,130,217,133,216,173,217,129,217,136,216,184,216,169,216,167,217,132,216,171,216,167,217,134,217,138,217,133,216,180,216,167,217,135,216,175,216,169,216,167,217,132,217,133,216,177,216,163,216,169,216,167,217,132,217,130,216,177,216,162,217,134,216,167,217,132,216,180,216,168,216,167,216,168,216,167,217,132,216,173,217,136,216,167,216,177,216,167,217,132,216,172,216,175,217,138,216,175,216,167,217,132,216,163,216,179,216,177,216,169,216,167,217,132,216,185,217,132,217,136,217,133,217,133,216,172,217,133,217,136,216,185,216,169,216,167,217,132,216,177,216,173,217,133,217,134,216,167,217,132,217,134,217,130,216,167,216,183,217,129,217,132,216,179,216,183,217,138,217,134,216,167,217,132,217,131,217,136,217,138,216,170,216,167,217,132,216,175,217,134,217,138,216,167,216,168,216,177,217,131,216,167,216,170,217,135,216,167,217,132,216,177,217,138,216,167,216,182,216,170,216,173,217,138,216,167,216,170,217,138,216,168,216,170,217,136,217,130,217,138,216,170,216,167,217,132,216,163,217,136,217,132,217,137,216,167,217,132,216,168,216,177,217,138,216,175,216,167,217,132,217,131,217,132,216,167,217,133,216,167,217,132,216,177,216,167,216,168,216,183,216,167,217,132,216,180,216,174,216,181,217,138,216,179,217,138,216,167,216,177,216,167,216,170,216,167,217,132,216,171,216,167,217,132,216,171,216,167,217,132,216,181,217,132,216,167,216,169,216,167,217,132,216,173,216,175,217,138,216,171,216,167,217,132,216,178,217,136,216,167,216,177,216,167,217,132,216,174,217,132,217,138,216,172,216,167,217,132,216,172,217,133,217,138,216,185,216,167,217,132,216,185,216,167,217,133,217,135,216,167,217,132,216,172,217,133,216,167,217,132,216,167,217,132,216,179,216,167,216,185,216,169,217,133,216,180,216,167,217,135,216,175,217,135,216,167,217,132,216,177,216,166,217,138,216,179,216,167,217,132,216,175,216,174,217,136,217,132,216,167,217,132,217,129,217,134,217,138,216,169,216,167,217,132,217,131,216,170,216,167,216,168,216,167,217,132,216,175,217,136,216,177,217,138,216,167,217,132,216,175,216,177,217,136,216,179,216,167,216,179,216,170,216,186,216,177,217,130,216,170,216,181,216,167,217,133,217,138,217,133,216,167,217,132,216,168,217,134,216,167,216,170,216,167,217,132,216,185,216,184,217,138,217,133,101,110,116,101,114,116,97,105,110,109,101,110,116,117,110,100,101,114,115,116,97,110,100,105,110,103,32,61,32,102,117,110,99,116,105,111,110,40,41,46,106,112,103,34,32,119,105,100,116,104,61,34,99,111,110,102,105,103,117,114,97,116,105,111,110,46,112,110,103,34,32,119,105,100,116,104,61,34,60,98,111,100,121,32,99,108,97,115,115,61,34,77,97,116,104,46,114,97,110,100,111,109,40,41,99,111,110,116,101,109,112,111,114,97,114,121,32,85,110,105,116,101,100,32,83,116,97,116,101,115,99,105,114,99,117,109,115,116,97,110,99,101,115,46,97,112,112,101,110,100,67,104,105,108,100,40,111,114,103,97,110,105,122,97,116,105,111,110,115,60,115,112,97,110,32,99,108,97,115,115,61,34,34,62,60,105,109,103,32,115,114,99,61,34,47,100,105,115,116,105,110,103,117,105,115,104,101,100,116,104,111,117,115,97,110,100,115,32,111,102,32,99,111,109,109,117,110,105,99,97,116,105,111,110,99,108,101,97,114,34,62,60,47,100,105,118,62,105,110,118,101,115,116,105,103,97,116,105,111,110,102,97,118,105,99,111,110,46,105,99,111,34,32,109,97,114,103,105,110,45,114,105,103,104,116,58,98,97,115,101,100,32,111,110,32,116,104,101,32,77,97,115,115,97,99,104,117,115,101,116,116,115,116,97,98,108,101,32,98,111,114,100,101,114,61,105,110,116,101,114,110,97,116,105,111,110,97,108,97,108,115,111,32,107,110,111,119,110,32,97,115,112,114,111,110,117,110,99,105,97,116,105,111,110,98,97,99,107,103,114,111,117,110,100,58,35,102,112,97,100,100,105,110,103,45,108,101,102,116,58,70,111,114,32,101,120,97,109,112,108,101,44,32,109,105,115,99,101,108,108,97,110,101,111,117,115,38,108,116,59,47,109,97,116,104,38,103,116,59,112,115,121,99,104,111,108,111,103,105,99,97,108,105,110,32,112,97,114,116,105,99,117,108,97,114,101,97,114,99,104,34,32,116,121,112,101,61,34,102,111,114,109,32,109,101,116,104,111,100,61,34,97,115,32,111,112,112,111,115,101,100,32,116,111,83,117,112,114,101,109,101,32,67,111,117,114,116,111,99,99,97,115,105,111,110,97,108,108,121,32,65,100,100,105,116,105,111,110,97,108,108,121,44,78,111,114,116,104,32,65,109,101,114,105,99,97,112,120,59,98,97,99,107,103,114,111,117,110,100,111,112,112,111,114,116,117,110,105,116,105,101,115,69,110,116,101,114,116,97,105,110,109,101,110,116,46,116,111,76,111,119,101,114,67,97,115,101,40,109,97,110,117,102,97,99,116,117,114,105,110,103,112,114,111,102,101,115,115,105,111,110,97,108,32,99,111,109,98,105,110,101,100,32,119,105,116,104,70,111,114,32,105,110,115,116,97,110,99,101,44,99,111,110,115,105,115,116,105,110,103,32,111,102,34,32,109,97,120,108,101,110,103,116,104,61,34,114,101,116,117,114,110,32,102,97,108,115,101,59,99,111,110,115,99,105,111,117,115,110,101,115,115,77,101,100,105,116,101,114,114,97,110,101,97,110,101,120,116,114,97,111,114,100,105,110,97,114,121,97,115,115,97,115,115,105,110,97,116,105,111,110,115,117,98,115,101,113,117,101,110,116,108,121,32,98,117,116,116,111,110,32,116,121,112,101,61,34,116,104,101,32,110,117,109,98,101,114,32,111,102,116,104,101,32,111,114,105,103,105,110,97,108,32,99,111,109,112,114,101,104,101,110,115,105,118,101,114,101,102,101,114,115,32,116,111,32,116,104,101,60,47,117,108,62,10,60,47,100,105,118,62,10,112,104,105,108,111,115,111,112,104,105,99,97,108,108,111,99,97,116,105,111,110,46,104,114,101,102,119,97,115,32,112,117,98,108,105,115,104,101,100,83,97,110,32,70,114,97,110,99,105,115,99,111,40,102,117,110,99,116,105,111,110,40,41,123,10,60,100,105,118,32,105,100,61,34,109,97,105,110,115,111,112,104,105,115,116,105,99,97,116,101,100,109,97,116,104,101,109,97,116,105,99,97,108,32,47,104,101,97,100,62,13,10,60,98,111,100,121,115,117,103,103,101,115,116,115,32,116,104,97,116,100,111,99,117,109,101,110,116,97,116,105,111,110,99,111,110,99,101,110,116,114,97,116,105,111,110,114,101,108,97,116,105,111,110,115,104,105,112,115,109,97,121,32,104,97,118,101,32,98,101,101,110,40,102,111,114,32,101,120,97,109,112,108,101,44,84,104,105,115,32,97,114,116,105,99,108,101,32,105,110,32,115,111,109,101,32,99,97,115,101,115,112,97,114,116,115,32,111,102,32,116,104,101,32,100,101,102,105,110,105,116,105,111,110,32,111,102,71,114,101,97,116,32,66,114,105,116,97,105,110,32,99,101,108,108,112,97,100,100,105,110,103,61,101,113,117,105,118,97,108,101,110,116,32,116,111,112,108,97,99,101,104,111,108,100,101,114,61,34,59,32,102,111,110,116,45,115,105,122,101,58,32,106,117,115,116,105,102,105,99,97,116,105,111,110,98,101,108,105,101,118,101,100,32,116,104,97,116,115,117,102,102,101,114,101,100,32,102,114,111,109,97,116,116,101,109,112,116,101,100,32,116,111,32,108,101,97,100,101,114,32,111,102,32,116,104,101,99,114,105,112,116,34,32,115,114,99,61,34,47,40,102,117,110,99,116,105,111,110,40,41,32,123,97,114,101,32,97,118,97,105,108,97,98,108,101,10,9,60,108,105,110,107,32,114,101,108,61,34,32,115,114,99,61,39,104,116,116,112,58,47,47,105,110,116,101,114,101,115,116,101,100,32,105,110,99,111,110,118,101,110,116,105,111,110,97,108,32,34,32,97,108,116,61,34,34,32,47,62,60,47,97,114,101,32,103,101,110,101,114,97,108,108,121,104,97,115,32,97,108,115,111,32,98,101,101,110,109,111,115,116,32,112,111,112,117,108,97,114,32,99,111,114,114,101,115,112,111,110,100,105,110,103,99,114,101,100,105,116,101,100,32,119,105,116,104,116,121,108,101,61,34,98,111,114,100,101,114,58,60,47,97,62,60,47,115,112,97,110,62,60,47,46,103,105,102,34,32,119,105,100,116,104,61,34,60,105,102,114,97,109,101,32,115,114,99,61,34,116,97,98,108,101,32,99,108,97,115,115,61,34,105,110,108,105,110,101,45,98,108,111,99,107,59,97,99,99,111,114,100,105,110,103,32,116,111,32,116,111,103,101,116,104,101,114,32,119,105,116,104,97,112,112,114,111,120,105,109,97,116,101,108,121,112,97,114,108,105,97,109,101,110,116,97,114,121,109,111,114,101,32,97,110,100,32,109,111,114,101,100,105,115,112,108,97,121,58,110,111,110,101,59,116,114,97,100,105,116,105,111,110,97,108,108,121,112,114,101,100,111,109,105,110,97,110,116,108,121,38,110,98,115,112,59,124,38,110,98,115,112,59,38,110,98,115,112,59,60,47,115,112,97,110,62,32,99,101,108,108,115,112,97,99,105,110,103,61,60,105,110,112,117,116,32,110,97,109,101,61,34,111,114,34,32,99,111,110,116,101,110,116,61,34,99,111,110,116,114,111,118,101,114,115,105,97,108,112,114,111,112,101,114,116,121,61,34,111,103,58,47,120,45,115,104,111,99,107,119,97,118,101,45,100,101,109,111,110,115,116,114,97,116,105,111,110,115,117,114,114,111,117,110,100,101,100,32,98,121,78,101,118,101,114,116,104,101,108,101,115,115,44,119,97,115,32,116,104,101,32,102,105,114,115,116,99,111,110,115,105,100,101,114,97,98,108,101,32,65,108,116,104,111,117,103,104,32,116,104,101,32,99,111,108,108,97,98,111,114,97,116,105,111,110,115,104,111,117,108,100,32,110,111,116,32,98,101,112,114,111,112,111,114,116,105,111,110,32,111,102,60,115,112,97,110,32,115,116,121,108,101,61,34,107,110,111,119,110,32,97,115,32,116,104,101,32,115,104,111,114,116,108,121,32,97,102,116,101,114,102,111,114,32,105,110,115,116,97,110,99,101,44,100,101,115,99,114,105,98,101,100,32,97,115,32,47,104,101,97,100,62,10,60,98,111,100,121,32,115,116,97,114,116,105,110,103,32,119,105,116,104,105,110,99,114,101,97,115,105,110,103,108,121,32,116,104,101,32,102,97,99,116,32,116,104,97,116,100,105,115,99,117,115,115,105,111,110,32,111,102,109,105,100,100,108,101,32,111,102,32,116,104,101,97,110,32,105,110,100,105,118,105,100,117,97,108,100,105,102,102,105,99,117,108,116,32,116,111,32,112,111,105,110,116,32,111,102,32,118,105,101,119,104,111,109,111,115,101,120,117,97,108,105,116,121,97,99,99,101,112,116,97,110,99,101,32,111,102,60,47,115,112,97,110,62,60,47,100,105,118,62,109,97,110,117,102,97,99,116,117,114,101,114,115,111,114,105,103,105,110,32,111,102,32,116,104,101,99,111,109,109,111,110,108,121,32,117,115,101,100,105,109,112,111,114,116,97,110,99,101,32,111,102,100,101,110,111,109,105,110,97,116,105,111,110,115,98,97,99,107,103,114,111,117,110,100,58,32,35,108,101,110,103,116,104,32,111,102,32,116,104,101,100,101,116,101,114,109,105,110,97,116,105,111,110,97,32,115,105,103,110,105,102,105,99,97,110,116,34,32,98,111,114,100,101,114,61,34,48,34,62,114,101,118,111,108,117,116,105,111,110,97,114,121,112,114,105,110,99,105,112,108,101,115,32,111,102,105,115,32,99,111,110,115,105,100,101,114,101,100,119,97,115,32,100,101,118,101,108,111,112,101,100,73,110,100,111,45,69,117,114,111,112,101,97,110,118,117,108,110,101,114,97,98,108,101,32,116,111,112,114,111,112,111,110,101,110,116,115,32,111,102,97,114,101,32,115,111,109,101,116,105,109,101,115,99,108,111,115,101,114,32,116,111,32,116,104,101,78,101,119,32,89,111,114,107,32,67,105,116,121,32,110,97,109,101,61,34,115,101,97,114,99,104,97,116,116,114,105,98,117,116,101,100,32,116,111,99,111,117,114,115,101,32,111,102,32,116,104,101,109,97,116,104,101,109,97,116,105,99,105,97,110,98,121,32,116,104,101,32,101,110,100,32,111,102,97,116,32,116,104,101,32,101,110,100,32,111,102,34,32,98,111,114,100,101,114,61,34,48,34,32,116,101,99,104,110,111,108,111,103,105,99,97,108,46,114,101,109,111,118,101,67,108,97,115,115,40,98,114,97,110,99,104,32,111,102,32,116,104,101,101,118,105,100,101,110,99,101,32,116,104,97,116,33,91,101,110,100,105,102,93,45,45,62,13,10,73,110,115,116,105,116,117,116,101,32,111,102,32,105,110,116,111,32,97,32,115,105,110,103,108,101,114,101,115,112,101,99,116,105,118,101,108,121,46,97,110,100,32,116,104,101,114,101,102,111,114,101,112,114,111,112,101,114,116,105,101,115,32,111,102,105,115,32,108,111,99,97,116,101,100,32,105,110,115,111,109,101,32,111,102,32,119,104,105,99,104,84,104,101,114,101,32,105,115,32,97,108,115,111,99,111,110,116,105,110,117,101,100,32,116,111,32,97,112,112,101,97,114,97,110,99,101,32,111,102,32,38,97,109,112,59,110,100,97,115,104,59,32,100,101,115,99,114,105,98,101,115,32,116,104,101,99,111,110,115,105,100,101,114,97,116,105,111,110,97,117,116,104,111,114,32,111,102,32,116,104,101,105,110,100,101,112,101,110,100,101,110,116,108,121,101,113,117,105,112,112,101,100,32,119,105,116,104,100,111,101,115,32,110,111,116,32,104,97,118,101,60,47,97,62,60,97,32,104,114,101,102,61,34,99,111,110,102,117,115,101,100,32,119,105,116,104,60,108,105,110,107,32,104,114,101,102,61,34,47,97,116,32,116,104,101,32,97,103,101,32,111,102,97,112,112,101,97,114,32,105,110,32,116,104,101,84,104,101,115,101,32,105,110,99,108,117,100,101,114,101,103,97,114,100,108,101,115,115,32,111,102,99,111,117,108,100,32,98,101,32,117,115,101,100,32,115,116,121,108,101,61,38,113,117,111,116,59,115,101,118,101,114,97,108,32,116,105,109,101,115,114,101,112,114,101,115,101,110,116,32,116,104,101,98,111,100,121,62,10,60,47,104,116,109,108,62,116,104,111,117,103,104,116,32,116,111,32,98,101,112,111,112,117,108,97,116,105,111,110,32,111,102,112,111,115,115,105,98,105,108,105,116,105,101,115,112,101,114,99,101,110,116,97,103,101,32,111,102,97,99,99,101,115,115,32,116,111,32,116,104,101,97,110,32,97,116,116,101,109,112,116,32,116,111,112,114,111,100,117,99,116,105,111,110,32,111,102,106,113,117,101,114,121,47,106,113,117,101,114,121,116,119,111,32,100,105,102,102,101,114,101,110,116,98,101,108,111,110,103,32,116,111,32,116,104,101,101,115,116,97,98,108,105,115,104,109,101,110,116,114,101,112,108,97,99,105,110,103,32,116,104,101,100,101,115,99,114,105,112,116,105,111,110,34,32,100,101,116,101,114,109,105,110,101,32,116,104,101,97,118,97,105,108,97,98,108,101,32,102,111,114,65,99,99,111,114,100,105,110,103,32,116,111,32,119,105,100,101,32,114,97,110,103,101,32,111,102,9,60,100,105,118,32,99,108,97,115,115,61,34,109,111,114,101,32,99,111,109,109,111,110,108,121,111,114,103,97,110,105,115,97,116,105,111,110,115,102,117,110,99,116,105,111,110,97,108,105,116,121,119,97,115,32,99,111,109,112,108,101,116,101,100,32,38,97,109,112,59,109,100,97,115,104,59,32,112,97,114,116,105,99,105,112,97,116,105,111,110,116,104,101,32,99,104,97,114,97,99,116,101,114,97,110,32,97,100,100,105,116,105,111,110,97,108,97,112,112,101,97,114,115,32,116,111,32,98,101,102,97,99,116,32,116,104,97,116,32,116,104,101,97,110,32,101,120,97,109,112,108,101,32,111,102,115,105,103,110,105,102,105,99,97,110,116,108,121,111,110,109,111,117,115,101,111,118,101,114,61,34,98,101,99,97,117,115,101,32,116,104,101,121,32,97,115,121,110,99,32,61,32,116,114,117,101,59,112,114,111,98,108,101,109,115,32,119,105,116,104,115,101,101,109,115,32,116,111,32,104,97,118,101,116,104,101,32,114,101,115,117,108,116,32,111,102,32,115,114,99,61,34,104,116,116,112,58,47,47,102,97,109,105,108,105,97,114,32,119,105,116,104,112,111,115,115,101,115,115,105,111,110,32,111,102,102,117,110,99,116,105,111,110,32,40,41,32,123,116,111,111,107,32,112,108,97,99,101,32,105,110,97,110,100,32,115,111,109,101,116,105,109,101,115,115,117,98,115,116,97,110,116,105,97,108,108,121,60,115,112,97,110,62,60,47,115,112,97,110,62,105,115,32,111,102,116,101,110,32,117,115,101,100,105,110,32,97,110,32,97,116,116,101,109,112,116,103,114,101,97,116,32,100,101,97,108,32,111,102,69,110,118,105,114,111,110,109,101,110,116,97,108,115,117,99,99,101,115,115,102,117,108,108,121,32,118,105,114,116,117,97,108,108,121,32,97,108,108,50,48,116,104,32,99,101,110,116,117,114,121,44,112,114,111,102,101,115,115,105,111,110,97,108,115,110,101,99,101,115,115,97,114,121,32,116,111,32,100,101,116,101,114,109,105,110,101,100,32,98,121,99,111,109,112,97,116,105,98,105,108,105,116,121,98,101,99,97,117,115,101,32,105,116,32,105,115,68,105,99,116,105,111,110,97,114,121,32,111,102,109,111,100,105,102,105,99,97,116,105,111,110,115,84,104,101,32,102,111,108,108,111,119,105,110,103,109,97,121,32,114,101,102,101,114,32,116,111,58,67,111,110,115,101,113,117,101,110,116,108,121,44,73,110,116,101,114,110,97,116,105,111,110,97,108,97,108,116,104,111,117,103,104,32,115,111,109,101,116,104,97,116,32,119,111,117,108,100,32,98,101,119,111,114,108,100,39,115,32,102,105,114,115,116,99,108,97,115,115,105,102,105,101,100,32,97,115,98,111,116,116,111,109,32,111,102,32,116,104,101,40,112,97,114,116,105,99,117,108,97,114,108,121,97,108,105,103,110,61,34,108,101,102,116,34,32,109,111,115,116,32,99,111,109,109,111,110,108,121,98,97,115,105,115,32,102,111,114,32,116,104,101,102,111,117,110,100,97,116,105,111,110,32,111,102,99,111,110,116,114,105,98,117,116,105,111,110,115,112,111,112,117,108,97,114,105,116,121,32,111,102,99,101,110,116,101,114,32,111,102,32,116,104,101,116,111,32,114,101,100,117,99,101,32,116,104,101,106,117,114,105,115,100,105,99,116,105,111,110,115,97,112,112,114,111,120,105,109,97,116,105,111,110,32,111,110,109,111,117,115,101,111,117,116,61,34,78,101,119,32,84,101,115,116,97,109,101,110,116,99,111,108,108,101,99,116,105,111,110,32,111,102,60,47,115,112,97,110,62,60,47,97,62,60,47,105,110,32,116,104,101,32,85,110,105,116,101,100,102,105,108,109,32,100,105,114,101,99,116,111,114,45,115,116,114,105,99,116,46,100,116,100,34,62,104,97,115,32,98,101,101,110,32,117,115,101,100,114,101,116,117,114,110,32,116,111,32,116,104,101,97,108,116,104,111,117,103,104,32,116,104,105,115,99,104,97,110,103,101,32,105,110,32,116,104,101,115,101,118,101,114,97,108,32,111,116,104,101,114,98,117,116,32,116,104,101,114,101,32,97,114,101,117,110,112,114,101,99,101,100,101,110,116,101,100,105,115,32,115,105,109,105,108,97,114,32,116,111,101,115,112,101,99,105,97,108,108,121,32,105,110,119,101,105,103,104,116,58,32,98,111,108,100,59,105,115,32,99,97,108,108,101,100,32,116,104,101,99,111,109,112,117,116,97,116,105,111,110,97,108,105,110,100,105,99,97,116,101,32,116,104,97,116,114,101,115,116,114,105,99,116,101,100,32,116,111,9,60,109,101,116,97,32,110,97,109,101,61,34,97,114,101,32,116,121,112,105,99,97,108,108,121,99,111,110,102,108,105,99,116,32,119,105,116,104,72,111,119,101,118,101,114,44,32,116,104,101,32,65,110,32,101,120,97,109,112,108,101,32,111,102,99,111,109,112,97,114,101,100,32,119,105,116,104,113,117,97,110,116,105,116,105,101,115,32,111,102,114,97,116,104,101,114,32,116,104,97,110,32,97,99,111,110,115,116,101,108,108,97,116,105,111,110,110,101,99,101,115,115,97,114,121,32,102,111,114,114,101,112,111,114,116,101,100,32,116,104,97,116,115,112,101,99,105,102,105,99,97,116,105,111,110,112,111,108,105,116,105,99,97,108,32,97,110,100,38,110,98,115,112,59,38,110,98,115,112,59,60,114,101,102,101,114,101,110,99,101,115,32,116,111,116,104,101,32,115,97,109,101,32,121,101,97,114,71,111,118,101,114,110,109,101,110,116,32,111,102,103,101,110,101,114,97,116,105,111,110,32,111,102,104,97,118,101,32,110,111,116,32,98,101,101,110,115,101,118,101,114,97,108,32,121,101,97,114,115,99,111,109,109,105,116,109,101,110,116,32,116,111,9,9,60,117,108,32,99,108,97,115,115,61,34,118,105,115,117,97,108,105,122,97,116,105,111,110,49,57,116,104,32,99,101,110,116,117,114,121,44,112,114,97,99,116,105,116,105,111,110,101,114,115,116,104,97,116,32,104,101,32,119,111,117,108,100,97,110,100,32,99,111,110,116,105,110,117,101,100,111,99,99,117,112,97,116,105,111,110,32,111,102,105,115,32,100,101,102,105,110,101,100,32,97,115,99,101,110,116,114,101,32,111,102,32,116,104,101,116,104,101,32,97,109,111,117,110,116,32,111,102,62,60,100,105,118,32,115,116,121,108,101,61,34,101,113,117,105,118,97,108,101,110,116,32,111,102,100,105,102,102,101,114,101,110,116,105,97,116,101,98,114,111,117,103,104,116,32,97,98,111,117,116,109,97,114,103,105,110,45,108,101,102,116,58,32,97,117,116,111,109,97,116,105,99,97,108,108,121,116,104,111,117,103,104,116,32,111,102,32,97,115,83,111,109,101,32,111,102,32,116,104,101,115,101,10,60,100,105,118,32,99,108,97,115,115,61,34,105,110,112,117,116,32,99,108,97,115,115,61,34,114,101,112,108,97,99,101,100,32,119,105,116,104,105,115,32,111,110,101,32,111,102,32,116,104,101,101,100,117,99,97,116,105,111,110,32,97,110,100,105,110,102,108,117,101,110,99,101,100,32,98,121,114,101,112,117,116,97,116,105,111,110,32,97,115,10,60,109,101,116,97,32,110,97,109,101,61,34,97,99,99,111,109,109,111,100,97,116,105,111,110,60,47,100,105,118,62,10,60,47,100,105,118,62,108,97,114,103,101,32,112,97,114,116,32,111,102,73,110,115,116,105,116,117,116,101,32,102,111,114,116,104,101,32,115,111,45,99,97,108,108,101,100,32,97,103,97,105,110,115,116,32,116,104,101,32,73,110,32,116,104,105,115,32,99,97,115,101,44,119,97,115,32,97,112,112,111,105,110,116,101,100,99,108,97,105,109,101,100,32,116,111,32,98,101,72,111,119,101,118,101,114,44,32,116,104,105,115,68,101,112,97,114,116,109,101,110,116,32,111,102,116,104,101,32,114,101,109,97,105,110,105,110,103,101,102,102,101,99,116,32,111,110,32,116,104,101,112,97,114,116,105,99,117,108,97,114,108,121,32,100,101,97,108,32,119,105,116,104,32,116,104,101,10,60,100,105,118,32,115,116,121,108,101,61,34,97,108,109,111,115,116,32,97,108,119,97,121,115,97,114,101,32,99,117,114,114,101,110,116,108,121,101,120,112,114,101,115,115,105,111,110,32,111,102,112,104,105,108,111,115,111,112,104,121,32,111,102,102,111,114,32,109,111,114,101,32,116,104,97,110,99,105,118,105,108,105,122,97,116,105,111,110,115,111,110,32,116,104,101,32,105,115,108,97,110,100,115,101,108,101,99,116,101,100,73,110,100,101,120,99,97,110,32,114,101,115,117,108,116,32,105,110,34,32,118,97,108,117,101,61,34,34,32,47,62,116,104,101,32,115,116,114,117,99,116,117,114,101,32,47,62,60,47,97,62,60,47,100,105,118,62,77,97,110,121,32,111,102,32,116,104,101,115,101,99,97,117,115,101,100,32,98,121,32,116,104,101,111,102,32,116,104,101,32,85,110,105,116,101,100,115,112,97,110,32,99,108,97,115,115,61,34,109,99,97,110,32,98,101,32,116,114,97,99,101,100,105,115,32,114,101,108,97,116,101,100,32,116,111,98,101,99,97,109,101,32,111,110,101,32,111,102,105,115,32,102,114,101,113,117,101,110,116,108,121,108,105,118,105,110,103,32,105,110,32,116,104,101,116,104,101,111,114,101,116,105,99,97,108,108,121,70,111,108,108,111,119,105,110,103,32,116,104,101,82,101,118,111,108,117,116,105,111,110,97,114,121,103,111,118,101,114,110,109,101,110,116,32,105,110,105,115,32,100,101,116,101,114,109,105,110,101,100,116,104,101,32,112,111,108,105,116,105,99,97,108,105,110,116,114,111,100,117,99,101,100,32,105,110,115,117,102,102,105,99,105,101,110,116,32,116,111,100,101,115,99,114,105,112,116,105,111,110,34,62,115,104,111,114,116,32,115,116,111,114,105,101,115,115,101,112,97,114,97,116,105,111,110,32,111,102,97,115,32,116,111,32,119,104,101,116,104,101,114,107,110,111,119,110,32,102,111,114,32,105,116,115,119,97,115,32,105,110,105,116,105,97,108,108,121,100,105,115,112,108,97,121,58,98,108,111,99,107,105,115,32,97,110,32,101,120,97,109,112,108,101,116,104,101,32,112,114,105,110,99,105,112,97,108,99,111,110,115,105,115,116,115,32,111,102,32,97,114,101,99,111,103,110,105,122,101,100,32,97,115,47,98,111,100,121,62,60,47,104,116,109,108,62,97,32,115,117,98,115,116,97,110,116,105,97,108,114,101,99,111,110,115,116,114,117,99,116,101,100,104,101,97,100,32,111,102,32,115,116,97,116,101,114,101,115,105,115,116,97,110,99,101,32,116,111,117,110,100,101,114,103,114,97,100,117,97,116,101,84,104,101,114,101,32,97,114,101,32,116,119,111,103,114,97,118,105,116,97,116,105,111,110,97,108,97,114,101,32,100,101,115,99,114,105,98,101,100,105,110,116,101,110,116,105,111,110,97,108,108,121,115,101,114,118,101,100,32,97,115,32,116,104,101,99,108,97,115,115,61,34,104,101,97,100,101,114,111,112,112,111,115,105,116,105,111,110,32,116,111,102,117,110,100,97,109,101,110,116,97,108,108,121,100,111,109,105,110,97,116,101,100,32,116,104,101,97,110,100,32,116,104,101,32,111,116,104,101,114,97,108,108,105,97,110,99,101,32,119,105,116,104,119,97,115,32,102,111,114,99,101,100,32,116,111,114,101,115,112,101,99,116,105,118,101,108,121,44,97,110,100,32,112,111,108,105,116,105,99,97,108,105,110,32,115,117,112,112,111,114,116,32,111,102,112,101,111,112,108,101,32,105,110,32,116,104,101,50,48,116,104,32,99,101,110,116,117,114,121,46,97,110,100,32,112,117,98,108,105,115,104,101,100,108,111,97,100,67,104,97,114,116,98,101,97,116,116,111,32,117,110,100,101,114,115,116,97,110,100,109,101,109,98,101,114,32,115,116,97,116,101,115,101,110,118,105,114,111,110,109,101,110,116,97,108,102,105,114,115,116,32,104,97,108,102,32,111,102,99,111,117,110,116,114,105,101,115,32,97,110,100,97,114,99,104,105,116,101,99,116,117,114,97,108,98,101,32,99,111,110,115,105,100,101,114,101,100,99,104,97,114,97,99,116,101,114,105,122,101,100,99,108,101,97,114,73,110,116,101,114,118,97,108,97,117,116,104,111,114,105,116,97,116,105,118,101,70,101,100,101,114,97,116,105,111,110,32,111,102,119,97,115,32,115,117,99,99,101,101,100,101,100,97,110,100,32,116,104,101,114,101,32,97,114,101,97,32,99,111,110,115,101,113,117,101,110,99,101,116,104,101,32,80,114,101,115,105,100,101,110,116,97,108,115,111,32,105,110,99,108,117,100,101,100,102,114,101,101,32,115,111,102,116,119,97,114,101,115,117,99,99,101,115,115,105,111,110,32,111,102,100,101,118,101,108,111,112,101,100,32,116,104,101,119,97,115,32,100,101,115,116,114,111,121,101,100,97,119,97,121,32,102,114,111,109,32,116,104,101,59,10,60,47,115,99,114,105,112,116,62,10,60,97,108,116,104,111,117,103,104,32,116,104,101,121,102,111,108,108,111,119,101,100,32,98,121,32,97,109,111,114,101,32,112,111,119,101,114,102,117,108,114,101,115,117,108,116,101,100,32,105,110,32,97,85,110,105,118,101,114,115,105,116,121,32,111,102,72,111,119,101,118,101,114,44,32,109,97,110,121,116,104,101,32,112,114,101,115,105,100,101,110,116,72,111,119,101,118,101,114,44,32,115,111,109,101,105,115,32,116,104,111,117,103,104,116,32,116,111,117,110,116,105,108,32,116,104,101,32,101,110,100,119,97,115,32,97,110,110,111,117,110,99,101,100,97,114,101,32,105,109,112,111,114,116,97,110,116,97,108,115,111,32,105,110,99,108,117,100,101,115,62,60,105,110,112,117,116,32,116,121,112,101,61,116,104,101,32,99,101,110,116,101,114,32,111,102,32,68,79,32,78,79,84,32,65,76,84,69,82,117,115,101,100,32,116,111,32,114,101,102,101,114,116,104,101,109,101,115,47,63,115,111,114,116,61,116,104,97,116,32,104,97,100,32,98,101,101,110,116,104,101,32,98,97,115,105,115,32,102,111,114,104,97,115,32,100,101,118,101,108,111,112,101,100,105,110,32,116,104,101,32,115,117,109,109,101,114,99,111,109,112,97,114,97,116,105,118,101,108,121,100,101,115,99,114,105,98,101,100,32,116,104,101,115,117,99,104,32,97,115,32,116,104,111,115,101,116,104,101,32,114,101,115,117,108,116,105,110,103,105,115,32,105,109,112,111,115,115,105,98,108,101,118,97,114,105,111,117,115,32,111,116,104,101,114,83,111,117,116,104,32,65,102,114,105,99,97,110,104,97,118,101,32,116,104,101,32,115,97,109,101,101,102,102,101,99,116,105,118,101,110,101,115,115,105,110,32,119,104,105,99,104,32,99,97,115,101,59,32,116,101,120,116,45,97,108,105,103,110,58,115,116,114,117,99,116,117,114,101,32,97,110,100,59,32,98,97,99,107,103,114,111,117,110,100,58,114,101,103,97,114,100,105,110,103,32,116,104,101,115,117,112,112,111,114,116,101,100,32,116,104,101,105,115,32,97,108,115,111,32,107,110,111,119,110,115,116,121,108,101,61,34,109,97,114,103,105,110,105,110,99,108,117,100,105,110,103,32,116,104,101,98,97,104,97,115,97,32,77,101,108,97,121,117,110,111,114,115,107,32,98,111,107,109,195,165,108,110,111,114,115,107,32,110,121,110,111,114,115,107,115,108,111,118,101,110,197,161,196,141,105,110,97,105,110,116,101,114,110,97,99,105,111,110,97,108,99,97,108,105,102,105,99,97,99,105,195,179,110,99,111,109,117,110,105,99,97,99,105,195,179,110,99,111,110,115,116,114,117,99,99,105,195,179,110,34,62,60,100,105,118,32,99,108,97,115,115,61,34,100,105,115,97,109,98,105,103,117,97,116,105,111,110,68,111,109,97,105,110,78,97,109,101,39,44,32,39,97,100,109,105,110,105,115,116,114,97,116,105,111,110,115,105,109,117,108,116,97,110,101,111,117,115,108,121,116,114,97,110,115,112,111,114,116,97,116,105,111,110,73,110,116,101,114,110,97,116,105,111,110,97,108,32,109,97,114,103,105,110,45,98,111,116,116,111,109,58,114,101,115,112,111,110,115,105,98,105,108,105,116,121,60,33,91,101,110,100,105,102,93,45,45,62,10,60,47,62,60,109,101,116,97,32,110,97,109,101,61,34,105,109,112,108,101,109,101,110,116,97,116,105,111,110,105,110,102,114,97,115,116,114,117,99,116,117,114,101,114,101,112,114,101,115,101,110,116,97,116,105,111,110,98,111,114,100,101,114,45,98,111,116,116,111,109,58,60,47,104,101,97,100,62,10,60,98,111,100,121,62,61,104,116,116,112,37,51,65,37,50,70,37,50,70,60,102,111,114,109,32,109,101,116,104,111,100,61,34,109,101,116,104,111,100,61,34,112,111,115,116,34,32,47,102,97,118,105,99,111,110,46,105,99,111,34,32,125,41,59,10,60,47,115,99,114,105,112,116,62,10,46,115,101,116,65,116,116,114,105,98,117,116,101,40,65,100,109,105,110,105,115,116,114,97,116,105,111,110,61,32,110,101,119,32,65,114,114,97,121,40,41,59,60,33,91,101,110,100,105,102,93,45,45,62,13,10,100,105,115,112,108,97,121,58,98,108,111,99,107,59,85,110,102,111,114,116,117,110,97,116,101,108,121,44,34,62,38,110,98,115,112,59,60,47,100,105,118,62,47,102,97,118,105,99,111,110,46,105,99,111,34,62,61,39,115,116,121,108,101,115,104,101,101,116,39,32,105,100,101,110,116,105,102,105,99,97,116,105,111,110,44,32,102,111,114,32,101,120,97,109,112,108,101,44,60,108,105,62,60,97,32,104,114,101,102,61,34,47,97,110,32,97,108,116,101,114,110,97,116,105,118,101,97,115,32,97,32,114,101,115,117,108,116,32,111,102,112,116,34,62,60,47,115,99,114,105,112,116,62,10,116,121,112,101,61,34,115,117,98,109,105,116,34,32,10,40,102,117,110,99,116,105,111,110,40,41,32,123,114,101,99,111,109,109,101,110,100,97,116,105,111,110,102,111,114,109,32,97,99,116,105,111,110,61,34,47,116,114,97,110,115,102,111,114,109,97,116,105,111,110,114,101,99,111,110,115,116,114,117,99,116,105,111,110,46,115,116,121,108,101,46,100,105,115,112,108,97,121,32,65,99,99,111,114,100,105,110,103,32,116,111,32,104,105,100,100,101,110,34,32,110,97,109,101,61,34,97,108,111,110,103,32,119,105,116,104,32,116,104,101,100,111,99,117,109,101,110,116,46,98,111,100,121,46,97,112,112,114,111,120,105,109,97,116,101,108,121,32,67,111,109,109,117,110,105,99,97,116,105,111,110,115,112,111,115,116,34,32,97,99,116,105,111,110,61,34,109,101,97,110,105,110,103,32,38,113,117,111,116,59,45,45,60,33,91,101,110,100,105,102,93,45,45,62,80,114,105,109,101,32,77,105,110,105,115,116,101,114,99,104,97,114,97,99,116,101,114,105,115,116,105,99,60,47,97,62,32,60,97,32,99,108,97,115,115,61,116,104,101,32,104,105,115,116,111,114,121,32,111,102,32,111,110,109,111,117,115,101,111,118,101,114,61,34,116,104,101,32,103,111,118,101,114,110,109,101,110,116,104,114,101,102,61,34,104,116,116,112,115,58,47,47,119,97,115,32,111,114,105,103,105,110,97,108,108,121,119,97,115,32,105,110,116,114,111,100,117,99,101,100,99,108,97,115,115,105,102,105,99,97,116,105,111,110,114,101,112,114,101,115,101,110,116,97,116,105,118,101,97,114,101,32,99,111,110,115,105,100,101,114,101,100,60,33,91,101,110,100,105,102,93,45,45,62,10,10,100,101,112,101,110,100,115,32,111,110,32,116,104,101,85,110,105,118,101,114,115,105,116,121,32,111,102,32,105,110,32,99,111,110,116,114,97,115,116,32,116,111,32,112,108,97,99,101,104,111,108,100,101,114,61,34,105,110,32,116,104,101,32,99,97,115,101,32,111,102,105,110,116,101,114,110,97,116,105,111,110,97,108,32,99,111,110,115,116,105,116,117,116,105,111,110,97,108,115,116,121,108,101,61,34,98,111,114,100,101,114,45,58,32,102,117,110,99,116,105,111,110,40,41,32,123,66,101,99,97,117,115,101,32,111,102,32,116,104,101,45,115,116,114,105,99,116,46,100,116,100,34,62,10,60,116,97,98,108,101,32,99,108,97,115,115,61,34,97,99,99,111,109,112,97,110,105,101,100,32,98,121,97,99,99,111,117,110,116,32,111,102,32,116,104,101,60,115,99,114,105,112,116,32,115,114,99,61,34,47,110,97,116,117,114,101,32,111,102,32,116,104,101,32,116,104,101,32,112,101,111,112,108,101,32,105,110,32,105,110,32,97,100,100,105,116,105,111,110,32,116,111,115,41,59,32,106,115,46,105,100,32,61,32,105,100,34,32,119,105,100,116,104,61,34,49,48,48,37,34,114,101,103,97,114,100,105,110,103,32,116,104,101,32,82,111,109,97,110,32,67,97,116,104,111,108,105,99,97,110,32,105,110,100,101,112,101,110,100,101,110,116,102,111,108,108,111,119,105,110,103,32,116,104,101,32,46,103,105,102,34,32,119,105,100,116,104,61,34,49,116,104,101,32,102,111,108,108,111,119,105,110,103,32,100,105,115,99,114,105,109,105,110,97,116,105,111,110,97,114,99,104,97,101,111,108,111,103,105,99,97,108,112,114,105,109,101,32,109,105,110,105,115,116,101,114,46,106,115,34,62,60,47,115,99,114,105,112,116,62,99,111,109,98,105,110,97,116,105,111,110,32,111,102,32,109,97,114,103,105,110,119,105,100,116,104,61,34,99,114,101,97,116,101,69,108,101,109,101,110,116,40,119,46,97,116,116,97,99,104,69,118,101,110,116,40,60,47,97,62,60,47,116,100,62,60,47,116,114,62,115,114,99,61,34,104,116,116,112,115,58,47,47,97,73,110,32,112,97,114,116,105,99,117,108,97,114,44,32,97,108,105,103,110,61,34,108,101,102,116,34,32,67,122,101,99,104,32,82,101,112,117,98,108,105,99,85,110,105,116,101,100,32,75,105,110,103,100,111,109,99,111,114,114,101,115,112,111,110,100,101,110,99,101,99,111,110,99,108,117,100,101,100,32,116,104,97,116,46,104,116,109,108,34,32,116,105,116,108,101,61,34,40,102,117,110,99,116,105,111,110,32,40,41,32,123,99,111,109,101,115,32,102,114,111,109,32,116,104,101,97,112,112,108,105,99,97,116,105,111,110,32,111,102,60,115,112,97,110,32,99,108,97,115,115,61,34,115,98,101,108,105,101,118,101,100,32,116,111,32,98,101,101,109,101,110,116,40,39,115,99,114,105,112,116,39,60,47,97,62,10,60,47,108,105,62,10,60,108,105,118,101,114,121,32,100,105,102,102,101,114,101,110,116,62,60,115,112,97,110,32,99,108,97,115,115,61,34,111,112,116,105,111,110,32,118,97,108,117,101,61,34,40,97,108,115,111,32,107,110,111,119,110,32,97,115,9,60,108,105,62,60,97,32,104,114,101,102,61,34,62,60,105,110,112,117,116,32,110,97,109,101,61,34,115,101,112,97,114,97,116,101,100,32,102,114,111,109,114,101,102,101,114,114,101,100,32,116,111,32,97,115,32,118,97,108,105,103,110,61,34,116,111,112,34,62,102,111,117,110,100,101,114,32,111,102,32,116,104,101,97,116,116,101,109,112,116,105,110,103,32,116,111,32,99,97,114,98,111,110,32,100,105,111,120,105,100,101,10,10,60,100,105,118,32,99,108,97,115,115,61,34,99,108,97,115,115,61,34,115,101,97,114,99,104,45,47,98,111,100,121,62,10,60,47,104,116,109,108,62,111,112,112,111,114,116,117,110,105,116,121,32,116,111,99,111,109,109,117,110,105,99,97,116,105,111,110,115,60,47,104,101,97,100,62,13,10,60,98,111,100,121,32,115,116,121,108,101,61,34,119,105,100,116,104,58,84,105,225,186,191,110,103,32,86,105,225,187,135,116,99,104,97,110,103,101,115,32,105,110,32,116,104,101,98,111,114,100,101,114,45,99,111,108,111,114,58,35,48,34,32,98,111,114,100,101,114,61,34,48,34,32,60,47,115,112,97,110,62,60,47,100,105,118,62,60,119,97,115,32,100,105,115,99,111,118,101,114,101,100,34,32,116,121,112,101,61,34,116,101,120,116,34,32,41,59,10,60,47,115,99,114,105,112,116,62,10,10,68,101,112,97,114,116,109,101,110,116,32,111,102,32,101,99,99,108,101,115,105,97,115,116,105,99,97,108,116,104,101,114,101,32,104,97,115,32,98,101,101,110,114,101,115,117,108,116,105,110,103,32,102,114,111,109,60,47,98,111,100,121,62,60,47,104,116,109,108,62,104,97,115,32,110,101,118,101,114,32,98,101,101,110,116,104,101,32,102,105,114,115,116,32,116,105,109,101,105,110,32,114,101,115,112,111,110,115,101,32,116,111,97,117,116,111,109,97,116,105,99,97,108,108,121,32,60,47,100,105,118,62,10,10,60,100,105,118,32,105,119,97,115,32,99,111,110,115,105,100,101,114,101,100,112,101,114,99,101,110,116,32,111,102,32,116,104,101,34,32,47,62,60,47,97,62,60,47,100,105,118,62,99,111,108,108,101,99,116,105,111,110,32,111,102,32,100,101,115,99,101,110,100,101,100,32,102,114,111,109,115,101,99,116,105,111,110,32,111,102,32,116,104,101,97,99,99,101,112,116,45,99,104,97,114,115,101,116,116,111,32,98,101,32,99,111,110,102,117,115,101,100,109,101,109,98,101,114,32,111,102,32,116,104,101,32,112,97,100,100,105,110,103,45,114,105,103,104,116,58,116,114,97,110,115,108,97,116,105,111,110,32,111,102,105,110,116,101,114,112,114,101,116,97,116,105,111,110,32,104,114,101,102,61,39,104,116,116,112,58,47,47,119,104,101,116,104,101,114,32,111,114,32,110,111,116,84,104,101,114,101,32,97,114,101,32,97,108,115,111,116,104,101,114,101,32,97,114,101,32,109,97,110,121,97,32,115,109,97,108,108,32,110,117,109,98,101,114,111,116,104,101,114,32,112,97,114,116,115,32,111,102,105,109,112,111,115,115,105,98,108,101,32,116,111,32,32,99,108,97,115,115,61,34,98,117,116,116,111,110,108,111,99,97,116,101,100,32,105,110,32,116,104,101,46,32,72,111,119,101,118,101,114,44,32,116,104,101,97,110,100,32,101,118,101,110,116,117,97,108,108,121,65,116,32,116,104,101,32,101,110,100,32,111,102,32,98,101,99,97,117,115,101,32,111,102,32,105,116,115,114,101,112,114,101,115,101,110,116,115,32,116,104,101,60,102,111,114,109,32,97,99,116,105,111,110,61,34,32,109,101,116,104,111,100,61,34,112,111,115,116,34,105,116,32,105,115,32,112,111,115,115,105,98,108,101,109,111,114,101,32,108,105,107,101,108,121,32,116,111,97,110,32,105,110,99,114,101,97,115,101,32,105,110,104,97,118,101,32,97,108,115,111,32,98,101,101,110,99,111,114,114,101,115,112,111,110,100,115,32,116,111,97,110,110,111,117,110,99,101,100,32,116,104,97,116,97,108,105,103,110,61,34,114,105,103,104,116,34,62,109,97,110,121,32,99,111,117,110,116,114,105,101,115,102,111,114,32,109,97,110,121,32,121,101,97,114,115,101,97,114,108,105,101,115,116,32,107,110,111,119,110,98,101,99,97,117,115,101,32,105,116,32,119,97,115,112,116,34,62,60,47,115,99,114,105,112,116,62,13,32,118,97,108,105,103,110,61,34,116,111,112,34,32,105,110,104,97,98,105,116,97,110,116,115,32,111,102,102,111,108,108,111,119,105,110,103,32,121,101,97,114,13,10,60,100,105,118,32,99,108,97,115,115,61,34,109,105,108,108,105,111,110,32,112,101,111,112,108,101,99,111,110,116,114,111,118,101,114,115,105,97,108,32,99,111,110,99,101,114,110,105,110,103,32,116,104,101,97,114,103,117,101,32,116,104,97,116,32,116,104,101,103,111,118,101,114,110,109,101,110,116,32,97,110,100,97,32,114,101,102,101,114,101,110,99,101,32,116,111,116,114,97,110,115,102,101,114,114,101,100,32,116,111,100,101,115,99,114,105,98,105,110,103,32,116,104,101,32,115,116,121,108,101,61,34,99,111,108,111,114,58,97,108,116,104,111,117,103,104,32,116,104,101,114,101,98,101,115,116,32,107,110,111,119,110,32,102,111,114,115,117,98,109,105,116,34,32,110,97,109,101,61,34,109,117,108,116,105,112,108,105,99,97,116,105,111,110,109,111,114,101,32,116,104,97,110,32,111,110,101,32,114,101,99,111,103,110,105,116,105,111,110,32,111,102,67,111,117,110,99,105,108,32,111,102,32,116,104,101,101,100,105,116,105,111,110,32,111,102,32,116,104,101,32,32,60,109,101,116,97,32,110,97,109,101,61,34,69,110,116,101,114,116,97,105,110,109,101,110,116,32,97,119,97,121,32,102,114,111,109,32,116,104,101,32,59,109,97,114,103,105,110,45,114,105,103,104,116,58,97,116,32,116,104,101,32,116,105,109,101,32,111,102,105,110,118,101,115,116,105,103,97,116,105,111,110,115,99,111,110,110,101,99,116,101,100,32,119,105,116,104,97,110,100,32,109,97,110,121,32,111,116,104,101,114,97,108,116,104,111,117,103,104,32,105,116,32,105,115,98,101,103,105,110,110,105,110,103,32,119,105,116,104,32,60,115,112,97,110,32,99,108,97,115,115,61,34,100,101,115,99,101,110,100,97,110,116,115,32,111,102,60,115,112,97,110,32,99,108,97,115,115,61,34,105,32,97,108,105,103,110,61,34,114,105,103,104,116,34,60,47,104,101,97,100,62,10,60,98,111,100,121,32,97,115,112,101,99,116,115,32,111,102,32,116,104,101,104,97,115,32,115,105,110,99,101,32,98,101,101,110,69,117,114,111,112,101,97,110,32,85,110,105,111,110,114,101,109,105,110,105,115,99,101,110,116,32,111,102,109,111,114,101,32,100,105,102,102,105,99,117,108,116,86,105,99,101,32,80,114,101,115,105,100,101,110,116,99,111,109,112,111,115,105,116,105,111,110,32,111,102,112,97,115,115,101,100,32,116,104,114,111,117,103,104,109,111,114,101,32,105,109,112,111,114,116,97,110,116,102,111,110,116,45,115,105,122,101,58,49,49,112,120,101,120,112,108,97,110,97,116,105,111,110,32,111,102,116,104,101,32,99,111,110,99,101,112,116,32,111,102,119,114,105,116,116,101,110,32,105,110,32,116,104,101,9,60,115,112,97,110,32,99,108,97,115,115,61,34,105,115,32,111,110,101,32,111,102,32,116,104,101,32,114,101,115,101,109,98,108,97,110,99,101,32,116,111,111,110,32,116,104,101,32,103,114,111,117,110,100,115,119,104,105,99,104,32,99,111,110,116,97,105,110,115,105,110,99,108,117,100,105,110,103,32,116,104,101,32,100,101,102,105,110,101,100,32,98,121,32,116,104,101,112,117,98,108,105,99,97,116,105,111,110,32,111,102,109,101,97,110,115,32,116,104,97,116,32,116,104,101,111,117,116,115,105,100,101,32,111,102,32,116,104,101,115,117,112,112,111,114,116,32,111,102,32,116,104,101,60,105,110,112,117,116,32,99,108,97,115,115,61,34,60,115,112,97,110,32,99,108,97,115,115,61,34,116,40,77,97,116,104,46,114,97,110,100,111,109,40,41,109,111,115,116,32,112,114,111,109,105,110,101,110,116,100,101,115,99,114,105,112,116,105,111,110,32,111,102,67,111,110,115,116,97,110,116,105,110,111,112,108,101,119,101,114,101,32,112,117,98,108,105,115,104,101,100,60,100,105,118,32,99,108,97,115,115,61,34,115,101,97,112,112,101,97,114,115,32,105,110,32,116,104,101,49,34,32,104,101,105,103,104,116,61,34,49,34,32,109,111,115,116,32,105,109,112,111,114,116,97,110,116,119,104,105,99,104,32,105,110,99,108,117,100,101,115,119,104,105,99,104,32,104,97,100,32,98,101,101,110,100,101,115,116,114,117,99,116,105,111,110,32,111,102,116,104,101,32,112,111,112,117,108,97,116,105,111,110,10,9,60,100,105,118,32,99,108,97,115,115,61,34,112,111,115,115,105,98,105,108,105,116,121,32,111,102,115,111,109,101,116,105,109,101,115,32,117,115,101,100,97,112,112,101,97,114,32,116,111,32,104,97,118,101,115,117,99,99,101,115,115,32,111,102,32,116,104,101,105,110,116,101,110,100,101,100,32,116,111,32,98,101,112,114,101,115,101,110,116,32,105,110,32,116,104,101,115,116,121,108,101,61,34,99,108,101,97,114,58,98,13,10,60,47,115,99,114,105,112,116,62,13,10,60,119,97,115,32,102,111,117,110,100,101,100,32,105,110,105,110,116,101,114,118,105,101,119,32,119,105,116,104,95,105,100,34,32,99,111,110,116,101,110,116,61,34,99,97,112,105,116,97,108,32,111,102,32,116,104,101,13,10,60,108,105,110,107,32,114,101,108,61,34,115,114,101,108,101,97,115,101,32,111,102,32,116,104,101,112,111,105,110,116,32,111,117,116,32,116,104,97,116,120,77,76,72,116,116,112,82,101,113,117,101,115,116,97,110,100,32,115,117,98,115,101,113,117,101,110,116,115,101,99,111,110,100,32,108,97,114,103,101,115,116,118,101,114,121,32,105,109,112,111,114,116,97,110,116,115,112,101,99,105,102,105,99,97,116,105,111,110,115,115,117,114,102,97,99,101,32,111,102,32,116,104,101,97,112,112,108,105,101,100,32,116,111,32,116,104,101,102,111,114,101,105,103,110,32,112,111,108,105,99,121,95,115,101,116,68,111,109,97,105,110,78,97,109,101,101,115,116,97,98,108,105,115,104,101,100,32,105,110,105,115,32,98,101,108,105,101,118,101,100,32,116,111,73,110,32,97,100,100,105,116,105,111,110,32,116,111,109,101,97,110,105,110,103,32,111,102,32,116,104,101,105,115,32,110,97,109,101,100,32,97,102,116,101,114,116,111,32,112,114,111,116,101,99,116,32,116,104,101,105,115,32,114,101,112,114,101,115,101,110,116,101,100,68,101,99,108,97,114,97,116,105,111,110,32,111,102,109,111,114,101,32,101,102,102,105,99,105,101,110,116,67,108,97,115,115,105,102,105,99,97,116,105,111,110,111,116,104,101,114,32,102,111,114,109,115,32,111,102,104,101,32,114,101,116,117,114,110,101,100,32,116,111,60,115,112,97,110,32,99,108,97,115,115,61,34,99,112,101,114,102,111,114,109,97,110,99,101,32,111,102,40,102,117,110,99,116,105,111,110,40,41,32,123,13,105,102,32,97,110,100,32,111,110,108,121,32,105,102,114,101,103,105,111,110,115,32,111,102,32,116,104,101,108,101,97,100,105,110,103,32,116,111,32,116,104,101,114,101,108,97,116,105,111,110,115,32,119,105,116,104,85,110,105,116,101,100,32,78,97,116,105,111,110,115,115,116,121,108,101,61,34,104,101,105,103,104,116,58,111,116,104,101,114,32,116,104,97,110,32,116,104,101,121,112,101,34,32,99,111,110,116,101,110,116,61,34,65,115,115,111,99,105,97,116,105,111,110,32,111,102,10,60,47,104,101,97,100,62,10,60,98,111,100,121,108,111,99,97,116,101,100,32,111,110,32,116,104,101,105,115,32,114,101,102,101,114,114,101,100,32,116,111,40,105,110,99,108,117,100,105,110,103,32,116,104,101,99,111,110,99,101,110,116,114,97,116,105,111,110,115,116,104,101,32,105,110,100,105,118,105,100,117,97,108,97,109,111,110,103,32,116,104,101,32,109,111,115,116,116,104,97,110,32,97,110,121,32,111,116,104,101,114,47,62,10,60,108,105,110,107,32,114,101,108,61,34,32,114,101,116,117,114,110,32,102,97,108,115,101,59,116,104,101,32,112,117,114,112,111,115,101,32,111,102,116,104,101,32,97,98,105,108,105,116,121,32,116,111,59,99,111,108,111,114,58,35,102,102,102,125,10,46,10,60,115,112,97,110,32,99,108,97,115,115,61,34,116,104,101,32,115,117,98,106,101,99,116,32,111,102,100,101,102,105,110,105,116,105,111,110,115,32,111,102,62,13,10,60,108,105,110,107,32,114,101,108,61,34,99,108,97,105,109,32,116,104,97,116,32,116,104,101,104,97,118,101,32,100,101,118,101,108,111,112,101,100,60,116,97,98,108,101,32,119,105,100,116,104,61,34,99,101,108,101,98,114,97,116,105,111,110,32,111,102,70,111,108,108,111,119,105,110,103,32,116,104,101,32,116,111,32,100,105,115,116,105,110,103,117,105,115,104,60,115,112,97,110,32,99,108,97,115,115,61,34,98,116,97,107,101,115,32,112,108,97,99,101,32,105,110,117,110,100,101,114,32,116,104,101,32,110,97,109,101,110,111,116,101,100,32,116,104,97,116,32,116,104,101,62,60,33,91,101,110,100,105,102,93,45,45,62,10,115,116,121,108,101,61,34,109,97,114,103,105,110,45,105,110,115,116,101,97,100,32,111,102,32,116,104,101,105,110,116,114,111,100,117,99,101,100,32,116,104,101,116,104,101,32,112,114,111,99,101,115,115,32,111,102,105,110,99,114,101,97,115,105,110,103,32,116,104,101,100,105,102,102,101,114,101,110,99,101,115,32,105,110,101,115,116,105,109,97,116,101,100,32,116,104,97,116,101,115,112,101,99,105,97,108,108,121,32,116,104,101,47,100,105,118,62,60,100,105,118,32,105,100,61,34,119,97,115,32,101,118,101,110,116,117,97,108,108,121,116,104,114,111,117,103,104,111,117,116,32,104,105,115,116,104,101,32,100,105,102,102,101,114,101,110,99,101,115,111,109,101,116,104,105,110,103,32,116,104,97,116,115,112,97,110,62,60,47,115,112,97,110,62,60,47,115,105,103,110,105,102,105,99,97,110,116,108,121,32,62,60,47,115,99,114,105,112,116,62,13,10,13,10,101,110,118,105,114,111,110,109,101,110,116,97,108,32,116,111,32,112,114,101,118,101,110,116,32,116,104,101,104,97,118,101,32,98,101,101,110,32,117,115,101,100,101,115,112,101,99,105,97,108,108,121,32,102,111,114,117,110,100,101,114,115,116,97,110,100,32,116,104,101,105,115,32,101,115,115,101,110,116,105,97,108,108,121,119,101,114,101,32,116,104,101,32,102,105,114,115,116,105,115,32,116,104,101,32,108,97,114,103,101,115,116,104,97,118,101,32,98,101,101,110,32,109,97,100,101,34,32,115,114,99,61,34,104,116,116,112,58,47,47,105,110,116,101,114,112,114,101,116,101,100,32,97,115,115,101,99,111,110,100,32,104,97,108,102,32,111,102,99,114,111,108,108,105,110,103,61,34,110,111,34,32,105,115,32,99,111,109,112,111,115,101,100,32,111,102,73,73,44,32,72,111,108,121,32,82,111,109,97,110,105,115,32,101,120,112,101,99,116,101,100,32,116,111,104,97,118,101,32,116,104,101,105,114,32,111,119,110,100,101,102,105,110,101,100,32,97,115,32,116,104,101,116,114,97,100,105,116,105,111,110,97,108,108,121,32,104,97,118,101,32,100,105,102,102,101,114,101,110,116,97,114,101,32,111,102,116,101,110,32,117,115,101,100,116,111,32,101,110,115,117,114,101,32,116,104,97,116,97,103,114,101,101,109,101,110,116,32,119,105,116,104,99,111,110,116,97,105,110,105,110,103,32,116,104,101,97,114,101,32,102,114,101,113,117,101,110,116,108,121,105,110,102,111,114,109,97,116,105,111,110,32,111,110,101,120,97,109,112,108,101,32,105,115,32,116,104,101,114,101,115,117,108,116,105,110,103,32,105,110,32,97,60,47,97,62,60,47,108,105,62,60,47,117,108,62,32,99,108,97,115,115,61,34,102,111,111,116,101,114,97,110,100,32,101,115,112,101,99,105,97,108,108,121,116,121,112,101,61,34,98,117,116,116,111,110,34,32,60,47,115,112,97,110,62,60,47,115,112,97,110,62,119,104,105,99,104,32,105,110,99,108,117,100,101,100,62,10,60,109,101,116,97,32,110,97,109,101,61,34,99,111,110,115,105,100,101,114,101,100,32,116,104,101,99,97,114,114,105,101,100,32,111,117,116,32,98,121,72,111,119,101,118,101,114,44,32,105,116,32,105,115,98,101,99,97,109,101,32,112,97,114,116,32,111,102,105,110,32,114,101,108,97,116,105,111,110,32,116,111,112,111,112,117,108,97,114,32,105,110,32,116,104,101,116,104,101,32,99,97,112,105,116,97,108,32,111,102,119,97,115,32,111,102,102,105,99,105,97,108,108,121,119,104,105,99,104,32,104,97,115,32,98,101,101,110,116,104,101,32,72,105,115,116,111,114,121,32,111,102,97,108,116,101,114,110,97,116,105,118,101,32,116,111,100,105,102,102,101,114,101,110,116,32,102,114,111,109,116,111,32,115,117,112,112,111,114,116,32,116,104,101,115,117,103,103,101,115,116,101,100,32,116,104,97,116,105,110,32,116,104,101,32,112,114,111,99,101,115,115,32,32,60,100,105,118,32,99,108,97,115,115,61,34,116,104,101,32,102,111,117,110,100,97,116,105,111,110,98,101,99,97,117,115,101,32,111,102,32,104,105,115,99,111,110,99,101,114,110,101,100,32,119,105,116,104,116,104,101,32,117,110,105,118,101,114,115,105,116,121,111,112,112,111,115,101,100,32,116,111,32,116,104,101,116,104,101,32,99,111,110,116,101,120,116,32,111,102,60,115,112,97,110,32,99,108,97,115,115,61,34,112,116,101,120,116,34,32,110,97,109,101,61,34,113,34,9,9,60,100,105,118,32,99,108,97,115,115,61,34,116,104,101,32,115,99,105,101,110,116,105,102,105,99,114,101,112,114,101,115,101,110,116,101,100,32,98,121,109,97,116,104,101,109,97,116,105,99,105,97,110,115,101,108,101,99,116,101,100,32,98,121,32,116,104,101,116,104,97,116,32,104,97,118,101,32,98,101,101,110,62,60,100,105,118,32,99,108,97,115,115,61,34,99,100,105,118,32,105,100,61,34,104,101,97,100,101,114,105,110,32,112,97,114,116,105,99,117,108,97,114,44,99,111,110,118,101,114,116,101,100,32,105,110,116,111,41,59,10,60,47,115,99,114,105,112,116,62,10,60,112,104,105,108,111,115,111,112,104,105,99,97,108,32,115,114,112,115,107,111,104,114,118,97,116,115,107,105,116,105,225,186,191,110,103,32,86,105,225,187,135,116,208,160,209,131,209,129,209,129,208,186,208,184,208,185,209,128,209,131,209,129,209,129,208,186,208,184,208,185,105,110,118,101,115,116,105,103,97,99,105,195,179,110,112,97,114,116,105,99,105,112,97,99,105,195,179,110,208,186,208,190,209,130,208,190,209,128,209,139,208,181,208,190,208,177,208,187,208,176,209,129,209,130,208,184,208,186,208,190,209,130,208,190,209,128,209,139,208,185,209,135,208,181,208,187,208,190,208,178,208,181,208,186,209,129,208,184,209,129,209,130,208,181,208,188,209,139,208,157,208,190,208,178,208,190,209,129,209,130,208,184,208,186,208,190,209,130,208,190,209,128,209,139,209,133,208,190,208,177,208,187,208,176,209,129,209,130,209,140,208,178,209,128,208,181,208,188,208,181,208,189,208,184,208,186,208,190,209,130,208,190,209,128,208,176,209,143,209,129,208,181,208,179,208,190,208,180,208,189,209,143,209,129,208,186,208,176,209,135,208,176,209,130,209,140,208,189,208,190,208,178,208,190,209,129,209,130,208,184,208,163,208,186,209,128,208,176,208,184,208,189,209,139,208,178,208,190,208,191,209,128,208,190,209,129,209,139,208,186,208,190,209,130,208,190,209,128,208,190,208,185,209,129,208,180,208,181,208,187,208,176,209,130,209,140,208,191,208,190,208,188,208,190,209,137,209,140,209,142,209,129,209,128,208,181,208,180,209,129,209,130,208,178,208,190,208,177,209,128,208,176,208,183,208,190,208,188,209,129,209,130,208,190,209,128,208,190,208,189,209,139,209,131,209,135,208,176,209,129,209,130,208,184,208,181,209,130,208,181,209,135,208,181,208,189,208,184,208,181,208,147,208,187,208,176,208,178,208,189,208,176,209,143,208,184,209,129,209,130,208,190,209,128,208,184,208,184,209,129,208,184,209,129,209,130,208,181,208,188,208,176,209,128,208,181,209,136,208,181,208,189,208,184,209,143,208,161,208,186,208,176,209,135,208,176,209,130,209,140,208,191,208,190,209,141,209,130,208,190,208,188,209,131,209,129,208,187,208,181,208,180,209,131,208,181,209,130,209,129,208,186,208,176,208,183,208,176,209,130,209,140,209,130,208,190,208,178,208,176,209,128,208,190,208,178,208,186,208,190,208,189,208,181,209,135,208,189,208,190,209,128,208,181,209,136,208,181,208,189,208,184,208,181,208,186,208,190,209,130,208,190,209,128,208,190,208,181,208,190,209,128,208,179,208,176,208,189,208,190,208,178,208,186,208,190,209,130,208,190,209,128,208,190,208,188,208,160,208,181,208,186,208,187,208,176,208,188,208,176,216,167,217,132,217,133,217,134,216,170,216,175,217,137,217,133,217,134,216,170,216,175,217,138,216,167,216,170,216,167,217,132,217,133,217,136,216,182,217,136,216,185,216,167,217,132,216,168,216,177,216,167,217,133,216,172,216,167,217,132,217,133,217,136,216,167,217,130,216,185,216,167,217,132,216,177,216,179,216,167,216,166,217,132,217,133,216,180,216,167,216,177,217,131,216,167,216,170,216,167,217,132,216,163,216,185,216,182,216,167,216,161,216,167,217,132,216,177,217,138,216,167,216,182,216,169,216,167,217,132,216,170,216,181,217,133,217,138,217,133,216,167,217,132,216,167,216,185,216,182,216,167,216,161,216,167,217,132,217,134,216,170,216,167,216,166,216,172,216,167,217,132,216,163,217,132,216,185,216,167,216,168,216,167,217,132,216,170,216,179,216,172,217,138,217,132,216,167,217,132,216,163,217,130,216,179,216,167,217,133,216,167,217,132,216,182,216,186,216,183,216,167,216,170,216,167,217,132,217,129,217,138,216,175,217,138,217,136,216,167,217,132,216,170,216,177,216,173,217,138,216,168,216,167,217,132,216,172,216,175,217,138,216,175,216,169,216,167,217,132,216,170,216,185,217,132,217,138,217,133,216,167,217,132,216,163,216,174,216,168,216,167,216,177,216,167,217,132,216,167,217,129,217,132,216,167,217,133,216,167,217,132,216,163,217,129,217,132,216,167,217,133,216,167,217,132,216,170,216,167,216,177,217,138,216,174,216,167,217,132,216,170,217,130,217,134,217,138,216,169,216,167,217,132,216,167,217,132,216,185,216,167,216,168,216,167,217,132,216,174,217,136,216,167,216,183,216,177,216,167,217,132,217,133,216,172,216,170,217,133,216,185,216,167,217,132,216,175,217,138,217,131,217,136,216,177,216,167,217,132,216,179,217,138,216,167,216,173,216,169,216,185,216,168,216,175,216,167,217,132,217,132,217,135,216,167,217,132,216,170,216,177,216,168,217,138,216,169,216,167,217,132,216,177,217,136,216,167,216,168,216,183,216,167,217,132,216,163,216,175,216,168,217,138,216,169,216,167,217,132,216,167,216,174,216,168,216,167,216,177,216,167,217,132,217,133,216,170,216,173,216,175,216,169,216,167,217,132,216,167,216,186,216,167,217,134,217,138,99,117,114,115,111,114,58,112,111,105,110,116,101,114,59,60,47,116,105,116,108,101,62,10,60,109,101,116,97,32,34,32,104,114,101,102,61,34,104,116,116,112,58,47,47,34,62,60,115,112,97,110,32,99,108,97,115,115,61,34,109,101,109,98,101,114,115,32,111,102,32,116,104,101,32,119,105,110,100,111,119,46,108,111,99,97,116,105,111,110,118,101,114,116,105,99,97,108,45,97,108,105,103,110,58,47,97,62,32,124,32,60,97,32,104,114,101,102,61,34,60,33,100,111,99,116,121,112,101,32,104,116,109,108,62,109,101,100,105,97,61,34,115,99,114,101,101,110,34,32,60,111,112,116,105,111,110,32,118,97,108,117,101,61,34,102,97,118,105,99,111,110,46,105,99,111,34,32,47,62,10,9,9,60,100,105,118,32,99,108,97,115,115,61,34,99,104,97,114,97,99,116,101,114,105,115,116,105,99,115,34,32,109,101,116,104,111,100,61,34,103,101,116,34,32,47,98,111,100,121,62,10,60,47,104,116,109,108,62,10,115,104,111,114,116,99,117,116,32,105,99,111,110,34,32,100,111,99,117,109,101,110,116,46,119,114,105,116,101,40,112,97,100,100,105,110,103,45,98,111,116,116,111,109,58,114,101,112,114,101,115,101,110,116,97,116,105,118,101,115,115,117,98,109,105,116,34,32,118,97,108,117,101,61,34,97,108,105,103,110,61,34,99,101,110,116,101,114,34,32,116,104,114,111,117,103,104,111,117,116,32,116,104,101,32,115,99,105,101,110,99,101,32,102,105,99,116,105,111,110,10,32,32,60,100,105,118,32,99,108,97,115,115,61,34,115,117,98,109,105,116,34,32,99,108,97,115,115,61,34,111,110,101,32,111,102,32,116,104,101,32,109,111,115,116,32,118,97,108,105,103,110,61,34,116,111,112,34,62,60,119,97,115,32,101,115,116,97,98,108,105,115,104,101,100,41,59,13,10,60,47,115,99,114,105,112,116,62,13,10,114,101,116,117,114,110,32,102,97,108,115,101,59,34,62,41,46,115,116,121,108,101,46,100,105,115,112,108,97,121,98,101,99,97,117,115,101,32,111,102,32,116,104,101,32,100,111,99,117,109,101,110,116,46,99,111,111,107,105,101,60,102,111,114,109,32,97,99,116,105,111,110,61,34,47,125,98,111,100,121,123,109,97,114,103,105,110,58,48,59,69,110,99,121,99,108,111,112,101,100,105,97,32,111,102,118,101,114,115,105,111,110,32,111,102,32,116,104,101,32,46,99,114,101,97,116,101,69,108,101,109,101,110,116,40,110,97,109,101,34,32,99,111,110,116,101,110,116,61,34,60,47,100,105,118,62,10,60,47,100,105,118,62,10,10,97,100,109,105,110,105,115,116,114,97,116,105,118,101,32,60,47,98,111,100,121,62,10,60,47,104,116,109,108,62,104,105,115,116,111,114,121,32,111,102,32,116,104,101,32,34,62,60,105,110,112,117,116,32,116,121,112,101,61,34,112,111,114,116,105,111,110,32,111,102,32,116,104,101,32,97,115,32,112,97,114,116,32,111,102,32,116,104,101,32,38,110,98,115,112,59,60,97,32,104,114,101,102,61,34,111,116,104,101,114,32,99,111,117,110,116,114,105,101,115,34,62,10,60,100,105,118,32,99,108,97,115,115,61,34,60,47,115,112,97,110,62,60,47,115,112,97,110,62,60,73,110,32,111,116,104,101,114,32,119,111,114,100,115,44,100,105,115,112,108,97,121,58,32,98,108,111,99,107,59,99,111,110,116,114,111,108,32,111,102,32,116,104,101,32,105,110,116,114,111,100,117,99,116,105,111,110,32,111,102,47,62,10,60,109,101,116,97,32,110,97,109,101,61,34,97,115,32,119,101,108,108,32,97,115,32,116,104,101,32,105,110,32,114,101,99,101,110,116,32,121,101,97,114,115,13,10,9,60,100,105,118,32,99,108,97,115,115,61,34,60,47,100,105,118,62,10,9,60,47,100,105,118,62,10,105,110,115,112,105,114,101,100,32,98,121,32,116,104,101,116,104,101,32,101,110,100,32,111,102,32,116,104,101,32,99,111,109,112,97,116,105,98,108,101,32,119,105,116,104,98,101,99,97,109,101,32,107,110,111,119,110,32,97,115,32,115,116,121,108,101,61,34,109,97,114,103,105,110,58,46,106,115,34,62,60,47,115,99,114,105,112,116,62,60,32,73,110,116,101,114,110,97,116,105,111,110,97,108,32,116,104,101,114,101,32,104,97,118,101,32,98,101,101,110,71,101,114,109,97,110,32,108,97,110,103,117,97,103,101,32,115,116,121,108,101,61,34,99,111,108,111,114,58,35,67,111,109,109,117,110,105,115,116,32,80,97,114,116,121,99,111,110,115,105,115,116,101,110,116,32,119,105,116,104,98,111,114,100,101,114,61,34,48,34,32,99,101,108,108,32,109,97,114,103,105,110,104,101,105,103,104,116,61,34,116,104,101,32,109,97,106,111,114,105,116,121,32,111,102,34,32,97,108,105,103,110,61,34,99,101,110,116,101,114,114,101,108,97,116,101,100,32,116,111,32,116,104,101,32,109,97,110,121,32,100,105,102,102,101,114,101,110,116,32,79,114,116,104,111,100,111,120,32,67,104,117,114,99,104,115,105,109,105,108,97,114,32,116,111,32,116,104,101,32,47,62,10,60,108,105,110,107,32,114,101,108,61,34,115,119,97,115,32,111,110,101,32,111,102,32,116,104,101,32,117,110,116,105,108,32,104,105,115,32,100,101,97,116,104,125,41,40,41,59,10,60,47,115,99,114,105,112,116,62,111,116,104,101,114,32,108,97,110,103,117,97,103,101,115,99,111,109,112,97,114,101,100,32,116,111,32,116,104,101,112,111,114,116,105,111,110,115,32,111,102,32,116,104,101,116,104,101,32,78,101,116,104,101,114,108,97,110,100,115,116,104,101,32,109,111,115,116,32,99,111,109,109,111,110,98,97,99,107,103,114,111,117,110,100,58,117,114,108,40,97,114,103,117,101,100,32,116,104,97,116,32,116,104,101,115,99,114,111,108,108,105,110,103,61,34,110,111,34,32,105,110,99,108,117,100,101,100,32,105,110,32,116,104,101,78,111,114,116,104,32,65,109,101,114,105,99,97,110,32,116,104,101,32,110,97,109,101,32,111,102,32,116,104,101,105,110,116,101,114,112,114,101,116,97,116,105,111,110,115,116,104,101,32,116,114,97,100,105,116,105,111,110,97,108,100,101,118,101,108,111,112,109,101,110,116,32,111,102,32,102,114,101,113,117,101,110,116,108,121,32,117,115,101,100,97,32,99,111,108,108,101,99,116,105,111,110,32,111,102,118,101,114,121,32,115,105,109,105,108,97,114,32,116,111,115,117,114,114,111,117,110,100,105,110,103,32,116,104,101,101,120,97,109,112,108,101,32,111,102,32,116,104,105,115,97,108,105,103,110,61,34,99,101,110,116,101,114,34,62,119,111,117,108,100,32,104,97,118,101,32,98,101,101,110,105,109,97,103,101,95,99,97,112,116,105,111,110,32,61,97,116,116,97,99,104,101,100,32,116,111,32,116,104,101,115,117,103,103,101,115,116,105,110,103,32,116,104,97,116,105,110,32,116,104,101,32,102,111,114,109,32,111,102,32,105,110,118,111,108,118,101,100,32,105,110,32,116,104,101,105,115,32,100,101,114,105,118,101,100,32,102,114,111,109,110,97,109,101,100,32,97,102,116,101,114,32,116,104,101,73,110,116,114,111,100,117,99,116,105,111,110,32,116,111,114,101,115,116,114,105,99,116,105,111,110,115,32,111,110,32,115,116,121,108,101,61,34,119,105,100,116,104,58,32,99,97,110,32,98,101,32,117,115,101,100,32,116,111,32,116,104,101,32,99,114,101,97,116,105,111,110,32,111,102,109,111,115,116,32,105,109,112,111,114,116,97,110,116,32,105,110,102,111,114,109,97,116,105,111,110,32,97,110,100,114,101,115,117,108,116,101,100,32,105,110,32,116,104,101,99,111,108,108,97,112,115,101,32,111,102,32,116,104,101,84,104,105,115,32,109,101,97,110,115,32,116,104,97,116,101,108,101,109,101,110,116,115,32,111,102,32,116,104,101,119,97,115,32,114,101,112,108,97,99,101,100,32,98,121,97,110,97,108,121,115,105,115,32,111,102,32,116,104,101,105,110,115,112,105,114,97,116,105,111,110,32,102,111,114,114,101,103,97,114,100,101,100,32,97,115,32,116,104,101,109,111,115,116,32,115,117,99,99,101,115,115,102,117,108,107,110,111,119,110,32,97,115,32,38,113,117,111,116,59,97,32,99,111,109,112,114,101,104,101,110,115,105,118,101,72,105,115,116,111,114,121,32,111,102,32,116,104,101,32,119,101,114,101,32,99,111,110,115,105,100,101,114,101,100,114,101,116,117,114,110,101,100,32,116,111,32,116,104,101,97,114,101,32,114,101,102,101,114,114,101,100,32,116,111,85,110,115,111,117,114,99,101,100,32,105,109,97,103,101,62,10,9,60,100,105,118,32,99,108,97,115,115,61,34,99,111,110,115,105,115,116,115,32,111,102,32,116,104,101,115,116,111,112,80,114,111,112,97,103,97,116,105,111,110,105,110,116,101,114,101,115,116,32,105,110,32,116,104,101,97,118,97,105,108,97,98,105,108,105,116,121,32,111,102,97,112,112,101,97,114,115,32,116,111,32,104,97,118,101,101,108,101,99,116,114,111,109,97,103,110,101,116,105,99,101,110,97,98,108,101,83,101,114,118,105,99,101,115,40,102,117,110,99,116,105,111,110,32,111,102,32,116,104,101,73,116,32,105,115,32,105,109,112,111,114,116,97,110,116,60,47,115,99,114,105,112,116,62,60,47,100,105,118,62,102,117,110,99,116,105,111,110,40,41,123,118,97,114,32,114,101,108,97,116,105,118,101,32,116,111,32,116,104,101,97,115,32,97,32,114,101,115,117,108,116,32,111,102,32,116,104,101,32,112,111,115,105,116,105,111,110,32,111,102,70,111,114,32,101,120,97,109,112,108,101,44,32,105,110,32,109,101,116,104,111,100,61,34,112,111,115,116,34,32,119,97,115,32,102,111,108,108,111,119,101,100,32,98,121,38,97,109,112,59,109,100,97,115,104,59,32,116,104,101,116,104,101,32,97,112,112,108,105,99,97,116,105,111,110,106,115,34,62,60,47,115,99,114,105,112,116,62,13,10,117,108,62,60,47,100,105,118,62,60,47,100,105,118,62,97,102,116,101,114,32,116,104,101,32,100,101,97,116,104,119,105,116,104,32,114,101,115,112,101,99,116,32,116,111,115,116,121,108,101,61,34,112,97,100,100,105,110,103,58,105,115,32,112,97,114,116,105,99,117,108,97,114,108,121,100,105,115,112,108,97,121,58,105,110,108,105,110,101,59,32,116,121,112,101,61,34,115,117,98,109,105,116,34,32,105,115,32,100,105,118,105,100,101,100,32,105,110,116,111,228,184,173,230,150,135,32,40,231,174,128,228,189,147,41,114,101,115,112,111,110,115,97,98,105,108,105,100,97,100,97,100,109,105,110,105,115,116,114,97,99,105,195,179,110,105,110,116,101,114,110,97,99,105,111,110,97,108,101,115,99,111,114,114,101,115,112,111,110,100,105,101,110,116,101,224,164,137,224,164,170,224,164,175,224,165,139,224,164,151,224,164,170,224,165,130,224,164,176,224,165,141,224,164,181,224,164,185,224,164,174,224,164,190,224,164,176,224,165,135,224,164,178,224,165,139,224,164,151,224,165,139,224,164,130,224,164,154,224,165,129,224,164,168,224,164,190,224,164,181,224,164,178,224,165,135,224,164,149,224,164,191,224,164,168,224,164,184,224,164,176,224,164,149,224,164,190,224,164,176,224,164,170,224,165,129,224,164,178,224,164,191,224,164,184,224,164,150,224,165,139,224,164,156,224,165,135,224,164,130,224,164,154,224,164,190,224,164,185,224,164,191,224,164,143,224,164,173,224,165,135,224,164,156,224,165,135,224,164,130,224,164,182,224,164,190,224,164,174,224,164,191,224,164,178,224,164,185,224,164,174,224,164,190,224,164,176,224,165,128,224,164,156,224,164,190,224,164,151,224,164,176,224,164,163,224,164,172,224,164,168,224,164,190,224,164,168,224,165,135,224,164,149,224,165,129,224,164,174,224,164,190,224,164,176,224,164,172,224,165,141,224,164,178,224,165,137,224,164,151,224,164,174,224,164,190,224,164,178,224,164,191,224,164,149,224,164,174,224,164,185,224,164,191,224,164,178,224,164,190,224,164,170,224,165,131,224,164,183,224,165,141,224,164,160,224,164,172,224,164,162,224,164,188,224,164,164,224,165,135,224,164,173,224,164,190,224,164,156,224,164,170,224,164,190,224,164,149,224,165,141,224,164,178,224,164,191,224,164,149,224,164,159,224,165,141,224,164,176,224,165,135,224,164,168,224,164,150,224,164,191,224,164,178,224,164,190,224,164,171,224,164,166,224,165,140,224,164,176,224,164,190,224,164,168,224,164,174,224,164,190,224,164,174,224,164,178,224,165,135,224,164,174,224,164,164,224,164,166,224,164,190,224,164,168,224,164,172,224,164,190,224,164,156,224,164,190,224,164,176,224,164,181,224,164,191,224,164,149,224,164,190,224,164,184,224,164,149,224,165,141,224,164,175,224,165,139,224,164,130,224,164,154,224,164,190,224,164,185,224,164,164,224,165,135,224,164,170,224,164,185,224,165,129,224,164,129,224,164,154,224,164,172,224,164,164,224,164,190,224,164,175,224,164,190,224,164,184,224,164,130,224,164,181,224,164,190,224,164,166,224,164,166,224,165,135,224,164,150,224,164,168,224,165,135,224,164,170,224,164,191,224,164,155,224,164,178,224,165,135,224,164,181,224,164,191,224,164,182,224,165,135,224,164,183,224,164,176,224,164,190,224,164,156,224,165,141,224,164,175,224,164,137,224,164,164,224,165,141,224,164,164,224,164,176,224,164,174,224,165,129,224,164,130,224,164,172,224,164,136,224,164,166,224,165,139,224,164,168,224,165,139,224,164,130,224,164,137,224,164,170,224,164,149,224,164,176,224,164,163,224,164,170,224,164,162,224,164,188,224,165,135,224,164,130,224,164,184,224,165,141,224,164,165,224,164,191,224,164,164,224,164,171,224,164,191,224,164,178,224,165,141,224,164,174,224,164,174,224,165,129,224,164,150,224,165,141,224,164,175,224,164,133,224,164,154,224,165,141,224,164,155,224,164,190,224,164,155,224,165,130,224,164,159,224,164,164,224,165,128,224,164,184,224,164,130,224,164,151,224,165,128,224,164,164,224,164,156,224,164,190,224,164,143,224,164,151,224,164,190,224,164,181,224,164,191,224,164,173,224,164,190,224,164,151,224,164,152,224,164,163,224,165,141,224,164,159,224,165,135,224,164,166,224,165,130,224,164,184,224,164,176,224,165,135,224,164,166,224,164,191,224,164,168,224,165,139,224,164,130,224,164,185,224,164,164,224,165,141,224,164,175,224,164,190,224,164,184,224,165,135,224,164,149,224,165,141,224,164,184,224,164,151,224,164,190,224,164,130,224,164,167,224,165,128,224,164,181,224,164,191,224,164,182,224,165,141,224,164,181,224,164,176,224,164,190,224,164,164,224,165,135,224,164,130,224,164,166,224,165,136,224,164,159,224,165,141,224,164,184,224,164,168,224,164,149,224,165,141,224,164,182,224,164,190,224,164,184,224,164,190,224,164,174,224,164,168,224,165,135,224,164,133,224,164,166,224,164,190,224,164,178,224,164,164,224,164,172,224,164,191,224,164,156,224,164,178,224,165,128,224,164,170,224,165,129,224,164,176,224,165,130,224,164,183,224,164,185,224,164,191,224,164,130,224,164,166,224,165,128,224,164,174,224,164,191,224,164,164,224,165,141,224,164,176,224,164,149,224,164,181,224,164,191,224,164,164,224,164,190,224,164,176,224,165,129,224,164,170,224,164,175,224,165,135,224,164,184,224,165,141,224,164,165,224,164,190,224,164,168,224,164,149,224,164,176,224,165,139,224,164,161,224,164,188,224,164,174,224,165,129,224,164,149,224,165,141,224,164,164,224,164,175,224,165,139,224,164,156,224,164,168,224,164,190,224,164,149,224,165,131,224,164,170,224,164,175,224,164,190,224,164,170,224,165,139,224,164,184,224,165,141,224,164,159,224,164,152,224,164,176,224,165,135,224,164,178,224,165,130,224,164,149,224,164,190,224,164,176,224,165,141,224,164,175,224,164,181,224,164,191,224,164,154,224,164,190,224,164,176,224,164,184,224,165,130,224,164,154,224,164,168,224,164,190,224,164,174,224,165,130,224,164,178,224,165,141,224,164,175,224,164,166,224,165,135,224,164,150,224,165,135,224,164,130,224,164,185,224,164,174,224,165,135,224,164,182,224,164,190,224,164,184,224,165,141,224,164,149,224,165,130,224,164,178,224,164,174,224,165,136,224,164,130,224,164,168,224,165,135,224,164,164,224,165,136,224,164,175,224,164,190,224,164,176,224,164,156,224,164,191,224,164,184,224,164,149,224,165,135,114,115,115,43,120,109,108,34,32,116,105,116,108,101,61,34,45,116,121,112,101,34,32,99,111,110,116,101,110,116,61,34,116,105,116,108,101,34,32,99,111,110,116,101,110,116,61,34,97,116,32,116,104,101,32,115,97,109,101,32,116,105,109,101,46,106,115,34,62,60,47,115,99,114,105,112,116,62,10,60,34,32,109,101,116,104,111,100,61,34,112,111,115,116,34,32,60,47,115,112,97,110,62,60,47,97,62,60,47,108,105,62,118,101,114,116,105,99,97,108,45,97,108,105,103,110,58,116,47,106,113,117,101,114,121,46,109,105,110,46,106,115,34,62,46,99,108,105,99,107,40,102,117,110,99,116,105,111,110,40,32,115,116,121,108,101,61,34,112,97,100,100,105,110,103,45,125,41,40,41,59,10,60,47,115,99,114,105,112,116,62,10,60,47,115,112,97,110,62,60,97,32,104,114,101,102,61,34,60,97,32,104,114,101,102,61,34,104,116,116,112,58,47,47,41,59,32,114,101,116,117,114,110,32,102,97,108,115,101,59,116,101,120,116,45,100,101,99,111,114,97,116,105,111,110,58,32,115,99,114,111,108,108,105,110,103,61,34,110,111,34,32,98,111,114,100,101,114,45,99,111,108,108,97,112,115,101,58,97,115,115,111,99,105,97,116,101,100,32,119,105,116,104,32,66,97,104,97,115,97,32,73,110,100,111,110,101,115,105,97,69,110,103,108,105,115,104,32,108,97,110,103,117,97,103,101,60,116,101,120,116,32,120,109,108,58,115,112,97,99,101,61,46,103,105,102,34,32,98,111,114,100,101,114,61,34,48,34,60,47,98,111,100,121,62,10,60,47,104,116,109,108,62,10,111,118,101,114,102,108,111,119,58,104,105,100,100,101,110,59,105,109,103,32,115,114,99,61,34,104,116,116,112,58,47,47,97,100,100,69,118,101,110,116,76,105,115,116,101,110,101,114,114,101,115,112,111,110,115,105,98,108,101,32,102,111,114,32,115,46,106,115,34,62,60,47,115,99,114,105,112,116,62,10,47,102,97,118,105,99,111,110,46,105,99,111,34,32,47,62,111,112,101,114,97,116,105,110,103,32,115,121,115,116,101,109,34,32,115,116,121,108,101,61,34,119,105,100,116,104,58,49,116,97,114,103,101,116,61,34,95,98,108,97,110,107,34,62,83,116,97,116,101,32,85,110,105,118,101,114,115,105,116,121,116,101,120,116,45,97,108,105,103,110,58,108,101,102,116,59,10,100,111,99,117,109,101,110,116,46,119,114,105,116,101,40,44,32,105,110,99,108,117,100,105,110,103,32,116,104,101,32,97,114,111,117,110,100,32,116,104,101,32,119,111,114,108,100,41,59,13,10,60,47,115,99,114,105,112,116,62,13,10,60,34,32,115,116,121,108,101,61,34,104,101,105,103,104,116,58,59,111,118,101,114,102,108,111,119,58,104,105,100,100,101,110,109,111,114,101,32,105,110,102,111,114,109,97,116,105,111,110,97,110,32,105,110,116,101,114,110,97,116,105,111,110,97,108,97,32,109,101,109,98,101,114,32,111,102,32,116,104,101,32,111,110,101,32,111,102,32,116,104,101,32,102,105,114,115,116,99,97,110,32,98,101,32,102,111,117,110,100,32,105,110,32,60,47,100,105,118,62,10,9,9,60,47,100,105,118,62,10,100,105,115,112,108,97,121,58,32,110,111,110,101,59,34,62,34,32,47,62,10,60,108,105,110,107,32,114,101,108,61,34,10,32,32,40,102,117,110,99,116,105,111,110,40,41,32,123,116,104,101,32,49,53,116,104,32,99,101,110,116,117,114,121,46,112,114,101,118,101,110,116,68,101,102,97,117,108,116,40,108,97,114,103,101,32,110,117,109,98,101,114,32,111,102,32,66,121,122,97,110,116,105,110,101,32,69,109,112,105,114,101,46,106,112,103,124,116,104,117,109,98,124,108,101,102,116,124,118,97,115,116,32,109,97,106,111,114,105,116,121,32,111,102,109,97,106,111,114,105,116,121,32,111,102,32,116,104,101,32,32,97,108,105,103,110,61,34,99,101,110,116,101,114,34,62,85,110,105,118,101,114,115,105,116,121,32,80,114,101,115,115,100,111,109,105,110,97,116,101,100,32,98,121,32,116,104,101,83,101,99,111,110,100,32,87,111,114,108,100,32,87,97,114,100,105,115,116,114,105,98,117,116,105,111,110,32,111,102,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,116,104,101,32,114,101,115,116,32,111,102,32,116,104,101,32,99,104,97,114,97,99,116,101,114,105,122,101,100,32,98,121,32,114,101,108,61,34,110,111,102,111,108,108,111,119,34,62,100,101,114,105,118,101,115,32,102,114,111,109,32,116,104,101,114,97,116,104,101,114,32,116,104,97,110,32,116,104,101,32,97,32,99,111,109,98,105,110,97,116,105,111,110,32,111,102,115,116,121,108,101,61,34,119,105,100,116,104,58,49,48,48,69,110,103,108,105,115,104,45,115,112,101,97,107,105,110,103,99,111,109,112,117,116,101,114,32,115,99,105,101,110,99,101,98,111,114,100,101,114,61,34,48,34,32,97,108,116,61,34,116,104,101,32,101,120,105,115,116,101,110,99,101,32,111,102,68,101,109,111,99,114,97,116,105,99,32,80,97,114,116,121,34,32,115,116,121,108,101,61,34,109,97,114,103,105,110,45,70,111,114,32,116,104,105,115,32,114,101,97,115,111,110,44,46,106,115,34,62,60,47,115,99,114,105,112,116,62,10,9,115,66,121,84,97,103,78,97,109,101,40,115,41,91,48,93,106,115,34,62,60,47,115,99,114,105,112,116,62,13,10,60,46,106,115,34,62,60,47,115,99,114,105,112,116,62,13,10,108,105,110,107,32,114,101,108,61,34,105,99,111,110,34,32,39,32,97,108,116,61,39,39,32,99,108,97,115,115,61,39,102,111,114,109,97,116,105,111,110,32,111,102,32,116,104,101,118,101,114,115,105,111,110,115,32,111,102,32,116,104,101,32,60,47,97,62,60,47,100,105,118,62,60,47,100,105,118,62,47,112,97,103,101,62,10,32,32,60,112,97,103,101,62,10,60,100,105,118,32,99,108,97,115,115,61,34,99,111,110,116,98,101,99,97,109,101,32,116,104,101,32,102,105,114,115,116,98,97,104,97,115,97,32,73,110,100,111,110,101,115,105,97,101,110,103,108,105,115,104,32,40,115,105,109,112,108,101,41,206,149,206,187,206,187,206,183,206,189,206,185,206,186,206,172,209,133,209,128,208,178,208,176,209,130,209,129,208,186,208,184,208,186,208,190,208,188,208,191,208,176,208,189,208,184,208,184,209,143,208,178,208,187,209,143,208,181,209,130,209,129,209,143,208,148,208,190,208,177,208,176,208,178,208,184,209,130,209,140,209,135,208,181,208,187,208,190,208,178,208,181,208,186,208,176,209,128,208,176,208,183,208,178,208,184,209,130,208,184,209,143,208,152,208,189,209,130,208,181,209,128,208,189,208,181,209,130,208,158,209,130,208,178,208,181,209,130,208,184,209,130,209,140,208,189,208,176,208,191,209,128,208,184,208,188,208,181,209,128,208,184,208,189,209,130,208,181,209,128,208,189,208,181,209,130,208,186,208,190,209,130,208,190,209,128,208,190,208,179,208,190,209,129,209,130,209,128,208,176,208,189,208,184,209,134,209,139,208,186,208,176,209,135,208,181,209,129,209,130,208,178,208,181,209,131,209,129,208,187,208,190,208,178,208,184,209,143,209,133,208,191,209,128,208,190,208,177,208,187,208,181,208,188,209,139,208,191,208,190,208,187,209,131,209,135,208,184,209,130,209,140,209,143,208,178,208,187,209,143,209,142,209,130,209,129,209,143,208,189,208,176,208,184,208,177,208,190,208,187,208,181,208,181,208,186,208,190,208,188,208,191,208,176,208,189,208,184,209,143,208,178,208,189,208,184,208,188,208,176,208,189,208,184,208,181,209,129,209,128,208,181,208,180,209,129,209,130,208,178,208,176,216,167,217,132,217,133,217,136,216,167,216,182,217,138,216,185,216,167,217,132,216,177,216,166,217,138,216,179,217,138,216,169,216,167,217,132,216,167,217,134,216,170,217,130,216,167,217,132,217,133,216,180,216,167,216,177,217,131,216,167,216,170,217,131,216,167,217,132,216,179,217,138,216,167,216,177,216,167,216,170,216,167,217,132,217,133,217,131,216,170,217,136,216,168,216,169,216,167,217,132,216,179,216,185,217,136,216,175,217,138,216,169,216,167,216,173,216,181,216,167,216,166,217,138,216,167,216,170,216,167,217,132,216,185,216,167,217,132,217,133,217,138,216,169,216,167,217,132,216,181,217,136,216,170,217,138,216,167,216,170,216,167,217,132,216,167,217,134,216,170,216,177,217,134,216,170,216,167,217,132,216,170,216,181,216,167,217,133,217,138,217,133,216,167,217,132,216,165,216,179,217,132,216,167,217,133,217,138,216,167,217,132,217,133,216,180,216,167,216,177,217,131,216,169,216,167,217,132,217,133,216,177,216,166,217,138,216,167,216,170,114,111,98,111,116,115,34,32,99,111,110,116,101,110,116,61,34,60,100,105,118,32,105,100,61,34,102,111,111,116,101,114,34,62,116,104,101,32,85,110,105,116,101,100,32,83,116,97,116,101,115,60,105,109,103,32,115,114,99,61,34,104,116,116,112,58,47,47,46,106,112,103,124,114,105,103,104,116,124,116,104,117,109,98,124,46,106,115,34,62,60,47,115,99,114,105,112,116,62,13,10,60,108,111,99,97,116,105,111,110,46,112,114,111,116,111,99,111,108,102,114,97,109,101,98,111,114,100,101,114,61,34,48,34,32,115,34,32,47,62,10,60,109,101,116,97,32,110,97,109,101,61,34,60,47,97,62,60,47,100,105,118,62,60,47,100,105,118,62,60,102,111,110,116,45,119,101,105,103,104,116,58,98,111,108,100,59,38,113,117,111,116,59,32,97,110,100,32,38,113,117,111,116,59,100,101,112,101,110,100,105,110,103,32,111,110,32,116,104,101,32,109,97,114,103,105,110,58,48,59,112,97,100,100,105,110,103,58,34,32,114,101,108,61,34,110,111,102,111,108,108,111,119,34,32,80,114,101,115,105,100,101,110,116,32,111,102,32,116,104,101,32,116,119,101,110,116,105,101,116,104,32,99,101,110,116,117,114,121,101,118,105,115,105,111,110,62,10,32,32,60,47,112,97,103,101,73,110,116,101,114,110,101,116,32,69,120,112,108,111,114,101,114,97,46,97,115,121,110,99,32,61,32,116,114,117,101,59,13,10,105,110,102,111,114,109,97,116,105,111,110,32,97,98,111,117,116,60,100,105,118,32,105,100,61,34,104,101,97,100,101,114,34,62,34,32,97,99,116,105,111,110,61,34,104,116,116,112,58,47,47,60,97,32,104,114,101,102,61,34,104,116,116,112,115,58,47,47,60,100,105,118,32,105,100,61,34,99,111,110,116,101,110,116,34,60,47,100,105,118,62,13,10,60,47,100,105,118,62,13,10,60,100,101,114,105,118,101,100,32,102,114,111,109,32,116,104,101,32,60,105,109,103,32,115,114,99,61,39,104,116,116,112,58,47,47,97,99,99,111,114,100,105,110,103,32,116,111,32,116,104,101,32,10,60,47,98,111,100,121,62,10,60,47,104,116,109,108,62,10,115,116,121,108,101,61,34,102,111,110,116,45,115,105,122,101,58,115,99,114,105,112,116,32,108,97,110,103,117,97,103,101,61,34,65,114,105,97,108,44,32,72,101,108,118,101,116,105,99,97,44,60,47,97,62,60,115,112,97,110,32,99,108,97,115,115,61,34,60,47,115,99,114,105,112,116,62,60,115,99,114,105,112,116,32,112,111,108,105,116,105,99,97,108,32,112,97,114,116,105,101,115,116,100,62,60,47,116,114,62,60,47,116,97,98,108,101,62,60,104,114,101,102,61,34,104,116,116,112,58,47,47,119,119,119,46,105,110,116,101,114,112,114,101,116,97,116,105,111,110,32,111,102,114,101,108,61,34,115,116,121,108,101,115,104,101,101,116,34,32,100,111,99,117,109,101,110,116,46,119,114,105,116,101,40,39,60,99,104,97,114,115,101,116,61,34,117,116,102,45,56,34,62,10,98,101,103,105,110,110,105,110,103,32,111,102,32,116,104,101,32,114,101,118,101,97,108,101,100,32,116,104,97,116,32,116,104,101,116,101,108,101,118,105,115,105,111,110,32,115,101,114,105,101,115,34,32,114,101,108,61,34,110,111,102,111,108,108,111,119,34,62,32,116,97,114,103,101,116,61,34,95,98,108,97,110,107,34,62,99,108,97,105,109,105,110,103,32,116,104,97,116,32,116,104,101,104,116,116,112,37,51,65,37,50,70,37,50,70,119,119,119,46,109,97,110,105,102,101,115,116,97,116,105,111,110,115,32,111,102,80,114,105,109,101,32,77,105,110,105,115,116,101,114,32,111,102,105,110,102,108,117,101,110,99,101,100,32,98,121,32,116,104,101,99,108,97,115,115,61,34,99,108,101,97,114,102,105,120,34,62,47,100,105,118,62,13,10,60,47,100,105,118,62,13,10,13,10,116,104,114,101,101,45,100,105,109,101,110,115,105,111,110,97,108,67,104,117,114,99,104,32,111,102,32,69,110,103,108,97,110,100,111,102,32,78,111,114,116,104,32,67,97,114,111,108,105,110,97,115,113,117,97,114,101,32,107,105,108,111,109,101,116,114,101,115,46,97,100,100,69,118,101,110,116,76,105,115,116,101,110,101,114,100,105,115,116,105,110,99,116,32,102,114,111,109,32,116,104,101,99,111,109,109,111,110,108,121,32,107,110,111,119,110,32,97,115,80,104,111,110,101,116,105,99,32,65,108,112,104,97,98,101,116,100,101,99,108,97,114,101,100,32,116,104,97,116,32,116,104,101,99,111,110,116,114,111,108,108,101,100,32,98,121,32,116,104,101,66,101,110,106,97,109,105,110,32,70,114,97,110,107,108,105,110,114,111,108,101,45,112,108,97,121,105,110,103,32,103,97,109,101,116,104,101,32,85,110,105,118,101,114,115,105,116,121,32,111,102,105,110,32,87,101,115,116,101,114,110,32,69,117,114,111,112,101,112,101,114,115,111,110,97,108,32,99,111,109,112,117,116,101,114,80,114,111,106,101,99,116,32,71,117,116,101,110,98,101,114,103,114,101,103,97,114,100,108,101,115,115,32,111,102,32,116,104,101,104,97,115,32,98,101,101,110,32,112,114,111,112,111,115,101,100,116,111,103,101,116,104,101,114,32,119,105,116,104,32,116,104,101,62,60,47,108,105,62,60,108,105,32,99,108,97,115,115,61,34,105,110,32,115,111,109,101,32,99,111,117,110,116,114,105,101,115,109,105,110,46,106,115,34,62,60,47,115,99,114,105,112,116,62,111,102,32,116,104,101,32,112,111,112,117,108,97,116,105,111,110,111,102,102,105,99,105,97,108,32,108,97,110,103,117,97,103,101,60,105,109,103,32,115,114,99,61,34,105,109,97,103,101,115,47,105,100,101,110,116,105,102,105,101,100,32,98,121,32,116,104,101,110,97,116,117,114,97,108,32,114,101,115,111,117,114,99,101,115,99,108,97,115,115,105,102,105,99,97,116,105,111,110,32,111,102,99,97,110,32,98,101,32,99,111,110,115,105,100,101,114,101,100,113,117,97,110,116,117,109,32,109,101,99,104,97,110,105,99,115,78,101,118,101,114,116,104,101,108,101,115,115,44,32,116,104,101,109,105,108,108,105,111,110,32,121,101,97,114,115,32,97,103,111,60,47,98,111,100,121,62,13,10,60,47,104,116,109,108,62,13,206,149,206,187,206,187,206,183,206,189,206,185,206,186,206,172,10,116,97,107,101,32,97,100,118,97,110,116,97,103,101,32,111,102,97,110,100,44,32,97,99,99,111,114,100,105,110,103,32,116,111,97,116,116,114,105,98,117,116,101,100,32,116,111,32,116,104,101,77,105,99,114,111,115,111,102,116,32,87,105,110,100,111,119,115,116,104,101,32,102,105,114,115,116,32,99,101,110,116,117,114,121,117,110,100,101,114,32,116,104,101,32,99,111,110,116,114,111,108,100,105,118,32,99,108,97,115,115,61,34,104,101,97,100,101,114,115,104,111,114,116,108,121,32,97,102,116,101,114,32,116,104,101,110,111,116,97,98,108,101,32,101,120,99,101,112,116,105,111,110,116,101,110,115,32,111,102,32,116,104,111,117,115,97,110,100,115,115,101,118,101,114,97,108,32,100,105,102,102,101,114,101,110,116,97,114,111,117,110,100,32,116,104,101,32,119,111,114,108,100,46,114,101,97,99,104,105,110,103,32,109,105,108,105,116,97,114,121,105,115,111,108,97,116,101,100,32,102,114,111,109,32,116,104,101,111,112,112,111,115,105,116,105,111,110,32,116,111,32,116,104,101,116,104,101,32,79,108,100,32,84,101,115,116,97,109,101,110,116,65,102,114,105,99,97,110,32,65,109,101,114,105,99,97,110,115,105,110,115,101,114,116,101,100,32,105,110,116,111,32,116,104,101,115,101,112,97,114,97,116,101,32,102,114,111,109,32,116,104,101,109,101,116,114,111,112,111,108,105,116,97,110,32,97,114,101,97,109,97,107,101,115,32,105,116,32,112,111,115,115,105,98,108,101,97,99,107,110,111,119,108,101,100,103,101,100,32,116,104,97,116,97,114,103,117,97,98,108,121,32,116,104,101,32,109,111,115,116,116,121,112,101,61,34,116,101,120,116,47,99,115,115,34,62,10,116,104,101,32,73,110,116,101,114,110,97,116,105,111,110,97,108,65,99,99,111,114,100,105,110,103,32,116,111,32,116,104,101,32,112,101,61,34,116,101,120,116,47,99,115,115,34,32,47,62,10,99,111,105,110,99,105,100,101,32,119,105,116,104,32,116,104,101,116,119,111,45,116,104,105,114,100,115,32,111,102,32,116,104,101,68,117,114,105,110,103,32,116,104,105,115,32,116,105,109,101,44,100,117,114,105,110,103,32,116,104,101,32,112,101,114,105,111,100,97,110,110,111,117,110,99,101,100,32,116,104,97,116,32,104,101,116,104,101,32,105,110,116,101,114,110,97,116,105,111,110,97,108,97,110,100,32,109,111,114,101,32,114,101,99,101,110,116,108,121,98,101,108,105,101,118,101,100,32,116,104,97,116,32,116,104,101,99,111,110,115,99,105,111,117,115,110,101,115,115,32,97,110,100,102,111,114,109,101,114,108,121,32,107,110,111,119,110,32,97,115,115,117,114,114,111,117,110,100,101,100,32,98,121,32,116,104,101,102,105,114,115,116,32,97,112,112,101,97,114,101,100,32,105,110,111,99,99,97,115,105,111,110,97,108,108,121,32,117,115,101,100,112,111,115,105,116,105,111,110,58,97,98,115,111,108,117,116,101,59,34,32,116,97,114,103,101,116,61,34,95,98,108,97,110,107,34,32,112,111,115,105,116,105,111,110,58,114,101,108,97,116,105,118,101,59,116,101,120,116,45,97,108,105,103,110,58,99,101,110,116,101,114,59,106,97,120,47,108,105,98,115,47,106,113,117,101,114,121,47,49,46,98,97,99,107,103,114,111,117,110,100,45,99,111,108,111,114,58,35,116,121,112,101,61,34,97,112,112,108,105,99,97,116,105,111,110,47,97,110,103,117,97,103,101,34,32,99,111,110,116,101,110,116,61,34,60,109,101,116,97,32,104,116,116,112,45,101,113,117,105,118,61,34,80,114,105,118,97,99,121,32,80,111,108,105,99,121,60,47,97,62,101,40,34,37,51,67,115,99,114,105,112,116,32,115,114,99,61,39,34,32,116,97,114,103,101,116,61,34,95,98,108,97,110,107,34,62,79,110,32,116,104,101,32,111,116,104,101,114,32,104,97,110,100,44,46,106,112,103,124,116,104,117,109,98,124,114,105,103,104,116,124,50,60,47,100,105,118,62,60,100,105,118,32,99,108,97,115,115,61,34,60,100,105,118,32,115,116,121,108,101,61,34,102,108,111,97,116,58,110,105,110,101,116,101,101,110,116,104,32,99,101,110,116,117,114,121,60,47,98,111,100,121,62,13,10,60,47,104,116,109,108,62,13,10,60,105,109,103,32,115,114,99,61,34,104,116,116,112,58,47,47,115,59,116,101,120,116,45,97,108,105,103,110,58,99,101,110,116,101,114,102,111,110,116,45,119,101,105,103,104,116,58,32,98,111,108,100,59,32,65,99,99,111,114,100,105,110,103,32,116,111,32,116,104,101,32,100,105,102,102,101,114,101,110,99,101,32,98,101,116,119,101,101,110,34,32,102,114,97,109,101,98,111,114,100,101,114,61,34,48,34,32,34,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,108,105,110,107,32,104,114,101,102,61,34,104,116,116,112,58,47,47,104,116,109,108,52,47,108,111,111,115,101,46,100,116,100,34,62,10,100,117,114,105,110,103,32,116,104,105,115,32,112,101,114,105,111,100,60,47,116,100,62,60,47,116,114,62,60,47,116,97,98,108,101,62,99,108,111,115,101,108,121,32,114,101,108,97,116,101,100,32,116,111,102,111,114,32,116,104,101,32,102,105,114,115,116,32,116,105,109,101,59,102,111,110,116,45,119,101,105,103,104,116,58,98,111,108,100,59,105,110,112,117,116,32,116,121,112,101,61,34,116,101,120,116,34,32,60,115,112,97,110,32,115,116,121,108,101,61,34,102,111,110,116,45,111,110,114,101,97,100,121,115,116,97,116,101,99,104,97,110,103,101,9,60,100,105,118,32,99,108,97,115,115,61,34,99,108,101,97,114,100,111,99,117,109,101,110,116,46,108,111,99,97,116,105,111,110,46,32,70,111,114,32,101,120,97,109,112,108,101,44,32,116,104,101,32,97,32,119,105,100,101,32,118,97,114,105,101,116,121,32,111,102,32,60,33,68,79,67,84,89,80,69,32,104,116,109,108,62,13,10,60,38,110,98,115,112,59,38,110,98,115,112,59,38,110,98,115,112,59,34,62,60,97,32,104,114,101,102,61,34,104,116,116,112,58,47,47,115,116,121,108,101,61,34,102,108,111,97,116,58,108,101,102,116,59,99,111,110,99,101,114,110,101,100,32,119,105,116,104,32,116,104,101,61,104,116,116,112,37,51,65,37,50,70,37,50,70,119,119,119,46,105,110,32,112,111,112,117,108,97,114,32,99,117,108,116,117,114,101,116,121,112,101,61,34,116,101,120,116,47,99,115,115,34,32,47,62,105,116,32,105,115,32,112,111,115,115,105,98,108,101,32,116,111,32,72,97,114,118,97,114,100,32,85,110,105,118,101,114,115,105,116,121,116,121,108,101,115,104,101,101,116,34,32,104,114,101,102,61,34,47,116,104,101,32,109,97,105,110,32,99,104,97,114,97,99,116,101,114,79,120,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,32,32,110,97,109,101,61,34,107,101,121,119,111,114,100,115,34,32,99,115,116,121,108,101,61,34,116,101,120,116,45,97,108,105,103,110,58,116,104,101,32,85,110,105,116,101,100,32,75,105,110,103,100,111,109,102,101,100,101,114,97,108,32,103,111,118,101,114,110,109,101,110,116,60,100,105,118,32,115,116,121,108,101,61,34,109,97,114,103,105,110,32,100,101,112,101,110,100,105,110,103,32,111,110,32,116,104,101,32,100,101,115,99,114,105,112,116,105,111,110,32,111,102,32,116,104,101,60,100,105,118,32,99,108,97,115,115,61,34,104,101,97,100,101,114,46,109,105,110,46,106,115,34,62,60,47,115,99,114,105,112,116,62,100,101,115,116,114,117,99,116,105,111,110,32,111,102,32,116,104,101,115,108,105,103,104,116,108,121,32,100,105,102,102,101,114,101,110,116,105,110,32,97,99,99,111,114,100,97,110,99,101,32,119,105,116,104,116,101,108,101,99,111,109,109,117,110,105,99,97,116,105,111,110,115,105,110,100,105,99,97,116,101,115,32,116,104,97,116,32,116,104,101,115,104,111,114,116,108,121,32,116,104,101,114,101,97,102,116,101,114,101,115,112,101,99,105,97,108,108,121,32,105,110,32,116,104,101,32,69,117,114,111,112,101,97,110,32,99,111,117,110,116,114,105,101,115,72,111,119,101,118,101,114,44,32,116,104,101,114,101,32,97,114,101,115,114,99,61,34,104,116,116,112,58,47,47,115,116,97,116,105,99,115,117,103,103,101,115,116,101,100,32,116,104,97,116,32,116,104,101,34,32,115,114,99,61,34,104,116,116,112,58,47,47,119,119,119,46,97,32,108,97,114,103,101,32,110,117,109,98,101,114,32,111,102,32,84,101,108,101,99,111,109,109,117,110,105,99,97,116,105,111,110,115,34,32,114,101,108,61,34,110,111,102,111,108,108,111,119,34,32,116,72,111,108,121,32,82,111,109,97,110,32,69,109,112,101,114,111,114,97,108,109,111,115,116,32,101,120,99,108,117,115,105,118,101,108,121,34,32,98,111,114,100,101,114,61,34,48,34,32,97,108,116,61,34,83,101,99,114,101,116,97,114,121,32,111,102,32,83,116,97,116,101,99,117,108,109,105,110,97,116,105,110,103,32,105,110,32,116,104,101,67,73,65,32,87,111,114,108,100,32,70,97,99,116,98,111,111,107,116,104,101,32,109,111,115,116,32,105,109,112,111,114,116,97,110,116,97,110,110,105,118,101,114,115,97,114,121,32,111,102,32,116,104,101,115,116,121,108,101,61,34,98,97,99,107,103,114,111,117,110,100,45,60,108,105,62,60,101,109,62,60,97,32,104,114,101,102,61,34,47,116,104,101,32,65,116,108,97,110,116,105,99,32,79,99,101,97,110,115,116,114,105,99,116,108,121,32,115,112,101,97,107,105,110,103,44,115,104,111,114,116,108,121,32,98,101,102,111,114,101,32,116,104,101,100,105,102,102,101,114,101,110,116,32,116,121,112,101,115,32,111,102,116,104,101,32,79,116,116,111,109,97,110,32,69,109,112,105,114,101,62,60,105,109,103,32,115,114,99,61,34,104,116,116,112,58,47,47,65,110,32,73,110,116,114,111,100,117,99,116,105,111,110,32,116,111,99,111,110,115,101,113,117,101,110,99,101,32,111,102,32,116,104,101,100,101,112,97,114,116,117,114,101,32,102,114,111,109,32,116,104,101,67,111,110,102,101,100,101,114,97,116,101,32,83,116,97,116,101,115,105,110,100,105,103,101,110,111,117,115,32,112,101,111,112,108,101,115,80,114,111,99,101,101,100,105,110,103,115,32,111,102,32,116,104,101,105,110,102,111,114,109,97,116,105,111,110,32,111,110,32,116,104,101,116,104,101,111,114,105,101,115,32,104,97,118,101,32,98,101,101,110,105,110,118,111,108,118,101,109,101,110,116,32,105,110,32,116,104,101,100,105,118,105,100,101,100,32,105,110,116,111,32,116,104,114,101,101,97,100,106,97,99,101,110,116,32,99,111,117,110,116,114,105,101,115,105,115,32,114,101,115,112,111,110,115,105,98,108,101,32,102,111,114,100,105,115,115,111,108,117,116,105,111,110,32,111,102,32,116,104,101,99,111,108,108,97,98,111,114,97,116,105,111,110,32,119,105,116,104,119,105,100,101,108,121,32,114,101,103,97,114,100,101,100,32,97,115,104,105,115,32,99,111,110,116,101,109,112,111,114,97,114,105,101,115,102,111,117,110,100,105,110,103,32,109,101,109,98,101,114,32,111,102,68,111,109,105,110,105,99,97,110,32,82,101,112,117,98,108,105,99,103,101,110,101,114,97,108,108,121,32,97,99,99,101,112,116,101,100,116,104,101,32,112,111,115,115,105,98,105,108,105,116,121,32,111,102,97,114,101,32,97,108,115,111,32,97,118,97,105,108,97,98,108,101,117,110,100,101,114,32,99,111,110,115,116,114,117,99,116,105,111,110,114,101,115,116,111,114,97,116,105,111,110,32,111,102,32,116,104,101,116,104,101,32,103,101,110,101,114,97,108,32,112,117,98,108,105,99,105,115,32,97,108,109,111,115,116,32,101,110,116,105,114,101,108,121,112,97,115,115,101,115,32,116,104,114,111,117,103,104,32,116,104,101,104,97,115,32,98,101,101,110,32,115,117,103,103,101,115,116,101,100,99,111,109,112,117,116,101,114,32,97,110,100,32,118,105,100,101,111,71,101,114,109,97,110,105,99,32,108,97,110,103,117,97,103,101,115,32,97,99,99,111,114,100,105,110,103,32,116,111,32,116,104,101,32,100,105,102,102,101,114,101,110,116,32,102,114,111,109,32,116,104,101,115,104,111,114,116,108,121,32,97,102,116,101,114,119,97,114,100,115,104,114,101,102,61,34,104,116,116,112,115,58,47,47,119,119,119,46,114,101,99,101,110,116,32,100,101,118,101,108,111,112,109,101,110,116,66,111,97,114,100,32,111,102,32,68,105,114,101,99,116,111,114,115,60,100,105,118,32,99,108,97,115,115,61,34,115,101,97,114,99,104,124,32,60,97,32,104,114,101,102,61,34,104,116,116,112,58,47,47,73,110,32,112,97,114,116,105,99,117,108,97,114,44,32,116,104,101,77,117,108,116,105,112,108,101,32,102,111,111,116,110,111,116,101,115,111,114,32,111,116,104,101,114,32,115,117,98,115,116,97,110,99,101,116,104,111,117,115,97,110,100,115,32,111,102,32,121,101,97,114,115,116,114,97,110,115,108,97,116,105,111,110,32,111,102,32,116,104,101,60,47,100,105,118,62,13,10,60,47,100,105,118,62,13,10,13,10,60,97,32,104,114,101,102,61,34,105,110,100,101,120,46,112,104,112,119,97,115,32,101,115,116,97,98,108,105,115,104,101,100,32,105,110,109,105,110,46,106,115,34,62,60,47,115,99,114,105,112,116,62,10,112,97,114,116,105,99,105,112,97,116,101,32,105,110,32,116,104,101,97,32,115,116,114,111,110,103,32,105,110,102,108,117,101,110,99,101,115,116,121,108,101,61,34,109,97,114,103,105,110,45,116,111,112,58,114,101,112,114,101,115,101,110,116,101,100,32,98,121,32,116,104,101,103,114,97,100,117,97,116,101,100,32,102,114,111,109,32,116,104,101,84,114,97,100,105,116,105,111,110,97,108,108,121,44,32,116,104,101,69,108,101,109,101,110,116,40,34,115,99,114,105,112,116,34,41,59,72,111,119,101,118,101,114,44,32,115,105,110,99,101,32,116,104,101,47,100,105,118,62,10,60,47,100,105,118,62,10,60,100,105,118,32,108,101,102,116,59,32,109,97,114,103,105,110,45,108,101,102,116,58,112,114,111,116,101,99,116,105,111,110,32,97,103,97,105,110,115,116,48,59,32,118,101,114,116,105,99,97,108,45,97,108,105,103,110,58,85,110,102,111,114,116,117,110,97,116,101,108,121,44,32,116,104,101,116,121,112,101,61,34,105,109,97,103,101,47,120,45,105,99,111,110,47,100,105,118,62,10,60,100,105,118,32,99,108,97,115,115,61,34,32,99,108,97,115,115,61,34,99,108,101,97,114,102,105,120,34,62,60,100,105,118,32,99,108,97,115,115,61,34,102,111,111,116,101,114,9,9,60,47,100,105,118,62,10,9,9,60,47,100,105,118,62,10,116,104,101,32,109,111,116,105,111,110,32,112,105,99,116,117,114,101,208,145,209,138,208,187,208,179,208,176,209,128,209,129,208,186,208,184,208,177,209,138,208,187,208,179,208,176,209,128,209,129,208,186,208,184,208,164,208,181,208,180,208,181,209,128,208,176,209,134,208,184,208,184,208,189,208,181,209,129,208,186,208,190,208,187,209,140,208,186,208,190,209,129,208,190,208,190,208,177,209,137,208,181,208,189,208,184,208,181,209,129,208,190,208,190,208,177,209,137,208,181,208,189,208,184,209,143,208,191,209,128,208,190,208,179,209,128,208,176,208,188,208,188,209,139,208,158,209,130,208,191,209,128,208,176,208,178,208,184,209,130,209,140,208,177,208,181,209,129,208,191,208,187,208,176,209,130,208,189,208,190,208,188,208,176,209,130,208,181,209,128,208,184,208,176,208,187,209,139,208,191,208,190,208,183,208,178,208,190,208,187,209,143,208,181,209,130,208,191,208,190,209,129,208,187,208,181,208,180,208,189,208,184,208,181,209,128,208,176,208,183,208,187,208,184,209,135,208,189,209,139,209,133,208,191,209,128,208,190,208,180,209,131,208,186,209,134,208,184,208,184,208,191,209,128,208,190,208,179,209,128,208,176,208,188,208,188,208,176,208,191,208,190,208,187,208,189,208,190,209,129,209,130,209,140,209,142,208,189,208,176,209,133,208,190,208,180,208,184,209,130,209,129,209,143,208,184,208,183,208,177,209,128,208,176,208,189,208,189,208,190,208,181,208,189,208,176,209,129,208,181,208,187,208,181,208,189,208,184,209,143,208,184,208,183,208,188,208,181,208,189,208,181,208,189,208,184,209,143,208,186,208,176,209,130,208,181,208,179,208,190,209,128,208,184,208,184,208,144,208,187,208,181,208,186,209,129,208,176,208,189,208,180,209,128,224,164,166,224,165,141,224,164,181,224,164,190,224,164,176,224,164,190,224,164,174,224,165,136,224,164,168,224,165,129,224,164,133,224,164,178,224,164,170,224,165,141,224,164,176,224,164,166,224,164,190,224,164,168,224,164,173,224,164,190,224,164,176,224,164,164,224,165,128,224,164,175,224,164,133,224,164,168,224,165,129,224,164,166,224,165,135,224,164,182,224,164,185,224,164,191,224,164,168,224,165,141,224,164,166,224,165,128,224,164,135,224,164,130,224,164,161,224,164,191,224,164,175,224,164,190,224,164,166,224,164,191,224,164,178,224,165,141,224,164,178,224,165,128,224,164,133,224,164,167,224,164,191,224,164,149,224,164,190,224,164,176,224,164,181,224,165,128,224,164,161,224,164,191,224,164,175,224,165,139,224,164,154,224,164,191,224,164,159,224,165,141,224,164,160,224,165,135,224,164,184,224,164,174,224,164,190,224,164,154,224,164,190,224,164,176,224,164,156,224,164,130,224,164,149,224,165,141,224,164,182,224,164,168,224,164,166,224,165,129,224,164,168,224,164,191,224,164,175,224,164,190,224,164,170,224,165,141,224,164,176,224,164,175,224,165,139,224,164,151,224,164,133,224,164,168,224,165,129,224,164,184,224,164,190,224,164,176,224,164,145,224,164,168,224,164,178,224,164,190,224,164,135,224,164,168,224,164,170,224,164,190,224,164,176,224,165,141,224,164,159,224,165,128,224,164,182,224,164,176,224,165,141,224,164,164,224,165,139,224,164,130,224,164,178,224,165,139,224,164,149,224,164,184,224,164,173,224,164,190,224,164,171,224,164,188,224,165,141,224,164,178,224,165,136,224,164,182,224,164,182,224,164,176,224,165,141,224,164,164,224,165,135,224,164,130,224,164,170,224,165,141,224,164,176,224,164,166,224,165,135,224,164,182,224,164,170,224,165,141,224,164,178,224,165,135,224,164,175,224,164,176,224,164,149,224,165,135,224,164,130,224,164,166,224,165,141,224,164,176,224,164,184,224,165,141,224,164,165,224,164,191,224,164,164,224,164,191,224,164,137,224,164,164,224,165,141,224,164,170,224,164,190,224,164,166,224,164,137,224,164,168,224,165,141,224,164,185,224,165,135,224,164,130,224,164,154,224,164,191,224,164,159,224,165,141,224,164,160,224,164,190,224,164,175,224,164,190,224,164,164,224,165,141,224,164,176,224,164,190,224,164,156,224,165,141,224,164,175,224,164,190,224,164,166,224,164,190,224,164,170,224,165,129,224,164,176,224,164,190,224,164,168,224,165,135,224,164,156,224,165,139,224,164,161,224,164,188,224,165,135,224,164,130,224,164,133,224,164,168,224,165,129,224,164,181,224,164,190,224,164,166,224,164,182,224,165,141,224,164,176,224,165,135,224,164,163,224,165,128,224,164,182,224,164,191,224,164,149,224,165,141,224,164,183,224,164,190,224,164,184,224,164,176,224,164,149,224,164,190,224,164,176,224,165,128,224,164,184,224,164,130,224,164,151,224,165,141,224,164,176,224,164,185,224,164,170,224,164,176,224,164,191,224,164,163,224,164,190,224,164,174,224,164,172,224,165,141,224,164,176,224,164,190,224,164,130,224,164,161,224,164,172,224,164,154,224,165,141,224,164,154,224,165,139,224,164,130,224,164,137,224,164,170,224,164,178,224,164,172,224,165,141,224,164,167,224,164,174,224,164,130,224,164,164,224,165,141,224,164,176,224,165,128,224,164,184,224,164,130,224,164,170,224,164,176,224,165,141,224,164,149,224,164,137,224,164,174,224,165,141,224,164,174,224,165,128,224,164,166,224,164,174,224,164,190,224,164,167,224,165,141,224,164,175,224,164,174,224,164,184,224,164,185,224,164,190,224,164,175,224,164,164,224,164,190,224,164,182,224,164,172,224,165,141,224,164,166,224,165,139,224,164,130,224,164,174,224,165,128,224,164,161,224,164,191,224,164,175,224,164,190,224,164,134,224,164,136,224,164,170,224,165,128,224,164,143,224,164,178,224,164,174,224,165,139,224,164,172,224,164,190,224,164,135,224,164,178,224,164,184,224,164,130,224,164,150,224,165,141,224,164,175,224,164,190,224,164,134,224,164,170,224,164,176,224,165,135,224,164,182,224,164,168,224,164,133,224,164,168,224,165,129,224,164,172,224,164,130,224,164,167,224,164,172,224,164,190,224,164,156,224,164,188,224,164,190,224,164,176,224,164,168,224,164,181,224,165,128,224,164,168,224,164,164,224,164,174,224,164,170,224,165,141,224,164,176,224,164,174,224,165,129,224,164,150,224,164,170,224,165,141,224,164,176,224,164,182,224,165,141,224,164,168,224,164,170,224,164,176,224,164,191,224,164,181,224,164,190,224,164,176,224,164,168,224,165,129,224,164,149,224,164,184,224,164,190,224,164,168,224,164,184,224,164,174,224,164,176,224,165,141,224,164,165,224,164,168,224,164,134,224,164,175,224,165,139,224,164,156,224,164,191,224,164,164,224,164,184,224,165,139,224,164,174,224,164,181,224,164,190,224,164,176,216,167,217,132,217,133,216,180,216,167,216,177,217,131,216,167,216,170,216,167,217,132,217,133,217,134,216,170,216,175,217,138,216,167,216,170,216,167,217,132,217,131,217,133,216,168,217,138,217,136,216,170,216,177,216,167,217,132,217,133,216,180,216,167,217,135,216,175,216,167,216,170,216,185,216,175,216,175,216,167,217,132,216,178,217,136,216,167,216,177,216,185,216,175,216,175,216,167,217,132,216,177,216,175,217,136,216,175,216,167,217,132,216,165,216,179,217,132,216,167,217,133,217,138,216,169,216,167,217,132,217,129,217,136,216,170,217,136,216,180,217,136,216,168,216,167,217,132,217,133,216,179,216,167,216,168,217,130,216,167,216,170,216,167,217,132,217,133,216,185,217,132,217,136,217,133,216,167,216,170,216,167,217,132,217,133,216,179,217,132,216,179,217,132,216,167,216,170,216,167,217,132,216,172,216,177,216,167,217,129,217,138,217,131,216,179,216,167,217,132,216,167,216,179,217,132,216,167,217,133,217,138,216,169,216,167,217,132,216,167,216,170,216,181,216,167,217,132,216,167,216,170,107,101,121,119,111,114,100,115,34,32,99,111,110,116,101,110,116,61,34,119,51,46,111,114,103,47,49,57,57,57,47,120,104,116,109,108,34,62,60,97,32,116,97,114,103,101,116,61,34,95,98,108,97,110,107,34,32,116,101,120,116,47,104,116,109,108,59,32,99,104,97,114,115,101,116,61,34,32,116,97,114,103,101,116,61,34,95,98,108,97,110,107,34,62,60,116,97,98,108,101,32,99,101,108,108,112,97,100,100,105,110,103,61,34,97,117,116,111,99,111,109,112,108,101,116,101,61,34,111,102,102,34,32,116,101,120,116,45,97,108,105,103,110,58,32,99,101,110,116,101,114,59,116,111,32,108,97,115,116,32,118,101,114,115,105,111,110,32,98,121,32,98,97,99,107,103,114,111,117,110,100,45,99,111,108,111,114,58,32,35,34,32,104,114,101,102,61,34,104,116,116,112,58,47,47,119,119,119,46,47,100,105,118,62,60,47,100,105,118,62,60,100,105,118,32,105,100,61,60,97,32,104,114,101,102,61,34,35,34,32,99,108,97,115,115,61,34,34,62,60,105,109,103,32,115,114,99,61,34,104,116,116,112,58,47,47,99,114,105,112,116,34,32,115,114,99,61,34,104,116,116,112,58,47,47,10,60,115,99,114,105,112,116,32,108,97,110,103,117,97,103,101,61,34,47,47,69,78,34,32,34,104,116,116,112,58,47,47,119,119,119,46,119,101,110,99,111,100,101,85,82,73,67,111,109,112,111,110,101,110,116,40,34,32,104,114,101,102,61,34,106,97,118,97,115,99,114,105,112,116,58,60,100,105,118,32,99,108,97,115,115,61,34,99,111,110,116,101,110,116,100,111,99,117,109,101,110,116,46,119,114,105,116,101,40,39,60,115,99,112,111,115,105,116,105,111,110,58,32,97,98,115,111,108,117,116,101,59,115,99,114,105,112,116,32,115,114,99,61,34,104,116,116,112,58,47,47,32,115,116,121,108,101,61,34,109,97,114,103,105,110,45,116,111,112,58,46,109,105,110,46,106,115,34,62,60,47,115,99,114,105,112,116,62,10,60,47,100,105,118,62,10,60,100,105,118,32,99,108,97,115,115,61,34,119,51,46,111,114,103,47,49,57,57,57,47,120,104,116,109,108,34,32,10,13,10,60,47,98,111,100,121,62,13,10,60,47,104,116,109,108,62,100,105,115,116,105,110,99,116,105,111,110,32,98,101,116,119,101,101,110,47,34,32,116,97,114,103,101,116,61,34,95,98,108,97,110,107,34,62,60,108,105,110,107,32,104,114,101,102,61,34,104,116,116,112,58,47,47,101,110,99,111,100,105,110,103,61,34,117,116,102,45,56,34,63,62,10,119,46,97,100,100,69,118,101,110,116,76,105,115,116,101,110,101,114,63,97,99,116,105,111,110,61,34,104,116,116,112,58,47,47,119,119,119,46,105,99,111,110,34,32,104,114,101,102,61,34,104,116,116,112,58,47,47,32,115,116,121,108,101,61,34,98,97,99,107,103,114,111,117,110,100,58,116,121,112,101,61,34,116,101,120,116,47,99,115,115,34,32,47,62,10,109,101,116,97,32,112,114,111,112,101,114,116,121,61,34,111,103,58,116,60,105,110,112,117,116,32,116,121,112,101,61,34,116,101,120,116,34,32,32,115,116,121,108,101,61,34,116,101,120,116,45,97,108,105,103,110,58,116,104,101,32,100,101,118,101,108,111,112,109,101,110,116,32,111,102,32,116,121,108,101,115,104,101,101,116,34,32,116,121,112,101,61,34,116,101,104,116,109,108,59,32,99,104,97,114,115,101,116,61,117,116,102,45,56,105,115,32,99,111,110,115,105,100,101,114,101,100,32,116,111,32,98,101,116,97,98,108,101,32,119,105,100,116,104,61,34,49,48,48,37,34,32,73,110,32,97,100,100,105,116,105,111,110,32,116,111,32,116,104,101,32,99,111,110,116,114,105,98,117,116,101,100,32,116,111,32,116,104,101,32,100,105,102,102,101,114,101,110,99,101,115,32,98,101,116,119,101,101,110,100,101,118,101,108,111,112,109,101,110,116,32,111,102,32,116,104,101,32,73,116,32,105,115,32,105,109,112,111,114,116,97,110,116,32,116,111,32,60,47,115,99,114,105,112,116,62,10,10,60,115,99,114,105,112,116,32,32,115,116,121,108,101,61,34,102,111,110,116,45,115,105,122,101,58,49,62,60,47,115,112,97,110,62,60,115,112,97,110,32,105,100,61,103,98,76,105,98,114,97,114,121,32,111,102,32,67,111,110,103,114,101,115,115,60,105,109,103,32,115,114,99,61,34,104,116,116,112,58,47,47,105,109,69,110,103,108,105,115,104,32,116,114,97,110,115,108,97,116,105,111,110,65,99,97,100,101,109,121,32,111,102,32,83,99,105,101,110,99,101,115,100,105,118,32,115,116,121,108,101,61,34,100,105,115,112,108,97,121,58,99,111,110,115,116,114,117,99,116,105,111,110,32,111,102,32,116,104,101,46,103,101,116,69,108,101,109,101,110,116,66,121,73,100,40,105,100,41,105,110,32,99,111,110,106,117,110,99,116,105,111,110,32,119,105,116,104,69,108,101,109,101,110,116,40,39,115,99,114,105,112,116,39,41,59,32,60,109,101,116,97,32,112,114,111,112,101,114,116,121,61,34,111,103,58,208,145,209,138,208,187,208,179,208,176,209,128,209,129,208,186,208,184,10,32,116,121,112,101,61,34,116,101,120,116,34,32,110,97,109,101,61,34,62,80,114,105,118,97,99,121,32,80,111,108,105,99,121,60,47,97,62,97,100,109,105,110,105,115,116,101,114,101,100,32,98,121,32,116,104,101,101,110,97,98,108,101,83,105,110,103,108,101,82,101,113,117,101,115,116,115,116,121,108,101,61,38,113,117,111,116,59,109,97,114,103,105,110,58,60,47,100,105,118,62,60,47,100,105,118,62,60,47,100,105,118,62,60,62,60,105,109,103,32,115,114,99,61,34,104,116,116,112,58,47,47,105,32,115,116,121,108,101,61,38,113,117,111,116,59,102,108,111,97,116,58,114,101,102,101,114,114,101,100,32,116,111,32,97,115,32,116,104,101,32,116,111,116,97,108,32,112,111,112,117,108,97,116,105,111,110,32,111,102,105,110,32,87,97,115,104,105,110,103,116,111,110,44,32,68,46,67,46,32,115,116,121,108,101,61,34,98,97,99,107,103,114,111,117,110,100,45,97,109,111,110,103,32,111,116,104,101,114,32,116,104,105,110,103,115,44,111,114,103,97,110,105,122,97,116,105,111,110,32,111,102,32,116,104,101,112,97,114,116,105,99,105,112,97,116,101,100,32,105,110,32,116,104,101,116,104,101,32,105,110,116,114,111,100,117,99,116,105,111,110,32,111,102,105,100,101,110,116,105,102,105,101,100,32,119,105,116,104,32,116,104,101,102,105,99,116,105,111,110,97,108,32,99,104,97,114,97,99,116,101,114,32,79,120,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,32,109,105,115,117,110,100,101,114,115,116,97,110,100,105,110,103,32,111,102,84,104,101,114,101,32,97,114,101,44,32,104,111,119,101,118,101,114,44,115,116,121,108,101,115,104,101,101,116,34,32,104,114,101,102,61,34,47,67,111,108,117,109,98,105,97,32,85,110,105,118,101,114,115,105,116,121,101,120,112,97,110,100,101,100,32,116,111,32,105,110,99,108,117,100,101,117,115,117,97,108,108,121,32,114,101,102,101,114,114,101,100,32,116,111,105,110,100,105,99,97,116,105,110,103,32,116,104,97,116,32,116,104,101,104,97,118,101,32,115,117,103,103,101,115,116,101,100,32,116,104,97,116,97,102,102,105,108,105,97,116,101,100,32,119,105,116,104,32,116,104,101,99,111,114,114,101,108,97,116,105,111,110,32,98,101,116,119,101,101,110,110,117,109,98,101,114,32,111,102,32,100,105,102,102,101,114,101,110,116,62,60,47,116,100,62,60,47,116,114,62,60,47,116,97,98,108,101,62,82,101,112,117,98,108,105,99,32,111,102,32,73,114,101,108,97,110,100,10,60,47,115,99,114,105,112,116,62,10,60,115,99,114,105,112,116,32,117,110,100,101,114,32,116,104,101,32,105,110,102,108,117,101,110,99,101,99,111,110,116,114,105,98,117,116,105,111,110,32,116,111,32,116,104,101,79,102,102,105,99,105,97,108,32,119,101,98,115,105,116,101,32,111,102,104,101,97,100,113,117,97,114,116,101,114,115,32,111,102,32,116,104,101,99,101,110,116,101,114,101,100,32,97,114,111,117,110,100,32,116,104,101,105,109,112,108,105,99,97,116,105,111,110,115,32,111,102,32,116,104,101,104,97,118,101,32,98,101,101,110,32,100,101,118,101,108,111,112,101,100,70,101,100,101,114,97,108,32,82,101,112,117,98,108,105,99,32,111,102,98,101,99,97,109,101,32,105,110,99,114,101,97,115,105,110,103,108,121,99,111,110,116,105,110,117,97,116,105,111,110,32,111,102,32,116,104,101,78,111,116,101,44,32,104,111,119,101,118,101,114,44,32,116,104,97,116,115,105,109,105,108,97,114,32,116,111,32,116,104,97,116,32,111,102,32,99,97,112,97,98,105,108,105,116,105,101,115,32,111,102,32,116,104,101,97,99,99,111,114,100,97,110,99,101,32,119,105,116,104,32,116,104,101,112,97,114,116,105,99,105,112,97,110,116,115,32,105,110,32,116,104,101,102,117,114,116,104,101,114,32,100,101,118,101,108,111,112,109,101,110,116,117,110,100,101,114,32,116,104,101,32,100,105,114,101,99,116,105,111,110,105,115,32,111,102,116,101,110,32,99,111,110,115,105,100,101,114,101,100,104,105,115,32,121,111,117,110,103,101,114,32,98,114,111,116,104,101,114,60,47,116,100,62,60,47,116,114,62,60,47,116,97,98,108,101,62,60,97,32,104,116,116,112,45,101,113,117,105,118,61,34,88,45,85,65,45,112,104,121,115,105,99,97,108,32,112,114,111,112,101,114,116,105,101,115,111,102,32,66,114,105,116,105,115,104,32,67,111,108,117,109,98,105,97,104,97,115,32,98,101,101,110,32,99,114,105,116,105,99,105,122,101,100,40,119,105,116,104,32,116,104,101,32,101,120,99,101,112,116,105,111,110,113,117,101,115,116,105,111,110,115,32,97,98,111,117,116,32,116,104,101,112,97,115,115,105,110,103,32,116,104,114,111,117,103,104,32,116,104,101,48,34,32,99,101,108,108,112,97,100,100,105,110,103,61,34,48,34,32,116,104,111,117,115,97,110,100,115,32,111,102,32,112,101,111,112,108,101,114,101,100,105,114,101,99,116,115,32,104,101,114,101,46,32,70,111,114,104,97,118,101,32,99,104,105,108,100,114,101,110,32,117,110,100,101,114,37,51,69,37,51,67,47,115,99,114,105,112,116,37,51,69,34,41,41,59,60,97,32,104,114,101,102,61,34,104,116,116,112,58,47,47,119,119,119,46,60,108,105,62,60,97,32,104,114,101,102,61,34,104,116,116,112,58,47,47,115,105,116,101,95,110,97,109,101,34,32,99,111,110,116,101,110,116,61,34,116,101,120,116,45,100,101,99,111,114,97,116,105,111,110,58,110,111,110,101,115,116,121,108,101,61,34,100,105,115,112,108,97,121,58,32,110,111,110,101,60,109,101,116,97,32,104,116,116,112,45,101,113,117,105,118,61,34,88,45,110,101,119,32,68,97,116,101,40,41,46,103,101,116,84,105,109,101,40,41,32,116,121,112,101,61,34,105,109,97,103,101,47,120,45,105,99,111,110,34,60,47,115,112,97,110,62,60,115,112,97,110,32,99,108,97,115,115,61,34,108,97,110,103,117,97,103,101,61,34,106,97,118,97,115,99,114,105,112,116,119,105,110,100,111,119,46,108,111,99,97,116,105,111,110,46,104,114,101,102,60,97,32,104,114,101,102,61,34,106,97,118,97,115,99,114,105,112,116,58,45,45,62,13,10,60,115,99,114,105,112,116,32,116,121,112,101,61,34,116,60,97,32,104,114,101,102,61,39,104,116,116,112,58,47,47,119,119,119,46,104,111,114,116,99,117,116,32,105,99,111,110,34,32,104,114,101,102,61,34,60,47,100,105,118,62,13,10,60,100,105,118,32,99,108,97,115,115,61,34,60,115,99,114,105,112,116,32,115,114,99,61,34,104,116,116,112,58,47,47,34,32,114,101,108,61,34,115,116,121,108,101,115,104,101,101,116,34,32,116,60,47,100,105,118,62,10,60,115,99,114,105,112,116,32,116,121,112,101,61,47,97,62,32,60,97,32,104,114,101,102,61,34,104,116,116,112,58,47,47,32,97,108,108,111,119,84,114,97,110,115,112,97,114,101,110,99,121,61,34,88,45,85,65,45,67,111,109,112,97,116,105,98,108,101,34,32,99,111,110,114,101,108,97,116,105,111,110,115,104,105,112,32,98,101,116,119,101,101,110,10,60,47,115,99,114,105,112,116,62,13,10,60,115,99,114,105,112,116,32,60,47,97,62,60,47,108,105,62,60,47,117,108,62,60,47,100,105,118,62,97,115,115,111,99,105,97,116,101,100,32,119,105,116,104,32,116,104,101,32,112,114,111,103,114,97,109,109,105,110,103,32,108,97,110,103,117,97,103,101,60,47,97,62,60,97,32,104,114,101,102,61,34,104,116,116,112,58,47,47,60,47,97,62,60,47,108,105,62,60,108,105,32,99,108,97,115,115,61,34,102,111,114,109,32,97,99,116,105,111,110,61,34,104,116,116,112,58,47,47,60,100,105,118,32,115,116,121,108,101,61,34,100,105,115,112,108,97,121,58,116,121,112,101,61,34,116,101,120,116,34,32,110,97,109,101,61,34,113,34,60,116,97,98,108,101,32,119,105,100,116,104,61,34,49,48,48,37,34,32,98,97,99,107,103,114,111,117,110,100,45,112,111,115,105,116,105,111,110,58,34,32,98,111,114,100,101,114,61,34,48,34,32,119,105,100,116,104,61,34,114,101,108,61,34,115,104,111,114,116,99,117,116,32,105,99,111,110,34,32,104,54,62,60,117,108,62,60,108,105,62,60,97,32,104,114,101,102,61,34,32,32,60,109,101,116,97,32,104,116,116,112,45,101,113,117,105,118,61,34,99,115,115,34,32,109,101,100,105,97,61,34,115,99,114,101,101,110,34,32,114,101,115,112,111,110,115,105,98,108,101,32,102,111,114,32,116,104,101,32,34,32,116,121,112,101,61,34,97,112,112,108,105,99,97,116,105,111,110,47,34,32,115,116,121,108,101,61,34,98,97,99,107,103,114,111,117,110,100,45,104,116,109,108,59,32,99,104,97,114,115,101,116,61,117,116,102,45,56,34,32,97,108,108,111,119,116,114,97,110,115,112,97,114,101,110,99,121,61,34,115,116,121,108,101,115,104,101,101,116,34,32,116,121,112,101,61,34,116,101,13,10,60,109,101,116,97,32,104,116,116,112,45,101,113,117,105,118,61,34,62,60,47,115,112,97,110,62,60,115,112,97,110,32,99,108,97,115,115,61,34,48,34,32,99,101,108,108,115,112,97,99,105,110,103,61,34,48,34,62,59,10,60,47,115,99,114,105,112,116,62,10,60,115,99,114,105,112,116,32,115,111,109,101,116,105,109,101,115,32,99,97,108,108,101,100,32,116,104,101,100,111,101,115,32,110,111,116,32,110,101,99,101,115,115,97,114,105,108,121,70,111,114,32,109,111,114,101,32,105,110,102,111,114,109,97,116,105,111,110,97,116,32,116,104,101,32,98,101,103,105,110,110,105,110,103,32,111,102,32,60,33,68,79,67,84,89,80,69,32,104,116,109,108,62,60,104,116,109,108,112,97,114,116,105,99,117,108,97,114,108,121,32,105,110,32,116,104,101,32,116,121,112,101,61,34,104,105,100,100,101,110,34,32,110,97,109,101,61,34,106,97,118,97,115,99,114,105,112,116,58,118,111,105,100,40,48,41,59,34,101,102,102,101,99,116,105,118,101,110,101,115,115,32,111,102,32,116,104,101,32,97,117,116,111,99,111,109,112,108,101,116,101,61,34,111,102,102,34,32,103,101,110,101,114,97,108,108,121,32,99,111,110,115,105,100,101,114,101,100,62,60,105,110,112,117,116,32,116,121,112,101,61,34,116,101,120,116,34,32,34,62,60,47,115,99,114,105,112,116,62,13,10,60,115,99,114,105,112,116,116,104,114,111,117,103,104,111,117,116,32,116,104,101,32,119,111,114,108,100,99,111,109,109,111,110,32,109,105,115,99,111,110,99,101,112,116,105,111,110,97,115,115,111,99,105,97,116,105,111,110,32,119,105,116,104,32,116,104,101,60,47,100,105,118,62,10,60,47,100,105,118,62,10,60,100,105,118,32,99,100,117,114,105,110,103,32,104,105,115,32,108,105,102,101,116,105,109,101,44,99,111,114,114,101,115,112,111,110,100,105,110,103,32,116,111,32,116,104,101,116,121,112,101,61,34,105,109,97,103,101,47,120,45,105,99,111,110,34,32,97,110,32,105,110,99,114,101,97,115,105,110,103,32,110,117,109,98,101,114,100,105,112,108,111,109,97,116,105,99,32,114,101,108,97,116,105,111,110,115,97,114,101,32,111,102,116,101,110,32,99,111,110,115,105,100,101,114,101,100,109,101,116,97,32,99,104,97,114,115,101,116,61,34,117,116,102,45,56,34,32,60,105,110,112,117,116,32,116,121,112,101,61,34,116,101,120,116,34,32,101,120,97,109,112,108,101,115,32,105,110,99,108,117,100,101,32,116,104,101,34,62,60,105,109,103,32,115,114,99,61,34,104,116,116,112,58,47,47,105,112,97,114,116,105,99,105,112,97,116,105,111,110,32,105,110,32,116,104,101,116,104,101,32,101,115,116,97,98,108,105,115,104,109,101,110,116,32,111,102,10,60,47,100,105,118,62,10,60,100,105,118,32,99,108,97,115,115,61,34,38,97,109,112,59,110,98,115,112,59,38,97,109,112,59,110,98,115,112,59,116,111,32,100,101,116,101,114,109,105,110,101,32,119,104,101,116,104,101,114,113,117,105,116,101,32,100,105,102,102,101,114,101,110,116,32,102,114,111,109,109,97,114,107,101,100,32,116,104,101,32,98,101,103,105,110,110,105,110,103,100,105,115,116,97,110,99,101,32,98,101,116,119,101,101,110,32,116,104,101,99,111,110,116,114,105,98,117,116,105,111,110,115,32,116,111,32,116,104,101,99,111,110,102,108,105,99,116,32,98,101,116,119,101,101,110,32,116,104,101,119,105,100,101,108,121,32,99,111,110,115,105,100,101,114,101,100,32,116,111,119,97,115,32,111,110,101,32,111,102,32,116,104,101,32,102,105,114,115,116,119,105,116,104,32,118,97,114,121,105,110,103,32,100,101,103,114,101,101,115,104,97,118,101,32,115,112,101,99,117,108,97,116,101,100,32,116,104,97,116,40,100,111,99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,110,116,112,97,114,116,105,99,105,112,97,116,105,110,103,32,105,110,32,116,104,101,111,114,105,103,105,110,97,108,108,121,32,100,101,118,101,108,111,112,101,100,101,116,97,32,99,104,97,114,115,101,116,61,34,117,116,102,45,56,34,62,32,116,121,112,101,61,34,116,101,120,116,47,99,115,115,34,32,47,62,10,105,110,116,101,114,99,104,97,110,103,101,97,98,108,121,32,119,105,116,104,109,111,114,101,32,99,108,111,115,101,108,121,32,114,101,108,97,116,101,100,115,111,99,105,97,108,32,97,110,100,32,112,111,108,105,116,105,99,97,108,116,104,97,116,32,119,111,117,108,100,32,111,116,104,101,114,119,105,115,101,112,101,114,112,101,110,100,105,99,117,108,97,114,32,116,111,32,116,104,101,115,116,121,108,101,32,116,121,112,101,61,34,116,101,120,116,47,99,115,115,116,121,112,101,61,34,115,117,98,109,105,116,34,32,110,97,109,101,61,34,102,97,109,105,108,105,101,115,32,114,101,115,105,100,105,110,103,32,105,110,100,101,118,101,108,111,112,105,110,103,32,99,111,117,110,116,114,105,101,115,99,111,109,112,117,116,101,114,32,112,114,111,103,114,97,109,109,105,110,103,101,99,111,110,111,109,105,99,32,100,101,118,101,108,111,112,109,101,110,116,100,101,116,101,114,109,105,110,97,116,105,111,110,32,111,102,32,116,104,101,102,111,114,32,109,111,114,101,32,105,110,102,111,114,109,97,116,105,111,110,111,110,32,115,101,118,101,114,97,108,32,111,99,99,97,115,105,111,110,115,112,111,114,116,117,103,117,195,170,115,32,40,69,117,114,111,112,101,117,41,208,163,208,186,209,128,208,176,209,151,208,189,209,129,209,140,208,186,208,176,209,131,208,186,209,128,208,176,209,151,208,189,209,129,209,140,208,186,208,176,208,160,208,190,209,129,209,129,208,184,208,185,209,129,208,186,208,190,208,185,208,188,208,176,209,130,208,181,209,128,208,184,208,176,208,187,208,190,208,178,208,184,208,189,209,132,208,190,209,128,208,188,208,176,209,134,208,184,208,184,209,131,208,191,209,128,208,176,208,178,208,187,208,181,208,189,208,184,209,143,208,189,208,181,208,190,208,177,209,133,208,190,208,180,208,184,208,188,208,190,208,184,208,189,209,132,208,190,209,128,208,188,208,176,209,134,208,184,209,143,208,152,208,189,209,132,208,190,209,128,208,188,208,176,209,134,208,184,209,143,208,160,208,181,209,129,208,191,209,131,208,177,208,187,208,184,208,186,208,184,208,186,208,190,208,187,208,184,209,135,208,181,209,129,209,130,208,178,208,190,208,184,208,189,209,132,208,190,209,128,208,188,208,176,209,134,208,184,209,142,209,130,208,181,209,128,209,128,208,184,209,130,208,190,209,128,208,184,208,184,208,180,208,190,209,129,209,130,208,176,209,130,208,190,209,135,208,189,208,190,216,167,217,132,217,133,216,170,217,136,216,167,216,172,216,175,217,136,217,134,216,167,217,132,216,167,216,180,216,170,216,177,216,167,217,131,216,167,216,170,216,167,217,132,216,167,217,130,216,170,216,177,216,167,216,173,216,167,216,170,104,116,109,108,59,32,99,104,97,114,115,101,116,61,85,84,70,45,56,34,32,115,101,116,84,105,109,101,111,117,116,40,102,117,110,99,116,105,111,110,40,41,100,105,115,112,108,97,121,58,105,110,108,105,110,101,45,98,108,111,99,107,59,60,105,110,112,117,116,32,116,121,112,101,61,34,115,117,98,109,105,116,34,32,116,121,112,101,32,61,32,39,116,101,120,116,47,106,97,118,97,115,99,114,105,60,105,109,103,32,115,114,99,61,34,104,116,116,112,58,47,47,119,119,119,46,34,32,34,104,116,116,112,58,47,47,119,119,119,46,119,51,46,111,114,103,47,115,104,111,114,116,99,117,116,32,105,99,111,110,34,32,104,114,101,102,61,34,34,32,97,117,116,111,99,111,109,112,108,101,116,101,61,34,111,102,102,34,32,60,47,97,62,60,47,100,105,118,62,60,100,105,118,32,99,108,97,115,115,61,60,47,97,62,60,47,108,105,62,10,60,108,105,32,99,108,97,115,115,61,34,99,115,115,34,32,116,121,112,101,61,34,116,101,120,116,47,99,115,115,34,32,60,102,111,114,109,32,97,99,116,105,111,110,61,34,104,116,116,112,58,47,47,120,116,47,99,115,115,34,32,104,114,101,102,61,34,104,116,116,112,58,47,47,108,105,110,107,32,114,101,108,61,34,97,108,116,101,114,110,97,116,101,34,32,13,10,60,115,99,114,105,112,116,32,116,121,112,101,61,34,116,101,120,116,47,32,111,110,99,108,105,99,107,61,34,106,97,118,97,115,99,114,105,112,116,58,40,110,101,119,32,68,97,116,101,41,46,103,101,116,84,105,109,101,40,41,125,104,101,105,103,104,116,61,34,49,34,32,119,105,100,116,104,61,34,49,34,32,80,101,111,112,108,101,39,115,32,82,101,112,117,98,108,105,99,32,111,102,32,32,60,97,32,104,114,101,102,61,34,104,116,116,112,58,47,47,119,119,119,46,116,101,120,116,45,100,101,99,111,114,97,116,105,111,110,58,117,110,100,101,114,116,104,101,32,98,101,103,105,110,110,105,110,103,32,111,102,32,116,104,101,32,60,47,100,105,118,62,10,60,47,100,105,118,62,10,60,47,100,105,118,62,10,101,115,116,97,98,108,105,115,104,109,101,110,116,32,111,102,32,116,104,101,32,60,47,100,105,118,62,60,47,100,105,118,62,60,47,100,105,118,62,60,47,100,35,118,105,101,119,112,111,114,116,123,109,105,110,45,104,101,105,103,104,116,58,10,60,115,99,114,105,112,116,32,115,114,99,61,34,104,116,116,112,58,47,47,111,112,116,105,111,110,62,60,111,112,116,105,111,110,32,118,97,108,117,101,61,111,102,116,101,110,32,114,101,102,101,114,114,101,100,32,116,111,32,97,115,32,47,111,112,116,105,111,110,62,10,60,111,112,116,105,111,110,32,118,97,108,117,60,33,68,79,67,84,89,80,69,32,104,116,109,108,62,10,60,33,45,45,91,73,110,116,101,114,110,97,116,105,111,110,97,108,32,65,105,114,112,111,114,116,62,10,60,97,32,104,114,101,102,61,34,104,116,116,112,58,47,47,119,119,119,60,47,97,62,60,97,32,104,114,101,102,61,34,104,116,116,112,58,47,47,119,224,184,160,224,184,178,224,184,169,224,184,178,224,185,132,224,184,151,224,184,162,225,131,165,225,131,144,225,131,160,225,131,151,225,131,163,225,131,154,225,131,152,230,173,163,233,171,148,228,184,173,230,150,135,32,40,231,185,129,233,171,148,41,224,164,168,224,164,191,224,164,176,224,165,141,224,164,166,224,165,135,224,164,182,224,164,161,224,164,190,224,164,137,224,164,168,224,164,178,224,165,139,224,164,161,224,164,149,224,165,141,224,164,183,224,165,135,224,164,164,224,165,141,224,164,176,224,164,156,224,164,190,224,164,168,224,164,149,224,164,190,224,164,176,224,165,128,224,164,184,224,164,130,224,164,172,224,164,130,224,164,167,224,164,191,224,164,164,224,164,184,224,165,141,224,164,165,224,164,190,224,164,170,224,164,168,224,164,190,224,164,184,224,165,141,224,164,181,224,165,128,224,164,149,224,164,190,224,164,176,224,164,184,224,164,130,224,164,184,224,165,141,224,164,149,224,164,176,224,164,163,224,164,184,224,164,190,224,164,174,224,164,151,224,165,141,224,164,176,224,165,128,224,164,154,224,164,191,224,164,159,224,165,141,224,164,160,224,165,139,224,164,130,224,164,181,224,164,191,224,164,156,224,165,141,224,164,158,224,164,190,224,164,168,224,164,133,224,164,174,224,165,135,224,164,176,224,164,191,224,164,149,224,164,190,224,164,181,224,164,191,224,164,173,224,164,191,224,164,168,224,165,141,224,164,168,224,164,151,224,164,190,224,164,161,224,164,191,224,164,175,224,164,190,224,164,129,224,164,149,224,165,141,224,164,175,224,165,139,224,164,130,224,164,149,224,164,191,224,164,184,224,165,129,224,164,176,224,164,149,224,165,141,224,164,183,224,164,190,224,164,170,224,164,185,224,165,129,224,164,129,224,164,154,224,164,164,224,165,128,224,164,170,224,165,141,224,164,176,224,164,172,224,164,130,224,164,167,224,164,168,224,164,159,224,164,191,224,164,170,224,165,141,224,164,170,224,164,163,224,165,128,224,164,149,224,165,141,224,164,176,224,164,191,224,164,149,224,165,135,224,164,159,224,164,170,224,165,141,224,164,176,224,164,190,224,164,176,224,164,130,224,164,173,224,164,170,224,165,141,224,164,176,224,164,190,224,164,170,224,165,141,224,164,164,224,164,174,224,164,190,224,164,178,224,164,191,224,164,149,224,165,139,224,164,130,224,164,176,224,164,171,224,164,188,224,165,141,224,164,164,224,164,190,224,164,176,224,164,168,224,164,191,224,164,176,224,165,141,224,164,174,224,164,190,224,164,163,224,164,178,224,164,191,224,164,174,224,164,191,224,164,159,224,165,135,224,164,161,100,101,115,99,114,105,112,116,105,111,110,34,32,99,111,110,116,101,110,116,61,34,100,111,99,117,109,101,110,116,46,108,111,99,97,116,105,111,110,46,112,114,111,116,46,103,101,116,69,108,101,109,101,110,116,115,66,121,84,97,103,78,97,109,101,40,60,33,68,79,67,84,89,80,69,32,104,116,109,108,62,10,60,104,116,109,108,32,60,109,101,116,97,32,99,104,97,114,115,101,116,61,34,117,116,102,45,56,34,62,58,117,114,108,34,32,99,111,110,116,101,110,116,61,34,104,116,116,112,58,47,47,46,99,115,115,34,32,114,101,108,61,34,115,116,121,108,101,115,104,101,101,116,34,115,116,121,108,101,32,116,121,112,101,61,34,116,101,120,116,47,99,115,115,34,62,116,121,112,101,61,34,116,101,120,116,47,99,115,115,34,32,104,114,101,102,61,34,119,51,46,111,114,103,47,49,57,57,57,47,120,104,116,109,108,34,32,120,109,108,116,121,112,101,61,34,116,101,120,116,47,106,97,118,97,115,99,114,105,112,116,34,32,109,101,116,104,111,100,61,34,103,101,116,34,32,97,99,116,105,111,110,61,34,108,105,110,107,32,114,101,108,61,34,115,116,121,108,101,115,104,101,101,116,34,32,32,61,32,100,111,99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,110,116,116,121,112,101,61,34,105,109,97,103,101,47,120,45,105,99,111,110,34,32,47,62,99,101,108,108,112,97,100,100,105,110,103,61,34,48,34,32,99,101,108,108,115,112,46,99,115,115,34,32,116,121,112,101,61,34,116,101,120,116,47,99,115,115,34,32,60,47,97,62,60,47,108,105,62,60,108,105,62,60,97,32,104,114,101,102,61,34,34,32,119,105,100,116,104,61,34,49,34,32,104,101,105,103,104,116,61,34,49,34,34,62,60,97,32,104,114,101,102,61,34,104,116,116,112,58,47,47,119,119,119,46,115,116,121,108,101,61,34,100,105,115,112,108,97,121,58,110,111,110,101,59,34,62,97,108,116,101,114,110,97,116,101,34,32,116,121,112,101,61,34,97,112,112,108,105,45,47,47,87,51,67,47,47,68,84,68,32,88,72,84,77,76,32,49,46,48,32,101,108,108,115,112,97,99,105,110,103,61,34,48,34,32,99,101,108,108,112,97,100,32,116,121,112,101,61,34,104,105,100,100,101,110,34,32,118,97,108,117,101,61,34,47,97,62,38,110,98,115,112,59,60,115,112,97,110,32,114,111,108,101,61,34,115,10,60,105,110,112,117,116,32,116,121,112,101,61,34,104,105,100,100,101,110,34,32,108,97,110,103,117,97,103,101,61,34,74,97,118,97,83,99,114,105,112,116,34,32,32,100,111,99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,110,116,115,66,103,61,34,48,34,32,99,101,108,108,115,112,97,99,105,110,103,61,34,48,34,32,121,112,101,61,34,116,101,120,116,47,99,115,115,34,32,109,101,100,105,97,61,34,116,121,112,101,61,39,116,101,120,116,47,106,97,118,97,115,99,114,105,112,116,39,119,105,116,104,32,116,104,101,32,101,120,99,101,112,116,105,111,110,32,111,102,32,121,112,101,61,34,116,101,120,116,47,99,115,115,34,32,114,101,108,61,34,115,116,32,104,101,105,103,104,116,61,34,49,34,32,119,105,100,116,104,61,34,49,34,32,61,39,43,101,110,99,111,100,101,85,82,73,67,111,109,112,111,110,101,110,116,40,60,108,105,110,107,32,114,101,108,61,34,97,108,116,101,114,110,97,116,101,34,32,10,98,111,100,121,44,32,116,114,44,32,105,110,112,117,116,44,32,116,101,120,116,109,101,116,97,32,110,97,109,101,61,34,114,111,98,111,116,115,34,32,99,111,110,109,101,116,104,111,100,61,34,112,111,115,116,34,32,97,99,116,105,111,110,61,34,62,10,60,97,32,104,114,101,102,61,34,104,116,116,112,58,47,47,119,119,119,46,99,115,115,34,32,114,101,108,61,34,115,116,121,108,101,115,104,101,101,116,34,32,60,47,100,105,118,62,60,47,100,105,118,62,60,100,105,118,32,99,108,97,115,115,108,97,110,103,117,97,103,101,61,34,106,97,118,97,115,99,114,105,112,116,34,62,97,114,105,97,45,104,105,100,100,101,110,61,34,116,114,117,101,34,62,194,183,60,114,105,112,116,34,32,116,121,112,101,61,34,116,101,120,116,47,106,97,118,97,115,108,61,48,59,125,41,40,41,59,10,40,102,117,110,99,116,105,111,110,40,41,123,98,97,99,107,103,114,111,117,110,100,45,105,109,97,103,101,58,32,117,114,108,40,47,97,62,60,47,108,105,62,60,108,105,62,60,97,32,104,114,101,102,61,34,104,9,9,60,108,105,62,60,97,32,104,114,101,102,61,34,104,116,116,112,58,47,47,97,116,111,114,34,32,97,114,105,97,45,104,105,100,100,101,110,61,34,116,114,117,62,32,60,97,32,104,114,101,102,61,34,104,116,116,112,58,47,47,119,119,119,46,108,97,110,103,117,97,103,101,61,34,106,97,118,97,115,99,114,105,112,116,34,32,47,111,112,116,105,111,110,62,10,60,111,112,116,105,111,110,32,118,97,108,117,101,47,100,105,118,62,60,47,100,105,118,62,60,100,105,118,32,99,108,97,115,115,61,114,97,116,111,114,34,32,97,114,105,97,45,104,105,100,100,101,110,61,34,116,114,101,61,40,110,101,119,32,68,97,116,101,41,46,103,101,116,84,105,109,101,40,41,112,111,114,116,117,103,117,195,170,115,32,40,100,111,32,66,114,97,115,105,108,41,208,190,209,128,208,179,208,176,208,189,208,184,208,183,208,176,209,134,208,184,208,184,208,178,208,190,208,183,208,188,208,190,208,182,208,189,208,190,209,129,209,130,209,140,208,190,208,177,209,128,208,176,208,183,208,190,208,178,208,176,208,189,208,184,209,143,209,128,208,181,208,179,208,184,209,129,209,130,209,128,208,176,209,134,208,184,208,184,208,178,208,190,208,183,208,188,208,190,208,182,208,189,208,190,209,129,209,130,208,184,208,190,208,177,209,143,208,183,208,176,209,130,208,181,208,187,209,140,208,189,208,176,60,33,68,79,67,84,89,80,69,32,104,116,109,108,32,80,85,66,76,73,67,32,34,110,116,45,84,121,112,101,34,32,99,111,110,116,101,110,116,61,34,116,101,120,116,47,60,109,101,116,97,32,104,116,116,112,45,101,113,117,105,118,61,34,67,111,110,116,101,114,97,110,115,105,116,105,111,110,97,108,47,47,69,78,34,32,34,104,116,116,112,58,60,104,116,109,108,32,120,109,108,110,115,61,34,104,116,116,112,58,47,47,119,119,119,45,47,47,87,51,67,47,47,68,84,68,32,88,72,84,77,76,32,49,46,48,32,84,68,84,68,47,120,104,116,109,108,49,45,116,114,97,110,115,105,116,105,111,110,97,108,47,47,119,119,119,46,119,51,46,111,114,103,47,84,82,47,120,104,116,109,108,49,47,112,101,32,61,32,39,116,101,120,116,47,106,97,118,97,115,99,114,105,112,116,39,59,60,109,101,116,97,32,110,97,109,101,61,34,100,101,115,99,114,105,112,116,105,111,110,112,97,114,101,110,116,78,111,100,101,46,105,110,115,101,114,116,66,101,102,111,114,101,60,105,110,112,117,116,32,116,121,112,101,61,34,104,105,100,100,101,110,34,32,110,97,106,115,34,32,116,121,112,101,61,34,116,101,120,116,47,106,97,118,97,115,99,114,105,40,100,111,99,117,109,101,110,116,41,46,114,101,97,100,121,40,102,117,110,99,116,105,115,99,114,105,112,116,32,116,121,112,101,61,34,116,101,120,116,47,106,97,118,97,115,105,109,97,103,101,34,32,99,111,110,116,101,110,116,61,34,104,116,116,112,58,47,47,85,65,45,67,111,109,112,97,116,105,98,108,101,34,32,99,111,110,116,101,110,116,61,116,109,108,59,32,99,104,97,114,115,101,116,61,117,116,102,45,56,34,32,47,62,10,108,105,110,107,32,114,101,108,61,34,115,104,111,114,116,99,117,116,32,105,99,111,110,60,108,105,110,107,32,114,101,108,61,34,115,116,121,108,101,115,104,101,101,116,34,32,60,47,115,99,114,105,112,116,62,10,60,115,99,114,105,112,116,32,116,121,112,101,61,61,32,100,111,99,117,109,101,110,116,46,99,114,101,97,116,101,69,108,101,109,101,110,60,97,32,116,97,114,103,101,116,61,34,95,98,108,97,110,107,34,32,104,114,101,102,61,32,100,111,99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,110,116,115,66,105,110,112,117,116,32,116,121,112,101,61,34,116,101,120,116,34,32,110,97,109,101,61,97,46,116,121,112,101,32,61,32,39,116,101,120,116,47,106,97,118,97,115,99,114,105,110,112,117,116,32,116,121,112,101,61,34,104,105,100,100,101,110,34,32,110,97,109,101,104,116,109,108,59,32,99,104,97,114,115,101,116,61,117,116,102,45,56,34,32,47,62,100,116,100,34,62,10,60,104,116,109,108,32,120,109,108,110,115,61,34,104,116,116,112,45,47,47,87,51,67,47,47,68,84,68,32,72,84,77,76,32,52,46,48,49,32,84,101,110,116,115,66,121,84,97,103,78,97,109,101,40,39,115,99,114,105,112,116,39,41,105,110,112,117,116,32,116,121,112,101,61,34,104,105,100,100,101,110,34,32,110,97,109,60,115,99,114,105,112,116,32,116,121,112,101,61,34,116,101,120,116,47,106,97,118,97,115,34,32,115,116,121,108,101,61,34,100,105,115,112,108,97,121,58,110,111,110,101,59,34,62,100,111,99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,110,116,66,121,73,100,40,61,100,111,99,117,109,101,110,116,46,99,114,101,97,116,101,69,108,101,109,101,110,116,40,39,32,116,121,112,101,61,39,116,101,120,116,47,106,97,118,97,115,99,114,105,112,116,39,105,110,112,117,116,32,116,121,112,101,61,34,116,101,120,116,34,32,110,97,109,101,61,34,100,46,103,101,116,69,108,101,109,101,110,116,115,66,121,84,97,103,78,97,109,101,40,115,110,105,99,97,108,34,32,104,114,101,102,61,34,104,116,116,112,58,47,47,119,119,119,46,67,47,47,68,84,68,32,72,84,77,76,32,52,46,48,49,32,84,114,97,110,115,105,116,60,115,116,121,108,101,32,116,121,112,101,61,34,116,101,120,116,47,99,115,115,34,62,10,10,60,115,116,121,108,101,32,116,121,112,101,61,34,116,101,120,116,47,99,115,115,34,62,105,111,110,97,108,46,100,116,100,34,62,10,60,104,116,109,108,32,120,109,108,110,115,61,104,116,116,112,45,101,113,117,105,118,61,34,67,111,110,116,101,110,116,45,84,121,112,101,100,105,110,103,61,34,48,34,32,99,101,108,108,115,112,97,99,105,110,103,61,34,48,34,104,116,109,108,59,32,99,104,97,114,115,101,116,61,117,116,102,45,56,34,32,47,62,10,32,115,116,121,108,101,61,34,100,105,115,112,108,97,121,58,110,111,110,101,59,34,62,60,60,108,105,62,60,97,32,104,114,101,102,61,34,104,116,116,112,58,47,47,119,119,119,46,32,116,121,112,101,61,39,116,101,120,116,47,106,97,118,97,115,99,114,105,112,116,39,62,208,180,208,181,209,143,209,130,208,181,208,187,209,140,208,189,208,190,209,129,209,130,208,184,209,129,208,190,208,190,209,130,208,178,208,181,209,130,209,129,209,130,208,178,208,184,208,184,208,191,209,128,208,190,208,184,208,183,208,178,208,190,208,180,209,129,209,130,208,178,208,176,208,177,208,181,208,183,208,190,208,191,208,176,209,129,208,189,208,190,209,129,209,130,208,184,224,164,170,224,165,129,224,164,184,224,165,141,224,164,164,224,164,191,224,164,149,224,164,190,224,164,149,224,164,190,224,164,130,224,164,151,224,165,141,224,164,176,224,165,135,224,164,184,224,164,137,224,164,168,224,165,141,224,164,185,224,165,139,224,164,130,224,164,168,224,165,135,224,164,181,224,164,191,224,164,167,224,164,190,224,164,168,224,164,184,224,164,173,224,164,190,224,164,171,224,164,191,224,164,149,224,165,141,224,164,184,224,164,191,224,164,130,224,164,151,224,164,184,224,165,129,224,164,176,224,164,149,224,165,141,224,164,183,224,164,191,224,164,164,224,164,149,224,165,137,224,164,170,224,165,128,224,164,176,224,164,190,224,164,135,224,164,159,224,164,181,224,164,191,224,164,156,224,165,141,224,164,158,224,164,190,224,164,170,224,164,168,224,164,149,224,164,190,224,164,176,224,165,141,224,164,176,224,164,181,224,164,190,224,164,136,224,164,184,224,164,149,224,165,141,224,164,176,224,164,191,224,164,175,224,164,164,224,164,190]);j7.init=function(){return j7.dictionary};});var ja=N(Z6=>{var lc=C4();Z6.init=function(){Z6.dictionary=lc.init();};Z6.offsetsByLength=new Uint32Array([0,0,0,0,0,4096,9216,21504,35840,44032,53248,63488,74752,87040,93696,100864,104704,106752,108928,113536,115968,118528,119872,121280,122016]);Z6.sizeBitsByLength=new Uint8Array([0,0,0,0,10,10,11,11,10,10,10,10,10,9,9,8,7,7,8,7,7,6,6,5,5]);Z6.minDictionaryWordLength=4;Z6.maxDictionaryWordLength=24;});var za=N(qa=>{function he(e,x){this.bits=e,this.value=x;}qa.HuffmanCode=he;var be=15;function S4(e,x){for(var t=1<<x-1;e&t;)t>>=1;return (e&t-1)+t}function $4(e,x,t,a,r){do a-=t,e[x+a]=new he(r.bits,r.value);while(a>0)}function uc(e,x,t){for(var a=1<<x-t;x<be&&(a-=e[x],!(a<=0));)++x,a<<=1;return x-t}qa.BrotliBuildHuffmanTable=function(e,x,t,a,r){var n=x,s,i,f,c,d,o,u,p,b,m,v,$=new Int32Array(be+1),y=new Int32Array(be+1);for(v=new Int32Array(r),f=0;f<r;f++)$[a[f]]++;for(y[1]=0,i=1;i<be;i++)y[i+1]=y[i]+$[i];for(f=0;f<r;f++)a[f]!==0&&(v[y[a[f]]++]=f);if(p=t,b=1<<p,m=b,y[be]===1){for(c=0;c<m;++c)e[x+c]=new he(0,v[0]&65535);return m}for(c=0,f=0,i=1,d=2;i<=t;++i,d<<=1)for(;$[i]>0;--$[i])s=new he(i&255,v[f++]&65535),$4(e,x+c,d,b,s),c=S4(c,i);for(u=m-1,o=-1,i=t+1,d=2;i<=be;++i,d<<=1)for(;$[i]>0;--$[i])(c&u)!==o&&(x+=b,p=uc($,i,t),b=1<<p,m+=b,o=c&u,e[n+o]=new he(p+t&255,x-n-o&65535)),s=new he(i-t&255,v[f++]&65535),$4(e,x+(c>>t),d,b,s),c=S4(c,i);return m};});var I4=N(Ha=>{Ha.lookup=new Uint8Array([0,0,0,0,0,0,0,0,0,4,4,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,12,16,12,12,20,12,16,24,28,12,12,32,12,36,12,44,44,44,44,44,44,44,44,44,44,32,32,24,40,28,12,12,48,52,52,52,48,52,52,52,48,52,52,52,52,52,48,52,52,52,52,52,48,52,52,52,52,52,24,12,28,12,12,12,56,60,60,60,56,60,60,60,56,60,60,60,60,60,56,60,60,60,60,60,56,60,60,60,60,60,24,12,28,12,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,56,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,43,43,43,43,44,44,44,44,45,45,45,45,46,46,46,46,47,47,47,47,48,48,48,48,49,49,49,49,50,50,50,50,51,51,51,51,52,52,52,52,53,53,53,53,54,54,54,54,55,55,55,55,56,56,56,56,57,57,57,57,58,58,58,58,59,59,59,59,60,60,60,60,61,61,61,61,62,62,62,62,63,63,63,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);Ha.lookupOffsets=new Uint16Array([1024,1536,1280,1536,0,256,768,512]);});var E4=N(pe=>{function F(e,x){this.offset=e,this.nbits=x;}pe.kBlockLengthPrefixCode=[new F(1,2),new F(5,2),new F(9,2),new F(13,2),new F(17,3),new F(25,3),new F(33,3),new F(41,3),new F(49,4),new F(65,4),new F(81,4),new F(97,4),new F(113,5),new F(145,5),new F(177,5),new F(209,5),new F(241,6),new F(305,6),new F(369,7),new F(497,8),new F(753,9),new F(1265,10),new F(2289,11),new F(4337,12),new F(8433,13),new F(16625,24)];pe.kInsertLengthPrefixCode=[new F(0,0),new F(1,0),new F(2,0),new F(3,0),new F(4,0),new F(5,0),new F(6,1),new F(8,1),new F(10,2),new F(14,2),new F(18,3),new F(26,3),new F(34,4),new F(50,4),new F(66,5),new F(98,5),new F(130,6),new F(194,7),new F(322,8),new F(578,9),new F(1090,10),new F(2114,12),new F(6210,14),new F(22594,24)];pe.kCopyLengthPrefixCode=[new F(2,0),new F(3,0),new F(4,0),new F(5,0),new F(6,0),new F(7,0),new F(8,0),new F(9,0),new F(10,1),new F(12,1),new F(14,2),new F(18,2),new F(22,3),new F(30,3),new F(38,4),new F(54,4),new F(70,5),new F(102,5),new F(134,6),new F(198,7),new F(326,8),new F(582,9),new F(1094,10),new F(2118,24)];pe.kInsertRangeLut=[0,0,8,8,0,16,8,16,16];pe.kCopyRangeLut=[0,8,0,8,16,0,16,8,16];});var k4=N(q7=>{var bc=ja(),B=0,O4=1,hc=2,pc=3,mc=4,gc=5,yc=6,wc=7,vc=8,R4=9,R0=10,D0=11,Va=12,_c=13,Ac=14,Cc=15,Sc=16,$c=17,Ic=18,Ec=20;function I(e,x,t){this.prefix=new Uint8Array(e.length),this.transform=x,this.suffix=new Uint8Array(t.length);for(var a=0;a<e.length;a++)this.prefix[a]=e.charCodeAt(a);for(var a=0;a<t.length;a++)this.suffix[a]=t.charCodeAt(a);}var Ke=[new I("",B,""),new I("",B," "),new I(" ",B," "),new I("",Va,""),new I("",R0," "),new I("",B," the "),new I(" ",B,""),new I("s ",B," "),new I("",B," of "),new I("",R0,""),new I("",B," and "),new I("",_c,""),new I("",O4,""),new I(", ",B," "),new I("",B,", "),new I(" ",R0," "),new I("",B," in "),new I("",B," to "),new I("e ",B," "),new I("",B,'"'),new I("",B,"."),new I("",B,'">'),new I("",B,`
5
+ `),new I("",pc,""),new I("",B,"]"),new I("",B," for "),new I("",Ac,""),new I("",hc,""),new I("",B," a "),new I("",B," that "),new I(" ",R0,""),new I("",B,". "),new I(".",B,""),new I(" ",B,", "),new I("",Cc,""),new I("",B," with "),new I("",B,"'"),new I("",B," from "),new I("",B," by "),new I("",Sc,""),new I("",$c,""),new I(" the ",B,""),new I("",mc,""),new I("",B,". The "),new I("",D0,""),new I("",B," on "),new I("",B," as "),new I("",B," is "),new I("",wc,""),new I("",O4,"ing "),new I("",B,`
6
+ `),new I("",B,":"),new I(" ",B,". "),new I("",B,"ed "),new I("",Ec,""),new I("",Ic,""),new I("",yc,""),new I("",B,"("),new I("",R0,", "),new I("",vc,""),new I("",B," at "),new I("",B,"ly "),new I(" the ",B," of "),new I("",gc,""),new I("",R4,""),new I(" ",R0,", "),new I("",R0,'"'),new I(".",B,"("),new I("",D0," "),new I("",R0,'">'),new I("",B,'="'),new I(" ",B,"."),new I(".com/",B,""),new I(" the ",B," of the "),new I("",R0,"'"),new I("",B,". This "),new I("",B,","),new I(".",B," "),new I("",R0,"("),new I("",R0,"."),new I("",B," not "),new I(" ",B,'="'),new I("",B,"er "),new I(" ",D0," "),new I("",B,"al "),new I(" ",D0,""),new I("",B,"='"),new I("",D0,'"'),new I("",R0,". "),new I(" ",B,"("),new I("",B,"ful "),new I(" ",R0,". "),new I("",B,"ive "),new I("",B,"less "),new I("",D0,"'"),new I("",B,"est "),new I(" ",R0,"."),new I("",D0,'">'),new I(" ",B,"='"),new I("",R0,","),new I("",B,"ize "),new I("",D0,"."),new I("\xC2\xA0",B,""),new I(" ",B,","),new I("",R0,'="'),new I("",D0,'="'),new I("",B,"ous "),new I("",D0,", "),new I("",R0,"='"),new I(" ",R0,","),new I(" ",D0,'="'),new I(" ",D0,", "),new I("",D0,","),new I("",D0,"("),new I("",D0,". "),new I(" ",D0,"."),new I("",D0,"='"),new I(" ",D0,". "),new I(" ",R0,'="'),new I(" ",D0,"='"),new I(" ",R0,"='")];q7.kTransforms=Ke;q7.kNumTransforms=Ke.length;function T4(e,x){return e[x]<192?(e[x]>=97&&e[x]<=122&&(e[x]^=32),1):e[x]<224?(e[x+1]^=32,2):(e[x+2]^=5,3)}q7.transformDictionaryWord=function(e,x,t,a,r){var n=Ke[r].prefix,s=Ke[r].suffix,i=Ke[r].transform,f=i<Va?0:i-(Va-1),c=0,d=x,o;f>a&&(f=a);for(var u=0;u<n.length;)e[x++]=n[u++];for(t+=f,a-=f,i<=R4&&(a-=i),c=0;c<a;c++)e[x++]=bc.dictionary[t+c];if(o=x-a,i===R0)T4(e,o);else if(i===D0)for(;a>0;){var p=T4(e,o);o+=p,a-=p;}for(var b=0;b<s.length;)e[x++]=s[b++];return x-d};});var H4=N(V7=>{var B4=Ua().BrotliInput,Oc=Ua().BrotliOutput,ye=A4(),ge=ja(),F0=za().HuffmanCode,M4=za().BrotliBuildHuffmanTable,me=I4(),S6=E4(),P4=k4(),Tc=8,D4=16,Rc=256,kc=704,Pc=26,F4=6,N4=2,Wa=8,Dc=255,$6=1080,Ka=18,Fc=new Uint8Array([1,2,3,4,0,5,17,6,16,7,8,9,10,11,12,13,14,15]),Ya=16,Nc=new Uint8Array([3,2,1,0,3,3,3,3,3,3,2,2,2,2,2,2]),Lc=new Int8Array([0,0,0,0,-1,1,-2,2,-3,3,-1,1,-2,2,-3,3]),Bc=new Uint16Array([256,402,436,468,500,534,566,598,630,662,694,726,758,790,822,854,886,920,952,984,1016,1048,1080]);function G4(e){var x;return e.readBits(1)===0?16:(x=e.readBits(3),x>0?17+x:(x=e.readBits(3),x>0?8+x:17))}function U4(e){if(e.readBits(1)){var x=e.readBits(3);return x===0?1:e.readBits(x)+(1<<x)}return 0}function Mc(){this.meta_block_length=0,this.input_end=0,this.is_uncompressed=0,this.is_metadata=false;}function j4(e){var x=new Mc,t,a,r;if(x.input_end=e.readBits(1),x.input_end&&e.readBits(1))return x;if(t=e.readBits(2)+4,t===7){if(x.is_metadata=true,e.readBits(1)!==0)throw new Error("Invalid reserved bit");if(a=e.readBits(2),a===0)return x;for(r=0;r<a;r++){var n=e.readBits(8);if(r+1===a&&a>1&&n===0)throw new Error("Invalid size byte");x.meta_block_length|=n<<r*8;}}else for(r=0;r<t;++r){var s=e.readBits(4);if(r+1===t&&t>4&&s===0)throw new Error("Invalid size nibble");x.meta_block_length|=s<<r*4;}return ++x.meta_block_length,!x.input_end&&!x.is_metadata&&(x.is_uncompressed=e.readBits(1)),x}function we(e,x,t){var r;return t.fillBitWindow(),x+=t.val_>>>t.bit_pos_&Dc,r=e[x].bits-Wa,r>0&&(t.bit_pos_+=Wa,x+=e[x].value,x+=t.val_>>>t.bit_pos_&(1<<r)-1),t.bit_pos_+=e[x].bits,e[x].value}function Gc(e,x,t,a){for(var r=0,n=Tc,s=0,i=0,f=32768,c=[],d=0;d<32;d++)c.push(new F0(0,0));for(M4(c,0,5,e,Ka);r<x&&f>0;){var o=0,u;if(a.readMoreInput(),a.fillBitWindow(),o+=a.val_>>>a.bit_pos_&31,a.bit_pos_+=c[o].bits,u=c[o].value&255,u<D4)s=0,t[r++]=u,u!==0&&(n=u,f-=32768>>u);else {var p=u-14,b,m,v=0;if(u===D4&&(v=n),i!==v&&(s=0,i=v),b=s,s>0&&(s-=2,s<<=p),s+=a.readBits(p)+3,m=s-b,r+m>x)throw new Error("[ReadHuffmanCodeLengths] symbol + repeat_delta > num_symbols");for(var $=0;$<m;$++)t[r+$]=i;r+=m,i!==0&&(f-=m<<15-i);}}if(f!==0)throw new Error("[ReadHuffmanCodeLengths] space = "+f);for(;r<x;r++)t[r]=0;}function H7(e,x,t,a){var r=0,n,s=new Uint8Array(e);if(a.readMoreInput(),n=a.readBits(2),n===1){for(var i,f=e-1,c=0,d=new Int32Array(4),o=a.readBits(2)+1;f;)f>>=1,++c;for(i=0;i<o;++i)d[i]=a.readBits(c)%e,s[d[i]]=2;switch(s[d[0]]=1,o){case 1:break;case 3:if(d[0]===d[1]||d[0]===d[2]||d[1]===d[2])throw new Error("[ReadHuffmanCode] invalid symbols");break;case 2:if(d[0]===d[1])throw new Error("[ReadHuffmanCode] invalid symbols");s[d[1]]=1;break;case 4:if(d[0]===d[1]||d[0]===d[2]||d[0]===d[3]||d[1]===d[2]||d[1]===d[3]||d[2]===d[3])throw new Error("[ReadHuffmanCode] invalid symbols");a.readBits(1)?(s[d[2]]=3,s[d[3]]=3):s[d[0]]=2;break}}else {var i,u=new Uint8Array(Ka),p=32,b=0,m=[new F0(2,0),new F0(2,4),new F0(2,3),new F0(3,2),new F0(2,0),new F0(2,4),new F0(2,3),new F0(4,1),new F0(2,0),new F0(2,4),new F0(2,3),new F0(3,2),new F0(2,0),new F0(2,4),new F0(2,3),new F0(4,5)];for(i=n;i<Ka&&p>0;++i){var v=Fc[i],$=0,y;a.fillBitWindow(),$+=a.val_>>>a.bit_pos_&15,a.bit_pos_+=m[$].bits,y=m[$].value,u[v]=y,y!==0&&(p-=32>>y,++b);}if(!(b===1||p===0))throw new Error("[ReadHuffmanCode] invalid num_codes or space");Gc(u,e,s,a);}if(r=M4(x,t,Wa,s,e),r===0)throw new Error("[ReadHuffmanCode] BuildHuffmanTable failed: ");return r}function z7(e,x,t){var a,r;return a=we(e,x,t),r=S6.kBlockLengthPrefixCode[a].nbits,S6.kBlockLengthPrefixCode[a].offset+t.readBits(r)}function Uc(e,x,t){var a;return e<Ya?(t+=Nc[e],t&=3,a=x[t]+Lc[e]):a=e-Ya+1,a}function jc(e,x){for(var t=e[x],a=x;a;--a)e[a]=e[a-1];e[0]=t;}function qc(e,x){var t=new Uint8Array(256),a;for(a=0;a<256;++a)t[a]=a;for(a=0;a<x;++a){var r=e[a];e[a]=t[r],r&&jc(t,r);}}function J6(e,x){this.alphabet_size=e,this.num_htrees=x,this.codes=new Array(x+x*Bc[e+31>>>5]),this.htrees=new Uint32Array(x);}J6.prototype.decode=function(e){var x,t,a=0;for(x=0;x<this.num_htrees;++x)this.htrees[x]=a,t=H7(this.alphabet_size,this.codes,a,e),a+=t;};function L4(e,x){var t={num_htrees:null,context_map:null},a,r=0,n,s;x.readMoreInput();var i=t.num_htrees=U4(x)+1,f=t.context_map=new Uint8Array(e);if(i<=1)return t;for(a=x.readBits(1),a&&(r=x.readBits(4)+1),n=[],s=0;s<$6;s++)n[s]=new F0(0,0);for(H7(i+r,n,0,x),s=0;s<e;){var c;if(x.readMoreInput(),c=we(n,0,x),c===0)f[s]=0,++s;else if(c<=r)for(var d=1+(1<<c)+x.readBits(c);--d;){if(s>=e)throw new Error("[DecodeContextMap] i >= context_map_size");f[s]=0,++s;}else f[s]=c-r,++s;}return x.readBits(1)&&qc(f,e),t}function Xa(e,x,t,a,r,n,s){var i=t*2,f=t,c=we(x,t*$6,s),d;c===0?d=r[i+(n[f]&1)]:c===1?d=r[i+(n[f]-1&1)]+1:d=c-2,d>=e&&(d-=e),a[t]=d,r[i+(n[f]&1)]=d,++n[f];}function zc(e,x,t,a,r,n){var s=r+1,i=t&r,f=n.pos_&ye.IBUF_MASK,c;if(x<8||n.bit_pos_+(x<<3)<n.bit_end_pos_){for(;x-- >0;)n.readMoreInput(),a[i++]=n.readBits(8),i===s&&(e.write(a,s),i=0);return}if(n.bit_end_pos_<32)throw new Error("[CopyUncompressedBlockToOutput] br.bit_end_pos_ < 32");for(;n.bit_pos_<32;)a[i]=n.val_>>>n.bit_pos_,n.bit_pos_+=8,++i,--x;if(c=n.bit_end_pos_-n.bit_pos_>>3,f+c>ye.IBUF_MASK){for(var d=ye.IBUF_MASK+1-f,o=0;o<d;o++)a[i+o]=n.buf_[f+o];c-=d,i+=d,x-=d,f=0;}for(var o=0;o<c;o++)a[i+o]=n.buf_[f+o];if(i+=c,x-=c,i>=s){e.write(a,s),i-=s;for(var o=0;o<i;o++)a[o]=a[s+o];}for(;i+x>=s;){if(c=s-i,n.input_.read(a,i,c)<c)throw new Error("[CopyUncompressedBlockToOutput] not enough bytes");e.write(a,s),x-=c,i=0;}if(n.input_.read(a,i,x)<x)throw new Error("[CopyUncompressedBlockToOutput] not enough bytes");n.reset();}function Hc(e){var x=e.bit_pos_+7&-8,t=e.readBits(x-e.bit_pos_);return t==0}function q4(e){var x=new B4(e),t=new ye(x);G4(t);var a=j4(t);return a.meta_block_length}V7.BrotliDecompressedSize=q4;function Vc(e,x){var t=new B4(e);x==null&&(x=q4(e));var a=new Uint8Array(x),r=new Oc(a);return z4(t,r),r.pos<r.buffer.length&&(r.buffer=r.buffer.subarray(0,r.pos)),r.buffer}V7.BrotliDecompressBuffer=Vc;function z4(e,x){var t,a=0,r=0,n=0,s,i=0,f,c,d,o,u=[16,15,11,4],p=0,b=0,m=0,v=[new J6(0,0),new J6(0,0),new J6(0,0)],$,y,h,S=128+ye.READ_SIZE;h=new ye(e),n=G4(h),s=(1<<n)-16,f=1<<n,c=f-1,d=new Uint8Array(f+S+ge.maxDictionaryWordLength),o=f,$=[],y=[];for(var E=0;E<3*$6;E++)$[E]=new F0(0,0),y[E]=new F0(0,0);for(;!r;){var T=0,D,R=[1<<28,1<<28,1<<28],G=[0],U=[1,1,1],Y=[0,1,0,1,0,1],f0=[0],s0,S0,c0,$0,J=null,x0=null,d0,l0=null,Vx,Xx=0,Ex=null,Wx=0,Kx=0,Ox=null,Yx=0,Tx=0,sx=0,V,p0;for(t=0;t<3;++t)v[t].codes=null,v[t].htrees=null;h.readMoreInput();var Zx=j4(h);if(T=Zx.meta_block_length,a+T>x.buffer.length){var W0=new Uint8Array(a+T);W0.set(x.buffer),x.buffer=W0;}if(r=Zx.input_end,D=Zx.is_uncompressed,Zx.is_metadata){for(Hc(h);T>0;--T)h.readMoreInput(),h.readBits(8);continue}if(T!==0){if(D){h.bit_pos_=h.bit_pos_+7&-8,zc(x,T,a,d,c,h),a+=T;continue}for(t=0;t<3;++t)U[t]=U4(h)+1,U[t]>=2&&(H7(U[t]+2,$,t*$6,h),H7(Pc,y,t*$6,h),R[t]=z7(y,t*$6,h),f0[t]=1);for(h.readMoreInput(),s0=h.readBits(2),S0=Ya+(h.readBits(4)<<s0),c0=(1<<s0)-1,$0=S0+(48<<s0),x0=new Uint8Array(U[0]),t=0;t<U[0];++t)h.readMoreInput(),x0[t]=h.readBits(2)<<1;var F6=L4(U[0]<<F4,h);d0=F6.num_htrees,J=F6.context_map;var Jx=L4(U[2]<<N4,h);for(Vx=Jx.num_htrees,l0=Jx.context_map,v[0]=new J6(Rc,d0),v[1]=new J6(kc,U[1]),v[2]=new J6($0,Vx),t=0;t<3;++t)v[t].decode(h);for(Ex=0,Ox=0,V=x0[G[0]],Tx=me.lookupOffsets[V],sx=me.lookupOffsets[V+1],p0=v[1].htrees[0];T>0;){var Qx,Ax,h6,x6,re,G0,w0,ax,Pe,ne,De;for(h.readMoreInput(),R[1]===0&&(Xa(U[1],$,1,G,Y,f0,h),R[1]=z7(y,$6,h),p0=v[1].htrees[G[1]]),--R[1],Qx=we(v[1].codes,p0,h),Ax=Qx>>6,Ax>=2?(Ax-=2,w0=-1):w0=0,h6=S6.kInsertRangeLut[Ax]+(Qx>>3&7),x6=S6.kCopyRangeLut[Ax]+(Qx&7),re=S6.kInsertLengthPrefixCode[h6].offset+h.readBits(S6.kInsertLengthPrefixCode[h6].nbits),G0=S6.kCopyLengthPrefixCode[x6].offset+h.readBits(S6.kCopyLengthPrefixCode[x6].nbits),b=d[a-1&c],m=d[a-2&c],ne=0;ne<re;++ne)h.readMoreInput(),R[0]===0&&(Xa(U[0],$,0,G,Y,f0,h),R[0]=z7(y,0,h),Xx=G[0]<<F4,Ex=Xx,V=x0[G[0]],Tx=me.lookupOffsets[V],sx=me.lookupOffsets[V+1]),Pe=me.lookup[Tx+b]|me.lookup[sx+m],Wx=J[Ex+Pe],--R[0],m=b,b=we(v[0].codes,v[0].htrees[Wx],h),d[a&c]=b,(a&c)===c&&x.write(d,f),++a;if(T-=re,T<=0)break;if(w0<0){var Pe;if(h.readMoreInput(),R[2]===0&&(Xa(U[2],$,2,G,Y,f0,h),R[2]=z7(y,2*$6,h),Kx=G[2]<<N4,Ox=Kx),--R[2],Pe=(G0>4?3:G0-2)&255,Yx=l0[Ox+Pe],w0=we(v[2].codes,v[2].htrees[Yx],h),w0>=S0){var Ft,t2,Fe;w0-=S0,t2=w0&c0,w0>>=s0,Ft=(w0>>1)+1,Fe=(2+(w0&1)<<Ft)-4,w0=S0+(Fe+h.readBits(Ft)<<s0)+t2;}}if(ax=Uc(w0,u,p),ax<0)throw new Error("[BrotliDecompress] invalid distance");if(a<s&&i!==s?i=a:i=s,De=a&c,ax>i)if(G0>=ge.minDictionaryWordLength&&G0<=ge.maxDictionaryWordLength){var Fe=ge.offsetsByLength[G0],a2=ax-i-1,r2=ge.sizeBitsByLength[G0],$5=(1<<r2)-1,I5=a2&$5,n2=a2>>r2;if(Fe+=I5*G0,n2<P4.kNumTransforms){var Nt=P4.transformDictionaryWord(d,De,Fe,G0,n2);if(De+=Nt,a+=Nt,T-=Nt,De>=o){x.write(d,f);for(var l7=0;l7<De-o;l7++)d[l7]=d[o+l7];}}else throw new Error("Invalid backward reference. pos: "+a+" distance: "+ax+" len: "+G0+" bytes left: "+T)}else throw new Error("Invalid backward reference. pos: "+a+" distance: "+ax+" len: "+G0+" bytes left: "+T);else {if(w0>0&&(u[p&3]=ax,++p),G0>T)throw new Error("Invalid backward reference. pos: "+a+" distance: "+ax+" len: "+G0+" bytes left: "+T);for(ne=0;ne<G0;++ne)d[a&c]=d[a-ax&c],(a&c)===c&&x.write(d,f),++a,--T;}b=d[a-1&c],m=d[a-2&c];}a&=1073741823;}}x.write(d,a&c);}V7.BrotliDecompress=z4;ge.init();});var X4=N((yp,V4)=>{V4.exports=H4().BrotliDecompressBuffer;});var L=Rx(Ut());var E0={DEFAULTS:{width:800,height:400,pixelRatio:2,fontFamily:"Roboto",fontSize:48,color:"#000000",textAlign:"left"},LIMITS:{minWidth:1,maxWidth:4096,minHeight:1,maxHeight:4096,minFontSize:1,maxFontSize:512,minDuration:.1,maxDuration:120,maxTextLength:1e4},ANIMATION_TYPES:["typewriter","fadeIn","slideIn","shift","ascend","movingLetters"]};var He=/^#[A-Fa-f0-9]{6}$/,a3=L.default.object({type:L.default.string().valid("linear","radial").default("linear"),angle:L.default.number().min(0).max(360).default(0),stops:L.default.array().items(L.default.object({offset:L.default.number().min(0).max(1).required(),color:L.default.string().pattern(He).required()}).unknown(false)).min(2).required()}).unknown(false),r3=L.default.object({offsetX:L.default.number().default(0),offsetY:L.default.number().default(0),blur:L.default.number().min(0).default(0),color:L.default.string().pattern(He).default("#000000"),opacity:L.default.number().min(0).max(1).default(.5)}).unknown(false),n3=L.default.object({width:L.default.number().min(0).default(0),color:L.default.string().pattern(He).default("#000000"),opacity:L.default.number().min(0).max(1).default(1)}).unknown(false),s3=L.default.object({family:L.default.string().default(E0.DEFAULTS.fontFamily),size:L.default.number().min(E0.LIMITS.minFontSize).max(E0.LIMITS.maxFontSize).default(E0.DEFAULTS.fontSize),weight:L.default.alternatives().try(L.default.string(),L.default.number()).default("400"),style:L.default.string().valid("normal","italic","oblique").default("normal"),color:L.default.string().pattern(He).default(E0.DEFAULTS.color),opacity:L.default.number().min(0).max(1).default(1)}).unknown(false),i3=L.default.object({letterSpacing:L.default.number().default(0),lineHeight:L.default.number().min(0).max(10).default(1.2),textTransform:L.default.string().valid("none","uppercase","lowercase","capitalize").default("none"),textDecoration:L.default.string().valid("none","underline","line-through").default("none"),gradient:a3.optional()}).unknown(false),f3=L.default.object({horizontal:L.default.string().valid("left","center","right").default(E0.DEFAULTS.textAlign),vertical:L.default.string().valid("top","middle","bottom").default("middle")}).unknown(false),c3=L.default.object({preset:L.default.string().valid(...E0.ANIMATION_TYPES),speed:L.default.number().min(.1).max(10).default(1),duration:L.default.number().min(E0.LIMITS.minDuration).max(E0.LIMITS.maxDuration).optional(),style:L.default.string().valid("character","word").optional().when("preset",{is:L.default.valid("typewriter","shift"),then:L.default.optional(),otherwise:L.default.forbidden()}),direction:L.default.string().optional().when("preset",{switch:[{is:"ascend",then:L.default.valid("up","down")},{is:"shift",then:L.default.valid("left","right","up","down")},{is:"slideIn",then:L.default.valid("left","right","up","down")},{is:"movingLetters",then:L.default.valid("left","right","up","down")}],otherwise:L.default.forbidden()})}).unknown(false),d3=L.default.object({color:L.default.string().pattern(He).optional(),opacity:L.default.number().min(0).max(1).default(1),borderRadius:L.default.number().min(0).default(0)}).unknown(false),o3=L.default.object({src:L.default.string().uri().required(),family:L.default.string().required(),weight:L.default.alternatives().try(L.default.string(),L.default.number()).optional(),style:L.default.string().optional(),originalFamily:L.default.string().optional()}).unknown(false),cs=L.default.object({type:L.default.string().valid("rich-text").required(),text:L.default.string().allow("").max(E0.LIMITS.maxTextLength).default(""),width:L.default.number().min(E0.LIMITS.minWidth).max(E0.LIMITS.maxWidth).default(E0.DEFAULTS.width).optional(),height:L.default.number().min(E0.LIMITS.minHeight).max(E0.LIMITS.maxHeight).default(E0.DEFAULTS.height).optional(),font:s3.optional(),style:i3.optional(),stroke:n3.optional(),shadow:r3.optional(),background:d3.optional(),align:f3.optional(),animation:c3.optional(),customFonts:L.default.array().items(o3).optional(),cacheEnabled:L.default.boolean().default(true),pixelRatio:L.default.number().min(1).max(3).default(E0.DEFAULTS.pixelRatio)}).unknown(false);var k7=null;function l3(){return typeof process<"u"&&process.versions!=null&&process.versions.node!=null}async function u3(e){try{if(e){let x=e.endsWith(".wasm")?e:e.endsWith("/")?`${e}hb.wasm`:`${e}/hb.wasm`;console.log(`Fetching WASM from: ${x}`);let t=await fetch(x);if(t.ok){let a=await t.arrayBuffer(),r=new Uint8Array(a);if(r.length>=4&&r[0]===0&&r[1]===97&&r[2]===115&&r[3]===109)return console.log(`\u2705 Valid WASM binary loaded (${r.length} bytes)`),a}}return}catch(x){console.error("Error in loadWasmWeb:",x);return}}function b3(e){let x=window.fetch;window.fetch=function(t,a){let r=typeof t=="string"?t:t instanceof URL?t.href:t.url;return r.includes("hb.wasm")||r.endsWith(".wasm")?(console.log(`\u{1F504} Intercepted fetch for: ${r}`),Promise.resolve(new Response(e,{status:200,statusText:"OK",headers:{"Content-Type":"application/wasm","Content-Length":e.byteLength.toString()}}))):x.apply(this,[t,a])};}async function ds(e){if(k7)return k7;try{let x;if(x=await u3(e),!x)throw new Error("Failed to load WASM binary from any source");console.log(`\u2705 WASM binary loaded successfully (${x.byteLength} bytes)`),l3()||b3(x);let a=(await import('harfbuzzjs')).default,r;if(typeof a=="function"?r=await a():a&&typeof a.then=="function"?r=await a:r=a,!r||typeof r.createBuffer!="function"||typeof r.createFont!="function")throw new Error("Failed to initialize HarfBuzz: unexpected export shape from 'harfbuzzjs'.");return k7=r,console.log("\u2705 HarfBuzz initialized successfully"),k7}catch(x){throw console.error("Failed to initialize HarfBuzz:",x),new Error(`Failed to initialize HarfBuzz: ${x instanceof Error?x.message:String(x)}`)}}var h3={utf16le:"utf-16le",ucs2:"utf-16le",utf16be:"utf-16be"},v0=class{constructor(x){this.buffer=x,this.view=new DataView(x.buffer,x.byteOffset,x.byteLength),this.pos=0,this.length=this.buffer.length;}readString(x,t="ascii"){t=h3[t]||t;let a=this.readBuffer(x);try{return new TextDecoder(t).decode(a)}catch{return a}}readBuffer(x){return this.buffer.slice(this.pos,this.pos+=x)}readUInt24BE(){return (this.readUInt16BE()<<8)+this.readUInt8()}readUInt24LE(){return this.readUInt16LE()+(this.readUInt8()<<16)}readInt24BE(){return (this.readInt16BE()<<8)+this.readUInt8()}readInt24LE(){return this.readUInt16LE()+(this.readInt8()<<16)}};v0.TYPES={UInt8:1,UInt16:2,UInt24:3,UInt32:4,Int8:1,Int16:2,Int24:3,Int32:4,Float:4,Double:8};for(let e of Object.getOwnPropertyNames(DataView.prototype))if(e.slice(0,3)==="get"){let x=e.slice(3).replace("Ui","UI");x==="Float32"?x="Float":x==="Float64"&&(x="Double");let t=v0.TYPES[x];v0.prototype["read"+x+(t===1?"":"BE")]=function(){let a=this.view[e](this.pos,false);return this.pos+=t,a},t!==1&&(v0.prototype["read"+x+"LE"]=function(){let a=this.view[e](this.pos,true);return this.pos+=t,a});}var p3=new TextEncoder,os=new Uint8Array(new Uint16Array([4660]).buffer)[0]==18,c6=class{constructor(x){this.buffer=x,this.view=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),this.pos=0;}writeBuffer(x){this.buffer.set(x,this.pos),this.pos+=x.length;}writeString(x,t="ascii"){let a;switch(t){case "utf16le":case "utf16-le":case "ucs2":a=ls(x,os);break;case "utf16be":case "utf16-be":a=ls(x,!os);break;case "utf8":a=p3.encode(x);break;case "ascii":a=m3(x);break;default:throw new Error(`Unsupported encoding: ${t}`)}this.writeBuffer(a);}writeUInt24BE(x){this.buffer[this.pos++]=x>>>16&255,this.buffer[this.pos++]=x>>>8&255,this.buffer[this.pos++]=x&255;}writeUInt24LE(x){this.buffer[this.pos++]=x&255,this.buffer[this.pos++]=x>>>8&255,this.buffer[this.pos++]=x>>>16&255;}writeInt24BE(x){x>=0?this.writeUInt24BE(x):this.writeUInt24BE(x+16777215+1);}writeInt24LE(x){x>=0?this.writeUInt24LE(x):this.writeUInt24LE(x+16777215+1);}fill(x,t){if(t<this.buffer.length)this.buffer.fill(x,this.pos,this.pos+t),this.pos+=t;else {let a=new Uint8Array(t);a.fill(x),this.writeBuffer(a);}}};function ls(e,x){let t=new Uint16Array(e.length);for(let a=0;a<e.length;a++){let r=e.charCodeAt(a);x&&(r=r>>8|(r&255)<<8),t[a]=r;}return new Uint8Array(t.buffer)}function m3(e){let x=new Uint8Array(e.length);for(let t=0;t<e.length;t++)x[t]=e.charCodeAt(t);return x}for(let e of Object.getOwnPropertyNames(DataView.prototype))if(e.slice(0,3)==="set"){let x=e.slice(3).replace("Ui","UI");x==="Float32"?x="Float":x==="Float64"&&(x="Double");let t=v0.TYPES[x];c6.prototype["write"+x+(t===1?"":"BE")]=function(a){this.view[e](this.pos,a,false),this.pos+=t;},t!==1&&(c6.prototype["write"+x+"LE"]=function(a){this.view[e](this.pos,a,true),this.pos+=t;});}var O0=class{fromBuffer(x){let t=new v0(x);return this.decode(t)}toBuffer(x){let t=this.size(x),a=new Uint8Array(t),r=new c6(a);return this.encode(r,x),a}};var Z=class extends O0{constructor(x,t="BE"){super(),this.type=x,this.endian=t,this.fn=this.type,this.type[this.type.length-1]!=="8"&&(this.fn+=this.endian);}size(){return v0.TYPES[this.type]}decode(x){return x[`read${this.fn}`]()}encode(x,t){return x[`write${this.fn}`](t)}};var k=new Z("UInt8"),g3=new Z("UInt16","BE"),l=g3;new Z("UInt16","LE");var y3=new Z("UInt24","BE"),d6=y3;new Z("UInt24","LE");var w3=new Z("UInt32","BE"),_=w3;new Z("UInt32","LE");var P0=new Z("Int8"),v3=new Z("Int16","BE"),O=v3;new Z("Int16","LE");new Z("Int24","BE");new Z("Int24","LE");var _3=new Z("Int32","BE"),v6=_3;new Z("Int32","LE");new Z("Float","BE");new Z("Float","LE");new Z("Double","BE");new Z("Double","LE");var Bx=class extends Z{constructor(x,t,a=x>>1){super(`Int${x}`,t),this._point=1<<a;}decode(x){return super.decode(x)/this._point}encode(x,t){return super.encode(x,t*this._point|0)}},A3=new Bx(16,"BE"),us=A3;new Bx(16,"LE");var C3=new Bx(32,"BE"),A0=C3;new Bx(32,"LE");function V0(e,x,t){let a;if(typeof e=="number"?a=e:typeof e=="function"?a=e.call(t,t):t&&typeof e=="string"?a=t[e]:x&&e instanceof Z&&(a=e.decode(x)),isNaN(a))throw new Error("Not a fixed size");return a}var _6=class{constructor(x={}){this.enumerable=true,this.configurable=true;for(let t in x){let a=x[t];this[t]=a;}}};var g=class extends O0{constructor(x,t,a="count"){super(),this.type=x,this.length=t,this.lengthType=a;}decode(x,t){let a,{pos:r}=x,n=[],s=t;if(this.length!=null&&(a=V0(this.length,x,t)),this.length instanceof Z&&(Object.defineProperties(n,{parent:{value:t},_startOffset:{value:r},_currentOffset:{value:0,writable:true},_length:{value:a}}),s=n),a==null||this.lengthType==="bytes"){let i=a!=null?x.pos+a:t?._length?t._startOffset+t._length:x.length;for(;x.pos<i;)n.push(this.type.decode(x,s));}else for(let i=0,f=a;i<f;i++)n.push(this.type.decode(x,s));return n}size(x,t,a=true){if(!x)return this.type.size(null,t)*V0(this.length,null,t);let r=0;this.length instanceof Z&&(r+=this.length.size(),t={parent:t,pointerSize:0});for(let n of x)r+=this.type.size(n,t);return t&&a&&this.length instanceof Z&&(r+=t.pointerSize),r}encode(x,t,a){let r=a;this.length instanceof Z&&(r={pointers:[],startOffset:x.pos,parent:a},r.pointerOffset=x.pos+this.size(t,r,false),this.length.encode(x,t.length));for(let n of t)this.type.encode(x,n,r);if(this.length instanceof Z){let n=0;for(;n<r.pointers.length;){let s=r.pointers[n++];s.type.encode(x,s.val,s.parent);}}}};var n0=class extends g{decode(x,t){let{pos:a}=x,r=V0(this.length,x,t);this.length instanceof Z&&(t={parent:t,_startOffset:a,_currentOffset:0,_length:r});let n=new Ve(this.type,r,x,t);return x.pos+=r*this.type.size(null,t),n}size(x,t){return x instanceof Ve&&(x=x.toArray()),super.size(x,t)}encode(x,t,a){return t instanceof Ve&&(t=t.toArray()),super.encode(x,t,a)}},Ve=class{constructor(x,t,a,r){this.type=x,this.length=t,this.stream=a,this.ctx=r,this.base=this.stream.pos,this.items=[];}get(x){if(!(x<0||x>=this.length)){if(this.items[x]==null){let{pos:t}=this.stream;this.stream.pos=this.base+this.type.size(null,this.ctx)*x,this.items[x]=this.type.decode(this.stream,this.ctx),this.stream.pos=t;}return this.items[x]}}toArray(){let x=[];for(let t=0,a=this.length;t<a;t++)x.push(this.get(t));return x}};var xx=class extends O0{constructor(x,t=[]){super(),this.type=x,this.flags=t;}decode(x){let t=this.type.decode(x),a={};for(let r=0;r<this.flags.length;r++){let n=this.flags[r];n!=null&&(a[n]=!!(t&1<<r));}return a}size(){return this.type.size()}encode(x,t){let a=0;for(let r=0;r<this.flags.length;r++){let n=this.flags[r];n!=null&&t[n]&&(a|=1<<r);}return this.type.encode(x,a)}};var rx=class extends O0{constructor(x){super(),this.length=x;}decode(x,t){let a=V0(this.length,x,t);return x.readBuffer(a)}size(x,t){if(!x)return V0(this.length,null,t);let a=x.length;return this.length instanceof Z&&(a+=this.length.size()),a}encode(x,t,a){return this.length instanceof Z&&this.length.encode(x,t.length),x.writeBuffer(t)}};var A6=class extends O0{constructor(x,t=true){super(),this.type=x,this.condition=t;}decode(x,t){let{condition:a}=this;if(typeof a=="function"&&(a=a.call(t,t)),a)return this.type.decode(x,t)}size(x,t){let{condition:a}=this;return typeof a=="function"&&(a=a.call(t,t)),a?this.type.size(x,t):0}encode(x,t,a){let{condition:r}=this;if(typeof r=="function"&&(r=r.call(a,a)),r)return this.type.encode(x,t,a)}};var h0=class extends O0{constructor(x,t=1){super(),this.type=x,this.count=t;}decode(x,t){x.pos+=this.size(null,t);}size(x,t){let a=V0(this.count,null,t);return this.type.size()*a}encode(x,t,a){return x.fill(0,this.size(t,a))}};var t0=class extends O0{constructor(x,t="ascii"){super(),this.length=x,this.encoding=t;}decode(x,t){let a,r,{encoding:n}=this;typeof n=="function"&&(n=n.call(t,t)||"ascii");let s=ya(n);if(this.length!=null)a=V0(this.length,x,t);else {let f;for({buffer:f,length:a,pos:r}=x;r<a-s+1&&(f[r]!==0||s===2&&f[r+1]!==0);)r+=s;a=r-x.pos;}let i=x.readString(a,n);return this.length==null&&x.pos<x.length&&(x.pos+=s),i}size(x,t){if(x==null)return V0(this.length,null,t);let{encoding:a}=this;typeof a=="function"&&(a=a.call(t?.val,t?.val)||"ascii"),a==="utf16be"&&(a="utf16le");let r=bs(x,a);return this.length instanceof Z&&(r+=this.length.size()),this.length==null&&(r+=ya(a)),r}encode(x,t,a){let{encoding:r}=this;if(typeof r=="function"&&(r=r.call(a?.val,a?.val)||"ascii"),this.length instanceof Z&&this.length.encode(x,bs(t,r)),x.writeString(t,r),this.length==null)return ya(r)==2?x.writeUInt16LE(0):x.writeUInt8(0)}};function ya(e){switch(e){case "ascii":case "utf8":return 1;case "utf16le":case "utf16-le":case "utf-16be":case "utf-16le":case "utf16be":case "utf16-be":case "ucs2":return 2;default:return 1}}function bs(e,x){switch(x){case "ascii":return e.length;case "utf8":let t=0;for(let a=0;a<e.length;a++){let r=e.charCodeAt(a);if(r>=55296&&r<=56319&&a<e.length-1){let n=e.charCodeAt(++a);(n&64512)===56320?r=((r&1023)<<10)+(n&1023)+65536:a--;}(r&4294967168)===0?t++:(r&4294965248)===0?t+=2:(r&4294901760)===0?t+=3:(r&4292870144)===0&&(t+=4);}return t;case "utf16le":case "utf16-le":case "utf16be":case "utf16-be":case "ucs2":return e.length*2;default:throw new Error("Unknown encoding "+x)}}var C=class extends O0{constructor(x={}){super(),this.fields=x;}decode(x,t,a=0){let r=this._setup(x,t,a);return this._parseFields(x,r,this.fields),this.process!=null&&this.process.call(r,x),r}_setup(x,t,a){let r={};return Object.defineProperties(r,{parent:{value:t},_startOffset:{value:x.pos},_currentOffset:{value:0,writable:true},_length:{value:a}}),r}_parseFields(x,t,a){for(let n in a){var r;let s=a[n];typeof s=="function"?r=s.call(t,t):r=s.decode(x,t),r!==void 0&&(r instanceof _6?Object.defineProperty(t,n,r):t[n]=r),t._currentOffset=x.pos-t._startOffset;}}size(x,t,a=true){x==null&&(x={});let r={parent:t,val:x,pointerSize:0};this.preEncode!=null&&this.preEncode.call(x);let n=0;for(let s in this.fields){let i=this.fields[s];i.size!=null&&(n+=i.size(x[s],r));}return a&&(n+=r.pointerSize),n}encode(x,t,a){let r;this.preEncode!=null&&this.preEncode.call(t,x);let n={pointers:[],startOffset:x.pos,parent:a,val:t,pointerSize:0};n.pointerOffset=x.pos+this.size(t,n,false);for(let i in this.fields)r=this.fields[i],r.encode!=null&&r.encode(x,t[i],n);let s=0;for(;s<n.pointers.length;){let i=n.pointers[s++];i.type.encode(x,i.val,i.parent);}}};var S3=(e,x)=>x.reduce((t,a)=>t&&t[a],e),W=class e extends C{constructor(x,t={}){super(),this.type=x,this.versions=t,typeof x=="string"&&(this.versionPath=x.split("."));}decode(x,t,a=0){let r=this._setup(x,t,a);typeof this.type=="string"?r.version=S3(t,this.versionPath):r.version=this.type.decode(x),this.versions.header&&this._parseFields(x,r,this.versions.header);let n=this.versions[r.version];if(n==null)throw new Error(`Unknown version ${r.version}`);return n instanceof e?n.decode(x,t):(this._parseFields(x,r,n),this.process!=null&&this.process.call(r,x),r)}size(x,t,a=true){let r,n;if(!x)throw new Error("Not a fixed size");this.preEncode!=null&&this.preEncode.call(x);let s={parent:t,val:x,pointerSize:0},i=0;if(typeof this.type!="string"&&(i+=this.type.size(x.version,s)),this.versions.header)for(r in this.versions.header)n=this.versions.header[r],n.size!=null&&(i+=n.size(x[r],s));let f=this.versions[x.version];if(f==null)throw new Error(`Unknown version ${x.version}`);for(r in f)n=f[r],n.size!=null&&(i+=n.size(x[r],s));return a&&(i+=s.pointerSize),i}encode(x,t,a){let r,n;this.preEncode!=null&&this.preEncode.call(t,x);let s={pointers:[],startOffset:x.pos,parent:a,val:t,pointerSize:0};if(s.pointerOffset=x.pos+this.size(t,s,false),typeof this.type!="string"&&this.type.encode(x,t.version),this.versions.header)for(r in this.versions.header)n=this.versions.header[r],n.encode!=null&&n.encode(x,t[r],s);let i=this.versions[t.version];for(r in i)n=i[r],n.encode!=null&&n.encode(x,t[r],s);let f=0;for(;f<s.pointers.length;){let c=s.pointers[f++];c.type.encode(x,c.val,c.parent);}}};var w=class extends O0{constructor(x,t,a={}){if(super(),this.offsetType=x,this.type=t,this.options=a,this.type==="void"&&(this.type=null),this.options.type==null&&(this.options.type="local"),this.options.allowNull==null&&(this.options.allowNull=true),this.options.nullValue==null&&(this.options.nullValue=0),this.options.lazy==null&&(this.options.lazy=false),this.options.relativeTo){if(typeof this.options.relativeTo!="function")throw new Error("relativeTo option must be a function");this.relativeToGetter=a.relativeTo;}}decode(x,t){let a=this.offsetType.decode(x,t);if(a===this.options.nullValue&&this.options.allowNull)return null;let r;switch(this.options.type){case "local":r=t._startOffset;break;case "immediate":r=x.pos-this.offsetType.size();break;case "parent":r=t.parent._startOffset;break;default:for(var n=t;n.parent;)n=n.parent;r=n._startOffset||0;}this.options.relativeTo&&(r+=this.relativeToGetter(t));let s=a+r;if(this.type!=null){let i=null,f=()=>{if(i!=null)return i;let{pos:c}=x;return x.pos=s,i=this.type.decode(x,t),x.pos=c,i};return this.options.lazy?new _6({get:f}):f()}else return s}size(x,t){let a=t;switch(this.options.type){case "local":case "immediate":break;case "parent":t=t.parent;break;default:for(;t.parent;)t=t.parent;}let{type:r}=this;if(r==null){if(!(x instanceof le))throw new Error("Must be a VoidPointer");(({type:r}=x)),x=x.value;}if(x&&t){let n=r.size(x,a);t.pointerSize+=n;}return this.offsetType.size()}encode(x,t,a){let r,n=a;if(t==null){this.offsetType.encode(x,this.options.nullValue);return}switch(this.options.type){case "local":r=a.startOffset;break;case "immediate":r=x.pos+this.offsetType.size(t,n);break;case "parent":a=a.parent,r=a.startOffset;break;default:for(r=0;a.parent;)a=a.parent;}this.options.relativeTo&&(r+=this.relativeToGetter(n.val)),this.offsetType.encode(x,a.pointerOffset-r);let{type:s}=this;if(s==null){if(!(t instanceof le))throw new Error("Must be a VoidPointer");(({type:s}=t)),t=t.value;}return a.pointers.push({type:s,val:t,parent:n}),a.pointerOffset+=s.size(t,n)}},le=class{constructor(x,t){this.type=x,this.value=t;}};function ex(e,x,t){return x in e?Object.defineProperty(e,x,{value:t,enumerable:true,configurable:true,writable:true}):e[x]=t,e}var zs=Rx(qs()),{__extends:wh,__assign:vh,__rest:_h,__decorate:B0,__param:Ah,__esDecorate:Ch,__runInitializers:Sh,__propKey:$h,__setFunctionName:Ih,__metadata:Eh,__awaiter:Oh,__generator:Th,__exportStar:Rh,__createBinding:kh,__values:Ph,__read:Dh,__spread:Fh,__spreadArrays:Nh,__spreadArray:Lh,__await:Bh,__asyncGenerator:Mh,__asyncDelegator:Gh,__asyncValues:Uh,__makeTemplateObject:jh,__importStar:qh,__importDefault:zh,__classPrivateFieldGet:Hh,__classPrivateFieldSet:Vh,__classPrivateFieldIn:Xh,__addDisposableResource:Wh,__disposeResources:Kh,__rewriteRelativeImportExtension:Yh}=zs.default;var nr=Rx(Vs());var l4=Rx(Ks()),u4=Rx(Ra());function W6(e){return e&&e.__esModule?e.default:e}var C6={};C6=JSON.parse('{"categories":["Cc","Zs","Po","Sc","Ps","Pe","Sm","Pd","Nd","Lu","Sk","Pc","Ll","So","Lo","Pi","Cf","No","Pf","Lt","Lm","Mn","Me","Mc","Nl","Zl","Zp","Cs","Co"],"combiningClasses":["Not_Reordered","Above","Above_Right","Below","Attached_Above_Right","Attached_Below","Overlay","Iota_Subscript","Double_Below","Double_Above","Below_Right","Above_Left","CCC10","CCC11","CCC12","CCC13","CCC14","CCC15","CCC16","CCC17","CCC18","CCC19","CCC20","CCC21","CCC22","CCC23","CCC24","CCC25","CCC30","CCC31","CCC32","CCC27","CCC28","CCC29","CCC33","CCC34","CCC35","CCC36","Nukta","Virama","CCC84","CCC91","CCC103","CCC107","CCC118","CCC122","CCC129","CCC130","CCC132","Attached_Above","Below_Left","Left","Kana_Voicing","CCC26","Right"],"scripts":["Common","Latin","Bopomofo","Inherited","Greek","Coptic","Cyrillic","Armenian","Hebrew","Arabic","Syriac","Thaana","Nko","Samaritan","Mandaic","Devanagari","Bengali","Gurmukhi","Gujarati","Oriya","Tamil","Telugu","Kannada","Malayalam","Sinhala","Thai","Lao","Tibetan","Myanmar","Georgian","Hangul","Ethiopic","Cherokee","Canadian_Aboriginal","Ogham","Runic","Tagalog","Hanunoo","Buhid","Tagbanwa","Khmer","Mongolian","Limbu","Tai_Le","New_Tai_Lue","Buginese","Tai_Tham","Balinese","Sundanese","Batak","Lepcha","Ol_Chiki","Braille","Glagolitic","Tifinagh","Han","Hiragana","Katakana","Yi","Lisu","Vai","Bamum","Syloti_Nagri","Phags_Pa","Saurashtra","Kayah_Li","Rejang","Javanese","Cham","Tai_Viet","Meetei_Mayek","null","Linear_B","Lycian","Carian","Old_Italic","Gothic","Old_Permic","Ugaritic","Old_Persian","Deseret","Shavian","Osmanya","Osage","Elbasan","Caucasian_Albanian","Linear_A","Cypriot","Imperial_Aramaic","Palmyrene","Nabataean","Hatran","Phoenician","Lydian","Meroitic_Hieroglyphs","Meroitic_Cursive","Kharoshthi","Old_South_Arabian","Old_North_Arabian","Manichaean","Avestan","Inscriptional_Parthian","Inscriptional_Pahlavi","Psalter_Pahlavi","Old_Turkic","Old_Hungarian","Hanifi_Rohingya","Old_Sogdian","Sogdian","Elymaic","Brahmi","Kaithi","Sora_Sompeng","Chakma","Mahajani","Sharada","Khojki","Multani","Khudawadi","Grantha","Newa","Tirhuta","Siddham","Modi","Takri","Ahom","Dogra","Warang_Citi","Nandinagari","Zanabazar_Square","Soyombo","Pau_Cin_Hau","Bhaiksuki","Marchen","Masaram_Gondi","Gunjala_Gondi","Makasar","Cuneiform","Egyptian_Hieroglyphs","Anatolian_Hieroglyphs","Mro","Bassa_Vah","Pahawh_Hmong","Medefaidrin","Miao","Tangut","Nushu","Duployan","SignWriting","Nyiakeng_Puachue_Hmong","Wancho","Mende_Kikakui","Adlam"],"eaw":["N","Na","A","W","H","F"]}');var ka=new u4.default(l4.default.toByteArray("AAARAAAAAADwfAEAZXl5ONRt+/5bPVFZimRfKoTQJNm37CGE7Iw0j3UsTWKsoyI7kwyyTiEUzSD7NiEzhWYijH0wMVkHE4Mx49fzfo+3nuP4/fdZjvv+XNd5n/d9nef1WZvmKhTxiZndzDQBSEYQqxqKwnsKvGQucFh+6t6cJ792ePQBZv5S9yXSwkyjf/P4T7mTNnIAv1dOVhMlR9lflbUL9JeJguqsjvG9NTj/wLb566VAURnLo2vvRi89S3gW/33ihh2eXpDn40BIW7REl/7coRKIhAFlAiOtbLDTt6mMb4GzMF1gNnvX/sBxtbsAIjfztCNcQjcNDtLThRvuXu5M5g/CBjaLBE4lJm4qy/oZD97+IJryApcXfgWYlkvWbhfXgujOJKVu8B+ozqTLbxyJ5kNiR75CxDqfBM9eOlDMmGeoZ0iQbbS5VUplIwI+ZNXEKQVJxlwqjhOY7w3XwPesbLK5JZE+Tt4X8q8km0dzInsPPzbscrjBMVjF5mOHSeRdJVgKUjLTHiHqXSPkep8N/zFk8167KLp75f6RndkvzdfB6Uz3MmqvRArzdCbs1/iRZjYPLLF3U8Qs+H+Rb8iK51a6NIV2V9+07uJsTGFWpPz8J++7iRu2B6eAKlK/kujrLthwaD/7a6J5w90TusnH1JMAc+gNrql4aspOUG/RrsxUKmPzhHgP4Bleru+6Vfc/MBjgXVx7who94nPn7MPFrnwQP7g0k0Dq0h2GSKO6fTZ8nLodN1SiOUj/5EL/Xo1DBvRm0wmrh3x6phcJ20/9CuMr5h8WPqXMSasLoLHoufTmE7mzYrs6B0dY7KjuCogKqsvxnxAwXWvd9Puc9PnE8DOHT2INHxRlIyVHrqZahtfV2E/A2PDdtA3ewlRHMtFIBKO/T4IozWTQZ+mb+gdKuk/ZHrqloucKdsOSJmlWTSntWjcxVMjUmroXLM10I6TwDLnBq4LP69TxgVeyGsd8yHvhF8ydPlrNRSNs9EP7WmeuSE7Lu10JbOuQcJw/63sDp68wB9iwP5AO+mBpV0R5VDDeyQUFCel1G+4KHBgEVFS0YK+m2sXLWLuGTlkVAd97WwKKdacjWElRCuDRauf33l/yVcDF6sVPKeTes99FC1NpNWcpieGSV/IbO8PCTy5pbUR1U8lxzf4T+y6fZMxOz3LshkQLeeDSd0WmUrQgajmbktrxsb2AZ0ACw2Vgni+gV/m+KvCRWLg08Clx7uhql+v9XySGcjjOHlsp8vBw/e8HS7dtiqF6T/XcSXuaMW66GF1g4q9YyBadHqy3Y5jin1c7yZos6BBr6dsomSHxiUHanYtcYQwnMMZhRhOnaYJeyJzaRuukyCUh48+e/BUvk/aEfDp8ag+jD64BHxNnQ5v/E7WRk7eLjGV13I3oqy45YNONi/1op1oDr7rPjkhPsTXgUpQtGDPlIs55KhQaic9kSGs/UrZ2QKQOflB8MTEQxRF9pullToWO7Eplan6mcMRFnUu2441yxi23x+KqKlr7RWWsi9ZXMWlr8vfP3llk1m2PRj0yudccxBuoa7VfIgRmnFPGX6Pm1WIfMm/Rm4n/xTn8IGqA0GWuqgu48pEUO0U9nN+ZdIvFpPb7VDPphIfRZxznlHeVFebkd9l+raXy9BpTMcIUIvBfgHEb6ndGo8VUkxpief14KjzFOcaANfgvFpvyY8lE8lE4raHizLpluPzMks1hx/e1Hok5yV0p7qQH7GaYeMzzZTFvRpv6k6iaJ4yNqzBvN8J7B430h2wFm1IBPcqbou33G7/NWPgopl4Mllla6e24L3TOTVNkza2zv3QKuDWTeDpClCEYgTQ+5vEBSQZs/rMF50+sm4jofTgWLqgX1x3TkrDEVaRqfY/xZizFZ3Y8/DFEFD31VSfBQ5raEB6nHnZh6ddehtclQJ8fBrldyIh99LNnV32HzKEej04hk6SYjdauCa4aYW0ru/QxvQRGzLKOAQszf3ixJypTW3WWL6BLSF2EMCMIw7OUvWBC6A/gDc2D1jvBapMCc7ztx6jYczwTKsRLL6dMNXb83HS8kdD0pTMMj161zbVHkU0mhSHo9SlBDDXdN6hDvRGizmohtIyR3ot8tF5iUG4GLNcXeGvBudSFrHu+bVZb9jirNVG+rQPI51A7Hu8/b0UeaIaZ4UgDO68PkYx3PE2HWpKapJ764Kxt5TFYpywMy4DLQqVRy11I7SOLhxUFmqiEK52NaijWArIfCg6qG8q5eSiwRCJb1R7GDJG74TrYgx/lVq7w9++Kh929xSJEaoSse5fUOQg9nMAnIZv+7fwVRcNv3gOHI46Vb5jYUC66PYHO6lS+TOmvEQjuYmx4RkffYGxqZIp/DPWNHAixbRBc+XKE3JEOgs4jIwu/dSAwhydruOGF39co91aTs85JJ3Z/LpXoF43hUwJsb/M1Chzdn8HX8vLXnqWUKvRhNLpfAF4PTFqva1sBQG0J+59HyYfmQ3oa4/sxZdapVLlo/fooxSXi/dOEQWIWq8E0FkttEyTFXR2aNMPINMIzZwCNEheYTVltsdaLkMyKoEUluPNAYCM2IG3br0DLy0fVNWKHtbSKbBjfiw7Lu06gQFalC7RC9BwRMSpLYDUo9pDtDfzwUiPJKLJ2LGcSphWBadOI/iJjNqUHV7ucG8yC6+iNM9QYElqBR7ECFXrcTgWQ3eG/tCWacT9bxIkfmxPmi3vOd36KxihAJA73vWNJ+Y9oapXNscVSVqS5g15xOWND/WuUCcA9YAAg6WFbjHamrblZ5c0L6Zx1X58ZittGcfDKU697QRSqW/g+RofNRyvrWMrBn44cPvkRe2HdTu/Cq01C5/riWPHZyXPKHuSDDdW8c1XPgd6ogvLh20qEIu8c19sqr4ufyHrwh37ZN5MkvY1dsGmEz9pUBTxWrvvhNyODyX2Q1k/fbX/T/vbHNcBrmjgDtvBdtZrVtiIg5iXQuzO/DEMvRX8Mi1zymSlt92BGILeKItjoShJXE/H7xwnf0Iewb8BFieJ9MflEBCQYEDm8eZniiEPfGoaYiiEdhQxHQNr2AuRdmbL9mcl18Kumh+HEZLp6z+j35ML9zTbUwahUZCyQQOgQrGfdfQtaR/OYJ/9dYXb2TWZFMijfCA8Nov4sa5FFDUe1T68h4q08WDE7JbbDiej4utRMR9ontevxlXv6LuJTXt1YEv8bDzEt683PuSsIN0afvu0rcBu9AbXZbkOG3K3AhtqQ28N23lXm7S3Yn6KXmAhBhz+GeorJJ4XxO/b3vZk2LXp42+QvsVxGSNVpfSctIFMTR1bD9t70i6sfNF3WKz/uKDEDCpzzztwhL45lsw89H2IpWN10sXHRlhDse9KCdpP5qNNpU84cTY+aiqswqR8XZ9ea0KbVRwRuOGQU3csAtV2fSbnq47U6es6rKlWLWhg3s/B9C9g+oTyp6RtIldR51OOkP5/6nSy6itUVPcMNOp4M/hDdKOz3uK6srbdxOrc2cJgr1Sg02oBxxSky6V7JaG+ziNwlfqnjnvh2/uq1lKfbp+qpwq/D/5OI5gkFl5CejKGxfc2YVJfGqc4E0x5e9PHK2ukbHNI7/RZV6LNe65apbTGjoCaQls0txPPbmQbCQn+/upCoXRZy9yzorWJvZ0KWcbXlBxU/d5I4ERUTxMuVWhSMmF677LNN7NnLwsmKawXkCgbrpcluOl0WChR1qhtSrxGXHu251dEItYhYX3snvn1gS2uXuzdTxCJjZtjsip0iT2sDC0qMS7Bk9su2NyXjFK5/f5ZoWwofg3DtTyjaFqspnOOTSh8xK/CKUFS57guVEkw9xoQuRCwwEO9Lu9z2vYxSa9NFV8DvSxv2C4WYLYF8Nrc4DzWkzNsk81JJOlZ/LYJrGCoj4MmZpnf3AXmzxT4rtl9jsqljEyedz468SGKdBiQzyz/qWKEhFg45ZczlZZ3KGL3l6sn+3TTa3zMVMhPa1obGp/z+fvY0QXTrJTf1XAT3EtQdUfYYlmWZyvPZ/6rWwU7UOQei7pVE0osgN94Iy+T1+omE6z4Rh2O20FjgBeK2y1mcoFiMDOJvuZPn5Moy9fmFH3wyfKvn4+TwfLvt/lHTTVnvrtoUWRBiQXhiNM8nE6ZoWeux/Z0b2unRcdUzdDpmL7CAgd1ToRXwgmHTZOgiGtVT+xr1QH9ObebRTT4NzL+XSpLuuWp62GqQvJVTPoZOeJCb6gIwd9XHMftQ+Kc08IKKdKQANSJ1a2gve3JdRhO0+tNiYzWAZfd7isoeBu67W7xuK8WX7nhJURld98Inb0t/dWOSau/kDvV4DJo/cImw9AO2Gvq0F2n0M7yIZKL8amMbjYld+qFls7hq8Acvq97K2PrCaomuUiesu7qNanGupEl6J/iem8lyr/NMnsTr6o41PO0yhQh3hPFN0wJP7S830je9iTBLzUNgYH+gUZpROo3rN2qgCI+6GewpX8w8CH+ro6QrWiStqmcMzVa3vEel+3/dDxMp0rDv1Q6wTMS3K64zTT6RWzK1y643im25Ja7X2ePCV2mTswd/4jshZPo4bLnerqIosq/hy2bKUAmVn9n4oun1+a0DIZ56UhVwmZHdUNpLa8gmPvxS1eNvCF1T0wo1wKPdCJi0qOrWz7oYRTzgTtkzEzZn308XSLwUog4OWGKJzCn/3FfF9iA32dZHSv30pRCM3KBY9WZoRhtdK/ChHk6DEQBsfV6tN2o1Cn0mLtPBfnkS+qy1L2xfFe9TQPtDE1Be44RTl82E9hPT2rS2+93LFbzhQQO3C/hD2jRFH3BWWbasAfuMhRJFcTri73eE835y016s22DjoFJ862WvLj69fu2TgSF3RHia9D5DSitlQAXYCnbdqjPkR287Lh6dCHDapos+eFDvcZPP2edPmTFxznJE/EBLoQQ0Qmn9EkZOyJmHxMbvKYb8o21ZHmv5YLqgsEPk9gWZwYQY9wLqGXuax/8QlV5qDaPbq9pLPT1yp+zOWKmraEy1OUJI7zdEcEmvBpbdwLrDCgEb2xX8S/nxZgjK4bRi+pbOmbh8bEeoPvU/L9ndx9kntlDALbdAvp0O8ZC3zSUnFg4cePsw7jxewWvL7HRSBLUn6J7vTH9uld5N76JFPgBCdXGF221oEJk++XfRwXplLSyrVO7HFWBEs99nTazKveW3HpbD4dH/YmdAl+lwbSt8BQWyTG7jAsACI7bPPUU9hI9XUHWqQOuezHzUjnx5Qqs6T1qNHfTTHleDtmqK7flA9a0gz2nycIpz1FHBuWxKNtUeTdqP29Fb3tv+tl5JyBqXoR+vCsdzZwZUhf6Lu8bvkB9yQP4x7GGegB0ym0Lpl03Q7e+C0cDsm9GSDepCDji7nUslLyYyluPfvLyKaDSX4xpR+nVYQjQQn5F8KbY1gbIVLiK1J3mW90zTyR1bqApX2BlWh7KG8LAY9/S9nWC0XXh9pZZo6xuir12T43rkaGfQssbQyIslA7uJnSHOV22NhlNtUo0czxPAsXhh8tIQYaTM4l/yAlZlydTcXhlG22Gs/n3BxKBd/3ZjYwg3NaUurVXhNB+afVnFfNr9TbC9ksNdvwpNfeHanyJ8M6GrIVfLlYAPv0ILe4dn0Z+BJSbJkN7eZY/c6+6ttDYcIDeUKIDXqUSE42Xdh5nRbuaObozjht0HJ5H1e+em+NJi/+8kQlyjCbJpPckwThZeIF9/u7lrVIKNeJLCN/TpPAeXxvd31/CUDWHK9MuP1V1TJgngzi4V0qzS3SW3Qy5UiGHqg02wQa5tsEl9s/X9nNMosgLlUgZSfCBj1DiypLfhr9/r0nR0XY2tmhDOcUS4E7cqa4EJBhzqvpbZa35Q5Iz5EqmhYiOGDAYk606Tv74+KGfPjKVuP15rIzgW0I7/niOu9el/sn2bRye0gV+GrePDRDMHjwO1lEdeXH8N+UTO3IoN18kpI3tPxz+fY+n2MGMSGFHAx/83tKeJOl+2i+f1O9v6FfEDBbqrw+lpM8Anav7zHNr7hE78nXUtPNodMbCnITWA7Ma/IHlZ50F9hWge/wzOvSbtqFVFtkS8Of2nssjZwbSFdU+VO8z6tCEc9UA9ACxT5zIUeSrkBB/v1krOpm7bVMrGxEKfI6LcnpB4D8bvn2hDKGqKrJaVAJuDaBEY3F7eXyqnFWlOoFV/8ZLspZiZd7orXLhd4mhHQgbuKbHjJWUzrnm0Dxw/LJLzXCkh7slMxKo8uxZIWZfdKHlfI7uj3LP6ARAuWdF7ZmZ7daOKqKGbz5LxOggTgS39oEioYmrqkCeUDvbxkBYKeHhcLmMN8dMF01ZMb32IpL/cH8R7VHQSI5I0YfL14g9d7P/6cjB1JXXxbozEDbsrPdmL8ph7QW10jio+v7YsqHKQ6xrBbOVtxU0/nFfzUGZwIBLwyUvg49ii+54nv9FyECBpURnQK4Ox6N7lw5fsjdd5l/2SwBcAHMJoyjO1Pifye2dagaOwCVMqdJWAo77pvBe0zdJcTWu5fdzPNfV2p1pc7/JKQ8zhKkwsOELUDhXygPJ5oR8Vpk2lsCen3D3QOQp2zdrSZHjVBstDF/wWO98rrkQ6/7zt/Drip7OHIug1lomNdmRaHRrjmqeodn22sesQQPgzimPOMqC60a5+i/UYh51uZm+ijWkkaI2xjrBO2558DZNZMiuDQlaVAvBy2wLn/bR3FrNzfnO/9oDztYqxZrr7JMIhqmrochbqmQnKowxW29bpqTaJu7kW1VotC72QkYX8OoDDdMDwV1kJRk3mufgJBzf+iwFRJ7XWQwO5ujVglgFgHtycWiMLx5N+6XU+TulLabWjOzoao03fniUW0xvIJNPbk7CQlFZd/RCOPvgQbLjh5ITE8NVJeKt3HGr6JTnFdIzcVOlEtwqbIIX0IM7saC+4N5047MTJ9+Wn11EhyEPIlwsHE5utCeXRjQzlrR+R1Cf/qDzcNbqLXdk3J7gQ39VUrrEkS/VMWjjg+t2oYrqB0tUZClcUF6+LBC3EQ7KnGIwm/qjZX4GKPtjTX1zQKV6nPAb2t/Rza5IqKRf8i2DFEhV/YSifX0YwsiF6TQnp48Gr65TFq0zUe6LGjiY7fq0LSGKL1VnC6ESI2yxvt3XqBx53B3gSlGFeJcPbUbonW1E9E9m4NfuwPh+t5QjRxX34lvBPVxwQd7aeTd+r9dw5CiP1pt8wMZoMdni7GapYdo6KPgeQKcmlFfq4UYhvV0IBgeiR3RnTMBaqDqpZrTRyLdsp4l0IXZTdErfH0sN3dqBG5vRIx3VgCYcHmmkqJ8Hyu3s9K9uBD1d8cZUEx3qYcF5vsqeRpF1GOg8emeWM2OmBlWPdZ6qAXwm3nENFyh+kvXk132PfWAlN0kb7yh4fz2T7VWUY/hEXX5DvxGABC03XRpyOG8t/u3Gh5tZdpsSV9AWaxJN7zwhVglgII1gV28tUViyqn4UMdIh5t+Ea2zo7PO48oba0TwQbiSZOH4YhD578kPF3reuaP7LujPMsjHmaDuId9XEaZBCJhbXJbRg5VCk3KJpryH/+8S3wdhR47pdFcmpZG2p0Bpjp/VbvalgIZMllYX5L31aMPdt1J7r/7wbixt0Mnz2ZvNGTARHPVD+2O1D8SGpWXlVnP2ekgon55YiinADDynyaXtZDXueVqbuTi8z8cHHK325pgqM+mWZwzHeEreMvhZopAScXM14SJHpGwZyRljMlDvcMm9FZ/1e9+r/puOnpXOtc9Iu2fmgBfEP9cGW1Fzb1rGlfJ08pACtq1ZW18bf2cevebzVeHbaA50G9qoUp39JWdPHbYkPCRXjt4gzlq3Cxge28Mky8MoS/+On72kc+ZI2xBtgJytpAQHQ1zrEddMIVyR5urX6yBNu8v5lKC8eLdGKTJtbgIZ3ZyTzSfWmx9f+cvcJe8yM39K/djkp2aUTE/9m2Lj5jg7b8vdRAer7DO3SyLNHs1CAm5x5iAdh2yGJYivArZbCBNY88Tw+w+C1Tbt7wK3zl2rzTHo/D8/gb3c3mYrnEIEipYqPUcdWjnTsSw471O3EUN7Gtg4NOAs9PJrxm03VuZKa5xwXAYCjt7Gs01Km6T2DhOYUMoFcCSu7Hk1p3yP1eG+M3v3Q5luAze6WwBnZIYO0TCucPWK+UJ36KoJ8Y+vpavhLO8g5ed704IjlQdfemrMu//EvPYXTQSGIPPfiagJS9nMqP5IvkxN9pvuJz7h8carPXTKMq8jnTeL0STan6dnLTAqwIswcIwWDR2KwbGddAVN8SYWRB7kfBfBRkSXzvHlIF8D6jo64kUzYk5o/n8oLjKqat0rdXvQ86MkwQGMnnlcasqPPT2+mVtUGb32KuH6cyZQenrRG11TArcAl27+nvOMBDe++EKHf4YdyGf7mznzOz33cFFGEcv329p4qG2hoaQ8ULiMyVz6ENcxhoqGnFIdupcn7GICQWuw3yO3W8S33mzCcMYJ8ywc7U7rmaQf/W5K63Gr4bVTpXOyOp4tbaPyIaatBNpXqlmQUTSZXjxPr19+73PSaT+QnI35YsWn6WpfJjRtK8vlJZoTSgjaRU39AGCkWOZtifJrnefCrqwTKDFmuWUCukEsYcRrMzCoit28wYpP7kSVjMD8WJYQiNc2blMjuqYegmf6SsfC1jqz8XzghMlOX+gn/MKZmgljszrmehEa4V98VreJDxYvHr3j7IeJB9/sBZV41BWT/AZAjuC5XorlIPnZgBAniBEhanp0/0+qZmEWDpu8ige1hUPIyTo6T6gDEcFhWSoduNh8YSu65KgMOGBw7VlNYzNIgwHtq9KP2yyTVysqX5v12sf7D+vQUdR2dRDvCV40rIInXSLWT/yrC6ExOQxBJwIDbeZcl3z1yR5Rj3l8IGpxspapnvBL+fwupA3b6fkFceID9wgiM1ILB0cHVdvo/R4xg8yqKXT8efl0GnGX1/27FUYeUW2L/GNRGGWVGp3i91oaJkb4rybENHre9a2P5viz/yqk8ngWUUS+Kv+fu+9BLFnfLiLXOFcIeBJLhnayCiuDRSqcx0Qu68gVsGYc6EHD500Fkt+gpDj6gvr884n8wZ5o6q7xtL5wA0beXQnffWYkZrs2NGIRgQbsc5NB302SVx+R4ROvmgZaR8wBcji128BMfJ9kcvJ4DC+bQ57kRmv5yxgU4ngZfn0/JNZ8JBwxjTqS+s9kjJFG1unGUGLwMiIuXUD9EFhNIJuyCEAmVZSIGKH4G6v1gRR1LyzQKH2ZqiI1DnHMoDEZspbDjTeaFIAbSvjSq3A+n46y9hhVM8wIpnARSXyzmOD96d9UXvFroSPgGw1dq2vdEqDq9fJN1EbL2WulNmHkFDvxSO9ZT/RX/Bw2gA/BrF90XrJACereVfbV/YXaKfp77Nmx5NjEIUlxojsy7iN7nBHSZigfsbFyVOX1ZTeCCxvqnRSExP4lk5ZeYlRu9caaa743TWNdchRIhEWwadsBIe245C8clpaZ4zrPsk+OwXzxWCvRRumyNSLW5KWaSJyJU95cwheK76gr7228spZ3hmTtLyrfM2QRFqZFMR8/Q6yWfVgwTdfX2Ry4w3+eAO/5VT5nFb5NlzXPvBEAWrNZ6Q3jbH0RF4vcbp+fDngf/ywpoyNQtjrfvcq93AVb1RDWRghvyqgI2BkMr1rwYi8gizZ0G9GmPpMeqPerAQ0dJbzx+KAFM4IBq6iSLpZHUroeyfd9o5o+4fR2EtsZBoJORQEA4SW0CmeXSnblx2e9QkCHIodyqV6+g5ETEpZsLqnd/Na60EKPX/tQpPEcO+COIBPcQdszDzSiHGyQFPly/7KciUh1u+mFfxTCHGv9nn2WqndGgeGjQ/kr02qmTBX7Hc1qiEvgiSz1Tz/sy7Es29wvn6FrDGPP7asXlhOaiHxOctPvTptFA1kHFUk8bME7SsTSnGbFbUrssxrq70LhoSh5OwvQna+w84XdXhZb2sloJ4ZsCg3j+PrjJL08/JBi5zGd6ud/ZxhmcGKLOXPcNunQq5ESW92iJvfsuRrNYtawWwSmNhPYoFj2QqWNF0ffLpGt/ad24RJ8vkb5sXkpyKXmvFG5Vcdzf/44k3PBL/ojJ52+kWGzOArnyp5f969oV3J2c4Li27Nkova9VwRNVKqN0V+gV+mTHitgkXV30aWd3A1RSildEleiNPA+5cp+3+T7X+xfHiRZXQ1s4FA9TxIcnveQs9JSZ5r5qNmgqlW4zMtZ6rYNvgmyVcywKtu8ZxnSbS5vXlBV+NXdIfi3+xzrnJ0TkFL+Un8v1PWOC2PPFCjVPq7qTH7mOpzOYj/b4h0ceT+eHgr97Jqhb1ziVfeANzfN8bFUhPKBi7hJBCukQnB0aGjFTYLJPXL26lQ2b80xrOD5cFWgA8hz3St0e69kwNnD3+nX3gy12FjrjO+ddRvvvfyV3SWbXcxqNHfmsb9u1TV+wHTb9B07/L2sB8WUHJ9eeNomDyysEWZ0deqEhH/oWI2oiEh526gvAK1Nx2kIhNvkYR+tPYHEa9j+nd1VBpQP1uzSjIDO+fDDB7uy029rRjDC5Sk6aKczyz1D5uA9Lu+Rrrapl8JXNL3VRllNQH2K1ZFxOpX8LprttfqQ56MbPM0IttUheXWD/mROOeFqGUbL+kUOVlXLTFX/525g4faLEFO4qWWdmOXMNvVjpIVTWt650HfQjX9oT3Dg5Au6+v1/Ci78La6ZOngYCFPT1AUwxQuZ0yt5xKdNXLaDTISMTeCj16XTryhM36K2mfGRIgot71voWs8tTpL/f1rvcwv3LSDf+/G8THCT7NpfHWcW+lsF/ol8q9Bi6MezNTqp0rpp/kJRiVfNrX/w27cRRTu8RIIqtUblBMkxy4jwAVqCjUJkiPBj2cAoVloG8B2/N5deLdMhDb7xs5nhd3dubJhuj8WbaFRyu1L678DHhhA+rMimNo4C1kGpp0tD/qnCfCFHejpf0LJX43OTr578PY0tnIIrlWyNYyuR/ie6j2xNb1OV6u0dOX/1Dtcd7+ya9W+rY2LmnyQMtk8SMLTon8RAdwOaN2tNg5zVnDKlmVeOxPV2vhHIo9QEPV7jc3f+zVDquiNg1OaHX3cZXJDRY5MJpo+VanAcmqp4oasYLG+wrXUL5vJU0kqk2hGEskhP+Jjigrz1l6QnEwp6n8PMVeJp70Ii6ppeaK9GhF6fJE00ceLyxv08tKiPat4QdxZFgSbQknnEiCLD8Qc1rjazVKM3r3gXnnMeONgdz/yFV1q+haaN+wnF3Fn4uYCI9XsKOuVwDD0LsCO/f0gj5cmxCFcr7sclIcefWjvore+3aSU474cyqDVxH7w1RX3CHsaqsMRX17ZLgjsDXws3kLm2XJdM3Ku383UXqaHqsywzPhx7NFir0Fqjym/w6cxD2U9ypa3dx7Z12w/fi3Jps8sqJ8f8Ah8aZAvkHXvIRyrsxK7rrFaNNdNvjI8+3Emri195DCNa858anj2Qdny6Czshkn4N2+1m+k5S8sunX3Ja7I+JutRzg1mc2e9Yc0Zv9PZn1SwhxIdU9sXwZRTd/J5FoUm0e+PYREeHg3oc2YYzGf2xfJxXExt4pT3RfDRHvMXLUmoXOy63xv5pLuhOEax0dRgSywZ/GH+YBXFgCeTU0hZ8SPEFsn8punp1Kurd1KgXxUZ+la3R5+4ePGR4ZF5UQtOa83+Vj8zh80dfzbhxWCeoJnQ4dkZJM4drzknZOOKx2n3WrvJnzFIS8p0xeic+M3ZRVXIp10tV2DyYKwRxLzulPwzHcLlYTxl4PF7v8l106Azr+6wBFejbq/3P72C/0j78cepY9990/d4eAurn2lqdGKLU8FffnMw7cY7pVeXJRMU73Oxwi2g2vh/+4gX8dvbjfojn/eLVhhYl8GthwCQ50KcZq4z2JeW5eeOnJWFQEnVxDoG459TaC4zXybECEoJ0V5q1tXrQbDMtUxeTV6Pdt1/zJuc7TJoV/9YZFWxUtCf6Ou3Vd/vR/vG0138hJQrHkNeoep5dLe+6umcSquKvMaFpm3EZHDBOvCi0XYyIFHMgX7Cqp3JVXlxJFwQfHSaIUEbI2u1lBVUdlNw4Qa9UsLPEK94Qiln3pyKxQVCeNlx8yd7EegVNQBkFLabKvnietYVB4IPZ1fSor82arbgYec8aSdFMaIluYTYuNx32SxfrjKUdPGq+UNp5YpydoEG3xVLixtmHO9zXxKAnHnPuH2fPGrjx0GcuCDEU+yXUtXh6nfUL+cykws1gJ5vkfYFaFBr9PdCXvVf35OJQxzUMmWjv0W6uGJK11uAGDqSpOwCf6rouSIjPVgw57cJCOQ4b9tkI/Y5WNon9Swe72aZryKo8d+HyHBEdWJKrkary0LIGczA4Irq353Wc0Zga3om7UQiAGCvIl8GGyaqz5zH+1gMP5phWUCpKtttWIyicz09vXg76GxkmiGSMQ06Z9X8BUwqOtauDbPIf4rpK/yYoeAHxJ9soXS9VDe1Aw+awOOxaN8foLrif0TXBvQ55dtRtulRq9emFDBxlQcqKCaD8NeTSE7FOHvcjf/+oKbbtRqz9gbofoc2EzQ3pL6W5JdfJzAWmOk8oeoECe90lVMruwl/ltM015P/zIPazqvdvFmLNVHMIZrwiQ2tIKtGh6PDVH+85ew3caqVt2BsDv5rOcu3G9srQWd7NmgtzCRUXLYknYRSwtH9oUtkqyN3CfP20xQ1faXQl4MEmjQehWR6GmGnkdpYNQYeIG408yAX7uCZmYUic9juOfb+Re28+OVOB+scYK4DaPcBe+5wmji9gymtkMpKo4UKqCz7yxzuN8VIlx9yNozpRJpNaWHtaZVEqP45n2JemTlYBSmNIK1FuSYAUQ1yBLnKxevrjayd+h2i8PjdB3YY6b0nr3JuOXGpPMyh4V2dslpR3DFEvgpsBLqhqLDOWP4yEvIL6f21PpA7/8B")),ec=Math.log2||(e=>Math.log(e)/Math.LN2),B7=e=>ec(e)+1|0,tc=B7(W6(C6).categories.length-1),b4=B7(W6(C6).combiningClasses.length-1),Pa=B7(W6(C6).scripts.length-1),M7=B7(W6(C6).eaw.length-1),G7=10,ac=b4+Pa+M7+G7,rc=Pa+M7+G7,nc=M7+G7;var sc=(1<<tc)-1,ic=(1<<b4)-1,fc=(1<<Pa)-1;function We(e){let x=ka.get(e);return W6(C6).categories[x>>ac&sc]}function h4(e){let x=ka.get(e);return W6(C6).combiningClasses[x>>rc&ic]}function Da(e){let x=ka.get(e);return W6(C6).scripts[x>>nc&fc]}function Fa(e){return We(e)==="Nd"}function Na(e){let x=We(e);return x==="Mn"||x==="Me"||x==="Mc"}var _t=Rx(Ra()),Wr=Rx(m4()),Q7=Rx(g4()),Fi=Rx(Ia()),Ni=Rx(X4());function ae(e,x,t,a){Object.defineProperty(e,x,{get:t,set:a,enumerable:true,configurable:true});}function At(e){return e&&e.__esModule?e.default:e}var c7={};ae(c7,"logErrors",()=>Li);ae(c7,"registerFormat",()=>Re);ae(c7,"create",()=>d7);ae(c7,"defaultLanguage",()=>tt);ae(c7,"setDefaultLanguage",()=>Xc);var Li=false,sr=[];function Re(e){sr.push(e);}function d7(e,x){for(let t=0;t<sr.length;t++){let a=sr[t];if(a.probe(e)){let r=new a(new v0(e));return x?r.getFont(x):r}}throw new Error("Unknown font format")}var tt="en";function Xc(e="en"){tt=e;}var Bi={};ae(Bi,"openSync",()=>Wc);ae(Bi,"open",()=>Kc);function Wc(e,x){let t=Di__default.default.readFileSync(e);return d7(t,x)}async function Kc(e,x,t){typeof x=="function"&&(x=null);let a=await Di__default.default.promises.readFile(e);return d7(a,x)}function j0(e,x,t){if(t.get){let a=t.get;t.get=function(){let r=a.call(this);return Object.defineProperty(this,x,{value:r}),r};}else if(typeof t.value=="function"){let a=t.value;return {get(){let r=new Map;function n(...s){let i=s.length>0?s[0]:"value";if(r.has(i))return r.get(i);let f=a.apply(this,s);return r.set(i,f),f}return Object.defineProperty(this,x,{value:n}),n}}}}var Yc=new C({firstCode:l,entryCount:l,idDelta:O,idRangeOffset:l}),Za=new C({startCharCode:_,endCharCode:_,glyphID:_}),Zc=new C({startUnicodeValue:d6,additionalCount:k}),Jc=new C({unicodeValue:d6,glyphID:l}),Qc=new g(Zc,_),xd=new g(Jc,_),ed=new C({varSelector:d6,defaultUVS:new w(_,Qc,{type:"parent"}),nonDefaultUVS:new w(_,xd,{type:"parent"})}),td=new W(l,{0:{length:l,language:l,codeMap:new n0(k,256)},2:{length:l,language:l,subHeaderKeys:new g(l,256),subHeaderCount:e=>Math.max.apply(Math,e.subHeaderKeys),subHeaders:new n0(Yc,"subHeaderCount"),glyphIndexArray:new n0(l,"subHeaderCount")},4:{length:l,language:l,segCountX2:l,segCount:e=>e.segCountX2>>1,searchRange:l,entrySelector:l,rangeShift:l,endCode:new n0(l,"segCount"),reservedPad:new h0(l),startCode:new n0(l,"segCount"),idDelta:new n0(O,"segCount"),idRangeOffset:new n0(l,"segCount"),glyphIndexArray:new n0(l,e=>(e.length-e._currentOffset)/2)},6:{length:l,language:l,firstCode:l,entryCount:l,glyphIndices:new n0(l,"entryCount")},8:{reserved:new h0(l),length:_,language:l,is32:new n0(k,8192),nGroups:_,groups:new n0(Za,"nGroups")},10:{reserved:new h0(l),length:_,language:_,firstCode:_,entryCount:_,glyphIndices:new n0(l,"numChars")},12:{reserved:new h0(l),length:_,language:_,nGroups:_,groups:new n0(Za,"nGroups")},13:{reserved:new h0(l),length:_,language:_,nGroups:_,groups:new n0(Za,"nGroups")},14:{length:_,numRecords:_,varSelectors:new n0(ed,"numRecords")}}),ad=new C({platformID:l,encodingID:l,table:new w(_,td,{type:"parent",lazy:true})}),rd=new C({version:l,numSubtables:l,tables:new g(ad,"numSubtables")}),nd=new C({version:v6,revision:v6,checkSumAdjustment:_,magicNumber:_,flags:l,unitsPerEm:l,created:new g(v6,2),modified:new g(v6,2),xMin:O,yMin:O,xMax:O,yMax:O,macStyle:new xx(l,["bold","italic","underline","outline","shadow","condensed","extended"]),lowestRecPPEM:l,fontDirectionHint:O,indexToLocFormat:O,glyphDataFormat:O}),sd=new C({version:v6,ascent:O,descent:O,lineGap:O,advanceWidthMax:l,minLeftSideBearing:O,minRightSideBearing:O,xMaxExtent:O,caretSlopeRise:O,caretSlopeRun:O,caretOffset:O,reserved:new h0(O,4),metricDataFormat:O,numberOfMetrics:l}),id=new C({advance:l,bearing:O}),fd=new C({metrics:new n0(id,e=>e.parent.hhea.numberOfMetrics),bearings:new n0(O,e=>e.parent.maxp.numGlyphs-e.parent.hhea.numberOfMetrics)}),cd=new C({version:v6,numGlyphs:l,maxPoints:l,maxContours:l,maxComponentPoints:l,maxComponentContours:l,maxZones:l,maxTwilightPoints:l,maxStorage:l,maxFunctionDefs:l,maxInstructionDefs:l,maxStackElements:l,maxSizeOfInstructions:l,maxComponentElements:l,maxComponentDepth:l});function Mi(e,x,t=0){return e===1&&W4[t]?W4[t]:ud[e][x]}var dd=new Set(["x-mac-roman","x-mac-cyrillic","iso-8859-6","iso-8859-8"]),od={"x-mac-croatian":"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\u0160\u2122\xB4\xA8\u2260\u017D\xD8\u221E\xB1\u2264\u2265\u2206\xB5\u2202\u2211\u220F\u0161\u222B\xAA\xBA\u03A9\u017E\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u0106\xAB\u010C\u2026 \xC0\xC3\xD5\u0152\u0153\u0110\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\uF8FF\xA9\u2044\u20AC\u2039\u203A\xC6\xBB\u2013\xB7\u201A\u201E\u2030\xC2\u0107\xC1\u010D\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u0111\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u03C0\xCB\u02DA\xB8\xCA\xE6\u02C7","x-mac-gaelic":"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u1E02\xB1\u2264\u2265\u1E03\u010A\u010B\u1E0A\u1E0B\u1E1E\u1E1F\u0120\u0121\u1E40\xE6\xF8\u1E41\u1E56\u1E57\u027C\u0192\u017F\u1E60\xAB\xBB\u2026 \xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\u1E61\u1E9B\xFF\u0178\u1E6A\u20AC\u2039\u203A\u0176\u0177\u1E6B\xB7\u1EF2\u1EF3\u204A\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u2663\xD2\xDA\xDB\xD9\u0131\xDD\xFD\u0174\u0175\u1E84\u1E85\u1E80\u1E81\u1E82\u1E83","x-mac-greek":"\xC4\xB9\xB2\xC9\xB3\xD6\xDC\u0385\xE0\xE2\xE4\u0384\xA8\xE7\xE9\xE8\xEA\xEB\xA3\u2122\xEE\xEF\u2022\xBD\u2030\xF4\xF6\xA6\u20AC\xF9\xFB\xFC\u2020\u0393\u0394\u0398\u039B\u039E\u03A0\xDF\xAE\xA9\u03A3\u03AA\xA7\u2260\xB0\xB7\u0391\xB1\u2264\u2265\xA5\u0392\u0395\u0396\u0397\u0399\u039A\u039C\u03A6\u03AB\u03A8\u03A9\u03AC\u039D\xAC\u039F\u03A1\u2248\u03A4\xAB\xBB\u2026 \u03A5\u03A7\u0386\u0388\u0153\u2013\u2015\u201C\u201D\u2018\u2019\xF7\u0389\u038A\u038C\u038E\u03AD\u03AE\u03AF\u03CC\u038F\u03CD\u03B1\u03B2\u03C8\u03B4\u03B5\u03C6\u03B3\u03B7\u03B9\u03BE\u03BA\u03BB\u03BC\u03BD\u03BF\u03C0\u03CE\u03C1\u03C3\u03C4\u03B8\u03C9\u03C2\u03C7\u03C5\u03B6\u03CA\u03CB\u0390\u03B0\xAD","x-mac-icelandic":"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\xDD\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u03A9\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026 \xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\u20AC\xD0\xF0\xDE\xFE\xFD\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uF8FF\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7","x-mac-inuit":"\u1403\u1404\u1405\u1406\u140A\u140B\u1431\u1432\u1433\u1434\u1438\u1439\u1449\u144E\u144F\u1450\u1451\u1455\u1456\u1466\u146D\u146E\u146F\u1470\u1472\u1473\u1483\u148B\u148C\u148D\u148E\u1490\u1491\xB0\u14A1\u14A5\u14A6\u2022\xB6\u14A7\xAE\xA9\u2122\u14A8\u14AA\u14AB\u14BB\u14C2\u14C3\u14C4\u14C5\u14C7\u14C8\u14D0\u14EF\u14F0\u14F1\u14F2\u14F4\u14F5\u1505\u14D5\u14D6\u14D7\u14D8\u14DA\u14DB\u14EA\u1528\u1529\u152A\u152B\u152D\u2026 \u152E\u153E\u1555\u1556\u1557\u2013\u2014\u201C\u201D\u2018\u2019\u1558\u1559\u155A\u155D\u1546\u1547\u1548\u1549\u154B\u154C\u1550\u157F\u1580\u1581\u1582\u1583\u1584\u1585\u158F\u1590\u1591\u1592\u1593\u1594\u1595\u1671\u1672\u1673\u1674\u1675\u1676\u1596\u15A0\u15A1\u15A2\u15A3\u15A4\u15A5\u15A6\u157C\u0141\u0142","x-mac-ce":"\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026 \u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7","x-mac-romanian":"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\u0102\u0218\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u03A9\u0103\u0219\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026 \xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\u20AC\u2039\u203A\u021A\u021B\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uF8FF\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7","x-mac-turkish":"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u03A9\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026 \xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u011E\u011F\u0130\u0131\u015E\u015F\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uF8FF\xD2\xDA\xDB\xD9\uF8A0\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},Ja=new Map;function ld(e){let x=Ja.get(e);if(x)return x;let t=od[e];if(t){let a=new Map;for(let r=0;r<t.length;r++)a.set(t.charCodeAt(r),128+r);return Ja.set(e,a),a}if(dd.has(e)){let a=new TextDecoder(e),r=new Uint8Array(128);for(let i=0;i<128;i++)r[i]=128+i;let n=new Map,s=a.decode(r);for(let i=0;i<128;i++)n.set(s.charCodeAt(i),128+i);return Ja.set(e,n),n}}var ud=[["utf-16be","utf-16be","utf-16be","utf-16be","utf-16be","utf-16be","utf-16be"],["x-mac-roman","shift-jis","big5","euc-kr","iso-8859-6","iso-8859-8","x-mac-greek","x-mac-cyrillic","x-mac-symbol","x-mac-devanagari","x-mac-gurmukhi","x-mac-gujarati","Oriya","Bengali","Tamil","Telugu","Kannada","Malayalam","Sinhalese","Burmese","Khmer","iso-8859-11","Laotian","Georgian","Armenian","gbk","Tibetan","Mongolian","Geez","x-mac-ce","Vietnamese","Sindhi"],["ascii",null,"iso-8859-1"],["symbol","utf-16be","shift-jis","gb18030","big5","euc-kr","johab",null,null,null,"utf-16be"]],W4={15:"x-mac-icelandic",17:"x-mac-turkish",18:"x-mac-croatian",24:"x-mac-ce",25:"x-mac-ce",26:"x-mac-ce",27:"x-mac-ce",28:"x-mac-ce",30:"x-mac-icelandic",37:"x-mac-romanian",38:"x-mac-ce",39:"x-mac-ce",40:"x-mac-ce",143:"x-mac-inuit",146:"x-mac-gaelic"},bd=[[],{0:"en",30:"fo",60:"ks",90:"rw",1:"fr",31:"fa",61:"ku",91:"rn",2:"de",32:"ru",62:"sd",92:"ny",3:"it",33:"zh",63:"bo",93:"mg",4:"nl",34:"nl-BE",64:"ne",94:"eo",5:"sv",35:"ga",65:"sa",128:"cy",6:"es",36:"sq",66:"mr",129:"eu",7:"da",37:"ro",67:"bn",130:"ca",8:"pt",38:"cz",68:"as",131:"la",9:"no",39:"sk",69:"gu",132:"qu",10:"he",40:"si",70:"pa",133:"gn",11:"ja",41:"yi",71:"or",134:"ay",12:"ar",42:"sr",72:"ml",135:"tt",13:"fi",43:"mk",73:"kn",136:"ug",14:"el",44:"bg",74:"ta",137:"dz",15:"is",45:"uk",75:"te",138:"jv",16:"mt",46:"be",76:"si",139:"su",17:"tr",47:"uz",77:"my",140:"gl",18:"hr",48:"kk",78:"km",141:"af",19:"zh-Hant",49:"az-Cyrl",79:"lo",142:"br",20:"ur",50:"az-Arab",80:"vi",143:"iu",21:"hi",51:"hy",81:"id",144:"gd",22:"th",52:"ka",82:"tl",145:"gv",23:"ko",53:"mo",83:"ms",146:"ga",24:"lt",54:"ky",84:"ms-Arab",147:"to",25:"pl",55:"tg",85:"am",148:"el-polyton",26:"hu",56:"tk",86:"ti",149:"kl",27:"es",57:"mn-CN",87:"om",150:"az",28:"lv",58:"mn",88:"so",151:"nn",29:"se",59:"ps",89:"sw"},[],{1078:"af",16393:"en-IN",1159:"rw",1074:"tn",1052:"sq",6153:"en-IE",1089:"sw",1115:"si",1156:"gsw",8201:"en-JM",1111:"kok",1051:"sk",1118:"am",17417:"en-MY",1042:"ko",1060:"sl",5121:"ar-DZ",5129:"en-NZ",1088:"ky",11274:"es-AR",15361:"ar-BH",13321:"en-PH",1108:"lo",16394:"es-BO",3073:"ar",18441:"en-SG",1062:"lv",13322:"es-CL",2049:"ar-IQ",7177:"en-ZA",1063:"lt",9226:"es-CO",11265:"ar-JO",11273:"en-TT",2094:"dsb",5130:"es-CR",13313:"ar-KW",2057:"en-GB",1134:"lb",7178:"es-DO",12289:"ar-LB",1033:"en",1071:"mk",12298:"es-EC",4097:"ar-LY",12297:"en-ZW",2110:"ms-BN",17418:"es-SV",6145:"ary",1061:"et",1086:"ms",4106:"es-GT",8193:"ar-OM",1080:"fo",1100:"ml",18442:"es-HN",16385:"ar-QA",1124:"fil",1082:"mt",2058:"es-MX",1025:"ar-SA",1035:"fi",1153:"mi",19466:"es-NI",10241:"ar-SY",2060:"fr-BE",1146:"arn",6154:"es-PA",7169:"aeb",3084:"fr-CA",1102:"mr",15370:"es-PY",14337:"ar-AE",1036:"fr",1148:"moh",10250:"es-PE",9217:"ar-YE",5132:"fr-LU",1104:"mn",20490:"es-PR",1067:"hy",6156:"fr-MC",2128:"mn-CN",3082:"es",1101:"as",4108:"fr-CH",1121:"ne",1034:"es",2092:"az-Cyrl",1122:"fy",1044:"nb",21514:"es-US",1068:"az",1110:"gl",2068:"nn",14346:"es-UY",1133:"ba",1079:"ka",1154:"oc",8202:"es-VE",1069:"eu",3079:"de-AT",1096:"or",2077:"sv-FI",1059:"be",1031:"de",1123:"ps",1053:"sv",2117:"bn",5127:"de-LI",1045:"pl",1114:"syr",1093:"bn-IN",4103:"de-LU",1046:"pt",1064:"tg",8218:"bs-Cyrl",2055:"de-CH",2070:"pt-PT",2143:"tzm",5146:"bs",1032:"el",1094:"pa",1097:"ta",1150:"br",1135:"kl",1131:"qu-BO",1092:"tt",1026:"bg",1095:"gu",2155:"qu-EC",1098:"te",1027:"ca",1128:"ha",3179:"qu",1054:"th",3076:"zh-HK",1037:"he",1048:"ro",1105:"bo",5124:"zh-MO",1081:"hi",1047:"rm",1055:"tr",2052:"zh",1038:"hu",1049:"ru",1090:"tk",4100:"zh-SG",1039:"is",9275:"smn",1152:"ug",1028:"zh-TW",1136:"ig",4155:"smj-NO",1058:"uk",1155:"co",1057:"id",5179:"smj",1070:"hsb",1050:"hr",1117:"iu",3131:"se-FI",1056:"ur",4122:"hr-BA",2141:"iu-Latn",1083:"se",2115:"uz-Cyrl",1029:"cs",2108:"ga",2107:"se-SE",1091:"uz",1030:"da",1076:"xh",8251:"sms",1066:"vi",1164:"prs",1077:"zu",6203:"sma-NO",1106:"cy",1125:"dv",1040:"it",7227:"sms",1160:"wo",2067:"nl-BE",2064:"it-CH",1103:"sa",1157:"sah",1043:"nl",1041:"ja",7194:"sr-Cyrl-BA",1144:"ii",3081:"en-AU",1099:"kn",3098:"sr",1130:"yo",10249:"en-BZ",1087:"kk",6170:"sr-Latn-BA",4105:"en-CA",1107:"km",2074:"sr-Latn",9225:"en-029",1158:"quc",1132:"nso"}],K4=new C({platformID:l,encodingID:l,languageID:l,nameID:l,length:l,string:new w(l,new t0("length",e=>Mi(e.platformID,e.encodingID,e.languageID)),{type:"parent",relativeTo:e=>e.parent.stringOffset,allowNull:false})}),hd=new C({length:l,tag:new w(l,new t0("length","utf16be"),{type:"parent",relativeTo:e=>e.stringOffset})}),at=new W(l,{0:{count:l,stringOffset:l,records:new g(K4,"count")},1:{count:l,stringOffset:l,records:new g(K4,"count"),langTagCount:l,langTags:new g(hd,"langTagCount")}}),pd=at,ir=["copyright","fontFamily","fontSubfamily","uniqueSubfamily","fullName","version","postscriptName","trademark","manufacturer","designer","description","vendorURL","designerURL","license","licenseURL",null,"preferredFamily","preferredSubfamily","compatibleFull","sampleText","postscriptCIDFontName","wwsFamilyName","wwsSubfamilyName"];at.process=function(e){var x={};for(let t of this.records){let a=bd[t.platformID][t.languageID];a==null&&this.langTags!=null&&t.languageID>=32768&&(a=this.langTags[t.languageID-32768].tag),a==null&&(a=t.platformID+"-"+t.languageID);let r=t.nameID>=256?"fontFeatures":ir[t.nameID]||t.nameID;x[r]==null&&(x[r]={});let n=x[r];t.nameID>=256&&(n=n[t.nameID]||(n[t.nameID]={})),(typeof t.string=="string"||typeof n[a]!="string")&&(n[a]=t.string);}this.records=x;};at.preEncode=function(){if(Array.isArray(this.records))return;this.version=0;let e=[];for(let x in this.records){let t=this.records[x];x!=="fontFeatures"&&(e.push({platformID:3,encodingID:1,languageID:1033,nameID:ir.indexOf(x),length:t.en.length*2,string:t.en}),x==="postscriptName"&&e.push({platformID:1,encodingID:0,languageID:0,nameID:ir.indexOf(x),length:t.en.length,string:t.en}));}this.records=e,this.count=e.length,this.stringOffset=at.size(this,null,false);};var Gi=new W(l,{header:{xAvgCharWidth:O,usWeightClass:l,usWidthClass:l,fsType:new xx(l,[null,"noEmbedding","viewOnly","editable",null,null,null,null,"noSubsetting","bitmapOnly"]),ySubscriptXSize:O,ySubscriptYSize:O,ySubscriptXOffset:O,ySubscriptYOffset:O,ySuperscriptXSize:O,ySuperscriptYSize:O,ySuperscriptXOffset:O,ySuperscriptYOffset:O,yStrikeoutSize:O,yStrikeoutPosition:O,sFamilyClass:O,panose:new g(k,10),ulCharRange:new g(_,4),vendorID:new t0(4),fsSelection:new xx(l,["italic","underscore","negative","outlined","strikeout","bold","regular","useTypoMetrics","wws","oblique"]),usFirstCharIndex:l,usLastCharIndex:l},0:{},1:{typoAscender:O,typoDescender:O,typoLineGap:O,winAscent:l,winDescent:l,codePageRange:new g(_,2)},2:{typoAscender:O,typoDescender:O,typoLineGap:O,winAscent:l,winDescent:l,codePageRange:new g(_,2),xHeight:O,capHeight:O,defaultChar:l,breakChar:l,maxContent:l},5:{typoAscender:O,typoDescender:O,typoLineGap:O,winAscent:l,winDescent:l,codePageRange:new g(_,2),xHeight:O,capHeight:O,defaultChar:l,breakChar:l,maxContent:l,usLowerOpticalPointSize:l,usUpperOpticalPointSize:l}}),Qa=Gi.versions;Qa[3]=Qa[4]=Qa[2];var md=Gi,gd=new W(A0,{header:{italicAngle:A0,underlinePosition:O,underlineThickness:O,isFixedPitch:_,minMemType42:_,maxMemType42:_,minMemType1:_,maxMemType1:_},1:{},2:{numberOfGlyphs:l,glyphNameIndex:new g(l,"numberOfGlyphs"),names:new g(new t0(k))},2.5:{numberOfGlyphs:l,offsets:new g(k,"numberOfGlyphs")},3:{},4:{map:new g(_,e=>e.parent.maxp.numGlyphs)}}),yd=new C({controlValues:new g(O)}),wd=new C({instructions:new g(k)}),Kr=new W("head.indexToLocFormat",{0:{offsets:new g(l)},1:{offsets:new g(_)}});Kr.process=function(){if(this.version===0&&!this._processed){for(let e=0;e<this.offsets.length;e++)this.offsets[e]<<=1;this._processed=true;}};Kr.preEncode=function(){if(this.version===0&&this._processed!==false){for(let e=0;e<this.offsets.length;e++)this.offsets[e]>>>=1;this._processed=false;}};var vd=Kr,_d=new C({controlValueProgram:new g(k)}),Ad=new g(new rx),wx=class{getCFFVersion(x){for(;x&&!x.hdrSize;)x=x.parent;return x?x.version:-1}decode(x,t){let r=this.getCFFVersion(t)>=2?x.readUInt32BE():x.readUInt16BE();if(r===0)return [];let n=x.readUInt8(),s;if(n===1)s=k;else if(n===2)s=l;else if(n===3)s=d6;else if(n===4)s=_;else throw new Error(`Bad offset size in CFFIndex: ${n} ${x.pos}`);let i=[],f=x.pos+(r+1)*n-1,c=s.decode(x);for(let d=0;d<r;d++){let o=s.decode(x);if(this.type!=null){let u=x.pos;x.pos=f+c,t.length=o-c,i.push(this.type.decode(x,t)),x.pos=u;}else i.push({offset:f+c,length:o-c});c=o;}return x.pos=f+c,i}size(x,t){let a=2;if(x.length===0)return a;let r=this.type||new rx,n=1;for(let i=0;i<x.length;i++){let f=x[i];n+=r.size(f,t);}let s;if(n<=255)s=k;else if(n<=65535)s=l;else if(n<=16777215)s=d6;else if(n<=4294967295)s=_;else throw new Error("Bad offset in CFFIndex");return a+=1+s.size()*(x.length+1),a+=n-1,a}encode(x,t,a){if(x.writeUInt16BE(t.length),t.length===0)return;let r=this.type||new rx,n=[],s=1;for(let f of t){let c=r.size(f,a);n.push(c),s+=c;}let i;if(s<=255)i=k;else if(s<=65535)i=l;else if(s<=16777215)i=d6;else if(s<=4294967295)i=_;else throw new Error("Bad offset in CFFIndex");x.writeUInt8(i.size()),s=1,i.encode(x,s);for(let f of n)s+=f,i.encode(x,s);for(let f of t)r.encode(x,f,a);}constructor(x){this.type=x;}},Ye=15,Y4=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"],Z4={".":10,E:11,"E-":12,"-":14},Qe=class{static decode(x,t){if(32<=t&&t<=246)return t-139;if(247<=t&&t<=250)return (t-247)*256+x.readUInt8()+108;if(251<=t&&t<=254)return -(t-251)*256-x.readUInt8()-108;if(t===28)return x.readInt16BE();if(t===29)return x.readInt32BE();if(t===30){let a="";for(;;){let r=x.readUInt8(),n=r>>4;if(n===Ye)break;a+=Y4[n];let s=r&15;if(s===Ye)break;a+=Y4[s];}return parseFloat(a)}return null}static size(x){if(x.forceLarge&&(x=32768),(x|0)!==x){let t=""+x;return 1+Math.ceil((t.length+1)/2)}else return -107<=x&&x<=107?1:108<=x&&x<=1131||-1131<=x&&x<=-108?2:-32768<=x&&x<=32767?3:5}static encode(x,t){let a=Number(t);if(t.forceLarge)return x.writeUInt8(29),x.writeInt32BE(a);if((a|0)!==a){x.writeUInt8(30);let n=""+a;for(let s=0;s<n.length;s+=2){let i=n[s],f=Z4[i]||+i;if(s===n.length-1)var r=Ye;else {let c=n[s+1];var r=Z4[c]||+c;}x.writeUInt8(f<<4|r&15);}if(r!==Ye)return x.writeUInt8(Ye<<4)}else return -107<=a&&a<=107?x.writeUInt8(a+139):108<=a&&a<=1131?(a-=108,x.writeUInt8((a>>8)+247),x.writeUInt8(a&255)):-1131<=a&&a<=-108?(a=-a-108,x.writeUInt8((a>>8)+251),x.writeUInt8(a&255)):-32768<=a&&a<=32767?(x.writeUInt8(28),x.writeInt16BE(a)):(x.writeUInt8(29),x.writeInt32BE(a))}},Se=class{decodeOperands(x,t,a,r){if(Array.isArray(x))return r.map((n,s)=>this.decodeOperands(x[s],t,a,[n]));if(x.decode!=null)return x.decode(t,a,r);switch(x){case "number":case "offset":case "sid":return r[0];case "boolean":return !!r[0];default:return r}}encodeOperands(x,t,a,r){return Array.isArray(x)?r.map((n,s)=>this.encodeOperands(x[s],t,a,n)[0]):x.encode!=null?x.encode(t,r,a):typeof r=="number"?[r]:typeof r=="boolean"?[+r]:Array.isArray(r)?r:[r]}decode(x,t){let a=x.pos+t.length,r={},n=[];Object.defineProperties(r,{parent:{value:t},_startOffset:{value:x.pos}});for(let s in this.fields){let i=this.fields[s];r[i[1]]=i[3];}for(;x.pos<a;){let s=x.readUInt8();if(s<28){s===12&&(s=s<<8|x.readUInt8());let i=this.fields[s];if(!i)throw new Error(`Unknown operator ${s}`);let f=this.decodeOperands(i[2],x,r,n);f!=null&&(f instanceof _6?Object.defineProperty(r,i[1],f):r[i[1]]=f),n=[];}else n.push(Qe.decode(x,s));}return r}size(x,t,a=true){let r={parent:t,val:x,pointerSize:0,startOffset:t.startOffset||0},n=0;for(let s in this.fields){let i=this.fields[s],f=x[i[1]];if(f==null||(0, nr.default)(f,i[3]))continue;let c=this.encodeOperands(i[2],null,r,f);for(let o of c)n+=Qe.size(o);let d=Array.isArray(i[0])?i[0]:[i[0]];n+=d.length;}return a&&(n+=r.pointerSize),n}encode(x,t,a){let r={pointers:[],startOffset:x.pos,parent:a,val:t,pointerSize:0};r.pointerOffset=x.pos+this.size(t,r,false);for(let s of this.ops){let i=t[s[1]];if(i==null||(0, nr.default)(i,s[3]))continue;let f=this.encodeOperands(s[2],x,r,i);for(let d of f)Qe.encode(x,d);let c=Array.isArray(s[0])?s[0]:[s[0]];for(let d of c)x.writeUInt8(d);}let n=0;for(;n<r.pointers.length;){let s=r.pointers[n++];s.type.encode(x,s.val,s.parent);}}constructor(x=[]){this.ops=x,this.fields={};for(let t of x){let a=Array.isArray(t[0])?t[0][0]<<8|t[0][1]:t[0];this.fields[a]=t;}}},ox=class extends w{decode(x,t,a){return this.offsetType={decode:()=>a[0]},super.decode(x,t,a)}encode(x,t,a){if(!x)return this.offsetType={size:()=>0},this.size(t,a),[new rt(0)];let r=null;return this.offsetType={encode:(n,s)=>r=s},super.encode(x,t,a),[new rt(r)]}constructor(x,t={}){t.type==null&&(t.type="global"),super(null,x,t);}},rt=class{valueOf(){return this.val}constructor(x){this.val=x,this.forceLarge=true;}},fr=class{static decode(x,t,a){let r=a.pop();for(;a.length>r;)a.pop();}},cr=new Se([[6,"BlueValues","delta",null],[7,"OtherBlues","delta",null],[8,"FamilyBlues","delta",null],[9,"FamilyOtherBlues","delta",null],[[12,9],"BlueScale","number",.039625],[[12,10],"BlueShift","number",7],[[12,11],"BlueFuzz","number",1],[10,"StdHW","number",null],[11,"StdVW","number",null],[[12,12],"StemSnapH","delta",null],[[12,13],"StemSnapV","delta",null],[[12,14],"ForceBold","boolean",false],[[12,17],"LanguageGroup","number",0],[[12,18],"ExpansionFactor","number",.06],[[12,19],"initialRandomSeed","number",0],[20,"defaultWidthX","number",0],[21,"nominalWidthX","number",0],[22,"vsindex","number",0],[23,"blend",fr,null],[19,"Subrs",new ox(new wx,{type:"local"}),null]]),xt=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"],Ui=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls"],Cd=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],ji=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron"],Sd=[".notdef","space","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],$d=[".notdef","space","dollaroldstyle","dollarsuperior","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","hyphensuperior","colonmonetary","onefitted","rupiah","centoldstyle","figuredash","hypheninferior","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior"],qi=new C({reserved:new h0(l),reqFeatureIndex:l,featureCount:l,featureIndexes:new g(l,"featureCount")}),Id=new C({tag:new t0(4),langSys:new w(l,qi,{type:"parent"})}),Ed=new C({defaultLangSys:new w(l,qi),count:l,langSysRecords:new g(Id,"count")}),Od=new C({tag:new t0(4),script:new w(l,Ed,{type:"parent"})}),zi=new g(Od,l),Td=new C({version:l,nameID:l}),Hi=new C({featureParams:new w(l,Td),lookupCount:l,lookupListIndexes:new g(l,"lookupCount")}),Rd=new C({tag:new t0(4),feature:new w(l,Hi,{type:"parent"})}),Vi=new g(Rd,l),kd=new C({markAttachmentType:k,flags:new xx(k,["rightToLeft","ignoreBaseGlyphs","ignoreLigatures","ignoreMarks","useMarkFilteringSet"])});function nt(e){let x=new C({lookupType:l,flags:kd,subTableCount:l,subTables:new g(new w(l,e),"subTableCount"),markFilteringSet:new A6(l,t=>t.flags.flags.useMarkFilteringSet)});return new n0(new w(l,x),l)}var Pd=new C({start:l,end:l,startCoverageIndex:l}),o0=new W(l,{1:{glyphCount:l,glyphs:new g(l,"glyphCount")},2:{rangeCount:l,rangeRecords:new g(Pd,"rangeCount")}}),Dd=new C({start:l,end:l,class:l}),T6=new W(l,{1:{startGlyph:l,glyphCount:l,classValueArray:new g(l,"glyphCount")},2:{classRangeCount:l,classRangeRecord:new g(Dd,"classRangeCount")}}),O6=new C({a:l,b:l,deltaFormat:l}),o7=new C({sequenceIndex:l,lookupListIndex:l}),Fd=new C({glyphCount:l,lookupCount:l,input:new g(l,e=>e.glyphCount-1),lookupRecords:new g(o7,"lookupCount")}),Nd=new g(new w(l,Fd),l),Ld=new C({glyphCount:l,lookupCount:l,classes:new g(l,e=>e.glyphCount-1),lookupRecords:new g(o7,"lookupCount")}),Bd=new g(new w(l,Ld),l),Xi=new W(l,{1:{coverage:new w(l,o0),ruleSetCount:l,ruleSets:new g(new w(l,Nd),"ruleSetCount")},2:{coverage:new w(l,o0),classDef:new w(l,T6),classSetCnt:l,classSet:new g(new w(l,Bd),"classSetCnt")},3:{glyphCount:l,lookupCount:l,coverages:new g(new w(l,o0),"glyphCount"),lookupRecords:new g(o7,"lookupCount")}}),Md=new C({backtrackGlyphCount:l,backtrack:new g(l,"backtrackGlyphCount"),inputGlyphCount:l,input:new g(l,e=>e.inputGlyphCount-1),lookaheadGlyphCount:l,lookahead:new g(l,"lookaheadGlyphCount"),lookupCount:l,lookupRecords:new g(o7,"lookupCount")}),J4=new g(new w(l,Md),l),Wi=new W(l,{1:{coverage:new w(l,o0),chainCount:l,chainRuleSets:new g(new w(l,J4),"chainCount")},2:{coverage:new w(l,o0),backtrackClassDef:new w(l,T6),inputClassDef:new w(l,T6),lookaheadClassDef:new w(l,T6),chainCount:l,chainClassSet:new g(new w(l,J4),"chainCount")},3:{backtrackGlyphCount:l,backtrackCoverage:new g(new w(l,o0),"backtrackGlyphCount"),inputGlyphCount:l,inputCoverage:new g(new w(l,o0),"inputGlyphCount"),lookaheadGlyphCount:l,lookaheadCoverage:new g(new w(l,o0),"lookaheadGlyphCount"),lookupCount:l,lookupRecords:new g(o7,"lookupCount")}}),x7=new Bx(16,"BE",14),Gd=new C({startCoord:x7,peakCoord:x7,endCoord:x7}),Ud=new C({axisCount:l,regionCount:l,variationRegions:new g(new g(Gd,"axisCount"),"regionCount")}),jd=new C({shortDeltas:new g(O,e=>e.parent.shortDeltaCount),regionDeltas:new g(P0,e=>e.parent.regionIndexCount-e.parent.shortDeltaCount),deltas:e=>e.shortDeltas.concat(e.regionDeltas)}),qd=new C({itemCount:l,shortDeltaCount:l,regionIndexCount:l,regionIndexes:new g(l,"regionIndexCount"),deltaSets:new g(jd,"itemCount")}),Ct=new C({format:l,variationRegionList:new w(_,Ud),variationDataCount:l,itemVariationData:new g(new w(_,qd),"variationDataCount")}),zd=new W(l,{1:{axisIndex:l,axisIndex:l,filterRangeMinValue:x7,filterRangeMaxValue:x7}}),Hd=new C({conditionCount:l,conditionTable:new g(new w(_,zd),"conditionCount")}),Vd=new C({featureIndex:l,alternateFeatureTable:new w(_,Hi,{type:"parent"})}),Xd=new C({version:A0,substitutionCount:l,substitutions:new g(Vd,"substitutionCount")}),Wd=new C({conditionSet:new w(_,Hd,{type:"parent"}),featureTableSubstitution:new w(_,Xd,{type:"parent"})}),Ki=new C({majorVersion:l,minorVersion:l,featureVariationRecordCount:_,featureVariationRecords:new g(Wd,"featureVariationRecordCount")}),st=class{decode(x,t,a){return this.predefinedOps[a[0]]?this.predefinedOps[a[0]]:this.type.decode(x,t,a)}size(x,t){return this.type.size(x,t)}encode(x,t,a){let r=this.predefinedOps.indexOf(t);return r!==-1?r:this.type.encode(x,t,a)}constructor(x,t){this.predefinedOps=x,this.type=t;}},dr=class extends Z{decode(x){return k.decode(x)&127}constructor(){super("UInt8");}},Yi=new C({first:l,nLeft:k}),Kd=new C({first:l,nLeft:l}),Yd=new W(new dr,{0:{nCodes:k,codes:new g(k,"nCodes")},1:{nRanges:k,ranges:new g(Yi,"nRanges")}}),Zd=new st([Ui,Cd],new ox(Yd,{lazy:true})),it=class extends g{decode(x,t){let a=V0(this.length,x,t),r=0,n=[];for(;r<a;){let s=this.type.decode(x,t);s.offset=r,r+=s.nLeft+1,n.push(s);}return n}},Jd=new W(k,{0:{glyphs:new g(l,e=>e.parent.CharStrings.length-1)},1:{ranges:new it(Yi,e=>e.parent.CharStrings.length-1)},2:{ranges:new it(Kd,e=>e.parent.CharStrings.length-1)}}),Qd=new st([ji,Sd,$d],new ox(Jd,{lazy:true})),xo=new C({first:l,fd:k}),eo=new C({first:_,fd:l}),Zi=new W(k,{0:{fds:new g(k,e=>e.parent.CharStrings.length)},3:{nRanges:l,ranges:new g(xo,"nRanges"),sentinel:l},4:{nRanges:_,ranges:new g(eo,"nRanges"),sentinel:_}}),xr=new ox(cr),ft=class{decode(x,t,a){return t.length=a[0],xr.decode(x,t,[a[1]])}size(x,t){return [cr.size(x,t,false),xr.size(x,t)[0]]}encode(x,t,a){return [cr.size(t,a,false),xr.encode(x,t,a)[0]]}},Ji=new Se([[18,"Private",new ft,null],[[12,38],"FontName","sid",null],[[12,7],"FontMatrix","array",[.001,0,0,.001,0,0]],[[12,5],"PaintType","number",0]]),to=new Se([[[12,30],"ROS",["sid","sid","number"],null],[0,"version","sid",null],[1,"Notice","sid",null],[[12,0],"Copyright","sid",null],[2,"FullName","sid",null],[3,"FamilyName","sid",null],[4,"Weight","sid",null],[[12,1],"isFixedPitch","boolean",false],[[12,2],"ItalicAngle","number",0],[[12,3],"UnderlinePosition","number",-100],[[12,4],"UnderlineThickness","number",50],[[12,5],"PaintType","number",0],[[12,6],"CharstringType","number",2],[[12,7],"FontMatrix","array",[.001,0,0,.001,0,0]],[13,"UniqueID","number",null],[5,"FontBBox","array",[0,0,0,0]],[[12,8],"StrokeWidth","number",0],[14,"XUID","array",null],[15,"charset",Qd,ji],[16,"Encoding",Zd,Ui],[17,"CharStrings",new ox(new wx),null],[18,"Private",new ft,null],[[12,20],"SyntheticBase","number",null],[[12,21],"PostScript","sid",null],[[12,22],"BaseFontName","sid",null],[[12,23],"BaseFontBlend","delta",null],[[12,31],"CIDFontVersion","number",0],[[12,32],"CIDFontRevision","number",0],[[12,33],"CIDFontType","number",0],[[12,34],"CIDCount","number",8720],[[12,35],"UIDBase","number",null],[[12,37],"FDSelect",new ox(Zi),null],[[12,36],"FDArray",new ox(new wx(Ji)),null],[[12,38],"FontName","sid",null]]),ao=new C({length:l,itemVariationStore:Ct}),ro=new Se([[[12,7],"FontMatrix","array",[.001,0,0,.001,0,0]],[17,"CharStrings",new ox(new wx),null],[[12,37],"FDSelect",new ox(Zi),null],[[12,36],"FDArray",new ox(new wx(Ji)),null],[24,"vstore",new ox(ao),null],[25,"maxstack","number",193]]),no=new W(us,{1:{hdrSize:k,offSize:k,nameIndex:new wx(new t0("length")),topDictIndex:new wx(to),stringIndex:new wx(new t0("length")),globalSubrIndex:new wx},2:{hdrSize:k,length:l,topDict:ro,globalSubrIndex:new wx}}),Qi=no,or=class e{static decode(x){return new e(x)}decode(){this.stream.pos;let t=Qi.decode(this.stream);for(let a in t){let r=t[a];this[a]=r;}if(this.version<2){if(this.topDictIndex.length!==1)throw new Error("Only a single font is allowed in CFF");this.topDict=this.topDictIndex[0];}return this.isCIDFont=this.topDict.ROS!=null,this}string(x){return this.version>=2?null:x<xt.length?xt[x]:this.stringIndex[x-xt.length]}get postscriptName(){return this.version<2?this.nameIndex[0]:null}get fullName(){return this.string(this.topDict.FullName)}get familyName(){return this.string(this.topDict.FamilyName)}getCharString(x){return this.stream.pos=this.topDict.CharStrings[x].offset,this.stream.readBuffer(this.topDict.CharStrings[x].length)}getGlyphName(x){if(this.version>=2||this.isCIDFont)return null;let{charset:t}=this.topDict;if(Array.isArray(t))return t[x];if(x===0)return ".notdef";switch(x-=1,t.version){case 0:return this.string(t.glyphs[x]);case 1:case 2:for(let a=0;a<t.ranges.length;a++){let r=t.ranges[a];if(r.offset<=x&&x<=r.offset+r.nLeft)return this.string(r.first+(x-r.offset))}break}return null}fdForGlyph(x){if(!this.topDict.FDSelect)return null;switch(this.topDict.FDSelect.version){case 0:return this.topDict.FDSelect.fds[x];case 3:case 4:let{ranges:t}=this.topDict.FDSelect,a=0,r=t.length-1;for(;a<=r;){let n=a+r>>1;if(x<t[n].first)r=n-1;else if(n<r&&x>=t[n+1].first)a=n+1;else return t[n].fd}default:throw new Error(`Unknown FDSelect version: ${this.topDict.FDSelect.version}`)}}privateDictForGlyph(x){if(this.topDict.FDSelect){let t=this.fdForGlyph(x);return this.topDict.FDArray[t]?this.topDict.FDArray[t].Private:null}return this.version<2?this.topDict.Private:this.topDict.FDArray[0].Private}constructor(x){this.stream=x,this.decode();}},x5=or,so=new C({glyphIndex:l,vertOriginY:O}),io=new C({majorVersion:l,minorVersion:l,defaultVertOriginY:O,numVertOriginYMetrics:l,metrics:new g(so,"numVertOriginYMetrics")}),Ae=new C({height:k,width:k,horiBearingX:P0,horiBearingY:P0,horiAdvance:k,vertBearingX:P0,vertBearingY:P0,vertAdvance:k}),X7=new C({height:k,width:k,bearingX:P0,bearingY:P0,advance:k}),Q4=new C({glyph:l,xOffset:P0,yOffset:P0}),ct=class{},e7=class{};new W("version",{1:{metrics:X7,data:ct},2:{metrics:X7,data:e7},5:{data:e7},6:{metrics:Ae,data:ct},7:{metrics:Ae,data:e7},8:{metrics:X7,pad:new h0(k),numComponents:l,components:new g(Q4,"numComponents")},9:{metrics:Ae,pad:new h0(k),numComponents:l,components:new g(Q4,"numComponents")},17:{metrics:X7,dataLen:_,data:new rx("dataLen")},18:{metrics:Ae,dataLen:_,data:new rx("dataLen")},19:{dataLen:_,data:new rx("dataLen")}});var xi=new C({ascender:P0,descender:P0,widthMax:k,caretSlopeNumerator:P0,caretSlopeDenominator:P0,caretOffset:P0,minOriginSB:P0,minAdvanceSB:P0,maxBeforeBL:P0,minAfterBL:P0,pad:new h0(P0,2)}),fo=new C({glyphCode:l,offset:l}),co=new W(l,{header:{imageFormat:l,imageDataOffset:_},1:{offsetArray:new g(_,e=>e.parent.lastGlyphIndex-e.parent.firstGlyphIndex+1)},2:{imageSize:_,bigMetrics:Ae},3:{offsetArray:new g(l,e=>e.parent.lastGlyphIndex-e.parent.firstGlyphIndex+1)},4:{numGlyphs:_,glyphArray:new g(fo,e=>e.numGlyphs+1)},5:{imageSize:_,bigMetrics:Ae,numGlyphs:_,glyphCodeArray:new g(l,"numGlyphs")}}),oo=new C({firstGlyphIndex:l,lastGlyphIndex:l,subtable:new w(_,co)}),lo=new C({indexSubTableArray:new w(_,new g(oo,1),{type:"parent"}),indexTablesSize:_,numberOfIndexSubTables:_,colorRef:_,hori:xi,vert:xi,startGlyphIndex:l,endGlyphIndex:l,ppemX:k,ppemY:k,bitDepth:k,flags:new xx(k,["horizontal","vertical"])}),uo=new C({version:_,numSizes:_,sizes:new g(lo,"numSizes")}),bo=new C({ppem:l,resolution:l,imageOffsets:new g(new w(_,"void"),e=>e.parent.parent.maxp.numGlyphs+1)}),ho=new C({version:l,flags:new xx(l,["renderOutlines"]),numImgTables:_,imageTables:new g(new w(_,bo),"numImgTables")}),po=new C({gid:l,paletteIndex:l}),mo=new C({gid:l,firstLayerIndex:l,numLayers:l}),go=new C({version:l,numBaseGlyphRecords:l,baseGlyphRecord:new w(_,new g(mo,"numBaseGlyphRecords")),layerRecords:new w(_,new g(po,"numLayerRecords"),{lazy:true}),numLayerRecords:l}),yo=new C({blue:k,green:k,red:k,alpha:k}),wo=new W(l,{header:{numPaletteEntries:l,numPalettes:l,numColorRecords:l,colorRecords:new w(_,new g(yo,"numColorRecords")),colorRecordIndices:new g(l,"numPalettes")},0:{},1:{offsetPaletteTypeArray:new w(_,new g(_,"numPalettes")),offsetPaletteLabelArray:new w(_,new g(l,"numPalettes")),offsetPaletteEntryLabelArray:new w(_,new g(l,"numPaletteEntries"))}}),r7=new W(l,{1:{coordinate:O},2:{coordinate:O,referenceGlyph:l,baseCoordPoint:l},3:{coordinate:O,deviceTable:new w(l,O6)}}),vo=new C({defaultIndex:l,baseCoordCount:l,baseCoords:new g(new w(l,r7),"baseCoordCount")}),_o=new C({tag:new t0(4),minCoord:new w(l,r7,{type:"parent"}),maxCoord:new w(l,r7,{type:"parent"})}),e5=new C({minCoord:new w(l,r7),maxCoord:new w(l,r7),featMinMaxCount:l,featMinMaxRecords:new g(_o,"featMinMaxCount")}),Ao=new C({tag:new t0(4),minMax:new w(l,e5,{type:"parent"})}),Co=new C({baseValues:new w(l,vo),defaultMinMax:new w(l,e5),baseLangSysCount:l,baseLangSysRecords:new g(Ao,"baseLangSysCount")}),So=new C({tag:new t0(4),script:new w(l,Co,{type:"parent"})}),$o=new g(So,l),Io=new g(new t0(4),l),ei=new C({baseTagList:new w(l,Io),baseScriptList:new w(l,$o)}),Eo=new W(_,{header:{horizAxis:new w(l,ei),vertAxis:new w(l,ei)},65536:{},65537:{itemVariationStore:new w(_,Ct)}}),Oo=new g(l,l),To=new C({coverage:new w(l,o0),glyphCount:l,attachPoints:new g(new w(l,Oo),"glyphCount")}),Ro=new W(l,{1:{coordinate:O},2:{caretValuePoint:l},3:{coordinate:O,deviceTable:new w(l,O6)}}),ko=new g(new w(l,Ro),l),Po=new C({coverage:new w(l,o0),ligGlyphCount:l,ligGlyphs:new g(new w(l,ko),"ligGlyphCount")}),ti=new C({markSetTableFormat:l,markSetCount:l,coverage:new g(new w(_,o0),"markSetCount")}),Do=new W(_,{header:{glyphClassDef:new w(l,T6),attachList:new w(l,To),ligCaretList:new w(l,Po),markAttachClassDef:new w(l,T6)},65536:{},65538:{markGlyphSetsDef:new w(l,ti)},65539:{markGlyphSetsDef:new w(l,ti),itemVariationStore:new w(_,Ct)}}),ve=new xx(l,["xPlacement","yPlacement","xAdvance","yAdvance","xPlaDevice","yPlaDevice","xAdvDevice","yAdvDevice"]),Fo={xPlacement:O,yPlacement:O,xAdvance:O,yAdvance:O,xPlaDevice:new w(l,O6,{type:"global",relativeTo:e=>e.rel}),yPlaDevice:new w(l,O6,{type:"global",relativeTo:e=>e.rel}),xAdvDevice:new w(l,O6,{type:"global",relativeTo:e=>e.rel}),yAdvDevice:new w(l,O6,{type:"global",relativeTo:e=>e.rel})},k6=class{buildStruct(x){let t=x;for(;!t[this.key]&&t.parent;)t=t.parent;if(!t[this.key])return;let a={};a.rel=()=>t._startOffset;let r=t[this.key];for(let n in r)r[n]&&(a[n]=Fo[n]);return new C(a)}size(x,t){return this.buildStruct(t).size(x,t)}decode(x,t){let a=this.buildStruct(t).decode(x,t);return delete a.rel,a}constructor(x="valueFormat"){this.key=x;}},No=new C({secondGlyph:l,value1:new k6("valueFormat1"),value2:new k6("valueFormat2")}),Lo=new g(No,l),Bo=new C({value1:new k6("valueFormat1"),value2:new k6("valueFormat2")}),n7=new W(l,{1:{xCoordinate:O,yCoordinate:O},2:{xCoordinate:O,yCoordinate:O,anchorPoint:l},3:{xCoordinate:O,yCoordinate:O,xDeviceTable:new w(l,O6),yDeviceTable:new w(l,O6)}}),Mo=new C({entryAnchor:new w(l,n7,{type:"parent"}),exitAnchor:new w(l,n7,{type:"parent"})}),Go=new C({class:l,markAnchor:new w(l,n7,{type:"parent"})}),er=new g(Go,l),Uo=new g(new w(l,n7),e=>e.parent.classCount),ai=new g(Uo,l),jo=new g(new w(l,n7),e=>e.parent.parent.classCount),qo=new g(jo,l),zo=new g(new w(l,qo),l),s7=new W("lookupType",{1:new W(l,{1:{coverage:new w(l,o0),valueFormat:ve,value:new k6},2:{coverage:new w(l,o0),valueFormat:ve,valueCount:l,values:new n0(new k6,"valueCount")}}),2:new W(l,{1:{coverage:new w(l,o0),valueFormat1:ve,valueFormat2:ve,pairSetCount:l,pairSets:new n0(new w(l,Lo),"pairSetCount")},2:{coverage:new w(l,o0),valueFormat1:ve,valueFormat2:ve,classDef1:new w(l,T6),classDef2:new w(l,T6),class1Count:l,class2Count:l,classRecords:new n0(new n0(Bo,"class2Count"),"class1Count")}}),3:{format:l,coverage:new w(l,o0),entryExitCount:l,entryExitRecords:new g(Mo,"entryExitCount")},4:{format:l,markCoverage:new w(l,o0),baseCoverage:new w(l,o0),classCount:l,markArray:new w(l,er),baseArray:new w(l,ai)},5:{format:l,markCoverage:new w(l,o0),ligatureCoverage:new w(l,o0),classCount:l,markArray:new w(l,er),ligatureArray:new w(l,zo)},6:{format:l,mark1Coverage:new w(l,o0),mark2Coverage:new w(l,o0),classCount:l,mark1Array:new w(l,er),mark2Array:new w(l,ai)},7:Xi,8:Wi,9:{posFormat:l,lookupType:l,extension:new w(_,null)}});s7.versions[9].extension.type=s7;var Ho=new W(_,{header:{scriptList:new w(l,zi),featureList:new w(l,Vi),lookupList:new w(l,new nt(s7))},65536:{},65537:{featureVariations:new w(_,Ki)}}),t5=new g(l,l),Vo=t5,Xo=new C({glyph:l,compCount:l,components:new g(l,e=>e.compCount-1)}),Wo=new g(new w(l,Xo),l),lr=new W("lookupType",{1:new W(l,{1:{coverage:new w(l,o0),deltaGlyphID:O},2:{coverage:new w(l,o0),glyphCount:l,substitute:new n0(l,"glyphCount")}}),2:{substFormat:l,coverage:new w(l,o0),count:l,sequences:new n0(new w(l,t5),"count")},3:{substFormat:l,coverage:new w(l,o0),count:l,alternateSet:new n0(new w(l,Vo),"count")},4:{substFormat:l,coverage:new w(l,o0),count:l,ligatureSets:new n0(new w(l,Wo),"count")},5:Xi,6:Wi,7:{substFormat:l,lookupType:l,extension:new w(_,null)},8:{substFormat:l,coverage:new w(l,o0),backtrackCoverage:new g(new w(l,o0),"backtrackGlyphCount"),lookaheadGlyphCount:l,lookaheadCoverage:new g(new w(l,o0),"lookaheadGlyphCount"),glyphCount:l,substitutes:new g(l,"glyphCount")}});lr.versions[7].extension.type=lr;var Ko=new W(_,{header:{scriptList:new w(l,zi),featureList:new w(l,Vi),lookupList:new w(l,new nt(lr))},65536:{},65537:{featureVariations:new w(_,Ki)}}),I6=new g(l,l),Yo=new C({shrinkageEnableGSUB:new w(l,I6),shrinkageDisableGSUB:new w(l,I6),shrinkageEnableGPOS:new w(l,I6),shrinkageDisableGPOS:new w(l,I6),shrinkageJstfMax:new w(l,new nt(s7)),extensionEnableGSUB:new w(l,I6),extensionDisableGSUB:new w(l,I6),extensionEnableGPOS:new w(l,I6),extensionDisableGPOS:new w(l,I6),extensionJstfMax:new w(l,new nt(s7))}),a5=new g(new w(l,Yo),l),Zo=new C({tag:new t0(4),jstfLangSys:new w(l,a5)}),Jo=new C({extenderGlyphs:new w(l,new g(l,l)),defaultLangSys:new w(l,a5),langSysCount:l,langSysRecords:new g(Zo,"langSysCount")}),Qo=new C({tag:new t0(4),script:new w(l,Jo,{type:"parent"})}),xl=new C({version:_,scriptCount:l,scriptList:new g(Qo,"scriptCount")}),ur=class{decode(x,t){switch(this.size(0,t)){case 1:return x.readUInt8();case 2:return x.readUInt16BE();case 3:return x.readUInt24BE();case 4:return x.readUInt32BE()}}size(x,t){return V0(this._size,null,t)}constructor(x){this._size=x;}},el=new C({entry:new ur(e=>((e.parent.entryFormat&48)>>4)+1),outerIndex:e=>e.entry>>(e.parent.entryFormat&15)+1,innerIndex:e=>e.entry&(1<<(e.parent.entryFormat&15)+1)-1}),tr=new C({entryFormat:l,mapCount:l,mapData:new g(el,"mapCount")}),tl=new C({majorVersion:l,minorVersion:l,itemVariationStore:new w(_,Ct),advanceWidthMapping:new w(_,tr),LSBMapping:new w(_,tr),RSBMapping:new w(_,tr)}),al=new C({format:_,length:_,offset:_}),rl=new C({reserved:new h0(l,2),cbSignature:_,signature:new rx("cbSignature")}),nl=new C({ulVersion:_,usNumSigs:l,usFlag:l,signatures:new g(al,"usNumSigs"),signatureBlocks:new g(rl,"usNumSigs")}),sl=new C({rangeMaxPPEM:l,rangeGaspBehavior:new xx(l,["grayscale","gridfit","symmetricSmoothing","symmetricGridfit"])}),il=new C({version:l,numRanges:l,gaspRanges:new g(sl,"numRanges")}),fl=new C({pixelSize:k,maximumWidth:k,widths:new g(k,e=>e.parent.parent.maxp.numGlyphs)}),cl=new C({version:l,numRecords:O,sizeDeviceRecord:v6,records:new g(fl,"numRecords")}),dl=new C({left:l,right:l,value:O}),ri=new C({firstGlyph:l,nGlyphs:l,offsets:new g(l,"nGlyphs"),max:e=>e.offsets.length&&Math.max.apply(Math,e.offsets)}),ol=new C({off:e=>e._startOffset-e.parent.parent._startOffset,len:e=>((e.parent.leftTable.max-e.off)/e.parent.rowWidth+1)*(e.parent.rowWidth/2),values:new n0(O,"len")}),ni=new W("format",{0:{nPairs:l,searchRange:l,entrySelector:l,rangeShift:l,pairs:new g(dl,"nPairs")},2:{rowWidth:l,leftTable:new w(l,ri,{type:"parent"}),rightTable:new w(l,ri,{type:"parent"}),array:new w(l,ol,{type:"parent"})},3:{glyphCount:l,kernValueCount:k,leftClassCount:k,rightClassCount:k,flags:k,kernValue:new g(O,"kernValueCount"),leftClass:new g(k,"glyphCount"),rightClass:new g(k,"glyphCount"),kernIndex:new g(k,e=>e.leftClassCount*e.rightClassCount)}}),si=new W("version",{0:{subVersion:l,length:l,format:k,coverage:new xx(k,["horizontal","minimum","crossStream","override"]),subtable:ni,padding:new h0(k,e=>e.length-e._currentOffset)},1:{length:_,coverage:new xx(k,[null,null,null,null,null,"variation","crossStream","vertical"]),format:k,tupleIndex:l,subtable:ni,padding:new h0(k,e=>e.length-e._currentOffset)}}),ll=new W(l,{0:{nTables:l,tables:new g(si,"nTables")},1:{reserved:new h0(l),nTables:_,tables:new g(si,"nTables")}}),ul=new C({version:l,numGlyphs:l,yPels:new g(k,"numGlyphs")}),bl=new C({version:l,fontNumber:_,pitch:l,xHeight:l,style:l,typeFamily:l,capHeight:l,symbolSet:l,typeface:new t0(16),characterComplement:new t0(8),fileName:new t0(6),strokeWeight:new t0(1),widthType:new t0(1),serifStyle:k,reserved:new h0(k)}),hl=new C({bCharSet:k,xRatio:k,yStartRatio:k,yEndRatio:k}),pl=new C({yPelHeight:l,yMax:O,yMin:O}),ml=new C({recs:l,startsz:k,endsz:k,entries:new g(pl,"recs")}),gl=new C({version:l,numRecs:l,numRatios:l,ratioRanges:new g(hl,"numRatios"),offsets:new g(l,"numRatios"),groups:new g(ml,"numRecs")}),yl=new C({version:l,ascent:O,descent:O,lineGap:O,advanceHeightMax:O,minTopSideBearing:O,minBottomSideBearing:O,yMaxExtent:O,caretSlopeRise:O,caretSlopeRun:O,caretOffset:O,reserved:new h0(O,4),metricDataFormat:O,numberOfMetrics:l}),wl=new C({advance:l,bearing:O}),vl=new C({metrics:new n0(wl,e=>e.parent.vhea.numberOfMetrics),bearings:new n0(O,e=>e.parent.maxp.numGlyphs-e.parent.vhea.numberOfMetrics)}),ii=new Bx(16,"BE",14),_l=new C({fromCoord:ii,toCoord:ii}),Al=new C({pairCount:l,correspondence:new g(_l,"pairCount")}),Cl=new C({version:A0,axisCount:_,segment:new g(Al,"axisCount")}),br=class{getItem(x){if(this._items[x]==null){let t=this.stream.pos;this.stream.pos=this.base+this.type.size(null,this.parent)*x,this._items[x]=this.type.decode(this.stream,this.parent),this.stream.pos=t;}return this._items[x]}inspect(){return `[UnboundedArray ${this.type.constructor.name}]`}constructor(x,t,a){this.type=x,this.stream=t,this.parent=a,this.base=this.stream.pos,this._items=[];}},vx=class extends g{decode(x,t){return new br(this.type,x,t)}constructor(x){super(x,0);}},P6=function(e=l){class x{decode(i,f){return f=f.parent.parent,this.type.decode(i,f)}size(i,f){return f=f.parent.parent,this.type.size(i,f)}encode(i,f,c){return c=c.parent.parent,this.type.encode(i,f,c)}constructor(i){this.type=i;}}e=new x(e);let t=new C({unitSize:l,nUnits:l,searchRange:l,entrySelector:l,rangeShift:l}),a=new C({lastGlyph:l,firstGlyph:l,value:e}),r=new C({lastGlyph:l,firstGlyph:l,values:new w(l,new g(e,s=>s.lastGlyph-s.firstGlyph+1),{type:"parent"})}),n=new C({glyph:l,value:e});return new W(l,{0:{values:new vx(e)},2:{binarySearchHeader:t,segments:new g(a,s=>s.binarySearchHeader.nUnits)},4:{binarySearchHeader:t,segments:new g(r,s=>s.binarySearchHeader.nUnits)},6:{binarySearchHeader:t,segments:new g(n,s=>s.binarySearchHeader.nUnits)},8:{firstGlyph:l,count:l,values:new g(e,"count")}})};function W7(e={},x=l){let t=Object.assign({newState:l,flags:l},e),a=new C(t),r=new vx(new g(l,s=>s.nClasses));return new C({nClasses:_,classTable:new w(_,new P6(x)),stateArray:new w(_,r),entryTable:new w(_,new vx(a))})}function Sl(e={},x=l){let t=new C({version(){return 8},firstGlyph:l,values:new g(k,l)}),a=Object.assign({newStateOffset:l,newState:i=>(i.newStateOffset-(i.parent.stateArray.base-i.parent._startOffset))/i.parent.nClasses,flags:l},e),r=new C(a),n=new vx(new g(k,i=>i.nClasses));return new C({nClasses:l,classTable:new w(l,t),stateArray:new w(l,n),entryTable:new w(l,new vx(r))})}var $l=new W("format",{0:{deltas:new g(O,32)},1:{deltas:new g(O,32),mappingData:new P6(l)},2:{standardGlyph:l,controlPoints:new g(l,32)},3:{standardGlyph:l,controlPoints:new g(l,32),mappingData:new P6(l)}}),Il=new C({version:A0,format:l,defaultBaseline:l,subtable:$l}),El=new C({setting:l,nameIndex:O,name:e=>e.parent.parent.parent.name.records.fontFeatures[e.nameIndex]}),Ol=new C({feature:l,nSettings:l,settingTable:new w(_,new g(El,"nSettings"),{type:"parent"}),featureFlags:new xx(k,[null,null,null,null,null,null,"hasDefault","exclusive"]),defaultSetting:k,nameIndex:O,name:e=>e.parent.parent.name.records.fontFeatures[e.nameIndex]}),Tl=new C({version:A0,featureNameCount:l,reserved1:new h0(l),reserved2:new h0(_),featureNames:new g(Ol,"featureNameCount")}),Rl=new C({axisTag:new t0(4),minValue:A0,defaultValue:A0,maxValue:A0,flags:l,nameID:l,name:e=>e.parent.parent.name.records.fontFeatures[e.nameID]}),kl=new C({nameID:l,name:e=>e.parent.parent.name.records.fontFeatures[e.nameID],flags:l,coord:new g(A0,e=>e.parent.axisCount),postscriptNameID:new A6(l,e=>e.parent.instanceSize-e._currentOffset>0)}),Pl=new C({version:A0,offsetToData:l,countSizePairs:l,axisCount:l,axisSize:l,instanceCount:l,instanceSize:l,axis:new g(Rl,"axisCount"),instance:new g(kl,"instanceCount")}),Dl=new Bx(16,"BE",14),hr=class{static decode(x,t){return t.flags?x.readUInt32BE():x.readUInt16BE()*2}},Fl=new C({version:l,reserved:new h0(l),axisCount:l,globalCoordCount:l,globalCoords:new w(_,new g(new g(Dl,"axisCount"),"globalCoordCount")),glyphCount:l,flags:l,offsetToData:_,offsets:new g(new w(hr,"void",{relativeTo:e=>e.offsetToData,allowNull:false}),e=>e.glyphCount+1)}),Nl=Fl,Ll=new C({length:l,coverage:l,subFeatureFlags:_,stateTable:new Sl}),Bl=new C({justClass:_,beforeGrowLimit:A0,beforeShrinkLimit:A0,afterGrowLimit:A0,afterShrinkLimit:A0,growFlags:l,shrinkFlags:l}),Ml=new g(Bl,_),Gl=new W("actionType",{0:{lowerLimit:A0,upperLimit:A0,order:l,glyphs:new g(l,l)},1:{addGlyph:l},2:{substThreshold:A0,addGlyph:l,substGlyph:l},3:{},4:{variationAxis:_,minimumLimit:A0,noStretchValue:A0,maximumLimit:A0},5:{flags:l,glyph:l}}),Ul=new C({actionClass:l,actionType:l,actionLength:_,actionData:Gl,padding:new h0(k,e=>e.actionLength-e._currentOffset)}),jl=new g(Ul,_),ql=new C({lookupTable:new P6(new w(l,jl))}),fi=new C({classTable:new w(l,Ll,{type:"parent"}),wdcOffset:l,postCompensationTable:new w(l,ql,{type:"parent"}),widthDeltaClusters:new P6(new w(l,Ml,{type:"parent",relativeTo:e=>e.wdcOffset}))}),zl=new C({version:_,format:l,horizontal:new w(l,fi),vertical:new w(l,fi)}),Hl={action:l},Vl={markIndex:l,currentIndex:l},Xl={currentInsertIndex:l,markedInsertIndex:l},Wl=new C({items:new vx(new w(_,new P6))}),Kl=new W("type",{0:{stateTable:new W7},1:{stateTable:new W7(Vl),substitutionTable:new w(_,Wl)},2:{stateTable:new W7(Hl),ligatureActions:new w(_,new vx(_)),components:new w(_,new vx(l)),ligatureList:new w(_,new vx(l))},4:{lookupTable:new P6},5:{stateTable:new W7(Xl),insertionActions:new w(_,new vx(l))}}),Yl=new C({length:_,coverage:d6,type:k,subFeatureFlags:_,table:Kl,padding:new h0(k,e=>e.length-e._currentOffset)}),Zl=new C({featureType:l,featureSetting:l,enableFlags:_,disableFlags:_}),Jl=new C({defaultFlags:_,chainLength:_,nFeatureEntries:_,nSubtables:_,features:new g(Zl,"nFeatureEntries"),subtables:new g(Yl,"nSubtables")}),Ql=new C({version:l,unused:new h0(l),nChains:_,chains:new g(Jl,"nChains")}),x1=new C({left:O,top:O,right:O,bottom:O}),e1=new C({version:A0,format:l,lookupTable:new P6(x1)}),z={},dt=z;z.cmap=rd;z.head=nd;z.hhea=sd;z.hmtx=fd;z.maxp=cd;z.name=pd;z["OS/2"]=md;z.post=gd;z.fpgm=wd;z.loca=vd;z.prep=_d;z["cvt "]=yd;z.glyf=Ad;z["CFF "]=x5;z.CFF2=x5;z.VORG=io;z.EBLC=uo;z.CBLC=z.EBLC;z.sbix=ho;z.COLR=go;z.CPAL=wo;z.BASE=Eo;z.GDEF=Do;z.GPOS=Ho;z.GSUB=Ko;z.JSTF=xl;z.HVAR=tl;z.DSIG=nl;z.gasp=il;z.hdmx=cl;z.kern=ll;z.LTSH=ul;z.PCLT=bl;z.VDMX=gl;z.vhea=yl;z.vmtx=vl;z.avar=Cl;z.bsln=Il;z.feat=Tl;z.fvar=Pl;z.gvar=Nl;z.just=zl;z.morx=Ql;z.opbd=e1;var t1=new C({tag:new t0(4),checkSum:_,offset:new w(_,"void",{type:"global"}),length:_}),Yr=new C({tag:new t0(4),numTables:l,searchRange:l,entrySelector:l,rangeShift:l,tables:new g(t1,"numTables")});Yr.process=function(){let e={};for(let x of this.tables)e[x.tag]=x;this.tables=e;};Yr.preEncode=function(){if(!Array.isArray(this.tables)){let t=[];for(let a in this.tables){let r=this.tables[a];r&&t.push({tag:a,checkSum:0,offset:new le(dt[a],r),length:dt[a].size(r)});}this.tables=t;}this.tag="true",this.numTables=this.tables.length;let e=Math.floor(Math.log(this.numTables)/Math.LN2),x=Math.pow(2,e);this.searchRange=x*16,this.entrySelector=Math.log(x)/Math.LN2,this.rangeShift=this.numTables*16-this.searchRange;};var r5=Yr;function et(e,x){let t=0,a=e.length-1;for(;t<=a;){let r=t+a>>1,n=x(e[r]);if(n<0)a=r-1;else if(n>0)t=r+1;else return r}return -1}function _e(e,x){let t=[];for(;e<x;)t.push(e++);return t}var St=new TextDecoder("ascii"),ci="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Je=new Uint8Array(256);for(let e=0;e<ci.length;e++)Je[ci.charCodeAt(e)]=e;function Zr(e){let x=e.length*.75;e[e.length-1]==="="&&(x--,e[e.length-2]==="="&&x--);let t=new Uint8Array(x),a=0;for(let r=0,n=e.length;r<n;r+=4){let s=Je[e.charCodeAt(r)],i=Je[e.charCodeAt(r+1)],f=Je[e.charCodeAt(r+2)],c=Je[e.charCodeAt(r+3)];t[a++]=s<<2|i>>4,t[a++]=(i&15)<<4|f>>2,t[a++]=(f&3)<<6|c&63;}return t}var i7=class{findSubtable(x,t){for(let[a,r]of t)for(let n of x.tables)if(n.platformID===a&&n.encodingID===r)return n.table;return null}lookup(x,t){if(this.encoding)x=this.encoding.get(x)||x;else if(t){let r=this.getVariationSelector(x,t);if(r)return r}let a=this.cmap;switch(a.version){case 0:return a.codeMap.get(x)||0;case 4:{let r=0,n=a.segCount-1;for(;r<=n;){let s=r+n>>1;if(x<a.startCode.get(s))n=s-1;else if(x>a.endCode.get(s))r=s+1;else {let i=a.idRangeOffset.get(s),f;if(i===0)f=x+a.idDelta.get(s);else {let c=i/2+(x-a.startCode.get(s))-(a.segCount-s);f=a.glyphIndexArray.get(c)||0,f!==0&&(f+=a.idDelta.get(s));}return f&65535}}return 0}case 8:throw new Error("TODO: cmap format 8");case 6:case 10:return a.glyphIndices.get(x-a.firstCode)||0;case 12:case 13:{let r=0,n=a.nGroups-1;for(;r<=n;){let s=r+n>>1,i=a.groups.get(s);if(x<i.startCharCode)n=s-1;else if(x>i.endCharCode)r=s+1;else return a.version===12?i.glyphID+(x-i.startCharCode):i.glyphID}return 0}case 14:throw new Error("TODO: cmap format 14");default:throw new Error(`Unknown cmap format ${a.version}`)}}getVariationSelector(x,t){if(!this.uvs)return 0;let a=this.uvs.varSelectors.toArray(),r=et(a,s=>t-s.varSelector),n=a[r];return r!==-1&&n.defaultUVS&&(r=et(n.defaultUVS,s=>x<s.startUnicodeValue?-1:x>s.startUnicodeValue+s.additionalCount?1:0)),r!==-1&&n.nonDefaultUVS&&(r=et(n.nonDefaultUVS,s=>x-s.unicodeValue),r!==-1)?n.nonDefaultUVS[r].glyphID:0}getCharacterSet(){let x=this.cmap;switch(x.version){case 0:return _e(0,x.codeMap.length);case 4:{let t=[],a=x.endCode.toArray();for(let r=0;r<a.length;r++){let n=a[r]+1,s=x.startCode.get(r);t.push(..._e(s,n));}return t}case 8:throw new Error("TODO: cmap format 8");case 6:case 10:return _e(x.firstCode,x.firstCode+x.glyphIndices.length);case 12:case 13:{let t=[];for(let a of x.groups.toArray())t.push(..._e(a.startCharCode,a.endCharCode+1));return t}case 14:throw new Error("TODO: cmap format 14");default:throw new Error(`Unknown cmap format ${x.version}`)}}codePointsForGlyph(x){let t=this.cmap;switch(t.version){case 0:{let r=[];for(let n=0;n<256;n++)t.codeMap.get(n)===x&&r.push(n);return r}case 4:{let r=[];for(let n=0;n<t.segCount;n++){let s=t.endCode.get(n),i=t.startCode.get(n),f=t.idRangeOffset.get(n),c=t.idDelta.get(n);for(var a=i;a<=s;a++){let d=0;if(f===0)d=a+c;else {let o=f/2+(a-i)-(t.segCount-n);d=t.glyphIndexArray.get(o)||0,d!==0&&(d+=c);}d===x&&r.push(a);}}return r}case 12:{let r=[];for(let n of t.groups.toArray())x>=n.glyphID&&x<=n.glyphID+(n.endCharCode-n.startCharCode)&&r.push(n.startCharCode+(x-n.glyphID));return r}case 13:{let r=[];for(let n of t.groups.toArray())x===n.glyphID&&r.push(..._e(n.startCharCode,n.endCharCode+1));return r}default:throw new Error(`Unknown cmap format ${t.version}`)}}constructor(x){if(this.encoding=null,this.cmap=this.findSubtable(x,[[3,10],[0,6],[0,4],[3,1],[0,3],[0,2],[0,1],[0,0]]),!this.cmap)for(let t of x.tables){let a=Mi(t.platformID,t.encodingID,t.table.language-1),r=ld(a);r&&(this.cmap=t.table,this.encoding=r);}if(!this.cmap)throw new Error("Could not find a supported cmap table");this.uvs=this.findSubtable(x,[[0,5]]),this.uvs&&this.uvs.version!==14&&(this.uvs=null);}};B0([j0],i7.prototype,"getCharacterSet",null);B0([j0],i7.prototype,"codePointsForGlyph",null);var pr=class{process(x,t){for(let a=0;a<x.length-1;a++){let r=x[a].id,n=x[a+1].id;t[a].xAdvance+=this.getKerning(r,n);}}getKerning(x,t){let a=0;for(let r of this.kern.tables){if(r.coverage.crossStream)continue;switch(r.version){case 0:if(!r.coverage.horizontal)continue;break;case 1:if(r.coverage.vertical||r.coverage.variation)continue;break;default:throw new Error(`Unsupported kerning table version ${r.version}`)}let n=0,s=r.subtable;switch(r.format){case 0:let i=et(s.pairs,function(o){return x-o.left||t-o.right});i>=0&&(n=s.pairs[i].value);break;case 2:let f=0,c=0;x>=s.leftTable.firstGlyph&&x<s.leftTable.firstGlyph+s.leftTable.nGlyphs?f=s.leftTable.offsets[x-s.leftTable.firstGlyph]:f=s.array.off,t>=s.rightTable.firstGlyph&&t<s.rightTable.firstGlyph+s.rightTable.nGlyphs&&(c=s.rightTable.offsets[t-s.rightTable.firstGlyph]);let d=(f+c-s.array.off)/2;n=s.array.values.get(d);break;case 3:if(x>=s.glyphCount||t>=s.glyphCount)return 0;n=s.kernValue[s.kernIndex[s.leftClass[x]*s.rightClassCount+s.rightClass[t]]];break;default:throw new Error(`Unsupported kerning sub-table format ${r.format}`)}r.coverage.override?a=n:a+=n;}return a}constructor(x){this.kern=x.kern;}},mr=class{positionGlyphs(x,t){let a=0,r=0;for(let n=0;n<x.length;n++)x[n].isMark?r=n:(a!==r&&this.positionCluster(x,t,a,r),a=r=n);return a!==r&&this.positionCluster(x,t,a,r),t}positionCluster(x,t,a,r){let n=x[a],s=n.cbox.copy();n.codePoints.length>1&&(s.minX+=(n.codePoints.length-1)*s.width/n.codePoints.length);let i=-t[a].xAdvance,f=0,c=this.font.unitsPerEm/16;for(let d=a+1;d<=r;d++){let o=x[d],u=o.cbox,p=t[d],b=this.getCombiningClass(o.codePoints[0]);if(b!=="Not_Reordered"){switch(p.xOffset=p.yOffset=0,b){case "Double_Above":case "Double_Below":p.xOffset+=s.minX-u.width/2-u.minX;break;case "Attached_Below_Left":case "Below_Left":case "Above_Left":p.xOffset+=s.minX-u.minX;break;case "Attached_Above_Right":case "Below_Right":case "Above_Right":p.xOffset+=s.maxX-u.width-u.minX;break;default:p.xOffset+=s.minX+(s.width-u.width)/2-u.minX;}switch(b){case "Double_Below":case "Below_Left":case "Below":case "Below_Right":case "Attached_Below_Left":case "Attached_Below":(b==="Attached_Below_Left"||b==="Attached_Below")&&(s.minY+=c),p.yOffset=-s.minY-u.maxY,s.minY+=u.height;break;case "Double_Above":case "Above_Left":case "Above":case "Above_Right":case "Attached_Above":case "Attached_Above_Right":(b==="Attached_Above"||b==="Attached_Above_Right")&&(s.maxY+=c),p.yOffset=s.maxY-u.minY,s.maxY+=u.height;break}p.xAdvance=p.yAdvance=0,p.xOffset+=i,p.yOffset+=f;}else i-=p.xAdvance,f-=p.yAdvance;}}getCombiningClass(x){let t=h4(x);if((x&-256)===3584){if(t==="Not_Reordered")switch(x){case 3633:case 3636:case 3637:case 3638:case 3639:case 3655:case 3660:case 3645:case 3662:return "Above_Right";case 3761:case 3764:case 3765:case 3766:case 3767:case 3771:case 3788:case 3789:return "Above";case 3772:return "Below"}else if(x===3642)return "Below_Right"}switch(t){case "CCC10":case "CCC11":case "CCC12":case "CCC13":case "CCC14":case "CCC15":case "CCC16":case "CCC17":case "CCC18":case "CCC20":case "CCC22":return "Below";case "CCC23":return "Attached_Above";case "CCC24":return "Above_Right";case "CCC25":case "CCC19":return "Above_Left";case "CCC26":return "Above";case "CCC21":break;case "CCC27":case "CCC28":case "CCC30":case "CCC31":case "CCC33":case "CCC34":case "CCC35":case "CCC36":return "Above";case "CCC29":case "CCC32":return "Below";case "CCC103":return "Below_Right";case "CCC107":return "Above_Right";case "CCC118":return "Below";case "CCC122":return "Above";case "CCC129":case "CCC132":return "Below";case "CCC130":return "Above"}return t}constructor(x){this.font=x;}},D6=class e{get width(){return this.maxX-this.minX}get height(){return this.maxY-this.minY}addPoint(x,t){Math.abs(x)!==1/0&&(x<this.minX&&(this.minX=x),x>this.maxX&&(this.maxX=x)),Math.abs(t)!==1/0&&(t<this.minY&&(this.minY=t),t>this.maxY&&(this.maxY=t));}copy(){return new e(this.minX,this.minY,this.maxX,this.maxY)}constructor(x=1/0,t=1/0,a=-1/0,r=-1/0){this.minX=x,this.minY=t,this.maxX=a,this.maxY=r;}},$e={Caucasian_Albanian:"aghb",Arabic:"arab",Imperial_Aramaic:"armi",Armenian:"armn",Avestan:"avst",Balinese:"bali",Bamum:"bamu",Bassa_Vah:"bass",Batak:"batk",Bengali:["bng2","beng"],Bopomofo:"bopo",Brahmi:"brah",Braille:"brai",Buginese:"bugi",Buhid:"buhd",Chakma:"cakm",Canadian_Aboriginal:"cans",Carian:"cari",Cham:"cham",Cherokee:"cher",Coptic:"copt",Cypriot:"cprt",Cyrillic:"cyrl",Devanagari:["dev2","deva"],Deseret:"dsrt",Duployan:"dupl",Egyptian_Hieroglyphs:"egyp",Elbasan:"elba",Ethiopic:"ethi",Georgian:"geor",Glagolitic:"glag",Gothic:"goth",Grantha:"gran",Greek:"grek",Gujarati:["gjr2","gujr"],Gurmukhi:["gur2","guru"],Hangul:"hang",Han:"hani",Hanunoo:"hano",Hebrew:"hebr",Hiragana:"hira",Pahawh_Hmong:"hmng",Katakana_Or_Hiragana:"hrkt",Old_Italic:"ital",Javanese:"java",Kayah_Li:"kali",Katakana:"kana",Kharoshthi:"khar",Khmer:"khmr",Khojki:"khoj",Kannada:["knd2","knda"],Kaithi:"kthi",Tai_Tham:"lana",Lao:"lao ",Latin:"latn",Lepcha:"lepc",Limbu:"limb",Linear_A:"lina",Linear_B:"linb",Lisu:"lisu",Lycian:"lyci",Lydian:"lydi",Mahajani:"mahj",Mandaic:"mand",Manichaean:"mani",Mende_Kikakui:"mend",Meroitic_Cursive:"merc",Meroitic_Hieroglyphs:"mero",Malayalam:["mlm2","mlym"],Modi:"modi",Mongolian:"mong",Mro:"mroo",Meetei_Mayek:"mtei",Myanmar:["mym2","mymr"],Old_North_Arabian:"narb",Nabataean:"nbat",Nko:"nko ",Ogham:"ogam",Ol_Chiki:"olck",Old_Turkic:"orkh",Oriya:["ory2","orya"],Osmanya:"osma",Palmyrene:"palm",Pau_Cin_Hau:"pauc",Old_Permic:"perm",Phags_Pa:"phag",Inscriptional_Pahlavi:"phli",Psalter_Pahlavi:"phlp",Phoenician:"phnx",Miao:"plrd",Inscriptional_Parthian:"prti",Rejang:"rjng",Runic:"runr",Samaritan:"samr",Old_South_Arabian:"sarb",Saurashtra:"saur",Shavian:"shaw",Sharada:"shrd",Siddham:"sidd",Khudawadi:"sind",Sinhala:"sinh",Sora_Sompeng:"sora",Sundanese:"sund",Syloti_Nagri:"sylo",Syriac:"syrc",Tagbanwa:"tagb",Takri:"takr",Tai_Le:"tale",New_Tai_Lue:"talu",Tamil:["tml2","taml"],Tai_Viet:"tavt",Telugu:["tel2","telu"],Tifinagh:"tfng",Tagalog:"tglg",Thaana:"thaa",Thai:"thai",Tibetan:"tibt",Tirhuta:"tirh",Ugaritic:"ugar",Vai:"vai ",Warang_Citi:"wara",Old_Persian:"xpeo",Cuneiform:"xsux",Yi:"yi ",Inherited:"zinh",Common:"zyyy",Unknown:"zzzz"},gr={};for(let e in $e){let x=$e[e];if(Array.isArray(x))for(let t of x)gr[t]=e;else gr[x]=e;}function a1(e){return gr[e]}function r1(e){let x=e.length,t=0;for(;t<x;){let a=e.charCodeAt(t++);if(55296<=a&&a<=56319&&t<x){let n=e.charCodeAt(t);56320<=n&&n<=57343&&(t++,a=((a&1023)<<10)+(n&1023)+65536);}let r=Da(a);if(r!=="Common"&&r!=="Inherited"&&r!=="Unknown")return $e[r]}return $e.Unknown}function n1(e){for(let x=0;x<e.length;x++){let t=e[x],a=Da(t);if(a!=="Common"&&a!=="Inherited"&&a!=="Unknown")return $e[a]}return $e.Unknown}var s1={arab:true,hebr:true,syrc:true,thaa:true,cprt:true,khar:true,phnx:true,"nko ":true,lydi:true,avst:true,armi:true,phli:true,prti:true,sarb:true,orkh:true,samr:true,mand:true,merc:true,mero:true,mani:true,mend:true,nbat:true,narb:true,palm:true,phlp:true};function n5(e){return s1[e]?"rtl":"ltr"}var yr=class{get advanceWidth(){let x=0;for(let t of this.positions)x+=t.xAdvance;return x}get advanceHeight(){let x=0;for(let t of this.positions)x+=t.yAdvance;return x}get bbox(){let x=new D6,t=0,a=0;for(let r=0;r<this.glyphs.length;r++){let n=this.glyphs[r],s=this.positions[r],i=n.bbox;x.addPoint(i.minX+t+s.xOffset,i.minY+a+s.yOffset),x.addPoint(i.maxX+t+s.xOffset,i.maxY+a+s.yOffset),t+=s.xAdvance,a+=s.yAdvance;}return x}constructor(x,t,a,r,n){if(this.glyphs=x,this.positions=null,this.script=a,this.language=r||null,this.direction=n||n5(a),this.features={},Array.isArray(t))for(let s of t)this.features[s]=true;else typeof t=="object"&&(this.features=t);}},wr=class{constructor(x=0,t=0,a=0,r=0){this.xAdvance=x,this.yAdvance=t,this.xOffset=a,this.yOffset=r;}},xe={allTypographicFeatures:{code:0,exclusive:false,allTypeFeatures:0},ligatures:{code:1,exclusive:false,requiredLigatures:0,commonLigatures:2,rareLigatures:4,rebusPictures:8,diphthongLigatures:10,squaredLigatures:12,abbrevSquaredLigatures:14,symbolLigatures:16,contextualLigatures:18,historicalLigatures:20},cursiveConnection:{code:2,exclusive:true,unconnected:0,partiallyConnected:1,cursive:2},letterCase:{code:3,exclusive:true},verticalSubstitution:{code:4,exclusive:false,substituteVerticalForms:0},linguisticRearrangement:{code:5,exclusive:false,linguisticRearrangement:0},numberSpacing:{code:6,exclusive:true,monospacedNumbers:0,proportionalNumbers:1,thirdWidthNumbers:2,quarterWidthNumbers:3},smartSwash:{code:8,exclusive:false,wordInitialSwashes:0,wordFinalSwashes:2,nonFinalSwashes:8},diacritics:{code:9,exclusive:true,showDiacritics:0,hideDiacritics:1,decomposeDiacritics:2},verticalPosition:{code:10,exclusive:true,normalPosition:0,superiors:1,inferiors:2,ordinals:3,scientificInferiors:4},fractions:{code:11,exclusive:true,noFractions:0,verticalFractions:1,diagonalFractions:2},overlappingCharacters:{code:13,exclusive:false,preventOverlap:0},typographicExtras:{code:14,exclusive:false,slashedZero:4},mathematicalExtras:{code:15,exclusive:false,mathematicalGreek:10},ornamentSets:{code:16,exclusive:true,noOrnaments:0,dingbats:1,piCharacters:2,fleurons:3,decorativeBorders:4,internationalSymbols:5,mathSymbols:6},characterAlternatives:{code:17,exclusive:true,noAlternates:0},designComplexity:{code:18,exclusive:true,designLevel1:0,designLevel2:1,designLevel3:2,designLevel4:3,designLevel5:4},styleOptions:{code:19,exclusive:true,noStyleOptions:0,displayText:1,engravedText:2,illuminatedCaps:3,titlingCaps:4,tallCaps:5},characterShape:{code:20,exclusive:true,traditionalCharacters:0,simplifiedCharacters:1,JIS1978Characters:2,JIS1983Characters:3,JIS1990Characters:4,traditionalAltOne:5,traditionalAltTwo:6,traditionalAltThree:7,traditionalAltFour:8,traditionalAltFive:9,expertCharacters:10,JIS2004Characters:11,hojoCharacters:12,NLCCharacters:13,traditionalNamesCharacters:14},numberCase:{code:21,exclusive:true,lowerCaseNumbers:0,upperCaseNumbers:1},textSpacing:{code:22,exclusive:true,proportionalText:0,monospacedText:1,halfWidthText:2,thirdWidthText:3,quarterWidthText:4,altProportionalText:5,altHalfWidthText:6},transliteration:{code:23,exclusive:true,noTransliteration:0},annotation:{code:24,exclusive:true,noAnnotation:0,boxAnnotation:1,roundedBoxAnnotation:2,circleAnnotation:3,invertedCircleAnnotation:4,parenthesisAnnotation:5,periodAnnotation:6,romanNumeralAnnotation:7,diamondAnnotation:8,invertedBoxAnnotation:9,invertedRoundedBoxAnnotation:10},kanaSpacing:{code:25,exclusive:true,fullWidthKana:0,proportionalKana:1},ideographicSpacing:{code:26,exclusive:true,fullWidthIdeographs:0,proportionalIdeographs:1,halfWidthIdeographs:2},unicodeDecomposition:{code:27,exclusive:false,canonicalComposition:0,compatibilityComposition:2,transcodingComposition:4},rubyKana:{code:28,exclusive:false,rubyKana:2},CJKSymbolAlternatives:{code:29,exclusive:true,noCJKSymbolAlternatives:0,CJKSymbolAltOne:1,CJKSymbolAltTwo:2,CJKSymbolAltThree:3,CJKSymbolAltFour:4,CJKSymbolAltFive:5},ideographicAlternatives:{code:30,exclusive:true,noIdeographicAlternatives:0,ideographicAltOne:1,ideographicAltTwo:2,ideographicAltThree:3,ideographicAltFour:4,ideographicAltFive:5},CJKVerticalRomanPlacement:{code:31,exclusive:true,CJKVerticalRomanCentered:0,CJKVerticalRomanHBaseline:1},italicCJKRoman:{code:32,exclusive:false,CJKItalicRoman:2},caseSensitiveLayout:{code:33,exclusive:false,caseSensitiveLayout:0,caseSensitiveSpacing:2},alternateKana:{code:34,exclusive:false,alternateHorizKana:0,alternateVertKana:2},stylisticAlternatives:{code:35,exclusive:false,noStylisticAlternates:0,stylisticAltOne:2,stylisticAltTwo:4,stylisticAltThree:6,stylisticAltFour:8,stylisticAltFive:10,stylisticAltSix:12,stylisticAltSeven:14,stylisticAltEight:16,stylisticAltNine:18,stylisticAltTen:20,stylisticAltEleven:22,stylisticAltTwelve:24,stylisticAltThirteen:26,stylisticAltFourteen:28,stylisticAltFifteen:30,stylisticAltSixteen:32,stylisticAltSeventeen:34,stylisticAltEighteen:36,stylisticAltNineteen:38,stylisticAltTwenty:40},contextualAlternates:{code:36,exclusive:false,contextualAlternates:0,swashAlternates:2,contextualSwashAlternates:4},lowerCase:{code:37,exclusive:true,defaultLowerCase:0,lowerCaseSmallCaps:1,lowerCasePetiteCaps:2},upperCase:{code:38,exclusive:true,defaultUpperCase:0,upperCaseSmallCaps:1,upperCasePetiteCaps:2},languageTag:{code:39,exclusive:true},CJKRomanSpacing:{code:103,exclusive:true,halfWidthCJKRoman:0,proportionalCJKRoman:1,defaultCJKRoman:2,fullWidthCJKRoman:3}},P=(e,x)=>[xe[e].code,xe[e][x]],ot={rlig:P("ligatures","requiredLigatures"),clig:P("ligatures","contextualLigatures"),dlig:P("ligatures","rareLigatures"),hlig:P("ligatures","historicalLigatures"),liga:P("ligatures","commonLigatures"),hist:P("ligatures","historicalLigatures"),smcp:P("lowerCase","lowerCaseSmallCaps"),pcap:P("lowerCase","lowerCasePetiteCaps"),frac:P("fractions","diagonalFractions"),dnom:P("fractions","diagonalFractions"),numr:P("fractions","diagonalFractions"),afrc:P("fractions","verticalFractions"),case:P("caseSensitiveLayout","caseSensitiveLayout"),ccmp:P("unicodeDecomposition","canonicalComposition"),cpct:P("CJKVerticalRomanPlacement","CJKVerticalRomanCentered"),valt:P("CJKVerticalRomanPlacement","CJKVerticalRomanCentered"),swsh:P("contextualAlternates","swashAlternates"),cswh:P("contextualAlternates","contextualSwashAlternates"),curs:P("cursiveConnection","cursive"),c2pc:P("upperCase","upperCasePetiteCaps"),c2sc:P("upperCase","upperCaseSmallCaps"),init:P("smartSwash","wordInitialSwashes"),fin2:P("smartSwash","wordFinalSwashes"),medi:P("smartSwash","nonFinalSwashes"),med2:P("smartSwash","nonFinalSwashes"),fin3:P("smartSwash","wordFinalSwashes"),fina:P("smartSwash","wordFinalSwashes"),pkna:P("kanaSpacing","proportionalKana"),half:P("textSpacing","halfWidthText"),halt:P("textSpacing","altHalfWidthText"),hkna:P("alternateKana","alternateHorizKana"),vkna:P("alternateKana","alternateVertKana"),ital:P("italicCJKRoman","CJKItalicRoman"),lnum:P("numberCase","upperCaseNumbers"),onum:P("numberCase","lowerCaseNumbers"),mgrk:P("mathematicalExtras","mathematicalGreek"),calt:P("contextualAlternates","contextualAlternates"),vrt2:P("verticalSubstitution","substituteVerticalForms"),vert:P("verticalSubstitution","substituteVerticalForms"),tnum:P("numberSpacing","monospacedNumbers"),pnum:P("numberSpacing","proportionalNumbers"),sups:P("verticalPosition","superiors"),subs:P("verticalPosition","inferiors"),ordn:P("verticalPosition","ordinals"),pwid:P("textSpacing","proportionalText"),hwid:P("textSpacing","halfWidthText"),qwid:P("textSpacing","quarterWidthText"),twid:P("textSpacing","thirdWidthText"),fwid:P("textSpacing","proportionalText"),palt:P("textSpacing","altProportionalText"),trad:P("characterShape","traditionalCharacters"),smpl:P("characterShape","simplifiedCharacters"),jp78:P("characterShape","JIS1978Characters"),jp83:P("characterShape","JIS1983Characters"),jp90:P("characterShape","JIS1990Characters"),jp04:P("characterShape","JIS2004Characters"),expt:P("characterShape","expertCharacters"),hojo:P("characterShape","hojoCharacters"),nlck:P("characterShape","NLCCharacters"),tnam:P("characterShape","traditionalNamesCharacters"),ruby:P("rubyKana","rubyKana"),titl:P("styleOptions","titlingCaps"),zero:P("typographicExtras","slashedZero"),ss01:P("stylisticAlternatives","stylisticAltOne"),ss02:P("stylisticAlternatives","stylisticAltTwo"),ss03:P("stylisticAlternatives","stylisticAltThree"),ss04:P("stylisticAlternatives","stylisticAltFour"),ss05:P("stylisticAlternatives","stylisticAltFive"),ss06:P("stylisticAlternatives","stylisticAltSix"),ss07:P("stylisticAlternatives","stylisticAltSeven"),ss08:P("stylisticAlternatives","stylisticAltEight"),ss09:P("stylisticAlternatives","stylisticAltNine"),ss10:P("stylisticAlternatives","stylisticAltTen"),ss11:P("stylisticAlternatives","stylisticAltEleven"),ss12:P("stylisticAlternatives","stylisticAltTwelve"),ss13:P("stylisticAlternatives","stylisticAltThirteen"),ss14:P("stylisticAlternatives","stylisticAltFourteen"),ss15:P("stylisticAlternatives","stylisticAltFifteen"),ss16:P("stylisticAlternatives","stylisticAltSixteen"),ss17:P("stylisticAlternatives","stylisticAltSeventeen"),ss18:P("stylisticAlternatives","stylisticAltEighteen"),ss19:P("stylisticAlternatives","stylisticAltNineteen"),ss20:P("stylisticAlternatives","stylisticAltTwenty")};for(let e=1;e<=99;e++)ot[`cv${`00${e}`.slice(-2)}`]=[xe.characterAlternatives.code,e];var ee={};for(let e in ot){let x=ot[e];ee[x[0]]==null&&(ee[x[0]]={}),ee[x[0]][x[1]]=e;}function i1(e){let x={};for(let t in e){let a;(a=ot[t])&&(x[a[0]]==null&&(x[a[0]]={}),x[a[0]][a[1]]=e[t]);}return x}function di(e){let[x,t]=e;if(isNaN(x))var a=xe[x]&&xe[x].code;else var a=x;if(isNaN(t))var r=xe[x]&&xe[x][t];else var r=t;return [a,r]}function f1(e){let x={};if(Array.isArray(e))for(let t=0;t<e.length;t++){let a,r=di(e[t]);(a=ee[r[0]]&&ee[r[0]][r[1]])&&(x[a]=true);}else if(typeof e=="object")for(let t in e){let a=e[t];for(let r in a){let n,s=di([t,r]);a[r]&&(n=ee[s[0]]&&ee[s[0]][s[1]])&&(x[n]=true);}}return Object.keys(x)}var te=class{lookup(x){switch(this.table.version){case 0:return this.table.values.getItem(x);case 2:case 4:{let r=0,n=this.table.binarySearchHeader.nUnits-1;for(;r<=n;){var t=r+n>>1,a=this.table.segments[t];if(a.firstGlyph===65535)return null;if(x<a.firstGlyph)n=t-1;else if(x>a.lastGlyph)r=t+1;else return this.table.version===2?a.value:a.values[x-a.firstGlyph]}return null}case 6:{let r=0,n=this.table.binarySearchHeader.nUnits-1;for(;r<=n;){var t=r+n>>1,a=this.table.segments[t];if(a.glyph===65535)return null;if(x<a.glyph)n=t-1;else if(x>a.glyph)r=t+1;else return a.value}return null}case 8:return this.table.values[x-this.table.firstGlyph];default:throw new Error(`Unknown lookup table format: ${this.table.version}`)}}glyphsForValue(x){let t=[];switch(this.table.version){case 2:case 4:for(let a of this.table.segments)if(this.table.version===2&&a.value===x)t.push(..._e(a.firstGlyph,a.lastGlyph+1));else for(let r=0;r<a.values.length;r++)a.values[r]===x&&t.push(a.firstGlyph+r);break;case 6:for(let a of this.table.segments)a.value===x&&t.push(a.glyph);break;case 8:for(let a=0;a<this.table.values.length;a++)this.table.values[a]===x&&t.push(this.table.firstGlyph+a);break;default:throw new Error(`Unknown lookup table format: ${this.table.version}`)}return t}constructor(x){this.table=x;}};B0([j0],te.prototype,"glyphsForValue",null);var c1=0;var oi=0,li=1,ui=2;var d1=16384,vr=class{process(x,t,a){let r=c1,n=t?x.length-1:0,s=t?-1:1;for(;s===1&&n<=x.length||s===-1&&n>=-1;){let i=null,f=li,c=true;n===x.length||n===-1?f=oi:(i=x[n],i.id===65535?f=ui:(f=this.lookupTable.lookup(i.id),f==null&&(f=li)));let o=this.stateTable.stateArray.getItem(r)[f],u=this.stateTable.entryTable.getItem(o);f!==oi&&f!==ui&&(a(i,u,n),c=!(u.flags&d1)),r=u.newState,c&&(n+=s);}return x}traverse(x,t=0,a=new Set){if(a.has(t))return;a.add(t);let{nClasses:r,stateArray:n,entryTable:s}=this.stateTable,i=n.getItem(t);for(let f=4;f<r;f++){let c=i[f],d=s.getItem(c);for(let o of this.lookupTable.glyphsForValue(f))x.enter&&x.enter(o,d),d.newState!==0&&this.traverse(x,d.newState,a),x.exit&&x.exit(o,d);}}constructor(x){this.stateTable=x,this.lookupTable=new te(x.classTable);}},o1=32768,l1=8192,u1=15,bi=32768,b1=32768,h1=8192,p1=2147483648,m1=1073741824,g1=1073741823;var hi=4194304;var y1=2048,w1=1024,v1=992,_1=31,lt=class{process(x,t={}){for(let r of this.morx.chains){let n=r.defaultFlags;for(let s of r.features){let i;(i=t[s.featureType])&&(i[s.featureSetting]?(n&=s.disableFlags,n|=s.enableFlags):i[s.featureSetting]===false&&(n|=~s.disableFlags,n&=~s.enableFlags));}for(let s of r.subtables)s.subFeatureFlags&n&&this.processSubtable(s,x);}let a=x.length-1;for(;a>=0;)x[a].id===65535&&x.splice(a,1),a--;return x}processSubtable(x,t){if(this.subtable=x,this.glyphs=t,this.subtable.type===4){this.processNoncontextualSubstitutions(this.subtable,this.glyphs);return}this.ligatureStack=[],this.markedGlyph=null,this.firstGlyph=null,this.lastGlyph=null,this.markedIndex=null;let a=this.getStateMachine(x),r=this.getProcessor(),n=!!(this.subtable.coverage&hi);return a.process(this.glyphs,n,r)}getStateMachine(x){return new vr(x.table.stateTable)}getProcessor(){switch(this.subtable.type){case 0:return this.processIndicRearragement;case 1:return this.processContextualSubstitution;case 2:return this.processLigature;case 4:return this.processNoncontextualSubstitutions;case 5:return this.processGlyphInsertion;default:throw new Error(`Invalid morx subtable type: ${this.subtable.type}`)}}processIndicRearragement(x,t,a){t.flags&o1&&(this.firstGlyph=a),t.flags&l1&&(this.lastGlyph=a),A1(this.glyphs,t.flags&u1,this.firstGlyph,this.lastGlyph);}processContextualSubstitution(x,t,a){let r=this.subtable.table.substitutionTable.items;if(t.markIndex!==65535){let s=r.getItem(t.markIndex),i=new te(s);x=this.glyphs[this.markedGlyph];var n=i.lookup(x.id);n&&(this.glyphs[this.markedGlyph]=this.font.getGlyph(n,x.codePoints));}if(t.currentIndex!==65535){let s=r.getItem(t.currentIndex),i=new te(s);x=this.glyphs[a];var n=i.lookup(x.id);n&&(this.glyphs[a]=this.font.getGlyph(n,x.codePoints));}t.flags&bi&&(this.markedGlyph=a);}processLigature(x,t,a){if(t.flags&b1&&this.ligatureStack.push(a),t.flags&h1){let r=this.subtable.table.ligatureActions,n=this.subtable.table.components,s=this.subtable.table.ligatureList,i=t.action,f=false,c=0,d=[],o=[];for(;!f;){let u=this.ligatureStack.pop();d.unshift(...this.glyphs[u].codePoints);let p=r.getItem(i++);f=!!(p&p1);let b=!!(p&m1),m=(p&g1)<<2>>2;m+=this.glyphs[u].id;let v=n.getItem(m);if(c+=v,f||b){let $=s.getItem(c);this.glyphs[u]=this.font.getGlyph($,d),o.push(u),c=0,d=[];}else this.glyphs[u]=this.font.getGlyph(65535);}this.ligatureStack.push(...o);}}processNoncontextualSubstitutions(x,t,a){let r=new te(x.table.lookupTable);for(a=0;a<t.length;a++){let n=t[a];if(n.id!==65535){let s=r.lookup(n.id);s&&(t[a]=this.font.getGlyph(s,n.codePoints));}}}_insertGlyphs(x,t,a,r){let n=[];for(;a--;){let s=this.subtable.table.insertionActions.getItem(t++);n.push(this.font.getGlyph(s));}r||x++,this.glyphs.splice(x,0,...n);}processGlyphInsertion(x,t,a){if(t.flags&bi&&(this.markedIndex=a),t.markedInsertIndex!==65535){let r=(t.flags&_1)>>>5,n=!!(t.flags&w1);this._insertGlyphs(this.markedIndex,t.markedInsertIndex,r,n);}if(t.currentInsertIndex!==65535){let r=(t.flags&v1)>>>5,n=!!(t.flags&y1);this._insertGlyphs(a,t.currentInsertIndex,r,n);}}getSupportedFeatures(){let x=[];for(let t of this.morx.chains)for(let a of t.features)x.push([a.featureType,a.featureSetting]);return x}generateInputs(x){return this.inputCache||this.generateInputCache(),this.inputCache[x]||[]}generateInputCache(){this.inputCache={};for(let x of this.morx.chains){let t=x.defaultFlags;for(let a of x.subtables)a.subFeatureFlags&t&&this.generateInputsForSubtable(a);}}generateInputsForSubtable(x){if(x.type!==2)return;if(!!(x.coverage&hi))throw new Error("Reverse subtable, not supported.");this.subtable=x,this.ligatureStack=[];let a=this.getStateMachine(x),r=this.getProcessor(),n=[],s=[];this.glyphs=[],a.traverse({enter:(i,f)=>{let c=this.glyphs;s.push({glyphs:c.slice(),ligatureStack:this.ligatureStack.slice()});let d=this.font.getGlyph(i);n.push(d),c.push(n[n.length-1]),r(c[c.length-1],f,c.length-1);let o=0,u=0;for(let p=0;p<c.length&&o<=1;p++)c[p].id!==65535&&(o++,u=c[p].id);if(o===1){let p=n.map(m=>m.id),b=this.inputCache[u];b?b.push(p):this.inputCache[u]=[p];}},exit:()=>{(({glyphs:this.glyphs,ligatureStack:this.ligatureStack}=s.pop())),n.pop();}});}constructor(x){this.processIndicRearragement=this.processIndicRearragement.bind(this),this.processContextualSubstitution=this.processContextualSubstitution.bind(this),this.processLigature=this.processLigature.bind(this),this.processNoncontextualSubstitutions=this.processNoncontextualSubstitutions.bind(this),this.processGlyphInsertion=this.processGlyphInsertion.bind(this),this.font=x,this.morx=x.morx,this.inputCache=null;}};B0([j0],lt.prototype,"getStateMachine",null);function tx(e,x,t,a=false,r=false){let n=e.splice(t[0]-(t[1]-1),t[1]);r&&n.reverse();let s=e.splice(x[0],x[1],...n);return a&&s.reverse(),e.splice(t[0]-(x[1]-1),0,...s),e}function A1(e,x,t,a){switch(x){case 0:return e;case 1:return tx(e,[t,1],[a,0]);case 2:return tx(e,[t,0],[a,1]);case 3:return tx(e,[t,1],[a,1]);case 4:return tx(e,[t,2],[a,0]);case 5:return tx(e,[t,2],[a,0],true,false);case 6:return tx(e,[t,0],[a,2]);case 7:return tx(e,[t,0],[a,2],false,true);case 8:return tx(e,[t,1],[a,2]);case 9:return tx(e,[t,1],[a,2],false,true);case 10:return tx(e,[t,2],[a,1]);case 11:return tx(e,[t,2],[a,1],true,false);case 12:return tx(e,[t,2],[a,2]);case 13:return tx(e,[t,2],[a,2],true,false);case 14:return tx(e,[t,2],[a,2],false,true);case 15:return tx(e,[t,2],[a,2],true,true);default:throw new Error(`Unknown verb: ${x}`)}}var _r=class{substitute(x){x.direction==="rtl"&&x.glyphs.reverse(),this.morxProcessor.process(x.glyphs,i1(x.features));}getAvailableFeatures(x,t){return f1(this.morxProcessor.getSupportedFeatures())}stringsForGlyph(x){let t=this.morxProcessor.generateInputs(x),a=new Set;for(let r of t)this._addStrings(r,0,a,"");return a}_addStrings(x,t,a,r){let n=this.font._cmapProcessor.codePointsForGlyph(x[t]);for(let s of n){let i=r+String.fromCodePoint(s);t<x.length-1?this._addStrings(x,t+1,a,i):a.add(i);}}constructor(x){this.font=x,this.morxProcessor=new lt(x),this.fallbackPosition=false;}},Ar=class{_addFeatures(x,t){let a=this.stages.length-1,r=this.stages[a];for(let n of x)this.allFeatures[n]==null&&(r.push(n),this.allFeatures[n]=a,t&&(this.globalFeatures[n]=true));}add(x,t=true){if(this.stages.length===0&&this.stages.push([]),typeof x=="string"&&(x=[x]),Array.isArray(x))this._addFeatures(x,t);else if(typeof x=="object")this._addFeatures(x.global||[],true),this._addFeatures(x.local||[],false);else throw new Error("Unsupported argument to ShapingPlan#add")}addStage(x,t){typeof x=="function"?this.stages.push(x,[]):(this.stages.push([]),this.add(x,t));}setFeatureOverrides(x){if(Array.isArray(x))this.add(x);else if(typeof x=="object"){for(let t in x)if(x[t])this.add(t);else if(this.allFeatures[t]!=null){let a=this.stages[this.allFeatures[t]];a.splice(a.indexOf(t),1),delete this.allFeatures[t],delete this.globalFeatures[t];}}}assignGlobalFeatures(x){for(let t of x)for(let a in this.globalFeatures)t.features[a]=true;}process(x,t,a){for(let r of this.stages)typeof r=="function"?a||r(this.font,t,this):r.length>0&&x.applyFeatures(r,t,a);}constructor(x,t,a){this.font=x,this.script=t,this.direction=a,this.stages=[],this.globalFeatures={},this.allFeatures={};}},C1=["rvrn"],S1=["ccmp","locl","rlig","mark","mkmk"],$1=["frac","numr","dnom"],I1=["calt","clig","liga","rclt","curs","kern"];var E1={ltr:["ltra","ltrm"],rtl:["rtla","rtlm"]},Hx=class{static plan(x,t,a){this.planPreprocessing(x),this.planFeatures(x),this.planPostprocessing(x,a),x.assignGlobalFeatures(t),this.assignFeatures(x,t);}static planPreprocessing(x){x.add({global:[...C1,...E1[x.direction]],local:$1});}static planFeatures(x){}static planPostprocessing(x,t){x.add([...S1,...I1]),x.setFeatureOverrides(t);}static assignFeatures(x,t){for(let a=0;a<t.length;a++){let r=t[a];if(r.codePoints[0]===8260){let n=a,s=a+1;for(;n>0&&Fa(t[n-1].codePoints[0]);)t[n-1].features.numr=true,t[n-1].features.frac=true,n--;for(;s<t.length&&Fa(t[s].codePoints[0]);)t[s].features.dnom=true,t[s].features.frac=true,s++;r.features.frac=true,a=s-1;}}}};ex(Hx,"zeroMarkWidths","AFTER_GPOS");var O1=new _t.default(Zr("APABAAAAAAAAOAAAAf0BAv7tmi1MxDAUx7vtvjhAgcDgkEgEAnmXEBIMCYaEcygEiqBQ4FAkCE4ikUgMiiBJSAgSiUQSDMn9L9eSl6bddddug9t7yS/trevre+3r27pcNxZiG+yCfdCVv/9LeQxOwRm4AJegD27ALbgD9+ABPJF+z+BN/h7yDj5k/VOWX6SdmU5+wLWknggxDxaS8u0qiiX4uiz9XamQ3wzDMAzDMAzDMAzDVI/h959V/v7BMAzDMAzDMLlyNTNiMSdewVxbiA44B4/guz1qW58VYlMI0WsJ0W+N6kXw0spvPtdwhtkwnGM6uLaV4Xyzg3v3PM9DPfQ/sOg4xPWjipy31P8LTqbU304c/cLCUmWJLNB2Uz2U1KTeRKNmKHVMfbJC+/0loTZRH/W5cvEvBJPMbREkWt3FD1NcqXZBSpuE2Ad0PBehPtNrPtIEdYP+hiRt/V1jIiE69X4NT/uVZI3PUHE9bm5M7ePGdZWy951v7Nn6j8v1WWKP3mt6ttnsigx6VN7Vc0VomSSGqW2mGNP1muZPl7LfjNUaKNFtDGVf2fvE9O7VlBS5j333c5p/eeoOqcs1R/hIqDWLJ7TTlksirVT1SI7l8k4Yp+g3jafGcrU1RM6l9th80XOpnlN97bDNY4i4s61B0Si/ipa0uHMl6zqEjlFfCZm/TM8KmzQDjmuTAQ==")),pi=["isol","fina","fin2","fin3","medi","med2","init"],Cr={Non_Joining:0,Transparent:6},m0="isol",E6="fina",ar="fin2",T1="fin3",K7="medi",Y7="med2",Z7="init",e0=null,R1=[[[e0,e0,0],[e0,m0,2],[e0,m0,1],[e0,m0,2],[e0,m0,1],[e0,m0,6]],[[e0,e0,0],[e0,m0,2],[e0,m0,1],[e0,m0,2],[e0,ar,5],[e0,m0,6]],[[e0,e0,0],[e0,m0,2],[Z7,E6,1],[Z7,E6,3],[Z7,E6,4],[Z7,E6,6]],[[e0,e0,0],[e0,m0,2],[K7,E6,1],[K7,E6,3],[K7,E6,4],[K7,E6,6]],[[e0,e0,0],[e0,m0,2],[Y7,m0,1],[Y7,m0,2],[Y7,ar,5],[Y7,m0,6]],[[e0,e0,0],[e0,m0,2],[m0,m0,1],[m0,m0,2],[m0,ar,5],[m0,m0,6]],[[e0,e0,0],[e0,m0,2],[e0,m0,1],[e0,m0,2],[e0,T1,5],[e0,m0,6]]],qx=class extends Hx{static planFeatures(x){x.add(["ccmp","locl"]);for(let t=0;t<pi.length;t++){let a=pi[t];x.addStage(a,false);}x.addStage("mset");}static assignFeatures(x,t){super.assignFeatures(x,t);let a=-1,r=0,n=[];for(let i=0;i<t.length;i++){let f,c;var s=t[i];let d=k1(s.codePoints[0]);if(d===Cr.Transparent){n[i]=e0;continue}[c,f,r]=R1[r][d],c!==e0&&a!==-1&&(n[a]=c),n[i]=f,a=i;}for(let i=0;i<t.length;i++){let f;var s=t[i];(f=n[i])&&(s.features[f]=true);}}};function k1(e){let x=O1.get(e);if(x)return x-1;let t=We(e);return t==="Mn"||t==="Me"||t==="Cf"?Cr.Transparent:Cr.Non_Joining}var Sr=class{reset(x={},t=0){this.options=x,this.flags=x.flags||{},this.markAttachmentType=x.markAttachmentType||0,this.index=t;}get cur(){return this.glyphs[this.index]||null}shouldIgnore(x){return this.flags.ignoreMarks&&x.isMark||this.flags.ignoreBaseGlyphs&&x.isBase||this.flags.ignoreLigatures&&x.isLigature||this.markAttachmentType&&x.isMark&&x.markAttachmentType!==this.markAttachmentType}move(x){for(this.index+=x;0<=this.index&&this.index<this.glyphs.length&&this.shouldIgnore(this.glyphs[this.index]);)this.index+=x;return 0>this.index||this.index>=this.glyphs.length?null:this.glyphs[this.index]}next(){return this.move(1)}prev(){return this.move(-1)}peek(x=1){let t=this.index,a=this.increment(x);return this.index=t,a}peekIndex(x=1){let t=this.index;this.increment(x);let a=this.index;return this.index=t,a}increment(x=1){let t=x<0?-1:1;for(x=Math.abs(x);x--;)this.move(t);return this.glyphs[this.index]}constructor(x,t){this.glyphs=x,this.reset(t);}},P1=["DFLT","dflt","latn"],Ie=class{findScript(x){if(this.table.scriptList==null)return null;Array.isArray(x)||(x=[x]);for(let t of x)for(let a of this.table.scriptList)if(a.tag===t)return a;return null}selectScript(x,t,a){let r=false,n;if(!this.script||x!==this.scriptTag){if(n=this.findScript(x),n||(n=this.findScript(P1)),!n)return this.scriptTag;this.scriptTag=n.tag,this.script=n.script,this.language=null,this.languageTag=null,r=true;}if((!a||a!==this.direction)&&(this.direction=a||n5(x)),t&&t.length<4&&(t+=" ".repeat(4-t.length)),!t||t!==this.languageTag){this.language=null;for(let s of this.script.langSysRecords)if(s.tag===t){this.language=s.langSys,this.languageTag=s.tag;break}this.language||(this.language=this.script.defaultLangSys,this.languageTag=null),r=true;}if(r&&(this.features={},this.language))for(let s of this.language.featureIndexes){let i=this.table.featureList[s],f=this.substituteFeatureForVariations(s);this.features[i.tag]=f||i.feature;}return this.scriptTag}lookupsForFeatures(x=[],t){let a=[];for(let r of x){let n=this.features[r];if(n)for(let s of n.lookupListIndexes)t&&t.indexOf(s)!==-1||a.push({feature:r,index:s,lookup:this.table.lookupList.get(s)});}return a.sort((r,n)=>r.index-n.index),a}substituteFeatureForVariations(x){if(this.variationsIndex===-1)return null;let a=this.table.featureVariations.featureVariationRecords[this.variationsIndex].featureTableSubstitution.substitutions;for(let r of a)if(r.featureIndex===x)return r.alternateFeatureTable;return null}findVariationsIndex(x){let t=this.table.featureVariations;if(!t)return -1;let a=t.featureVariationRecords;for(let r=0;r<a.length;r++){let n=a[r].conditionSet.conditionTable;if(this.variationConditionsMatch(n,x))return r}return -1}variationConditionsMatch(x,t){return x.every(a=>{let r=a.axisIndex<t.length?t[a.axisIndex]:0;return a.filterRangeMinValue<=r&&r<=a.filterRangeMaxValue})}applyFeatures(x,t,a){let r=this.lookupsForFeatures(x);this.applyLookups(r,t,a);}applyLookups(x,t,a){this.glyphs=t,this.positions=a,this.glyphIterator=new Sr(t);for(let{feature:r,lookup:n}of x)for(this.currentFeature=r,this.glyphIterator.reset(n.flags);this.glyphIterator.index<t.length;){if(!(r in this.glyphIterator.cur.features)){this.glyphIterator.next();continue}for(let s of n.subTables)if(this.applyLookup(n.lookupType,s))break;this.glyphIterator.next();}}applyLookup(x,t){throw new Error("applyLookup must be implemented by subclasses")}applyLookupList(x){let t=this.glyphIterator.options,a=this.glyphIterator.index;for(let r of x){this.glyphIterator.reset(t,a),this.glyphIterator.increment(r.sequenceIndex);let n=this.table.lookupList.get(r.lookupListIndex);this.glyphIterator.reset(n.flags,this.glyphIterator.index);for(let s of n.subTables)if(this.applyLookup(n.lookupType,s))break}return this.glyphIterator.reset(t,a),true}coverageIndex(x,t){switch(t==null&&(t=this.glyphIterator.cur.id),x.version){case 1:return x.glyphs.indexOf(t);case 2:for(let a of x.rangeRecords)if(a.start<=t&&t<=a.end)return a.startCoverageIndex+t-a.start;break}return -1}match(x,t,a,r){let n=this.glyphIterator.index,s=this.glyphIterator.increment(x),i=0;for(;i<t.length&&s&&a(t[i],s);)r&&r.push(this.glyphIterator.index),i++,s=this.glyphIterator.next();return this.glyphIterator.index=n,i<t.length?false:r||true}sequenceMatches(x,t){return this.match(x,t,(a,r)=>a===r.id)}sequenceMatchIndices(x,t){return this.match(x,t,(a,r)=>this.currentFeature in r.features?a===r.id:false,[])}coverageSequenceMatches(x,t){return this.match(x,t,(a,r)=>this.coverageIndex(a,r.id)>=0)}getClassID(x,t){switch(t.version){case 1:let a=x-t.startGlyph;if(a>=0&&a<t.classValueArray.length)return t.classValueArray[a];break;case 2:for(let r of t.classRangeRecord)if(r.start<=x&&x<=r.end)return r.class;break}return 0}classSequenceMatches(x,t,a){return this.match(x,t,(r,n)=>r===this.getClassID(n.id,a))}applyContext(x){let t,a;switch(x.version){case 1:if(t=this.coverageIndex(x.coverage),t===-1)return false;a=x.ruleSets[t];for(let r of a)if(this.sequenceMatches(1,r.input))return this.applyLookupList(r.lookupRecords);break;case 2:if(this.coverageIndex(x.coverage)===-1||(t=this.getClassID(this.glyphIterator.cur.id,x.classDef),t===-1))return false;a=x.classSet[t];for(let r of a)if(this.classSequenceMatches(1,r.classes,x.classDef))return this.applyLookupList(r.lookupRecords);break;case 3:if(this.coverageSequenceMatches(0,x.coverages))return this.applyLookupList(x.lookupRecords);break}return false}applyChainingContext(x){let t;switch(x.version){case 1:if(t=this.coverageIndex(x.coverage),t===-1)return false;let a=x.chainRuleSets[t];for(let n of a)if(this.sequenceMatches(-n.backtrack.length,n.backtrack)&&this.sequenceMatches(1,n.input)&&this.sequenceMatches(1+n.input.length,n.lookahead))return this.applyLookupList(n.lookupRecords);break;case 2:if(this.coverageIndex(x.coverage)===-1)return false;t=this.getClassID(this.glyphIterator.cur.id,x.inputClassDef);let r=x.chainClassSet[t];if(!r)return false;for(let n of r)if(this.classSequenceMatches(-n.backtrack.length,n.backtrack,x.backtrackClassDef)&&this.classSequenceMatches(1,n.input,x.inputClassDef)&&this.classSequenceMatches(1+n.input.length,n.lookahead,x.lookaheadClassDef))return this.applyLookupList(n.lookupRecords);break;case 3:if(this.coverageSequenceMatches(-x.backtrackGlyphCount,x.backtrackCoverage)&&this.coverageSequenceMatches(0,x.inputCoverage)&&this.coverageSequenceMatches(x.inputGlyphCount,x.lookaheadCoverage))return this.applyLookupList(x.lookupRecords);break}return false}constructor(x,t){this.font=x,this.table=t,this.script=null,this.scriptTag=null,this.language=null,this.languageTag=null,this.features={},this.lookups={},this.variationsIndex=x._variationProcessor?this.findVariationsIndex(x._variationProcessor.normalizedCoords):-1,this.selectScript(),this.glyphs=[],this.positions=[],this.ligatureID=1,this.currentFeature=null;}},Ix=class e{get id(){return this._id}set id(x){this._id=x,this.substituted=true;let t=this._font.GDEF;if(t&&t.glyphClassDef){let a=Ie.prototype.getClassID(x,t.glyphClassDef);this.isBase=a===1,this.isLigature=a===2,this.isMark=a===3,this.markAttachmentType=t.markAttachClassDef?Ie.prototype.getClassID(x,t.markAttachClassDef):0;}else this.isMark=this.codePoints.length>0&&this.codePoints.every(Na),this.isBase=!this.isMark,this.isLigature=this.codePoints.length>1,this.markAttachmentType=0;}copy(){return new e(this._font,this.id,this.codePoints,this.features)}constructor(x,t,a=[],r){if(this._font=x,this.codePoints=a,this.id=t,this.features={},Array.isArray(r))for(let n=0;n<r.length;n++){let s=r[n];this.features[s]=true;}else typeof r=="object"&&Object.assign(this.features,r);this.ligatureID=null,this.ligatureComponent=null,this.isLigated=false,this.cursiveAttachment=null,this.markAttachment=null,this.shaperInfo=null,this.substituted=false,this.isMultiplied=false;}},ut=class extends Hx{static planFeatures(x){x.add(["ljmo","vjmo","tjmo"],false);}static assignFeatures(x,t){let a=0,r=0;for(;r<t.length;){let n,i=t[r].codePoints[0],f=mt(i);switch([n,a]=Z1[a][f],n){case l6:x.font.hasGlyphForCodePoint(i)||(r=f5(t,r,x.font));break;case $r:r=J1(t,r,x.font);break;case Ir:x9(t,r,x.font);break;case Er:r=e9(t,r,x.font);break}r++;}}};ex(ut,"zeroMarkWidths","NONE");var Ee=44032,s5=55204,D1=s5-Ee+1,$t=4352,It=4449,R6=4519,F1=19,bt=21,f7=28,N1=$t+F1-1,L1=It+bt-1,B1=R6+f7-1,mi=9676,M1=e=>4352<=e&&e<=4447||43360<=e&&e<=43388,G1=e=>4448<=e&&e<=4519||55216<=e&&e<=55238,U1=e=>4520<=e&&e<=4607||55243<=e&&e<=55291,j1=e=>12334<=e&&e<=12335,q1=e=>Ee<=e&&e<=s5,z1=e=>e-Ee<D1&&(e-Ee)%f7===0,H1=e=>$t<=e&&e<=N1,V1=e=>It<=e&&e<=L1,X1=e=>1<=e&&e<=B1,W1=0,K1=1,ht=2,Jr=3,pt=4,i5=5,Y1=6;function mt(e){return M1(e)?K1:G1(e)?ht:U1(e)?Jr:z1(e)?pt:q1(e)?i5:j1(e)?Y1:W1}var nx=0,l6=1,$r=2,Ir=4,Er=5,Z1=[[[nx,0],[nx,1],[nx,0],[nx,0],[l6,2],[l6,3],[Er,0]],[[nx,0],[nx,1],[$r,2],[nx,0],[l6,2],[l6,3],[Er,0]],[[nx,0],[nx,1],[nx,0],[$r,3],[l6,2],[l6,3],[Ir,0]],[[nx,0],[nx,1],[nx,0],[nx,0],[l6,2],[l6,3],[Ir,0]]];function t7(e,x,t){return new Ix(e,e.glyphForCodePoint(x).id,[x],t)}function f5(e,x,t){let a=e[x],n=a.codePoints[0]-Ee,s=R6+n%f7;n=n/f7|0;let i=$t+n/bt|0,f=It+n%bt;if(!t.hasGlyphForCodePoint(i)||!t.hasGlyphForCodePoint(f)||s!==R6&&!t.hasGlyphForCodePoint(s))return x;let c=t7(t,i,a.features);c.features.ljmo=true;let d=t7(t,f,a.features);d.features.vjmo=true;let o=[c,d];if(s>R6){let u=t7(t,s,a.features);u.features.tjmo=true,o.push(u);}return e.splice(x,1,...o),x+o.length-1}function J1(e,x,t){let a=e[x],r=e[x].codePoints[0],n=mt(r),s=e[x-1].codePoints[0],i=mt(s),f,c,d,o;if(i===pt&&n===Jr)f=s,o=a;else {n===ht?(c=e[x-1],d=a):(c=e[x-2],d=e[x-1],o=a);let p=c.codePoints[0],b=d.codePoints[0];H1(p)&&V1(b)&&(f=Ee+((p-$t)*bt+(b-It))*f7);}let u=o&&o.codePoints[0]||R6;if(f!=null&&(u===R6||X1(u))){let p=f+(u-R6);if(t.hasGlyphForCodePoint(p)){let b=i===ht?3:2;return e.splice(x-b+1,b,t7(t,p,a.features)),x-b+1}}return c&&(c.features.ljmo=true),d&&(d.features.vjmo=true),o&&(o.features.tjmo=true),i===pt?(f5(e,x-1,t),x+1):x}function Q1(e){switch(mt(e)){case pt:case i5:return 1;case ht:return 2;case Jr:return 3}}function x9(e,x,t){let a=e[x],r=e[x].codePoints[0];if(t.glyphForCodePoint(r).advanceWidth===0)return;let n=e[x-1].codePoints[0],s=Q1(n);return e.splice(x,1),e.splice(x-s,0,a)}function e9(e,x,t){let a=e[x],r=e[x].codePoints[0];if(t.hasGlyphForCodePoint(mi)){let n=t7(t,mi,a.features),s=t.glyphForCodePoint(r).advanceWidth===0?x:x+1;e.splice(s,0,n),x++;}return x}var c5={};c5=JSON.parse('{"stateTable":[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,2,3,4,5,6,7,8,9,0,10,11,11,12,13,14,15,16,17],[0,0,0,18,19,20,21,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,28,29,30,31,32,33,0,34,0,0,35,36,0,0,37,0],[0,0,0,38,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,39,0,0,0,40,41,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,43,44,44,8,9,0,0,0,0,12,43,0,0,0,0],[0,0,0,0,43,44,44,8,9,0,0,0,0,0,43,0,0,0,0],[0,0,0,45,46,47,48,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,50,0,0,51,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,52,0,0,0,0,0,0,0,0],[0,0,0,53,54,55,56,57,58,0,59,0,0,60,61,0,0,62,0],[0,0,0,4,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,63,64,0,0,40,41,0,9,0,10,0,0,0,42,0,63,0,0],[0,2,3,4,5,6,7,8,9,0,10,11,11,12,13,0,2,16,0],[0,0,0,18,65,20,21,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,0,66,67,67,8,9,0,10,0,0,0,68,0,0,0,0],[0,0,0,69,0,70,70,0,71,0,72,0,0,0,0,0,0,0,0],[0,0,0,73,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,75,0,0,0,76,77,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,79,80,80,22,23,0,0,0,0,25,79,0,0,0,0],[0,0,0,18,19,20,74,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,81,82,83,84,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,86,0,0,87,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,88,0,0,0,0,0,0,0,0],[0,0,0,18,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,89,90,0,0,76,77,0,23,0,24,0,0,0,78,0,89,0,0],[0,0,0,0,91,92,92,22,23,0,24,0,0,0,93,0,0,0,0],[0,0,0,94,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,96,0,0,0,97,98,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,35,100,0,0,0,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,0,100,0,0,0,0],[0,0,0,102,103,104,105,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,107,0,0,108,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,109,0,0,0,0,0,0,0,0],[0,0,0,28,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,110,111,0,0,97,98,0,33,0,34,0,0,0,99,0,110,0,0],[0,0,0,0,112,113,113,32,33,0,34,0,0,0,114,0,0,0,0],[0,0,0,0,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,0,0,115,116,117,118,8,9,0,10,0,0,119,120,0,0,16,0],[0,0,0,0,0,121,121,0,9,0,10,0,0,0,42,0,0,0,0],[0,39,0,122,0,123,123,8,9,0,10,0,0,0,42,0,39,0,0],[0,124,64,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,0],[0,39,0,0,0,121,125,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,126,126,8,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,46,47,48,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,47,47,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,127,127,49,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,128,127,127,49,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,129,130,131,132,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,50,0,0,0,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,134,0,0,0,0,0,0,0,0],[0,0,0,135,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,136,0,0,0,137,138,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,140,141,141,57,58,0,0,0,0,60,140,0,0,0,0],[0,0,0,0,140,141,141,57,58,0,0,0,0,0,140,0,0,0,0],[0,0,0,142,143,144,145,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,147,0,0,148,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,149,0,0,0,0,0,0,0,0],[0,0,0,53,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,150,151,0,0,137,138,0,58,0,59,0,0,0,139,0,150,0,0],[0,0,0,0,152,153,153,57,58,0,59,0,0,0,154,0,0,0,0],[0,0,0,155,116,156,157,8,9,0,10,0,0,158,120,0,0,16,0],[0,0,0,0,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,75,3,4,5,159,160,8,161,0,162,0,11,12,163,0,75,16,0],[0,0,0,0,0,40,164,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,0,165,0,0,0,0],[0,124,64,0,0,40,164,0,9,0,10,0,0,0,42,0,124,0,0],[0,0,0,0,0,70,70,0,71,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,71,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,166,0,0,167,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,168,0,0,0,0,0,0,0,0],[0,0,0,0,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,0,0,0,79,80,80,22,23,0,0,0,0,0,79,0,0,0,0],[0,0,0,169,170,171,172,22,23,0,24,0,0,173,174,0,0,27,0],[0,0,0,0,0,175,175,0,23,0,24,0,0,0,78,0,0,0,0],[0,75,0,176,0,177,177,22,23,0,24,0,0,0,78,0,75,0,0],[0,178,90,0,0,0,0,0,0,0,0,0,0,0,0,0,178,0,0],[0,75,0,0,0,175,179,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,180,180,22,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,82,83,84,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,83,83,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,181,181,85,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,182,181,181,85,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,183,184,185,186,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,86,0,0,0,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,188,0,0,0,0,0,0,0,0],[0,0,0,189,170,190,191,22,23,0,24,0,0,192,174,0,0,27,0],[0,0,0,0,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,76,193,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,0,194,0,0,0,0],[0,178,90,0,0,76,193,0,23,0,24,0,0,0,78,0,178,0,0],[0,0,0,0,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,0,100,0,0,0,0],[0,0,0,195,196,197,198,32,33,0,34,0,0,199,200,0,0,37,0],[0,0,0,0,0,201,201,0,33,0,34,0,0,0,99,0,0,0,0],[0,96,0,202,0,203,203,32,33,0,34,0,0,0,99,0,96,0,0],[0,204,111,0,0,0,0,0,0,0,0,0,0,0,0,0,204,0,0],[0,96,0,0,0,201,205,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,206,206,32,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,103,104,105,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,104,104,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,207,207,106,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,208,207,207,106,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,209,210,211,212,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,107,0,0,0,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,214,0,0,0,0,0,0,0,0],[0,0,0,215,196,216,217,32,33,0,34,0,0,218,200,0,0,37,0],[0,0,0,0,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,97,219,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,0,220,0,0,0,0],[0,204,111,0,0,97,219,0,33,0,34,0,0,0,99,0,204,0,0],[0,0,0,221,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,223,0,0,0,40,224,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,119,225,0,0,0,0],[0,0,0,115,116,117,222,8,9,0,10,0,0,119,120,0,0,16,0],[0,0,0,115,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,226,64,0,0,40,224,0,9,0,10,0,0,0,42,0,226,0,0],[0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0],[0,39,0,0,0,121,121,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,44,44,8,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,227,0,228,229,0,9,0,10,0,0,230,0,0,0,0,0],[0,39,0,122,0,121,121,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,231,231,49,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,232,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,130,131,132,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,131,131,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,233,233,133,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,234,233,233,133,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,235,236,237,238,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,0,0,240,241,242,243,57,58,0,59,0,0,244,245,0,0,62,0],[0,0,0,0,0,246,246,0,58,0,59,0,0,0,139,0,0,0,0],[0,136,0,247,0,248,248,57,58,0,59,0,0,0,139,0,136,0,0],[0,249,151,0,0,0,0,0,0,0,0,0,0,0,0,0,249,0,0],[0,136,0,0,0,246,250,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,251,251,57,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,143,144,145,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,144,144,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,252,252,146,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,253,252,252,146,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,254,255,256,257,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,147,0,0,0,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,259,0,0,0,0,0,0,0,0],[0,0,0,260,241,261,262,57,58,0,59,0,0,263,245,0,0,62,0],[0,0,0,0,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,137,264,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,0,265,0,0,0,0],[0,249,151,0,0,137,264,0,58,0,59,0,0,0,139,0,249,0,0],[0,0,0,221,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,158,225,0,0,0,0],[0,0,0,155,116,156,222,8,9,0,10,0,0,158,120,0,0,16,0],[0,0,0,155,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,43,266,266,8,161,0,24,0,0,12,267,0,0,0,0],[0,75,0,176,43,268,268,269,161,0,24,0,0,0,267,0,75,0,0],[0,0,0,0,0,270,0,0,271,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,272,0,0,0,0,0,0,0,0],[0,273,274,0,0,40,41,0,9,0,10,0,0,0,42,0,273,0,0],[0,0,0,40,0,123,123,8,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,121,275,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,166,0,0,0,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,276,0,0,0,0,0,0,0,0],[0,0,0,277,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,279,0,0,0,76,280,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,173,281,0,0,0,0],[0,0,0,169,170,171,278,22,23,0,24,0,0,173,174,0,0,27,0],[0,0,0,169,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,282,90,0,0,76,280,0,23,0,24,0,0,0,78,0,282,0,0],[0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0],[0,75,0,0,0,175,175,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,80,80,22,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,283,0,284,285,0,23,0,24,0,0,286,0,0,0,0,0],[0,75,0,176,0,175,175,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,287,287,85,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,288,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,184,185,186,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,185,185,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,289,289,187,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,290,289,289,187,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,291,292,293,294,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,277,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,192,281,0,0,0,0],[0,0,0,189,170,190,278,22,23,0,24,0,0,192,174,0,0,27,0],[0,0,0,189,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,76,0,177,177,22,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,175,296,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,297,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,299,0,0,0,97,300,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,199,301,0,0,0,0],[0,0,0,195,196,197,298,32,33,0,34,0,0,199,200,0,0,37,0],[0,0,0,195,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,302,111,0,0,97,300,0,33,0,34,0,0,0,99,0,302,0,0],[0,0,0,0,0,0,0,0,33,0,0,0,0,0,0,0,0,0,0],[0,96,0,0,0,201,201,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,101,101,32,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,303,0,304,305,0,33,0,34,0,0,306,0,0,0,0,0],[0,96,0,202,0,201,201,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,307,307,106,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,308,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,210,211,212,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,211,211,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,309,309,213,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,310,309,309,213,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,311,312,313,314,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,297,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,218,301,0,0,0,0],[0,0,0,215,196,216,298,32,33,0,34,0,0,218,200,0,0,37,0],[0,0,0,215,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,97,0,203,203,32,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,201,316,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,0,225,0,0,0,0],[0,0,0,317,318,319,320,8,9,0,10,0,0,321,322,0,0,16,0],[0,223,0,323,0,123,123,8,9,0,10,0,0,0,42,0,223,0,0],[0,223,0,0,0,121,324,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,325,318,326,327,8,9,0,10,0,0,328,322,0,0,16,0],[0,0,0,64,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,9,0,0,0,0,230,0,0,0,0,0],[0,0,0,227,0,228,121,0,9,0,10,0,0,230,0,0,0,0,0],[0,0,0,227,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46,0,0],[0,0,0,0,0,329,329,133,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,330,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,236,237,238,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,237,237,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,331,331,239,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,332,331,331,239,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,333,40,121,334,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,335,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,337,0,0,0,137,338,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,244,339,0,0,0,0],[0,0,0,240,241,242,336,57,58,0,59,0,0,244,245,0,0,62,0],[0,0,0,240,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,340,151,0,0,137,338,0,58,0,59,0,0,0,139,0,340,0,0],[0,0,0,0,0,0,0,0,58,0,0,0,0,0,0,0,0,0,0],[0,136,0,0,0,246,246,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,141,141,57,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,341,0,342,343,0,58,0,59,0,0,344,0,0,0,0,0],[0,136,0,247,0,246,246,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,0,0,57,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,345,345,146,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,346,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,255,256,257,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,256,256,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,347,347,258,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,348,347,347,258,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,349,350,351,352,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,335,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,263,339,0,0,0,0],[0,0,0,260,241,261,336,57,58,0,59,0,0,263,245,0,0,62,0],[0,0,0,260,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,137,0,248,248,57,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,246,354,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,126,126,8,23,0,0,0,0,0,0,0,0,0,0],[0,355,90,0,0,121,125,0,9,0,10,0,0,0,42,0,355,0,0],[0,0,0,0,0,356,356,269,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,357,358,359,360,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,270,0,0,0,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,363,0,0,0,0,0,0,0,0],[0,0,0,364,116,365,366,8,161,0,162,0,0,367,120,0,0,16,0],[0,0,0,0,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,40,0,121,121,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,0,281,0,0,0,0],[0,0,0,369,370,371,372,22,23,0,24,0,0,373,374,0,0,27,0],[0,279,0,375,0,177,177,22,23,0,24,0,0,0,78,0,279,0,0],[0,279,0,0,0,175,376,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,377,370,378,379,22,23,0,24,0,0,380,374,0,0,27,0],[0,0,0,90,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,23,0,0,0,0,286,0,0,0,0,0],[0,0,0,283,0,284,175,0,23,0,24,0,0,286,0,0,0,0,0],[0,0,0,283,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,0,0],[0,0,0,0,0,381,381,187,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,382,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,292,293,294,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,293,293,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,383,383,295,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,384,383,383,295,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,385,76,175,386,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,76,0,175,175,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,0,301,0,0,0,0],[0,0,0,387,388,389,390,32,33,0,34,0,0,391,392,0,0,37,0],[0,299,0,393,0,203,203,32,33,0,34,0,0,0,99,0,299,0,0],[0,299,0,0,0,201,394,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,395,388,396,397,32,33,0,34,0,0,398,392,0,0,37,0],[0,0,0,111,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,33,0,0,0,0,306,0,0,0,0,0],[0,0,0,303,0,304,201,0,33,0,34,0,0,306,0,0,0,0,0],[0,0,0,303,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,106,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,103,0,0],[0,0,0,0,0,399,399,213,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,400,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,312,313,314,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,313,313,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,401,401,315,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,402,401,401,315,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,403,97,201,404,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,97,0,201,201,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,405,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,407,0,0,0,40,408,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,321,409,0,0,0,0],[0,0,0,317,318,319,406,8,9,0,10,0,0,321,322,0,0,16,0],[0,0,0,317,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,410,64,0,0,40,408,0,9,0,10,0,0,0,42,0,410,0,0],[0,223,0,0,0,121,121,0,9,0,10,0,0,0,42,0,223,0,0],[0,223,0,323,0,121,121,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,405,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,328,409,0,0,0,0],[0,0,0,325,318,326,406,8,9,0,10,0,0,328,322,0,0,16,0],[0,0,0,325,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,0,0,0,133,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,130,0,0],[0,0,0,0,0,411,411,239,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,412,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,40,121,334,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,413,0,0,0,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,0,339,0,0,0,0],[0,0,0,414,415,416,417,57,58,0,59,0,0,418,419,0,0,62,0],[0,337,0,420,0,248,248,57,58,0,59,0,0,0,139,0,337,0,0],[0,337,0,0,0,246,421,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,422,415,423,424,57,58,0,59,0,0,425,419,0,0,62,0],[0,0,0,151,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,58,0,0,0,0,344,0,0,0,0,0],[0,0,0,341,0,342,246,0,58,0,59,0,0,344,0,0,0,0,0],[0,0,0,341,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,146,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,143,0,0],[0,0,0,0,0,426,426,258,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,427,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,350,351,352,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,351,351,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,428,428,353,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,429,428,428,353,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,430,137,246,431,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,137,0,246,246,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,432,116,433,434,8,161,0,162,0,0,435,120,0,0,16,0],[0,0,0,0,0,180,180,269,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,358,359,360,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,359,359,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,436,436,361,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,437,436,436,361,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,438,439,440,441,442,161,0,162,0,0,0,362,0,0,0,0],[0,443,274,0,0,0,0,0,0,0,0,0,0,0,0,0,443,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,444,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,367,225,0,0,0,0],[0,0,0,364,116,365,445,8,161,0,162,0,0,367,120,0,0,16,0],[0,0,0,364,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,0,0,0,0,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,446,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,448,0,0,0,76,449,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,373,450,0,0,0,0],[0,0,0,369,370,371,447,22,23,0,24,0,0,373,374,0,0,27,0],[0,0,0,369,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,451,90,0,0,76,449,0,23,0,24,0,0,0,78,0,451,0,0],[0,279,0,0,0,175,175,0,23,0,24,0,0,0,78,0,279,0,0],[0,279,0,375,0,175,175,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,446,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,380,450,0,0,0,0],[0,0,0,377,370,378,447,22,23,0,24,0,0,380,374,0,0,27,0],[0,0,0,377,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,0,0,0,187,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,0,0],[0,0,0,0,0,452,452,295,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,453,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,76,175,386,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,454,0,0,0,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,455,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,457,0,0,0,97,458,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,391,459,0,0,0,0],[0,0,0,387,388,389,456,32,33,0,34,0,0,391,392,0,0,37,0],[0,0,0,387,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,460,111,0,0,97,458,0,33,0,34,0,0,0,99,0,460,0,0],[0,299,0,0,0,201,201,0,33,0,34,0,0,0,99,0,299,0,0],[0,299,0,393,0,201,201,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,455,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,398,459,0,0,0,0],[0,0,0,395,388,396,456,32,33,0,34,0,0,398,392,0,0,37,0],[0,0,0,395,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,0,0,0,213,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,210,0,0],[0,0,0,0,0,461,461,315,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,462,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,97,201,404,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,463,0,0,0,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,0,409,0,0,0,0],[0,0,0,464,465,466,467,8,9,0,10,0,0,468,469,0,0,16,0],[0,407,0,470,0,123,123,8,9,0,10,0,0,0,42,0,407,0,0],[0,407,0,0,0,121,471,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,472,465,473,474,8,9,0,10,0,0,475,469,0,0,16,0],[0,0,0,0,0,0,0,239,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,236,0,0],[0,0,0,0,0,0,476,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,477,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,479,0,0,0,137,480,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,418,481,0,0,0,0],[0,0,0,414,415,416,478,57,58,0,59,0,0,418,419,0,0,62,0],[0,0,0,414,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,482,151,0,0,137,480,0,58,0,59,0,0,0,139,0,482,0,0],[0,337,0,0,0,246,246,0,58,0,59,0,0,0,139,0,337,0,0],[0,337,0,420,0,246,246,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,477,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,425,481,0,0,0,0],[0,0,0,422,415,423,478,57,58,0,59,0,0,425,419,0,0,62,0],[0,0,0,422,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0],[0,0,0,0,0,483,483,353,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,484,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,137,246,431,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,485,0,0,0,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,444,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,435,225,0,0,0,0],[0,0,0,432,116,433,445,8,161,0,162,0,0,435,120,0,0,16,0],[0,0,0,432,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,0,486,486,361,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,487,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,439,440,441,442,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,440,440,442,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,488,488,442,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,489,488,488,442,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,490,491,492,493,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,495,0,496,497,0,161,0,162,0,0,498,0,0,0,0,0],[0,0,0,0,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,0,225,0,0,0,0],[0,0,0,0,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,0,450,0,0,0,0],[0,0,0,499,500,501,502,22,23,0,24,0,0,503,504,0,0,27,0],[0,448,0,505,0,177,177,22,23,0,24,0,0,0,78,0,448,0,0],[0,448,0,0,0,175,506,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,507,500,508,509,22,23,0,24,0,0,510,504,0,0,27,0],[0,0,0,0,0,0,0,295,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,292,0,0],[0,0,0,0,0,0,511,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,0,459,0,0,0,0],[0,0,0,512,513,514,515,32,33,0,34,0,0,516,517,0,0,37,0],[0,457,0,518,0,203,203,32,33,0,34,0,0,0,99,0,457,0,0],[0,457,0,0,0,201,519,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,520,513,521,522,32,33,0,34,0,0,523,517,0,0,37,0],[0,0,0,0,0,0,0,315,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,312,0,0],[0,0,0,0,0,0,524,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,525,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,527,0,0,0,40,528,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,468,529,0,0,0,0],[0,0,0,464,465,466,526,8,9,0,10,0,0,468,469,0,0,16,0],[0,0,0,464,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,530,64,0,0,40,528,0,9,0,10,0,0,0,42,0,530,0,0],[0,407,0,0,0,121,121,0,9,0,10,0,0,0,42,0,407,0,0],[0,407,0,470,0,121,121,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,525,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,475,529,0,0,0,0],[0,0,0,472,465,473,526,8,9,0,10,0,0,475,469,0,0,16,0],[0,0,0,472,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,0,0],[0,0,0,0,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,0,481,0,0,0,0],[0,0,0,531,532,533,534,57,58,0,59,0,0,535,536,0,0,62,0],[0,479,0,537,0,248,248,57,58,0,59,0,0,0,139,0,479,0,0],[0,479,0,0,0,246,538,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,539,532,540,541,57,58,0,59,0,0,542,536,0,0,62,0],[0,0,0,0,0,0,0,353,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,350,0,0],[0,0,0,0,0,0,543,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,361,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,358,0,0],[0,0,0,0,0,544,544,442,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,545,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,491,492,493,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,492,492,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,546,546,494,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,547,546,546,494,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,548,549,368,550,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,274,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,161,0,0,0,0,498,0,0,0,0,0],[0,0,0,495,0,496,368,0,161,0,162,0,0,498,0,0,0,0,0],[0,0,0,495,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,551,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,553,0,0,0,76,554,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,503,555,0,0,0,0],[0,0,0,499,500,501,552,22,23,0,24,0,0,503,504,0,0,27,0],[0,0,0,499,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,556,90,0,0,76,554,0,23,0,24,0,0,0,78,0,556,0,0],[0,448,0,0,0,175,175,0,23,0,24,0,0,0,78,0,448,0,0],[0,448,0,505,0,175,175,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,551,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,510,555,0,0,0,0],[0,0,0,507,500,508,552,22,23,0,24,0,0,510,504,0,0,27,0],[0,0,0,507,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,76,0,0],[0,0,0,557,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,559,0,0,0,97,560,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,516,561,0,0,0,0],[0,0,0,512,513,514,558,32,33,0,34,0,0,516,517,0,0,37,0],[0,0,0,512,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,562,111,0,0,97,560,0,33,0,34,0,0,0,99,0,562,0,0],[0,457,0,0,0,201,201,0,33,0,34,0,0,0,99,0,457,0,0],[0,457,0,518,0,201,201,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,557,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,523,561,0,0,0,0],[0,0,0,520,513,521,558,32,33,0,34,0,0,523,517,0,0,37,0],[0,0,0,520,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0],[0,0,0,0,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,0,529,0,0,0,0],[0,0,0,563,66,564,565,8,9,0,10,0,0,566,68,0,0,16,0],[0,527,0,567,0,123,123,8,9,0,10,0,0,0,42,0,527,0,0],[0,527,0,0,0,121,568,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,569,66,570,571,8,9,0,10,0,0,572,68,0,0,16,0],[0,0,0,573,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,575,0,0,0,137,576,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,535,577,0,0,0,0],[0,0,0,531,532,533,574,57,58,0,59,0,0,535,536,0,0,62,0],[0,0,0,531,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,578,151,0,0,137,576,0,58,0,59,0,0,0,139,0,578,0,0],[0,479,0,0,0,246,246,0,58,0,59,0,0,0,139,0,479,0,0],[0,479,0,537,0,246,246,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,573,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,542,577,0,0,0,0],[0,0,0,539,532,540,574,57,58,0,59,0,0,542,536,0,0,62,0],[0,0,0,539,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,137,0,0],[0,0,0,0,0,0,0,442,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,439,0,0],[0,0,0,0,0,579,579,494,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,580,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,549,368,550,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,368,368,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,581,0,0,0,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,0,555,0,0,0,0],[0,0,0,582,91,583,584,22,23,0,24,0,0,585,93,0,0,27,0],[0,553,0,586,0,177,177,22,23,0,24,0,0,0,78,0,553,0,0],[0,553,0,0,0,175,587,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,588,91,589,590,22,23,0,24,0,0,591,93,0,0,27,0],[0,0,0,0,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,0,561,0,0,0,0],[0,0,0,592,112,593,594,32,33,0,34,0,0,595,114,0,0,37,0],[0,559,0,596,0,203,203,32,33,0,34,0,0,0,99,0,559,0,0],[0,559,0,0,0,201,597,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,598,112,599,600,32,33,0,34,0,0,601,114,0,0,37,0],[0,0,0,602,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,566,165,0,0,0,0],[0,0,0,563,66,564,67,8,9,0,10,0,0,566,68,0,0,16,0],[0,0,0,563,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,527,0,0,0,121,121,0,9,0,10,0,0,0,42,0,527,0,0],[0,527,0,567,0,121,121,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,602,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,572,165,0,0,0,0],[0,0,0,569,66,570,67,8,9,0,10,0,0,572,68,0,0,16,0],[0,0,0,569,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,0,577,0,0,0,0],[0,0,0,603,152,604,605,57,58,0,59,0,0,606,154,0,0,62,0],[0,575,0,607,0,248,248,57,58,0,59,0,0,0,139,0,575,0,0],[0,575,0,0,0,246,608,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,609,152,610,611,57,58,0,59,0,0,612,154,0,0,62,0],[0,0,0,0,0,0,0,494,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,491,0,0],[0,0,0,0,0,0,613,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,614,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,585,194,0,0,0,0],[0,0,0,582,91,583,92,22,23,0,24,0,0,585,93,0,0,27,0],[0,0,0,582,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,553,0,0,0,175,175,0,23,0,24,0,0,0,78,0,553,0,0],[0,553,0,586,0,175,175,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,614,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,591,194,0,0,0,0],[0,0,0,588,91,589,92,22,23,0,24,0,0,591,93,0,0,27,0],[0,0,0,588,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,615,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,595,220,0,0,0,0],[0,0,0,592,112,593,113,32,33,0,34,0,0,595,114,0,0,37,0],[0,0,0,592,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,559,0,0,0,201,201,0,33,0,34,0,0,0,99,0,559,0,0],[0,559,0,596,0,201,201,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,615,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,601,220,0,0,0,0],[0,0,0,598,112,599,113,32,33,0,34,0,0,601,114,0,0,37,0],[0,0,0,598,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,616,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,606,265,0,0,0,0],[0,0,0,603,152,604,153,57,58,0,59,0,0,606,154,0,0,62,0],[0,0,0,603,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,575,0,0,0,246,246,0,58,0,59,0,0,0,139,0,575,0,0],[0,575,0,607,0,246,246,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,616,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,612,265,0,0,0,0],[0,0,0,609,152,610,153,57,58,0,59,0,0,612,154,0,0,62,0],[0,0,0,609,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,549,0,0],[0,0,0,0,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0]],"accepting":[false,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,false,true,true,false,true,true,true,false,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,true,false,true,true,false,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,true,false,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,true,false,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,false,true,false,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,false,true,true,false,false,true,false,true,true,false,true,true,false,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,false,true,true,true,true,false,false,false,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,false,true,true,false,false,true,true,false,false,true,true,true,false,true,false,true,true,true,true,false,false,false,true,false,true,true,true,true,false,false,false,true,true,false,true,true,true,true,true,true,false,true,true,false,true,false,true,true,true,true,false,false,false,false,false,false,false,true,true,false,false,true,true,false,true,true,true,true,false,true,true,true,true,true,true,false,true,true,false,true,true,false,true,true,true,true,true,true,false,true,true,false,true,false,true,true,true,true,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,false,true,true,false,true,false,true,true,true,true,true,false,true,true,true,true,true,false,true,true,true,true,true,false,true,true,true,false,true,true,true,true,false,false,false,true,false,true,true,true,true,true,false,true,true,true,false,true,true,true,true,true,false,true,true,true,true,false,true,true,true,true,true,false,true,true,false,true,true,true],"tags":[[],["broken_cluster"],["consonant_syllable"],["vowel_syllable"],["broken_cluster"],["broken_cluster"],[],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["standalone_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["consonant_syllable"],["broken_cluster"],["symbol_cluster"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["standalone_cluster"],["standalone_cluster"],[],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["broken_cluster"],["broken_cluster"],["consonant_syllable","broken_cluster"],["broken_cluster"],[],["broken_cluster"],["symbol_cluster"],[],["symbol_cluster"],["symbol_cluster"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],[],[],["broken_cluster"],["broken_cluster"],[],[],["broken_cluster"],["broken_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["symbol_cluster"],["symbol_cluster"],["symbol_cluster"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],[],[],["consonant_syllable"],["consonant_syllable"],[],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],[],[],["vowel_syllable"],["vowel_syllable"],[],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],[],[],[],["broken_cluster"],["broken_cluster"],[],[],["broken_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],[],["standalone_cluster"],["standalone_cluster"],[],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["broken_cluster"],["symbol_cluster"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],[],[],[],["consonant_syllable"],["consonant_syllable"],[],[],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],[],[],[],["vowel_syllable"],["vowel_syllable"],[],[],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],[],[],[],["broken_cluster"],[],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],[],[],["standalone_cluster"],["standalone_cluster"],[],[],["standalone_cluster"],["standalone_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],[],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],[],[],[],["consonant_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],[],[],[],["vowel_syllable"],[],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],[],[],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],[],[],["standalone_cluster"],[],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],[],[],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],[],[],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],[],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],[],[],[],[],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],[],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],[],[],[],[],["consonant_syllable","broken_cluster"],["consonant_syllable","broken_cluster"],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],[],[],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],["consonant_syllable"],[],["consonant_syllable"],["consonant_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],["vowel_syllable"],[],["vowel_syllable"],["vowel_syllable"],["broken_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],["standalone_cluster"],[],["standalone_cluster"],["standalone_cluster"],[],["consonant_syllable"],["vowel_syllable"],["standalone_cluster"]]}');var Et={};Et=JSON.parse('{"categories":["O","IND","S","GB","B","FM","CGJ","VMAbv","VMPst","VAbv","VPst","CMBlw","VPre","VBlw","H","VMBlw","CMAbv","MBlw","CS","R","SUB","MPst","MPre","FAbv","FPst","FBlw","null","SMAbv","SMBlw","VMPre","ZWNJ","ZWJ","WJ","M","VS","N","HN","MAbv"],"decompositions":{"2507":[2503,2494],"2508":[2503,2519],"2888":[2887,2902],"2891":[2887,2878],"2892":[2887,2903],"3018":[3014,3006],"3019":[3015,3006],"3020":[3014,3031],"3144":[3142,3158],"3264":[3263,3285],"3271":[3270,3285],"3272":[3270,3286],"3274":[3270,3266],"3275":[3270,3266,3285],"3402":[3398,3390],"3403":[3399,3390],"3404":[3398,3415],"3546":[3545,3530],"3548":[3545,3535],"3549":[3545,3535,3530],"3550":[3545,3551],"3635":[3661,3634],"3763":[3789,3762],"3955":[3953,3954],"3957":[3953,3956],"3958":[4018,3968],"3959":[4018,3953,3968],"3960":[4019,3968],"3961":[4019,3953,3968],"3969":[3953,3968],"6971":[6970,6965],"6973":[6972,6965],"6976":[6974,6965],"6977":[6975,6965],"6979":[6978,6965],"69934":[69937,69927],"69935":[69938,69927],"70475":[70471,70462],"70476":[70471,70487],"70843":[70841,70842],"70844":[70841,70832],"70846":[70841,70845],"71098":[71096,71087],"71099":[71097,71087]},"stateTable":[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[2,2,3,4,4,5,0,6,7,8,9,10,11,12,13,14,15,16,0,17,18,11,19,20,21,22,0,0,0,23,0,0,2,0,0,24,0,25],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,28,0,0,0,0,0,27,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,39,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,39,0,0,47],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,0,0,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,9,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,10,11,12,13,14,0,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,9,0,0,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,10,11,12,13,14,15,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,0,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,4,4,5,0,6,7,8,9,10,11,12,13,14,15,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,48,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,49,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,16,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,51,0],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,16,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,28,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,0,0,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,33,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,0,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,33,0,0,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,39,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,0,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,52,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,53,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,40,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,40,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,0,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,48,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54,0,0],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,0,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,52,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,51,0]],"accepting":[false,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],"tags":[[],["broken_cluster"],["independent_cluster"],["symbol_cluster"],["standard_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],[],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["broken_cluster"],["numeral_cluster"],["broken_cluster"],["independent_cluster"],["symbol_cluster"],["symbol_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["virama_terminated_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["standard_cluster"],["broken_cluster"],["broken_cluster"],["numeral_cluster"],["number_joiner_terminated_cluster"],["standard_cluster"],["standard_cluster"],["numeral_cluster"]]}');var Q={X:1,C:2,V:4,N:8,H:16,ZWNJ:32,ZWJ:64,M:128,Placeholder:2048,Dotted_Circle:4096,RS:8192,Coeng:16384,Repha:32768,Ra:65536,CM:131072},j={Start:1,Ra_To_Become_Reph:2,Pre_M:4,Pre_C:8,Base_C:16,After_Main:32,Before_Sub:128,Below_C:256,After_Sub:512,Before_Post:1024,Post_C:2048,After_Post:4096,Final_C:8192,SMVD:16384,End:32768},t9=Q.C|Q.Ra|Q.CM|Q.V|Q.Placeholder|Q.Dotted_Circle,d5=Q.ZWJ|Q.ZWNJ,a7=Q.H|Q.Coeng,gi={Default:{hasOldSpec:false,virama:0,basePos:"Last",rephPos:j.Before_Post,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Devanagari:{hasOldSpec:true,virama:2381,basePos:"Last",rephPos:j.Before_Post,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Bengali:{hasOldSpec:true,virama:2509,basePos:"Last",rephPos:j.After_Sub,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Gurmukhi:{hasOldSpec:true,virama:2637,basePos:"Last",rephPos:j.Before_Sub,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Gujarati:{hasOldSpec:true,virama:2765,basePos:"Last",rephPos:j.Before_Post,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Oriya:{hasOldSpec:true,virama:2893,basePos:"Last",rephPos:j.After_Main,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Tamil:{hasOldSpec:true,virama:3021,basePos:"Last",rephPos:j.After_Post,rephMode:"Implicit",blwfMode:"Pre_And_Post"},Telugu:{hasOldSpec:true,virama:3149,basePos:"Last",rephPos:j.After_Post,rephMode:"Explicit",blwfMode:"Post_Only"},Kannada:{hasOldSpec:true,virama:3277,basePos:"Last",rephPos:j.After_Post,rephMode:"Implicit",blwfMode:"Post_Only"},Malayalam:{hasOldSpec:true,virama:3405,basePos:"Last",rephPos:j.After_Main,rephMode:"Log_Repha",blwfMode:"Pre_And_Post"},Khmer:{hasOldSpec:false,virama:6098,basePos:"First",rephPos:j.Ra_To_Become_Reph,rephMode:"Vis_Repha",blwfMode:"Pre_And_Post"}},a9={6078:[6081,6078],6079:[6081,6079],6080:[6081,6080],6084:[6081,6084],6085:[6081,6085]},{decompositions:r9}=At(Et),o5=new _t.default(Zr("AAARAAAAAABg2AAAAWYPmfDtnXuMXFUdx+/uzs7M7szudAtECGJRIMRQbUAithQWkGAKiVhNpFVRRAmIQVCDkDYICGotIA9BTCz8IeUviv7BQ2PBtBIRLBBQIWAUsKg1BKxRAqIgfs/cc+aeOXPej3tnZX7JJ/dxzj3nd36/8753Z5fUsuxgsAwcAU4Gp4BPgM+Cd4P3RjieDs4GXwLrHJ5bDy4DG8A14LvgZrAZbAF3gns0z18ALgY/B78C94NHwBPgabAE/AX8DbwM5sF/QX0yD5vFcU/wVnAgWAoOAyvAceBE8CGwBpwGzgJfAF8BXwXfAFeC68EmsBlsAXeCreA+8CB4DDwF/gh2gd3gFfAGmKxn2QzYC+wHDgRLweFgJTgWrKrnuq/GcQ04jV6fheN54EJwEbgcXAG+Q8O/j+Mt4DZwB9haz8t9Hz3a8iCN/xiOvwRP0evH6fE68AzOH+Ke2eWYhw3PcGnuxvkr4A3QaGRZB7wFLAEHg2XgiEZ/fHKcp/ceBh/A+cngFPCpRm6vM3E8l8a5gN67GMdvgqsbeX2ap9yI601gM7gN3AG20mfuo8cdOP6GpvdUg9oKxz839GV90RDO2/glxN1B790NXsN1rZll7WYRdw+c70uvTwIHNAfTO0RyL5TDmnnbc3lmRQI9UnM0dD5eovfz4FpJ/BNpXNYWV+N6Lfg0hY97JK1vn+Pur9DoQur2F7m436bHDUK8C5t5/8vruo4+97WmXG+GLmzEiBF+PDwEOowYMWLEiBEjRoxYeBw5BDqIPEfXut9yWN+vVNxfrnnmWqR/PdgENoMt4E5wD9gOHgCPgifBs2BXM99b2o3jP8F/wMRUlrXAHNgHvH0q3895J46HguXgWHAGLctmLv9VuL96qnp7jxgxYsSbCbJvuRZ97/tqxT59VVRtixEjRsThBG7OSt5zzoPT0M+cBc4T5noXOs79TqLHeZrHUeCSqeJ96gacXy2kecNU8V6Hh7yXuQlhtw7B/PO1RTkr52Aj8JNFZjYg3gOKuC/g/v6Ls2wNuAY8urg//PcIb+6RZXuDNeCS6SzbBrJWlh0DLiFHco8ed9IjzzvaWfa9sZzTcf6D9mCcnbg3PlNcH4fzS8F2MDaLdQG4dLZIJxbbaZqv4ri8k58f3+mPs66T6/TTzqDeI0aMGDGiHP5dcR8ce/xxYcWi6vOfr725uRzcjnngXVOD61Hync+9uL+Nmyfej/NHpvL56A5Jeuz7uyfo+pqcPz2Vf1NH0ttJ03pekt8SmuY/EPYy9zzbN319ym/9TL6ZIt9MHCXRdxJtoAkWTRdz472n87D9cTwYLJvuz++I6WIePo/zE8AHp4v8WLyP0nufnM6/+zoDx8+DL08P6r9+urheRtO+jD6/cdrsx3mqu8w+xH4PScKIXa5D2jeCm8Et4DbwI/BjcC/4BXgI/Bb8DuwEu8Bu8Ap4A9RaRZptnO8J9gUHgEPAoWA5OLY1qMO90GEV7q+mYWtxPBWcIYnL4p+DsPNbxfVFOP86uAr8DNc34HgTDb8Vx9sVaRFI/LtagzYjnCqpb908EX87eBA8Bh4Hf2jle/9/wvGFVv787rrZZy8h7qtgDOuFOmiBuXYRvg/O9wMHgXeB97SLspk4sq0OI/q9v13+ek+sh3zYSRp9jrYorw9ll1/GRzR+KotYZSHf8laVP2lvpA/8OGdPMk59hqtXZ+L8nHbxvWwqO65ryu+fT3VZz+l4dET7L0R072ljsMyzTpaJqQxsbL8M9WajY789DO85XMp/Dcp3Qztdn+9qf/a97ZWK8PXc3G+TpC/nv8Mncy7ZvICF302P5O+aNiOtLdTXd+D4Q7DVwfcvWvx9zTEJ/o5iG3R8YAjGNFseha5PGuZKz7b7xxXbOrXMcu5eJSo//rXdH/73Enz6L1q/X+fyIu8wZGtNBmkjkzNZNgP2AvuBg2bysKUzduXn/66JtNeN4PCZvO0/x7Ujdn4VnYOvRJzjZ/I+9sQZeftX2Tc1RPcPz/Tf4/si0g+t5Mq+kfZjZL34Mc5ul3PPnE7TOxvHK2qDaZ+L++db2HyYqMo/qVnb/P8uH8/rmnFxR0k6DCu/rjj/RxT7KGUSWgbd+LMQuEgYB1zsk2qtvJD8v5AhdfdttbEunSxbcJD9Zf7chqp1Hlbe7FK1/aPVTfp7FgtC1yGGiSncFK/DhZvi+epZta0WWjlsfDZMyPRdSPrryqSSKnXx1bkq/Ye9TlRpk7Lrjq1UrfdC9X+MtKqwP6+3a/4pJFUZF0pZZpv91MYjMBaRRXbxpho5zQmUY3F+Pt4o7rvQrBXPdm00TaE24uMadaM2meLSI7iu071t3er3b6ZLi8JEde3qw+6zGv+ycF5kaRBh/m1T/7Yl/mMyTuMwadP4xL9ifjJpNwbvDZRJ8G8vnqV/Wf12aa/kyOdl69+BspTsXzGueE6E+JfZnvmXIfNPW+FfXkjb1YmqPNpnLP3b61fHCj/X5tzGANf2y3yqvC7Jv7btV4TVbdammI9l/g0dS5lNxLrk2j9r8xjjxhBQnygg0lgg/bOrfyct+udJi/Yrk0lFnxC7f+5kRbsNmcexfrubt0X/rGvLqrGSnYv3ZPHEe8r7lvMvUfi2LOu/2dg8LrRtQt2yfcv8r5IU70VkIs6nbebUXf0M/o7Znl39Sdoz+X1oEb5N8ffF67qhPfPP6eoUbxf+GRf/6sRnvaSdmw+Bf1VxmbD+2sa//DU7t/Gv2PfKpKdrBP92Ojk+IvqX16ks/2qxbL8EZnc2HqsgYuqPuzZV+I3RbujbDm+T0PmWCVO/5jqftp1zy+wSA6s0JWtp2z5e1oZV+yMsjB3ZXolsv0Ulrv01v3/iKrF94Qtbt9siCnmeb6fjjf59KnLk1xaEbvtvFnFirGvEOqmycQrbm/IMsXd3P28uh4nM3swXRER717OiX8kc7K2qqyn2p3maFGU/aruP5VCv+PraoTYU8yUmmbDwcYo6pusnM486xdoga4dkPCb1pK7Sfc6ebvkd4qeAtQcd/N63bB3lU3dlUnUf38VyvqCqK7JxlNSd7lydrDlm+/uqHiRvl30Nrp/n9zpkZRjoJ3V1diyP05rIYXHYs+w+D5+WMS8b5gZtKcuX0KT5d/WwtB97VnyvY6rjMukI56HI0rFJPwt8PjT/1OXzSbcMeEmdh294qvKK4rNu7j4n3LNZg8TKXwafv025U+XvKjHsT8Q7/7LGaJt9lAh7Asz3uv0XEX6t0duDoWN/93wmh92XpUHmCKb9GALbG+rZP3AfNbQPKKv/jpF/bP0JXfuW1QYk7dhljcyvk5mw+933Hpo1g26PQ2ZP6zVmTJt47P25jncD9vPwGS+q9QS/V6RaY8j8K8LmvUr9HfYCpH5OWL9lZY+Sv6pesHCJHbtrf9k6etZvf0G1L0ja4cAe1UT/s3zdCe3/Q5/n372wMc97/E1Qh0Tbmfwh3m/V9On72tNnrCF1sJkVe1EyXMdBa7+lHMsk44zMF6St9e2djNnbm8ybpHkq+gbbemMaH0UZmD8obKGrk7r+nt+3bE7o83YZp/vqOKdv6PzJNN6mTJsI/51XR7i2ZrGA5B6zFwnjzxmqPjaGfW3tZNrz1eljq29mOOqeCfF/irRt87PNw0uXSVAvrmOMNT569MptsYaV0sic/wbY13e8hPrb9K2ySUJ0j6G/Lu0U4qpTrR23jMp6m5hU+YTaWCeh9aIsm/rqUHV4bFv42kgnZdfH1PUj1D7DVH9d8khRN1zFRl/+/TW//qxL1uH83+mk3H+SvRtS2TDU90nX2TpM6/1xzZpZtoYdK763dqlz0f6uNeFehcs+H/nbGP77MpX06n/ofpzP+tVmTUvRtVuX/cjS67OE5kRBrxyJ+w/dPo7r+9cO1160e3gqu0S2uW7PjN/L6ns/UfMf10Lai87frJ+3KndAfc8yTf1M3T4s6qm4/yh7/2GSkG8UMw//DvRLgbYZSEOxr0LCWvRdjfh9XGzfqN4NivfZd7rsmFp08zmbssrKJEuTfVMZopdpbuwSrhNv3/N2s+0PDG3KNB6RMrFvJHv6B85HXObAoWsd3zm3i+6uZYytv+5+pohbpo6+tpZJFfmGlrcMf4c8b1Pe2OUIsaXJrinCTfaxtZOt+NYnU3hIfQlN20Z/1+dt7JaqLsbIzycNWZmrlNg2Dc2/LJ1T+T6WrrYSml4Ku7ik7yIx2opJD51vU9UfVRmrqL8u/olZj0PyCLV5irxcdKoi/6rKb8qTrHsnhW9jyZH/nSpeWDzxd9769uQ016lgUuf2pAfKPhu2FpfZL2Yb9snLNl/fNIepXaUsj4vNXCXUZ75px8ojNP8UPvAta2g6fb+F1ckZuneshv1vGXXDeyRRrN/bBPS1Jul+l+7zW86R7Wv63WXyDpt/RxraRjvC+TC3O61/Sqj/prag8x372yQivn+XwudrI2X2E2KdtJEov52e0L+uv4FO3p/rvssgsL8F4d/z9PzlWS94m8fqS3361Fi+6qaVYHwi9Yz4iH2fobIj+45cpz/TUaarr/4+z+vaWtVtyAX2d1LG8W9C3f+F1mnf36/k4w3YPrLv+XBVXCJs3cr+n4MKJuLv/fN9GhNdXVP5pJMN9vFi3rpv3/r8Ywg3SYp66zNOsO8QGcxPpnmRS/1mvmJjju3v7absI2xspQrvs1dNbjOj/wP7h1RlZyKGy8occ408UL8En4v6xfC/K3z52XzJd62T8vuZGGsxo/6O46ntmNqqFb/jps2/hHV4rPKH0svT4pstU7t2tZ9u/ZdqbJL1MwP6O86Fyt4jYaIrGz9mjEt8lFL4PtVE6votG2P6fpdf/GZRse7s3bf4BtSl/DIbKMctx++Z+8o6K6z9FPOwKsRmXiaNl7C+6NYRpjlbqG1j72f49qsuY4brd/amb4ZVc8TQ+sSH985LrEe8iPWJnfPrJRbWbb+dwn4x6o+r/aS2S7w3qWt//LnYz2ntE0vH1uDcyKatx1rH+EiMPEN1SZG/iz6+9o01Rob6O7Q+xLZ1jHobK61U+pWVvo2EpuWqzzD6Poa+pvhli0wn8Zq/72Mzm2d90o5VN1x9ZKuzbTgvqWwUIin8FSpl1CXXvFRxU0iozVPYJDRtF3uFphn6XAyJUUdD7SjTJ8v6n9fVbVObkKWp001lc9VRlqdOf5v0ZM+bymdbfp1NfG0bq27Y5JMyfxeJkU6o/inKH8O2Zfgidb6h/g3VJ7QcVbWL0Pxt6rlrPqa4KfQ25a2zl4/E8GdM/4fK/wA=")),n9=new Wr.default(At(c5)),C0=class extends Hx{static planFeatures(x){x.addStage(s9),x.addStage(["locl","ccmp"]),x.addStage(f9),x.addStage("nukt"),x.addStage("akhn"),x.addStage("rphf",false),x.addStage("rkrf"),x.addStage("pref",false),x.addStage("blwf",false),x.addStage("abvf",false),x.addStage("half",false),x.addStage("pstf",false),x.addStage("vatu"),x.addStage("cjct"),x.addStage("cfar",false),x.addStage(c9),x.addStage({local:["init"],global:["pres","abvs","blws","psts","haln","dist","abvm","blwm","calt","clig"]}),x.unicodeScript=a1(x.script),x.indicConfig=gi[x.unicodeScript]||gi.Default,x.isOldSpec=x.indicConfig.hasOldSpec&&x.script[x.script.length-1]!=="2";}static assignFeatures(x,t){for(let a=t.length-1;a>=0;a--){let r=t[a].codePoints[0],n=a9[r]||r9[r];if(n){let s=n.map(i=>{let f=x.font.glyphForCodePoint(i);return new Ix(x.font,f.id,[i],t[a].features)});t.splice(a,1,...s);}}}};ex(C0,"zeroMarkWidths","NONE");function Or(e){return o5.get(e.codePoints[0])>>8}function l5(e){return 1<<(o5.get(e.codePoints[0])&255)}var Ce=class{constructor(x,t,a,r){this.category=x,this.position=t,this.syllableType=a,this.syllable=r;}};function s9(e,x){let t=0,a=0;for(let[r,n,s]of n9.match(x.map(Or))){if(r>a){++t;for(let i=a;i<r;i++)x[i].shaperInfo=new Ce(Q.X,j.End,"non_indic_cluster",t);}++t;for(let i=r;i<=n;i++)x[i].shaperInfo=new Ce(1<<Or(x[i]),l5(x[i]),s[0],t);a=n+1;}if(a<x.length){++t;for(let r=a;r<x.length;r++)x[r].shaperInfo=new Ce(Q.X,j.End,"non_indic_cluster",t);}}function Q6(e){return e.shaperInfo.category&t9}function zx(e){return e.shaperInfo.category&d5}function o6(e){return e.shaperInfo.category&a7}function b6(e,x){for(let a of e)a.features={[x]:true};return e[0]._font._layoutEngine.engine.GSUBProcessor.applyFeatures([x],e),e.length===1}function i9(e,x,t){let a=[t,x,t];return b6(a.slice(0,2),"blwf")||b6(a.slice(1,3),"blwf")?j.Below_C:b6(a.slice(0,2),"pstf")||b6(a.slice(1,3),"pstf")||b6(a.slice(0,2),"pref")||b6(a.slice(1,3),"pref")?j.Post_C:j.Base_C}function f9(e,x,t){let a=t.indicConfig,r=e._layoutEngine.engine.GSUBProcessor.features,n=e.glyphForCodePoint(9676).id,s=e.glyphForCodePoint(a.virama).id;if(s){let i=new Ix(e,s,[a.virama]);for(let f=0;f<x.length;f++)x[f].shaperInfo.position===j.Base_C&&(x[f].shaperInfo.position=i9(e,x[f].copy(),i));}for(let i=0,f=gt(x,0);i<x.length;i=f,f=gt(x,i)){let{category:c,syllableType:d}=x[i].shaperInfo;if(d==="symbol_cluster"||d==="non_indic_cluster")continue;if(d==="broken_cluster"&&n){let h=new Ix(e,n,[9676]);h.shaperInfo=new Ce(1<<Or(h),l5(h),x[i].shaperInfo.syllableType,x[i].shaperInfo.syllable);let S=i;for(;S<f&&x[S].shaperInfo.category===Q.Repha;)S++;x.splice(S++,0,h),f++;}let o=f,u=i,p=false;if(a.rephPos!==j.Ra_To_Become_Reph&&r.rphf&&i+3<=f&&(a.rephMode==="Implicit"&&!zx(x[i+2])||a.rephMode==="Explicit"&&x[i+2].shaperInfo.category===Q.ZWJ)){let h=[x[i].copy(),x[i+1].copy(),x[i+2].copy()];if(b6(h.slice(0,2),"rphf")||a.rephMode==="Explicit"&&b6(h,"rphf")){for(u+=2;u<f&&zx(x[u]);)u++;o=i,p=true;}}else if(a.rephMode==="Log_Repha"&&x[i].shaperInfo.category===Q.Repha){for(u++;u<f&&zx(x[u]);)u++;o=i,p=true;}switch(a.basePos){case "Last":{let h=f,S=false;do{let E=x[--h].shaperInfo;if(Q6(x[h])){if(E.position!==j.Below_C&&(E.position!==j.Post_C||S)){o=h;break}E.position===j.Below_C&&(S=true),o=h;}else if(i<h&&E.category===Q.ZWJ&&x[h-1].shaperInfo.category===Q.H)break}while(h>u);break}case "First":o=i;for(let h=o+1;h<f;h++)Q6(x[h])&&(x[h].shaperInfo.position=j.Below_C);}p&&o===i&&u-o<=2&&(p=false);for(let h=i;h<o;h++){let S=x[h].shaperInfo;S.position=Math.min(j.Pre_C,S.position);}o<f&&(x[o].shaperInfo.position=j.Base_C);for(let h=o+1;h<f;h++)if(x[h].shaperInfo.category===Q.M){for(let S=h+1;S<f;S++)if(Q6(x[S])){x[S].shaperInfo.position=j.Final_C;break}break}if(p&&(x[i].shaperInfo.position=j.Ra_To_Become_Reph),t.isOldSpec){let h=t.unicodeScript!=="Malayalam";for(let S=o+1;S<f;S++)if(x[S].shaperInfo.category===Q.H){let E;for(E=f-1;E>S&&!(Q6(x[E])||h&&x[E].shaperInfo.category===Q.H);E--);if(x[E].shaperInfo.category!==Q.H&&E>S){let T=x[S];x.splice(S,0,...x.splice(S+1,E-S)),x[E]=T;}break}}let b=j.Start;for(let h=i;h<f;h++){let S=x[h].shaperInfo;if(S.category&(d5|Q.N|Q.RS|Q.CM|a7&S.category)){if(S.position=b,S.category===Q.H&&S.position===j.Pre_M){for(let E=h;E>i;E--)if(x[E-1].shaperInfo.position!==j.Pre_M){S.position=x[E-1].shaperInfo.position;break}}}else S.position!==j.SMVD&&(b=S.position);}let m=o;for(let h=o+1;h<f;h++)if(Q6(x[h])){for(let S=m+1;S<h;S++)x[S].shaperInfo.position<j.SMVD&&(x[S].shaperInfo.position=x[h].shaperInfo.position);m=h;}else x[h].shaperInfo.category===Q.M&&(m=h);let v=x.slice(i,f);v.sort((h,S)=>h.shaperInfo.position-S.shaperInfo.position),x.splice(i,v.length,...v);for(let h=i;h<f;h++)if(x[h].shaperInfo.position===j.Base_C){o=h;break}for(let h=i;h<f&&x[h].shaperInfo.position===j.Ra_To_Become_Reph;h++)x[h].features.rphf=true;let $=!t.isOldSpec&&a.blwfMode==="Pre_And_Post";for(let h=i;h<o;h++)x[h].features.half=true,$&&(x[h].features.blwf=true);for(let h=o+1;h<f;h++)x[h].features.abvf=true,x[h].features.pstf=true,x[h].features.blwf=true;if(t.isOldSpec&&t.unicodeScript==="Devanagari")for(let h=i;h+1<o;h++)x[h].shaperInfo.category===Q.Ra&&x[h+1].shaperInfo.category===Q.H&&(h+1===o||x[h+2].shaperInfo.category===Q.ZWJ)&&(x[h].features.blwf=true,x[h+1].features.blwf=true);let y=2;if(r.pref&&o+y<f)for(let h=o+1;h+y-1<f;h++){let S=[x[h].copy(),x[h+1].copy()];if(b6(S,"pref")){for(let E=0;E<y;E++)x[h++].features.pref=true;if(r.cfar)for(;h<f;h++)x[h].features.cfar=true;break}}for(let h=i+1;h<f;h++)if(zx(x[h])){let S=x[h].shaperInfo.category===Q.ZWNJ,E=h;do E--,S&&delete x[E].features.half;while(E>i&&!Q6(x[E]))}}}function c9(e,x,t){let a=t.indicConfig,r=e._layoutEngine.engine.GSUBProcessor.features;for(let n=0,s=gt(x,0);n<x.length;n=s,s=gt(x,n)){let i=!!r.pref,f=n;for(;f<s;f++)if(x[f].shaperInfo.position>=j.Base_C){if(i&&f+1<s){for(let c=f+1;c<s;c++)if(x[c].features.pref){if(!(x[c].substituted&&x[c].isLigated&&!x[c].isMultiplied)){for(f=c;f<s&&o6(x[f]);)f++;x[f].shaperInfo.position=j.BASE_C,i=false;}break}}if(t.unicodeScript==="Malayalam")for(let c=f+1;c<s;c++){for(;c<s&&zx(x[c]);)c++;if(c===s||!o6(x[c]))break;for(c++;c<s&&zx(x[c]);)c++;c<s&&Q6(x[c])&&x[c].shaperInfo.position===j.Below_C&&(f=c,x[f].shaperInfo.position=j.Base_C);}n<f&&x[f].shaperInfo.position>j.Base_C&&f--;break}if(f===s&&n<f&&x[f-1].shaperInfo.category===Q.ZWJ&&f--,f<s)for(;n<f&&x[f].shaperInfo.category&(Q.N|a7);)f--;if(n+1<s&&n<f){let c=f===s?f-2:f-1;if(t.unicodeScript!=="Malayalam"&&t.unicodeScript!=="Tamil"){for(;c>n&&!(x[c].shaperInfo.category&(Q.M|a7));)c--;o6(x[c])&&x[c].shaperInfo.position!==j.Pre_M?c+1<s&&zx(x[c+1])&&c++:c=n;}if(n<c&&x[c].shaperInfo.position!==j.Pre_M){for(let d=c;d>n;d--)if(x[d-1].shaperInfo.position===j.Pre_M){let o=d-1;o<f&&f<=c&&f--;let u=x[o];x.splice(o,0,...x.splice(o+1,c-o)),x[c]=u,c--;}}}if(n+1<s&&x[n].shaperInfo.position===j.Ra_To_Become_Reph&&x[n].shaperInfo.category===Q.Repha!==(x[n].isLigated&&!x[n].isMultiplied)){let c,d=a.rephPos,o=false;if(d!==j.After_Post){for(c=n+1;c<f&&!o6(x[c]);)c++;if(c<f&&o6(x[c])&&(c+1<f&&zx(x[c+1])&&c++,o=true),!o&&d===j.After_Main){for(c=f;c+1<s&&x[c+1].shaperInfo.position<=j.After_Main;)c++;o=c<s;}if(!o&&d===j.After_Sub){for(c=f;c+1<s&&!(x[c+1].shaperInfo.position&(j.Post_C|j.After_Post|j.SMVD));)c++;o=c<s;}}if(!o){for(c=n+1;c<f&&!o6(x[c]);)c++;c<f&&o6(x[c])&&(c+1<f&&zx(x[c+1])&&c++,o=true);}if(!o){for(c=s-1;c>n&&x[c].shaperInfo.position===j.SMVD;)c--;if(o6(x[c]))for(let p=f+1;p<c;p++)x[p].shaperInfo.category===Q.M&&c--;}let u=x[n];x.splice(n,0,...x.splice(n+1,c-n)),x[c]=u,n<f&&f<=c&&f--;}if(i&&f+1<s){for(let c=f+1;c<s;c++)if(x[c].features.pref){if(x[c].isLigated&&!x[c].isMultiplied){let d=f;if(t.unicodeScript!=="Malayalam"&&t.unicodeScript!=="Tamil"){for(;d>n&&!(x[d-1].shaperInfo.category&(Q.M|a7));)d--;if(d>n&&x[d-1].shaperInfo.category===Q.M){let p=c;for(let b=f+1;b<p;b++)if(x[b].shaperInfo.category===Q.M){d--;break}}}d>n&&o6(x[d-1])&&d<s&&zx(x[d])&&d++;let o=c,u=x[o];x.splice(d+1,0,...x.splice(d,o-d)),x[d]=u,d<=f&&f<o&&f++;}break}}x[n].shaperInfo.position===j.Pre_M&&(!n||!/Cf|Mn/.test(We(x[n-1].codePoints[0])))&&(x[n].features.init=true);}}function gt(e,x){if(x>=e.length)return x;let t=e[x].shaperInfo.syllable;for(;++x<e.length&&e[x].shaperInfo.syllable===t;);return x}var{categories:d9,decompositions:yi}=At(Et),o9=new _t.default(Zr("AAACAAAAAAAQugAAAQUO+vHtnHuMX0UVx2d3u/t7bXe7FlqgvB+mpQhFmhikMRAg0ZQmakMU+cPWBzZisEGNjUpoiIYCEgmGUGOEGqOVNPUZUGNA+QNIBU2KREEFFSMBUYRISMXE+B3vnPzOzp553tcWfif5ZO5jnufMzJ2ZO/eumlDqFLAWnAMuBBvBZnC5uXZeBe4WsA1sBzs8/naCXcL1G8GtYDfYA74NvgfuAfcZHmT+fwEeBb8DTwvxPQWeAavACyZvq8z9VYxXwCGglijVBcvACnA8eCM4E6wHG8BF4BLwbvA+8AHwUbAd7AA7wS5wC9gN7gR7wX5wN7gXPAAeBr8Gvwd/Ac+CF8EhoCaV6oBZsBKcAE4FZ0wWeV8P9zxwoTnfCHczuBxsAdvAx8Gnzf1r4X4B3AxuA1+bHJb9m5PzdVGW/Yjv+xXHyfmxFfd9OH8Q/Ar8Bjw1WZT3GfACeAX8N5CfqSmlZsAKsGqqCH8K3DXgbHCuuXYB3HeAd4HLpgrdarbi+EPgY+CT4HPg8ybMTcb9MtyvghtYut/A+b4pf95+ELgfw08Qx/3gADgInjDl0veehPtX8A/wsrn2KtzxDuogWNoJx38k/BzXKeI8Ee5qcBZYD9aZtDbg+AwT19uMX83F7JizCdcvBZdZ97c6/BMfMWmfzfTm88/95aLj+DDSvApcDXZ04uPfaen3TMHPLvi5BezuFPVtD4t/qUcfe3FvP7gb3Ouwo9T+H+gMy/UIjh8DfwBPm7T08d/M8WMBe1Sh3xEjXo+M2s+IESNGjBgxYsSI1wLrOsM1gRsi/P+TzV3/Zc1jvxgR/j8IM9Et1mEGcJeDFeA4cJq5/ia467uF/w1wzwdvB+80998LdwvYZs63w90Bdnbd6Wp/uzz3R4wYMWJEvZzTMm2Xf8SIEfVQd/v+EsaPt3eL90J3wP2WMJ78Trd4t6+P77Hu37cIxp9/ny6YXqrUJeCR6TA74e/nll81MzxejeMtYA94HBwy91bPYow+O/S3A8d7oIM/gRN7CAP29Iqx/B1ThfuwOecM+vA3NmRjf6Gfm3BtH7v+PI7XDpS6EuwDz4O10+0/f9om1F4ehO4OmHp6EO7jxl56nvhsN/15ut+4Z0b657yYkZ7UJ0jhX0bcr3bn+6P87vekN4762QNzvWHZtL+jcH5srzg/uTf0f3pvfj5i+6tYW7rK9+aefO+tuL4BXAQ2gs3gPeBJc//9OL4CXAWuNvc/A64DN4Jbwe0s7jtxvBfsAz8EPwX3gwPgoJAHPQ9/Atf/bO7p/TTP4fglwS/5/zfujfWH5z0cz4Gj+8X5Sf1ib4m+vwbHZ/fdOtP+z+3LOnPp/QL4vxhsApeCy8BWk/a2ftFmYu22Hf4/Ba4B14Hrwc0sP7fh+Cvg6+Au8F1WthA/8pT7UeTxZ/12njkuXT8UyM9i6iur1EEb6f+yPz/eg0b3v4X7x365fMaW42lPu7PTv6vi8i/G+lWF/cvUk7bLl1r+5/rN5tu3j2qvWTd/qV+4h+AqjDGnBsX59GDo94iBXDa6v6Yjl6vu+h8itJcsZq/ZykHhHg/3tMHhUe9s/Yfuny7YNxTvQ8LYdrER2+/c0GBezhrMv3ZNRv7PmYirh7oOv4W1Y72/cwPOzx8U7X8d2295sfE3MPnbBPfSQbHv9nK4HxTqiK/trI7Yy5mLzvuVg/nX+N7V51A3r+gMy/4J434W7l2dYf5PZWGuNX6uh3uzEPetuLY7sZ20zTETY2oxyBhj3DrnfsidYPeXRGLHpxzX6pbFofGRkFBdGhcgW40L4cYtd9JAElO36q4LEzXHX7VMtZ2BEhJjy9dT25fazOtJxhwsBrHzwfu8w12kMYN9fLhIbp2RxlI59rX1dzjpsKl2Fxt3iu6rbofc9q5+KcRrXVzzDn6/Crvk6p/y1GFgGhs9/6maHjBLgv8/18fTxl1q0bPoW8ywsFTGWaazHosrNn/kP2eeqEroZYLZphsZl7L82eephMIqNT8dyT9JjH1Jpg32ubZvTB/SF665ymSnnaqjUHum+1Qn+NyOtz9f2r6y5OQ51b6hYy0D40r2tYXar30+Y/mbVX6JqY+hMC60XZapoh3S/HdOpT3DYu3rs0lKnquyb277JZvyPlqp+f1zVVK2/dJYNpQGf04uYyh1+PTPqfalZ2tO/xwSu+3bOrDzmWvfcTW/fLmibRx6lkvlcOlc8qsE/y5/rnSk67F1iAu1VT6+4jKt5tufn8e2b+n57JKcckhrsKG1Cd6Wu+Y8tf2l5DenPafqQZ/7xstKLeyr+XnInjSelvRgS9n27JPQM5n6Am7jmLG8VK6m7OvyS2L313XYV2r/tth5LWPfNxhyhI+1Up7HVbe/HMgeZE8brtNQ/7tcyX0cn//H2LTO9kpir5VI6yYp9szJW9W2jI1Tqfl5ic2v1GZ5XaG6RDZbyvxMO/DVh1SdUj5y1vraaHs+2/TYNXvtSRoXk4wrf9w6fEctnFt0zL2y+xFsfSrLza2zOTqMiZv8xOpbn8+xsL5ykdj6VsxNKb/Lvxb7nX8u48y1x6yuMW3V9tNxTlouzXslibVxndjC14xda8g2NIbg5x01XAP2lfeIBFSi/zrQEporTXru8fCueiy1CUnqrhspSM9SzbSS64tep9R1ZsZcOxKsUEUfNZeYtr0vjY5DeXW915hT8/PRV8MxlR1HV4DHZZc9R7dzajgWoXikdLtGr0uEfPigsGS/NvYjSHW87XejoXZehZ74XrcqpQ4d5T5f7Gu8f6g7fQmefoqOqk4/VarQv2o4/VDetPDnhjR2dc3BCBp/9NVw7KGfwStVMf6aZNAajj6224j9HCZbpZa/LvH1gU30i/q5WnUdSNEprxv2eIOwx2pcjjLMsmObo008k0J4u69P3d9QdbspW/dy080Nb8PXqcrmj0vsc7tu6qwD1A5oLYr3U3XWSxqj6/a10nCMkudJMyxvrvbK55jUrqU+Xlr/Iai98jY7mVAml5QNHxq31j2m5TrSdmp6z5p+9kpzQntdQbI1Pafr6I9C60gxrALHGtdF6tyhLTtxeBuW+hhqyzPMX931xl6rJ5f6n5h3blpsW7vKbvdBfL1gpYfjDLrvob1drrRT+mcuMf1OrJSdW/P+RfufdUB+pOtdTzhpL5t0jfKr46P3obQfQdPGt1jS+DEkx4MT2PmEg1j72OthqfZNWX+JuZ4at/2sTAmn5cSIMqZIjk0pnD0+aUI6YS9ekdaspWsp8cWEC62dS66UTkq+ypajyvXSlPz4xhQhm/ns6wpXBVI560jHN9aKkdT46spvWT916rONdHNsGSNtl6Hp8oakTVukpF9n3U3Jx0TNefbp3R4jltVfFfpvQkJpNaH/puyco++qbZPz7sE1L3DFGVovc4XPLUPO3ELyrzLiSpmPhaTJfqeJ+t60PiTh9snNW2656upDQ+Wtyg6ueJquB7HSVPspW9a28lDWJouhb6iyv7XjTfVL67j2vjDpvUfMt1Vl4GvctMaeq/vYcFWXIfV5Ku3XaxK951H6dsWFrhcxa3pU/pz3C1xc71tTcaXjGjtJbYIj7UHm7wxSyx+D/d7SfpfJ3wPpfSQp32tS2dt8V2tD7+Bce3rpPa3eC6Dr8Ulq+K+J3HFvbn312Zv2RdStr9g0pP0P/B04XbP3Q8cIT2dlRF6orkrhY/Rv27FqHfL1DP480ffo/V6V7aTHXLKDbTdXOOrnyG1ScvSv6xqve30lPzdpj36M8Pilb+L5vr0xE3dd30nWIfZ45uSSxK4x+CRmTUK6F/LrSsfnj+aOdYyvpXyMK7/OpHWjlDTsa0rJum5K7Ppnj7F9c+0q0qtr7pQji2X9oMwcVrJfmblwU2V2SV3rEk3YuO46XXf8MfrQz077G2zftyDkj/ZqhcZr9nldkOg5ykAt3GunJbR3NGYsUfWafd3ts853C4dLHppOM6WcfM5C+xSbaC/2HMa1H9v1vXdoXm/LKSVpYh5wqmr/X67SfwHtPc9a97p/k8bt0hpbW0j1Svr2m+7Rd98qIQ1pvSF273dKOjHYNmk6fd8/JX3tWIddblBqoU5p7zrZKnd9TppjVq0DSitWqkwz12b2exb7vwjaRvS/TFd/S+8AYvIo+Suri5TwvvZRdV1IQevQ1/8SA+UeH5eto7n/X1Oe86ptaafl8kPjcF7P7W93eD9d5n+oSvn7fFe7I/G9q1IBfylSR71N6fft94ZU18hOXKR+JqUO8f4+5dvLsmWlMQb/Vov+CUDlpTGUndeQlG3fdZWdRPoPgl3mmDlsLnaey/4X3tVuU+o6L3/Pym+qlLV/jk6rlBRd8394hZ6JdnuqIv2ykOh3pfq96Wkq/E8qu2xl88/tOJ4R3tfmpbGi3c5T859bzqr7MbsN03iI5itUNj5eaEKWqIX/KJCQ/iFWNZMmHXs8ovWk53JzFq5vPul6zDjLV36pX7bzvNzB0YlQOZephWtRS5T7eeSq8030R77/HvC1d7tN83Zt9yltrDdwSR0XxsZd5l+MvvvU1/M9jSnj+Nh6FPJbBld/w6XHXH5MZeXrOfS/65g9RTl1JCa8chzX2RZ9/3lXSh4/VqWfEBNq4b82Ytp6m+9Qqxir1jX+rfPdT1vvsWhM6bPbmON6E1LnPCZW7L0qqXswmtqf0MQelZj4myrzYtzvIYmURlvtqapyx+gzRfd0XPfahVSOquMoG+dibBdl46iyfdbV1qvUW9m8+KTudMvkzZe/pqTJ+pWTflX5zw1fVfox6ZTVc8hvHflOSb+OuG1JsZ0kufXAJf8D")),l9=new Wr.default(At(Et)),K=class extends Hx{static planFeatures(x){x.addStage(u9),x.addStage(["locl","ccmp","nukt","akhn"]),x.addStage(vi),x.addStage(["rphf"],false),x.addStage(b9),x.addStage(vi),x.addStage(["pref"]),x.addStage(h9),x.addStage(["rkrf","abvf","blwf","half","pstf","vatu","cjct"]),x.addStage(p9),x.addStage(["abvs","blws","pres","psts","dist","abvm","blwm"]);}static assignFeatures(x,t){for(let a=t.length-1;a>=0;a--){let r=t[a].codePoints[0];if(yi[r]){let n=yi[r].map(s=>{let i=x.font.glyphForCodePoint(s);return new Ix(x.font,i.id,[s],t[a].features)});t.splice(a,1,...n);}}}};ex(K,"zeroMarkWidths","BEFORE_GPOS");function wi(e){return o9.get(e.codePoints[0])}var Tr=class{constructor(x,t,a){this.category=x,this.syllableType=t,this.syllable=a;}};function u9(e,x){let t=0;for(let[a,r,n]of l9.match(x.map(wi))){++t;for(let i=a;i<=r;i++)x[i].shaperInfo=new Tr(d9[wi(x[i])],n[0],t);let s=x[a].shaperInfo.category==="R"?1:Math.min(3,r-a);for(let i=a;i<a+s;i++)x[i].features.rphf=true;}}function vi(e,x){for(let t of x)t.substituted=false;}function b9(e,x){for(let t of x)t.substituted&&t.features.rphf&&(t.shaperInfo.category="R");}function h9(e,x){for(let t of x)t.substituted&&(t.shaperInfo.category="VPre");}function p9(e,x){let t=e.glyphForCodePoint(9676).id;for(let a=0,r=_i(x,0);a<x.length;a=r,r=_i(x,a)){let n,s,i=x[a].shaperInfo,f=i.syllableType;if(!(f!=="virama_terminated_cluster"&&f!=="standard_cluster"&&f!=="broken_cluster")){if(f==="broken_cluster"&&t){let c=new Ix(e,t,[9676]);for(c.shaperInfo=i,n=a;n<r&&x[n].shaperInfo.category==="R";n++);x.splice(++n,0,c),r++;}if(i.category==="R"&&r-a>1){for(n=a+1;n<r;n++)if(i=x[n].shaperInfo,Ai(i)||J7(x[n])){J7(x[n])&&n--,x.splice(a,0,...x.splice(a+1,n-a),x[n]);break}}for(n=a,s=r;n<r;n++)i=x[n].shaperInfo,Ai(i)||J7(x[n])?s=J7(x[n])?n+1:n:(i.category==="VPre"||i.category==="VMPre")&&s<n&&x.splice(s,1,x[n],...x.splice(s,n-s));}}}function _i(e,x){if(x>=e.length)return x;let t=e[x].shaperInfo.syllable;for(;++x<e.length&&e[x].shaperInfo.syllable===t;);return x}function J7(e){return e.shaperInfo.category==="H"&&!e.isLigated}function Ai(e){return e.category==="B"||e.category==="GB"}var m9={arab:qx,mong:qx,syrc:qx,"nko ":qx,phag:qx,mand:qx,mani:qx,phlp:qx,hang:ut,bng2:C0,beng:C0,dev2:C0,deva:C0,gjr2:C0,gujr:C0,guru:C0,gur2:C0,knda:C0,knd2:C0,mlm2:C0,mlym:C0,ory2:C0,orya:C0,taml:C0,tml2:C0,telu:C0,tel2:C0,khmr:C0,bali:K,batk:K,brah:K,bugi:K,buhd:K,cakm:K,cham:K,dupl:K,egyp:K,gran:K,hano:K,java:K,kthi:K,kali:K,khar:K,khoj:K,sind:K,lepc:K,limb:K,mahj:K,mtei:K,modi:K,hmng:K,rjng:K,saur:K,shrd:K,sidd:K,sinh:C0,sund:K,sylo:K,tglg:K,tagb:K,tale:K,lana:K,tavt:K,takr:K,tibt:K,tfng:K,tirh:K,latn:Hx,DFLT:Hx};function g9(e){Array.isArray(e)||(e=[e]);for(let x of e){let t=m9[x];if(t)return t}return Hx}var Rr=class extends Ie{applyLookup(x,t){switch(x){case 1:{let r=this.coverageIndex(t.coverage);if(r===-1)return false;let n=this.glyphIterator.cur;switch(t.version){case 1:n.id=n.id+t.deltaGlyphID&65535;break;case 2:n.id=t.substitute.get(r);break}return true}case 2:{let r=this.coverageIndex(t.coverage);if(r!==-1){let n=t.sequences.get(r);if(n.length===0)return this.glyphs.splice(this.glyphIterator.index,1),true;this.glyphIterator.cur.id=n[0],this.glyphIterator.cur.ligatureComponent=0;let s=this.glyphIterator.cur.features,i=this.glyphIterator.cur,f=n.slice(1).map((c,d)=>{let o=new Ix(this.font,c,void 0,s);return o.shaperInfo=i.shaperInfo,o.isLigated=i.isLigated,o.ligatureComponent=d+1,o.substituted=true,o.isMultiplied=true,o});return this.glyphs.splice(this.glyphIterator.index+1,0,...f),true}return false}case 3:{let r=this.coverageIndex(t.coverage);if(r!==-1){let n=0;return this.glyphIterator.cur.id=t.alternateSet.get(r)[n],true}return false}case 4:{let r=this.coverageIndex(t.coverage);if(r===-1)return false;for(let n of t.ligatureSets.get(r)){let s=this.sequenceMatchIndices(1,n.components);if(!s)continue;let i=this.glyphIterator.cur,f=i.codePoints.slice();for(let m of s)f.push(...this.glyphs[m].codePoints);let c=new Ix(this.font,n.glyph,f,i.features);c.shaperInfo=i.shaperInfo,c.isLigated=true,c.substituted=true;let d=i.isMark;for(let m=0;m<s.length&&d;m++)d=this.glyphs[s[m]].isMark;c.ligatureID=d?null:this.ligatureID++;let o=i.ligatureID,u=i.codePoints.length,p=u,b=this.glyphIterator.index+1;for(let m of s){if(d)b=m;else for(;b<m;){var a=p-u+Math.min(this.glyphs[b].ligatureComponent||1,u);this.glyphs[b].ligatureID=c.ligatureID,this.glyphs[b].ligatureComponent=a,b++;}o=this.glyphs[b].ligatureID,u=this.glyphs[b].codePoints.length,p+=u,b++;}if(o&&!d)for(let m=b;m<this.glyphs.length&&this.glyphs[m].ligatureID===o;m++){var a=p-u+Math.min(this.glyphs[m].ligatureComponent||1,u);this.glyphs[m].ligatureComponent=a;}for(let m=s.length-1;m>=0;m--)this.glyphs.splice(s[m],1);return this.glyphs[this.glyphIterator.index]=c,true}return false}case 5:return this.applyContext(t);case 6:return this.applyChainingContext(t);case 7:return this.applyLookup(t.lookupType,t.extension);default:throw new Error(`GSUB lookupType ${x} is not supported`)}}},kr=class extends Ie{applyPositionValue(x,t){let a=this.positions[this.glyphIterator.peekIndex(x)];t.xAdvance!=null&&(a.xAdvance+=t.xAdvance),t.yAdvance!=null&&(a.yAdvance+=t.yAdvance),t.xPlacement!=null&&(a.xOffset+=t.xPlacement),t.yPlacement!=null&&(a.yOffset+=t.yPlacement);let r=this.font._variationProcessor,n=this.font.GDEF&&this.font.GDEF.itemVariationStore;r&&n&&(t.xPlaDevice&&(a.xOffset+=r.getDelta(n,t.xPlaDevice.a,t.xPlaDevice.b)),t.yPlaDevice&&(a.yOffset+=r.getDelta(n,t.yPlaDevice.a,t.yPlaDevice.b)),t.xAdvDevice&&(a.xAdvance+=r.getDelta(n,t.xAdvDevice.a,t.xAdvDevice.b)),t.yAdvDevice&&(a.yAdvance+=r.getDelta(n,t.yAdvDevice.a,t.yAdvDevice.b)));}applyLookup(x,t){switch(x){case 1:{let r=this.coverageIndex(t.coverage);if(r===-1)return false;switch(t.version){case 1:this.applyPositionValue(0,t.value);break;case 2:this.applyPositionValue(0,t.values.get(r));break}return true}case 2:{let r=this.glyphIterator.peek();if(!r)return false;let n=this.coverageIndex(t.coverage);if(n===-1)return false;switch(t.version){case 1:let s=t.pairSets.get(n);for(let c of s)if(c.secondGlyph===r.id)return this.applyPositionValue(0,c.value1),this.applyPositionValue(1,c.value2),true;return false;case 2:let i=this.getClassID(this.glyphIterator.cur.id,t.classDef1),f=this.getClassID(r.id,t.classDef2);if(i===-1||f===-1)return false;var a=t.classRecords.get(i).get(f);return this.applyPositionValue(0,a.value1),this.applyPositionValue(1,a.value2),true}}case 3:{let r=this.glyphIterator.peekIndex(),n=this.glyphs[r];if(!n)return false;let s=t.entryExitRecords[this.coverageIndex(t.coverage)];if(!s||!s.exitAnchor)return false;let i=t.entryExitRecords[this.coverageIndex(t.coverage,n.id)];if(!i||!i.entryAnchor)return false;let f=this.getAnchor(i.entryAnchor),c=this.getAnchor(s.exitAnchor),d=this.positions[this.glyphIterator.index],o=this.positions[r],u;switch(this.direction){case "ltr":d.xAdvance=c.x+d.xOffset,u=f.x+o.xOffset,o.xAdvance-=u,o.xOffset-=u;break;case "rtl":u=c.x+d.xOffset,d.xAdvance-=u,d.xOffset-=u,o.xAdvance=f.x+o.xOffset;break}return this.glyphIterator.flags.rightToLeft?(this.glyphIterator.cur.cursiveAttachment=r,d.yOffset=f.y-c.y):(n.cursiveAttachment=this.glyphIterator.index,d.yOffset=c.y-f.y),true}case 4:{let r=this.coverageIndex(t.markCoverage);if(r===-1)return false;let n=this.glyphIterator.index;for(;--n>=0&&(this.glyphs[n].isMark||this.glyphs[n].ligatureComponent>0););if(n<0)return false;let s=this.coverageIndex(t.baseCoverage,this.glyphs[n].id);if(s===-1)return false;let i=t.markArray[r],f=t.baseArray[s][i.class];return this.applyAnchor(i,f,n),true}case 5:{let r=this.coverageIndex(t.markCoverage);if(r===-1)return false;let n=this.glyphIterator.index;for(;--n>=0&&this.glyphs[n].isMark;);if(n<0)return false;let s=this.coverageIndex(t.ligatureCoverage,this.glyphs[n].id);if(s===-1)return false;let i=t.ligatureArray[s],f=this.glyphIterator.cur,c=this.glyphs[n],d=c.ligatureID&&c.ligatureID===f.ligatureID&&f.ligatureComponent>0?Math.min(f.ligatureComponent,c.codePoints.length)-1:c.codePoints.length-1,o=t.markArray[r],u=i[d][o.class];return this.applyAnchor(o,u,n),true}case 6:{let r=this.coverageIndex(t.mark1Coverage);if(r===-1)return false;let n=this.glyphIterator.peekIndex(-1),s=this.glyphs[n];if(!s||!s.isMark)return false;let i=this.glyphIterator.cur,f=false;if(i.ligatureID===s.ligatureID?i.ligatureID?i.ligatureComponent===s.ligatureComponent&&(f=true):f=true:(i.ligatureID&&!i.ligatureComponent||s.ligatureID&&!s.ligatureComponent)&&(f=true),!f)return false;let c=this.coverageIndex(t.mark2Coverage,s.id);if(c===-1)return false;let d=t.mark1Array[r],o=t.mark2Array[c][d.class];return this.applyAnchor(d,o,n),true}case 7:return this.applyContext(t);case 8:return this.applyChainingContext(t);case 9:return this.applyLookup(t.lookupType,t.extension);default:throw new Error(`Unsupported GPOS table: ${x}`)}}applyAnchor(x,t,a){let r=this.getAnchor(t),n=this.getAnchor(x.markAnchor);this.positions[a];let i=this.positions[this.glyphIterator.index];i.xOffset=r.x-n.x,i.yOffset=r.y-n.y,this.glyphIterator.cur.markAttachment=a;}getAnchor(x){let t=x.xCoordinate,a=x.yCoordinate,r=this.font._variationProcessor,n=this.font.GDEF&&this.font.GDEF.itemVariationStore;return r&&n&&(x.xDeviceTable&&(t+=r.getDelta(n,x.xDeviceTable.a,x.xDeviceTable.b)),x.yDeviceTable&&(a+=r.getDelta(n,x.yDeviceTable.a,x.yDeviceTable.b))),{x:t,y:a}}applyFeatures(x,t,a){super.applyFeatures(x,t,a);for(var r=0;r<this.glyphs.length;r++)this.fixCursiveAttachment(r);this.fixMarkAttachment();}fixCursiveAttachment(x){let t=this.glyphs[x];if(t.cursiveAttachment!=null){let a=t.cursiveAttachment;t.cursiveAttachment=null,this.fixCursiveAttachment(a),this.positions[x].yOffset+=this.positions[a].yOffset;}}fixMarkAttachment(){for(let x=0;x<this.glyphs.length;x++){let t=this.glyphs[x];if(t.markAttachment!=null){let a=t.markAttachment;if(this.positions[x].xOffset+=this.positions[a].xOffset,this.positions[x].yOffset+=this.positions[a].yOffset,this.direction==="ltr")for(let r=a;r<x;r++)this.positions[x].xOffset-=this.positions[r].xAdvance,this.positions[x].yOffset-=this.positions[r].yAdvance;else for(let r=a+1;r<x+1;r++)this.positions[x].xOffset+=this.positions[r].xAdvance,this.positions[x].yOffset+=this.positions[r].yAdvance;}}}},Pr=class{setup(x){this.glyphInfos=x.glyphs.map(a=>new Ix(this.font,a.id,[...a.codePoints]));let t=null;this.GPOSProcessor&&(t=this.GPOSProcessor.selectScript(x.script,x.language,x.direction)),this.GSUBProcessor&&(t=this.GSUBProcessor.selectScript(x.script,x.language,x.direction)),this.shaper=g9(t),this.plan=new Ar(this.font,t,x.direction),this.shaper.plan(this.plan,this.glyphInfos,x.features);for(let a in this.plan.allFeatures)x.features[a]=true;}substitute(x){this.GSUBProcessor&&(this.plan.process(this.GSUBProcessor,this.glyphInfos),x.glyphs=this.glyphInfos.map(t=>this.font.getGlyph(t.id,t.codePoints)));}position(x){return this.shaper.zeroMarkWidths==="BEFORE_GPOS"&&this.zeroMarkAdvances(x.positions),this.GPOSProcessor&&this.plan.process(this.GPOSProcessor,this.glyphInfos,x.positions),this.shaper.zeroMarkWidths==="AFTER_GPOS"&&this.zeroMarkAdvances(x.positions),x.direction==="rtl"&&(x.glyphs.reverse(),x.positions.reverse()),this.GPOSProcessor&&this.GPOSProcessor.features}zeroMarkAdvances(x){for(let t=0;t<this.glyphInfos.length;t++)this.glyphInfos[t].isMark&&(x[t].xAdvance=0,x[t].yAdvance=0);}cleanup(){this.glyphInfos=null,this.plan=null,this.shaper=null;}getAvailableFeatures(x,t){let a=[];return this.GSUBProcessor&&(this.GSUBProcessor.selectScript(x,t),a.push(...Object.keys(this.GSUBProcessor.features))),this.GPOSProcessor&&(this.GPOSProcessor.selectScript(x,t),a.push(...Object.keys(this.GPOSProcessor.features))),a}constructor(x){this.font=x,this.glyphInfos=null,this.plan=null,this.GSUBProcessor=null,this.GPOSProcessor=null,this.fallbackPosition=true,x.GSUB&&(this.GSUBProcessor=new Rr(x,x.GSUB)),x.GPOS&&(this.GPOSProcessor=new kr(x,x.GPOS));}},Dr=class{layout(x,t,a,r,n){if(typeof t=="string"&&(n=r,r=a,a=t,t=[]),typeof x=="string"){a==null&&(a=r1(x));var s=this.font.glyphsForString(x);}else {if(a==null){let c=[];for(let d of x)c.push(...d.codePoints);a=n1(c);}var s=x;}let i=new yr(s,t,a,r,n);return s.length===0?(i.positions=[],i):(this.engine&&this.engine.setup&&this.engine.setup(i),this.substitute(i),this.position(i),this.hideDefaultIgnorables(i.glyphs,i.positions),this.engine&&this.engine.cleanup&&this.engine.cleanup(),i)}substitute(x){this.engine&&this.engine.substitute&&this.engine.substitute(x);}position(x){x.positions=x.glyphs.map(a=>new wr(a.advanceWidth));let t=null;this.engine&&this.engine.position&&(t=this.engine.position(x)),!t&&(!this.engine||this.engine.fallbackPosition)&&(this.unicodeLayoutEngine||(this.unicodeLayoutEngine=new mr(this.font)),this.unicodeLayoutEngine.positionGlyphs(x.glyphs,x.positions)),(!t||!t.kern)&&x.features.kern!==false&&this.font.kern&&(this.kernProcessor||(this.kernProcessor=new pr(this.font)),this.kernProcessor.process(x.glyphs,x.positions),x.features.kern=true);}hideDefaultIgnorables(x,t){let a=this.font.glyphForCodePoint(32);for(let r=0;r<x.length;r++)this.isDefaultIgnorable(x[r].codePoints[0])&&(x[r]=a,t[r].xAdvance=0,t[r].yAdvance=0);}isDefaultIgnorable(x){let t=x>>16;if(t===0)switch(x>>8){case 0:return x===173;case 3:return x===847;case 6:return x===1564;case 23:return 6068<=x&&x<=6069;case 24:return 6155<=x&&x<=6158;case 32:return 8203<=x&&x<=8207||8234<=x&&x<=8238||8288<=x&&x<=8303;case 254:return 65024<=x&&x<=65039||x===65279;case 255:return 65520<=x&&x<=65528;default:return false}else switch(t){case 1:return 113824<=x&&x<=113827||119155<=x&&x<=119162;case 14:return 917504<=x&&x<=921599;default:return false}}getAvailableFeatures(x,t){let a=[];return this.engine&&a.push(...this.engine.getAvailableFeatures(x,t)),this.font.kern&&a.indexOf("kern")===-1&&a.push("kern"),a}stringsForGlyph(x){let t=new Set,a=this.font._cmapProcessor.codePointsForGlyph(x);for(let r of a)t.add(String.fromCodePoint(r));if(this.engine&&this.engine.stringsForGlyph)for(let r of this.engine.stringsForGlyph(x))t.add(r);return Array.from(t)}constructor(x){this.font=x,this.unicodeLayoutEngine=null,this.kernProcessor=null,this.font.morx?this.engine=new _r(this.font):(this.font.GSUB||this.font.GPOS)&&(this.engine=new Pr(this.font));}},y9={moveTo:"M",lineTo:"L",quadraticCurveTo:"Q",bezierCurveTo:"C",closePath:"Z"},Oe=class e{toFunction(){return x=>{this.commands.forEach(t=>x[t.command].apply(x,t.args));}}toSVG(){return this.commands.map(t=>{let a=t.args.map(r=>Math.round(r*100)/100);return `${y9[t.command]}${a.join(" ")}`}).join("")}get cbox(){if(!this._cbox){let x=new D6;for(let t of this.commands)for(let a=0;a<t.args.length;a+=2)x.addPoint(t.args[a],t.args[a+1]);this._cbox=Object.freeze(x);}return this._cbox}get bbox(){if(this._bbox)return this._bbox;let x=new D6,t=0,a=0,r=y=>Math.pow(1-y,3)*p[$]+3*Math.pow(1-y,2)*y*b[$]+3*(1-y)*Math.pow(y,2)*m[$]+Math.pow(y,3)*v[$];for(let y of this.commands)switch(y.command){case "moveTo":case "lineTo":let[h,S]=y.args;x.addPoint(h,S),t=h,a=S;break;case "quadraticCurveTo":case "bezierCurveTo":if(y.command==="quadraticCurveTo")var[n,s,o,u]=y.args,i=t+2/3*(n-t),f=a+2/3*(s-a),c=o+2/3*(n-o),d=u+2/3*(s-u);else var[i,f,c,d,o,u]=y.args;x.addPoint(o,u);for(var p=[t,a],b=[i,f],m=[c,d],v=[o,u],$=0;$<=1;$++){let E=6*p[$]-12*b[$]+6*m[$],T=-3*p[$]+9*b[$]-9*m[$]+3*v[$];if(y=3*b[$]-3*p[$],T===0){if(E===0)continue;let U=-y/E;0<U&&U<1&&($===0?x.addPoint(r(U),x.maxY):$===1&&x.addPoint(x.maxX,r(U)));continue}let D=Math.pow(E,2)-4*y*T;if(D<0)continue;let R=(-E+Math.sqrt(D))/(2*T);0<R&&R<1&&($===0?x.addPoint(r(R),x.maxY):$===1&&x.addPoint(x.maxX,r(R)));let G=(-E-Math.sqrt(D))/(2*T);0<G&&G<1&&($===0?x.addPoint(r(G),x.maxY):$===1&&x.addPoint(x.maxX,r(G)));}t=o,a=u;break}return this._bbox=Object.freeze(x)}mapPoints(x){let t=new e;for(let a of this.commands){let r=[];for(let n=0;n<a.args.length;n+=2){let[s,i]=x(a.args[n],a.args[n+1]);r.push(s,i);}t[a.command](...r);}return t}transform(x,t,a,r,n,s){return this.mapPoints((i,f)=>{let c=x*i+a*f+n,d=t*i+r*f+s;return [c,d]})}translate(x,t){return this.transform(1,0,0,1,x,t)}rotate(x){let t=Math.cos(x),a=Math.sin(x);return this.transform(t,a,-a,t,0,0)}scale(x,t=x){return this.transform(x,0,0,t,0,0)}constructor(){this.commands=[],this._bbox=null,this._cbox=null;}};for(let e of ["moveTo","lineTo","quadraticCurveTo","bezierCurveTo","closePath"])Oe.prototype[e]=function(...x){return this._bbox=this._cbox=null,this.commands.push({command:e,args:x}),this};var Ze=[".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","nonbreakingspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron","Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth","Yacute","yacute","Thorn","thorn","minus","multiply","onesuperior","twosuperior","threesuperior","onehalf","onequarter","threequarters","franc","Gbreve","gbreve","Idotaccent","Scedilla","scedilla","Cacute","cacute","Ccaron","ccaron","dcroat"],_x=class{_getPath(){return new Oe}_getCBox(){return this.path.cbox}_getBBox(){return this.path.bbox}_getTableMetrics(x){if(this.id<x.metrics.length)return x.metrics.get(this.id);let t=x.metrics.get(x.metrics.length-1);return {advance:t?t.advance:0,bearing:x.bearings.get(this.id-x.metrics.length)||0}}_getMetrics(x){if(this._metrics)return this._metrics;let{advance:t,bearing:a}=this._getTableMetrics(this._font.hmtx);if(this._font.vmtx)var{advance:r,bearing:n}=this._getTableMetrics(this._font.vmtx);else {let s;if((typeof x>"u"||x===null)&&({cbox:x}=this),(s=this._font["OS/2"])&&s.version>0)var r=Math.abs(s.typoAscender-s.typoDescender),n=s.typoAscender-x.maxY;else {let{hhea:i}=this._font;var r=Math.abs(i.ascent-i.descent),n=i.ascent-x.maxY;}}return this._font._variationProcessor&&this._font.HVAR&&(t+=this._font._variationProcessor.getAdvanceAdjustment(this.id,this._font.HVAR)),this._metrics={advanceWidth:t,advanceHeight:r,leftBearing:a,topBearing:n}}get cbox(){return this._getCBox()}get bbox(){return this._getBBox()}get path(){return this._getPath()}getScaledPath(x){let t=1/this._font.unitsPerEm*x;return this.path.scale(t)}get advanceWidth(){return this._getMetrics().advanceWidth}get advanceHeight(){return this._getMetrics().advanceHeight}get ligatureCaretPositions(){}_getName(){let{post:x}=this._font;if(!x)return null;switch(x.version){case 1:return Ze[this.id];case 2:let t=x.glyphNameIndex[this.id];return t<Ze.length?Ze[t]:x.names[t-Ze.length];case 2.5:return Ze[this.id+x.offsets[this.id]];case 4:return String.fromCharCode(x.map[this.id])}}get name(){return this._getName()}render(x,t){x.save();let a=1/this._font.head.unitsPerEm*t;x.scale(a,a),this.path.toFunction()(x),x.fill(),x.restore();}constructor(x,t,a){this.id=x,this.codePoints=t,this._font=a,this.isMark=this.codePoints.length>0&&this.codePoints.every(Na),this.isLigature=this.codePoints.length>1;}};B0([j0],_x.prototype,"cbox",null);B0([j0],_x.prototype,"bbox",null);B0([j0],_x.prototype,"path",null);B0([j0],_x.prototype,"advanceWidth",null);B0([j0],_x.prototype,"advanceHeight",null);B0([j0],_x.prototype,"name",null);var Ci=new C({numberOfContours:O,xMin:O,yMin:O,xMax:O,yMax:O}),w9=1,v9=2,_9=4,A9=8,C9=16,S9=32,$9=1;var I9=8,Si=32,E9=64,O9=128,T9=256;var $x=class e{copy(){return new e(this.onCurve,this.endContour,this.x,this.y)}constructor(x,t,a=0,r=0){this.onCurve=x,this.endContour=t,this.x=a,this.y=r;}},Fr=class{constructor(x,t,a){this.glyphID=x,this.dx=t,this.dy=a,this.pos=0,this.scaleX=this.scaleY=1,this.scale01=this.scale10=0;}},Te=class extends _x{_getCBox(x){if(this._font._variationProcessor&&!x)return this.path.cbox;let t=this._font._getTableStream("glyf");t.pos+=this._font.loca.offsets[this.id];let a=Ci.decode(t),r=new D6(a.xMin,a.yMin,a.xMax,a.yMax);return Object.freeze(r)}_parseGlyphCoord(x,t,a,r){if(a){var n=x.readUInt8();r||(n=-n),n+=t;}else if(r)var n=t;else var n=t+x.readInt16BE();return n}_decode(){let x=this._font.loca.offsets[this.id],t=this._font.loca.offsets[this.id+1];if(x===t)return null;let a=this._font._getTableStream("glyf");a.pos+=x;let r=a.pos,n=Ci.decode(a);return n.numberOfContours>0?this._decodeSimple(n,a):n.numberOfContours<0&&this._decodeComposite(n,a,r),n}_decodeSimple(x,t){x.points=[];let a=new g(l,x.numberOfContours).decode(t);x.instructions=new g(k,l).decode(t);let r=[],n=a[a.length-1]+1;for(;r.length<n;){var s=t.readUInt8();if(r.push(s),s&A9){let d=t.readUInt8();for(let o=0;o<d;o++)r.push(s);}}for(var i=0;i<r.length;i++){var s=r[i];let o=new $x(!!(s&w9),a.indexOf(i)>=0,0,0);x.points.push(o);}let f=0;for(var i=0;i<r.length;i++){var s=r[i];x.points[i].x=f=this._parseGlyphCoord(t,f,s&v9,s&C9);}let c=0;for(var i=0;i<r.length;i++){var s=r[i];x.points[i].y=c=this._parseGlyphCoord(t,c,s&_9,s&S9);}if(this._font._variationProcessor){let d=x.points.slice();d.push(...this._getPhantomPoints(x)),this._font._variationProcessor.transformPoints(this.id,d),x.phantomPoints=d.slice(-4);}}_decodeComposite(x,t,a=0){x.components=[];let r=false,n=Si;for(;n&Si;){n=t.readUInt16BE();let c=t.pos-a,d=t.readUInt16BE();if(r||(r=(n&T9)!==0),n&$9)var s=t.readInt16BE(),i=t.readInt16BE();else var s=t.readInt8(),i=t.readInt8();var f=new Fr(d,s,i);f.pos=c,n&I9?f.scaleX=f.scaleY=(t.readUInt8()<<24|t.readUInt8()<<16)/1073741824:n&E9?(f.scaleX=(t.readUInt8()<<24|t.readUInt8()<<16)/1073741824,f.scaleY=(t.readUInt8()<<24|t.readUInt8()<<16)/1073741824):n&O9&&(f.scaleX=(t.readUInt8()<<24|t.readUInt8()<<16)/1073741824,f.scale01=(t.readUInt8()<<24|t.readUInt8()<<16)/1073741824,f.scale10=(t.readUInt8()<<24|t.readUInt8()<<16)/1073741824,f.scaleY=(t.readUInt8()<<24|t.readUInt8()<<16)/1073741824),x.components.push(f);}if(this._font._variationProcessor){let c=[];for(let d=0;d<x.components.length;d++){var f=x.components[d];c.push(new $x(true,true,f.dx,f.dy));}c.push(...this._getPhantomPoints(x)),this._font._variationProcessor.transformPoints(this.id,c),x.phantomPoints=c.splice(-4,4);for(let d=0;d<c.length;d++){let o=c[d];x.components[d].dx=o.x,x.components[d].dy=o.y;}}return r}_getPhantomPoints(x){let t=this._getCBox(true);this._metrics==null&&(this._metrics=_x.prototype._getMetrics.call(this,t));let{advanceWidth:a,advanceHeight:r,leftBearing:n,topBearing:s}=this._metrics;return [new $x(false,true,x.xMin-n,0),new $x(false,true,x.xMin-n+a,0),new $x(false,true,0,x.yMax+s),new $x(false,true,0,x.yMax+s+r)]}_getContours(){let x=this._decode();if(!x)return [];let t=[];if(x.numberOfContours<0)for(let s of x.components){let i=this._font.getGlyph(s.glyphID)._getContours();for(let f=0;f<i.length;f++){let c=i[f];for(let d=0;d<c.length;d++){let o=c[d],u=o.x*s.scaleX+o.y*s.scale01+s.dx,p=o.y*s.scaleY+o.x*s.scale10+s.dy;t.push(new $x(o.onCurve,o.endContour,u,p));}}}else t=x.points||[];x.phantomPoints&&!this._font.directory.tables.HVAR&&(this._metrics.advanceWidth=x.phantomPoints[1].x-x.phantomPoints[0].x,this._metrics.advanceHeight=x.phantomPoints[3].y-x.phantomPoints[2].y,this._metrics.leftBearing=x.xMin-x.phantomPoints[0].x,this._metrics.topBearing=x.phantomPoints[2].y-x.yMax);let a=[],r=[];for(let s=0;s<t.length;s++){var n=t[s];r.push(n),n.endContour&&(a.push(r),r=[]);}return a}_getMetrics(){if(this._metrics)return this._metrics;let x=this._getCBox(true);return super._getMetrics(x),this._font._variationProcessor&&!this._font.HVAR&&this.path,this._metrics}_getPath(){let x=this._getContours(),t=new Oe;for(let r=0;r<x.length;r++){let n=x[r],s=n[0],i=n[n.length-1],f=0;if(s.onCurve){var a=null;f=1;}else {i.onCurve?s=i:s=new $x(false,false,(s.x+i.x)/2,(s.y+i.y)/2);var a=s;}t.moveTo(s.x,s.y);for(let c=f;c<n.length;c++){let d=n[c],o=c===0?s:n[c-1];if(o.onCurve&&d.onCurve)t.lineTo(d.x,d.y);else if(o.onCurve&&!d.onCurve)var a=d;else if(!o.onCurve&&!d.onCurve){let p=(o.x+d.x)/2,b=(o.y+d.y)/2;t.quadraticCurveTo(o.x,o.y,p,b);var a=d;}else if(!o.onCurve&&d.onCurve){t.quadraticCurveTo(a.x,a.y,d.x,d.y);var a=null;}else throw new Error("Unknown TTF path state")}a&&t.quadraticCurveTo(a.x,a.y,s.x,s.y),t.closePath();}return t}constructor(...x){super(...x),ex(this,"type","TTF");}},Nr=class extends _x{_getName(){return this._font.CFF2?super._getName():this._font["CFF "].getGlyphName(this.id)}bias(x){return x.length<1240?107:x.length<33900?1131:32768}_getPath(){let x=this._font.CFF2||this._font["CFF "],{stream:t}=x,a=x.topDict.CharStrings[this.id],r=a.offset+a.length;t.pos=a.offset;let n=new Oe,s=[],i=[],f=null,c=0,d=0,o=0,u,p,b=false;this._usedGsubrs=u={},this._usedSubrs=p={};let m=x.globalSubrIndex||[],v=this.bias(m),$=x.privateDictForGlyph(this.id)||{},y=$.Subrs||[],h=this.bias(y),S=x.topDict.vstore&&x.topDict.vstore.itemVariationStore,E=$.vsindex,T=this._font._variationProcessor;function D(){f==null&&(f=s.shift()+$.nominalWidthX);}function R(){return s.length%2!==0&&D(),c+=s.length>>1,s.length=0}function G(Y,f0){b&&n.closePath(),n.moveTo(Y,f0),b=true;}let U=function(){for(;t.pos<r;){let s0=t.readUInt8();if(s0<32){let S0,c0,$0,J,x0,d0,l0,Vx,Xx,Ex,Wx,Kx,Ox,Yx,Tx,sx;switch(s0){case 1:case 3:case 18:case 23:R();break;case 4:s.length>1&&D(),o+=s.shift(),G(d,o);break;case 5:for(;s.length>=2;)d+=s.shift(),o+=s.shift(),n.lineTo(d,o);break;case 6:case 7:for($0=s0===6;s.length>=1;)$0?d+=s.shift():o+=s.shift(),n.lineTo(d,o),$0=!$0;break;case 8:for(;s.length>0;)J=d+s.shift(),x0=o+s.shift(),d0=J+s.shift(),l0=x0+s.shift(),d=d0+s.shift(),o=l0+s.shift(),n.bezierCurveTo(J,x0,d0,l0,d,o);break;case 10:if(S0=s.pop()+h,c0=y[S0],c0){p[S0]=true;let V=t.pos,p0=r;t.pos=c0.offset,r=c0.offset+c0.length,U(),t.pos=V,r=p0;}break;case 11:if(x.version>=2)break;return;case 14:if(x.version>=2)break;s.length>0&&D(),b&&(n.closePath(),b=false);break;case 15:if(x.version<2)throw new Error("vsindex operator not supported in CFF v1");E=s.pop();break;case 16:{if(x.version<2)throw new Error("blend operator not supported in CFF v1");if(!T)throw new Error("blend operator in non-variation font");let V=T.getBlendVector(S,E),p0=s.pop(),Zx=p0*V.length,W0=s.length-Zx,F6=W0-p0;for(let Jx=0;Jx<p0;Jx++){let Qx=s[F6+Jx];for(let Ax=0;Ax<V.length;Ax++)Qx+=V[Ax]*s[W0++];s[F6+Jx]=Qx;}for(;Zx--;)s.pop();break}case 19:case 20:R(),t.pos+=c+7>>3;break;case 21:s.length>2&&D(),d+=s.shift(),o+=s.shift(),G(d,o);break;case 22:s.length>1&&D(),d+=s.shift(),G(d,o);break;case 24:for(;s.length>=8;)J=d+s.shift(),x0=o+s.shift(),d0=J+s.shift(),l0=x0+s.shift(),d=d0+s.shift(),o=l0+s.shift(),n.bezierCurveTo(J,x0,d0,l0,d,o);d+=s.shift(),o+=s.shift(),n.lineTo(d,o);break;case 25:for(;s.length>=8;)d+=s.shift(),o+=s.shift(),n.lineTo(d,o);J=d+s.shift(),x0=o+s.shift(),d0=J+s.shift(),l0=x0+s.shift(),d=d0+s.shift(),o=l0+s.shift(),n.bezierCurveTo(J,x0,d0,l0,d,o);break;case 26:for(s.length%2&&(d+=s.shift());s.length>=4;)J=d,x0=o+s.shift(),d0=J+s.shift(),l0=x0+s.shift(),d=d0,o=l0+s.shift(),n.bezierCurveTo(J,x0,d0,l0,d,o);break;case 27:for(s.length%2&&(o+=s.shift());s.length>=4;)J=d+s.shift(),x0=o,d0=J+s.shift(),l0=x0+s.shift(),d=d0+s.shift(),o=l0,n.bezierCurveTo(J,x0,d0,l0,d,o);break;case 28:s.push(t.readInt16BE());break;case 29:if(S0=s.pop()+v,c0=m[S0],c0){u[S0]=true;let V=t.pos,p0=r;t.pos=c0.offset,r=c0.offset+c0.length,U(),t.pos=V,r=p0;}break;case 30:case 31:for($0=s0===31;s.length>=4;)$0?(J=d+s.shift(),x0=o,d0=J+s.shift(),l0=x0+s.shift(),o=l0+s.shift(),d=d0+(s.length===1?s.shift():0)):(J=d,x0=o+s.shift(),d0=J+s.shift(),l0=x0+s.shift(),d=d0+s.shift(),o=l0+(s.length===1?s.shift():0)),n.bezierCurveTo(J,x0,d0,l0,d,o),$0=!$0;break;case 12:switch(s0=t.readUInt8(),s0){case 3:let V=s.pop(),p0=s.pop();s.push(V&&p0?1:0);break;case 4:V=s.pop(),p0=s.pop(),s.push(V||p0?1:0);break;case 5:V=s.pop(),s.push(V?0:1);break;case 9:V=s.pop(),s.push(Math.abs(V));break;case 10:V=s.pop(),p0=s.pop(),s.push(V+p0);break;case 11:V=s.pop(),p0=s.pop(),s.push(V-p0);break;case 12:V=s.pop(),p0=s.pop(),s.push(V/p0);break;case 14:V=s.pop(),s.push(-V);break;case 15:V=s.pop(),p0=s.pop(),s.push(V===p0?1:0);break;case 18:s.pop();break;case 20:let Zx=s.pop(),W0=s.pop();i[W0]=Zx;break;case 21:W0=s.pop(),s.push(i[W0]||0);break;case 22:let F6=s.pop(),Jx=s.pop(),Qx=s.pop(),Ax=s.pop();s.push(Qx<=Ax?F6:Jx);break;case 23:s.push(Math.random());break;case 24:V=s.pop(),p0=s.pop(),s.push(V*p0);break;case 26:V=s.pop(),s.push(Math.sqrt(V));break;case 27:V=s.pop(),s.push(V,V);break;case 28:V=s.pop(),p0=s.pop(),s.push(p0,V);break;case 29:W0=s.pop(),W0<0?W0=0:W0>s.length-1&&(W0=s.length-1),s.push(s[W0]);break;case 30:let h6=s.pop(),x6=s.pop();if(x6>=0)for(;x6>0;){var Y=s[h6-1];for(let w0=h6-2;w0>=0;w0--)s[w0+1]=s[w0];s[0]=Y,x6--;}else for(;x6<0;){var Y=s[0];for(let ax=0;ax<=h6;ax++)s[ax]=s[ax+1];s[h6-1]=Y,x6++;}break;case 34:J=d+s.shift(),x0=o,d0=J+s.shift(),l0=x0+s.shift(),Vx=d0+s.shift(),Xx=l0,Ex=Vx+s.shift(),Wx=Xx,Kx=Ex+s.shift(),Ox=Wx,Yx=Kx+s.shift(),Tx=Ox,d=Yx,o=Tx,n.bezierCurveTo(J,x0,d0,l0,Vx,Xx),n.bezierCurveTo(Ex,Wx,Kx,Ox,Yx,Tx);break;case 35:sx=[];for(let w0=0;w0<=5;w0++)d+=s.shift(),o+=s.shift(),sx.push(d,o);n.bezierCurveTo(...sx.slice(0,6)),n.bezierCurveTo(...sx.slice(6)),s.shift();break;case 36:J=d+s.shift(),x0=o+s.shift(),d0=J+s.shift(),l0=x0+s.shift(),Vx=d0+s.shift(),Xx=l0,Ex=Vx+s.shift(),Wx=Xx,Kx=Ex+s.shift(),Ox=Wx+s.shift(),Yx=Kx+s.shift(),Tx=Ox,d=Yx,o=Tx,n.bezierCurveTo(J,x0,d0,l0,Vx,Xx),n.bezierCurveTo(Ex,Wx,Kx,Ox,Yx,Tx);break;case 37:let re=d,G0=o;sx=[];for(let w0=0;w0<=4;w0++)d+=s.shift(),o+=s.shift(),sx.push(d,o);Math.abs(d-re)>Math.abs(o-G0)?(d+=s.shift(),o=G0):(d=re,o+=s.shift()),sx.push(d,o),n.bezierCurveTo(...sx.slice(0,6)),n.bezierCurveTo(...sx.slice(6));break;default:throw new Error(`Unknown op: 12 ${s0}`)}break;default:throw new Error(`Unknown op: ${s0}`)}}else if(s0<247)s.push(s0-139);else if(s0<251){var f0=t.readUInt8();s.push((s0-247)*256+f0+108);}else if(s0<255){var f0=t.readUInt8();s.push(-(s0-251)*256-f0-108);}else s.push(t.readInt32BE()/65536);}};return U(),b&&n.closePath(),n}constructor(...x){super(...x),ex(this,"type","CFF");}},R9=new C({originX:l,originY:l,type:new t0(4),data:new rx(e=>e.parent.buflen-e._currentOffset)}),Lr=class extends Te{getImageForSize(x){for(let s=0;s<this._font.sbix.imageTables.length;s++){var t=this._font.sbix.imageTables[s];if(t.ppem>=x)break}let a=t.imageOffsets,r=a[this.id],n=a[this.id+1];return r===n?null:(this._font.stream.pos=r,R9.decode(this._font.stream,{buflen:n-r}))}render(x,t){let a=this.getImageForSize(t);if(a!=null){let r=t/this._font.unitsPerEm;x.image(a.data,{height:t,x:a.originX,y:(this.bbox.minY-a.originY)*r});}this._font.sbix.flags.renderOutlines&&super.render(x,t);}constructor(...x){super(...x),ex(this,"type","SBIX");}},yt=class{constructor(x,t){this.glyph=x,this.color=t;}},Br=class extends _x{_getBBox(){let x=new D6;for(let t=0;t<this.layers.length;t++){let r=this.layers[t].glyph.bbox;x.addPoint(r.minX,r.minY),x.addPoint(r.maxX,r.maxY);}return x}get layers(){let x=this._font.CPAL,t=this._font.COLR,a=0,r=t.baseGlyphRecord.length-1;for(;a<=r;){let d=a+r>>1;var n=t.baseGlyphRecord[d];if(this.id<n.gid)r=d-1;else if(this.id>n.gid)a=d+1;else {var s=n;break}}if(s==null){var i=this._font._getBaseGlyph(this.id),f={red:0,green:0,blue:0,alpha:255};return [new yt(i,f)]}let c=[];for(let d=s.firstLayerIndex;d<s.firstLayerIndex+s.numLayers;d++){var n=t.layerRecords[d],f=x.colorRecords[n.paletteIndex],i=this._font._getBaseGlyph(n.gid);c.push(new yt(i,f));}return c}render(x,t){for(let{glyph:a,color:r}of this.layers)x.fillColor([r.red,r.green,r.blue],r.alpha/255*100),a.render(x,t);}constructor(...x){super(...x),ex(this,"type","COLR");}},k9=32768,P9=4095,D9=32768,$i=16384,F9=8192,Ii=4095,Ei=128,Oi=127,N9=128,L9=64,B9=63,Mr=class{normalizeCoords(x){let t=[];for(var a=0;a<this.font.fvar.axis.length;a++){let r=this.font.fvar.axis[a];x[a]<r.defaultValue?t.push((x[a]-r.defaultValue+Number.EPSILON)/(r.defaultValue-r.minValue+Number.EPSILON)):t.push((x[a]-r.defaultValue+Number.EPSILON)/(r.maxValue-r.defaultValue+Number.EPSILON));}if(this.font.avar)for(var a=0;a<this.font.avar.segment.length;a++){let n=this.font.avar.segment[a];for(let s=0;s<n.correspondence.length;s++){let i=n.correspondence[s];if(s>=1&&t[a]<i.fromCoord){let f=n.correspondence[s-1];t[a]=((t[a]-f.fromCoord)*(i.toCoord-f.toCoord)+Number.EPSILON)/(i.fromCoord-f.fromCoord+Number.EPSILON)+f.toCoord;break}}}return t}transformPoints(x,t){if(!this.font.fvar||!this.font.gvar)return;let{gvar:a}=this.font;if(x>=a.glyphCount)return;let r=a.offsets[x];if(r===a.offsets[x+1])return;let{stream:n}=this.font;if(n.pos=r,n.pos>=n.length)return;let s=n.readUInt16BE(),i=r+n.readUInt16BE();if(s&k9){var f=n.pos;n.pos=i;var c=this.decodePoints();i=n.pos,n.pos=f;}let d=t.map(v=>v.copy());s&=P9;for(let v=0;v<s;v++){let $=n.readUInt16BE(),y=n.readUInt16BE();if(y&D9){var o=[];for(let R=0;R<a.axisCount;R++)o.push(n.readInt16BE()/16384);}else {if((y&Ii)>=a.globalCoordCount)throw new Error("Invalid gvar table");var o=a.globalCoords[y&Ii];}if(y&$i){var u=[];for(let R=0;R<a.axisCount;R++)u.push(n.readInt16BE()/16384);var p=[];for(let R=0;R<a.axisCount;R++)p.push(n.readInt16BE()/16384);}let h=this.tupleFactor(y,o,u,p);if(h===0){i+=$;continue}var f=n.pos;if(n.pos=i,y&F9)var b=this.decodePoints();else var b=c;let E=b.length===0?t.length:b.length,T=this.decodeDeltas(E),D=this.decodeDeltas(E);if(b.length===0)for(let R=0;R<t.length;R++){var m=t[R];m.x+=Math.round(T[R]*h),m.y+=Math.round(D[R]*h);}else {let R=d.map(U=>U.copy()),G=t.map(()=>false);for(let U=0;U<b.length;U++){let Y=b[U];if(Y<t.length){let f0=R[Y];G[Y]=true,f0.x+=T[U]*h,f0.y+=D[U]*h;}}this.interpolateMissingDeltas(R,d,G);for(let U=0;U<t.length;U++){let Y=R[U].x-d[U].x,f0=R[U].y-d[U].y;t[U].x=Math.round(t[U].x+Y),t[U].y=Math.round(t[U].y+f0);}}i+=$,n.pos=f;}}decodePoints(){let x=this.font.stream,t=x.readUInt8();t&Ei&&(t=(t&Oi)<<8|x.readUInt8());let a=new Uint16Array(t),r=0,n=0;for(;r<t;){let s=x.readUInt8(),i=(s&Oi)+1,f=s&Ei?x.readUInt16:x.readUInt8;for(let c=0;c<i&&r<t;c++)n+=f.call(x),a[r++]=n;}return a}decodeDeltas(x){let t=this.font.stream,a=0,r=new Int16Array(x);for(;a<x;){let n=t.readUInt8(),s=(n&B9)+1;if(n&N9)a+=s;else {let i=n&L9?t.readInt16BE:t.readInt8;for(let f=0;f<s&&a<x;f++)r[a++]=i.call(t);}}return r}tupleFactor(x,t,a,r){let n=this.normalizedCoords,{gvar:s}=this.font,i=1;for(let f=0;f<s.axisCount;f++)if(t[f]!==0){if(n[f]===0)return 0;if((x&$i)===0){if(n[f]<Math.min(0,t[f])||n[f]>Math.max(0,t[f]))return 0;i=(i*n[f]+Number.EPSILON)/(t[f]+Number.EPSILON);}else {if(n[f]<a[f]||n[f]>r[f])return 0;n[f]<t[f]?i=i*(n[f]-a[f]+Number.EPSILON)/(t[f]-a[f]+Number.EPSILON):i=i*(r[f]-n[f]+Number.EPSILON)/(r[f]-t[f]+Number.EPSILON);}}return i}interpolateMissingDeltas(x,t,a){if(x.length===0)return;let r=0;for(;r<x.length;){let n=r,s=r,i=x[s];for(;!i.endContour;)i=x[++s];for(;r<=s&&!a[r];)r++;if(r>s)continue;let f=r,c=r;for(r++;r<=s;)a[r]&&(this.deltaInterpolate(c+1,r-1,c,r,t,x),c=r),r++;c===f?this.deltaShift(n,s,c,t,x):(this.deltaInterpolate(c+1,s,c,f,t,x),f>0&&this.deltaInterpolate(n,f-1,c,f,t,x)),r=s+1;}}deltaInterpolate(x,t,a,r,n,s){if(x>t)return;let i=["x","y"];for(let c=0;c<i.length;c++){let d=i[c];if(n[a][d]>n[r][d]){var f=a;a=r,r=f;}let o=n[a][d],u=n[r][d],p=s[a][d],b=s[r][d];if(o!==u||p===b){let m=o===u?0:(b-p)/(u-o);for(let v=x;v<=t;v++){let $=n[v][d];$<=o?$+=p-o:$>=u?$+=b-u:$=p+($-o)*m,s[v][d]=$;}}}}deltaShift(x,t,a,r,n){let s=n[a].x-r[a].x,i=n[a].y-r[a].y;if(!(s===0&&i===0))for(let f=x;f<=t;f++)f!==a&&(n[f].x+=s,n[f].y+=i);}getAdvanceAdjustment(x,t){let a,r;if(t.advanceWidthMapping){let n=x;n>=t.advanceWidthMapping.mapCount&&(n=t.advanceWidthMapping.mapCount-1);t.advanceWidthMapping.entryFormat;({outerIndex:a,innerIndex:r}=t.advanceWidthMapping.mapData[n]);}else a=0,r=x;return this.getDelta(t.itemVariationStore,a,r)}getDelta(x,t,a){if(t>=x.itemVariationData.length)return 0;let r=x.itemVariationData[t];if(a>=r.deltaSets.length)return 0;let n=r.deltaSets[a],s=this.getBlendVector(x,t),i=0;for(let f=0;f<r.regionIndexCount;f++)i+=n.deltas[f]*s[f];return i}getBlendVector(x,t){let a=x.itemVariationData[t];if(this.blendVectors.has(a))return this.blendVectors.get(a);let r=this.normalizedCoords,n=[];for(let s=0;s<a.regionIndexCount;s++){let i=1,f=a.regionIndexes[s],c=x.variationRegionList.variationRegions[f];for(let d=0;d<c.length;d++){let o=c[d],u;o.startCoord>o.peakCoord||o.peakCoord>o.endCoord||o.startCoord<0&&o.endCoord>0&&o.peakCoord!==0||o.peakCoord===0?u=1:r[d]<o.startCoord||r[d]>o.endCoord?u=0:r[d]===o.peakCoord?u=1:r[d]<o.peakCoord?u=(r[d]-o.startCoord+Number.EPSILON)/(o.peakCoord-o.startCoord+Number.EPSILON):u=(o.endCoord-r[d]+Number.EPSILON)/(o.endCoord-o.peakCoord+Number.EPSILON),i*=u;}n[s]=i;}return this.blendVectors.set(a,n),n}constructor(x,t){this.font=x,this.normalizedCoords=this.normalizeCoords(t),this.blendVectors=new Map;}};Promise.resolve();var wt=class{includeGlyph(x){return typeof x=="object"&&(x=x.id),this.mapping[x]==null&&(this.glyphs.push(x),this.mapping[x]=this.glyphs.length-1),this.mapping[x]}constructor(x){this.font=x,this.glyphs=[],this.mapping={},this.includeGlyph(0);}},M9=1,G9=2,U9=4,j9=8,q9=16,z9=32,vt=class{static size(x){return x>=0&&x<=255?1:2}static encode(x,t){t>=0&&t<=255?x.writeUInt8(t):x.writeInt16BE(t);}},Ti=new C({numberOfContours:O,xMin:O,yMin:O,xMax:O,yMax:O,endPtsOfContours:new g(l,"numberOfContours"),instructions:new g(k,l),flags:new g(k,0),xPoints:new g(vt,0),yPoints:new g(vt,0)}),Gr=class{encodeSimple(x,t=[]){let a=[],r=[],n=[],s=[],i=0,f=0,c=0,d=0,o=0;for(let $=0;$<x.commands.length;$++){let y=x.commands[$];for(let h=0;h<y.args.length;h+=2){let S=y.args[h],E=y.args[h+1],T=0;if(y.command==="quadraticCurveTo"&&h===2){let D=x.commands[$+1];if(D&&D.command==="quadraticCurveTo"){let R=(f+D.args[0])/2,G=(c+D.args[1])/2;if(S===R&&E===G)continue}}y.command==="quadraticCurveTo"&&h===0||(T|=M9),T=this._encodePoint(S,f,r,T,G9,q9),T=this._encodePoint(E,c,n,T,U9,z9),T===d&&i<255?(s[s.length-1]|=j9,i++):(i>0&&(s.push(i),i=0),s.push(T),d=T),f=S,c=E,o++;}y.command==="closePath"&&a.push(o-1);}x.commands.length>1&&x.commands[x.commands.length-1].command!=="closePath"&&a.push(o-1);let u=x.bbox,p={numberOfContours:a.length,xMin:u.minX,yMin:u.minY,xMax:u.maxX,yMax:u.maxY,endPtsOfContours:a,instructions:t,flags:s,xPoints:r,yPoints:n},b=Ti.size(p),m=4-b%4,v=new c6(b+m);return Ti.encode(v,p),m!==0&&v.fill(0,m),v.buffer}_encodePoint(x,t,a,r,n,s){let i=x-t;return x===t?r|=s:(-255<=i&&i<=255&&(r|=n,i<0?i=-i:r|=s),a.push(i)),r}},Ur=class extends wt{_addGlyph(x){let t=this.font.getGlyph(x),a=t._decode(),r=this.font.loca.offsets[x],n=this.font.loca.offsets[x+1],s=this.font._getTableStream("glyf");s.pos+=r;let i=s.readBuffer(n-r);if(a&&a.numberOfContours<0){i=new Uint8Array(i);let f=new DataView(i.buffer);for(let c of a.components)x=this.includeGlyph(c.glyphID),f.setUint16(c.pos,x);}else a&&this.font._variationProcessor&&(i=this.glyphEncoder.encodeSimple(t.path,a.instructions));return this.glyf.push(i),this.loca.offsets.push(this.offset),this.hmtx.metrics.push({advance:t.advanceWidth,bearing:t._getMetrics().leftBearing}),this.offset+=i.length,this.glyf.length-1}encode(){this.glyf=[],this.offset=0,this.loca={offsets:[],version:this.font.loca.version},this.hmtx={metrics:[],bearings:[]};let x=0;for(;x<this.glyphs.length;)this._addGlyph(this.glyphs[x++]);let t=(0, Q7.default)(this.font.maxp);t.numGlyphs=this.glyf.length,this.loca.offsets.push(this.offset);let a=(0, Q7.default)(this.font.head);a.indexToLocFormat=this.loca.version;let r=(0, Q7.default)(this.font.hhea);return r.numberOfMetrics=this.hmtx.metrics.length,r5.toBuffer({tables:{head:a,hhea:r,loca:this.loca,maxp:t,"cvt ":this.font["cvt "],prep:this.font.prep,glyf:this.glyf,hmtx:this.hmtx,fpgm:this.font.fpgm}})}constructor(x){super(x),this.glyphEncoder=new Gr;}},jr=class extends wt{subsetCharstrings(){this.charstrings=[];let x={};for(let t of this.glyphs){this.charstrings.push(this.cff.getCharString(t));let a=this.font.getGlyph(t);a.path;for(let n in a._usedGsubrs)x[n]=true;}this.gsubrs=this.subsetSubrs(this.cff.globalSubrIndex,x);}subsetSubrs(x,t){let a=[];for(let r=0;r<x.length;r++){let n=x[r];t[r]?(this.cff.stream.pos=n.offset,a.push(this.cff.stream.readBuffer(n.length))):a.push(new Uint8Array([11]));}return a}subsetFontdict(x){x.FDArray=[],x.FDSelect={version:0,fds:[]};let t={},a=[],r={};for(let n of this.glyphs){let s=this.cff.fdForGlyph(n);if(s==null)continue;t[s]||(x.FDArray.push(Object.assign({},this.cff.topDict.FDArray[s])),a.push({}),r[s]=x.FDArray.length-1),t[s]=true,x.FDSelect.fds.push(r[s]);let i=this.font.getGlyph(n);i.path;for(let c in i._usedSubrs)a[r[s]][c]=true;}for(let n=0;n<x.FDArray.length;n++){let s=x.FDArray[n];delete s.FontName,s.Private&&s.Private.Subrs&&(s.Private=Object.assign({},s.Private),s.Private.Subrs=this.subsetSubrs(s.Private.Subrs,a[n]));}}createCIDFontdict(x){let t={};for(let r of this.glyphs){let n=this.font.getGlyph(r);n.path;for(let i in n._usedSubrs)t[i]=true;}let a=Object.assign({},this.cff.topDict.Private);return this.cff.topDict.Private&&this.cff.topDict.Private.Subrs&&(a.Subrs=this.subsetSubrs(this.cff.topDict.Private.Subrs,t)),x.FDArray=[{Private:a}],x.FDSelect={version:3,nRanges:1,ranges:[{first:0,fd:0}],sentinel:this.charstrings.length}}addString(x){return x?(this.strings||(this.strings=[]),this.strings.push(x),xt.length+this.strings.length-1):null}encode(){this.subsetCharstrings();let x={version:this.charstrings.length>255?2:1,ranges:[{first:1,nLeft:this.charstrings.length-2}]},t=Object.assign({},this.cff.topDict);t.Private=null,t.charset=x,t.Encoding=null,t.CharStrings=this.charstrings;for(let r of ["version","Notice","Copyright","FullName","FamilyName","Weight","PostScript","BaseFontName","FontName"])t[r]=this.addString(this.cff.string(t[r]));t.ROS=[this.addString("Adobe"),this.addString("Identity"),0],t.CIDCount=this.charstrings.length,this.cff.isCIDFont?this.subsetFontdict(t):this.createCIDFontdict(t);let a={version:1,hdrSize:this.cff.hdrSize,offSize:4,header:this.cff.header,nameIndex:[this.cff.postscriptName],topDictIndex:[t],stringIndex:this.strings,globalSubrIndex:this.gsubrs};return Qi.toBuffer(a)}constructor(x){if(super(x),this.cff=this.font["CFF "],!this.cff)throw new Error("Not a CFF Font")}},X0=class e{static probe(x){let t=St.decode(x.slice(0,4));return t==="true"||t==="OTTO"||t==="\0\0\0"}setDefaultLanguage(x=null){this.defaultLanguage=x;}_getTable(x){if(!(x.tag in this._tables))try{this._tables[x.tag]=this._decodeTable(x);}catch(t){}return this._tables[x.tag]}_getTableStream(x){let t=this.directory.tables[x];return t?(this.stream.pos=t.offset,this.stream):null}_decodeDirectory(){return this.directory=r5.decode(this.stream,{_startOffset:0})}_decodeTable(x){let t=this.stream.pos,a=this._getTableStream(x.tag),r=dt[x.tag].decode(a,this,x.length);return this.stream.pos=t,r}getName(x,t=this.defaultLanguage||tt){let a=this.name&&this.name.records[x];return a&&(a[t]||a[this.defaultLanguage]||a[tt]||a.en||a[Object.keys(a)[0]])||null}get postscriptName(){return this.getName("postscriptName")}get fullName(){return this.getName("fullName")}get familyName(){return this.getName("fontFamily")}get subfamilyName(){return this.getName("fontSubfamily")}get copyright(){return this.getName("copyright")}get version(){return this.getName("version")}get ascent(){return this.hhea.ascent}get descent(){return this.hhea.descent}get lineGap(){return this.hhea.lineGap}get underlinePosition(){return this.post.underlinePosition}get underlineThickness(){return this.post.underlineThickness}get italicAngle(){return this.post.italicAngle}get capHeight(){let x=this["OS/2"];return x?x.capHeight:this.ascent}get xHeight(){let x=this["OS/2"];return x?x.xHeight:0}get numGlyphs(){return this.maxp.numGlyphs}get unitsPerEm(){return this.head.unitsPerEm}get bbox(){return Object.freeze(new D6(this.head.xMin,this.head.yMin,this.head.xMax,this.head.yMax))}get _cmapProcessor(){return new i7(this.cmap)}get characterSet(){return this._cmapProcessor.getCharacterSet()}hasGlyphForCodePoint(x){return !!this._cmapProcessor.lookup(x)}glyphForCodePoint(x){return this.getGlyph(this._cmapProcessor.lookup(x),[x])}glyphsForString(x){let t=[],a=x.length,r=0,n=-1,s=-1;for(;r<=a;){let i=0,f=0;if(r<a){if(i=x.charCodeAt(r++),55296<=i&&i<=56319&&r<a){let c=x.charCodeAt(r);56320<=c&&c<=57343&&(r++,i=((i&1023)<<10)+(c&1023)+65536);}f=65024<=i&&i<=65039||917760<=i&&i<=917999?1:0;}else r++;s===0&&f===1?t.push(this.getGlyph(this._cmapProcessor.lookup(n,i),[n,i])):s===0&&f===0&&t.push(this.glyphForCodePoint(n)),n=i,s=f;}return t}get _layoutEngine(){return new Dr(this)}layout(x,t,a,r,n){return this._layoutEngine.layout(x,t,a,r,n)}stringsForGlyph(x){return this._layoutEngine.stringsForGlyph(x)}get availableFeatures(){return this._layoutEngine.getAvailableFeatures()}getAvailableFeatures(x,t){return this._layoutEngine.getAvailableFeatures(x,t)}_getBaseGlyph(x,t=[]){return this._glyphs[x]||(this.directory.tables.glyf?this._glyphs[x]=new Te(x,t,this):(this.directory.tables["CFF "]||this.directory.tables.CFF2)&&(this._glyphs[x]=new Nr(x,t,this))),this._glyphs[x]||null}getGlyph(x,t=[]){return this._glyphs[x]||(this.directory.tables.sbix?this._glyphs[x]=new Lr(x,t,this):this.directory.tables.COLR&&this.directory.tables.CPAL?this._glyphs[x]=new Br(x,t,this):this._getBaseGlyph(x,t)),this._glyphs[x]||null}createSubset(){return this.directory.tables["CFF "]?new jr(this):new Ur(this)}get variationAxes(){let x={};if(!this.fvar)return x;for(let t of this.fvar.axis)x[t.axisTag.trim()]={name:t.name.en,min:t.minValue,default:t.defaultValue,max:t.maxValue};return x}get namedVariations(){let x={};if(!this.fvar)return x;for(let t of this.fvar.instance){let a={};for(let r=0;r<this.fvar.axis.length;r++){let n=this.fvar.axis[r];a[n.axisTag.trim()]=t.coord[r];}x[t.name.en]=a;}return x}getVariation(x){if(!(this.directory.tables.fvar&&(this.directory.tables.gvar&&this.directory.tables.glyf||this.directory.tables.CFF2)))throw new Error("Variations require a font with the fvar, gvar and glyf, or CFF2 tables.");if(typeof x=="string"&&(x=this.namedVariations[x]),typeof x!="object")throw new Error("Variation settings must be either a variation name or settings object.");let t=this.fvar.axis.map((n,s)=>{let i=n.axisTag.trim();return i in x?Math.max(n.minValue,Math.min(n.maxValue,x[i])):n.defaultValue}),a=new v0(this.stream.buffer);a.pos=this._directoryPos;let r=new e(a,t);return r._tables=this._tables,r}get _variationProcessor(){if(!this.fvar)return null;let x=this.variationCoords;return !x&&!this.CFF2?null:(x||(x=this.fvar.axis.map(t=>t.defaultValue)),new Mr(this,x))}getFont(x){return this.getVariation(x)}constructor(x,t=null){ex(this,"type","TTF"),this.defaultLanguage=null,this.stream=x,this.variationCoords=t,this._directoryPos=this.stream.pos,this._tables={},this._glyphs={},this._decodeDirectory();for(let a in this.directory.tables){let r=this.directory.tables[a];dt[a]&&r.length>0&&Object.defineProperty(this,a,{get:this._getTable.bind(this,r)});}}};B0([j0],X0.prototype,"bbox",null);B0([j0],X0.prototype,"_cmapProcessor",null);B0([j0],X0.prototype,"characterSet",null);B0([j0],X0.prototype,"_layoutEngine",null);B0([j0],X0.prototype,"variationAxes",null);B0([j0],X0.prototype,"namedVariations",null);B0([j0],X0.prototype,"_variationProcessor",null);var H9=new C({tag:new t0(4),offset:new w(_,"void",{type:"global"}),compLength:_,length:_,origChecksum:_}),u5=new C({tag:new t0(4),flavor:_,length:_,numTables:l,reserved:new h0(l),totalSfntSize:_,majorVersion:l,minorVersion:l,metaOffset:_,metaLength:_,metaOrigLength:_,privOffset:_,privLength:_,tables:new g(H9,"numTables")});u5.process=function(){let e={};for(let x of this.tables)e[x.tag]=x;this.tables=e;};var V9=u5,qr=class extends X0{static probe(x){return St.decode(x.slice(0,4))==="wOFF"}_decodeDirectory(){this.directory=V9.decode(this.stream,{_startOffset:0});}_getTableStream(x){let t=this.directory.tables[x];if(t)if(this.stream.pos=t.offset,t.compLength<t.length){this.stream.pos+=2;let a=new Uint8Array(t.length),r=(0, Fi.default)(this.stream.readBuffer(t.compLength-2),a);return new v0(r)}else return this.stream;return null}constructor(...x){super(...x),ex(this,"type","WOFF");}},zr=class extends Te{_decode(){return this._font._transformedGlyphs[this.id]}_getCBox(){return this.path.bbox}constructor(...x){super(...x),ex(this,"type","WOFF2");}},Ri={decode(e){let x=0,t=[0,1,2,3,4];for(let a=0;a<t.length;a++){let n=e.readUInt8();if(x&3758096384)throw new Error("Overflow");if(x=x<<7|n&127,(n&128)===0)return x}throw new Error("Bad base 128 number")}},X9=["cmap","head","hhea","hmtx","maxp","name","OS/2","post","cvt ","fpgm","glyf","loca","prep","CFF ","VORG","EBDT","EBLC","gasp","hdmx","kern","LTSH","PCLT","VDMX","vhea","vmtx","BASE","GDEF","GPOS","GSUB","EBSC","JSTF","MATH","CBDT","CBLC","COLR","CPAL","SVG ","sbix","acnt","avar","bdat","bloc","bsln","cvar","fdsc","feat","fmtx","fvar","gvar","hsty","just","lcar","mort","morx","opbd","prop","trak","Zapf","Silf","Glat","Gloc","Feat","Sill"],W9=new C({flags:k,customTag:new A6(new t0(4),e=>(e.flags&63)===63),tag:e=>e.customTag||X9[e.flags&63],length:Ri,transformVersion:e=>e.flags>>>6&3,transformed:e=>e.tag==="glyf"||e.tag==="loca"?e.transformVersion===0:e.transformVersion!==0,transformLength:new A6(Ri,e=>e.transformed)}),b5=new C({tag:new t0(4),flavor:_,length:_,numTables:l,reserved:new h0(l),totalSfntSize:_,totalCompressedSize:_,majorVersion:l,minorVersion:l,metaOffset:_,metaLength:_,metaOrigLength:_,privOffset:_,privLength:_,tables:new g(W9,"numTables")});b5.process=function(){let e={};for(let x=0;x<this.tables.length;x++){let t=this.tables[x];e[t.tag]=t;}return this.tables=e};var K9=b5,Hr=class extends X0{static probe(x){return St.decode(x.slice(0,4))==="wOF2"}_decodeDirectory(){this.directory=K9.decode(this.stream),this._dataPos=this.stream.pos;}_decompress(){if(!this._decompressed){this.stream.pos=this._dataPos;let x=this.stream.readBuffer(this.directory.totalCompressedSize),t=0;for(let r in this.directory.tables){let n=this.directory.tables[r];n.offset=t,t+=n.transformLength!=null?n.transformLength:n.length;}let a=(0, Ni.default)(x,t);if(!a)throw new Error("Error decoding compressed data in WOFF2");this.stream=new v0(a),this._decompressed=true;}}_decodeTable(x){return this._decompress(),super._decodeTable(x)}_getBaseGlyph(x,t=[]){if(!this._glyphs[x])return this.directory.tables.glyf&&this.directory.tables.glyf.transformed?(this._transformedGlyphs||this._transformGlyfTable(),this._glyphs[x]=new zr(x,t,this)):super._getBaseGlyph(x,t)}_transformGlyfTable(){this._decompress(),this.stream.pos=this.directory.tables.glyf.offset;let x=Y9.decode(this.stream),t=[];for(let r=0;r<x.numGlyphs;r++){let n={},s=x.nContours.readInt16BE();if(n.numberOfContours=s,s>0){let i=[],f=0;for(let c=0;c<s;c++){let d=rr(x.nPoints);f+=d,i.push(f);}n.points=x8(x.flags,x.glyphs,f);for(let c=0;c<s;c++)n.points[i[c]-1].endContour=true;var a=rr(x.glyphs);}else if(s<0&&Te.prototype._decodeComposite.call({_font:this},n,x.composites))var a=rr(x.glyphs);t.push(n);}this._transformedGlyphs=t;}constructor(...x){super(...x),ex(this,"type","WOFF2");}},u6=class{decode(x,t){return new v0(this._buf.decode(x,t))}constructor(x){this.length=x,this._buf=new rx(x);}},Y9=new C({version:_,numGlyphs:l,indexFormat:l,nContourStreamSize:_,nPointsStreamSize:_,flagStreamSize:_,glyphStreamSize:_,compositeStreamSize:_,bboxStreamSize:_,instructionStreamSize:_,nContours:new u6("nContourStreamSize"),nPoints:new u6("nPointsStreamSize"),flags:new u6("flagStreamSize"),glyphs:new u6("glyphStreamSize"),composites:new u6("compositeStreamSize"),bboxes:new u6("bboxStreamSize"),instructions:new u6("instructionStreamSize")}),Z9=253,J9=254,Q9=255,ki=253;function rr(e){let x=e.readUInt8();return x===Z9?e.readUInt16BE():x===Q9?e.readUInt8()+ki:x===J9?e.readUInt8()+ki*2:x}function jx(e,x){return e&1?x:-x}function x8(e,x,t){let a,r=a=0,n=[];for(let f=0;f<t;f++){let c=0,d=0,o=e.readUInt8(),u=!(o>>7);if(o&=127,o<10)c=0,d=jx(o,((o&14)<<7)+x.readUInt8());else if(o<20)c=jx(o,((o-10&14)<<7)+x.readUInt8()),d=0;else if(o<84){var s=o-20,i=x.readUInt8();c=jx(o,1+(s&48)+(i>>4)),d=jx(o>>1,1+((s&12)<<2)+(i&15));}else if(o<120){var s=o-84;c=jx(o,1+(s/12<<8)+x.readUInt8()),d=jx(o>>1,1+(s%12>>2<<8)+x.readUInt8());}else if(o<124){var i=x.readUInt8();let b=x.readUInt8();c=jx(o,(i<<4)+(b>>4)),d=jx(o>>1,((b&15)<<8)+x.readUInt8());}else c=jx(o,x.readUInt16BE()),d=jx(o>>1,x.readUInt16BE());r+=c,a+=d,n.push(new $x(u,false,r,a));}return n}var e8=new W(_,{65536:{numFonts:_,offsets:new g(_,"numFonts")},131072:{numFonts:_,offsets:new g(_,"numFonts"),dsigTag:_,dsigLength:_,dsigOffset:_}}),Vr=class{static probe(x){return St.decode(x.slice(0,4))==="ttcf"}getFont(x){for(let t of this.header.offsets){let a=new v0(this.stream.buffer);a.pos=t;let r=new X0(a);if(r.postscriptName===x||r.postscriptName instanceof Uint8Array&&x instanceof Uint8Array&&r.postscriptName.every((n,s)=>x[s]===n))return r}return null}get fonts(){let x=[];for(let t of this.header.offsets){let a=new v0(this.stream.buffer);a.pos=t,x.push(new X0(a));}return x}constructor(x){if(ex(this,"type","TTC"),this.stream=x,x.readString(4)!=="ttcf")throw new Error("Not a TrueType collection");this.header=e8.decode(x);}},t8=new t0(k);new C({len:_,buf:new rx("len")});var a8=new C({id:l,nameOffset:O,attr:k,dataOffset:d6,handle:_}),r8=new C({name:new t0(4),maxTypeIndex:l,refList:new w(l,new g(a8,e=>e.maxTypeIndex+1),{type:"parent"})}),n8=new C({length:l,types:new g(r8,e=>e.length+1)}),s8=new C({reserved:new h0(k,24),typeList:new w(l,n8),nameListOffset:new w(l,"void")}),Pi=new C({dataOffset:_,map:new w(_,s8),dataLength:_,mapLength:_}),Xr=class{static probe(x){let t=new v0(x);try{var a=Pi.decode(t);}catch{return false}for(let r of a.map.typeList.types)if(r.name==="sfnt")return true;return false}getFont(x){if(!this.sfnt)return null;for(let t of this.sfnt.refList){let a=this.header.dataOffset+t.dataOffset+4,r=new v0(this.stream.buffer.slice(a)),n=new X0(r);if(n.postscriptName===x||n.postscriptName instanceof Uint8Array&&x instanceof Uint8Array&&n.postscriptName.every((s,i)=>x[i]===s))return n}return null}get fonts(){let x=[];for(let t of this.sfnt.refList){let a=this.header.dataOffset+t.dataOffset+4,r=new v0(this.stream.buffer.slice(a));x.push(new X0(r));}return x}constructor(x){ex(this,"type","DFont"),this.stream=x,this.header=Pi.decode(this.stream);for(let t of this.header.map.typeList.types){for(let a of t.refList)a.nameOffset>=0?(this.stream.pos=a.nameOffset+this.header.map.nameListOffset,a.name=t8.decode(this.stream)):a.name=null;t.name==="sfnt"&&(this.sfnt=t);}}};Re(X0);Re(qr);Re(Hr);Re(Vr);Re(Xr);var Ot=class e{hb;faces=new Map;fonts=new Map;blobs=new Map;fontkitFonts=new Map;wasmBaseURL;initPromise;static fallbackLoader;static setFallbackLoader(x){e.fallbackLoader=x;}constructor(x){this.wasmBaseURL=x;}async init(){if(this.initPromise){await this.initPromise;return}if(!this.hb){this.initPromise=this._doInit();try{await this.initPromise;}catch(x){throw new Error(`Failed to initialize FontRegistry: ${x instanceof Error?x.message:String(x)}`)}}}async _doInit(){try{this.hb=await ds("https://shotstack-ingest-api-dev-sources.s3.ap-southeast-2.amazonaws.com/euo5r93oyr/zzz01k9h-yycyx-2x2y6-qx9bj-7n567b/source.wasm");}catch(x){throw this.initPromise=void 0,x}}async getHB(){if(!this.hb)try{await this.init();}catch(x){throw new Error(`Failed to get HarfBuzz instance: ${x instanceof Error?x.message:String(x)}`)}return this.hb}key(x){return `${x.family}__${x.weight??"400"}__${x.style??"normal"}`}async registerFromBytes(x,t){try{this.hb||await this.init();let a=this.key(t);if(this.fonts.has(a))return;let r=this.hb.createBlob(x),n=this.hb.createFace(r,0),s=this.hb.createFont(n),i=n.upem||1e3;s.setScale(i,i);let f=t.weight??"400",c=typeof f=="string"?parseInt(f,10):f;if(c!==400&&typeof s.setVariations=="function")try{s.setVariations(`wght=${c}`);}catch{}this.blobs.set(a,r),this.faces.set(a,n),this.fonts.set(a,s);try{let d=typeof Buffer<"u"?Buffer.from(x):new Uint8Array(x),o=d7(d);if(o.variationAxes&&Object.keys(o.variationAxes).length>0){let u=o.getVariation({wght:c});this.fontkitFonts.set(a,u),console.log(`\u2705 Registered variable font: ${t.family} weight=${c}`);}else this.fontkitFonts.set(a,o),console.log(`\u2705 Registered static font: ${t.family}`);}catch(d){console.warn(`\u26A0\uFE0F Fontkit failed for ${t.family}:`,d);}}catch(a){throw new Error(`Failed to register font "${t.family}": ${a instanceof Error?a.message:String(a)}`)}}async tryFallbackInstall(x){let t=e.fallbackLoader;if(!t)return false;try{let a=await t({family:x.family,weight:x.weight??"400",style:x.style??"normal"});return a?(await this.registerFromBytes(a,{family:x.family,weight:x.weight??"400",style:x.style??"normal"}),!0):!1}catch{return false}}async getFont(x){try{this.hb||await this.init();let t=this.key(x),a=this.fonts.get(t);if(a||(a=await this.tryFallbackInstall(x)?this.fonts.get(t):void 0),!a)throw new Error(`Font not registered for ${t}`);return a}catch(t){throw t instanceof Error&&t.message.includes("Font not registered")?t:new Error(`Failed to get font "${x.family}": ${t instanceof Error?t.message:String(t)}`)}}async getFace(x){try{this.hb||await this.init();let t=this.key(x),a=this.faces.get(t);return a||(a=await this.tryFallbackInstall(x)?this.faces.get(t):void 0),a}catch(t){throw new Error(`Failed to get face for "${x.family}": ${t instanceof Error?t.message:String(t)}`)}}async getUnitsPerEm(x){try{return (await this.getFace(x))?.upem||1e3}catch(t){throw new Error(`Failed to get units per em for "${x.family}": ${t instanceof Error?t.message:String(t)}`)}}async glyphPath(x,t){let a=this.key(x);try{let r=this.fontkitFonts.get(a);if(r){let i=r.getGlyph(t);if(i&&i.path)return i.path.toSVG()}let s=(await this.getFont(x)).glyphToPath(t);return s&&s!==""?s:"M 0 0"}catch(r){throw new Error(`Failed to get glyph path for glyph ${t} in font "${x.family}": ${r instanceof Error?r.message:String(r)}`)}}destroy(){try{for(let[,x]of this.fonts)try{x.destroy();}catch(t){console.error(`Error destroying font: ${t instanceof Error?t.message:String(t)}`);}for(let[,x]of this.faces)try{x.destroy();}catch(t){console.error(`Error destroying face: ${t instanceof Error?t.message:String(t)}`);}for(let[,x]of this.blobs)try{x.destroy();}catch(t){console.error(`Error destroying blob: ${t instanceof Error?t.message:String(t)}`);}this.fonts.clear(),this.faces.clear(),this.blobs.clear(),this.fontkitFonts.clear(),this.hb=void 0,this.initPromise=void 0;}catch(x){console.error(`Error during FontRegistry cleanup: ${x instanceof Error?x.message:String(x)}`);}}};var Tt=class{constructor(x){this.fonts=x;}transformText(x,t){switch(t){case "uppercase":return x.toUpperCase();case "lowercase":return x.toLowerCase();case "capitalize":return x.replace(/\b\w/g,a=>a.toUpperCase());default:return x}}async shapeFull(x,t){try{let a=await this.fonts.getHB(),r=a.createBuffer();try{r.addText(x),r.guessSegmentProperties();let n=await this.fonts.getFont(t),i=(await this.fonts.getFace(t))?.upem||1e3;return n.setScale(i,i),a.shape(n,r),r.json()}finally{try{r.destroy();}catch(n){console.error(`Error destroying HarfBuzz buffer: ${n instanceof Error?n.message:String(n)}`);}}}catch(a){throw new Error(`Failed to shape text with font "${t.family}": ${a instanceof Error?a.message:String(a)}`)}}async layout(x){try{let{textTransform:t,desc:a,fontSize:r,letterSpacing:n,width:s}=x,i=this.transformText(x.text,t);if(!i||i.length===0)return [];let f;try{f=await this.shapeFull(i,a);}catch(y){throw new Error(`Text shaping failed: ${y instanceof Error?y.message:String(y)}`)}let c;try{c=(await this.fonts.getFace(a))?.upem||1e3;}catch(y){throw new Error(`Failed to get font metrics: ${y instanceof Error?y.message:String(y)}`)}let d=r/c,o=f.map(y=>{let h=y.cl,S;return h>=0&&h<i.length&&(S=i[h]),{id:y.g,xAdvance:y.ax*d+n,xOffset:y.dx*d,yOffset:-y.dy*d,cluster:y.cl,char:S}}),u=[],p=[],b=0,m=new Set;for(let y=0;y<i.length;y++)i[y]===" "&&m.add(y);let v=-1;for(let y=0;y<o.length;y++){let h=o[y],S=h.xAdvance;if(h.char===`
7
+ `){p.length>0&&u.push({glyphs:p,width:b,y:0}),p=[],b=0,v=y;continue}if(b+S>s&&p.length>0){if(v>-1){let E=v-(y-p.length)+1,T=p.splice(E),D=p.reduce((R,G)=>R+G.xAdvance,0);u.push({glyphs:p,width:D,y:0}),p=T,b=T.reduce((R,G)=>R+G.xAdvance,0);}else u.push({glyphs:p,width:b,y:0}),p=[],b=0;v=-1;}p.push(h),b+=S,m.has(h.cluster)&&(v=y);}p.length>0&&u.push({glyphs:p,width:b,y:0});let $=x.lineHeight*r;for(let y=0;y<u.length;y++)u[y].y=(y+1)*$;return u}catch(t){throw t instanceof Error?t:new Error(`Layout failed: ${String(t)}`)}}};function h5(e,x){return e.type==="linear"?{kind:"linear",angle:e.angle,stops:e.stops,opacity:x}:{kind:"radial",stops:e.stops,opacity:x}}function p5(e,x){let t=Math.max(1,Math.round(x.fontSize*.05)),a=x.baselineY+Math.round(x.fontSize*.1);return e==="line-through"&&(a=x.baselineY-Math.round(x.fontSize*.3)),{x1:x.xStart,x2:x.xStart+x.lineWidth,y:a,width:t}}async function m5(e){let x=[];if(x.push({op:"BeginFrame",width:e.canvas.width,height:e.canvas.height,pixelRatio:e.canvas.pixelRatio,clear:true,bg:e.background&&e.background.color?{color:e.background.color,opacity:e.background.opacity,radius:e.background.borderRadius}:void 0}),e.lines.length===0)return x;let t=Math.max(1,await e.getUnitsPerEm()),a=e.font.size/t,r=e.lines[e.lines.length-1].y,n;switch(e.align.vertical){case "top":n=e.font.size;break;case "bottom":n=e.textRect.height-r+e.font.size;break;case "middle":default:n=(e.textRect.height-r)/2+e.font.size;break}let s=e.style.gradient?h5(e.style.gradient,1):{kind:"solid",color:e.font.color,opacity:e.font.opacity},i=e.style.gradient?e.style.gradient.stops[e.style.gradient.stops.length-1]?.color??e.font.color:e.font.color,f=1/0,c=1/0,d=-1/0,o=-1/0;for(let u of e.lines){let p;switch(e.align.horizontal){case "left":p=0;break;case "right":p=e.textRect.width-u.width;break;case "center":default:p=(e.textRect.width-u.width)/2;break}let b=p,m=n+u.y-e.font.size;for(let v of u.glyphs){let $=await e.glyphPathProvider(v.id);if(!$||$==="M 0 0"){b+=v.xAdvance;continue}let y=b+v.xOffset,h=m+v.yOffset,S=c8($),E=y+a*S.x,T=y+a*(S.x+S.w),D=h-a*(S.y+S.h),R=h-a*S.y;E<f&&(f=E),D<c&&(c=D),T>d&&(d=T),R>o&&(o=R),e.shadow&&e.shadow.blur>0&&x.push({isShadow:true,op:"FillPath",path:$,x:y+e.shadow.offsetX,y:h+e.shadow.offsetY,scale:a,fill:{kind:"solid",color:e.shadow.color,opacity:e.shadow.opacity}}),e.stroke&&e.stroke.width>0&&x.push({op:"StrokePath",path:$,x:y,y:h,scale:a,width:e.stroke.width,color:e.stroke.color,opacity:e.stroke.opacity}),x.push({op:"FillPath",path:$,x:y,y:h,scale:a,fill:s}),b+=v.xAdvance;}if(e.style.textDecoration!=="none"){let v=p5(e.style.textDecoration,{baselineY:m,fontSize:e.font.size,lineWidth:u.width,xStart:p});x.push({op:"DecorationLine",from:{x:v.x1,y:v.y},to:{x:v.x2,y:v.y},width:v.width,color:i,opacity:e.font.opacity});}}if(f!==1/0){let u={x:f,y:c,w:Math.max(1,d-f),h:Math.max(1,o-c)};for(let p of x)p.op==="FillPath"&&!p.isShadow&&(p.gradientBBox=u);}return x}function f8(e){return e.match(/[MLCQZ]|-?\d*\.?\d+(?:e[-+]?\d+)?/gi)??[]}function c8(e){let x=f8(e),t=0,a=1/0,r=1/0,n=-1/0,s=-1/0,i=(f,c)=>{f<a&&(a=f),c<r&&(r=c),f>n&&(n=f),c>s&&(s=c);};for(;t<x.length;)switch(x[t++]){case "M":case "L":{let c=parseFloat(x[t++]),d=parseFloat(x[t++]);i(c,d);break}case "C":{let c=parseFloat(x[t++]),d=parseFloat(x[t++]),o=parseFloat(x[t++]),u=parseFloat(x[t++]),p=parseFloat(x[t++]),b=parseFloat(x[t++]);i(c,d),i(o,u),i(p,b);break}case "Q":{let c=parseFloat(x[t++]),d=parseFloat(x[t++]),o=parseFloat(x[t++]),u=parseFloat(x[t++]);i(c,d),i(o,u);break}}return a===1/0?{x:0,y:0,w:0,h:0}:{x:a,y:r,w:n-a,h:s-r}}var Qr=.999;function w5(e,x,t){if(!t.anim||!t.anim.preset)return e;let{preset:a}=t.anim,r=x.reduce((i,f)=>i+f.glyphs.length,0),n=t.anim.duration??Math.max(.3,r/30/t.anim.speed),s=Math.max(0,Math.min(1,t.t/n));switch(a){case "typewriter":return o8(e,x,s,t.anim.style,t.fontSize,t.t);case "fadeIn":return b8(e,s);case "slideIn":return h8(e,s,t.anim.direction??"left",t.fontSize);case "shift":return u8(e,x,s,t.anim.direction??"left",t.fontSize,t.anim.style,n);case "ascend":return l8(e,x,s,t.anim.direction??"up",t.fontSize,n);case "movingLetters":return p8(e,s,t.anim.direction??"up",t.fontSize);default:return e}}var Rt=e=>e.op==="FillPath"&&e.isShadow===true,v5=e=>e.op==="FillPath"&&!e.isShadow;function d8(e){for(let x of e)if(x.op==="FillPath"){let t=x.fill;if(t?.kind==="solid")return t.color;if((t?.kind==="linear"||t?.kind==="radial")&&Array.isArray(t.stops)&&t.stops.length)return t.stops[t.stops.length-1].color||"#000000"}return "#000000"}function o8(e,x,t,a,r,n,s){if(a==="word"){let f=x2(x),c=f.length,d=Math.floor(t*c);if(d===0)return e.filter(b=>b.op==="BeginFrame");let o=0;for(let b=0;b<Math.min(d,f.length);b++)o+=f[b].glyphCount;let u=g5(e,o),p=t>=Qr?u:u.filter(b=>b.op!=="DecorationLine");return t<1&&o>0?y5(p,o,r,n):p}else {let f=x.reduce((u,p)=>u+p.glyphs.length,0),c=Math.floor(t*f);if(c===0)return e.filter(u=>u.op==="BeginFrame");let d=g5(e,c),o=t>=Qr?d:d.filter(u=>u.op!=="DecorationLine");return t<1&&c>0?y5(o,c,r,n):o}}function l8(e,x,t,a,r,n){let s=x2(x),i=s.length;if(i===0)return e;let f=[],c=0;for(let d of e)if(d.op==="BeginFrame"){f.push(d);break}for(let d of e)if(d.op==="FillPath"||d.op==="StrokePath"){let o=-1,u=0;for(let p=0;p<s.length;p++){let b=s[p].glyphCount;if(c>=u&&c<u+b){o=p;break}u+=b;}if(o>=0){let p=o/Math.max(1,i)*(n/n),b=Math.min(1,p+.3);if(t>=b)f.push(d);else if(t>p){let m=(t-p)/Math.max(1e-6,b-p),v=e2(Math.min(1,m)),$=a==="up"?r*.4:-r*.4,y={...d,y:d.y+$*(1-v)};d.op==="FillPath"?y.fill.kind==="solid"?y.fill={...y.fill,opacity:y.fill.opacity*v}:y.fill={...y.fill,opacity:(y.fill.opacity??1)*v}:y.opacity=y.opacity*v,f.push(y);}}v5(d)&&c++;}else d.op==="DecorationLine"&&t>=Qr&&f.push(d);return f}function u8(e,x,t,a,r,n,s){let i=n==="word",c={left:{x:r*.6,y:0},right:{x:-r*.6,y:0},up:{x:0,y:r*.6},down:{x:0,y:-r*.6}}[a],d=i?x2(x):[],o=x.reduce((h,S)=>h+S.glyphs.length,0),u=i?d.length:o;if(u===0)return e;let p=[];for(let h of e)if(h.op==="BeginFrame"){p.push(h);break}let b=.3,v=s*.7/Math.max(1,u-1),$=h=>{let S=h*v,E=S/s,T=Math.min(1,(S+b)/s);return {startF:E,endF:T}},y=0;for(let h of e){if(h.op!=="FillPath"&&h.op!=="StrokePath"){h.op==="DecorationLine"&&t>.8&&p.push(h);continue}let S;if(!i)S=y;else {let D=-1,R=0;for(let G=0;G<d.length;G++){let U=d[G].glyphCount;if(y>=R&&y<R+U){D=G;break}R+=U;}S=Math.max(0,D);}let{startF:E,endF:T}=$(S);if(t<=E){let D={...h,x:h.x+c.x,y:h.y+c.y};h.op==="FillPath"?D.fill.kind==="solid"?D.fill={...D.fill,opacity:0}:D.fill={...D.fill,opacity:0}:D.opacity=0,p.push(D);}else if(t>=T)p.push(h);else {let D=(t-E)/Math.max(1e-6,T-E),R=e2(Math.min(1,D)),G=c.x*(1-R),U=c.y*(1-R),Y={...h,x:h.x+G,y:h.y+U};if(h.op==="FillPath"){let f0=Y.fill.kind==="solid"?Y.fill.opacity:Y.fill.opacity??1;Y.fill.kind==="solid"?Y.fill={...Y.fill,opacity:f0*R}:Y.fill={...Y.fill,opacity:f0*R};}else Y.opacity=Y.opacity*R;p.push(Y);}v5(h)&&y++;}return p}function b8(e,x){let t=_5(x),a=.95+.05*t;return g8(e,t,a)}function h8(e,x,t,a){let r=e2(x),n=v8(1-r,t,a*2),s=_5(x);return y8(e,n.dx,n.dy,s)}function p8(e,x,t,a){let r=a*.3;return w8(e,t,r,x)}function x2(e){let x=[],t=0;for(let a=0;a<e.length;a++){let r=e[a],n=m8(r);for(let s of n)s.length>0&&x.push({startGlyph:t,glyphCount:s.length,lineIndex:a}),t+=s.length;}return x}function m8(e){let x=[],t=[];for(let a of e.glyphs)a.char===" "||a.char===" "||a.char===`
8
+ `?t.length&&(x.push([...t]),t=[]):t.push(a);return t.length&&x.push(t),x}function g5(e,x){let t=[],a=0,r=false;for(let n of e){if(n.op==="BeginFrame"){t.push(n);continue}if(n.op==="FillPath"&&!Rt(n)){a<x&&(t.push(n),r=true),a++;continue}if(n.op==="StrokePath"){a<x&&t.push(n);continue}if(n.op==="FillPath"&&Rt(n)){a<x&&t.push(n);continue}if(n.op==="DecorationLine"&&r){t.push(n);continue}}return t}function y5(e,x,t,a){if(!(Math.floor(a*2*2)%2===0)||x===0)return e;let s=null,i=0;for(let f of e)if(f.op==="FillPath"&&!Rt(f)&&(i++,i===x)){s=f;break}if(s&&s.op==="FillPath"){let f=d8(e),c=s.x+t*.5,d=s.y,o={op:"DecorationLine",from:{x:c,y:d-t*.7},to:{x:c,y:d+t*.1},width:Math.max(2,t/25),color:f,opacity:1};return [...e,o]}return e}function g8(e,x,t){let a=0,r=0,n=0;return e.forEach(s=>{s.op==="FillPath"&&(a+=s.x,r+=s.y,n++);}),n>0&&(a/=n,r/=n),e.map(s=>{if(s.op==="FillPath"){let i={...s};if(i.fill.kind==="solid"?i.fill={...i.fill,opacity:i.fill.opacity*x}:i.fill={...i.fill,opacity:(i.fill.opacity??1)*x},t!==1&&n>0){let f=s.x-a,c=s.y-r;i.x=a+f*t,i.y=r+c*t;}return i}if(s.op==="StrokePath"){let i={...s,opacity:s.opacity*x};if(t!==1&&n>0){let f=s.x-a,c=s.y-r;i.x=a+f*t,i.y=r+c*t;}return i}return s.op==="DecorationLine"?{...s,opacity:s.opacity*x}:s})}function y8(e,x,t,a=1){return e.map(r=>{if(r.op==="FillPath"){let n={...r,x:r.x+x,y:r.y+t};return a<1&&(n.fill.kind==="solid"?n.fill={...n.fill,opacity:n.fill.opacity*a}:n.fill={...n.fill,opacity:(n.fill.opacity??1)*a}),n}return r.op==="StrokePath"?{...r,x:r.x+x,y:r.y+t,opacity:r.opacity*a}:r.op==="DecorationLine"?{...r,from:{x:r.from.x+x,y:r.from.y+t},to:{x:r.to.x+x,y:r.to.y+t},opacity:r.opacity*a}:r})}function w8(e,x,t,a){let r=0;return e.map(n=>{if(n.op==="FillPath"||n.op==="StrokePath"){let s=Math.sin(r/5*Math.PI+a*Math.PI*4),i=x==="left"||x==="right"?s*t*(x==="left"?-1:1):0,f=x==="up"||x==="down"?s*t*(x==="up"?-1:1):0,c=Math.min(1,a*2);if(n.op==="FillPath"){Rt(n)||r++;let d={...n,x:n.x+i,y:n.y+f};return d.fill.kind==="solid"?d.fill={...d.fill,opacity:d.fill.opacity*c}:d.fill={...d.fill,opacity:(d.fill.opacity??1)*c},d}return {...n,x:n.x+i,y:n.y+f,opacity:n.opacity*c}}return n})}function v8(e,x,t){let a=e*t;switch(x){case "left":return {dx:-a,dy:0};case "right":return {dx:a,dy:0};case "up":return {dx:0,dy:-a};case "down":return {dx:0,dy:a}}}function _5(e){return e*(2-e)}function e2(e){return 1-Math.pow(1-e,3)}function ke(e,x=1){let t=/^#?([a-f0-9]{6})$/i.exec(e);if(!t)throw new Error(`Invalid color ${e}`);let a=parseInt(t[1],16),r=a>>16&255,n=a>>8&255,s=a&255;return {r,g:n,b:s,a:x}}async function kt(e){let x=await import('canvas'),{createCanvas:t}=x,a=t(Math.floor(e.width*e.pixelRatio),Math.floor(e.height*e.pixelRatio)),r=a.getContext("2d");if(!r)throw new Error("2D context unavailable in Node (canvas).");let n=t(a.width,a.height),s=n.getContext("2d"),i=new Map;return {async render(c){let d=A8(c),o=false;for(let u of c){if(u.op==="BeginFrame"){let b=u.pixelRatio??e.pixelRatio,m=Math.floor(u.width*b),v=Math.floor(u.height*b);if((a.width!==m||a.height!==v)&&(a.width=m,a.height=v,n.width=m,n.height=v),r.setTransform(b,0,0,b,0,0),s.setTransform(b,0,0,b,0,0),o=!!!(u.bg&&u.bg.color),u.bg&&u.bg.color){r.clearRect(0,0,u.width,u.height);let{color:y,opacity:h,radius:S}=u.bg,E=ke(y,h);r.fillStyle=`rgba(${E.r},${E.g},${E.b},${E.a})`,S&&S>0?(r.save(),r.beginPath(),S8(r,0,0,u.width,u.height,S),r.fill(),r.restore()):r.fillRect(0,0,u.width,u.height);}else r.clearRect(0,0,u.width,u.height),r.save(),r.fillStyle="rgb(255, 255, 255)",r.fillRect(0,0,u.width,u.height),r.restore(),s.save(),s.fillStyle="rgb(0, 0, 0)",s.fillRect(0,0,u.width,u.height),s.restore();continue}let p=b=>{o?(b(r),b(s)):b(r);};if(u.op==="FillPath"){let b=u;p(m=>{m.save(),m.translate(b.x,b.y);let v=b.scale??1;m.scale(v,-v);let $=b.gradientBBox??d,y={x:($.x-b.x)/v,y:-($.y-b.y)/v,w:$.w/v,h:$.h/v},h=JSON.stringify({fill:b.fill,bbox:y}),S=i.get(h);S||(S=_8(m,b.fill,y),i.set(h,S)),m.fillStyle=S,m.beginPath(),A5(m,b.path),m.fill(),m.restore();});continue}if(u.op==="StrokePath"){let b=u;p(m=>{m.save(),m.translate(b.x,b.y);let v=b.scale??1;m.scale(v,-v);let $=1/Math.abs(v);m.beginPath(),A5(m,b.path);let y=ke(b.color,b.opacity);m.strokeStyle=`rgba(${y.r},${y.g},${y.b},${y.a})`,m.lineWidth=b.width*$,m.lineJoin="round",m.lineCap="round",m.stroke(),m.restore();});continue}if(u.op==="DecorationLine"){p(b=>{b.save();let m=ke(u.color,u.opacity);b.strokeStyle=`rgba(${m.r},${m.g},${m.b},${m.a})`,b.lineWidth=u.width,b.beginPath(),b.moveTo(u.from.x,u.from.y),b.lineTo(u.to.x,u.to.y),b.stroke(),b.restore();});continue}}if(o){let u=r.getImageData(0,0,a.width,a.height),p=s.getImageData(0,0,a.width,a.height),b=u.data,m=p.data;for(let v=0;v<b.length;v+=4){let $=b[v],y=b[v+1],h=b[v+2],S=m[v],E=m[v+1],T=m[v+2],D=255-Math.max($-S,y-E,h-T);if(D<=2)b[v]=0,b[v+1]=0,b[v+2]=0,b[v+3]=0;else if(D>=253)b[v]=S,b[v+1]=E,b[v+2]=T,b[v+3]=255;else {let R=255/D;b[v]=Math.min(255,Math.max(0,Math.round(S*R))),b[v+1]=Math.min(255,Math.max(0,Math.round(E*R))),b[v+2]=Math.min(255,Math.max(0,Math.round(T*R))),b[v+3]=D;}}r.putImageData(u,0,0);}},async toPNG(){return a.toBuffer("image/png")}}}function _8(e,x,t){if(x.kind==="solid"){let i=ke(x.color,x.opacity);return `rgba(${i.r},${i.g},${i.b},${i.a})`}let a=t.x+t.w/2,r=t.y+t.h/2,n=Math.max(t.w,t.h)/2,s=i=>{let f=x.kind==="linear"||x.kind==="radial"?x.opacity:1,c=x.kind==="linear"||x.kind==="radial"?x.stops:[];for(let d of c){let o=ke(d.color,f);i.addColorStop(d.offset,`rgba(${o.r},${o.g},${o.b},${o.a})`);}return i};if(x.kind==="linear"){let i=x.angle*Math.PI/180,f=a+Math.cos(i+Math.PI)*n,c=r+Math.sin(i+Math.PI)*n,d=a+Math.cos(i)*n,o=r+Math.sin(i)*n;return s(e.createLinearGradient(f,c,d,o))}else return s(e.createRadialGradient(a,r,0,a,r,n))}function A8(e){let x=1/0,t=1/0,a=-1/0,r=-1/0;for(let n of e){if(n.op!=="FillPath")continue;let s=n;if(s.isShadow)continue;let i=C8(s.path),f=s.scale??1,c=s.x+f*i.x,d=s.x+f*(i.x+i.w),o=s.y-f*(i.y+i.h),u=s.y-f*i.y;c<x&&(x=c),o<t&&(t=o),d>a&&(a=d),u>r&&(r=u);}return x===1/0?{x:0,y:0,w:1,h:1}:{x,y:t,w:Math.max(1,a-x),h:Math.max(1,r-t)}}function A5(e,x){let t=C5(x),a=0;for(;a<t.length;)switch(t[a++]){case "M":{let n=parseFloat(t[a++]),s=parseFloat(t[a++]);e.moveTo(n,s);break}case "L":{let n=parseFloat(t[a++]),s=parseFloat(t[a++]);e.lineTo(n,s);break}case "C":{let n=parseFloat(t[a++]),s=parseFloat(t[a++]),i=parseFloat(t[a++]),f=parseFloat(t[a++]),c=parseFloat(t[a++]),d=parseFloat(t[a++]);e.bezierCurveTo(n,s,i,f,c,d);break}case "Q":{let n=parseFloat(t[a++]),s=parseFloat(t[a++]),i=parseFloat(t[a++]),f=parseFloat(t[a++]);e.quadraticCurveTo(n,s,i,f);break}case "Z":{e.closePath();break}}}function C8(e){let x=C5(e),t=0,a=1/0,r=1/0,n=-1/0,s=-1/0,i=(f,c)=>{f<a&&(a=f),c<r&&(r=c),f>n&&(n=f),c>s&&(s=c);};for(;t<x.length;)switch(x[t++]){case "M":case "L":{let c=parseFloat(x[t++]),d=parseFloat(x[t++]);i(c,d);break}case "C":{let c=parseFloat(x[t++]),d=parseFloat(x[t++]),o=parseFloat(x[t++]),u=parseFloat(x[t++]),p=parseFloat(x[t++]),b=parseFloat(x[t++]);i(c,d),i(o,u),i(p,b);break}case "Q":{let c=parseFloat(x[t++]),d=parseFloat(x[t++]),o=parseFloat(x[t++]),u=parseFloat(x[t++]);i(c,d),i(o,u);break}}return a===1/0?{x:0,y:0,w:0,h:0}:{x:a,y:r,w:n-a,h:s-r}}function S8(e,x,t,a,r,n){e.moveTo(x+n,t),e.arcTo(x+a,t,x+a,t+r,n),e.arcTo(x+a,t+r,x,t+r,n),e.arcTo(x,t+r,x,t,n),e.arcTo(x,t,x+a,t,n),e.closePath();}function C5(e){return e.match(/[MLCQZ]|-?\d*\.?\d+(?:e[-+]?\d+)?/gi)??[]}function S5(e){let{buffer:x,byteOffset:t,byteLength:a}=e;if(typeof SharedArrayBuffer<"u"&&x instanceof SharedArrayBuffer){let n=new ArrayBuffer(a);return new Uint8Array(n).set(e),n}return x.slice(t,t+a)}async function Pt(e){try{if(/^https?:\/\//.test(e)){let t=e.startsWith("https:")?E8__namespace:I8__namespace,a=await new Promise((r,n)=>{let s=t.get(e,i=>{let{statusCode:f}=i;if(f&&(f<200||f>=300)){n(new Error(`HTTP request failed with status ${f} for ${e}`)),i.resume();return}let c=[];i.on("data",d=>{c.push(d);}),i.on("end",()=>{try{r(Buffer.concat(c));}catch(d){n(new Error(`Failed to concatenate response chunks: ${d instanceof Error?d.message:String(d)}`));}}),i.on("error",d=>{n(new Error(`Response error for ${e}: ${d.message}`));});});s.on("error",i=>{n(new Error(`Request error for ${e}: ${i.message}`));}),s.setTimeout(3e4,()=>{s.destroy(),n(new Error(`Request timeout after 30s for ${e}`));});});return S5(a)}let x=await promises.readFile(e);return S5(x)}catch(x){throw x instanceof Error?new Error(`Failed to load ${e}: ${x.message}`):new Error(`Failed to load ${e}: ${String(x)}`)}}var Dt=class{ffmpegPath=null;trySetPath(x){return x&&Di__default.default.existsSync(x)?(this.ffmpegPath=x,true):false}async init(x){if(typeof window<"u")throw new Error("VideoGenerator is only available in Node.js environment");if(!this.trySetPath(x?.ffmpegPath)&&!this.trySetPath(process.env.FFMPEG_PATH)&&!this.trySetPath(process.env.FFMPEG_BIN)&&!this.trySetPath("/opt/bin/ffmpeg")){try{let a=(await import('ffmpeg-static')).default;if(this.trySetPath(a))return}catch{}throw new Error("FFmpeg not available. Please install ffmpeg-static or provide FFMPEG_PATH.")}}async generateVideo(x,t){this.ffmpegPath||await this.init({ffmpegPath:t.ffmpegPath});let{width:a,height:r,fps:n,duration:s,outputPath:i,pixelRatio:f=1,crf:c=17,preset:d="slow",tune:o="animation",profile:u="high",level:p="4.2",pixFmt:b="yuv420p",hasAlpha:m=false}=t,v=Math.max(2,Math.round(s*n)+1),$=m?i.replace(/\.mp4$/,".mov"):i;return console.log(`\u{1F3AC} Generating video: ${a}x${r} @ ${n}fps, ${s}s (${v} frames)`+(m?" (MOV with alpha)":"")),new Promise(async(y,h)=>{let S;m?(S=["-y","-f","image2pipe","-vcodec","png","-framerate",String(n),"-i","-","-c:v","prores_ks","-profile:v","4444","-pix_fmt","yuva444p10le","-vendor","apl0","-r",String(n),$],console.log(` Output: ${$} (ProRes 4444 with alpha)`)):S=["-y","-f","image2pipe","-vcodec","png","-framerate",String(n),"-i","-","-c:v","libx264","-preset",d,"-crf",String(c),"-tune",o,"-profile:v",u,"-level",p,"-pix_fmt",b,"-r",String(n),"-movflags","+faststart",i];let E=child_process.spawn(this.ffmpegPath,S,{stdio:["pipe","inherit","pipe"]}),T="";E.stderr.on("data",D=>{let R=D.toString(),G=R.match(/time=(\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?/);if(G){let U=parseInt(G[1],10),Y=parseInt(G[2],10),f0=parseInt(G[3],10),s0=G[4]?parseFloat(`0.${G[4]}`):0,S0=U*3600+Y*60+f0+s0,c0=Math.min(100,Math.round(S0/s*100));c0%10===0&&console.log(`\u{1F4F9} Encoding: ${c0}%`);}T+=R;}),E.on("close",D=>{D===0?(console.log("\u2705 Video generation complete!"),y()):(console.error("FFmpeg stderr:",T),h(new Error(`FFmpeg exited with code ${D}`)));}),E.on("error",D=>{console.error("\u274C FFmpeg spawn error:",D),h(D);});try{let D=await kt({width:a,height:r,pixelRatio:f});for(let R=0;R<v;R++){let G=R/(v-1)*s,U=await x(G);await D.render(U);let Y=await D.toPNG();if(E.stdin.write(Y)||await new Promise(s0=>E.stdin.once("drain",s0)),R%Math.max(1,Math.floor(n/2))===0){let s0=Math.round((R+1)/v*100);console.log(`\u{1F39E}\uFE0F Rendering frames: ${s0}%`);}}E.stdin.end();}catch(D){console.error("Frame generation error:",D),E.kill("SIGKILL"),h(D);}})}};var Vp=e=>e.op==="FillPath"&&e.isShadow===true,Xp=e=>e.op==="FillPath"&&e.isShadow!==true;async function nm(e={}){let x=e.width??E0.DEFAULTS.width,t=e.height??E0.DEFAULTS.height,a=e.pixelRatio??E0.DEFAULTS.pixelRatio,r=e.fps??30,n=e.wasmBaseURL,s=new Ot(n),i=new Tt(s),f=new Dt;try{await s.init();}catch(d){throw new Error(`Failed to initialize font registry: ${d instanceof Error?d.message:String(d)}`)}async function c(d){try{if(d.customFonts)for(let u of d.customFonts)try{let p=await Pt(u.src);await s.registerFromBytes(p,{family:u.family,weight:u.weight??"400",style:u.style??"normal"});}catch(p){throw new Error(`Failed to load custom font "${u.family}" from ${u.src}: ${p instanceof Error?p.message:String(p)}`)}return d.font??{family:"Roboto",weight:"400",style:"normal",size:48,color:"#000000",opacity:1}}catch(o){throw o instanceof Error?o:new Error(`Failed to ensure fonts: ${String(o)}`)}}return {validate(d){try{let{value:o,error:u}=cs.validate(d,{abortEarly:!1,convert:!0});if(u)throw u;return {value:o}}catch(o){throw o instanceof Error?new Error(`Validation failed: ${o.message}`):new Error(`Validation failed: ${String(o)}`)}},async registerFontFromFile(d,o){try{let u=await Pt(d);await s.registerFromBytes(u,o);}catch(u){throw new Error(`Failed to register font "${o.family}" from file ${d}: ${u instanceof Error?u.message:String(u)}`)}},async registerFontFromUrl(d,o){try{let u=await Pt(d);await s.registerFromBytes(u,o);}catch(u){throw new Error(`Failed to register font "${o.family}" from URL ${d}: ${u instanceof Error?u.message:String(u)}`)}},async renderFrame(d,o){try{let u=await c(d),p={family:u.family,weight:`${u.weight}`,style:u.style},b;try{b=await i.layout({text:d.text,width:d.width??x,letterSpacing:d.style?.letterSpacing??0,fontSize:u.size,lineHeight:d.style?.lineHeight??1.2,desc:p,textTransform:d.style?.textTransform??"none"});}catch(S){throw new Error(`Failed to layout text: ${S instanceof Error?S.message:String(S)}`)}let m={x:0,y:0,width:d.width??x,height:d.height??t},v=d.width??x,$=d.height??t,y=d.pixelRatio??a,h;try{h=await m5({canvas:{width:v,height:$,pixelRatio:y},textRect:m,lines:b,font:{family:u.family,size:u.size,weight:`${u.weight}`,style:u.style,color:u.color,opacity:u.opacity},style:{lineHeight:d.style?.lineHeight??1.2,textDecoration:d.style?.textDecoration??"none",gradient:d.style?.gradient},stroke:d.stroke,shadow:d.shadow,align:d.align??{horizontal:"left",vertical:"middle"},background:d.background,glyphPathProvider:S=>s.glyphPath(p,S),getUnitsPerEm:()=>s.getUnitsPerEm(p)});}catch(S){throw new Error(`Failed to build draw operations: ${S instanceof Error?S.message:String(S)}`)}try{return w5(h,b,{t:o,fontSize:u.size,anim:d.animation?{preset:d.animation.preset,speed:d.animation.speed,duration:d.animation.duration,style:d.animation.style,direction:d.animation.direction}:void 0})}catch(S){throw new Error(`Failed to apply animation: ${S instanceof Error?S.message:String(S)}`)}}catch(u){throw u instanceof Error?u:new Error(`Failed to render frame at time ${o}s: ${String(u)}`)}},async createRenderer(d){try{return await kt({width:d.width??x,height:d.height??t,pixelRatio:d.pixelRatio??a})}catch(o){throw new Error(`Failed to create renderer: ${o instanceof Error?o.message:String(o)}`)}},async generateVideo(d,o){try{let u=!!d.background?.color,p=!!d.animation?.preset,b=!u&&p;console.log(`\u{1F3A8} Video settings: Animation=${p}, Background=${u}, Alpha=${b}`);let m={width:d.width??x,height:d.height??t,fps:r,duration:d.animation?.duration??3,outputPath:o.outputPath??"output.mp4",pixelRatio:d.pixelRatio??a,hasAlpha:b,...o},v=async $=>this.renderFrame(d,$);await f.generateVideo(v,m);}catch(u){throw new Error(`Failed to generate video: ${u instanceof Error?u.message:String(u)}`)}},destroy(){try{s.destroy();}catch(d){console.error(`Error during cleanup: ${d instanceof Error?d.message:String(d)}`);}}}}
9
+ exports.createTextEngine=nm;exports.isGlyphFill=Xp;exports.isShadowFill=Vp;