kordoc 4.0.4 → 4.0.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.
- package/README.md +806 -800
- package/dist/{-Q4ZCVQFI.js → -NDU7YGSS.js} +8 -8
- package/dist/{chunk-DKMKJMR6.js → chunk-4C7SBZNW.js} +2 -2
- package/dist/chunk-4C7SBZNW.js.map +1 -0
- package/dist/{chunk-MEPHGCPQ.js → chunk-5CJGKKMZ.js} +1 -1
- package/dist/chunk-5CJGKKMZ.js.map +1 -0
- package/dist/{chunk-S3KGEEBQ.js → chunk-5SOZXPQY.js} +3 -3
- package/dist/chunk-5SOZXPQY.js.map +1 -0
- package/dist/{chunk-TXNRIVWA.js → chunk-63ASYC4N.js} +3 -3
- package/dist/chunk-63ASYC4N.js.map +1 -0
- package/dist/{chunk-5RPYBC2Q.js → chunk-6GBLFQMA.js} +1 -1
- package/dist/chunk-6GBLFQMA.js.map +1 -0
- package/dist/chunk-DCZVOIEO.cjs.map +1 -1
- package/dist/{chunk-NIW7CZYX.cjs → chunk-DQJTNXVS.cjs} +5 -4
- package/dist/chunk-DQJTNXVS.cjs.map +1 -0
- package/dist/chunk-GS7T56RP.cjs.map +1 -1
- package/dist/{chunk-MLNHZN32.js → chunk-HC2SEH6I.js} +90 -17
- package/dist/chunk-HC2SEH6I.js.map +1 -0
- package/dist/{chunk-KSVLQ5BC.js → chunk-HOGJ5ALY.js} +5 -4
- package/dist/chunk-HOGJ5ALY.js.map +1 -0
- package/dist/{chunk-2RIOXYGA.js → chunk-KA4FEBS2.js} +2 -2
- package/dist/chunk-KA4FEBS2.js.map +1 -0
- package/dist/{chunk-KA5AN73R.js → chunk-L3I4TIRP.js} +2 -2
- package/dist/chunk-L3I4TIRP.js.map +1 -0
- package/dist/chunk-MOL7MDBG.js +0 -0
- package/dist/{chunk-ZJXR4PWY.js → chunk-UVSOSFER.js} +5 -4
- package/dist/chunk-UVSOSFER.js.map +1 -0
- package/dist/cli.js +15 -15
- package/dist/cli.js.map +1 -1
- package/dist/{detect-RI2MQ33K.js → detect-PJZMUL2Z.js} +2 -2
- package/dist/formula-5NKVS2LR.cjs.map +1 -1
- package/dist/formula-JCNF43NE.js +0 -0
- package/dist/index.cjs +437 -364
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +7 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.js +84 -11
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +13 -13
- package/dist/mcp.js.map +1 -1
- package/dist/page-range-737B4EZW.js +0 -0
- package/dist/page-range-P7SDW6LR.cjs.map +1 -1
- package/dist/{parser-46JGSTPR.js → parser-C636QIOB.js} +72 -4
- package/dist/parser-C636QIOB.js.map +1 -0
- package/dist/{parser-TLCC67W6.js → parser-DMKHIV4E.js} +71 -3
- package/dist/parser-DMKHIV4E.js.map +1 -0
- package/dist/{parser-2ZUTCU2G.cjs → parser-VEY4B5CJ.cjs} +83 -15
- package/dist/parser-VEY4B5CJ.cjs.map +1 -0
- package/dist/{profile-io-MRVIJ5T4.js → profile-io-JYGCC6XQ.js} +3 -3
- package/dist/{provider-G4C2V2PD.cjs → provider-5K7O3Z2O.cjs} +1 -1
- package/dist/provider-5K7O3Z2O.cjs.map +1 -0
- package/dist/{provider-AKROB7WQ.js → provider-7H4CPZYS.js} +1 -1
- package/dist/provider-7H4CPZYS.js.map +1 -0
- package/dist/{provider-4ZJKV3DC.js → provider-H4WWSPOV.js} +1 -1
- package/dist/provider-H4WWSPOV.js.map +1 -0
- package/dist/render-ISOEOMTM.js +10 -0
- package/dist/seal-676ZIAZZ.js +10 -0
- package/dist/setup-57FB3LSP.js +0 -0
- package/dist/{watch-NZNVJ4YD.js → watch-ZQUFJBFR.js} +8 -8
- package/dist/watch-ZQUFJBFR.js.map +1 -0
- package/package.json +97 -97
- package/dist/chunk-2RIOXYGA.js.map +0 -1
- package/dist/chunk-5RPYBC2Q.js.map +0 -1
- package/dist/chunk-DKMKJMR6.js.map +0 -1
- package/dist/chunk-KA5AN73R.js.map +0 -1
- package/dist/chunk-KSVLQ5BC.js.map +0 -1
- package/dist/chunk-MEPHGCPQ.js.map +0 -1
- package/dist/chunk-MLNHZN32.js.map +0 -1
- package/dist/chunk-NIW7CZYX.cjs.map +0 -1
- package/dist/chunk-S3KGEEBQ.js.map +0 -1
- package/dist/chunk-TXNRIVWA.js.map +0 -1
- package/dist/chunk-ZJXR4PWY.js.map +0 -1
- package/dist/parser-2ZUTCU2G.cjs.map +0 -1
- package/dist/parser-46JGSTPR.js.map +0 -1
- package/dist/parser-TLCC67W6.js.map +0 -1
- package/dist/provider-4ZJKV3DC.js.map +0 -1
- package/dist/provider-AKROB7WQ.js.map +0 -1
- package/dist/provider-G4C2V2PD.cjs.map +0 -1
- package/dist/render-TTOG6CHW.js +0 -10
- package/dist/seal-NMLZ3M3K.js +0 -10
- package/dist/watch-NZNVJ4YD.js.map +0 -1
- /package/dist/{-Q4ZCVQFI.js.map → -NDU7YGSS.js.map} +0 -0
- /package/dist/{detect-RI2MQ33K.js.map → detect-PJZMUL2Z.js.map} +0 -0
- /package/dist/{profile-io-MRVIJ5T4.js.map → profile-io-JYGCC6XQ.js.map} +0 -0
- /package/dist/{render-TTOG6CHW.js.map → render-ISOEOMTM.js.map} +0 -0
- /package/dist/{seal-NMLZ3M3K.js.map → seal-676ZIAZZ.js.map} +0 -0
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkDQJTNXVScjs = require('./chunk-DQJTNXVS.cjs');
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
var _chunkDCZVOIEOcjs = require('./chunk-DCZVOIEO.cjs');
|
|
@@ -430,6 +430,73 @@ function filterPageBorderLines(horizontals, verticals, pageWidth, pageHeight) {
|
|
|
430
430
|
};
|
|
431
431
|
}
|
|
432
432
|
|
|
433
|
+
// src/pdf/vertical-bridge.ts
|
|
434
|
+
var BRIDGE_X_TOL = 1.5;
|
|
435
|
+
var BRIDGE_MIN_GAP = 5;
|
|
436
|
+
var BRIDGE_MAX_GAP = 120;
|
|
437
|
+
var BRIDGE_BAND_TOL = 6;
|
|
438
|
+
var BRIDGE_MIN_COLUMNS = 3;
|
|
439
|
+
var BRIDGE_ENDPOINT_TOL = 2;
|
|
440
|
+
var BRIDGE_EDGE_EPS = 2;
|
|
441
|
+
function bridgeSplitColumnVerticals(horizontals, verticals) {
|
|
442
|
+
if (verticals.length < 4 || horizontals.length === 0) return verticals;
|
|
443
|
+
const sorted = [...verticals].sort((a, b) => a.x1 - b.x1 || a.y1 - b.y1);
|
|
444
|
+
const candidates = [];
|
|
445
|
+
let bandStart = 0;
|
|
446
|
+
const collectBand = (end) => {
|
|
447
|
+
const band = sorted.slice(bandStart, end).sort((a, b) => a.y1 - b.y1);
|
|
448
|
+
for (let i = 1; i < band.length; i++) {
|
|
449
|
+
const lower = band[i - 1], upper = band[i];
|
|
450
|
+
const gap = upper.y1 - lower.y2;
|
|
451
|
+
if (gap <= BRIDGE_MIN_GAP || gap > BRIDGE_MAX_GAP) continue;
|
|
452
|
+
const x = (lower.x1 + upper.x1) / 2;
|
|
453
|
+
const hasInteriorH = horizontals.some((h) => h.y1 > lower.y2 + BRIDGE_EDGE_EPS && h.y1 < upper.y1 - BRIDGE_EDGE_EPS && h.x1 <= x + BRIDGE_ENDPOINT_TOL && h.x2 >= x - BRIDGE_ENDPOINT_TOL);
|
|
454
|
+
if (!hasInteriorH) continue;
|
|
455
|
+
candidates.push({
|
|
456
|
+
x,
|
|
457
|
+
lo: lower.y2,
|
|
458
|
+
hi: upper.y1,
|
|
459
|
+
spanLo: lower.y1,
|
|
460
|
+
spanHi: upper.y2,
|
|
461
|
+
lineWidth: Math.min(lower.lineWidth, upper.lineWidth)
|
|
462
|
+
});
|
|
463
|
+
}
|
|
464
|
+
};
|
|
465
|
+
for (let i = 1; i <= sorted.length; i++) {
|
|
466
|
+
if (i === sorted.length || sorted[i].x1 - sorted[bandStart].x1 > BRIDGE_X_TOL) {
|
|
467
|
+
collectBand(i);
|
|
468
|
+
bandStart = i;
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
if (candidates.length < BRIDGE_MIN_COLUMNS) return verticals;
|
|
472
|
+
const clusters = [];
|
|
473
|
+
for (const c of candidates) {
|
|
474
|
+
let placed = false;
|
|
475
|
+
for (const cl of clusters) {
|
|
476
|
+
if (Math.abs(cl[0].lo - c.lo) <= BRIDGE_BAND_TOL && Math.abs(cl[0].hi - c.hi) <= BRIDGE_BAND_TOL) {
|
|
477
|
+
cl.push(c);
|
|
478
|
+
placed = true;
|
|
479
|
+
break;
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
if (!placed) clusters.push([c]);
|
|
483
|
+
}
|
|
484
|
+
const synthesized = [];
|
|
485
|
+
for (const cl of clusters) {
|
|
486
|
+
if (cl.length < BRIDGE_MIN_COLUMNS) continue;
|
|
487
|
+
const xs = cl.map((c) => c.x).sort((a, b) => a - b);
|
|
488
|
+
const interiorXs = xs.slice(1, -1);
|
|
489
|
+
const bandLo = Math.min(...cl.map((c) => c.lo));
|
|
490
|
+
const bandHi = Math.max(...cl.map((c) => c.hi));
|
|
491
|
+
const segmented = horizontals.some((h) => h.y1 > bandLo + BRIDGE_EDGE_EPS && h.y1 < bandHi - BRIDGE_EDGE_EPS && interiorXs.some((ix) => Math.abs(h.x1 - ix) <= BRIDGE_ENDPOINT_TOL || Math.abs(h.x2 - ix) <= BRIDGE_ENDPOINT_TOL));
|
|
492
|
+
if (!segmented) continue;
|
|
493
|
+
for (const c of cl) {
|
|
494
|
+
synthesized.push({ x1: c.x, y1: c.spanLo, x2: c.x, y2: c.spanHi, lineWidth: c.lineWidth });
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
return synthesized.length ? [...verticals, ...synthesized] : verticals;
|
|
498
|
+
}
|
|
499
|
+
|
|
433
500
|
// src/pdf/image-regions.ts
|
|
434
501
|
|
|
435
502
|
function multiplyTransform(m, t) {
|
|
@@ -2236,14 +2303,14 @@ function isProseSpread(items) {
|
|
|
2236
2303
|
for (let i = 1; i < sorted.length; i++) {
|
|
2237
2304
|
gaps.push(sorted[i].x - (sorted[i - 1].x + sorted[i - 1].w));
|
|
2238
2305
|
}
|
|
2239
|
-
const maxGap =
|
|
2306
|
+
const maxGap = _chunkDQJTNXVScjs.safeMax.call(void 0, gaps);
|
|
2240
2307
|
const avgLen = items.reduce((s, i) => s + i.text.length, 0) / items.length;
|
|
2241
2308
|
return maxGap < 40 && avgLen < 5;
|
|
2242
2309
|
}
|
|
2243
2310
|
function detectColumns(yLines) {
|
|
2244
2311
|
const allItems = yLines.flat();
|
|
2245
2312
|
if (allItems.length === 0) return null;
|
|
2246
|
-
const pageWidth =
|
|
2313
|
+
const pageWidth = _chunkDQJTNXVScjs.safeMax.call(void 0, allItems.map((i) => i.x + i.w)) - _chunkDQJTNXVScjs.safeMin.call(void 0, allItems.map((i) => i.x));
|
|
2247
2314
|
if (pageWidth < 100) return null;
|
|
2248
2315
|
let bigoLineIdx = -1;
|
|
2249
2316
|
for (let i = 0; i < yLines.length; i++) {
|
|
@@ -2465,9 +2532,9 @@ function detectHeadings(blocks, medianFontSize) {
|
|
|
2465
2532
|
if (/^\d+$/.test(text)) continue;
|
|
2466
2533
|
const ratio = block.style.fontSize / medianFontSize;
|
|
2467
2534
|
let level = 0;
|
|
2468
|
-
if (ratio >=
|
|
2469
|
-
else if (ratio >=
|
|
2470
|
-
else if (ratio >=
|
|
2535
|
+
if (ratio >= _chunkDQJTNXVScjs.HEADING_RATIO_H1) level = 1;
|
|
2536
|
+
else if (ratio >= _chunkDQJTNXVScjs.HEADING_RATIO_H2) level = 2;
|
|
2537
|
+
else if (ratio >= _chunkDQJTNXVScjs.HEADING_RATIO_H3) level = 3;
|
|
2471
2538
|
if (level > 0) {
|
|
2472
2539
|
block.type = "heading";
|
|
2473
2540
|
block.level = level;
|
|
@@ -2820,6 +2887,7 @@ function extractPageBlocksWithLines(items, pageNum, opList, pageWidth, pageHeigh
|
|
|
2820
2887
|
({ horizontals, verticals } = filterPageBorderLines(horizontals, verticals, pageWidth, pageHeight));
|
|
2821
2888
|
({ horizontals, verticals } = preprocessLines(horizontals, verticals));
|
|
2822
2889
|
verticals = closeOpenTableEdges(horizontals, verticals);
|
|
2890
|
+
verticals = bridgeSplitColumnVerticals(horizontals, verticals);
|
|
2823
2891
|
markStrikethroughItems(items, horizontals);
|
|
2824
2892
|
wrapStrikethroughRuns(items);
|
|
2825
2893
|
const grids = buildTableGrids(horizontals, verticals);
|
|
@@ -3043,7 +3111,7 @@ function extractBlocksWithGrids(items, pageNum, grids, horizontals, verticals) {
|
|
|
3043
3111
|
}
|
|
3044
3112
|
if (remaining.length > 0) {
|
|
3045
3113
|
const allY = remaining.map((i) => i.y);
|
|
3046
|
-
const pageH =
|
|
3114
|
+
const pageH = _chunkDQJTNXVScjs.safeMax.call(void 0, allY) - _chunkDQJTNXVScjs.safeMin.call(void 0, allY);
|
|
3047
3115
|
const groups = xyCutOrder(remaining, Math.max(15, pageH * 0.03));
|
|
3048
3116
|
const textBlocks = [];
|
|
3049
3117
|
for (const group of groups) {
|
|
@@ -3219,7 +3287,7 @@ function extractPageBlocksFallback(items, pageNum, fullPage = false) {
|
|
|
3219
3287
|
blocks.push({ type: "paragraph", text: tableText, pageNumber: pageNum, bbox, style: dominantStyle(items) });
|
|
3220
3288
|
} else {
|
|
3221
3289
|
const allY = items.map((i) => i.y);
|
|
3222
|
-
const pageHeight =
|
|
3290
|
+
const pageHeight = _chunkDQJTNXVScjs.safeMax.call(void 0, allY) - _chunkDQJTNXVScjs.safeMin.call(void 0, allY);
|
|
3223
3291
|
const gapThreshold = Math.max(15, pageHeight * 0.03);
|
|
3224
3292
|
const orderedGroups = proseCutX !== null ? splitTwoColumnProse(items, proseCutX) : xyCutOrder(items, gapThreshold);
|
|
3225
3293
|
for (const group of orderedGroups) {
|
|
@@ -3472,7 +3540,7 @@ async function loadPdfWithTimeout(buffer) {
|
|
|
3472
3540
|
new Promise((_, reject) => {
|
|
3473
3541
|
timer = setTimeout(() => {
|
|
3474
3542
|
loadingTask.destroy();
|
|
3475
|
-
reject(new (0,
|
|
3543
|
+
reject(new (0, _chunkDQJTNXVScjs.KordocError)("PDF \uB85C\uB529 \uD0C0\uC784\uC544\uC6C3 (30\uCD08 \uCD08\uACFC)"));
|
|
3476
3544
|
}, PDF_LOAD_TIMEOUT_MS);
|
|
3477
3545
|
})
|
|
3478
3546
|
]);
|
|
@@ -3485,7 +3553,7 @@ async function parsePdfDocument(buffer, options) {
|
|
|
3485
3553
|
const doc = await loadPdfWithTimeout(buffer);
|
|
3486
3554
|
try {
|
|
3487
3555
|
const pageCount = doc.numPages;
|
|
3488
|
-
if (pageCount === 0) throw new (0,
|
|
3556
|
+
if (pageCount === 0) throw new (0, _chunkDQJTNXVScjs.KordocError)("PDF\uC5D0 \uD398\uC774\uC9C0\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.");
|
|
3489
3557
|
const metadata = { pageCount };
|
|
3490
3558
|
await extractPdfMetadata(doc, metadata);
|
|
3491
3559
|
const blocks = [];
|
|
@@ -3545,11 +3613,11 @@ async function parsePdfDocument(buffer, options) {
|
|
|
3545
3613
|
pageText += pageText ? "\n" + t : t;
|
|
3546
3614
|
}
|
|
3547
3615
|
pageQuality.push(computePageQuality(i, pageText));
|
|
3548
|
-
if (totalTextBytes > MAX_TOTAL_TEXT) throw new (0,
|
|
3616
|
+
if (totalTextBytes > MAX_TOTAL_TEXT) throw new (0, _chunkDQJTNXVScjs.KordocError)("\uD14D\uC2A4\uD2B8 \uCD94\uCD9C \uD06C\uAE30 \uCD08\uACFC");
|
|
3549
3617
|
parsedPages++;
|
|
3550
3618
|
_optionalChain([options, 'optionalAccess', _36 => _36.onProgress, 'optionalCall', _37 => _37(parsedPages, totalTarget)]);
|
|
3551
3619
|
} catch (pageErr) {
|
|
3552
|
-
if (pageErr instanceof
|
|
3620
|
+
if (pageErr instanceof _chunkDQJTNXVScjs.KordocError) throw pageErr;
|
|
3553
3621
|
warnings.push({ page: i, message: `\uD398\uC774\uC9C0 ${i} \uD30C\uC2F1 \uC2E4\uD328: ${pageErr instanceof Error ? pageErr.message : "\uC54C \uC218 \uC5C6\uB294 \uC624\uB958"}`, code: "PARTIAL_PARSE" });
|
|
3554
3622
|
}
|
|
3555
3623
|
}
|
|
@@ -3558,7 +3626,7 @@ async function parsePdfDocument(buffer, options) {
|
|
|
3558
3626
|
if (totalChars / Math.max(parsedPageCount, 1) < 10) {
|
|
3559
3627
|
if (_optionalChain([options, 'optionalAccess', _38 => _38.ocr])) {
|
|
3560
3628
|
try {
|
|
3561
|
-
const { ocrPages } = await Promise.resolve().then(() => _interopRequireWildcard(require("./provider-
|
|
3629
|
+
const { ocrPages } = await Promise.resolve().then(() => _interopRequireWildcard(require("./provider-5K7O3Z2O.cjs")));
|
|
3562
3630
|
const ocrBlocks = await ocrPages(doc, options.ocr, pageFilter, effectivePageCount);
|
|
3563
3631
|
if (ocrBlocks.length > 0) {
|
|
3564
3632
|
const ocrMarkdown = ocrBlocks.map((b) => b.text || "").filter(Boolean).join("\n\n");
|
|
@@ -3617,7 +3685,7 @@ async function parsePdfDocument(buffer, options) {
|
|
|
3617
3685
|
detectKoreanListBlocks(blocks);
|
|
3618
3686
|
const outline = blocks.filter((b) => b.type === "heading" && b.level && b.text).map((b) => ({ level: b.level, text: b.text, pageNumber: b.pageNumber }));
|
|
3619
3687
|
sanitizeBlockControlChars(blocks);
|
|
3620
|
-
let markdown = cleanPdfText(
|
|
3688
|
+
let markdown = cleanPdfText(_chunkDQJTNXVScjs.blocksToMarkdown.call(void 0, blocks));
|
|
3621
3689
|
return {
|
|
3622
3690
|
markdown,
|
|
3623
3691
|
blocks,
|
|
@@ -3676,4 +3744,4 @@ async function extractPdfMetadataOnly(buffer) {
|
|
|
3676
3744
|
|
|
3677
3745
|
|
|
3678
3746
|
exports.cleanPdfText = cleanPdfText; exports.detectKoreanListBlocks = detectKoreanListBlocks; exports.detectTableCaptions = detectTableCaptions; exports.extractPdfMetadataOnly = extractPdfMetadataOnly; exports.mergeCrossPageTables = mergeCrossPageTables; exports.parsePdfDocument = parsePdfDocument; exports.removeHeaderFooterBlocks = removeHeaderFooterBlocks;
|
|
3679
|
-
//# sourceMappingURL=parser-
|
|
3747
|
+
//# sourceMappingURL=parser-VEY4B5CJ.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["c:\\github_project\\kordoc\\dist\\parser-VEY4B5CJ.cjs"],"names":[],"mappings":"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;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,YAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA;AACA,IAAA;AACA,MAAA;AACA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,mBAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,cAAA;AACA,cAAA;AACA,cAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,wBAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"C:\\github_project\\kordoc\\dist\\parser-VEY4B5CJ.cjs","sourcesContent":[null]}
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import {
|
|
3
3
|
formatProfileSchema,
|
|
4
4
|
parseFormatProfileJson
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-KA4FEBS2.js";
|
|
6
|
+
import "./chunk-L3I4TIRP.js";
|
|
7
7
|
export {
|
|
8
8
|
formatProfileSchema,
|
|
9
9
|
parseFormatProfileJson
|
|
10
10
|
};
|
|
11
|
-
//# sourceMappingURL=profile-io-
|
|
11
|
+
//# sourceMappingURL=profile-io-JYGCC6XQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["c:\\github_project\\kordoc\\dist\\provider-5K7O3Z2O.cjs"],"names":[],"mappings":"AAAA,2XAA6B;AAC7B;AACA;AACA,MAAM,SAAS,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,kBAAkB,EAAE;AACvE,EAAE,MAAM,OAAO,EAAE,CAAC,CAAC;AACnB,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,kBAAkB,EAAE,CAAC,EAAE,EAAE;AAChD,IAAI,GAAG,CAAC,WAAW,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ;AAClD,IAAI,MAAM,KAAK,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AACrC,IAAI,IAAI;AACR,MAAM,MAAM,UAAU,EAAE,MAAM,eAAe,CAAC,IAAI,CAAC;AACnD,MAAM,MAAM,KAAK,EAAE,MAAM,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW,CAAC;AAC5D,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;AACvB,QAAQ,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;AAC5E,MAAM;AACN,IAAI,EAAE,UAAM;AACZ,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,sCAAsC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7F,IAAI;AACJ,EAAE;AACF,EAAE,OAAO,MAAM;AACf;AACA,MAAM,SAAS,eAAe,CAAC,IAAI,EAAE;AACrC,EAAE,IAAI,YAAY;AAClB,EAAE,IAAI;AACN,IAAI,MAAM,aAAa,EAAE,MAAM,4DAAM,CAAC,QAAQ,GAAC;AAC/C,IAAI,aAAa,EAAE,YAAY,CAAC,YAAY;AAC5C,EAAE,EAAE,WAAM;AACV,IAAI,MAAM,IAAI,KAAK,CAAC,+HAA+H,CAAC;AACpJ,EAAE;AACF,EAAE,MAAM,MAAM,EAAE,CAAC;AACjB,EAAE,MAAM,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;AAC9C,EAAE,MAAM,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACtF,EAAE,MAAM,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AACrC,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO;AAC7D,EAAE,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACrD;AACA;AACE;AACF,4BAAC","file":"C:\\github_project\\kordoc\\dist\\provider-5K7O3Z2O.cjs","sourcesContent":[null]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ocr/provider.ts"],"sourcesContent":["/**\r\n * OCR 프로바이더 브릿지 — PDF 페이지를 이미지로 렌더링하여 OCR 호출\r\n *\r\n * kordoc은 OCR 라이브러리를 번들하지 않음.\r\n * 사용자가 OcrProvider 함수를 제공하면 이미지 기반 PDF도 텍스트 추출 가능.\r\n *\r\n * @example\r\n * ```ts\r\n * import { parse } from \"kordoc\"\r\n *\r\n * const result = await parse(buffer, {\r\n * ocr: async (pageImage, pageNumber, mimeType) => {\r\n * // Tesseract, Claude Vision, Google Vision 등 사용\r\n * return await myOcrService.recognize(pageImage)\r\n * }\r\n * })\r\n * ```\r\n */\r\n\r\nimport type { OcrProvider, IRBlock } from \"../types.js\"\r\n\r\n/**\r\n * 이미지 기반 PDF 페이지에 OCR을 적용하여 IRBlock[] 반환.\r\n *\r\n * pdfjs page 객체에서 viewport + render를 통해 PNG 생성 후\r\n * 사용자 제공 OcrProvider 호출.\r\n *\r\n * canvas 미설치 시 pdfjs render 불가하므로 에러 반환.\r\n */\r\nexport async function ocrPages(\r\n doc: { numPages: number; getPage(n: number): Promise<PdfPageProxy> },\r\n provider: OcrProvider,\r\n pageFilter: Set<number> | null,\r\n effectivePageCount: number\r\n): Promise<IRBlock[]> {\r\n const blocks: IRBlock[] = []\r\n\r\n for (let i = 1; i <= effectivePageCount; i++) {\r\n if (pageFilter && !pageFilter.has(i)) continue\r\n const page = await doc.getPage(i)\r\n try {\r\n const imageData = await renderPageToPng(page)\r\n const text = await provider(imageData, i, \"image/png\")\r\n if (text.trim()) {\r\n blocks.push({ type: \"paragraph\", text: text.trim(), pageNumber: i })\r\n }\r\n } catch {\r\n blocks.push({ type: \"paragraph\" as const, text: `[OCR 실패: 페이지 ${i}]` })\r\n }\r\n }\r\n\r\n return blocks\r\n}\r\n\r\ninterface PdfPageProxy {\r\n getViewport(params: { scale: number }): { width: number; height: number }\r\n render(params: { canvasContext: unknown; viewport: unknown }): { promise: Promise<void> }\r\n}\r\n\r\n/**\r\n * PDF 페이지를 PNG로 렌더링.\r\n * node-canvas가 설치되어 있어야 동작.\r\n * 미설치 시 에러 throw → 호출측에서 catch.\r\n */\r\nasync function renderPageToPng(page: PdfPageProxy): Promise<Uint8Array> {\r\n // node-canvas 동적 로드 (선택적 의존성)\r\n let createCanvas: (w: number, h: number) => { getContext(t: string): unknown; toBuffer(t: string): Buffer }\r\n try {\r\n const canvasModule = await import(\"canvas\")\r\n createCanvas = canvasModule.createCanvas\r\n } catch {\r\n throw new Error(\"OCR을 사용하려면 'canvas' 패키지를 설치하세요: npm install canvas\")\r\n }\r\n\r\n const scale = 2.0 // 300 DPI 근사\r\n const viewport = page.getViewport({ scale })\r\n const canvas = createCanvas(Math.floor(viewport.width), Math.floor(viewport.height))\r\n const ctx = canvas.getContext(\"2d\")\r\n\r\n await page.render({ canvasContext: ctx, viewport }).promise\r\n return new Uint8Array(canvas.toBuffer(\"image/png\"))\r\n}\r\n"],"mappings":";;;AA6BA,eAAsB,SACpB,KACA,UACA,YACA,oBACoB;AACpB,QAAM,SAAoB,CAAC;AAE3B,WAAS,IAAI,GAAG,KAAK,oBAAoB,KAAK;AAC5C,QAAI,cAAc,CAAC,WAAW,IAAI,CAAC,EAAG;AACtC,UAAM,OAAO,MAAM,IAAI,QAAQ,CAAC;AAChC,QAAI;AACF,YAAM,YAAY,MAAM,gBAAgB,IAAI;AAC5C,YAAM,OAAO,MAAM,SAAS,WAAW,GAAG,WAAW;AACrD,UAAI,KAAK,KAAK,GAAG;AACf,eAAO,KAAK,EAAE,MAAM,aAAa,MAAM,KAAK,KAAK,GAAG,YAAY,EAAE,CAAC;AAAA,MACrE;AAAA,IACF,QAAQ;AACN,aAAO,KAAK,EAAE,MAAM,aAAsB,MAAM,yCAAgB,CAAC,IAAI,CAAC;AAAA,IACxE;AAAA,EACF;AAEA,SAAO;AACT;AAYA,eAAe,gBAAgB,MAAyC;AAEtE,MAAI;AACJ,MAAI;AACF,UAAM,eAAe,MAAM,OAAO,QAAQ;AAC1C,mBAAe,aAAa;AAAA,EAC9B,QAAQ;AACN,UAAM,IAAI,MAAM,+HAAoD;AAAA,EACtE;AAEA,QAAM,QAAQ;AACd,QAAM,WAAW,KAAK,YAAY,EAAE,MAAM,CAAC;AAC3C,QAAM,SAAS,aAAa,KAAK,MAAM,SAAS,KAAK,GAAG,KAAK,MAAM,SAAS,MAAM,CAAC;AACnF,QAAM,MAAM,OAAO,WAAW,IAAI;AAElC,QAAM,KAAK,OAAO,EAAE,eAAe,KAAK,SAAS,CAAC,EAAE;AACpD,SAAO,IAAI,WAAW,OAAO,SAAS,WAAW,CAAC;AACpD;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ocr/provider.ts"],"sourcesContent":["/**\r\n * OCR 프로바이더 브릿지 — PDF 페이지를 이미지로 렌더링하여 OCR 호출\r\n *\r\n * kordoc은 OCR 라이브러리를 번들하지 않음.\r\n * 사용자가 OcrProvider 함수를 제공하면 이미지 기반 PDF도 텍스트 추출 가능.\r\n *\r\n * @example\r\n * ```ts\r\n * import { parse } from \"kordoc\"\r\n *\r\n * const result = await parse(buffer, {\r\n * ocr: async (pageImage, pageNumber, mimeType) => {\r\n * // Tesseract, Claude Vision, Google Vision 등 사용\r\n * return await myOcrService.recognize(pageImage)\r\n * }\r\n * })\r\n * ```\r\n */\r\n\r\nimport type { OcrProvider, IRBlock } from \"../types.js\"\r\n\r\n/**\r\n * 이미지 기반 PDF 페이지에 OCR을 적용하여 IRBlock[] 반환.\r\n *\r\n * pdfjs page 객체에서 viewport + render를 통해 PNG 생성 후\r\n * 사용자 제공 OcrProvider 호출.\r\n *\r\n * canvas 미설치 시 pdfjs render 불가하므로 에러 반환.\r\n */\r\nexport async function ocrPages(\r\n doc: { numPages: number; getPage(n: number): Promise<PdfPageProxy> },\r\n provider: OcrProvider,\r\n pageFilter: Set<number> | null,\r\n effectivePageCount: number\r\n): Promise<IRBlock[]> {\r\n const blocks: IRBlock[] = []\r\n\r\n for (let i = 1; i <= effectivePageCount; i++) {\r\n if (pageFilter && !pageFilter.has(i)) continue\r\n const page = await doc.getPage(i)\r\n try {\r\n const imageData = await renderPageToPng(page)\r\n const text = await provider(imageData, i, \"image/png\")\r\n if (text.trim()) {\r\n blocks.push({ type: \"paragraph\", text: text.trim(), pageNumber: i })\r\n }\r\n } catch {\r\n blocks.push({ type: \"paragraph\" as const, text: `[OCR 실패: 페이지 ${i}]` })\r\n }\r\n }\r\n\r\n return blocks\r\n}\r\n\r\ninterface PdfPageProxy {\r\n getViewport(params: { scale: number }): { width: number; height: number }\r\n render(params: { canvasContext: unknown; viewport: unknown }): { promise: Promise<void> }\r\n}\r\n\r\n/**\r\n * PDF 페이지를 PNG로 렌더링.\r\n * node-canvas가 설치되어 있어야 동작.\r\n * 미설치 시 에러 throw → 호출측에서 catch.\r\n */\r\nasync function renderPageToPng(page: PdfPageProxy): Promise<Uint8Array> {\r\n // node-canvas 동적 로드 (선택적 의존성)\r\n let createCanvas: (w: number, h: number) => { getContext(t: string): unknown; toBuffer(t: string): Buffer }\r\n try {\r\n const canvasModule = await import(\"canvas\")\r\n createCanvas = canvasModule.createCanvas\r\n } catch {\r\n throw new Error(\"OCR을 사용하려면 'canvas' 패키지를 설치하세요: npm install canvas\")\r\n }\r\n\r\n const scale = 2.0 // 300 DPI 근사\r\n const viewport = page.getViewport({ scale })\r\n const canvas = createCanvas(Math.floor(viewport.width), Math.floor(viewport.height))\r\n const ctx = canvas.getContext(\"2d\")\r\n\r\n await page.render({ canvasContext: ctx, viewport }).promise\r\n return new Uint8Array(canvas.toBuffer(\"image/png\"))\r\n}\r\n"],"mappings":";AA6BA,eAAsB,SACpB,KACA,UACA,YACA,oBACoB;AACpB,QAAM,SAAoB,CAAC;AAE3B,WAAS,IAAI,GAAG,KAAK,oBAAoB,KAAK;AAC5C,QAAI,cAAc,CAAC,WAAW,IAAI,CAAC,EAAG;AACtC,UAAM,OAAO,MAAM,IAAI,QAAQ,CAAC;AAChC,QAAI;AACF,YAAM,YAAY,MAAM,gBAAgB,IAAI;AAC5C,YAAM,OAAO,MAAM,SAAS,WAAW,GAAG,WAAW;AACrD,UAAI,KAAK,KAAK,GAAG;AACf,eAAO,KAAK,EAAE,MAAM,aAAa,MAAM,KAAK,KAAK,GAAG,YAAY,EAAE,CAAC;AAAA,MACrE;AAAA,IACF,QAAQ;AACN,aAAO,KAAK,EAAE,MAAM,aAAsB,MAAM,yCAAgB,CAAC,IAAI,CAAC;AAAA,IACxE;AAAA,EACF;AAEA,SAAO;AACT;AAYA,eAAe,gBAAgB,MAAyC;AAEtE,MAAI;AACJ,MAAI;AACF,UAAM,eAAe,MAAM,OAAO,QAAQ;AAC1C,mBAAe,aAAa;AAAA,EAC9B,QAAQ;AACN,UAAM,IAAI,MAAM,+HAAoD;AAAA,EACtE;AAEA,QAAM,QAAQ;AACd,QAAM,WAAW,KAAK,YAAY,EAAE,MAAM,CAAC;AAC3C,QAAM,SAAS,aAAa,KAAK,MAAM,SAAS,KAAK,GAAG,KAAK,MAAM,SAAS,MAAM,CAAC;AACnF,QAAM,MAAM,OAAO,WAAW,IAAI;AAElC,QAAM,KAAK,OAAO,EAAE,eAAe,KAAK,SAAS,CAAC,EAAE;AACpD,SAAO,IAAI,WAAW,OAAO,SAAS,WAAW,CAAC;AACpD;","names":[]}
|
package/dist/setup-57FB3LSP.js
CHANGED
|
File without changes
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
parse
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-HC2SEH6I.js";
|
|
5
|
+
import "./chunk-UVSOSFER.js";
|
|
6
6
|
import {
|
|
7
7
|
detectFormat
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-5CJGKKMZ.js";
|
|
9
9
|
import "./chunk-MOL7MDBG.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-63ASYC4N.js";
|
|
11
|
+
import "./chunk-5SOZXPQY.js";
|
|
12
|
+
import "./chunk-4C7SBZNW.js";
|
|
13
13
|
import {
|
|
14
14
|
toArrayBuffer
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-L3I4TIRP.js";
|
|
16
16
|
|
|
17
17
|
// src/watch.ts
|
|
18
18
|
import { watch, readFileSync, writeFileSync, mkdirSync, statSync, existsSync, realpathSync } from "fs";
|
|
@@ -151,4 +151,4 @@ async function sendWebhook(url, payload) {
|
|
|
151
151
|
export {
|
|
152
152
|
watchDirectory
|
|
153
153
|
};
|
|
154
|
-
//# sourceMappingURL=watch-
|
|
154
|
+
//# sourceMappingURL=watch-ZQUFJBFR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/watch.ts"],"sourcesContent":["/** 디렉토리 감시 모드 — 새 문서 자동 변환 + Webhook 알림 */\r\n\r\nimport { watch, readFileSync, writeFileSync, mkdirSync, statSync, existsSync, realpathSync } from \"fs\"\r\nimport { basename, resolve, extname, sep } from \"path\"\r\nimport { parse, detectFormat } from \"./index.js\"\r\nimport { toArrayBuffer } from \"./utils.js\"\r\nimport type { WatchOptions } from \"./types.js\"\r\n\r\nconst SUPPORTED_EXTENSIONS = new Set([\".hwp\", \".hwpx\", \".pdf\", \".xlsx\", \".docx\"])\r\nconst DEBOUNCE_MS = 1000\r\n/** 파일 쓰기 완료 판정: 연속 2회 동일 크기 확인 간격 */\r\nconst STABLE_CHECK_MS = 300\r\nconst MAX_FILE_SIZE = 500 * 1024 * 1024\r\n\r\n/**\r\n * 디렉토리를 감시하여 새 문서 파일을 자동 변환.\r\n *\r\n * @example\r\n * ```bash\r\n * kordoc watch ./incoming -d ./output --webhook https://api.example.com/docs\r\n * ```\r\n */\r\nexport async function watchDirectory(options: WatchOptions): Promise<void> {\r\n const { dir, outDir, webhook, format = \"markdown\", pages, silent } = options\r\n\r\n if (!existsSync(dir)) throw new Error(`디렉토리를 찾을 수 없습니다: ${dir}`)\r\n if (webhook) validateWebhookUrl(webhook)\r\n if (outDir) mkdirSync(outDir, { recursive: true })\r\n\r\n const log = silent ? () => {} : (msg: string) => process.stderr.write(msg + \"\\n\")\r\n log(`[kordoc watch] 감시 시작: ${resolve(dir)}`)\r\n if (outDir) log(`[kordoc watch] 출력: ${resolve(outDir)}`)\r\n if (webhook) log(`[kordoc watch] 웹훅: ${webhook}`)\r\n\r\n // 디바운스 맵\r\n const pending = new Map<string, ReturnType<typeof setTimeout>>()\r\n // 동시 처리 제한 — 메모리 폭주 방지\r\n const MAX_CONCURRENT = 3\r\n let activeCount = 0\r\n const inProgress = new Set<string>()\r\n\r\n /** 파일 크기가 안정화될 때까지 대기 (쓰기 완료 감지) */\r\n const waitForStableSize = async (absPath: string): Promise<number> => {\r\n let prevSize = statSync(absPath).size\r\n await new Promise(r => setTimeout(r, STABLE_CHECK_MS))\r\n if (!existsSync(absPath)) return 0\r\n const currSize = statSync(absPath).size\r\n if (currSize !== prevSize) {\r\n // 크기가 변했으면 한 번 더 대기\r\n await new Promise(r => setTimeout(r, STABLE_CHECK_MS))\r\n if (!existsSync(absPath)) return 0\r\n return statSync(absPath).size\r\n }\r\n return currSize\r\n }\r\n\r\n const processFile = async (filePath: string) => {\r\n const ext = extname(filePath).toLowerCase()\r\n if (!SUPPORTED_EXTENSIONS.has(ext)) return\r\n // 동일 파일 동시 처리 방지 + 동시 처리 수 제한\r\n if (inProgress.has(filePath) || activeCount >= MAX_CONCURRENT) return\r\n inProgress.add(filePath)\r\n activeCount++\r\n\r\n const fileName = basename(filePath)\r\n try {\r\n const rawPath = resolve(dir, filePath)\r\n if (!existsSync(rawPath)) return\r\n // 심볼릭 링크 해석 후 감시 디렉토리 외부 파일 차단\r\n let absPath: string\r\n try { absPath = realpathSync(rawPath) } catch { return }\r\n const realDir = realpathSync(resolve(dir))\r\n if (!absPath.startsWith(realDir + sep) && absPath !== realDir) return\r\n\r\n const fileSize = await waitForStableSize(absPath)\r\n if (fileSize > MAX_FILE_SIZE || fileSize === 0) return\r\n\r\n log(`[kordoc watch] 변환 중: ${fileName}`)\r\n\r\n const buffer = readFileSync(absPath)\r\n const arrayBuffer = toArrayBuffer(buffer)\r\n const parseOptions = pages ? { pages } : undefined\r\n const result = await parse(arrayBuffer, parseOptions)\r\n\r\n if (!result.success) {\r\n log(`[kordoc watch] 실패: ${fileName} — ${result.error}`)\r\n await sendWebhook(webhook, { file: fileName, format: detectFormat(arrayBuffer), success: false, error: result.error })\r\n return\r\n }\r\n\r\n const output = format === \"json\" ? JSON.stringify(result, null, 2) : result.markdown\r\n\r\n if (outDir) {\r\n const outExt = format === \"json\" ? \".json\" : \".md\"\r\n const outPath = resolve(outDir, fileName.replace(/\\.[^.]+$/, outExt))\r\n writeFileSync(outPath, output, \"utf-8\")\r\n log(`[kordoc watch] 완료: ${fileName} → ${basename(outPath)}`)\r\n } else {\r\n process.stdout.write(output + \"\\n\")\r\n }\r\n\r\n await sendWebhook(webhook, {\r\n file: fileName,\r\n format: result.fileType,\r\n success: true,\r\n markdown: format === \"markdown\" ? output.substring(0, 1000) : undefined,\r\n })\r\n } catch (err) {\r\n log(`[kordoc watch] 에러: ${fileName} — ${err instanceof Error ? err.message : err}`)\r\n } finally {\r\n inProgress.delete(filePath)\r\n activeCount--\r\n }\r\n }\r\n\r\n // fs.watch recursive (Node 18+ Windows/macOS, Node 19+ Linux)\r\n watch(dir, { recursive: true }, (event, filename) => {\r\n if (!filename) return\r\n const filePath = filename.toString()\r\n\r\n // 디바운스\r\n const existing = pending.get(filePath)\r\n if (existing) clearTimeout(existing)\r\n pending.set(filePath, setTimeout(() => {\r\n pending.delete(filePath)\r\n processFile(filePath).catch((err) => {\r\n process.stderr.write(`[kordoc watch] 처리 실패: ${filePath} — ${err instanceof Error ? err.message : String(err)}\\n`)\r\n })\r\n }, DEBOUNCE_MS))\r\n })\r\n\r\n // 프로세스 종료 방지 (Ctrl+C로 종료)\r\n return new Promise(() => {})\r\n}\r\n\r\n/** Webhook URL 검증 — SSRF 방지: http/https만 허용, localhost/private IP 차단 */\r\nfunction validateWebhookUrl(url: string): void {\r\n let parsed: URL\r\n try {\r\n parsed = new URL(url)\r\n } catch {\r\n throw new Error(`유효하지 않은 webhook URL: ${url}`)\r\n }\r\n if (parsed.protocol !== \"http:\" && parsed.protocol !== \"https:\") {\r\n throw new Error(`허용되지 않는 webhook 프로토콜: ${parsed.protocol}`)\r\n }\r\n const hostname = parsed.hostname.toLowerCase()\r\n if (\r\n hostname === \"localhost\" ||\r\n hostname === \"[::1]\" ||\r\n hostname.startsWith(\"127.\") ||\r\n hostname.startsWith(\"10.\") ||\r\n hostname.startsWith(\"192.168.\") ||\r\n /^172\\.(1[6-9]|2\\d|3[01])\\./.test(hostname) ||\r\n hostname === \"0.0.0.0\" ||\r\n hostname.startsWith(\"169.254.\") ||\r\n hostname.endsWith(\".local\") ||\r\n // IPv6 사설 대역\r\n hostname.startsWith(\"[fc\") ||\r\n hostname.startsWith(\"[fd\") ||\r\n hostname.startsWith(\"[fe80:\") ||\r\n hostname === \"[::0]\" ||\r\n hostname === \"[::]\" ||\r\n // 클라우드 메타데이터 엔드포인트\r\n hostname === \"metadata.google.internal\" ||\r\n hostname === \"metadata.google\" ||\r\n // 16진수/8진수/10진수 정수 IP 인코딩 우회 방지\r\n /^0x[0-9a-f]+$/i.test(hostname) ||\r\n /^0[0-7]+$/.test(hostname) ||\r\n /^\\d+$/.test(hostname)\r\n ) {\r\n throw new Error(`내부 네트워크 대상 webhook은 허용되지 않습니다: ${hostname}`)\r\n }\r\n}\r\n\r\nasync function sendWebhook(url: string | undefined, payload: Record<string, unknown>): Promise<void> {\r\n if (!url) return\r\n try {\r\n validateWebhookUrl(url)\r\n await fetch(url, {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify({ ...payload, timestamp: new Date().toISOString() }),\r\n redirect: \"error\",\r\n })\r\n } catch (err) {\r\n process.stderr.write(`[kordoc watch] webhook 전송 실패: ${err instanceof Error ? err.message : String(err)}\\n`)\r\n }\r\n}\r\n"],"mappings":"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","names":[]}
|